【问题标题】:Convert GPS data to latitude and longitude c#将GPS数据转换为经纬度c#
【发布时间】:2015-08-25 06:45:17
【问题描述】:

我有一个 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

【问题讨论】:

    标签: c# algorithm gps converter


    【解决方案1】:

    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°

    【讨论】:

    • 它给出度数和分钟数。我怎样才能得到像 17.488885 这样的秒数和纬度值。
    • 我知道你是GT06 Tracker,你怎么知道坐标是南还是北,东还是西?我正在尝试使用 Node.js 为相同的协议创建服务器 谢谢。
    • 根据具体跟踪器的文档。 S 和 W 为正,N 和 E 为负,反之亦然。
    猜你喜欢
    • 1970-01-01
    • 2012-12-30
    • 2019-11-19
    • 2013-04-04
    • 1970-01-01
    • 2013-10-30
    • 2013-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多