日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

两个经纬度偏角_怎么根据两个经纬度计算出航向

發布時間:2024/3/13 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 两个经纬度偏角_怎么根据两个经纬度计算出航向 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

C/C++ codedouble CChartCtrl::CalcltDirct(float fStarPtx, float fStarPty, float fEndPtx, float fEndPty)

{

//已知起始點坐標(fStartPtx, fStartPty)及到達點坐標(fEndPtx,fEndPty)

//計算航向fDirect.

//起始點,到達點坐標:經緯度

//航向:角度

//Created by zhl

//2002.7.2

//check param

CString strErr;

strErr.LoadString(IDS_CHK_15002);

if(fStarPtx>90.0f||fStarPtx180.0f

||fStarPty90.0f||fEndPtx

||fEndPty>180.0f||fEndPty

{

// AfxMessageBox(strErr);

return -1;

}

double delta_fy=fEndPtx-fStarPtx;

double delta_lnmg=fEndPty-fStarPty;

//經度差應小于180度

if(delta_lnmg < -180.0)

delta_lnmg += 360.0;

if(delta_lnmg > 180.0)

delta_lnmg -= 360.0;

//delta_lnmg > 0.0 從 西 ---> 東 delta_lnmg < 0.0 從 東 ---> 西

BOOL bGoEast=FALSE,bGoNorth=FALSE;

if(delta_lnmg >= 0.0)

bGoEast=TRUE;

else

bGoEast=FALSE;

//delta_fy > 0.0 從 南 ---> 北 delta_fy < 0.0 從 北 ---> 南

if(delta_fy>=0.0)

bGoNorth=TRUE;

else

bGoNorth=FALSE;

if(delta_fy==0)

{

if(delta_lnmg==0)return 0;

return bGoEast?90:270;

}

double d1=7915.7045*(e/2*log10((1-e*sin(fStarPtx*M_PI/180))

/(1+e*sin(fStarPtx*M_PI/180)))

+log10(tan((45+fStarPtx/2)*M_PI/180.0)));//緯度漸長率

double d2=7915.7045*(e/2*log10((1-e*sin(fEndPtx*M_PI/180))/

(1+e*sin(fEndPtx*M_PI/180)))

+log10(tan((45+fEndPtx/2)*M_PI/180.0)));//緯度漸長率

double delta_d=d2-d1;緯度漸長率差(分)

double dbDir=atan(delta_lnmg*60/delta_d)*180/M_PI;

if(!bGoEast&&bGoNorth)dbDir=360+dbDir;

if(!bGoEast&&!bGoNorth)dbDir=180+dbDir;

if(bGoEast&&!bGoNorth)dbDir=180+dbDir;

return dbDir;

}

------解決方案--------------------

這個問題不難啊,LZ。這種距離不遠的情況下無需考慮地球的曲率。所以直接按照平面坐標計算即可。記住幾點:正北為0度,順時針為正,這樣兩點之間,采用正切(tan)或正弦、余弦等方式計算角度即可得到航向。

總結

以上是生活随笔為你收集整理的两个经纬度偏角_怎么根据两个经纬度计算出航向的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。