转换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的主要内容,如果未能解决你的问题,请参考以下文章
Android 使用两个不同的代码片段获取当前位置 NULL