我有使用静态GTFS文件的经验,这些文件定义了特定公共交通网络的操作模式。然而,我的城市刚刚发布了总线位置和其他网络状态更新的实时数据源。
我的问题是,在实时情况下,我应该如何查看这个数据源并将其记录到数据库中。实时数据源的链接如下:https://gtfsrt.api.translink.com.au/
我有使用静态GTFS文件的经验,这些文件定义了特定公共交通网络的操作模式。然而,我的城市刚刚发布了总线位置和其他网络状态更新的实时数据源。
我的问题是,在实时情况下,我应该如何查看这个数据源并将其记录到数据库中。实时数据源的链接如下:https://gtfsrt.api.translink.com.au/
https://developers.google.com/transit/gtfs-realtime/code-samples
当涉及到解析GTFS实时数据时,这是一个很好的起点,无论你喜欢使用哪种编程语言。
安装NuGet包Google.Protobuf
PM> Install-Package 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);
}
我需要安装Google的协议缓冲区,然后使用协议缓冲区编译gifts-realtime.proto文件,生成可以读取API源代码的代码。