Javascript 谷歌地图地理编码功能

Javascript 谷歌地图地理编码功能,javascript,asp.net,google-maps,Javascript,Asp.net,Google Maps,我已经做了一个函数来验证纬度和经度,并根据latlong返回true和false function valitdateLatLong(latitude, longitude) { latlng = new google.maps.LatLng(latitude, longitude); geocoder.geocode({ 'latLng': latlng }, function (results, status) { if (status == google.m

我已经做了一个函数来验证纬度和经度,并根据latlong返回true和false

function valitdateLatLong(latitude, longitude) {
    latlng = new google.maps.LatLng(latitude, longitude);
    geocoder.geocode({ 'latLng': latlng }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            return true;
        } else {
            return false;
        }
    });
}
我应该如何调用此函数? 我用过

if(valitdateLatLong($("#Latitude").val(), $("#Longitude").val())){
    // logic
}
else{
   // logic
}
但它并没有起到很好的作用。
请帮帮我。

你需要的是一个承诺

geocoder.geocode
,将调用远程服务器,执行任务需要时间。由于需要花费大量时间(几秒钟),因此结果将作为回调返回(AsyncTask)

您可以将逻辑放入AsyncTask中,也可以使用承诺


什么是无效的纬度/经度?当然[-90,+90]的任何纬度和[-180,+180]的任何经度(两者都是度)都是有效的还有,它以什么方式“工作不正常”?如果它将找到该点的任何地址,则此函数将返回true。因此,当存在latlong时,指向任何海洋的点将不会创建任何地址。问题是什么?您的代码非常适合验证。它返回未定义的。