OV-Routes

Toeval? Nu was ik net hier aan het kijken:

http://www.rondvaartbedrijf.nl/giethoorn.html

http://www.rondvaartbedrijf.nl/images/bushalte_dominee_hylkemaweg_giethoorn.png


http://haltepagina.connexxion.nl/25780010?utm_source=website&utm_medium=qr&utm_campaign=virtualdris


http://haltepagina.connexxion.nl/home/index?halte=25780010
onderaan pagina
de connexxion QR om door te geven



http://haltepagina.connexxion.nl/data/qrcodes/qr-25780010.png




http://haltepagina.connexxion.nl/25780010/cxx?utm_source=halte&utm_medium=qr&utm_campaign=virtualdris


En deze had ik al bij mijn favorieten staan

QR PC decoder

Dank je Allroads!

Voor Connexxion werkt het nu (en onder voorbehoud dat iemand de moeite heeft genomen om de info in osm te plaatsen):

Opvallend is dan ook weer de vele haltes in osm waar alleen maar staat dát het een halte is…
(Je kunt ook mooi zien dat de marker nu goed geplaatst is met dat puntje… :slight_smile: )

Het werkt in België ook voor bussen van De Lijn.
De info geeft een link naar de bushalte.

Sinds afgelopen december is er een universele standaard voor alle haltes in Nederland. Elke haltepaal heeft een haltecode die bestaat uit 8 cijfers. Voor de streekvervoerbedrijven is dat het 4-cijferige zonenummer haltenummer en dan 4 cijfers voor de halte. Voor de stadsvervoerders GVB, RET en HTM is het “zonenummer” respectievelijk 3000, 3100 of 3200. Officieel hoort voor het 8-cijferige nummer nog ‘NL:Q:’ (volgens de IFOPT/standaard voor Quays, ofwel een halteplaats in één richting). De halte Máximaplein in Leusden ligt in zone 5045 en heeft daarmee haltenummers 50450750 en 50450760. De (leesbare) informatie hiervoor kan je opvragen bij Connexxion, op bijv. http://connexxion.nl/dienstregeling/halte?id=50450760, maar dat werkt alleen met Connexxion-haltes.

Ik weet zo 123 geen webservices die de volledige halteinformatie voor alle haltes in een voor mensen leesbaar formaat tonen. Een voor machines leesbaar formaat is te vinden op de REST-api van OpenOV: http://v0.ovapi.nl/tpc/50450760, of voor beide richtingen: http://v0.ovapi.nl/stopareacode/leumax/

Voor Connexxion gebruik ik nu onderstaande link, en die lijkt ook te werken:

http://haltepagina.connexxion.nl/home/index?halte=

Ik heb dat bestand (stoparecode) even geanalyseerd, en zie dan dit:

{"Town":"Vught","Name":"Vught, Koestraat","Stop":"P:62116000:0","Lon":5.297121,"Lat":51.66025},

Ik heb de code iets vereenvoudigd om ruimte te winnen, en de code nu nu bij “Stop” staat, staat ook bij iedere regel vooraan. Begrijp ik goed dat die code de code van de haltepaal is?
Soms ontbreekt die (nummerieke) code:

{"Town":"Vught","Name":"Vught, Lunettenlaan","Stop":"VgtLun","Lon":5.2596273,"Lat":51.661575},

In totaal heb ik 32900 halteplaatsen. Klopt dat voor Nederland?

Prachtig!

Van zodra ze bij TEC een goed werkend systeem hebben uitgewerkt, zal ik je laten weten hoe dat ook voor het zuiden van het land kan aanbieden. Ze hebben ook real-time informatie, maar de naam van de halte maakt deel uit van de url en ik heb die namen ‘gecorrigeerd’, ‘genormaliseerd’, of hoe je het ook wilt noemen. Zij hadden alles in hoofdletters geschreven, wschl net om problemen met accenten uit de weg te gaan en ik heb dat ‘verbeterd’, naar kleine letters met accenten, wat voor Franse namen zo vreemd niet is.
De haltes hebben ook codes en je kan die zelfs meegeven in de url, maar als je de naam niet meegeeft, werkt het niet. Onbegrijpelijk eigenlijk en nog onbegrijpelijker dat ze er niet in slagen om dat snel op te lossen. Maar goed, c’est la vie.

mvg,

Jo

Yep. Dit moet een paal in zone 6211 zijn, dat klopt ook want dat is de zone van Vught (zie http://www.openov.nl/zones/ )

Dat is vreemd. Elke* halte(paal) heeft een haltenummer, en sommige (maar lang niet alle) halten hebben een placecode. Een placecode bestaat altijd uit de eerste drie letters voor de plaatsnaam (Vgt) en dan 2 of 3 letters (soms cijfers) voor de naam van de halte. Maar een placecode hangt altijd aan een setje haltes (2 of meer)**, het zijn vaak de wat belangrijker haltes. Maar die halte zou nog steeds een haltenummer moeten hebben.

  • Volgens de standaard van GOVI zou, als er bijv vanwege plaatsgebrek maar 1 haltepaal is voor 2 richtingen (bijv. aan een smalle dijk), er toch 2 haltenummers gebruikt moeten worden. Op bijv. Station Bijlmer gebeurt het omgekeerde, daar zijn 2 haltepalen+perrons met maar 1 nummer. Dit zijn de haltes voor R-net 300, die zo frequent rijdt (in de spits elke 6 minuten) dat die voor het ontladen + buffertijd + inladen niet voldoende heeft aan één perron.

** Een placecode kan zelfs (al zou dat niet moeten) aan meerdere haltes van dezelfde lijn+richting hangen. Zo was bijvoorbeeld Vndnsc (Veenendaal NS Centrum) de placecode voor 4 haltes: Veenendaal Station Centrum Kerkewijk (2x) (40801470 en 80), Veenendaal Station Centrum Stationsplein (40805120), en Veenendaal Station Centrum Bernhardlaan (40501540). Bijv lijn 83 deed na elkaar de Bernhardlaan en het Stationsplein hangen, waardoor de reisinformatie (die aan de placecode hangt) niet goed ging omdat daar die al bij halte Bernhardlaan dacht dat 'ie op z’n eindpunt was.

In Duitsland wordt op OSM gebruik gemaakt van deze tag: http://wiki.openstreetmap.org/wiki/Key:ref:IFOPT
Misschien kunnen we daar op aansluiten. Een dergelijke tag is internationaal en niet gekoppeld aan een OV bedrijf. De meeste haltes in Utrecht hebben een cxx:code tag, terwijl hier inmiddels U-OV zit. De code klopt echter nog wel.
Als de cxx:code=50000030 tag vervangen zou worden door ref:IFOPT=nl:5000:0030, zou je dat probleem niet meer hebben. Als er een operator=Connexxion tag is kan je de halteinformatie op connexxion.nl terugvinden. Maar deze is natuurlijk ook al te vinden op http://v0.ovapi.nl/tpc/50000030. Die paar regels javaScript om van het json resultaat leesbare HTML te maken zijn zo te schrijven. Dat lukt me vanavond misschien nog wel.

Wat doe je in zo’n geval eigenlijk voor dynamische haltes, zoals in Nijmegen, waar een lijn van meerdere perrons van het busstation bij Nijmegen NS kan vertrekken ? Of tag je het hele busstation dan als 1 item ?

Maar wat nu het probleem ook nog is: bij veel haltepalen van Arriva (voorheen Veolia) staat nu helemaal geen informatie over zone en halte.
Dat moet dus eerst voor elkaar worden gebracht.
Is het denkbaar dat dat bestand met (met die 32900 haltes) gebruikt gaat worden voor geautomatiseerde invoer? Want dan heb je iets waar je ook wat aan hebt. Als ik een bustijd wil weten (als gewone gebruiker) en ik kan die halte niet eens vinden op OSM dan ga ik natuurlijk weer naar ov9292 waar het wél in staat.
En bovendien maken dergelijke ervaringen met onjuiste/ontbrekende gegevens dat mensen niet gauw terugkomen voor andere zaken (“ja maar die bushalte stond ook niet op OSM, waarom zou dat restaurant er wel op staan?”)

OSM is niet bedoeld voor mappers, OSM moet voor gewone stervelingen zijn die snel iets willen opzoeken op de kaart met zo weining mogelijk drempels op technisch/interface gebied en met maximaal resultaat!

Ik heb nu zelf even met de mogelijkheden van OpenPoiMap zitten spelen als het gaat over het opzoeken van bustijden (ik ben fervent OV gebruiker) en moet zeggen dat het heel handig is om bij een bushalte waar ik straks moet zijn even op te zoeken wáár die halte is (fluitje van een cent) en dan te kunnen klikken op de vertrekstaat van die halte. En dat is bij Connexxion dus ook een fluitje van een cent. Nou die anderen nog…

Helemaal mee eens, maar als je die informatie hebt, moet je wel een afspraak hebben over aan welke tag je de informatie gaat hangen. Overigens hebben we vorig jaar in minder dan een jaar met een relatief kleine groep een paar miljoen panden en adressen in OSM gekregen. Over die 32900 haltes maak ik me niet zo heel erg druk. Het is inderdaad wel goed om het zo compleet mogelijk te hebben voor je het aan het grote publiek bekend maakt.

Voor de haltes met een geldige cxx:code tag (ook in de regio Utrecht, waar nu U-OV zit) heb ik het voor elkaar.
Kijk selecteer op www.gertjanidema.nl/osmlayers de Various->busstop laag aan en klik op een van de bushaltes. Als de halte een geldige cxx:code tag heeft, verschijnt een button met de tekst Bustimes. Hier op klikken geeft een nieuwe Popup met de vertrektijden van de eerstvolgende bussen.
De opmaak laat nog te wensen over en sorteren gaat nog niet goed voor bussen die na middernacht vertrekken, maar dat fix ik binnenkort.

Ziet er goed uit! Ik mis overigens bij de businformatie het lijnnummer van de bus, en dat is soms ook wel eens handig om te weten, zeker als er meerdere bussen bij een halte stoppen. Ik zie dat busnummer overigens ook niet terug in dat databestand. Omdat ik in mijn oplossing een link naar de haltepaal informatie van Connexxion gebruik (bv. http://haltepagina.connexxion.nl/home/index?halte=59570190)) zie ik dat busnummer wel.

Nu ik openpoimap/taglocator op versie 1 heb staan, en er in ieder geval mee te werken valt, kan ik wat meer tijd besteden aan het bestuderen van die widgetoplossing, want die vind ik heel bruikbaar.

Het lijnnummer stond er wel, maar viel blijkbaar niet op. Ik heb nu een header toegevoegd en het sorteren verbeterd.

Lees even de GOVI-nieuwsbrief, hierin lees je dat het formaat zou moeten zijn ref:IFOPT=NL:Q:xxxxxxxx waarbij xxxxxxxx het 8-cijferige haltenummer is.
Het klopt dat overal cxx:code stond; pas sinds december 2014 zijn de haltenummers daadwerkelijk landelijk en uniek. Vanaf nu is NDOV de beheerder van de haltenummers, tot nu toe waren dat de vervoerders (waaronder Connexxion).

Dus overal waar cxx:code=xxxxxxxx staat is dit 1 op 1 te vervangen door ref:IFOPT=NL:Q:xxxxxxxx . Ik zou me niet zorgen maken over waar het niet goed is gegaan, ik denk dat er maandelijks zo’n 50 haltes in Nederland van haltenummer veranderen.

Ik zal proberen z.s.m. iets te maken met het centraal haltenummer-bestand, maar ik ben de laatste tijd wat druk en wat ziekig, dus als iemand anders me voor is: geen probleem.

Ik heb de nieuwsbrief gelezen en ben het op zich met je eens. Het nadeel is echter dat we daarmee twee verschillende versies van de ref:IFOPT tag krijgen. OSM is een internationale database. Misschien kunnen we eerst nog proberen om tot een internationale standaard te komen. De officiele standaard schijnt in DIN EN 28701:2013-04 te staan, maar dat document moet een paar honderd euro kosten.

Ik vermoed dat de data op de wiki fout is.

Als ik de CHB-documentatie lees (https://reisinformatiegroep.nl/ndovloket/datacollectie/8/download/documentatie - ik weet niet of je er in kan zonder login, anders even aanmaken of hier) dan staat volgens pagina 19 de :Q: voor “Quay” en is dus om aan te geven dat het hier om een haltepaal (of correcter: halteperron ofwel platform) gaat. Voor StopPlaces (een collectie van Quays) is de code NL:S:xxxx, waarbij xxxx de haltecode is van één van de haltes - of voor trein de stationscode zoals ut.

Het lijkt me geen kwestie van goed of fout, maar van andere keuzes.

Na het lezen van dat document ben ik het helemaal met je eens over de waarde van de halte codes. Rest nog de vraag of ‘ref:IFOPT’ dan de juiste tagnaam is voor dit doel.

Ik heb ook nog even naar de GTFS bestanden gekeken. Dat is wel een heel bruikbare dataset.

In stops.txt gebruiken ze zo te zien location_type=0 voor een Quay en location_type=1 voor een stopplace, die hier stoparea heet:

stop_id,stop_code,stop_name,stop_lat,stop_lon,location_type,parent_station,stop_timezone,wheelchair_boarding,platform_code,zone_id
366931,46100050,"Zwolle, Katerdijk/Blaloweg",52.517195,6.079569,0,stoparea:124167,,,,
368144,18003110,"Emmen, Station (Perron J)",52.790644,6.899272,0,stoparea:18933,,,,
366933,43640195,"Hardenberg, Clara Feyoenaheem",52.566153,6.598237,0,stoparea:6726,,,,
366934,40551100,"Apeldoorn, Gentiaanstraat",52.225662,5.982969,0,stoparea:124171,,,,
366935,49712004,"Hierden, Molenweg",52.355841,5.67564,0,stoparea:6191,,,,
368145,10001670,"Groningen, P+R Zernike (Perron D)",53.244476,6.530426,0,stoparea:18529,,,,
366938,40563010,"Stroe, Ravenweg",52.175848,5.694459,0,stoparea:6176,,,,
366939,40563013,"Stroe, De Drie Musketiers",52.188966,5.692692,0,stoparea:6270,,,,
366941,43880600,"Rijssen, Parkstede",52.308123,6.528873,0,stoparea:35468,,,,
366943,40649006,"Wittenberg, Busstation",52.212992,5.70607,0,stoparea:24890,,,,
366944,49009992,"Zwolle, Emmawijk (Centrum)",52.510088,6.088384,0,stoparea:124168,,,,
366945,49009991,"Zwolle, Emmawijk (Centrum)",52.510188,6.088164,0,stoparea:124168,,,,

Onder parent_station staan de codes voor de stopplace/stoparea zoals stoparea:124168. Zowel halte 49009992, als 49009991 hebben deze stoparea code, dus ik denk dat dat de haltes voor 2 richtingen zijn. Stoparea komt dan overeenkomen met de osm stop_area relatie en quay/stop met highway=busstop;public_transport=platform.

Verderop in het zelfde bestand vind ik dan de stoparea terug:

stoparea:124168,,"Zwolle, Emmawijk (Centrum)",52.510138,6.088274,1,,,0,,

Binnenkort ga ik hier maar eens een .osm bestandje van maken. Of per zone als het anders te groot wordt.

Dat OSM bestand is gelukt. Ik heb nu een .osm bestand met bushaltes in Nederland met de volgende tags:
highway=bus_stop
public_transport=platform
name=*
wheelchair=yes/no
ref:IFOPT=NL:Q:########

Ik heb mij beperkt tot bushaltes met 8-cijferige codes. Dat zijn er 46864. Van sommige regio’s staan de nieuwe codes nog niet in de database. Dat betreft met name het stadsvervoer in Amsterdam (GVB), Rotterdam (RET) en Den Haag (HTM).

Aan de gegevens valt mij een aantal zaken op:

  1. Er zitten een aantal bushaltes uit Belgie en Duitsland bij. Dit kan problemen opleveren met de ref tag. In navolging van de wikipedia tags zou je dan misschien ref:IFOPT:NL=Q:######## moeten gebruiken om de Nederlandse code van buitenlandse haltes in osm te zetten.
  2. Er zitten behoorlijk wat dubbele haltes in. Vaak ook met een andere areacode. Waarschijnlijk is er 1 verouderd, maar hoe kom je er achter welke?
  3. Van sommige lijnen lijkt nog geen enkele halte in osm te staan. Bijvoorbeeld in Noord-Groningen.
  4. De lokaties van de haltes komen behoorlijk goed overeen met die in osm. De nauwkeurigheid in osm lijkt vaak iets beter. De geimporteerde haltes staan vaak op in plaats van naast de weg.
  5. De naamgeving is niet altijd consequent. De oorspronkelijke haltenamen beginnen met de woonplaats. Die heb ik er af gehaald. Voor haltes met een platformnaam (A, B3 etc.) staat deze soms achter de haltenaam en soms ook niet. En als hij er staat zijn er meerdere varianten: A3, (A3), (Platform A3), (Perron A3). Ik heb nu de platformnaam tussen haakjes achter de haltenaam gezet als deze er nog niet staat. En dan zijn er natuurlijk weer haltes die inconsistent zijn. (A4) achter de halte naam, maar met platformnaam B3. Dat zij gelukkig uitzonderingen.

Ik heb het bestand tijdelijk online gezet: gertjanidema.nl/osm/bushaltes.osm

Gebruik het bestand eerst alleen om te analyseren. Ik heb het vermoeden dat de kwaliteit op korte termijn nog wel beter wordt, als het stadsvervoer in Amsterdam, Rotterdam en Den Haag er bij komt en de oude haltes worden opgeschoond.
Ook zijn er nog geen afspraken over de tagging vastgelegd.

Gertjan

bij public_transport=platform hoort ook nog bus=yes en evt. tram=yes als de halte ook door trams wordt bediend.

Wat de buitenlandse haltes betreft. Zijn dat haltes in NL die ook door buitenlandse operatoren worden bediend? Of haltes in België die door Nederlandse operatoren (wschl Connexxion) worden bediend? Iig, ik heb die haltes allemaal een ref:De_Lijn en in Maastricht (TEC 70) een ref:TEC meegegeven. Er zou daar dus geen conflict op de ref tag mogen ontstaan.

Groeten,

Jo

bus=yes/tram=yes moet er inderdaad nog bij. Die informatie staat echter niet in de halte tabel, dus daarvoor moet ik een nog koppeling maken met de lijnen.

Het zijn haltes buiten Nederland die naast de codes van TEC of de Lijn ook een Nederlandse code hebben. Tegen de tijd dat de haltes europees gestandaardiseerd zijn, zullen die nederlandse codes in het buitenland wel komen te vervangen. Ik ga me daar verder dus maar niet druk over maken.