小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

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

 都贏888 2013-04-10

用GPS測出兩個點的經(jīng)緯度后,如何計算這兩個點之間的距離呢?

設(shè)兩點A、B的經(jīng)、緯度分別為(jA,wA)(jB,wB),則半徑為R的球面上兩點間的最短距離(大圓弧)為:

弧AB=R*arccos[sin(wA)sin(wB)+cos(wA)cos(wB)*cos(jA-jB)]

地球是一個近乎標(biāo)準(zhǔn)的橢球體,它的赤道半徑為6378.140千米,極半徑為6356.755千米,平均半徑6371.004千米。如果我們假設(shè)地球是一個完美的球體,那么它的半徑就是地球的平均半徑,記為R。如果以0度經(jīng)線為基準(zhǔn),那么根據(jù)地球表面任意兩點的經(jīng)緯度就可以計算出這兩點間的地表距離(這里忽略地球表面地形對計算帶來的誤差,僅僅是理論上的估算值)。設(shè)第一點A的經(jīng)緯度為(LonA, LatA),第二點B的經(jīng)緯度為(LonB, LatB),按照0度經(jīng)線的基準(zhǔn),東經(jīng)取經(jīng)度的正值(Longitude),西經(jīng)取經(jīng)度負值(-Longitude),北緯取90-緯度值(90-Latitude),南緯取90+緯度值(90+Latitude),則經(jīng)過上述處理過后的兩點被計為(MLonA, MLatA)和(MLonB, MLatB)。那么根據(jù)三角推導(dǎo),可以得到計算兩點距離的如下公式:

C = sin(MLatA)*sin(MLatB)*cos(MLonA-MLonB) + cos(MLatA)*cos(MLatB)

Distance = R*Arccos(C)*Pi/180

這里,R和Distance單位是相同,如果是采用6371.004千米作為半徑,那么Distance就是千米為單位。

如果僅對經(jīng)度作正負的處理,而不對緯度作90-Latitude(假設(shè)都是北半球,南半球只有澳洲具有應(yīng)用意義)的處理,那么公式將是:

C = sin(LatA)*sin(LatB) + cos(LatA)*cos(LatB)*cos(MLonA-MLonB)

Distance = R*Arccos(C)*Pi/180

以上通過簡單的三角變換就可以推出。

如果三角函數(shù)的輸入和輸出都采用弧度值,那么公式還可以寫作:

C = sin(LatA*Pi/180)*sin(LatB*Pi/180) + cos(LatA*Pi/180)*cos(LatB*Pi/180)*cos((MLonA-MLonB)*Pi/180)

Distance = R*Arccos(C)*Pi/180

1/**
2  * google maps的腳本里代碼
3  */
4 
5private const double EARTH_RADIUS = 6378.137;
6 
7private static double rad(double d)
8{
9    return d * Math.PI / 180.0;
10}
11 
12/**
13  * 根據(jù)兩點間經(jīng)緯度坐標(biāo)(double值),計算兩點間距離,單位為米
14  */
15public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
16{
17    double radLat1 = rad(lat1);
18    double radLat2 = rad(lat2);
19    double a = radLat1 - radLat2;
20    double b = rad(lng1) - rad(lng2);
21    double s = 2 * Math.Asin(Math.Sqrt(Math.Pow(Math.Sin(a/2),2) +
22     Math.Cos(radLat1)*Math.Cos(radLat2)*Math.Pow(Math.Sin(b/2),2)));
23    s = s * EARTH_RADIUS;
24    s = Math.Round(s * 10000) / 10000;
25    return s;
26}

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多