地球上两点的经纬度计算他们距离的公式_第1页
地球上两点的经纬度计算他们距离的公式_第2页
地球上两点的经纬度计算他们距离的公式_第3页
地球上两点的经纬度计算他们距离的公式_第4页
地球上两点的经纬度计算他们距离的公式_第5页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、假设地球是一个标准球体,半径为 R,并且假设东经为正,西经为负,北纬为正,南纬为负,则 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 都是角度,最后结果中给出

2、的arccos 因为弧度形式。2 .所谓的 “东经为正,西经为负,北纬为正,南纬为负 ”是为了计算的方便。比如某点为西京145 ,南纬36,那么计算时可用(-145 ,-36 )3 .AB对球心所张角的球法实际上是求 和两向量的夹角 K。用公式 *=|OA|*|OB|*cosK可以得到其中地球平均半径为6371.004 kmR:假设地球是个标准的球体:半径可以查出来,假设是 如图:要算出A到B的球面距离,先要求出 A跟B的夹角,即角 AOB , 求角AOB可以先求AOB的最大边AB的长度。在根据余弦定律可以求夹角。AB在三角形AQB中,AQ的长度可以根据 AB的纬度之差计算。BQ在三角形BPQ

3、中,BP和PQ可求,角BPQ可以根据两者的经度求出,这样 BQ的长 度也可以求出来, 所以AB的长度是可以求出来的。因为三角形ABQ是直角三角形,已经得到两个边知道了角AOB后,AB的弧长是可以求的。 这样推出其公式就不难了 关于用经纬度计算距离:地球赤道上环绕地球一周走一圈共40075.04公里,而一圈分成360 ,而每1 (度)有60,每一度一秒在赤道上的长度计算如下:40075.04km/360 =111.31955km111.31955km/60=1.8553258km=1855.3m而每一分又有 60秒,每一秒就代表 1855.3m/60=30.92m任意两点距离计算公式为d= 11

4、1.12cos1/sin Asin 小 cos Acos Bcos(入 B入 A)其中A点经度,纬度分别为 入A和A, B点的经度、纬度分别为 入B和B, d为距离。 至于比例尺计算就不废话了/ 这是主函数fEndPtdoubleCChartCtrl:CalcltDstns(floatfStarPtx, float fStarPty, floatx, floatfEndPty)/ 已知起始点坐标(fStartPtx, fStartPty) 及到达点坐标(fEndPtx,fEndPty)/ 计算航程dbDstns./ 起始点 , 到达点坐标: 经纬度/ 航程 : 海里 (1852 米 )/Cre

5、ated by zhl/2002.7.3/precision:0.0001 海里/check paramdouble dbDir=CalcltDirct(fStarPtx,fStarPty,fEndPtx,fEndPty);doubledelta_fy=fEndPtx-fStarPtx;doubledelta_lnmg=fEndPty-fStarPty;int mk=(int)fEndPtx*(int)fStarPtx;doublefy_m,dbDstns;/if(mk=0)/ 不跨赤道航行fy_m=(fStarPtx+fEndPtx)/2;else/ 跨赤道航行fy_m=fabs(fStar

6、Ptx)fabs(fEndPtx)?fStarPtx/2:fEndPtx/2;double delta_l=(1852.2-9.3*cos(fy_m*M_PI/180+fy_m*M_PI/180)*delta_fy*60/1852;if(dbDir80&dbDir260&dbDir90.0f|fStarPtx180.0f|fStarPty90.0f|fEndPtx180.0f|fEndPty-180.0f)AfxMessageBox(strErr);return -1;doubledelta_fy=fEndPtx-fStarPtx;doubledelta_lnmg=fEndPty-fStarP

7、ty;/ 经度差应小于180 度if(delta_lnmg180.0)delta_lnmg-=360.0;/delta_lnmg0.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) bGoNorth=TRUE; else bGoNorth=FALSE;if(delta_fy=0) if(delta_lnmg=0)return0;return

8、 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(!bGoEa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论