到目前为止,我已为{+ 3}}填写了开发人员的API密钥。然后在我的android项目中,我从MTA online registration form之一实现了gtfs实时绑定依赖,
compile group: 'com.google.transit', name: 'gtfs-realtime-bindings', version: '0.0.4'
使用他们的Java类,我尝试使用以下代码从MTA提供的链接中打印出所有gtfs数据,
try {
String urlString = "http://datamine.mta.info/mta_esi.php?key=insertmykeyhere";
URL url = new URL(urlString.toString());
GtfsRealtime.FeedMessage feed = GtfsRealtime.FeedMessage.parseFrom(url.openStream());
for (GtfsRealtime.FeedEntity entity : feed.getEntityList()) {
if (entity.hasTripUpdate()) {
Log.d("stuff", entity.getTripUpdate().toString());
}
}
} catch (IOException e) {
e.printStackTrace();
}
但是,我现在无法解释打印出来的数据。我知道有来自Google's github repositories的静态数据源,我用它来解释一些数据。这是打印出来的旅行更新之一,
stuff: trip {
trip_id: "036000_GS.N01R"
start_date: "20170218"
route_id: "GS"
1001: "\n\0200S 0600 GCS/TSS\020\001\030\001"
}
stop_time_update {
departure {
time: 1487415600
}
stop_id: "901N"
1001: "\n\0011\022\0011"
}
stop_time_update {
arrival {
time: 1487415690
}
stop_id: "902N"
1001: "\n\0011"
}
我理解一些部分,例如trip_id,start_date和stop_id。但是诸如trip_id,time和1001之类的部分我仍然不确定它,静态源中的文本文件不能最好地解释它们。
答案 0 :(得分:0)
MTA地铁GTFS-RT供稿与大多数其他供稿略有不同。
通常,GTFS-RT直接指回静态GTFS'通过trip_id / stop_id /等。由于在纽约市通常存在偏离正常服务(" 2列车通过5线和#34;),RT馈送保留了创建静态馈送中不存在的新行程的选项。
要回答您的直接问题,您需要添加realtime extensions。这应该解决空的1001:字段。
为此,要么编译proto文件,要么导入onebusaway-gtfs-realtime-api库,其中包含预编译的扩展名:
ExtensionRegistry registry = ExtensionRegistry.newInstance();
registry.add(GtfsRealtimeNYCT.nyctFeedHeader);
registry.add(GtfsRealtimeNYCT.nyctStopTimeUpdate);
registry.add(GtfsRealtimeNYCT.nyctTripDescriptor);
GtfsRealtime.FeedMessage feed = GtfsRealtime.FeedMessage.parseFrom(url.openStream(), registry);
这给出了如下结果:
trip {
trip_id: "B20170217WKD_132800B..S"
start_date: "2017-02-17 22:08:00"
route_id: "B"
[transit_realtime.nyct_trip_descriptor] {
train_id: "1B 2208 145/BBC"
is_assigned: true
direction: SOUTH
}
}
stop_time_update {
arrival {
time: 1487390920
}
departure {
time: 1487390920
}
stop_id: "D39"
schedule_relationship: SCHEDULED
[transit_realtime.nyct_stop_time_update] {
scheduled_track: "A3"
actual_track: "A3"
}
}
stop_time_update {
arrival {
time: 1487391130
}
departure {
time: 1487391130
}
stop_id: "D40"
schedule_relationship: SCHEDULED
[transit_realtime.nyct_stop_time_update] {
scheduled_track: "A3"
actual_track: "A3"
}
}