2012-07-25 50 views
1

我正在嘗試使用Google地理編碼器進行反向地理編碼查找。我在8個值上運行完全相同的命令,並且我只在它們中的兩個上出現錯誤,這讓我感到困惑,因爲其中一個失敗的值與其中一個工作值相同。 (「工作」值並不真正起作用 - 它們仍然返回來自'formatted_address'字段的未定義值,但它們不會引發錯誤)。我正在運行的命令如下:Google Geocoder返回null從反向查找

geocoder.geocode({latLng: new google.maps.LatLng(machineList[i].y, machineList[i].x)}, function(results, status) { address = results[0]; }); 

我收到來自Javascript的類型錯誤,聲稱結果爲空。我不知道爲什麼會發生這種情況。有任何想法嗎?

+0

什麼具體的值導致null返回? – 2012-07-25 21:37:23

+0

明白了 - 經緯度是38.1471977000 -97.4348983000。錯誤現在來自使用該值的行 - 'data + = address.formatted_address'。不要問我爲什麼 - 我完全沒有線索。儘管現在我認爲這是一個計時問題 - 如果我在實際使用地址值之前插入警報,則不會出現錯誤。 – Crash 2012-07-26 15:13:25

回答

3

那麼,事實證明這是一個時間問題。對於某些位置,geocode()命令的完成時間比其他位置長,這導致值顯示爲空。我最終通過將所有後續代碼移入回調函數來消除該問題(我之前沒有這樣做過,因爲整個事情都在循環內部運行,並且我在將它作爲迭代器傳遞給迭代器時遇到了一些困難參數)。現在一切似乎都運轉良好,地點正如他們應該顯示的那樣。

+0

+1分享解決方案。 – 2012-07-26 23:14:39