我有一个 GPS 设备, 将数据发送到我的服务器, 我需要转换该设备发送到纬度和经度的十进制值。 我数学不好, 所以所有尝试都失败了, 下面是图示 :
> 纬度
占有4字节,代表纬度值。
Number range is from 0 to 162000000, which represents the range form 0°to 90°. Unit: 1/500 second Conversion method:
A) 将GPS模块的纬度(度、分)数据转换成新形式,仅代表分钟值;
B 乘以3000乘以换算值,然后将结果转换为十六进制数字
例如22°32.7658},(22x60+32.7658x30000=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;