2011-08-07 44 views
4

我想這個地理編碼地址「第188街&第三大街,紐約州布朗克斯」谷歌地圖API地理編碼不一致

如果運行通過地圖API V3地理編碼地址解析查詢,你回到10個左右的成績,其中沒有一個在紐約。

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

如果粘貼相同的地址到谷歌地圖,它把你直接在布朗克斯的交集。

是否有這些結果不一致的原因,並且有沒有辦法讓地理編碼器給我正確的結果,或者至少是處於相同狀態的東西? (起初我以爲是因爲'第三'被拼寫出來,所以我用'第三'替換了它,我仍然得到了10個結果,其中一個在紐約,但是,它是在皇后而不是布朗克斯。)

+0

你必須正確的URL轉義你的參數值; '&' – jjwdesign

回答

9

問題是你沒有在地址中編碼&並按原樣使用它。但是這個&用於例如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

這似乎有點簡單

+0

太棒了!我完全忽略了&符號! – dan