野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10822|回复: 3

哪位大侠会GPS经纬度计算距离和方位角

[复制链接]
发表于 2015-5-6 16:59:18 | 显示全部楼层 |阅读模式
本帖最后由 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是精确的,经纬度是利用某软件转换得到的
有进行过这方面计算的高手指点一下,到底是计算方法有问题,还是我获得的经纬度有问题? 
回复

使用道具 举报

 楼主| 发表于 2015-5-7 08:40:19 | 显示全部楼层
本帖最后由 11kxmx 于 2015-5-7 15:06 编辑

好消息:利用第二种方法计算
Xa=(R+Za)*cos(rad(Aw))*cos(rad(Aj));
Ya=(R+Za)*cos(rad(Aw))*sin(rad(Aj));
Za=(R+Za)*sin(rad(Aw));

Xb=(R+Zb)*cos(rad(Bw))*cos(rad(Bj));
Yb=(R+Zb)*cos(rad(Bw))*sin(rad(Bj));
Zb=(R+Zb)*sin(rad(Bw));

X=Xa-Xb;
Y=Ya-Yb;
Z=Za-Zb;
Lab=sqrt(X*X+Y*Y+Z*Z);
AA=atan( rad(Bj-Aj)*cos(rad(Bw))/rad(Bw-Aw));
A=AA*180/3.14159265;
结果距离仍是4342.3,但方位角是-52.1度 误差小多了
但仍然不知计算方法1的方位角为什么会有那么大误差
另外方法1计算的距离是弧长,理论上应该比方法2的计算结果大
回复 支持 反对

使用道具 举报

发表于 2015-5-7 09:09:20 | 显示全部楼层
没有了解过这方面的知识
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-5-7 14:49:24 | 显示全部楼层
本帖最后由 11kxmx 于 2015-5-7 16:45 编辑
flyleaf 发表于 2015-5-7 09:09
没有了解过这方面的知识


是的,与单片机相关的器件和知识太多,不可能什么都知道,不过野火出售GPS模块和单片机开发板,让野火的开发板装上地图并用GPS模块获得数据来定位不太现实,那么最好的应用就是利用GPS模块和开发板显示当前的位置(不是在地图上,野火的例程已有),然后判断与目标点的距离和方位,决定下一步前进的方向,配上电子罗盘,便可自主导航
这就是我搞这个计算的原因
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-6-3 23:43 , Processed in 0.035066 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表