最近用到了根據經緯度計算地球表面兩點間距離的公式,然後就用js實現了一下。
計算地球表面兩點間的距離大概有兩種辦法。
第一種是預設地球是乙個光滑的球面,然後計算任意兩點間的距離,這個距離叫做大圓距離(the great circle distance)。
公式如下:
使用js來實現為:
varearth_radius
=6378137.0
;
//單位m
varpi
=math.pi;
function
getrad(d)/**
* caculate the great circle distance
* @param lat1
* @param lng1
* @param lat2
* @param lng2
*/function
getgreatcircledistance(lat1,lng1,lat2,lng2)
這個公式在大多數情況下比較正確,只有在處理球面上的相對點的時候,會出現問題,有乙個修正的公式,因為沒有需要,就沒有找出來,可以在wiki上查到。
當然,我們都知道,地球其實並不是乙個真正的圓球體,而是橢球,所以有了下面的公式:
/**/
function
getflatterndistance(lat1,lng1,lat2,lng2)
這個公式計算出的結果要比第乙個好一些,當然,最後結果的經度實際上還取決於傳入的座標的精度。
根據經緯度計算兩地距離
最近工作需要,網上搜尋了下根據經緯度計算兩地距離的方法,發現要麼是幾何法,畫圖 作一堆輔助線,然後證明推理,要麼二話不說直接套公式。這篇文章介紹一種容易理解的方式來求這個距離。地球是個不規則的橢球體 為了簡便我們當作球體來計算。球體上兩地的最短距離就是經過兩點的大圓的劣弧長度。思路如下 弧長 弦長 ...
根據經緯度計算距離 Java
根據兩個位置的經緯度,來計算兩地的距離 單位為km 引數為double型別 long1 位置1經度 lat1 位置1緯度 long2 位置2經度 lat2 位置2緯度 public class distanceutils 根據兩個位置的經緯度,來計算兩地的距離 param longitudeuser...
給定經緯度計算距離 根據兩點經緯度計算距離
根據兩點經緯度計算距離 這些經緯線是怎樣定出來的呢?地球是在不停地繞地軸旋轉 地軸是一根通過地 球南北兩極和地球中心的 假想線 在地球中腰畫乙個與地軸垂直的大圓圈,使圈上的每一點都和南北兩 極的距離相等,這個圓圈 就叫作 赤道 在赤道的南北兩邊,畫出許多和赤道平行的圓圈,就是 緯 圈 構成這些圓圈的...