5

我正在编写一个程序,它以 GPRMC NMEA 语句的形式接收数据并按照 GTFS-realtime 的指定输出。

GTFS-realtime 需要一个“轴承”值,并将其描述为:

方位角,以度为单位,从真北顺时针方向,即 0 是北,90 是东。这可以是罗盘方位,也可以是指向下一站或中间位置的方向。这不应该从先前位置的序列中推断出来,客户可以从先前的数据中计算出来。

GPRMC NMEA 句子包含三个我认为相关的领域,但我的研究发现了一堆关于它们是什么的不同想法:

  1. Track angle in degrees True, Course Made Good, True,Track made good in degrees True
  2. Magnetic Variation, Variation,Magnetic variation degrees (Easterly var. subtracts from true course)
  3. Magnetic Variation, East/West,E or W

为了完整起见,这是一个完整的 GPRMC 句子,相关字段以粗体显示:

$GPRMC,123519,A,4807.038,N,01131.000,E,022.4,084.4 ,230394,003.1,*6A

我将如何从 GPRMC NMEA 句子中导出 GTFS-realtime 格式的方位?

4

1 回答 1

3

我最近买了一个 GPS 模块来连接我的 Arduino,并且不得不学习 GPRMC 句子结构。由于 GPS 通过绘制从先前位置到当前位置的矢量来计算方向,因此不考虑对磁北极的校正。GTFS-realtime 中的方位角应与 GPRMC 的“Track angle in degree True”相同。它们都属于真北。想象一下,你站在一个圆圈的中心,你面对的是真正的北方。当您顺时针旋转 30 度时,您将处于 30 度的方位(如果您向前移动)。我认为数据结构应该是这样的:

header {
  gtfs_realtime_version: "1.0"
}
entity {
    id: "myPosition"
    vehiclePosition{
        position{
            position_id: "myBearing"{
                bearing: 84.4
            }
        }
    }           
}

我从这些页面上的描述和示例中发现了这一点: https ://developers.google.com/transit/gtfs-realtime/reference#VehiclePosition https://developers.google.com/transit/gtfs-realtime/examples/旅行更新完整

这有帮助吗?

于 2013-08-19T03:25:41.680 回答