Java GTFS-realtime 言語バインディング¶
GTFS-realtime Protocol Buffer 仕様から生成された Java クラスを提供します。これらのクラスを使用することで、バイナリ形式の Protocol Buffer GTFS-realtime データフィードを Java オブジェクトに変換して解析することができます。
依存関係の追加¶
gtfs-realtime-bindings
クラスを自身のプロジェクトで使用するには、適切な依存関係を追加する必要があります。私たちはモジュールを Maven Central Repository に公開しているため、Maven、Ivy、Gradle といった Java のビルドツールから簡単に参照することができます。
Maven を使用する場合は、pom.xml
の dependencies セクションに以下を追加してください:
<dependency>
<groupId>org.mobilitydata</groupId>
<artifactId>gtfs-realtime-bindings</artifactId>
<version>0.0.8</version>
</dependency>
Gradle を使用する場合は、build.gradle
の dependencies セクションに以下を追加してください:
implementation group: 'org.mobilitydata', name: 'gtfs-realtime-bindings', version: '0.0.8'
Maven Central Repository がプロジェクトで参照されていることを確認してください。
コード例¶
以下のコードスニペットは、特定のURLからGTFS-realtimeデータフィードをダウンロードし、それをGTFS-realtimeスキーマのルート型であるFeedMessageとしてパースし、結果を反復処理する方法を示しています。
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());
}
}
}
}
Javaクラスの命名規則に関する詳細については、gtfs-realtime.protoから生成されたコードに関するJava Generated Codeのセクションを、Protocol Buffersの開発者サイトでご確認ください。
プロジェクトの歴史¶
0.0.4
およびそれ以前¶
このプロジェクトはもともと Google によって作成されました。0.0.4
およびそれ以前のバージョンは、Group ID com.google.transit
の下で Maven Central からこちら からダウンロードすることができます。
0.0.5
¶
MobilityData は 2019 年初頭にこのプロジェクトの保守を開始し、当初は JCenter を通じてリリース成果物を公開していました。バージョン 0.0.5
は、Group ID io.mobilitydata.transit
の下で Maven Central からこちら からダウンロードすることができます。
0.0.6
および 0.0.7
¶
JCenter は 2021 年にシャットダウンされました。シャットダウン前に同期の問題が発生し、バージョン 0.0.6
および 0.0.7
が JCenter から Maven Central に同期されなかったため、これらのバージョンについては直接アーティファクトをダウンロードすることは現在できません。ただし、tags から mvn package
コマンドを使用して自分でコンパイルすることができます。
0.0.8
以降¶
2022年、MobilityData はアーティファクトを Group ID org.mobilitydata
の下で直接 Maven Central に公開する方式に切り替えました。バージョン 0.0.8 以降は、ここで公開されています。