我有使用静态GTFS文件的经验,这些文件定义了特定公共传输网络的操作模型。然而,我的城市刚刚发布了一个实时的网络位置馈送和网络的其他状态更新。
我的问题是,我应该如何实时查看此Feed并将Feed记录到数据库中。实时Feed的链接如下:https://gtfsrt.api.translink.com.au/
答案 0 :(得分:1)
GTFS-realtime规范现在包含用于以各种语言解析GTFS实时数据的代码示例:
https://developers.google.com/transit/gtfs-realtime/code-samples
在用您喜欢的语言解析GTFS实时数据时,这是一个很好的起点。
答案 1 :(得分:0)
我需要安装google的协议缓冲区,然后使用协议缓冲区编译gifts-realtime.proto,以生成可以读取API源代码的代码。
答案 2 :(得分:0)
安装Nugget包Google.Protobuf
PM>安装包Google.Protobuf -Version 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实时模型以将数据保存到数据库中。