Klik hier om de offline documentatie van de WEB

Een introductie voor ontwikkelaars
versie 10152014
Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
1 2 Inhoudgsopgave
Een introductie voor ontwikkelaars 2 Inhoudgsopgave 3 Inleiding 3.1 WEB­API 3.2 Authenticatie & Autorisatie 3.3 Payload formaten 4 Overzicht van API endpoints 5 Endpoints voor configuratiedata 5.1 Roadsegments API 5.1.1 Record definitie 5.1.2 Operaties 5.1.2.1 GET https://connect.simacan.com/api/v1/roadsegments 5.1.2.1.1 Parameters 5.1.2.1.2 Respons 5.1.2.2 GET https://connect.simacan.com/api/v1/roadsegments/metadata 5.1.3 Record definitie 5.2 Feeds API 5.2.1 Record definitie 5.2.2 Operaties 5.2.2.1 GET https://connect.simacan.com/api/v1/feeds 6 Endpoints voor statusgegevens (weer/verkeer) 6.1 Trafficstate API 6.1.1 Record definitie 6.1.2 Operaties 6.1.2.1 GET https://connect.simacan.com/api/v1/trafficstate/latest 6.1.2.1.1 Parameters: 6.1.2.1.2 Response 6.2 Events API 6.2.1 Record Definitie 6.2.2 Operaties 6.2.2.1 GET https://connect.simacan.com/api/v1/events/latest 6.2.2.1.1 Parameters 6.2.2.1.2 Respons 6.3 Weatherstate 6.3.1 Record Definitie 6.3.2 Operaties 6.3.2.1 GET https://connect.simacan.com/api/v1/weatherstate/latest 6.3.2.1.1 Parameters 6.3.2.1.2 Respons 6.4 Weather forecast Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
2 6.4.1 Record Definitie 6.4.2 Operaties 6.4.2.1 GET https://connect.simacan.com/api/v1/weatherforecast/latest 6.4.2.1.1 Parameters 6.4.2.1.2 Respons 6.5 Roadrestrictions API 6.5.1 Record definitie (response) 6.5.2 Operaties 6.5.2.1 HTTP GET https://connect.simacan.com/api/v1/roadrestrictions 6.5.2.1.1 Parameters 6.5.2.1.2 Respons 7 Endpoints voor openbaar vervoer 7.1 Stops 7.1.1 Record definitie (response) 7.1.2 Operaties 7.1.2.1 Type operaties 7.1.2.2 Parameters 7.1.2.2.1 Respons 7.2 Routes 7.2.1 Record definitie (response) 7.2.2 Operaties 7.2.2.1 Type operaties 7.2.2.2 Parameters 7.2.2.2.1 Respons 7.3 Planning 7.3.1 Record definitie (response) 7.3.2 Operaties 7.3.2.1 Type operaties 7.3.2.2 Parameters 7.3.2.2.1 Respons 7.4 Actuele vertrektijden (departures) 7.4.1 Record definitie (response) 7.4.2 Operaties 7.4.2.1 Type operaties latest 2.4.2.1.1 Parameters 7.4.2.2.1 Respons 7.4.2.3 Type operaties historic 7.4.2.4 Parameters 7.4.2.4.1 Respons 7.5 OV actuele posities 7.5.1 Record definitie (response) 7.5.2 Operaties 7.5.2.1 Type operaties latest Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
3 7.5.2.2 Parameters 7.5.2.2.1 Respons 8 Request en repsonse voorbeelden van de Trafficstate en Events API 8.1 Trafficstate 8.1.1 Request 8.1.2 Response 8.1.2.1 application/json 8.2 Events 8.2.1 Request 8.2.2 Response 8.2.2.1 application/json 9 BIJLAGE: Payload formaten en datatypen 9.1 JSON 9.1.1 Samengestelde types 9.2 Datatypes 9.3 Enumeraties 9.3.1 vehicle_type_enum 9.3.2 locationreference_type_enum 9.3.3 carriageway_enum 9.3.4 lane_enum 9.3.5 segment_state_type_enum 9.3.6 vild_direction_enum 9.3.7 weather_type_enum 9.4 Java­to­XML Mapping for Built­In Data Types 10 Error status codes 3 Inleiding
Het Smart Mobility Platfrom is een initiatief van provincie Utrecht, Economic Board Utrecht en de partners in het Smart Mobility project: Simacan, Technolution, TNO en Royal HaskoningDHV. Voor de technische realisatie van dit platform wordt gebruik gemaakt van het Simacan Connect Platform. Het Simacan Connect Platform is solide data infrastructuur die reeds commercieel wordt ingezet. Sinds kort wordt de functionaliteit in dit platform stap voor stap beschikbaar gemaakt voor andere partijen om zelf diensten of toepassingen te ontwikkelen middels een zgn WEB­API. Winnaars van de Smart Mobility Challenge krijgen toegang tot deze API inclusief een aantal publieke en private databronnen waarmee zij zelf nieuwe diensten en toepassingen kunnen ontwikkelen. Het grote voordeel van het platform is dat al deze databronnen te raadplegen zijn in een ruimtelijke configuratie die kaart en dataleverancier onafhankelijk werkt. Op deze manier wordt het eenvoudiger en goedkoper om deze databronnen te gebruiken. Dit document geeft een technische beschrijving van deze WEB­API, welke functionaliteit beschikbaar is incl. een aantal voorbeelden zodat potentiële deelnemers van de Smart Mobilty Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
4 Challenge een goed inhoudelijk beeld krijgen voor het ontwerp van hun toekomstige dienst en/of toepassing. De WEB­API is beschikbaar maar ook continu in ontwikkeling. Voor vragen raadpleeg het smartmobility forum op http://www.smartmobilityutrecht.nl Op https://status.simacan.com kan real­time de beschikbaarheid van het platform worden bekeken incl meldingen over gepland onderhoud. 3.1 WEB-API
Simacan Connect is een WEB­API ook wel RESTful API. De URL beschrijft de call en data/func die wordt benaderd en een selectie van de data. Alle communicatie verloopt via /HTTPS. bijv: GET https://connect.simacan.com/api/v1/trafficstate/latest Webservice­API's die voldoen aan de REST1 beperkingen worden REST genoemd. REST API's worden gedefinieerd met deze aspecten: ● base URI, zoals http://example.com/resources/ ● een Internet mediatype voor de gegevens. Dit is vaak JSON, maar kan een andere geldige Internet media (bv. XML, CSV, Atom, microformats, afbeeldingen, enz.) zijn ● standaard HTTP­methoden (bijvoorbeeld GET, PUT, POST of DELETE) Wanneer de ontvanger de nieuwste data wil opvragen zal deze zelf het initiatief moeten nemen om een request te doen en op deze wijze nieuwe updates te ontvangen. In de API kan een pull request uitgevoerd worden door een simpel GET request te doen op de gewenst call. Bijvoorbeeld GET https://connect.simacan.com/api/v1/trafficstate/latest. 3.2 Authenticatie & Autorisatie
De implementatie ten behoeven van authenticatie en autorisatie geschiedt middels een API_KEY mechaniek. API keys zijn een zeer gangbaar wijze voor authenticatie op het WEB. Het formaat van de API_KEY mag zelf gekozen. Een API_KEY wordt bij ieder request meegezonden als http header. Alle API calls gaan via HTTPS. De API zal geen requests afhandelen via HTTP. 1
In tegenstelling tot SOAP gebaseerde webservices, is er geen "officiële" standaard voor REST web­API's. Dit komt omdat REST is een architectonische stijl, in tegenstelling tot SOAP, dat is een protocol. Ook al REST is niet een standaard, een REST implementatie zoals het Web bevat standaarden zoals HTTP, URI, XML, etc. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
5 3.3 Payload formaten
De API ondersteunt de volgende media types om payloads van de responses in te encoderen. In de onderstaande tabel wordt aangegeven welke response media types beschikbaar zijn tijdens het Smart Mobility Utrecht project. Payload formaat Accept header Ondersteund in Smart Mobility Utrecht csv application/cvs nee json application/json ja xml application/xml nee protobuf (binair) websockets nee In het hoofdstuk “Payload formaten en datatypen” kunt u lezen hoe binnen de verschillende payload formaten datatype worden gepresenteerd (gecodeerd). In het hoofdstuk voorbeelden kunt een een aantal interactie voorbeelden zien hoe u de API kunt gebruiken en hoe data wordt teruggegeven wanneer u een API call uitvoert. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
6 4 Overzicht van API endpoints
De endpoints zijn onderverdeeld per (functionele) categorie gegevensdata (bijv. trafficstate, weatherstate etc). Statusgegevens zijn altijd gekoppeld aan één of meer wegsegmenten (Simacan Unified Segments). Hieronder volgt een overzicht. Voor elk categorie data zijn drie endpoints gedefinieerd: ● latest
De latest calls zijn bedoeld om de laatst beschikbare data zo snel mogelijk terug te geven. De laatste 5 minuten aan data is beschikbaar via deze endpoints. ● historic
Historic calls geven data terug over een tijdsbereik tot maximaal 4 uur in het verleden. Deze calls hebben mogelijk een langere wachttijd dan de latest calls. (niet beschikbaar in de Smart Mobility Challenge) ● realtime
Geeft data terug als deze beschikbaar komt via een streaming (Websocket) interface. (niet beschikbaar in de Smart Mobility Challenge) Naast bovenstaande overzicht zullen wegbeperkingen van de RDW (Roadrestrictions API) en
OV informatie (public­transport API) beschikbaar worden gesteld. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
7 De Segmentstate, VehicleState en historic en real­time streaming endpoints zijn niet beschikbaar tijdens de Smart Mobility Challenge 5 Endpoints voor configuratiedata
5.1 Roadsegments API
De kracht van het Connect platform is dat alle beschikbare databronnen 1 en dezelfde ruimtelijke configuratie hanteren. Deze ruimtelijke configuratie van wegen worden uitgedrukt in zgn Unified segments. Dit zijn segmenten van 100 meter waaraan gemeten en afgeleide data is gekoppeld. Deze segmenten worden gebruikt in de segment_id parameter van vrijwel alle API calls binnen het platform. Een wegsegment kan zowel een stukje van een rijbaan als een stukje van een rijstrook beschrijven. De meest voor de hand liggende volgorde is dat u 1 keer per week/maand/kwartaal de configuratie ophaalt deze lokaal opslaat en vervolgens aan de hand van deze segmenten de data gaat bevragen in het platform. 5.1.1 Record definitie
Veldnaam Dataty
pe Eenheid Verplicht Beschrijving id long Verplicht Uniek ID van het segment binnen de configuratieversie. lane lane_e
num Verplicht Rijstrook. max_speed integer km/h Verplicht Wettelijke maximum snelheid. length integer m Verplicht Lengte van het segment. location location referen
ce Verplicht Locatiereferentie. Dit hangt af van de locationreferencetype parameter die wordt opgegeven aan de GET request. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
8 5.1.2 Operaties
5.1.2.1 GET https://connect.simacan.com/api/v1/roadsegments
5.1.2.1.1 Parameters
Onderstaand worden de parameters opgesomd, die opgegeven kunnen worden bij het opvragen van wegsegmenten. Als er gebruik wordt gemaakt van een route of locationreference, zullen de roadsegments teruggegeven worden in de volgorde van de route of locationreference. Parameter Datatype Verplicht? Beschrijving segment_id long Optioneel Segment ID's gescheiden door een komma. lane lane_enum Optioneel Komma gescheiden lijst van rijstrook types. Indien weggelaten wordt “allLanesCompleteCarriageway” gebruikt. bounding_box boundingbox Optioneel Geef wegsegmenten terug die vallen binnen
de bounding box. route coordinate,coo Optioneel rdinate Geeft de wegsegmenten terug de op de route beschreven door het start­coördinaat en het eind­coördinaat. locationreferenc locationreferen Optioneel e ce_type_enum
:encoding:data Geeft die wegsegmenten terug die worden beschreven door de locatiereferentie. De data moet zijn gecodeerd volgens de gegeven encoding. Mogelijk waarden voor encoding zijn: "hex" en "b64". Bijvoorbeeld: openlr:hex:a7d3445. locationreferenc locationreferen Optioneel e_return_type ce_type_enum Het locatiereferentie mechanisme dat wordt gebruikt om de locatie van de segmenten in
het resultaat te beschrijven. Indien niet opgegeven wordt WGS84 gebruikt. 5.1.2.1.2 Respons
0 .. N records, volgens de record definitie Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
9 5.1.2.2 GET https://connect.simacan.com/api/v1/roadsegments/metadata
Bevat metagegevens over de configuratie. Het veld version moet aanwezig zijn. Andere velden kunnen door leveranciers worden toegevoegd. 5.1.3 Record definitie
Veldnaam Dataty
pe Eenheid Verplicht Beschrijving version string Configuratieversie Verplicht 5.2 Feeds API
Middels deze interface kan worden opgevraagd welke feeds aanwezig zijn en door welke leverancier deze worden geleverd. 5.2.1 Record definitie
Veldnaam Datatype Eenheid Verplicht Beschrijving id integer Verplicht ID van feed name text Verplicht Naam van feed supplier_name text Verplicht Naam van de leverancier van de feed. 5.2.2 Operaties
5.2.2.1 GET https://connect.simacan.com/api/v1/feeds
Haalt alle beschikbare feeds op en geeft deze terug. Deze operatie heeft geen parameters. De response bestaat uit een verzameling met daarin alle records. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
10 6 Endpoints voor statusgegevens (weer/verkeer)
6.1 Trafficstate API
Levert de gemeten waarden per bron, gekoppeld aan een wegsegment. Voor alle operaties binnen de ‘trafficstate’ endpoint geldt dat op geavanceerde wijze data van verschillende feeds kan worden opgevraagd. Als eerste kunnen feeds expliciet genoemd worden middels de id.. Als als feed_id een ‘*’ wordt opgegeven, dan worden alle beschikbare feeds teruggegeven, voor zover de dataleverancier doorsturen van brondata toestaat. 6.1.1 Record definitie
Veldnaam Datatype Eenheid Beschrijving measurement_time timestamp Tijdstip van de meting. segment_id long ID van het wegsegment vehicle_type vehicle_typ
e_enum Voertuigklasse. speed float km/h Ruimtelijk gemeten snelheid max_speed integer km/h Wettelijke maximum snelheid freeflow_speed float km/h Freeflow snelheid flow integer vtg/h Intensiteit traveltime float sec Reistijd. Inverse snelheid feed_id integer ID van de feed waarvan dit record afkomstig is. De velden measurement_time, source, segment_id en vehicle_type vormen een unique key. Dat wil zeggen voor een combinatie van deze waarden is slechts een instantie van een record beschikbaar. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
11 6.1.2 Operaties
6.1.2.1 GET
https://connect.simacan.com/api/v1/trafficstate/latest
Retourneert de laatst gemeten waardes per wegsegment en per bron. Indien meerdere bronnen en/of wegsegmenten zijn opgegeven wordt een record per bron en wegsegmenten teruggegeven. 6.1.2.1.1 Parameters:
Parameter Datatype V/O Beschrijving segment_id long O Wegsegment(en) gescheiden door een komma. feed_id integer of ‘*’ O Databron(nen). Gescheiden door een komma. Indien niet gespecificeerd wordt de gefuseerde trafficstate gebruikt. Wanneer als feed_id parameter een ’*’ wordt opgegeven betekent dat de metingen van alle beschikbare feeds afzonderlijk worden teruggegeven, voor zover de dataleverancier het doorsturen van brondata toestaat. start_time timestamp O vehicle_type text O Retourneert de laatste metingen vanaf het gespecificeerde tijdstip. Indien dit zou resulteren in een periode langer dan 5
minuten wordt een foutcode (204, no content) teruggegeven. Als geen waarde is opgegeven wordt de laatste minuut teruggeven. Voertuigklassen, gescheiden door komma. Indien niet gespecificeerd wordt de categorie AnyVehicle gebruikt. * betekent dat de metingen van alle beschikbare categorieën
afzonderlijk worden teruggegeven. 6.1.2.1.2 Response
0 .. N records zoals beschreven in de record definitie die voldoen aan het opgegeven filter en max_age. 6.2 Events API
Levert journalistieke verkeersdata Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
12 Records met betrekking tot incidenten worden doorgeleverd, zoals deze van de dataleverancier worden ontvangen. Als bijvoorbeeld in de incidentenfeed van het NDW om 12:00 en om 12:01 melding gemaakt wordt van hetzelfde incident, dan zullen ook twee records doorgeleverd worden. Deze interface geeft geen locatie in WGS84 coordinaten van het incident terug, maar alleen de segment­ids. Vervolgens kunnen via de configuratie­interface de locaties van de betreffende segmenten worden opgevraagd in diverse locatie­referenties. 6.2.1 Record Definitie
Veldnaam Datatype Eenhei
d Beschrijving event_id integer Unieke ID van event. Deze blijft voor de gehele levensduur van het event gelijk. version integer Event versie. Wijzigt per update. event_code list<integer> TPEG TEC causeCode start_time timestamp update_time timestamp Van deze versie expected_end_t timestamp ime segment_id list<long> Lijst van id’s van getroffen segmenten feed_id integer ID van de feed waarvan dit record afkomstig is. 6.2.2 Operaties
6.2.2.1 GET https://connect.simacan.com/api/v1/events/latest
6.2.2.1.1 Parameters
Parameter Datatype Verplicht? Beschrijving segment_id long Optioneel Wegsegment(en) gescheiden door een komma. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
13 feed_id integer Optioneel Databron(nen), gescheiden door een komma. max_age integer Optioneel Maximale leeftijd van een meting in seconden. 6.2.2.1.2 Respons
0 .. N records, volgens de record definitie. Alle incidenten die betrekking hebben op het wegsegment worden teruggegeven. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
14 6.3 Weatherstate
Levert weergegevens op segmentniveau volgens sectie 3.3.3 van werkgroep 1 specificatie. Er wordt op gewezen dat de specifieke waarschuwingen, zoals gladheid, mist en wind, opgenomen zijn in een apart endpoint: ‘Environmental state’. 6.3.1 Record Definitie
Veldnaam Datatype Eenhe
id Beschrijving segment_id long Lijst van id’s van getroffen segmenten
measurement_ timestamp time Tijdstip van de meting weather_type weather_ty
pe_enum Type weer/neerslag value float *2 Gemeten waarde feed_id integer Bron waar de waarde vandaan komt 6.3.2 Operaties
6.3.2.1 GET https://connect.simacan.com/api/v1/weatherstate/latest
6.3.2.1.1 Parameters
2
Parameter Datatype Verplicht? Beschrijving segment_id long Optioneel Wegsegment(en) gescheiden door een komma. weather_type weather_type_enum Optioneel Weer/neerslag types, gescheiden door komma. feed_id integer Optioneel Databron(nen), gescheiden door een komma. Verschilt per weather_type Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
15 max_age integer Optioneel Maximale leeftijd van een meting in seconden. 6.3.2.1.2 Respons
0 .. N records, volgens de record definitie. Alle weermetingen die betrekking hebben op het wegsegment worden teruggegeven. 6.4 Weather forecast
Levert weersvoorspellingen op segmentniveau volgens sectie 3.3.3 van werkgroep 1 specificatie. Weersvoorspellingen worden tot 6 uur in de toekomst gegeven en elke 15 minuten ververst. 6.4.1 Record Definitie
Veldnaam Datatype Eenheid Beschrijving segment_id long Lijst van id’s van getroffen segmenten
measuremen
t_time timestamp Tijdstip van de meting weather_type weather_ty
pe_enum Type weer/neerslag value float *3 Voorspelde waarde certainty float Zekerheid van de voorspelling feed_id integer Bron waar de waarde vandaan komt 6.4.2 Operaties
6.4.2.1 GET https://connect.simacan.com/api/v1/weatherforecast/latest
Retourneert de huidige voorspellingen voor de komende 6 uur voor de bevraagde segmenten en weertypes. 3
Verschilt per weather_type Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
16 6.4.2.1.1 Parameters
Parameter Datatype Verplicht? Beschrijving segment_id long Optioneel Wegsegment(en) gescheiden door een komma. weather_type weather_type_enum Optioneel Weer/neerslag types, gescheiden door komma. feed_id integer Optioneel Databron(nen), gescheiden door een komma. 6.4.2.1.2 Respons
0 .. N records, volgens de record definitie. Alle weersvoorspellingen die betrekking hebben op het wegsegment worden teruggegeven. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
17 6.5 Roadrestrictions API
Bevat de wegsegmenten waaraan restricties zijn gekoppeld zoals toegekend door de RDW. De data is afkomstig van de RDW en bestaat uit de dataset Beperkingen voor Voertuigen. Informatie zoals de locatie, lengte en rijbaan en rijstrook informatie kan opgevraagd worden via de Roadsegements API in Simacan Connect. Een call gebeurd middels een HTTP GET. Data wordt in de HTTP response teruggestuurd in JSON. 6.5.1 Record definitie (response)
Veldnaam Datatype Eenheid Verplicht Beschrijving id long Verplicht Uniek ID van het segment binnen de configuratieversie. maximum_total_w float eight kilograms Verplicht Het maximale totale gewicht in kilogram van een voertuig dat op dit segment is toegestaan.. maximum_singlea float xleweight kilograms Verplicht Het maximumgewicht in kilogram dat per enkele as van een voertuig op dit segment is toegestaan. maximum_height float meters Verplicht De maximale hoogte in meters die is toegestaan voor een voertuig dat onder een ander object (segment) door kan. maximum_length float meters Verplicht De maximale voertuiglengte in meters die op dit segment vervoerselement is toegestaan. maximum_width float meters De maximale voertuigbreedte die op dit segment is toegestaan. valid_from timestamp datetime UTC De datum sinds wanneer de restrictie geldig is valid_to timestamp datetime UTC De datum tot wanneer de restricitie geldig is. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
18 6.5.2 Operaties
6.5.2.1 HTTP GET https://connect.simacan.com/api/v1/roadrestrictions
6.5.2.1.1 Parameters
Retourneert de waardes per wegsegment. Indien meerdere wegsegmenten zijn opgegeven wordt een record per wegsegment teruggegeven. Request parameter Datatype Verplicht Beschrijving segment_id long Verplicht Segment ID's gescheiden door een komma. 6.5.2.1.2 Respons
0 .. N records, volgens de record definitie in JSON formaat Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
19 7 Endpoints voor openbaar vervoer
7.1 Stops
Bevat alle geografische informatie van stops, zoals bushaltes, tram/metro stations en trein stations. De data kan opgevraagd worden via de public­transport/stops API in Simacan Connect. Een call gebeurd middels een HTTP GET of HTTP POST. Data wordt in de HTTP response teruggestuurd in JSON. 7.1.1 Record definitie (response)
Veldnaam Datatype Eenheid Beschrijving stop_id String Een ID wat de bushalte of station beschrijft stop_name String Naam van de betreffende bushalte of station stop_lat float Coordinaat in WGS84 latitude stop_lon float Coordinaat in WGS84 longitude segment_id long ID van het wegsegment waarop de stop ligt. Of het wegsegment waar de stop het dichtst bij ligt / de ingang ligt. route_id list<long> Lijst van route ID’s die de stop bedienen
7.1.2 Operaties
7.1.2.1 Type operaties
HTTP GET https://connect.simacan.com/api/v1/public­transport/stops HTTP POST https://connect.simacan.com/api/v1/public­transport/stops 7.1.2.2 Parameters
Onderstaand worden de parameters opgesomd, die opgegeven kunnen worden bij het opvragen van ov stops. Als er gebruik wordt gemaakt van een trip, route of locationreference, zullen de stops teruggegeven worden in de volgorde van de trip, route of locationreference. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
20 Request parameter Datatype Beschrijving route_id String Route ID’s gescheiden door een komma. Geef stops terug die bij de route horen segment_id long Segment ID's gescheiden door een komma. Geef stops terug die op een segment liggen. bounding_box boundingbox Geef stops terug die vallen binnen de bounding box. route coordinate,coo Geeft de stops terug de op de route beschreven door het rdinate start­coördinaat en het eind­coördinaat. locationreferen
ce locationreferen Geeft die stops terug die worden beschreven door de ce_type_enum locatiereferentie. De data moet zijn gecodeerd volgens de :encoding:data gegeven encoding. Mogelijk waarden voor encoding zijn: "hex" en "b64". Bijvoorbeeld: openlr:b64:CwOi1SUL6yOVA/7y/6wjBQ== 7.1.2.2.1 Respons
0 .. N records, volgens de record definitie in JSON formaat
7.2 Routes
Bevat alle geografische informatie van OV routes. Bijvoorbeeld een bus, metro/tram of trein lijn. De data kan opgevraagd worden via de OV routes API in Simacan Connect. Een call gebeurd middels een HTTP GET of HTTP POST. Data wordt in de HTTP response teruggestuurd in JSON. 7.2.1 Record definitie (response)
Veldnaam Datatype Eenheid Beschrijving route_id String Een ID wat de route beschrijft route_type long Een ID wat het type transport van de route beschrijft Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
21 localized_route_ty String pe Additionele info over het type transport, bijv Buurtbus of Belbus agency_id String Een ID van de maatschappij stop_id list<long> Lijst van stop ID’s waarover de route loopt segment_id list<long> Lijst van segment ID’s waarover de route loopt location locationrefer
ence Locatiereferentie. Dit hangt af van de locationreferencetype parameter die wordt opgegeven aan de GET request. 7.2.2 Operaties
7.2.2.1 Type operaties
HTTP GET https://connect.simacan.com/api/v1/public­transport/routes HTTP POST https://connect.simacan.com/api/v1/public­transport/routes 7.2.2.2 Parameters
Onderstaand worden de parameters opgesomd, die opgegeven kunnen worden bij het opvragen van ov stops. Als er gebruik wordt gemaakt van een trip, route of locationreference, zullen de stops teruggegeven worden in de volgorde van de trip, route of locationreference. Request parameter Datatype Beschrijving route_id String Route ID’s gescheiden door een komma. Geef opgegeven routes terug. route_type long Route types gescheiden door een komma. Geef routes terug die bij de route type horen (type transport) stop_id String Stop ID’s gescheiden door een komma. Geef routes terug die de stop bedienen. segment_id long Segment ID's gescheiden door een komma. Geef routes terug die over een segment lopen. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
22 bounding_box boundingbox Geef routes terug die (deels) vallen binnen de bounding box. route coordinate,coo Geeft de ov routes terug die (deels) lopen over de route rdinate beschreven door het start­coördinaat en het eind­coördinaat. locationreferen
ce locationreferen Geeft die ov routes terug die (deels) lopen over de route ce_type_enum die worden beschreven door de locatiereferentie. De data :encoding:data moet zijn gecodeerd volgens de gegeven encoding. Mogelijk waarden voor encoding zijn: "hex" en "b64". Bijvoorbeeld: openlr:hex:a7d3445. 7.2.2.2.1 Respons
0 .. N records, volgens de record definitie in JSON formaat
7.3 Planning
Bevat alle planningen van OV trips per stop. De data kan opgevraagd worden via de OV planning API in Simacan Connect. Een call gebeurd middels een HTTP GET of HTTP POST. Data wordt in de HTTP response teruggestuurd in JSON. 7.3.1 Record definitie (response)
Veldnaam Datatype Eenheid Beschrijving stop_id String Een ID wat de bushalte of station beschrijft route_id String Een ID wat de route beschrijft route_type long Een ID wat het type transport van de route beschrijft localized_route_ty String pe Additionele info over het type transport, bijv Buurtbus of Belbus service_id String Een ID wat aangeeft wanneer de service beschikbaar is trip_id String Een ID wat de trip beschrijft Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
23 stop_sequence long Het nummer van de stop van de bijbehorende trip planned_arrival_ti
me timestamp Geplande aankomsttijd bij stop planned_departur
e_time timestamp Geplande vertrektijd bij stop wheelchair_acces integer sible 0: geen info beschikbaar 1: ten minste 1 plaats beschikbaar 2: niet beschikbaar bikes_allowed 0: geen info beschikbaar 1: ten minste 1 plaats beschikbaar 2: niet beschikbaar integer 7.3.2 Operaties
7.3.2.1 Type operaties
HTTP GET https://connect.simacan.com/api/v1/public­transport/planning HTTP POST https://connect.simacan.com/api/v1/public­transport/planning 7.3.2.2 Parameters
Retourneert de planningen per stop. Request parameter Datatype Beschrijving stop_id String Stop ID’s gescheiden door een komma. Geef planning terug die bij de stop horen. route_id String Route ID’s gescheiden door een komma. Geef planning terug die bij de route horen, gescheiden per
stop route_type long Route types gescheiden door een komma. Geef planning terug die bij de route type horen (type transport) trip_id String Trip ID’s gescheiden door een komma. Geef planning per stop terug die bij de trip horen Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
24 start_time timestamp Vanaf moment (inclusief) voor retourneren planned_departure_time end_time timestamp Tot moment (inclusief) voor retourneren planned_departure_time first_planned_d timestamp eparture_time Geef voor ieder route_id het eerst volgende planned_departure_time 7.3.2.2.1 Respons
0 .. N records, volgens de record definitie in JSON formaat
7.4 Actuele vertrektijden (departures)
Bevat alle actuele vertrektijden van OV trips. De data kan opgevraagd worden via de OV realtime departs API in Simacan Connect. Een call gebeurd middels een HTTP GET of HTTP POST. Data wordt in de HTTP response teruggestuurd in JSON. 7.4.1 Record definitie (response)
Veldnaam Datatype Eenheid Beschrijving stop_id String Een ID wat de bushalte of station beschrijft route_id String Een ID wat de route beschrijft route_type long Een ID wat het type transport van de route beschrijft localized_route_ty String pe Additionele info over het type transport, bijv Buurtbus of Belbus trip_id String Een ID wat de trip beschrijft stop_sequence long Het nummer van de stop van de bijbehorende trip current_arrival_ti
me timestamp Actuele (verwachte) aankomsttijd bij stop current_departure timestamp _time Actuele (verwachte) vertrektijd bij stop Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
25 7.4.2 Operaties
7.4.2.1 Type operaties latest
HTTP GET https://connect.simacan.com/api/v1/public­transport/departures/latest HTTP POST https://connect.simacan.com/api/v1/public­transport/departures/latest 2.4.2.1.1 Parameters
Retourneert de realtime departures per stop. Request parameter Datatype Beschrijving stop_id String Stop ID’s gescheiden door een komma. Geef planning terug die bij de stop horen. route_id String Route ID’s gescheiden door een komma. Geef planning terug die bij de route horen. route_type long Route types gescheiden door een komma. Geef planning terug die bij de route type horen (type transport) trip_id String Trip ID’s gescheiden door een komma. Geef planning terug die bij de trip horen. start_time timestamp Vanaf moment (inclusief) voor retourneren real_departure_time, huidig tijdstip of later end_time timestamp Tot moment (inclusief) voor retourneren real_departure_time, later dan start_time first_planned_d timestamp eparture_time Geef voor ieder route_id het eerst volgende planned_departure_time, huidig tijdstip of later 7.4.2.2.1 Respons
0 .. N records, volgens de record definitie in JSON formaat 7.4.2.3 Type operaties historic
HTTP GET https://connect.simacan.com/api/v1/public­transport/departures/historic Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
26 HTTP POST https://connect.simacan.com/api/v1/public­transport/departures/historic 7.4.2.4 Parameters
Retourneert de waardes per wegsegment. Indien meerdere wegsegmenten zijn opgegeven wordt een record per wegsegment teruggegeven. Request parameter Datatype Beschrijving stop_id String Stop ID’s gescheiden door een komma. Geef planning terug die bij de stop horen. route_id String Route ID’s gescheiden door een komma. Geef planning terug die bij de route horen. route_type long Route types gescheiden door een komma. Geef planning terug die bij de route type horen (type transport) trip_id String Trip ID’s gescheiden door een komma. Geef planning terug die bij de trip horen. start_time timestamp Vanaf moment (inclusief) voor retourneren real_departure_time, eerder dan end_time end_time timestamp Tot moment (inclusief) voor retourneren real_departure_time, huidig tijstip of eerder first_planned_d timestamp eparture_time Geef voor ieder route_id het eerst volgende planned_departure_time, huidig tijdstip of eerder 7.4.2.4.1 Respons
0 .. N records, volgens de record definitie in JSON formaat
7.5 OV actuele posities
Bevat alle actuele posities van OV trips. De data kan opgevraagd worden via de OV realtime positions API in Simacan Connect. Een call gebeurd middels een HTTP GET of HTTP POST. Data wordt in de HTTP response teruggestuurd in JSON. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
27 7.5.1 Record definitie (response)
Veldnaam Datatype Eenheid Beschrijving trip_id String Een ID wat de trip beschrijft stop_lat float Coordinaat in WGS84 latitude stop_lon float Coordinaat in WGS84 longitude speed float Huidige snelheid van het voertuig segment_id long Indien beschikbaar: het segment ID waar het voertuig zich op bevindt next_stop_id String Het eerst volgende stop ID van deze trip
next_stop_sequen long ce Het eerst volgende stop sequence van deze trip vehicle_id String Een ID van het voertuig current_status String Huidige status van het voertuig, mogelijke waarden: INCOMING_AT, STOPPED_AT, IN_TRANSIT_TO schedule_relation
ship String Status van de trip, mogelijke waarden: SCHEDULED, ADDED, UNSCHEDULED, CANCELED 7.5.2 Operaties
7.5.2.1 Type operaties latest
HTTP GET https://connect.simacan.com/api/v1/public­transport/positions/latest HTTP POST https://connect.simacan.com/api/v1/public­transport/positions/latest 7.5.2.2 Parameters
Retourneert de waardes per wegsegment. Indien meerdere wegsegmenten zijn opgegeven wordt een record per wegsegment teruggegeven. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
28 Request parameter Datatype Beschrijving trip_id String Trip ID’s gescheiden door een komma. Geef planning terug die bij de trip horen segment_id long Segment ID's gescheiden door een komma. Geef voertuigen terug die momenteel op een segment liggen. bounding_box boundingbox Geef stops terug die vallen binnen de bounding box. start_time timestamp Retourneert de laatste publicaties vanaf het gespecificeerde tijdstip (start_time). Dit wil zeggen dat het meegeven van de vorige verzoekstijd meegeven als start_time leidt dat er geen data gemist wordt. Als geen waarde voor start_time is opgegeven, dan wordt de laatste
gepubliceerde waarde teruggeven. Indien dit zou resulteren in een periode langer dan 5 minuten wordt een foutcode (204, no content) teruggegeven. 7.5.2.2.1 Respons
0 .. N records, volgens de record definitie in JSON formaat
Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
29 8 Request en response voorbeelden van de Trafficstate en Events
API
8.1 Trafficstate
8.1.1 Request
In dit request wordt de trafficstate voor 3 segmenten opgevraagd. ● Segment 123 beschrijft een stuk rijbaan ● Segment 567 beschrijft rijstrook 1 van segment 123 ● Segment 875 beschrijft rijstrook 2 van segment 123 GET https://connect.simacan.com/api/v1/trafficstate/latest?segment_id=123,567,875 Accept: application/json 8.1.2 Response
De response bevat de trafficspeed per opgevraagd segment. Omdat geen feed_id is opgegeven wordt de fused trafficstate feed gebruikt (met id 3). Deze is opgebouwd uit de feeds: ● 5: tomtom_hdflow ● 6: ndw_trafficspeed ● 7: ndw_traveltime ● 8: rws_ady Omdat geen vehicle_type is opgegeven wordt alleen de categorie AnyVehicle teruggegeven. De snelheid is voor alle segmenten gelijk (omdat deze niet op rijstrookniveau beschikbaar is). De intensiteit is voor segment 123 (de rijbaan) een gemiddelde van de intensiteiten van de rijstroken (en heeft daarom de metadata vlag lane_specific=false). De intensiteit voor segment 567 en 875 (de rijstroken) is wel rijstrook specifiek. Op rijstrook 2 geldt een aangepaste maximum snelheid (via de rws_ady feed). Dit is te zien in de metadata. 8.1.2.1 application/json
HTTP/1.1 200 OK Content­Type: application/json; charset=utf­8 Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
30 { "records": [ { "measurement_time": "2014­06­13T10:15:00.000", "segment_id": 123, "vehicle_type": "AnyVehicle", "speed": 98.3, "max_speed": 120, "freeflow_speed": "118", "flow": 2000, "traveltime": 18, "feed_id": 3 }, { "measurement_time": "2014­06­13T10:15:00.000", "segment_id": 567, "vehicle_type": "AnyVehicle", "speed": 98.3, "max_speed": 120, "freeflow_speed": "127", "flow": 1500, "traveltime": 18, "feed_id": 3 }, { "measurement_time": "2014­06­13T10:15:00.000", "segment_id": 875, "vehicle_type": "AnyVehicle", "speed": 98.3, "max_speed": 100, "freeflow_speed": "86", "flow": 2600, "traveltime": 29, "feed_id": 3 } ] } Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
31 8.2 Events
8.2.1 Request
In dit voorbeeld worden alle actuele incidenten opgehaald, dus er worden geen segment_ids en geen feed_ids opgegeven. Er is een enkele feed is (NDW met id=726), die slechts een enkel incident meldt. 8.2.2 Response
8.2.2.1 application/json
HTTP/1.1 200 OK Content­Type: application/json; charset=utf­8 { "records": [ { "event_id": 1592388, "version": 14, "event_code": 5, "start_time": "2014­03­20T07:32:00Z", "update_time": "2014­03­20T08:01:08Z", "expected_end_time": "2014­03­20T09:30:00Z", "segment_id": [123, 567, 875], "feed_id": 726 } ] } Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
32 9 BIJLAGE: Payload formaten en datatypen
In dit hoofdstuk wordt voor het JSON payload formaat beschreven hoe de verschillende response parameters worden gedecodeerd en hoe de verschillende datatypes in dat formaat worden gepresenteerd. Ook worden aangegeven hoe samengestelde typen worden geserialiseerd voor dit payload formaat. 9.1 JSON
Een json object met een enkel veld "records" met als waarde een json array met een object per record. Elk object bevat de velden zoals gespecificeerd in de record definitie. Accept header waarde: "application/json" NULL waardes: null Datatype Representatie text Javascript string met UTF­8 encoded tekst timestamp Javascript string met datum en tijd in formaat: yyyy­MM­dd'T'HH:mm:ss.sssZ Bijvoorbeeld: "2014­06­11T13:54:27.000Z" integer Javascript double long Javascript double float Javascript double double Javascript double boolean Javascript boolean 9.1.1 Samengestelde types
Samengestelde types worden als JSON objecten gecodeerd in het resultaat. Bijvoorbeeld: { Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
33 "records": [ { "measurement_time": "20140531T165525.000Z", "segment_id": 1234567, "vehicle_type": null, "speed": 120.0, "max_speed": 130.0, "freeflow_speed": 115.0, "flow": 1200, "traveltime": 0.00833, "feed_id": 28 } ] } 9.2 Datatypes
Datatype Specificatie Range Opmerking min max text UTF­8 encoded string 0 Wisselt per veld timestamp Datum en tijd in UTC met nauwkeurigheid in milliseconden integer 32 bit signed integer 0 231­1 Zie opmerking. long 64 bit signed integer 0 263­1 Zie opmerking. float 32 bit signed floating point double 64 bit signed floating point boolean true / false Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
34 coordinate longitude,latitude Longitude en latitude worden uitgedrukt in 6 decimale waarden . boundingbox upperleft,lowerright coordinates Samengestelde Velden opgebouwd types uit 1 of meer andere velden Opmerking: Voor de integer en de long geldt dat negatieve waarden niet gebruikt zullen worden. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
35 9.3 Enumeraties
De volgende enumeraties kunnen worden gebruikt om een datatype te beschrijven. Het onderliggende datatype is altijd text. Hier wordt beschreven welke waarden per enumeratie gedefinieerd zijn. 9.3.1 vehicle_type_enum
Voertuigklasse. Mogelijke waarden zijn: ● AnyVehicle
Alle voertuigen vallen in deze klasse. ● Motorcycle
Motorrijwiel, scooter ● Car
Personenauto / bestelauto ● Lorry
● Bus
● ArticulatedLorry
Ongelede vrachtauto Ongelede autobus Gelede vrachtauto ●
Overige voertuigen Other
9.3.2 locationreference_type_enum
Beschrijft een locatiereferentie type. Mogelijke waarden zijn: ● WGS84
Beschrijft een locatie in WGS84 coördinaten in WKT4 formaat. ● AlertC
Een AlertC linear of point locatie volgens de NDW interface specificatie. De gebruikte TMC of VILD tabel wordt meegestuurd met de locatie. Via de configuratie API kan een afnemer zien welke tabel versie gebruikt is (bijv TMC of een VILD tabel) ● OpenLR
Een OpenLR Line of PointAlongLine locatie. 9.3.3 carriageway_enum
Beschrijft het type rijbaan. Mogelijke waarden zijn: ● MainCarriageway ● ConnectingCarriageway ● ParallelCarriageway ● EntrySlipRoad ● ExitSlipRoad 9.3.4 lane_enum
4
http://en.wikipedia.org/wiki/Well­known_text Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
36 Beschrijft het rijstrook type. Voor de codering van een lanetype in een segment ID wordt de numerieke waarde gebruikt. De gekozen waarden zijn overgenomen zoals deze in DATEX2 zijn gedefinieerd. Mogelijke waarden zijn: ● 00 ­ allLanesCompleteCarriageway ● 01 ­ busLane ● 02 ­ busStop ● 03 ­ carPoolLane ● 04 ­ centralReservation ● 05 ­ crawlerLane ● 06 ­ emergencyLane ● 07 ­ escapeLane ● 08 ­ expressLane ● 09 ­ hardShoulder ● 10 ­ heavyVehicleLane ● 11 ­ lane1 ● 12 ­ lane2 ● 13 ­ lane3 ● 14 ­ lane4 ● 15 ­ lane5 ● 16 ­ lane6 ● 17 ­ lane7 ● 18 ­ lane8 ● 19 ­ lane9 ● 20 ­ layBy ● 21 ­ leftHandTurningLane ● 22 ­ leftLane ● 23 ­ localTrafficLane ● 24 ­ middleLane ● 25 ­ opposingLanes ● 26 ­ overtakingLane ● 27 ­ rightHandTurningLane ● 28 ­ rightLane ● 29 ­ rushHourLane ● 30 ­ setDownArea ● 31 ­ slowVehicleLane ● 32 ­ throughTrafficLane ● 33 ­ tidalFlowLane ● 34 ­ turningLane ● 35 ­ verge 9.3.5 segment_state_type_enum
Beschrijft de status van een wegsegment. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
37 ●
●
●
●
●
●
●
MaxSpeed
WindWarning IceWarning MistWarning Holiday LaneClosed VMSStatus
Wettelijke maximum snelheid (km/h) Beeldstand. Mogelijke waarden: BLK, <­­, ­­>, ­x­, 030, 050, 070, 080, 090, 100, 120 9.3.6 vild_direction_enum
Beschrijf de richting, van een lineaire locatie, t.o.v. de vildlijn. Mogelijke waarden zijn: ● Positive ● Negative 9.3.7 weather_type_enum
Beschrijft een weer­ of neerslagtype. Mogelijke waarden staan onderstaand opgesomd. Voor de volledigheid is ook de eenheid opgenomen. ● WindDirection
(degrees) ● WindSpeed
(m/s) ● Temperature
(degree C) ● AirPressure
(hPa) ● Rain
(mm/h) ● Visibility
(m) ● RelativeHumidity
(%) ● DewPoint
(degree C) ● GlazedFrost
(mm/h) ● Snow
(mm/h) ● Hail
(mm/h) Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
38 9.4 Java-to-XML Mapping for Built-In Data Types
Java Data Type (lower case indicates a primitive data type) Equivalent XML Schema Data Type int int short short long long float float double double byte byte boolean boolean char string (with facet of length=1) java.lang.Integer int java.lang.Short short java.lang.Long long java.lang.Float float java.lang.Double double java.lang.Byte byte java.lang.Boolean boolean java.lang.Character string (with facet of length=1) java.lang.String string java.math.BigInteger integer java.math.BigDecimal decimal java.util.Calendar dateTime java.util.Date dateTime byte[] base64Binary javax.xml.namespace.QName Qname Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
39 java.net.URI anyURI Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
40 10 Error status codes
De volgende statuscodes worden gebruikt: Code HTTP Naam Beschrijving 200 OK Verzoek succesvol afgehandeld 204 No content De periode waarover data is opgevraagd is niet beschikbaar. 400 Bad request Ongeldige parameters, verzoek kon niet worden afgehandeld. 403 Forbidden U heeft geen rechten om deze aanvraag te doen. 404 Not found Opgevraagde URL kon niet gevonden worden. 410 Gone Gegevens zijn niet meer beschikbaar. 500 Internal server error Fout opgetreden in de server. Neem contact op als dit aanhoudt. Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
41 Aan dit document kunnen geen rechten worden ontleend. Wijzigingen voorbehouden.
42