2012-05-02 55 views
-2
geocoder.geocode({ 'address': full_address}, function(results, status) { 
    lat = results[0].geometry.location.lat(); 
    lng = results[0].geometry.location.lng(); 
    alert(lat); // works perfectly 
}); 
alert(lat); // doesn't return anything 

對象外的最後一次警報怎麼沒有返回任何東西?有人知道怎麼修這個東西嗎?如何訪問谷歌地圖地理編碼器返回的值

+1

您可能需要向'alert'調用添加一些額外的文本,以標識屏幕上顯示的內容。 'geocode'調用是異步的,所以我的猜測是第二次調用'alert'實際上先運行,然後在你的回調函數中調用'alert'。你看到2個警告對話框嗎? –

+0

是的,第一個是空白的。第二個確實是第一個。 –

回答

1

可能這是一個可變範圍問題?如果該變量是對象/函數的局部變量,則該變量可能不在該塊之外定義。如果您在對象代碼之前聲明lat和lng爲全局,則可能是正確的:

var lat; 
var lng; 

geocoder.geocode({ 'address': full_address}, function(results, status) { 
lat = results[0].geometry.location.lat(); 
lng = results[0].geometry.location.lng(); 
alert(lat); // works perfectly 
}); 
alert(lat); // doesn't return anything 
+0

忘記我說的話,它不起作用,它只是忽略它。 –

相關問題