gpt4 book ai didi

javascript - 从反向地理编码回调中获取地址

转载 作者:行者123 更新时间:2023-12-03 11:11:44 27 4
gpt4 key购买 nike

我一直在开发一个小型 JavaScript 项目,该项目获取存储在 xml/kml 文件中的坐标并将其显示在自定义 Google map 应用程序中。除了反向地理编码之外,一切都按我想要的方式工作。当我在回调函数中运行代码时,我能够显示格式化的地址,但我找不到存储地址以供以后使用的方法(对于动态事件,例如当用户单击标记时显示完整地址)。

有什么方法可以将地址存储在回调函数中,然后稍后再获取吗?每当我尝试时,它都会说该地址未定义。见下文:

var address;
var geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(lat, lng);

geocoder.geocode({'latLng': latlng}, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
address = results[1].formatted_address;
alert(address); // this displays correctly
}
else {
alert("No results found");
}
}
else {
alert("Geocoder failed due to: " + status);}
}
);

alert(address); // this displays 'undefined'

最佳答案

Is there any way to store the address inside the callback function and then get it later?

是的,但问题是你不想稍后再获取它。您正试图立即获得它。

让我解释一下。正如 JavaScript 中常见的那样,geocoder.geocode异步。这意味着它会执行一些工作,当工作完成时,它会调用回调,但这里有一个问题:它会立即返回。这意味着当您在最后一行执行 alert(address) 时,geocoder.geocode 仍在工作,您的回调尚未被调用,并且 address 尚未设置。

解决方案是在回调中使用address,或者(为了组织的目的)定义一个从回调中调用的函数来完成后续工作。

关于javascript - 从反向地理编码回调中获取地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27552653/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com