2013-08-21 21 views
0

我想找到一組緯度經度值並將其分配給一個變量。 我的代碼看起來像這樣獲取不同地點的經度和緯度值到一個值

var k = findLattitudeLongitude("Italy"); 
console.log(k) // comes undefined 
function findLattitudeLongitude(input){ 
    var geocoder = new google.maps.Geocoder(); 
    geocoder.geocode({ 'address': input}, function(results, status) { 
     var location = results[0].geometry.location; 
     return location; 

    }); 
    } 

但它是未定義的。達到上述要求的最佳方法是什麼?還有其他方法嗎?

+0

可能重複[爲什麼這個變量未定義或沒有返回?](http://stackoverflow.com/questions/12467690/why-is-this-variable-undefined-or-not-returned) – geocodezip

回答

1

這是奇怪的是,該函數返回undefined,你可以做的是調用另一個函數,這樣的工作我沒問題,你可以通過經緯度PARAMS如下面的代碼或整個對象

$(document).ready(function() { 
function getlatlan(){ 
geocoder = new google.maps.Geocoder(); 
geocoder.geocode({ 'address': "Italy"}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
     dosome(results[0].geometry.location.nb,results[0].geometry.location.mb) 
    return true; 

    ; 
}}); 
} 
function dosome(lat,lng){ 
console.log(lat,lng); 
} 
getlatlan(); 
}); 
+1

console.log和警報箱總是工作...嘗試返回值!這是行不通的!! – user1371896

+0

是的,這是回報undefined嘗試在我的答案代碼也許這將是有用的與你 –

+0

BT當玉試圖找到朗和一組國家長..它不會返回所有的座標.. – user1371896

1

其實你所做的是正確的。

問題是從Google geocoder收到的響應需要一些時間。

爲了更好地理解,我創建了一個fiddle

+0

所以,這是什麼最好的方式來做到這一點?有沒有其他方法或解決方案來獲取經度值? – user1371896

+0

事情是,我試圖找到一個最佳的方式來使用函數findLattitudeLongitude(「意大利」)找到經度值,我明白, – user1371896

+0

。我們必須等待Google地理編碼器的響應。讓我試試看。你需要將這個值返回給k嗎? – Praveen