如何从提要中查看和收集实时 GTFS

How do I view and collect real time GTFS from a feed

我有使用静态 GTFS 文件的经验,这些文件定义了特定 public 传输网络的操作模型。然而,我所在的城市刚刚发布了公交车位置的实时提要和网络的其他状态更新。

我的问题是,我应该如何实时查看此提要并将提要记录到数据库中。 link到实时feed如下:https://gtfsrt.api.translink.com.au/

我需要安装 google 的协议缓冲区,然后用协议缓冲区编译 gifts-realtime.proto 以生成代码,然后可以读取 API 源代码。

GTFS 实时规范现在包含用于解析多种语言的 GTFS 实时数据的代码示例:

https://developers.google.com/transit/gtfs-realtime/code-samples

当涉及到用您喜欢的语言解析 GTFS 实时数据时,这是一个很好的起点。

安装 Nugget 包 Google.Protobuf

PM> 安装包 Google.Protobuf - 版本 3.4.1

private FeedMessage _feedMessage;
using (MemoryStream protobufMemoryStream = new MemoryStream())
using (Stream protobufStream = await _httpClient.GetStreamAsync("", "http://gtfs.ovapi.nl/new/vehiclePositions.pb")) 
{
    protobufStream.CopyTo(protobufMemoryStream);
    protobufMemoryStream.Position = 0;
    _feedMessage = Serializer.Deserialize<FeedMessage>(protobufMemoryStream);
}

_feedMessage 中,您已反序列化 GTFS 实时模型以将数据保存到数据库中。