我正在尝试将与纬度、经度相对应的地址存储在变量中(在 javascript 中)。我创建了一个回调函数(在阅读了很多关于它的帖子之后),代码如下。现在我想将地址存储在一个名为 location3 的变量中。
奇怪的是,对于分配 location3 之后的警报,它是未定义的。但如果在 300 毫秒后查看它,那么它会给出正确的值。我想立即获得分配给 location3 的地址。欢迎任何建议。
function codeLatLng1(lat,long,callback) {
var geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(lat,long);
if (geocoder) {
geocoder.geocode({'latLng': latlng}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
callback(results[1].formatted_address);
myvariable=results[1].formatted_address;
} else {
alert("No results found");
}
} else {
alert("Geocoder failed due to: " + status);
}
});
}
}
lat1_last=37;long1_last=-100;
codeLatLng1(lat1_last,long1_last,function(locat) {location3=locat;});
alert (location3); // THIS ALERT SHOWS THAT IT IS STILL UNDEFINED
setTimeout(function(){alert (location3);},300); // THIS ALERT GIVES THE RIGHT ADDRESS