【发布时间】:2024-01-16 05:19:01
【问题描述】:
我有一个函数可以从带有谷歌地理编码的地址获取 latLng。
function geoCode(address){
var geocoder = new google.maps.Geocoder;
geocoder.geocode({'address': address}, function(results, status) {
if (status === 'OK') {
var pos = {
lat:results[0].geometry.location.lat(),
lng:results[0].geometry.location.lng()
};
return pos;
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
}
当我在这个函数中控制台记录“pos”对象时,我得到了位置,但是当我尝试在另一个函数中控制台记录它时,例如下面的那个
function foo(){
var pos = geoCode(place);
console.log(pos.lat);
}
我收到以下警报: TypeError: undefined is not an object (evalating 'pos.lat')
pos 对象的返回似乎有问题。
【问题讨论】:
-
地理编码器是异步的,你不能从回调函数返回任何东西
标签: javascript google-maps position geocode