#Public Transport Departure Time Station
Diese Services bieten einen systematischen Zugriff auf die Haltestellen im Verkehrsverbund Rhein-Sieg. Sie basieren auf dem Datensatz VRS Verkehrsdaten GTFS der Offenen Daten der Stadt Köln. Die Daten liegen im GTFS-Format vor. Sie werden werden in einer PostgreSQL-Datenbank mit PostGis persistiert.
Dieses Projekt befindet sich in der Entwicklung
- Java
- Postgres/ Postgis
- onebusaway-gtfs
- Apache Commons
- Opendatalab GeoJson
- Google Gson
Diese Schnittstelle gibt alle Haltestellen in der Datenbank zurück.
Diese Schnittstelle gibt alle Haltestellen in der Datenbank im geojson Format zurück.
Diese Schnittstelle gibt die nächsten fünf Haltestellen zu einer übergebenen geolocation zurück.
Diese Schnittstelle gibt die nächsten fünf Haltestellen zu einer übergebenen geolocation im geojson Format zurück.
Beispiel /publicTransportStation/service/stops?latlng=50.959582,6.971568&geojson
Diese Schnittstelle gibt alle Haltestellen zu einer übergebenen boundingbox zurück.
Diese Schnittstelle gibt alle Haltestellen zu einer übergebenen boundingbox im geojson Format zurück.
Beispiel /publicTransportStation/service/stops?bbox=50.940692,6.951216,50.931568,6.977266&geojson
Der Import der Daten kann über eine Schnittstelle initiiert werden. Voraussetzung ist, dass die Datei bereits heruntergeladen wurde und dass der Ort in der config.properties angegeben wurde. Die Daten stehen unter folgenden Adressen zum Download bereit:
- http://download.vrsinfo.de/gtfs/google_transit.zip
- http://download.vrsinfo.de/gtfs/google_transit_DB.zip
Z.B. kann mit folgendem Aufruf die Datei heruntergeladen werden:
wget http://download.vrsinfo.de/gtfs/google_transit.zip /var/cache/publictransport
Der Import erfolgt dann über folgende Schnittstelle:
curl -X PUT http://localhost:8080/publicTransportStation/service/put/vrs
Liegt keine Datei zum Download vor, wird die Aktion mit einer Meldung abgebrochen.
Um für unterschiedliche Verkehrsverbünde unterschiedliche Mandaten zu ermöglichen, wird eine Datenbank für vrs angelegt.
sudo -u postgres createuser -P publictransport
sudo -u postgres createdb -O publictransport vrs
sudo -u postgres psql -c "CREATE EXTENSION postgis; CREATE EXTENSION postgis_topology;" vrs
Die Tabelle stop enthält alle Informationen zu den Haltestellen. Die Struktur basiert auf der General Transport Feed Specification. Nicht alle Spalten enthalten
CREATE TABLE stop (
id integer NOT NULL,
code character varying(40),
name character varying(256),
descrition character varying(256),
lat double precision,
lon double precision,
zoneid character varying(40),
url character varying(128),
locationtype integer,
parentstation character varying(40),
timezone character varying(40)
);
SELECT AddGeometryColumn ('public','stops','geom',4326,'POINT',2);
psql -h localhost -U publictransport -d vrs -a -f src/main/sql/publicTransport.init.sql
psql -h localhost -U publictransport vrs
Die Datenbankverbindungsparameter werden per JNDI zur Verfügung gestellt. Dies bedeutet, dass sie im Container definiert sein müssen. Für den Online-Betrieb mit Tomcat sind folgende Parameter zu setzen:
context.xml
<Context>
<ResourceLink
name="jdbc/publictransport/vrs"
global="jdbc/publictransport/vrs"
type="javax.sql.DataSource" />
</Context>
server.xml
<GlobalNamingResources>
<Resource
name="jdbc/publictransport/vrs"
auth="Container"
driverClassName="org.postgresql.Driver"
maxTotal="25"
maxIdle="10"
username="username"
password="password"
type="javax.sql.DataSource"
url="jdbc:postgresql://localhost:5432/vrs"
validationQuery="select 1"/>
Zu Testzwecken muss die Datei src/test/resources/jndi.properties.template in jndi.properties umbenannt und die Verbindungsparameter angepasst werden.
Folgende Schritte müssen zur Installation durchgeführt werden:
- Checkout Sources
- Prepare Database
- Prepare Tomcat
- Build Application
- Download data
- Import Data
Dieses Werk ist lizenziert unter einer Creative Commons Namensnennung - Weitergabe unter gleichen Bedingungen 4.0 International Lizenz.