TROBDB Webservices: Unterschied zwischen den Versionen
Stefan (Diskussion | Beiträge) K |
Stefan (Diskussion | Beiträge) K (→Webservices) |
||
Zeile 12: | Zeile 12: | ||
* format - Values: 'geojson' (optional) | * format - Values: 'geojson' (optional) | ||
* key - Values: email adress. Used for simple authentication. Please log in with a valid OpenID once on the main page. | * key - Values: email adress. Used for simple authentication. Please log in with a valid OpenID once on the main page. | ||
− | + | * Status: GeoJSON standard. Nothing else to choose atm. | |
− | |||
− | |||
=== Get traffic obstructions === | === Get traffic obstructions === |
Version vom 8. März 2014, 02:41 Uhr
Zurück zu TROBDB.
Inhaltsverzeichnis
Webservices
General information about API
- Current API version is 'v1'.
- Base URL is http://trobdb.hsr.ch/
- The current API only allows GET (read) requests. Modifying request are not implemented and not allowed.
- Usage policy: restricted use!
Common parameters
- format - Values: 'geojson' (optional)
- key - Values: email adress. Used for simple authentication. Please log in with a valid OpenID once on the main page.
- Status: GeoJSON standard. Nothing else to choose atm.
Get traffic obstructions
- Description: Returns a traffic obstruction (trobs) as an array of way_id's.
- URL: /gettrafficobstruction
- Method: HTTP GET
- Parameters:
- osmid - Value type: long integer (mandatory) - Description: id of OSM way (positive).
- lat - Latitude as decimal number
- lon - Longtitude as decimal number
- radius - Search radius in Meters
- togeojsonio - If defined, the user is directly linked to geojson.io to see all selected Traffic Obstructions
- Returns:
- HTTP 200 OK - Description: Everything is Ok.
- HTTP 401 Unauthorized - Description: Wrong key?
- HTTP 400 Bad Request - Description: Parameter(s) unknown, parameter(s) not existent, or way_id does not exist.
Examples:
- Request:
GET http://trobdb.hsr.ch/getTrafficObstruction?osmid=4769349
- Response (if success, GeoJSON is default):
{ "type": "FeatureCollection", "features": [{"type": "Feature","properties": { "traffic_obstruction_start": "2013-11-18 21:00:00", "issued": "2013-12-03 09:48:31", "isTunnel": "False", "issuer_name": "truckinfo.ch", "roadNarrow": "3.0", "isCarLoad": "False", "category": "1_31", "traffic_obstruction_end": "2013-12-10 05:00:00", "title": "[Schweiz] Veränderte Verkehrsführung Bern - Zürich", "osm_way_id": "4769349", "isPass": "False", "direction": "as_is", "description": "[Schweiz] Veränderte Verkehrsführung|Bern - Zürich|Zwischen Autobahndreieck Verzweigung Härkingen und Autobahndreieck Verzweigung Wiggertal in beiden Richtungen Veränderte Verkehrsführung, vorübergehende Begrenzung der Breite auf 3.0 Meter, Länge des betroffenen Abschnittes: 9.5 km, Höchstgeschwindigkeit: 80 km/h, Baustelle in der Nacht, Dauer: 18.11.2013 21:00 Uhr bis 10.12.2013 05:00 Uhr|jeweils von 21:00 - 05:00 Uhr|Ohne Nächte von Samstag auf Sonntag und Montag|", "emergency": "", "dbId": "156", "traffic_obstruction_string": "18.11.2013 21:00 Uhr bis 10.12.2013 05:00 Uhr", "AsText(point)": "POINT(8.041345 47.338103)", "sysdate": "2013-12-03 09:49:25", "country": "Schweiz", "AsText(geom)": "LINESTRING(8.04139 47.33722, 8.04137 47.337284, 8.041279 47.337592, 8.041217 47.33778, 8.041101 47.338202, 8.041023 47.33849, 8.040979 47.338724, 8.040963 47.338866, 8.040959 47.339037, 8.041001 47.339491, 8.041056 47.339738, 8.04112 47.339954, 8.041158 47.340038, 8.041203 47.340139, 8.04134 47.340399, 8.041513 47.340739)", "truckInfoImagePath": "mapserver2/symbols/icone36.png", "osm_highway": "primary", "depricated": "False", "road": "A1"},"geometry": {"type": "LineString", "coordinates": [[8.04139, 47.33722], [8.04137, 47.337284], [8.041279, 47.337592], [8.041217, 47.33778], [8.041101, 47.338202], [8.041023, 47.33849], [8.040979, 47.338724], [8.040963, 47.338866], [8.040959, 47.339037], [8.041001, 47.339491], [8.041056, 47.339738], [8.04112, 47.339954], [8.041158, 47.340038], [8.041203, 47.340139], [8.04134, 47.340399], [8.041513, 47.340739]]}}
]}
- Request:
GET http://trobdb.hsr.ch/getTrafficObstruction?lon=8.688187&lat=47.440446&radius=0.1
- Response (if success, GeoJSON is default): Siehe Diskussion
- Request:
GET http://trobdb.hsr.ch/getTrafficObstruction?lon=8.688187&lat=47.440446&radius=0.1&togeojsonio
- Response Forward to geojson.io: Siehe Diskussion
- [1]
Datenstruktur
Hinweise:
- 'trob' ist die Abkürzung von "Traffic Obstruction", d.h. Verkehrsbehinderung.
- Es gibt drei Tabellen mit fast identischer Datenstruktur, trobdb_line, trobdb_area, trobdb_point, die sich v.a. im Geometrie-Typ des Attributs 'geom' unterscheiden.
- Die mit "Exch." (=exchange) gekennzeichneten Attribute, d.h. der erste nachfolgende Teil, umfassen die vom Lieferanten auszutauschenden (maximal 14) Attribute.
- Die ENUM-Aufzählwerte werden als Zeichenketten codiert, wie angegeben.
- Die Werte im Attrbiut 'trob_interval' sind Intervall-Zeitangaben gemäss 'opening hours'-Format wobei dies als Nicht-Öffnungszeiten" interpretiert wird: Definition OSM, Demo (inkl. Source Code)
- In der Wert Tabelle/Record 'trobdb_area' ist 'direction' immer 'both' (es gibt keine Richtung bei Flächen).
- Es gibt zwei Identifikatoren: 'userid' und 'id'. Beide garantieren nur im Rahmen eines Datenbankzustandes eindeutig zu sein. Sie garantieren nicht, einzigartig bzw. über die Zeit (z.B. nach zwei Lieferungen) stabil zu sein.
- Es werden nur TROBDB-Objekte (aus den drei Tabellen) ausgeliefert, die nicht aktuell sind. Zurzeit werden obsolete Objekt eine Woche in der TROBDB intern behalten.
Tabelle/Record "trobdb_line":
geom: LINESTRING NOT_NULL -- (Exch.) Gesperrte bzw. verkehrsbehinderte Richtung (Reihenfolge der Stützpunkte relevant). userid: TEXT NULL -- (Exch.) Identifikator der Lieferanten/Quell-Datenbank (falls vorhanden). title: TEXT*100 NOT_NULL -- (Exch.) Titel. description: TEXT NUL_NULL -- (Exch.) Beschreibung. trob_start: DATETIME NOT_NULL -- (Exch.) Beginn (Zeitpunkt) der Verkehrsbehinderung. trob_end: DATETIME NOT_NULL -- (Exch.) Ende (Zeitpunkt) der Verkehrsbehinderung. trob_interval: TEXT NULL -- (Exch.) Verkehrsbehinderung als Intervall-Zeitangabe (im 'opening hours'-Format z.B. "Mo-Fr 7:30-12:00, 13:00-18:30; Sa 7:30-16:00", vgl. Bemerkungen). direction: ENUM NOT_NULL -- (Exch.) ENUM(as_is,reverse,both); Richtung der Sperrung/Verkehrsbehinderung (Erfassungs-Default: both) diversion_advice: TEXT NULL -- (Exch.) Umfahrungsempfehlung, insbes. falls sie signalisiert ist. (NEU) country: TEXT*2 NOT_NULL -- (Exch.) Länderkürzel gemäss ISO 3166-1 ALPHA-2; (Erfassungs-Default: 'CH'). reason: ENUM NOT_NULL -- (Exch.) ENUM(construction, event, other); (Erfassungs-Default: other). (NEU) object_name: TEXT NULL -- (Exch.) Strassenname (falls gegeben); (z.B. 'A1' oder 'Etzelstrasse'). object_type: ENUM NOT_NULL -- (Exch.) ENUM(street, tunnel, car_transport, pass, other); (Erfassungs-Default: street). (NEU) trob_type: ENUM NOT_NULL -- (Exch.) ENUM(closed, closed_except_emergency, closed_for_heavy_load, obstructed, other); (Erfassungs-Default: closed). (NEU)
id: INTEGER NOT_NULL -- Identifiaktor als Sequence der TROBB (autoincrement). sysdate: DATETIME NOT_NULL -- Datum des Eintrags dieses Records. issuer_name: TEXT NULL -- Name desjenigen, von dem die Meldung kam (=> OpenID Email?). osm_way_id: BIGINTEGER NULL -- OSM way id vom Matching (nur bei trobdb_line) osm_highway: TEXT NULL -- Wert des highway-Tags, z.B. motorway, footway (nur bei trobdb_line)
issued: DATETIME NULL -- (Exch.) Datum z.B. der Bewilligung von demjenigen, von dem die Meldung kam. (ENTFERNEN) emergency: BOOLEAN NULL -- (Exch.) Rettungs-Fz können trotzdem durchfahren. (ENTFERNEN) is_tunnel: BOOLEAN NOT_NULL -- from truckinfo text (ENTFERNEN) is_car_transport: BOOLEAN NOT_NULL -- Evaluated from truckinfo text. (ENTFERNEN) is_pass: BOOLEAN NOT_NULL -- Evaluated from truckinfo text. (ENTFERNEN) deprecated BOOLEAN NOT_NULL -- Wird TRUE wenn traffic_obstruction_end erreicht. (Default=FALSE). (ENTFERNEN) truckinfoimagepath: TEXT NULL -- imagepath von truckinfo-Quelle. (ENTFERNEN)
Tabelle/Record "trobdb_area":
geom: MULTIPOLYGON NOT_NULL -- gesperrte Fläche, z.B. bei Dorfkern-Sperrungen. ... -- ditto wie "trobdb_line" jedoch ohne osm_highway and osm_way_id osm_way_id_list BIGINTEGER NOT_NULL -- all osm_ways matching to st_intersects with the polygon data
Tabelle/Record "trobdb_point":
geom: POINT NOT_NULL -- gesperrter Punkt, z.B. Pässe/Tunnel/Autoverlade ... -- ditto wie "trobdb_line" jedoch ohne osm_highway and osm_way_id
Notizen:
- LINESTRING Richtung matchen zu OpenStreetMap Ways. Lösung zur Richtung des LINESTRINGS.