1、JavaScript版:通過兩個gps座標計算兩點之間實際距離(因爲考慮到地球的半徑,準確度還行) 其實是直接把這篇文章的java版改成js版而已
/** * 計算兩個gps點的距離 * 出處: http://blog.csdn.net/ztp800201/article/details/44676867 * 使用例子,計算廣州到韶關的距離 console.log(getDistance(24.82919,113.596248,23.143082,113.338686)) * lng:經度,lat:緯度 * @param aLat number 第一個和第二個參數可以寫成對象{lat:23,lng:133},表示第一個和第二個點的lat+lng * @param aLng number * @param bLat number * @param bLng number * @return number 單位爲千米 * */ var getDistance = function(aLat,aLng,bLat,bLng){ var EARTH_RADIUS = 6378.137;//地球半徑,單位千米 if(typeof aLat=='object'){ bLat = aLng.lat; bLng = aLng.lng; aLng = aLat.lng; aLat = aLat.lat; } if(!(aLat&&aLng&&bLat&&bLng)){ console.error('[getDistance]參數不足'); return; } function rad(d){ return d * Math.PI / 180.0; } function GetDistance(lat1, lng1, lat2, lng2){ var radLat1 = rad(lat1); var radLat2 = rad(lat2); var a = radLat1 - radLat2; var b = rad(lng1) - 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 * EARTH_RADIUS; s = Math.round(s * 10000) / 10000; return s; } return GetDistance(aLat,aLng,bLat,bLng); };