【问题标题】:Google map geocode function谷歌地图地理编码功能
【发布时间】:2015-05-06 06:35:38
【问题描述】:

我做了一个函数来验证纬度和经度,并根据纬度返回真假

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
}

但它不能正常工作。 请帮帮我。

【问题讨论】:

  • 什么是无效的纬度/经度? [-90, +90] 中的任何纬度和 [-180, +180] 中的任何经度(两者的度数)肯定有效? - - - 另外,“无法正常工作”是什么情况?
  • 这个函数如果能找到那个点的任何地址,就会返回true。所以当有一个经纬度点到任何海洋时都不会创建任何地址。
  • 有什么问题?您的代码非常适合验证。
  • 它返回未定义。

标签: javascript asp.net google-maps


【解决方案1】:

你需要的是一个承诺。

geocoder.geocode,将调用远程服务器,执行任务需要时间。由于需要很长时间(几秒钟),结果以回调(AsyncTask)的形式返回。

您可以将逻辑放在 AsyncTask 中,也可以使用 Promise。

http://odetocode.com/blogs/scott/archive/2012/06/18/geolocation-geocoding-and-jquery-promises.aspx

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-29
    • 2011-08-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多