[转载]根据两点的经纬度求方位角和距离等

原文地址:http://blog.sina.com.cn/s/blog_658a93570101hynw.html

申明:本人没有对这方面进行更深入的研究。只是当初读书时查到原文,算了下。本人对理论部分没有了解。所以一下内容仅供参考,本人提供不了什么额外帮助。

以下是根据转载文中的公式的数据验证。

Aj:121.53721,Aw:29.829484

Bj:121.549777,Bw:29.832009

1.方位角的求算(具体公式见转载文章)

cos(c)=cos(90-Bw)*cos(90-Aw)+sin(90-Bw)*sin(90-Aw)*cos(Bj-Aj)
cos(c)=cos(90-29.832009)*cos(90-29.829484)+sin(90-29.832009)*sin(90-29.829484)*cos(0.012567)=0.99999997594596337272609125289669
cos(c)平方为0.99999995189192732404886057202814
sin(c)=2.1933552533949246095158713791812e-4
sin(A)=0.86748767728114135702539558286285
A = 60.167990999999999999999999691623度

B点在第一象限,Azimuth=A

B在第二象限,Azimuth=360+A;

B在第三四象限,Azimuth=180-A。

 

2.距离的求算

已知两点经纬度,求两点之间的距离 
C=sin(Aw)*sin(Bw) + cos(Aw)*cos(Bw)*cos(Bj-Aj)
C=sin(29.829484)*sin(29.832009)+cos(29.829484)*cos(29.832009)*cos(121.549777-121.53721)
得到C=0.99999998092697801370896106266363
R=6370996米
Distance=1244.3200115373285706769811408469米

 

3.第三点经纬度的计算(具体公式见转载文章)

已知Aj,Aw,L(B点距离A点的距离),R(地球半径)
,Azimuth(即为上面求的A,ps:这里的Azimuth依然定为B相对于A的方位角)
求B点经纬度
求c:c=L/R*180/PAI
求a:a=arccos(cos(90-Aw)*cos(c)+sin(90-Aw)*sin(c)*cos(Azimuth))
求C:C=arcsin(sin(c)*sin(Azimuth)/sin(a))
Bw = 90-a
Bj = Aj+C

求解:
c=0.01119044573639016999365734833181
a=60.164949687323880831981177664311
C=0.01119078638987963325374372222455
Bw=29.835050312676119168018822335689
Bj=121.54840078638987963325374372222

验证完毕。

下图中的数据是百度给出的距离,单位是米。

转载于:https://www.cnblogs.com/landiljy/p/5392062.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值