我想爲地圖工具做一個簡單的地理編碼功能。我得到的地理編碼很好,但我希望將位置對象作爲地理編碼函數的返回值傳遞回去。從函數返回GMap位置對象
事情是這樣的:
function codeAddress(address) {
geocoder.geocode({ 'address': address}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var location = results[0].geometry.location;
console.dir(location);
return location;
} else {
return false;
}
});
}
位置項目的console.dir顯示預期的位置對象,因此函數被調用併成功返回的數據。
這個函數被另一個進程調用,然後它會建立標記。
if (coordinates = codeAddress(myaddress){
// do stuff
}
然而,coordinates
變量總是評估爲不確定,所以要「做的東西」的條件,從來沒有遇到過。
我知道我可能錯過了關於座標變量var的定義,但我不確定它是什麼。
感謝您的幫助。
基本代碼在:http://jsfiddle.net/2TXZ4/3/雖然地圖沒有被繪製出於任何原因。
好吧,它看起來像我這樣的問題是,這是一個異步請求 - 如果我在codeAddress函數中硬編碼返回值,它都按預期工作。所以它必須是請求的性質。但仍然不確定如何最好地處理這個問題。 – julio