地球表面兩點距離計算
阿新 • • 發佈:2018-06-02
GIS//地球半徑,單位為公裏 A點經、緯度,Lat2 Lng2 分別表示B點經緯度;
var EARTH_RADIUS = 6378.137;
//計算弧度
rad : function (degree) {
return degree * Math.PI / 180.0;
},
//計算兩個經緯度坐標之間的距離,返回單位為公裏的數值
calDistance : function (lat1, lng1, lat2, lng2) {
var radLat1 = this.rad(lat1);
var radLat2 = this.rad(lat2);
var a = radLat1 - radLat2;
var b = this.rad(lng1) - this.rad(lng2);
var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + Math.cos(radLat1)*Math.cos(radLat2)*Math.pow(Math.sin(b/2),2)));
s = s * this.EarthRadius/1000;
s = Math.round(s * 10000) / 10000;
return s;
},
//測試:計算從上海和北京兩點之間的距離
alert(calDistance(31.22, 121.48, 39.90, 116.40));
/*函數說明如下:
1、公式中經緯度均用弧度表示;
2、Lat1 Lng1 分別表示
3、a=Lat1 – Lat2 為兩點緯度之差 b=Lng1 -Lng2 為兩點經度之差;
4、6378.137為地球半徑,單位為公裏;
*/
地球表面兩點距離計算