我已经在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};
}
});
答案 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
变量。