User:Essin/Anteckningar om kollektivtrafik i Sverige
Denna text är en fördjupning av och kommentar till den huvudsakliga dokumentationen av kollektivtrafikmappning som den tillämpas i Sverige, framför allt beskriven på Proposed features/Public Transport ("PT-systemet") och Sweden/Public transport. Delar av den borde förmodligen arbetas in i mer allmänna sidor, men tills vidare är den en personlig essä.
Ytterligare information finns bland annat på OpenRailwayMap, OpenStationMap, Sweden/trafikverket/busshållplatser, Öpnvkarte.
Att göra: länkar till exempel på kartan och Mapillary
Grunderna
PT-systemet baseras på två grundläggande byggstenar:
- public_transport=stop_position är den punkt längs vägen/spåret/vattenvägen där fordonet stannar
- public_transport=platform är den plats vid sidan av vägen/spåret/vattenvägen där passagerarna väntar på fordonet, ofta en fysisk plattform men inte alltid
Dessa används sedan tillsammans med de ways som ingår i en linjesträckning för att bygga upp relationer för en linje (type=route) och en hållplats (type=public_transport public_transport=stop_area) separata relationer för olika riktningar och linjevarianter, taggade med public_transport:version=2 (av ett enda skäl: att JOSM-valideringen ska fungera) och samlade i en type=route_master-relation.
Renderingen av public_transport=*-taggar i Carto (default på osm.org) är trots flera års övertalningsförsök i princip obefintlig. Därför används även äldre taggar som highway=bus_stop tillsammans med de nya, som en halvpermanent övergångslösning.
Lägesbokstäver (eller lägesnummer/spårnummer)
Hållplatsnamn och lägesbokstäver är inte alltid mappade (för att de inte finns/skyltas/ingen har kollat). Det finns viss oenighet om hur man ska tagga lägesbokstäver. Britternas NaPTAN-import och Transport-lagret på osm.org använder local_ref=*. OpenRailwayMap och Öpnvkarte använder ref=*. Det ursprungliga Public_Transport-förslaget använde ref=*, men detta ändrades senare till name=*, vilket följde med till den Sverigespecifika dokumentationen. Flera år senare återställdes detta eftersom många public_transport=platform-noder också är taggade med highway=bus_stop och det då är tvetydigt vad name=* betyder. Egentligen borde Sverige taggas om mekaniskt till ref=*. Ytterligare diskussion på Talk:Tag:public transport=platform#Name tag.
När det gäller järnvägsplattformar finns viss oenighet (som jag tror inte har diskuterats, och ingen bryr sig tillräckligt för att ta upp det) om huruvida de ska mappas med name=Spår X eller bara name=X. Man skulle också kunna tänka sig att "Spår X" hör hemma i name=* och att "X" hör hemma i ref=*.
Detaljgrad på hållplatser
De stora skillnaderna mellan olika sätt att mappa kollektivtrafik är hur detaljerat man är beredd att mappa hållplatser. Det beror på både detaljgraden IRL och enskilda mappares preferenser. De förekommande mönstren kan i breda drag beskrivas i fyra nivåer.
Nivå 0
Beskrivs på Sweden/Public transport#Förenklad PT-taggning för bussar. Avviker från PT-standarden på flera sätt. Förespråkas av några mappare i Stockholms län och är ganska utbrett där, men förekommer i princip inte i resten av Sverige. Kännetecken:
- Separata relationer för olika riktningar och linjevarianter som i PT-systemet. Ger valideringsfel i JOSM om de är taggade med public_transport:version=2.
- Inga public_transport=*-taggar.
- Hållplatser är endast taggade som highway=bus_stop-noder vid sidan av vägen, i förekommande fall med name=hållplatsens namn local_ref=lägesbokstav
- Dessa har rollen stop i relationerna.
- Ibland har linjesträckningen rollen route i relationerna.
Nivå 1
Karlstadsbuss linjenät och sporadiskt på andra platser. Följer PT-standarden i sin nuvarande formulering, men inte den i Sverige vanliga tolkningen av name=* på public_transport=platform-objekt som lägesbokstav.
Kännetecken:
- Hållplatser är taggade som noder vid sidan av vägen med highway=bus_stop public_transport=platform name=hållplatsens namn.
- Dessa har rollen platform i relationerna.
Nivå 1 alternativ
Nivå 1:s onda tvilling. Används sporadiskt när någon mappade en hållplats på vägen utan att ange vilken riktning som åsyftas, men är inte systematiskt införd någonstans. Lite svårtydbar om den inte kompletteras med bearing=*.
Kännetecken:
- Hållplatser är taggade som noder vid på vägen med highway=bus_stop public_transport=stop_position bus=yes name=hållplatsens namn.
- Dessa har rollen stop i relationerna.
Nivå 2
"Barebones" PT. Stadstrafiken i Norrköping och ett fåtal andra ställen. Saknar stöd i Carto-renderingen. I Norrköping har detta lösts genom separata highway=bus_stop respektive railway=tram_stop-noder vid sidan av vägarna, som inte ingår i relationerna men syns i renderingen.
Kännetecken:
- Hållplatser är taggade med public_transport=stop_position-noder respektive public_transport=platform-objekt, med rollerna stop respektive platform i linjerelationerna, ordnade stop, platform, stop, platform...
- stop_position-noderna ligger på vägarna och har name=hållplatsens namn, bus=yes resp. tram=yes, men inte highway=bus_stop.
- platform-objekten ligger vid sidan av vägarna och har name=lägesbokstav (som borde ändras till ref=*, se ovan) men inte highway=platform.
- kan vara noder, vägar eller areor, se vidare nedan.
Nivå 3
Den vedertagna PT-implementeringen i större delen av Sverige. Beskrivs på Sweden/Public transport#Hur skall vi tagga nu?. Baseras på PT-standarden men har några extra taggar som en eftergift åt Carto-renderingen.
Kännetecken:
- Hållplatser är taggade med public_transport=stop_position-noder respektive public_transport=platform-objekt
- stop_position-noderna ligger på vägarna och har name=hållplatsens namn, bus=yes, tram=yes, train=yes osv, samt highway=bus_stop/highway=tram_stop för att synas på Carto. Tågstopp har mera sällan extrataggar.
- platform-objekten ligger vid sidan av vägarna och har name=lägesbokstav (som borde ändras till ref=*, se ovan) samt highway=platform om de är vägar eller areor, alternativt railway=platform. area=yes läggs till på areor som en eftergift för renderingen.
- I sällsynta fall har platform-vägar i stället för highway=platform highway=footway, highway=cycleway eller highway=path (se nedan) eller highway=pedestrian (främst i Göteborg, verkar vara taggning för renderaren som ett alternativ till area=yes).
"Hållplatstillbehör"
Möblemang och andra bekvämligheter som hör till en hållplats. Det enkla sättet att mappa många av dessa är som undertaggar på public_transport=platform-objektet, men om man har tid och flygbilder går det också att ha dem som egna objekt, som då också kan ingå i public_transport=stop_area-relationer.
Väntkurer
amenity=shelter shelter_type=public_transport (som egen nod eller i sällsynta fall som areor om det finns underlag med hög upplösning och precision) eller shelter=yes (på platform).
Bänkar
amenity=bench (som egen nod) eller bench=yes (på amenity=shelter-objekt om det är en bänk inuti kuren, eller på public_transport=platform-objekt vid låg detaljgrad).
Papperskorgar
amenity=waste_basket (som egen nod) eller bin=yes (på amenity=shelter eller public_transport=platform). Observera skillnaden, den har diskuterats och bin=yes kan komma att ändras till waste_basket=yes.
Biljettmaskiner
amenity=vending_machine vending=public_transport_tickets. vending=public_transport_plans finns också, det verkar råda viss förvirring om "plans" syftar på kartor eller flerdagarsbiljetter, men användningen av denna tagg är hursomhelst inte utbredd i Sverige.
Cykelparkering
amenity=bicycle_parking capacity=*
Bilparkering
amenity=parking parking=park_and_ride
Etc...
Tillgänglighet
Ledstråk för synskadade
tactile_paving=yes. En sekundär tagg till highway=footway, public_transport=platform mfl. Ska egentligen bara användas på de delar av plattformen som har ledstråk, vilket kanske snyggast löses med ways med highway=footway tactile_paving=yes över public_transport=platform-areor.
Handikappanpassning
wheelchair=* (på platform-objekt?)
Trafikeringsinformation
Linjenummer och destinationer
route_ref=* respektive towards=* på public_transport=platform-objekt. Detta är minnesanteckningar till mappare snarare än något som kan användas av renderare eller andra verktyg, och blir överflödigt när alla linjerelationer har lagts in.
GTFS-ID och andra ID-nummer
gtfs_id=*, ref=* i första hand på public_transport=stop_area-relationer om de finns, annars på de objekt som är taggade med name=hållplatsens namn. Det förekommer i Skåne och kanske på andra ställen att ref=* används för operatören/huvudmannens referensnummer, men det är inte särskilt utbrett. Om ref=* standardiseras till hållplatsbokstäver skulle detta kunna ersättas av reg_ref=*.
Ytterligare plattformsegenskaper
Beläggning
surface=paved, surface=asphalt, surface=paving_stones mfl surface=*
Plattformstak
covered=yes på public_transport=platform om den befinner sig under ett plattformstak, ska egentligen bara användas på de delar som är under tak.
building=roof layer=1 för taket i sig.
Plattformsdetaljer
Om det inte finns någon fysisk plattform utöver en kur eller bänk förekommer det att samma nod är taggad med public_transport=platform samt amenity=shelter eller amenity=bench, och dessutom övriga tillämpliga taggar. Detta är inte dokumenterat i själva PT-standarden men kan motiveras utifrån standardens grundprincip att public_transport=platform är där man väntar på bussen etc.
Om den enda markeringen av hållplatsen är en skylt sätts en public_transport=platform-nod vid skylten.
Helt oskyltade hållplatser är sällsynta, men förekommer. Diskussion om detta inleddes i maj 2017 på Talk:Tag:public_transport=platform#Bus_stop_without_infrastructure.
En taggning av vinkområden har föreslagits på Proposed features/hail and ride och kommer antagligen att lösas med en roll i relationen för de delar av linjesträckningen som ingår i ett vinkområde. Den enda lösningen jag har sett hittills är highway=bus_stop name=vinkområde-noder som är utspridda så att transportrenderingen sammanställer dem till ett hållplatsområde som täcker vinkområdet, kreativt men en fullösning.
Det är ganska vanligt förekommande i den fysiska verkligheten att ett avsnitt av en trottoar (gångbana eller GC-bana) också fungerar som bussplattform. Till en början taggades dessa som highway=platform public_transport=platform bicycle=designated foot=designated (med variationer). Det visade sig att flera routers inte betraktar highway=platform som cykelbart även om de har bicycle=yes eller bicycle=designated. Frågan diskuterades på IRC och vi enades om en tvåstegslösning. Först taggades berörda ways om till highway=path/highway=cycleway men behöll public_transport=platform. I de flesta fall har denna taggning sedan ersatts av en public_transport=platform-nod som ingår i cykelbanans way (om cykelbanan inte är särskilt utformad som plattform med höjd vägkant, annan beläggning eller dylikt) eller en public_transport=platform highway=platform area=yes som korsas av cykelbanan (om väntande passagerare kan förväntas sprida ut sig över cykelbanan) eller delar noder med cykelbanan på en sida (om väntande passagerare förväntas hålla sig inom ett område som avgränsas av cykelbanan).
Bussfickor
bus_bay=left/right/both på ways som trafikeras av bussar och har bussfickor på angiven sida. En ganska ny tagg som förmodligen kommer att få större genomslag med tiden. Det förekommer också att bussfickor mappas som separata highway=service-snuttar, men detta är egentligen inte korrekt om det inte finns något räcke, refug eller liknande mellan bussfickan och huvudvägen.
Stationer
railway=station respektive amenity=bus_station
Betydelserna "stationsbyggnad" och "hela stationsområdet" taggas enligt PT-systemet som public_transport=station (den senare betydelsen är kanske mindre nödvändig eftersom motsvarande information går att interpolera fram från public_transport=stop_area-relationens medlemmar?)
building=train_station syftar på en byggnad som byggdes som järnvägsstation, behöver inte nödvändigtvis fungera som det idag. En strukturtagg i motsats till railway=station, som är en funktionstagg
Linjer
Information som är gemensam för hela linjen behöver egentligen bara ligga i type=route_master. För att underlätta för renderare och redigeringsverktyg upprepas t ex ref=* och network=* i type=route-relationerna. network=* används för regionala kollektivtrafikmyndigheter och motsvarande, operator=* för utförande entreprenörer. Den senare är förmodligen dåligt uppdaterad.