From 444777c386deb77b9e79263af4cc74d9f1c87a1d Mon Sep 17 00:00:00 2001 From: "Begerad, Stefan" Date: Tue, 6 Sep 2022 10:35:03 +0200 Subject: [PATCH] feat: extend Main --- grb-use/pom.xml | 23 +++++-- .../main/java/de/swingbe/grb_use/Main.java | 66 ++++++++++++++++++- 2 files changed, 84 insertions(+), 5 deletions(-) diff --git a/grb-use/pom.xml b/grb-use/pom.xml index 494889d..db8295d 100644 --- a/grb-use/pom.xml +++ b/grb-use/pom.xml @@ -19,6 +19,13 @@ + + + public.onebusaway.org + http://nexus.onebusaway.org/content/groups/public/ + + + https://github.com/Software-Ingenieur-Begerad/sandbox-java @@ -28,16 +35,24 @@ UTF-8 + + + org.onebusaway + onebusaway-gtfs-realtime-exporter + 1.1.0 + + + org.mobilitydata + gtfs-realtime-bindings + 0.0.8 + + org.apache.maven.plugins maven-compiler-plugin 3.10.1 - - - 11 - org.apache.maven.plugins diff --git a/grb-use/src/main/java/de/swingbe/grb_use/Main.java b/grb-use/src/main/java/de/swingbe/grb_use/Main.java index ca198ad..fedb393 100644 --- a/grb-use/src/main/java/de/swingbe/grb_use/Main.java +++ b/grb-use/src/main/java/de/swingbe/grb_use/Main.java @@ -1,9 +1,73 @@ package de.swingbe.grb_use; +import org.onebusway.gtfs_realtime.exporter.GtfsRealtimeLibrary; +import org.onebusway.gtfs_realtime.exporter.GtfsRealtimeMutableProvider; + +import com.google.transit.realtime.GtfsRealtime.FeedEntity; +import com.google.transit.realtime.GtfsRealtime.FeedMessage; +import com.google.transit.realtime.GtfsRealtime.Position; +import com.google.transit.realtime.GtfsRealtime.VehiclePosition; +import com.google.transit.realtime.GtfsRealtime.TripDescriptor; +import com.google.transit.realtime.GtfsRealtime.VehicleDescriptor; + public class Main { + private static GtfsRealtimeMutableProvider gtfsRealtimeMutableProvider; + public static void main(String[] args) { - System.out.println("Hello world!"); + System.out.println("main() started..."); + //GtfsRealtime.FeedMessage msg; + FeedMessage.Builder vehiclePositions = GtfsRealtimeLibrary.createFeedMessageBuilder(); + + /** + * We construct a TripDescriptor and VehicleDescriptor, which will be used + * in both trip updates and vehicle positions to identify the trip and + * vehicle. Ideally, we would have a trip id to use for the trip + * descriptor, but the SEPTA api doesn't include it, so we settle for a + * route id instead. + */ + TripDescriptor.Builder tripDescriptor = TripDescriptor.newBuilder(); + tripDescriptor.setRouteId("tripDescriptor:RouteId"); + + VehicleDescriptor.Builder vehicleDescriptor = VehicleDescriptor.newBuilder(); + vehicleDescriptor.setId("vehicleDescriptor:Id"); + + /** + * To construct our VehiclePosition, we create a position for the vehicle. + * We add the position to a VehiclePosition builder, along with the trip + * and vehicle descriptors. + */ + + /** + * Brunswick + */ + double lat = 52.268875; + double lon = 10.526770; + + Position.Builder position = Position.newBuilder(); + position.setLatitude((float) lat); + position.setLongitude((float) lon); + + VehiclePosition.Builder vehiclePosition = VehiclePosition.newBuilder(); + vehiclePosition.setPosition(position); + vehiclePosition.setTrip(tripDescriptor); + vehiclePosition.setVehicle(vehicleDescriptor); + + /** + * Create a new feed entity to wrap the vehicle position and add it to the + * GTFS-realtime vehicle positions feed. + */ + FeedEntity.Builder vehiclePositionEntity = FeedEntity.newBuilder(); + vehiclePositionEntity.setId("vehiclePositionEntity:Id"); + vehiclePositionEntity.setVehicle(vehiclePosition); + vehiclePositions.addEntity(vehiclePositionEntity); + + /** + * Build out the final GTFS-realtime feed messagse and save them. + */ + gtfsRealtimeMutableProvider.setVehiclePositions(vehiclePositions.build()); + + System.out.println("main() done."); return; } }