Google Maps計算兩個坐標(biāo)的距離

private const double EARTH_RADIUS = 6378137.0;
private static double rad(double d){
  return d * Math.PI / 180.0;
}
public static double GetDistance(double lat1, double lng1, double lat2, double lng2){
  double radLat1 = rad(lat1);
  double radLat2 = rad(lat2);
  double a = radLat1 - radLat2;
  double b = rad(lng1) - rad(lng2);
  double 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;
}

在線經(jīng)緯距離計算小工具

![](http://www.forkosh.com/mathtex.cgi? \Large S={2\times\arcsin{\sqrt{{\sin}{2}(\frac{a}{2})+\cos(Lat1)\times\cos(Lat2)\times{\sin}{2}(\frac{2})}}\times6378.137})

公式解釋如下:
Lat1 Lng1 表示A點緯度和經(jīng)度,Lat2 Lng2 表示B點緯度和經(jīng)度
a = Lat1 – Lat2 為兩點緯度之差 b = Lng1 -Lng2 為兩點經(jīng)度之差
6378.137為地球半徑,單位為KM
計算出來的結(jié)果單位為KM

引自:明明的博客

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 1 序: 很多新接觸GIS的人員對地圖投影以及坐標(biāo)系統(tǒng)很難理解,甚至做GIS開發(fā)做了好幾年的人也有這方面的疑惑,地...
    三維GIS那點事_王躍軍閱讀 17,832評論 3 43
  • 這些經(jīng)緯線是怎樣定出來的呢?地球是在不停地繞地軸旋轉(zhuǎn)(地軸是一根通過地球南北兩極和地球中心的假想線),在地球中腰畫...
    Akitas閱讀 1,368評論 0 2
  • 今天把開放日的課程給結(jié)束了心情很好啊。那么多的家長我都不會害怕了呢。小朋友也是很配合我的心情棒棒的啦加油加油 有所...
    自己也很好閱讀 139評論 0 0
  • 我們?yōu)楹我ぷ??工作到底能給我們帶來什么?沒錢還不努力工作,人笨還不好好工作,肩膀上面一堆責(zé)任還不好好工作? 有人...
    科霖大叔閱讀 356評論 0 0
  • 沒有托腮用花剪去修葉裁邊,也沒特意追著陽光曬上幾盆白水。 上次大掃除躺在報紙上準(zhǔn)備扔掉的綠蘿,被撿起來撣了撣土,隨...
    子頔閱讀 211評論 0 0

友情鏈接更多精彩內(nèi)容