Google 地图排除了特定范围之外的位置

Google maps exclude locations out of a specific range

我有一个包含多个地点的办公室的搜索索引。我想按地址过滤这些办公室并将它们显示在地图上。在搜索特定地址时,一些办事处在所需位置和不相关位置都有位置。例如,如果我搜索纽约,索引 returns 两家公司

company_a.locations = [New York, San Francisco]
company_b.locations = [New York]

问题是我现在将显示所有 3 个位置的图钉,包括旧金山,尽管我真正关心的是纽约。如果我在纽约搜索一个特定的邮政编码并且我收到一些实际上在新泽西州的位置,这是真的,所以它是高度特定于查询的。

我可以实现什么逻辑来理解任意位置与搜索结果不相关?

我正在尽我最大的努力来定义这个问题并意识到它很难定义,所以我很感激任何朝着正确方向的推动。如果有帮助,我正在使用 algolia 和 google 地图。

您可以想象以不同的方式设置您的记录,以便获得有关每个位置的更多信息:

{ "name": "company_a", "_geoloc": [ { "city": "NY", "lat": 40.7128, "lng": 74.0059 }, { "city": "SF", "lat": 37.7749, "lng": 122.4194 } ] }, { "name": "company_b", "_geoloc": [ { "city": "NY", "lat": 40.7128, "lng": 74.0059 } ] }

_geoloc 字段是 Algolia 的 geosearch 功能使用的字段(可能对您的用例有用)。

如果您使用内置地理搜索,则不必在前端过滤记录来删除替代项。如果您使用常规过滤器,则必须检查 Algolia 的结果并删除位于不同城市的备选方案。

为了完整起见,您也可以简单地复制您的记录,以便每条记录有一个位置:

{ "name": "company_a", "location": "SF" }, { "name": "company_a", "location": "NY" }