博士
最后登录1970-1-1
在线时间 小时
注册时间2014-10-31
|
本帖最后由 11kxmx 于 2015-5-6 17:02 编辑
我想用GPS导航,若已知两点的经纬度,想求两点距离和方位角 计算方法参照http://blog.sina.com.cn/s/blog_658a93570101hynw.html
公式我写在如下程序中了:
double Aj,Bj,Aw,Bw;
double a,b,A,AA,C;
double Lab,R=6367;//R是地球平均半径,KM
double rad(double d)//角度转弧度
{
const double PI = 3.1415926535898;
return d * PI / 180.0;
}
Aj=113.17313267;//A点经纬度
Aw=33.81345011;
Bj=113.13600031;//B点经纬度
Bw=33.83743681;
a=cos(rad(90-Aw))*cos(rad(90-Bw))+sin(rad(90-Aw))*sin(rad(90-Bw))*cos(rad(Bj-Aj));//COS(C)
b=sqrt(1-a*a); //sin( c )
A=sin(sin(rad(90-Bw))*sin(rad(Bj-Aj))/b); //sin(A)
AA=asin(A)*180/3.14159265; //方位角
C=acos(a); //弧度角
Lab=R*C ; //距离
计算结果:距离4342.3m 用坐标法计算是4347.48m
方位角-45.2度 用坐标法计算是-51.6度
可见距离误差比较小,但方位角误差就不能接受了
A B两点的坐标X Y是精确的,经纬度是利用某软件转换得到的
有进行过这方面计算的高手指点一下,到底是计算方法有问题,还是我获得的经纬度有问题?
|
|