【问题标题】:Google Maps geocode api inconsistencies谷歌地图地理编码 api 不一致
【发布时间】:2011-10-22 00:44:42
【问题描述】:

我正在尝试对该地址“188th street & third avenue, bronx NY”进行地理编码

如果您通过 maps api v3 地理编码器运行此地理编码查询,您会得到大约 10 个结果,其中没有一个在纽约。

http://maps.google.com/maps/api/geocode/xml?sensor=false&address=188th%20street%20&%20third%20avenue,%20bronx%20NY

如果您将相同的地址粘贴到谷歌地图中,​​它会将您直接带到布朗克斯的十字路口。

这些结果不一致是否有原因,有没有办法让地理编码器给我正确的结果,或者至少是相同状态的结果?

(起初我以为是因为拼写了“第三”,所以我将其替换为“第三”。我仍然得到了 10 个结果,其中一个在纽约。但是,它是在皇后区而不是布朗克斯区。)

【问题讨论】:

  • 您必须正确地 URL 转义您的参数值; '&'

标签: google-maps-api-3


【解决方案1】:

问题是您没有在地址中对& 进行 URL 编码并按原样使用它。但是这个 & 用于分隔 URL 参数,例如在sensor=false&address= 之间。因此,& 之外的数据不被视为地址的一部分。您需要将地址参数中的& 替换为其URL 编码%26

http://maps.google.com/maps/api/geocode/xml?sensor=false&address=188th%20street%20%26%20third%20avenue,%20bronx%20NY

您将在纽约布朗克斯找到一个正确的位置:

<location>
    <lat>40.8588700</lat> 
    <lng>-73.8911250</lng> 
</location>

仅供参考:Google geocoding web service 使用+ 作为地址中的空格。此外,推荐的服务 URL 是http://maps.googleapis.com/maps/api/geocode/。因此,您也可以发出查询:

http://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address=188+street,%26+third+avenue,+bronx+NY

这看起来有点简单。

【讨论】:

  • 太棒了!我完全忽略了 & 符号!
猜你喜欢
  • 2011-09-10
  • 2011-08-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-07-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多