【问题标题】:Calculating distance between two points shows wrong distance计算两点之间的距离显示错误的距离
【发布时间】:2012-12-31 21:15:00
【问题描述】:

我使用以下两种方法使用纬度和经度计算谷歌地图中两点之间的距离。

            TYPE I:
         function CalcDistanceBetween(lat1, lon1, lat2, lon2) {
//Radius of the earth in:  1.609344 miles,  6371 km  | var R = (6371 / 1.609344);
var R = 6371; // Radius of earth in Miles 
var dLat = toRad(lat2-lat1);
var dLon = toRad(lon2-lon1); 
var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
        Math.cos(toRad(lat1)) * Math.cos(toRad(lat2)) * 
        Math.sin(dLon/2) * Math.sin(dLon/2); 
var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
var d = R * c;
   alert("d==" + d);
return d;
}
  alert(CalcDistanceBetween(13.125511084202,80.029651635576,12.9898593006481,80.2497744326417));
                 function toRad(Value) {
            /** Converts numeric degrees to radians */
         return Value * Math.PI / 180;
         }  

    TYPE II:

            var p1 = new google.maps.LatLng(13.125511084202,80.029651635576);
            var p2 = new google.maps.LatLng(12.9898593006481,80.2497744326417);

            alert(calcDistance(p1, p2));

           //calculates distance between two points in km's
                       function calcDistance(p1, p2){
                return (google.maps.geometry.spherical.computeDistanceBetween(p1, p2) /                              
                  1000).toFixed(2);
                }    

以上两种类型都给出 28 公里 作为距离。 但是当我检查具有相同经度和经度的谷歌地图时,它返回 36.8 公里。 示例检查我的代码和谷歌地图如下所示..:

你建议我得到准确的结果吗??

【问题讨论】:

    标签: javascript html google-maps google-maps-api-3


    【解决方案1】:

    可能我完全弄错了 :) 但您的方法似乎计算了这 2 个点之间的实际距离,当您使用谷歌路线时,它是您所走路线的距离。

    【讨论】:

      【解决方案2】:

      Google 给出的距离来自建议的路线。这不是从 A 点到 B 点的直接路径。您计算的距离是直接路径,只有当您从 A 点直接飞到 B 点时才会出现这种情况。
      如果你想得到谷歌输出的结果,看这里:An elegant way to find shortest and fastest route in Google Maps API v3?

      【讨论】:

      • 他是对的,从A到B的距离是“Air Line”(直接,不包括路线和东西)。
      • 是的,你是对的..但是如果你提供示例代码..它对我有帮助
      猜你喜欢
      • 2010-10-30
      • 2011-04-23
      • 2014-11-14
      • 1970-01-01
      • 2014-11-29
      • 2017-08-27
      相关资源
      最近更新 更多