将十六进制字节转换为坐标

问题描述 投票:0回答:1

我正在尝试将十六进制流转换为纬度/经度坐标。输入流来自通过TCP的Meitrack跟踪器(P99G型号)。输入以小端为单位,以百万分之一度为单位规格可以在这里找到:http://www.meitrack.com/cd-download/Protocols/MEITRACK_P99G_GPRS_Protocol.pdf-但这不是很有用。

这是一个示例,我希望它可以转换为:

Lat:输入:efbfbdefbfbd5102预期输出:38.907163

长:52efbfbd68efbfbd预期输出:-77.007786

((预期输出来自同时通过SMS接收的坐标)

我能够通过反转字节顺序并转换为十进制来解密其他参数,但似乎不适用于坐标。

非常感谢您找出如何将十六进制字节转换为十进制坐标的任何帮助。

谢谢

hex decimal coordinates
1个回答
0
投票

几年前,我已经实现了P99G消息解析器,现在我检查了它以测试给定的经纬度对。似乎测试输入和预期输出不匹配:根据给定的编码,lat字符串转换为-272.777233,lon转换为-1111.49483。

实现协议时,棘手的部分是当消息包含不同类型和数量的命令时,如何在输入字节数组中正确定位数据包。因此,我的猜测是,此处的编码不是问题,而是纬度/经度对的边界发生了偏移,错过了-应该首先检查消息部分的标识以找到正确的纬度/经度字节序列。

© www.soinside.com 2019 - 2024. All rights reserved.