gpt4 book ai didi

javascript - 未调用地理编码反向回调函数

转载 作者:行者123 更新时间:2023-11-28 08:48:25 24 4
gpt4 key购买 nike

我是 JavaScript 新手。我正在尝试使用 Google api 的 Gmap v3 来实现反向地理编码。我读了很多教程并写了一个简单的代码。问题是传递给 geocoder.geocode() 的匿名函数有时有效,有时则无效。感谢您的帮助!。

    function geoCode(latStr,lngStr){


var lat = parseFloat(latStr);
var lng = parseFloat(lngStr);
var latlng = new google.maps.LatLng(lat, lng);

codeLatLng(latlng,function(addr){
alert(addr); // sometimes message appears.
});
}


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

最佳答案

我不确定 Google 服务是否会返回 null 还是空数组,但为了安全起见,您可以使用以下方法检查两者: if (results && results.length > )。另外,您是否忘记了 Javascript 中的数组是从零开始的?您可能想要结果[0]:

if (results && results.length > 0) {
callback(results[0].formatted_address);
} else {
alert("No results found");
}

通过解释:如果“results”是长度为 0 或 1 的数组,您的代码将在 if (results[1]) 上崩溃,因此我猜测间歇性失败。

关于javascript - 未调用地理编码反向回调函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19460933/

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