2011-10-28 89 views
0

我正在爲我公司的送貨系統工作,用戶輸入(以及其他一些信息)目的地需要運送某物。我們正在遷移的系統僅將這些信息用作靜態文本,因此用戶可以輸入速記地址,例如「Alsip 60801」。Google Maps API:正在搜索

我最初的想法是,這種簡寫文本可以與Google Maps API完美配合,因爲我可以在maps.google.com中輸入簡寫的內容,並且它通常可以工作。

所以,我寫了一些代碼來運行geocoding他們的速記輸入。令我不幸意外的是,從地理編碼搜索返回的結果與從maps.google.com返回的結果大不相同。

例如,當我在maps.google.com上搜索「Alsip 60801」時,我得到Alsip, IL 60801.這是正確的。但是當我使用Google Maps API進行搜索時,我獲得了some Alsip up in Canada.

我應該使用Google Maps API的另一個搜索功能嗎?或者我失蹤的某種標誌?

以供參考,這是我的代碼的短版:

var geocode = new google.maps.Geocoder(); 

geocode.geocode({'address': 'Alsip 60801' }, function(results, status) { 
     console.log(results[0].geometry.location); 
     //Outputs the LatLng of a Canada address 
}); 

編輯1:我忘了提,我也嘗試在地址解析請求中設置的區域。我把它給了我們,並得到了相同的結果。

更新 - 已回覆:我標記@ Jitimaro的答案是正確的,因爲將國家代碼粘貼到結果的末尾似乎有效。我不確定這是否會適用於各種輸入(很難預測速記地址格式),但現在看起來工作正常。

但是,我實際上正在處理這個不同的方式。實際上,我在地理編碼請求的末尾提供了一個LatLngBounds參數,而不是在地址末尾添加國家代碼。這樣可以在我的範圍內爲所有地址提供優惠待遇,因爲它正在搜索。

+0

也許你的國旗離開了嗎? – Bytemain

+0

@Jitamaro試過了。更新了問題以包含該位信息。 – jwegner

回答