将GPS数据转换为经纬度c#
Convert GPS data to latitude and longitude c#
我有一个 GPS 设备 (gt003) 向我的服务器发送数据,我需要将设备发送的 01E0598A 0869058A 值转换为纬度和经度。
纬度
占用4个字节,表示纬度值。
Number range is from 0 to 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秒,换算方法同纬度。
预期产量接近 17°29'20.2"N 78°23'21.7"E
01E0598A(16) = 31480202(10).
除以 30000 -> 31480202 / 30000 = 1049.34006666。正如您提到的,它的价值以分钟为单位。
所以:1049.34006666/60 = 17.489001°(如果您需要十进制度数 - 就是这样)。 17°是多少度。
0.489001° -> 0.489001 * 60 = 29.34"。所以 29"。最少 0.34。 0.34 * 60 = 20.4'。
结果 = 17°29"20.4'.
0869058A 相同:
0869058A(16) = 141100426(10).
141100426 / 30000 = 4703.347533333333".
4703.347533333333 / 60 = 78.38912555555556° -> 78°
0.38912555555556 * 60 = 23.3475333333336" -> 23"
0.3475333333336 * 60 = 20.852000000016' -> 20.85'
结果:78°23"20.85' = 78.38912555555556°
我有一个 GPS 设备 (gt003) 向我的服务器发送数据,我需要将设备发送的 01E0598A 0869058A 值转换为纬度和经度。
纬度
占用4个字节,表示纬度值。
Number range is from 0 to 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秒,换算方法同纬度。
预期产量接近 17°29'20.2"N 78°23'21.7"E
01E0598A(16) = 31480202(10).
除以 30000 -> 31480202 / 30000 = 1049.34006666。正如您提到的,它的价值以分钟为单位。
所以:1049.34006666/60 = 17.489001°(如果您需要十进制度数 - 就是这样)。 17°是多少度。
0.489001° -> 0.489001 * 60 = 29.34"。所以 29"。最少 0.34。 0.34 * 60 = 20.4'。
结果 = 17°29"20.4'.
0869058A 相同:
0869058A(16) = 141100426(10).
141100426 / 30000 = 4703.347533333333".
4703.347533333333 / 60 = 78.38912555555556° -> 78°
0.38912555555556 * 60 = 23.3475333333336" -> 23"
0.3475333333336 * 60 = 20.852000000016' -> 20.85'
结果:78°23"20.85' = 78.38912555555556°