我在外部 .js 文件中有一个函数,该函数应该获取地址字符串,然后返回纬度和经度。它什么也不返回。有人可以帮忙吗?
我也想问;在 javascript 中,当您从另一个函数中调用异步函数时;外部函数终止后,异步函数是否也会终止?
这是代码,有人能解释一下为什么它不返回任何内容吗?谢谢。
function FindLatLong(address)
{
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
return { Status: "OK", Latitude: lat, Longitude: lng };
}
});
}
(我当然在顶部包含了 google 地图 js 库)
我基本上没有从地理编码器得到好的结果;如果我不将其放入 FindLatLong 函数中,而是将其嵌入到我调用 FindLatLong 的位置,则相同的代码可以工作,即上面的代码在放入 FindLatLong 函数中时不起作用,但如果我将其用作调用 javascript 的一部分,则可以工作代码。该函数确实被调用,Geocoder() 确实被调用,但是没有返回“OK”结果,实际上没有返回结果,甚至没有来自谷歌的错误。
地址字符串是“英国伦敦”
该方法是异步的,因此使用回调!
function FindLatLong(address, callback)
{
var geocoder = new google.maps.Geocoder();
geocoder.geocode({ 'address': address }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
callback({ Status: "OK", Latitude: lat, Longitude: lng });
}
});
}
并调用该函数:
FindLatLong(address, function(data) {
console.log(data);
});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)