Java GTFS-Realtime 言語バインディング¶
GTFS-realtimeProtocol Buffer仕様から生成されたJavaクラスを提供します。 これらのクラスを使用すると、バイナリ Protocol BufferGTFS-realtime データフィードを Java オブジェクトにパースすることができます。
依存関係の追加¶
自分のプロジェクトでgtfs-realtime-bindingsクラスを使用するには、適切な依存関係を追加する必要があります。 Maven、Ivy、GradleなどのJavaビルドツールから簡単に参照できるように、Maven Central Repositoryにモジュールを公開します。
Mavenの場合は、pom.xml依存関係 セクションに以下を追加してください。
<dependency>
<groupId>org.mobilitydata</groupId>
<artifactId>gtfs-realtime-bindings</artifactId>
<version>0.0.8</version>
</dependency>
Gradleの場合は、build.gradle依存関係 セクションに以下を追加してください。
implementation group: 'org.mobilitydata', name: 'gtfs-realtime-bindings', version: '0.0.8'
Maven Central リポジトリがプロジェクトで参照されていることを確認してください。
コード例¶
次のコードでは、特定のURLからGTFS-realtimeデータフィードをダウンロードし、それをFeedMessage(GTFS-realtimeスキーマのルートタイプ)として解析し、結果を反復処理する様子を示しています。
import java.net.URL;
import com.google.transit.realtime.GtfsRealtime.FeedEntity;
import com.google.transit.realtime.GtfsRealtime.FeedMessage;
public class GtfsRealtimeExample {
public static void main(String[] args) throws Exception {
URL url = new URL("URL OF YOUR GTFS-REALTIME SOURCE GOES HERE");
FeedMessage feed = FeedMessage.parseFrom(url.openStream());
for (FeedEntity entity : feed.getEntityList()) {
if (entity.hasTripUpdate()) {
System.out.println(entity.getTripUpdate());
}
}
}
}
gtfs-realtime.protoから生成されるJavaクラスの命名規則の詳細については、プロトコルバッファの開発者サイトのJava Generated Codesセクションを参照してください。
プロジェクト履歴¶
0.0.4およびそれ以下¶
このプロジェクトは元々Googleによって作られました。0.0.4以前のバージョンはグループIDcom.google.transitで、Maven Centralからダウンロードできます。
0.0.5¶
MobilityDataは2019年初頭にこのプロジェクトのメンテナンスを開始し、当初はJCenter経由でリリースアーティファクトを公開していました。バージョン0.0.5は、Maven CentralのここでグループIDio.mobilitydata.transitの下でダウンロードすることができます。
0.0.6および0.0.7¶
JCenterは2021年にシャットダウンされました。シャットダウン前に、同期の問題でバージョン0.0.6 0.0.7とがJCenterからMaven Centralに同期されなかったため、これらのバージョンでは現在直接アーティファクトをダウンロードすることができません。しかし、mvn packageというコマンドを使えば、タグから自分でコンパイルすることができます。
0.0.8とそれ以降¶
2022年、MobilityDataはグループIDorg.mobilitydataの下でMaven Centralに直接成果物を公開するように変更し、そこでバージョン0.0.8以降が公開されています。