![地球上兩點的經(jīng)緯度計算他們距離的公式.doc_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/efd1d06d-e1c1-4f0e-9931-88f14a8f85ed/efd1d06d-e1c1-4f0e-9931-88f14a8f85ed1.gif)
![地球上兩點的經(jīng)緯度計算他們距離的公式.doc_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/efd1d06d-e1c1-4f0e-9931-88f14a8f85ed/efd1d06d-e1c1-4f0e-9931-88f14a8f85ed2.gif)
![地球上兩點的經(jīng)緯度計算他們距離的公式.doc_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/efd1d06d-e1c1-4f0e-9931-88f14a8f85ed/efd1d06d-e1c1-4f0e-9931-88f14a8f85ed3.gif)
![地球上兩點的經(jīng)緯度計算他們距離的公式.doc_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/efd1d06d-e1c1-4f0e-9931-88f14a8f85ed/efd1d06d-e1c1-4f0e-9931-88f14a8f85ed4.gif)
![地球上兩點的經(jīng)緯度計算他們距離的公式.doc_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-3/3/efd1d06d-e1c1-4f0e-9931-88f14a8f85ed/efd1d06d-e1c1-4f0e-9931-88f14a8f85ed5.gif)
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、假設(shè)地球是一個標準球體,半徑為R,并且假設(shè)東經(jīng)為正,西經(jīng)為負,北緯為正,南緯為負, 則 A(x,y)的坐標可表示為(R*cosy*cosx, R*cosy*sinx,R*siny) B(a,b)可表示為(R*cosb*cosa ,R*cosb*sina,R*sinb) 于是,AB對于球心所張的角的余弦大小為 cosb*cosy*(cosa*cosx+sina*sinx)+sinb*siny=cosb*cosy*cos(a-x)+sinb*siny 因此AB兩點的球面距離為 R*arccoscosb*cosy*cos(a-x)+sinb*siny 注:1.x,y,a,b都是角度,最后結(jié)果中給出的
2、arccos因為弧度形式。 2.所謂的“東經(jīng)為正,西經(jīng)為負,北緯為正,南緯為負”是為了計算的方便。 比如某點為西京145°,南緯36°,那么計算時可用(-145°,-36°) 3.AB對球心所張角的球法實際上是求<OA>和<OB>兩向量的夾角K。 用公式<OA>*<OB>=|OA|*|OB|*cosK 可以得到其中地球平均半徑為6371.004 km 假設(shè)地球是個標準的球體:半徑可以查出來,假設(shè)是R:如圖:要算出A到B的球面距離,先要求出A跟B的夾角,即角AOB,求角AOB可以先求AOB的最大邊
3、AB的長度。在根據(jù)余弦定律可以求夾角。AB在三角形AQB中,AQ的長度可以根據(jù)AB的緯度之差計算。BQ在三角形BPQ中,BP和PQ可求,角BPQ可以根據(jù)兩者的經(jīng)度求出,這樣BQ的長度也可以求出來,所以AB的長度是可以求出來的。因為三角形ABQ是直角三角形,已經(jīng)得到兩個邊知道了角AOB后,AB的弧長是可以求的。這樣推出其公式就不難了 關(guān)于用經(jīng)緯度計算距離: 地球赤道上環(huán)繞地球一周走一圈共40075.04公里,而一圈分成360°,而每1°(度)有60,每一度一秒在赤道上的長度計算如下: 40075.04km/360°=111.31955km 111.31955km/6
4、0=1.8553258km=1855.3m 而每一分又有60秒,每一秒就代表1855.3m/60=30.92m 任意兩點距離計算公式為 d111.12cos1/sinAsinB十cosAcosBcos(BA) 其中A點經(jīng)度,緯度分別為A和A,B點的經(jīng)度、緯度分別為B和B,d為距離。 至于比例尺計算就不廢話了/這是主函數(shù) double CChartCtrl:CalcltDstns(float fStarPtx, float fStarPty, float fEndPtx,
5、 float fEndPty) /已知起始點坐標(fStartPtx, fStartPty)及到達點坐標(fEndPtx,fEndPty) /計算航程dbDstns. /起始點,到達點坐標:經(jīng)緯度 /航程:海里(1852米) /Created by zhl /2002.7.3 /precision:0.0001
6、60; 海里 /check param double dbDir=CalcltDirct(fStarPtx,fStarPty,fEndPtx,fEndPty); double delta_fy=fEndPtx-fStarPtx; double delta_lnmg=fEndPty-fStarPty; int mk=(int)fEnd
7、Ptx*(int)fStarPtx; double fy_m,dbDstns;/ if(mk>=0) /不跨赤道航行 fy_m=(fStarPtx+fEndPtx)/2; else /跨赤道航行 fy_m=fabs(fStarPtx)>fabs(fEndPtx)?fStarPtx/2:fEndPtx/2; double
8、 delta_l=(1852.2-9.3*cos(fy_m*M_PI/180+fy_m*M_PI/180) *delta_fy*60/1852; if(dbDir>80&&dbDir<100)|(dbDir>260&&dbDir<280) /東西向 dbDstns=1.00181*delta_lnmg*60*cos(fy_m*M_PI/180)* sqrt(1-
9、e2*sin(fy_m*M_PI/180)*sin(fy_m*M_PI/180)/ sin(dbDir*M_PI/180); else /南北向 dbDstns=delta_l/cos(dbDir*M_PI/180); return dbDstns; /這是計算兩點間航向的函數(shù) double CChartCtrl:Cal
10、cltDirct(float fStarPtx, float fStarPty, float fEndPtx, float fEndPty) /已知起始點坐標(fStartPtx, fStartPty)及到達點坐標(fEndPtx,fEndPty) /計算航向fDirect. /起始點,到達點坐標:經(jīng)緯度 /航向:角度
11、 /Created by zhl /2002.7.2 /check param CString strErr; strErr.LoadString(IDS_CHK_15002); if(fStarPtx>90.0f|fStarPtx<-90.0f|fStarPty>180.0f |fStarPty<-180.0f|fEndPtx>90.0f|f
12、EndPtx<-90.0f |fEndPty>180.0f|fEndPty<-180.0f) AfxMessageBox(strErr); return -1; double delta_fy=fEndPtx-fStarPtx; double delta_lnmg=fEndPty-fStarPty; /經(jīng)度差應(yīng)小于
13、180度 if(delta_lnmg < -180.0) delta_lnmg += 360.0; if(delta_lnmg > 180.0) delta_lnmg -= 360.0; /delta_lnmg > 0.0 從 西 -> 東
14、 delta_lnmg < 0.0 從 東 -> 西 BOOL bGoEast=FALSE,bGoNorth=FALSE; if(delta_lnmg >= 0.0) bGoEast=TRUE; else bGoEast=FALSE; /delta_fy
15、160; > 0.0 從 南 -> 北 delta_fy < 0.0 從 北 -> 南 if(delta_fy>=0.0) bGoNorth=TRUE; else bGoNorth=FALSE; if(delta_fy=
16、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);/緯度漸
17、長率 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)*1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- “十三五”重點項目-大蒜醫(yī)藥生產(chǎn)項目節(jié)能評估報告(節(jié)能專)
- 2025年度文化旅游區(qū)基礎(chǔ)設(shè)施建設(shè)施工合同
- 保潔綠化托管合同范本
- 加熱快餐采購合同范本
- 買賣門面定金合同范本
- 分期返現(xiàn)合同范例
- 稽核人員上崗考試復習試題含答案
- 公司承包員工入股合同范例
- 臨促勞務(wù)合同范本
- 養(yǎng)魚加盟合同范本
- 護理干預在慢性病管理中的作用
- 慢性萎縮性胃炎的護理查房
- 住院醫(yī)師規(guī)范化培訓臨床實踐能力結(jié)業(yè)專科技能考核(全科醫(yī)學科)婦科檢查及分泌物留取
- 加強網(wǎng)絡(luò)空間治理工作的調(diào)研與思考
- 產(chǎn)后修復學習培訓課件
- mysql課件第五章數(shù)據(jù)查詢
- 超濾培訓課件
- 《冠心病的介入治療》課件
- 中醫(yī)防感冒健康知識講座
- 熱線電話管理制度
- 中建八局分包入場安全指導手冊v2.0111
評論
0/150
提交評論