在python中将十进制度数转换为nmea0183

2024-09-27 23:26:41 发布

您现在位置:Python中文网/ 问答频道 /正文

为了模拟GPS数据,我试图将GPS坐标转换成NMEA语句。目标是将这些数据输入到海洋导航软件中。然而,我生成的数据似乎不正确。我在python中使用以下函数将十进制格式的GPS度数转换为nmea0183格式:

import math

def decdeg2nmea(dd):
    num = abs(dd)
    d = float(math.floor(num))
    m = num - d
    return '%i%f' % (int(degree), minutes * 60.00)

这不正确吗?在


Tags: 数据函数import目标软件def格式math
1条回答
网友
1楼 · 发布于 2024-09-27 23:26:41

数字需要用零填充。经度用三个字符表示经度,即4度以东表示004,纬度用两个字符表示。分钟应该用两个字符加上小数来表示。一、 e.4.5度e为00430.0

由于您使用的是abs,所以您也需要重新插入该符号。我认为这样的方法应该适用于经度:

import math

def decdeg2nmea(dd):
    num = abs(dd)
    d = float(math.floor(num))
    m = num - d
    sign = '-' if dd < 0 else ''
    return sign+'%03i%02.5f' % (int(d), m * 60.00)

相关问题 更多 >

    热门问题