2015-01-16 2 views
3

У меня есть опыт использования статических файлов GTFS, которые определяют рабочую модель для определенной сети общественного транспорта. Однако мой город только что выпустил канал в реальном времени для местоположений автобусов и других обновлений статуса для сети.Как просматривать и собирать GTFS в реальном времени из фида

Вопрос в том, как я должен просматривать этот канал в реальном времени и записывать канал в базу данных. Ссылка на канал реального времени выглядит следующим образом: https://gtfsrt.api.translink.com.au/

ответ

1

Спецификация GTFS-в режиме реального времени теперь включает в себя примеры кода для разбора GTFS-режиме реального времени данных в различных языках:

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

Это хорошее место, чтобы начать, когда дело доходит до разбора GTFS-режиме реального времени данные ваш любимый язык.

0

Мне нужно было установить буфер протокола Google, а затем скомпилировать gift-realtime.proto с буфером протокола для генерации кода, который затем может прочитать источник API.

0

Установить Nugget пакет 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); 
} 

В _feedMessage у вас есть десериализации GTFS RealTime Модель для сохранения данных в базе данных.