标题: 需要计算两个GPS坐标之间的距离,但是单片机keil又不支持double,各大老是如何解决 [打印本页]

作者: cnos    时间: 2024-12-27 10:01
标题: 需要计算两个GPS坐标之间的距离,但是单片机keil又不支持double,各大老是如何解决
需要计算两个GPS坐标之间的距离,但是单片机keil又不支持double,各大老是如何解决的。
GPS的报文本来就很长,而且是ascii的,转成数值都还不算难,但是精度不够。
$MYGPSPOS: $GPRMC,112744.000,A,2422.54920,N,10931.34392,E,0.00,0.86,041224,,,A,V*17

2422.54920,N

10931.34392,E


有没有大佬透露一下如何解决的。

作者: npn    时间: 2024-12-27 18:18
楼主可以换Keil C251 32位单片机的可以使用double类型,8位的只能自行移植浮点底层程序。
作者: wjfw    时间: 2024-12-27 18:51
D²=(E1-E2)²+ (N1-N2)²
作者: glinfei    时间: 2024-12-30 10:44
1.上边关系仅是角度关系,还要调整角度对应的距离参数。
2.浮点运算有专门的库,当然牺牲了计算速度。
3.硬计算太耗资源,我觉得根据你实际的距离范围读数据,结合查表处理会好一点,比如一度对应了一百多公里,如果你计算几百公里的差异和计算几公里的差异,就可以选取不同的读数范围。当然不计时间就无所谓。
另外,对于上边的1.和2.网上有很多。我就不详细写了。
作者: coody_sz    时间: 2024-12-30 15:11
都是使用经度差和纬度差来计算的,精度还可以的。为了保持精度,可以分开整数和小数分别计算,然后合成在一起,此时往往都是10度之内,单精度浮点也是可以的。




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1