我有一个将数据发送到我的服务器的 GPS 设备,我需要将设备发送的十进制值转换为纬度和经度。我数学不好,所以我所有的尝试都失败了,这里是规格:
纬度
占用4个字节,代表纬度值。
数字范围是从 0 到 162000000,表示范围从 0°到 90°。单位:1/500秒换算方法:
A) 将 GPS 模块中的纬度(度、分)数据转换为仅以分钟为单位的新形式;
B 将转换后的值乘以 30000,然后将结果转换为十六进制数
例如22°32.7658′,(22×60+32.7658)×30000=40582974,则转换为十六进制数 0x02 0x6B 0x3F 0x3E
经度
占用4个字节,代表位置数据的经度值。数字范围从0到324000000,表示范围从0°到180°。单位:1/500秒,换算方法同纬度。
我想出了这个功能,但它似乎不起作用:
procedure GetDegree(const numar : DWORD; out min,sec : Extended);
var
eu : Extended;
begin
eu := numar / 30000;
min := Trunc(eu / 60);
sec := eu - min * 60;
end;