GPS 航向 Python

GPS heading in Python

我在 Python 从事 GPS 项目,需要一些帮助。我不知道如何让标题部分工作。我希望声明是真实的,例如标题为355 度 +/- 有点误差。我的问题是 360 度左右。喜欢

if ((heading – headerror) % 360) <= Gps.heading <= ((heading + headerror) % 360):

如果我使用 355 的标题,错误为 20 并且 gps 读取 4 ,它们都是关于北方的。

335 <= 4 <= 15

我怎样才能检查它是否在 33515 的范围内,这实际上是 335360015?

一个简单的实现:

def between(head, low, high):
    """Whether the heading head is between headings low and high."""
    head, low, high = map(lambda x: x % 360, (head, low, high))
    if high >= low:
        return low <= head <= high
    return low <= head < 360 or 0 <= head <= high

首先将所有参数转换为0360之间的标题,然后判断我们处于哪种情况,是否可以进行简单比较,或者是否需要考虑0/360。在后一种情况下,它明确检查 low 值和 360 之间以及 0high 值之间。

正在使用:

>>> between(4, 355-20, 355+20)
True

您可以重构它以使用它,例如equal(4, 355, 20) 如果你愿意的话。