成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

地球兩點的距離

pubdreamcc / 1683人閱讀

摘要:獲取地球兩點的距離最近在做小程序的時候遇到要計算兩點之間的距離但小程序沒有相關(guān)的方法只好自己來了背景知識地球的半徑地球雖然是個橢圓但也極像個正圓相差大概公里所以就按正圓來算了半徑是公里弧長公式弧度圓心角度數(shù)余弦定律模型思路假設(shè)求兩點的距

獲取地球兩點的距離

最近在做小程序的時候遇到要計算兩點之間的距離,但小程序沒有相關(guān)的方法,只好自己來了.

背景知識 地球的半徑

地球雖然是個橢圓,但也極像個正圓(相差大概20公里),所以就按正圓來算了,半徑是6371.393公里.

弧長公式

L = 弧度 * R = 圓心角度數(shù) × π × R / 180

余弦定律

2abcosC=a^2+b^2-c^2
c^2 = a^2+b^2-2abcosC

模型

思路

假設(shè)求A,B兩點的距離,半徑已經(jīng)知道了,

現(xiàn)在只需求∠AOB弧度.

但∠AOB弧度可以通過AB的長度獲得

運算過程

根據(jù)上面的圖算

假設(shè)A坐標(JA,WA),B坐標(JB,WB).
即∠AOC = WA, ∠BOD = WB.

根據(jù)三角形函數(shù)

AC = sin(WA) R, BD = sin(WB) R
所以 BE = BD - AC

因為∠COD = (JB - JA), 根據(jù)余弦定律
CO = cos(WA) R, DO = cos(WB) R
所以 AE = CD = 根號[CO^2 + DO^2 - 2 CO DO * cos(∠COD)]

根據(jù)勾股定律
AB^2 = AE^2 + BE^2

因為?AOB是等腰三角形,三線合一,GO為垂直平分線
AB^2 = 2R^2 - 2R^2 * cosC;
cosC = [2R^2 - AB^2] / 2R^2;
簡化的
∠AOB弧度 = acos[sin(WA)sin(WB) + cos(WA)cos(WB)cos(JB-JA)]

L = ∠AOB弧度 * R

代碼
function _Radian(num) {
    return num * Math.PI / 180;
}

function CalculateDistance(lata, lnga, latb, lngb) {
    var earthR = 6371.393;
    var WA, WB;
    WA         = _Radian(lata);
    WB         = _Radian(latb);

    var lngMinus  = Math.abs(lngb - lnga) > 180? 360 - Math.abs(lngb - lnga): Math.abs(lngb - lnga);
    var lngRadian = _Radian(lngMinus);
    var ANGLE     = Math.sin(WA) * Math.sin(WB) + Math.cos(WA) * Math.cos(WB) * Math.cos(lngRadian);
    var L         = Math.acos(ANGLE) * earthR;
    return L;
}

用_Radian發(fā)角度轉(zhuǎn)化為弧度.
因為取兩點的最小值,所以但經(jīng)度之間差大于180時,再用360 - 經(jīng)度差,取最小經(jīng)度差.

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/89577.html

相關(guān)文章

  • 根據(jù)經(jīng)緯度計算兩地距離

    摘要:最近工作需要,網(wǎng)上搜索了下根據(jù)經(jīng)緯度計算兩地距離的方法,發(fā)現(xiàn)要么是幾何法,畫圖作一堆輔助線,然后證明推理,要么二話不說直接套公式。球體上兩地的最短距離就是經(jīng)過兩點的大圓的劣弧長度。 最近工作需要,網(wǎng)上搜索了下根據(jù)經(jīng)緯度計算兩地距離的方法,發(fā)現(xiàn)要么是幾何法,畫圖、作一堆輔助線,然后證明推理,要么二話不說直接套公式。這篇文章介紹一種容易理解的方式來求這個距離。 0b00 思路 地球是個不規(guī)...

    malakashi 評論0 收藏0
  • mysql,php和js根據(jù)經(jīng)緯度計算距離

    摘要:計算精度與谷歌地圖的距離精度差不多,相差范圍在米以下。以上代碼大部分來自網(wǎng)上收集,經(jīng)過驗證過的,可以使用 根據(jù)經(jīng)緯度計算距離公式 showImg(https://segmentfault.com/img/bV6zX2?w=437&h=76); 圖片來自互聯(lián)網(wǎng) 對上面的公式解釋如下: Lung1 Lat1表示A點經(jīng)緯度, Lung2 Lat2表示B點經(jīng)緯度; a=Lat1 – Lat2...

    wanglu1209 評論0 收藏0
  • mysql,php和js根據(jù)經(jīng)緯度計算距離

    摘要:計算精度與谷歌地圖的距離精度差不多,相差范圍在米以下。以上代碼大部分來自網(wǎng)上收集,經(jīng)過驗證過的,可以使用 根據(jù)經(jīng)緯度計算距離公式 showImg(https://segmentfault.com/img/bV6zX2?w=437&h=76); 圖片來自互聯(lián)網(wǎng) 對上面的公式解釋如下: Lung1 Lat1表示A點經(jīng)緯度, Lung2 Lat2表示B點經(jīng)緯度; a=Lat1 – Lat2...

    寵來也 評論0 收藏0

發(fā)表評論

0條評論

閱讀需要支付1元查看
<