【问题标题】:Google maps geocoder state bias谷歌地图地理编码器状态偏差
【发布时间】:2014-12-21 01:14:33
【问题描述】:

我有一个谷歌地图应用程序,用户可以在其中按国家、州、城市或街道地址进行搜索。用户可能在世界任何地方,他们可能在世界其他任何地方搜索,而不仅仅是在他们自己的国家/地区。

我需要地理编码器有一个偏差,这样如果输入一个州(没有国家),它会地理编码到该州而不是同名的城市。我们的应用程序优先考虑国家/地区,然后是州,然后是城市等……但是地理编码器并没有这样做。

例如。我想搜索澳大利亚境内的一个州“维多利亚”。 http://maps.googleapis.com/maps/api/geocode/json?address=victoria 显示加拿大不列颠哥伦比亚省维多利亚。 http://maps.googleapis.com/maps/api/geocode/json?address=victoria&region=au 显示了澳大利亚的维多利亚州,但我不能包括该地区,因为我的用户可能在世界任何地方,所以我无法知道他们正在搜索哪个地区。

我查看了“行政级别”和“类型”,但我找不到适合我的需求的解决方案,即按国家 > 州 > 城市的顺序排列优先级。

理想情况下,我想要这样的东西: maps.googleapis.com/maps/api/geocode/json?address=victoria&components=administrative_area:WILDCARD

maps.googleapis.com/maps/api/geocode/json?address=victoria&types=administrative_area_level_1

当然,这些解决方案都不起作用,但我希望它们能说明我正在努力实现的目标。

有什么建议吗?

谢谢,

妮可

【问题讨论】:

    标签: google-maps google-maps-api-3 geocoding state administrative


    【解决方案1】:

    你可以不指定地址进行查询,使用

    ...?components=administrative_area:victoria 
    

    然后遍历 results.address_components 以挑选出类型包括管理区域级别_1的组件

    更新:我注意到,根据提供给管理区域的搜索词,谷歌正在使用某种启发式方法来确定结果的确定性。如果有明确的获胜者,则仅显示 1 个结果。如果一组位置的匹配相似,那么您将获得多个位置。因此,当有多个结果时,您可以选择更高或更低的管理区域级别以满足您的需求。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-20
      • 1970-01-01
      • 1970-01-01
      • 2012-07-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多