2013-08-21 19 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