Google Maps地理编码api不一致

时间:2011-08-07 23:14:59

标签: google-maps-api-3

我正在尝试对这个地址进行地理编码“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

如果您将相同的地址粘贴到Google地图中,则会直接转到布朗克斯的交叉点。

这些结果是否存在不一致的原因,是否有一种方法可以让地理编码器给我正确的结果,或者至少是某种状态?

(起初我认为这是因为'第三'被拼写出来,所以我用'3rd'替换它。我仍然得到10个结果,其中一个在纽约。但是,它是在皇后而不是布朗克斯。)< / p>

1 个答案:

答案 0 :(得分:9)

问题是您没有在地址中对&进行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使用+表示地址中的空格。此外,推荐的服务网址为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

看起来有点简单。