我正在使用jquery颜色框来加载谷歌地图静态图像。颜色框的标题应显示地图上显示的位置的地址。我无法在显示标题之前获取地址。我正在使用此处的getReverseGeoCode函数:Reverse Geocoding Code来获取给定纬度和经度坐标(不断更新)的地址。
我的代码:
$('.locationLink').unbind().click(function (e) {
e.preventDefault();
mapImageURL = "Link To The Map Static Image with lat and long as parameters"
$.colorbox({
iframe:false,
width:"500px",
height:"450px",
html:"<img src = "+mapImageUrl+"></p>",
onOpen: function(){
getReverseGeocodingData(lat,long, function(address){
formattedAddress = address;
});
},
title:function(address){
return formattedAddress;
}
});
});
function getReverseGeocodingData(lat, lng, callback) {
var latlng = new google.maps.LatLng(lat, lng);
// This is making the Geocode request
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'latLng': latlng }, function (results, status) {
if (status !== google.maps.GeocoderStatus.OK) {
alert(status);
}
// This is checking to see if the Geoeode Status is OK before proceeding
if (status == google.maps.GeocoderStatus.OK) {
address = (results[0].formatted_address);
console.log('Address is:' + address);
callback(address);
}
});
}
问题在于lat和long不断更新(并且彩色框在打开时显示正确的静态图像),但地址“落后”&#39; (显示最后一个地址,而不是最近的地址)。
经过一些调试后,我得出结论,当颜色框加载时,getReverseGeocoding函数尚未完成执行(因此它不会显示最新的地址,而是显示最后一个lat的地址并且长时间使用)。
我的问题是如何在彩盒加载标题之前确保getReverseGeocoding函数已完成执行并获取最新地址?
非常感谢帮助人员,对不起,如果我错过了某个地方的支架,那么新的堆栈溢出。
彼得