将GPS数据转换为Cello CANiQ

将GPS数据转换为Cello CANiQ,gps,hex,latitude-longitude,Gps,Hex,Latitude Longitude,我正在接收来自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]

我正在接收来自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
...
我有以下(十六进制)数据:

经纬度 当前定位点的经纬度坐标。两个坐标都以相同的方式发送 32位有符号整数,以10-8弧度分辨率表示坐标。可能的 经度值为-2∏到+2∏,纬度值为-2∏/2到+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; 
不过,您作为示例给出的数字似乎并不匹配。这可能是因为这些整数存储为little endian。我没有尝试,但希望上面的内容能帮助你走得更远

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

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