转换GPS数据Cello-CANiQ

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了转换GPS数据Cello-CANiQ相关的知识,希望对你有一定的参考价值。

我正在从GPS追踪器接收数据。 文件说: 字节对齐表:

[1] -> System Code, byte 1 – ASCII "M"
[2] -> System Code, byte 2 – ASCII "C"
[3] -> System Code, byte 3 – ASCII "G"
[4] -> System Code, byte 4 – ASCII "P"
...
[45] -> Longitude
[46] -> Longitude
[47] -> Longitude
[48] -> Longitude
[49] -> Latitude
[50] -> Latitude
[51] -> Latitude
[52] -> Latitude
...

我有以下(十六进制)数据:

...
[45] -> 09
[46] -> 36
[47] -> 4b
[48] -> f8

[49] -> a7
[50] -> 70
[51] -> 7b
[52] -> 00
...

当前位置定位的经度,纬度经度和纬度坐标。两个坐标都以32位有符号整数形式发送,表示10 -8弧度分辨率的坐标。经度的可能值为-Π到+Π,纬度为-Π/ 2到+Π/ 2。坐标参考WGS-84地图基准和椭圆体。

如何将其转换为经度〜-74,纬度~4附近的坐标?

答案

我的答案只能基于你上面写的内容。

你有两个32位整数,其中“1”代表10e-8rad。

所以你可以做的是乘以1e-7得到弧度。要转换为度数(通常用于表示WGS84坐标),请乘以180 / pi

像这样的东西:

const oneRadMultiplier = 1e-7 * 180 / pi;

latitudeDeg  = 0x09364bf8 * oneRadMultiplier; 
longitudeDeg = 0xa7707b00 * oneRadMultiplier; 

作为示例,您提供的数字似乎并不真正匹配。可能是这些整数存储为小端。我没试过,但希望上面的内容有助于你进一步发展。

以上是关于转换GPS数据Cello-CANiQ的主要内容,如果未能解决你的问题,请参考以下文章

怎样把GPS得到的经纬度转换为具体位置

Android 使用两个不同的代码片段获取当前位置 NULL

NETWORK_PROVIDER 和 GPS_PROVIDER 在片段中返回 null

如何将GPS数据转换为度分秒

试图隔离 GPS 转换

如何更好地处理 GPS 位置和 android