2010-07-19 36 views
4

使用Google Maps API查找特定街道地址並返回經度和緯度很容易。例如,link使用Google Maps API進行地理編碼 - 準確性和侷限性

但是,似乎輸入特定位置的名稱(例如公園)會導致問題。通常這些沒有特定的街道號碼(至少不容易找到)。儘管Cadigal Reserve與上述鏈接位於相同的地址,但如果我將其作爲查詢字符串的一部分輸入並刪除街道號,結果變得相當無用:link

將此直接輸入到地圖.google.com很容易找到公園本身(當然,您可以通過查找URL找到經緯度)。

是否沒有任何方式使用Google地圖API來對這樣的公園位置進行地理編碼?

回答

1

理解地理編碼不是一門精確的科學很重要。建議的做法是,如果您知道應將地址解析到特定位置的地址,則應構建緩存並使用本地(客戶端)地理編碼。

在api的第2版中,您將構建自己的客戶端緩存,其中包含通過擴展GeocodeCache預先計算的地理編碼器響應。一旦定義了緩存,您就可以調用setCache()方法並遠離您。這是相當多了說明:

http://code.google.com/apis/maps/documentation/javascript/v2/services.html#Geocoding_Caching

然而,據我所知GeocodeCache在API的V3已移除...

所以,我建議實施的已知自己的客戶端側的緩存策略地址及其相應的座標。當您的應用程序收到一個已知地址的地理編碼請求時,響應將來自您的緩存(而不是Google的地理編碼服務器)。

失敗的所有,你總是可以使用支付地理編碼服務,理論上,將有一個更準確的數據集(以及對請求等的上限)。

最後,您還應該查看Geocoding Strategies文檔,因爲它可以很好地處理這裏的一些問題。

相關問題