将GPS数据转换为经纬度c#
本文关键字:经纬度 转换 GPS 数据 | 更新日期: 2023-09-27 18:09:44
我有一个GPS设备(gt003)向我的服务器发送数据,我需要将设备发送的01E0598A 0869058A值转换为纬度和经度。
纬度占用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秒,换算方法与纬度相同。
预期输出接近 17°29"20.2"N 78°23 21.7 E
01 e0598a(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'
Result: 78°23"20.85' = 78.38912555555556°