使用Googles latlng API无法设置Var。

时间:2016-05-20 15:50:14

标签: javascript

我已经在stackoverflow上查找了答案,但似乎无法让它工作。这段代码不会将var'pos'设置为任何内容:

var geocoder= new google.maps.Geocoder();
var pos = geocoder.geocode({'address': getCookie('banner-location')}, function(results, status) {
     if (status == google.maps.GeocoderStatus.OK) {
         return {lat: results[0].geometry.location.lat(), lng: results[0].geometry.location.lng()};
     } else {
         return {lat: 0, lng: 0};
     }
});

1 个答案:

答案 0 :(得分:0)

我并不完全熟悉Google Maps API,但从这个Geocoding Service页面快速浏览一下,您似乎需要在pos响应中设置geocode变量回调函数。响应回调函数的返回值不是geocode's返回值。以下内容可以帮助您:

var geocoder= new google.maps.Geocoder();
// Create pos beforehand to use in the callback to retrieve the data
var pos = null;
geocoder.geocode({'address': getCookie('banner-location')}, function(results, status) {
    // Check the status and set the pos variable here
    if (status == google.maps.GeocoderStatus.OK) {
        pos = {lat: results[0].geometry.location.lat(), lng: results[0].geometry.location.lng()};
    } else {
        pos = {lat: 0, lng: 0};
    }
});

上面我在pos响应回调中设置了geocode变量。