1. 程式人生 > >地球表面兩點距離計算

地球表面兩點距離計算

GIS

//地球半徑,單位為公裏

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、公式中經緯度均用弧度表示;

2Lat1 Lng1 分別表示

A點經、緯度,Lat2 Lng2 分別表示B點經緯度;

3a=Lat1 Lat2 為兩點緯度之差 b=Lng1 -Lng2 為兩點經度之差;

46378.137為地球半徑,單位為公裏;

*/


地球表面兩點距離計算