Java 如何理解MTA';s实时gtfs数据源
到目前为止,我已经填写了开发人员的API密钥。然后在我的android项目中,我从一个 使用他们的Java类,我尝试了以下代码来打印MTA提供的链接中的所有gtfs数据Java 如何理解MTA';s实时gtfs数据源,java,android,gtfs,mta,Java,Android,Gtfs,Mta,到目前为止,我已经填写了开发人员的API密钥。然后在我的android项目中,我从一个 使用他们的Java类,我尝试了以下代码来打印MTA提供的链接中的所有gtfs数据 try { String urlString = "http://datamine.mta.info/mta_esi.php?key=insertmykeyhere"; URL url = new URL(urlString.toString()); GtfsRealtime.FeedMessage fe
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();
}
然而,我现在很难解释打印出来的数据。我知道有静态数据源,我用它来解释一些数据。这是一份打印出来的旅行更新
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\u id、start\u date和stop\u id。但trip\u id、time和1001等部分我仍然不确定,静态提要中的文本文件并不能很好地解释它们。MTA Subway GTFS-RT提要与大多数其他提要略有不同 通常,GTFS-RT通过跳闸id/停车id/等直接返回静态GTFS。由于在纽约通常存在偏离正常服务的情况(“通过5号线的2列列车”),RT馈送保留创建静态馈送中不存在的新跳闸的选项 要回答您当前的问题,您需要添加以下内容。这将解决空:字段的问题 要执行此操作,请编译proto文件,或者只导入库,库中预编译了扩展名:
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"
}
}
使用onebusaway api的代码的结果是什么?我对这个库不太熟悉。onebusaway库只是用所需扩展编译的protobuf。请参见trip_描述符现在已填充。有一个正在运行的Maven项目要试用。您好,我已经有一段时间没有看到这个答案了,所以我刚刚注意到了编辑。我对Maven有点陌生,那么如何安装github repo呢?我会下载repo,然后将其上传到像Eclipse这样的IDE中吗?如果您安装了Eclipse和Maven插件,只需file->import>Maven即可
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"
}
}