0

我有一个网站,人们可以在其中购买/出售不同城市的服务。我使用谷歌地图 api v3、自动完成和搜索框元素,让他们选择一个城市,将其存储在数据库中,并在他们购买时搜索数据库。

问题是,谷歌搜索是本地化的,所以当用户在不同的语言环境中查找同一个城市时,他们不会在我的数据库中找到任何匹配项。

我的解决方案是将每个城市映射到一个代码(很像雅虎的 WOEID)并将其存储到我的数据库中,这样跨区域搜索就可以了,但我在谷歌地图 api 参考中找不到类似的东西。

那么,有没有办法继续使用谷歌地图,我必须切换到雅虎,还是有另一种解决方案来跨区域搜索我不知道?

谢谢达里奥

4

1 回答 1

0

如果使用Places library,搜索会返回一个PlaceResult对象,该对象具有两个可以帮助您的属性:

  1. id包含表示此地点的唯一标识符。此标识符可能不用于检索有关此地点的信息,但可用于合并有关此地点的数据,并在单独的搜索中验证地点的身份。由于 id 偶尔会发生变化,因此建议将 Place 的存储 id 与稍后在同一 Place 的 Details 请求中返回的 id 进行比较,并在必要时进行更新

  2. reference包含一个标记,可用于将来查询详细信息服务。此令牌可能与详细信息服务请求中使用的引用不同。建议定期更新 Places 的存储参考。尽管这个标记唯一地标识了 Place,但反之则不然:一个 Place 可能有许多有效的参考标记

文档参考

编辑

注意:idreference字段自 2014 年 6 月 24 日起已弃用。它们被新的地点 ID取代,这是一个可用于引用特定地点的唯一标识符。Google Maps JavaScript API 中的 Places 服务当前place_id在所有响应中返回 a,并placeId在 Place Details 请求中接受 a。2015 年 6 月 24 日之后不久,该服务将停止在响应中返回id和字段。reference一段时间后,该服务将不再接受referencein 请求。我们建议您尽快更新代码以使用新的地点 IDid,而不是使用新的地点 ID reference

于 2014-03-26T15:09:44.733 回答