首页 文章

Google映射地理编码器状态偏差

提问于
浏览
0

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

我需要地理编码器有偏见,这样如果输入了一个州(没有国家),它就会对国家进行地理编码,而不是对同名城市进行地理编码 . 我们的应用程序首先优先考虑国家,然后是州,然后是城市等...但是地理编码器并没有做同样的事情 .

例如 . 我想搜索"Victoria",这是澳大利亚境内的一个州 . 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

当然,这些解决方案都不起作用,但我希望它们能说明我想要实现的目标 .

有什么建议?

谢谢,

妮可

1 回答

  • 0

    您可以在不指定地址的情况下进行查询

    ...?components=administrative_area:victoria
    

    然后遍历results.address_components以选择类型包含administrative_area_level_1的那些

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

相关问题