原文地址: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
验证完毕。
下图中的数据是百度给出的距离,单位是米。