2011-11-26 102 views
0

這導致包含street_number JSON字符串 - http://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=false谷歌地圖地理編碼 - 沒有街道號碼?

"long_name" : "1600", 
"short_name" : "1600", 
"types" : [ "street_number" ] 

然而,這不會導致包含street_number一個JSON字符串 - http://maps.googleapis.com/maps/api/geocode/json?address=26th+St+2nd+Ave+New+York,+NY+10019&sensor=false26th St部分似乎消失了。任何想法爲什麼?

回答

0

顯然是因爲26th St部分不是street_number。 26th St2nd Ave都是街道名稱,所以它只是丟棄26th St部分查詢。而在第一個查詢1600真的是一個街道號碼。

1

地理編碼通常是非確定性的。儘管不常見,但根據地理編碼過程內部實現的變化,同一查詢可能會返回不同的精度結果。

另一個問題是某個地方可能沒有街道地址,或者該算法無法近似於一個地址。

您應該瞭解這些因素並處理所有這些不同情況。我想你沒有任何事可以從你身邊做,以確保來自谷歌服務器的一致回覆。

+0

我不是要求Google近似街道地址。我已經提供。 – StackOverflowNewbie

+0

對不起,我剛剛注意到...但同樣的想法適用。不幸的是,你無能爲力,只能處理不一致的問題。您可以查找street_address或路由組件,如果兩者都未找到,則假定您未找到街道號碼。 – Omtara

0

有時會丟棄街道號碼的另一種情況是,它具有定向前綴,如315 West 44th Street。在這種情況下,如果前綴被縮寫,結果可能更準確,如315 W 44th Street。雖然我沒有看到這個記錄,但我看過的每個谷歌地圖都以這種方式縮寫方向,所以也許地址以內部方式存儲,並且在地理編碼之前通過縮寫提高了獲得好結果的可能性。