我正在尝试对这个地址“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 编码 &
在地址中并按原样使用它。但是这个&
用于分隔 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
这看起来有点简单。
关于google-maps-api-3 - 谷歌地图地理编码 api 不一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6976446/