mapcomplete/assets/layers/transit_stops/transit_stops.json

390 lines
No EOL
11 KiB
JSON

{
"id": "transit_stops",
"name": {
"en": "Transit Stops",
"de": "Haltestellen",
"da": "Transitstationer"
},
"description": {
"en": "Layer showing different types of transit stops.",
"de": "Ebene mit verschiedenen Arten von Haltestellen.",
"da": "Lag, der viser forskellige typer transitstop."
},
"source": {
"osmTags": {
"or": [
"highway=bus_stop"
]
}
},
"minzoom": 15,
"title": {
"render": {
"en": "Transit Stop",
"de": "Haltestelle",
"da": "Transit Stop"
},
"mappings": [
{
"if": "name~*",
"then": {
"en": "Stop {name}",
"de": "Haltestelle {name}",
"da": "Stop {name}",
"nl": "Halte {name}"
}
}
]
},
"mapRendering": [
{
"location": [
"point",
"centroid"
],
"icon": {
"render": "./assets/layers/transit_stops/bus_stop.svg",
"mappings": []
},
"label": "<div style=\"background: white; display: block\">{name}</div>"
}
],
"calculatedTags": [
"_routes=feat.memberships()",
"_contained_routes_properties=feat.memberships().map(p => {return {id: p.relation.id, name: p.relation.properties.name} }).filter((v,i,a)=>a.findIndex(t=>(JSON.stringify(t) === JSON.stringify(v)))===i)",
"_contained_route_ids=JSON.parse(feat.properties._contained_routes_properties ?? '[]').map(p => p.id)",
"_contained_routes=JSON.parse(feat.properties._contained_routes_properties ?? '[]').map(p => `<li><a href='#relation/${p.id}'>${p.name ?? 'bus route'}</a></li>`).join('')",
"_contained_routes_count=JSON.parse(feat.properties._contained_routes_properties ?? '[]').length"
],
"tagRenderings": [
{
"id": "stop_name",
"render": {
"en": "This stop is called <b>{name}</b>",
"de": "Der Name der Haltestelle lautet <b>{name}</b>",
"da": "Dette stop hedder <b>{name}</b>",
"nl": "Deze halte heet <b>{name}</b>"
},
"freeform": {
"key": "name",
"type": "string",
"addExtraTags": [
"noname="
],
"placeholder": {
"en": "Name of the stop",
"de": "Name der Haltestelle",
"da": "Navn på stoppestedet",
"nl": "Naam van de halte"
}
},
"mappings": [
{
"if": {
"and": [
"noname=yes",
"name="
]
},
"then": {
"en": "This stop has no name",
"de": "Die Haltestelle hat keinen Namen",
"da": "Dette stop har intet navn",
"nl": "Deze halte heeft geen naam"
}
}
],
"question": {
"en": "What is the name of this stop?",
"de": "Wie lautet der Name der Haltestelle?",
"da": "Hvad er navnet på dette stop?",
"nl": "Wat is de naam van deze halte?"
}
},
"images",
{
"id": "shelter",
"mappings": [
{
"if": "shelter=yes",
"then": {
"en": "This stop has a shelter",
"de": "Die Haltestelle hat einen Unterstand",
"da": "Dette stop har et ly",
"nl": "Deze halte heeft een schuilplaats"
}
},
{
"if": "shelter=no",
"then": {
"en": "This stop does not have a shelter",
"de": "Die Haltestelle hat keinen Unterstand",
"da": "Dette stop har ikke et ly",
"nl": "Deze halte heeft geen schuilplaats"
}
},
{
"if": "shelter=separate",
"then": {
"en": "This stop has a shelter, that's separately mapped",
"de": "Die Haltestelle hat einen Unterstand, der separat kariert ist",
"nl": "Deze halte heeft een schuilplaats, die apart op de kaart staat"
},
"hideInAnswer": true
}
],
"question": {
"en": "Does this stop have a shelter?",
"de": "Hat die Haltestelle einen Unterstand?",
"da": "Har dette stop et ly?",
"nl": "Heeft deze halte een schuilplaats?"
}
},
{
"id": "bench",
"mappings": [
{
"if": "bench=yes",
"then": {
"en": "This stop has a bench",
"de": "Die Haltestelle hat eine Bank",
"da": "Dette stop har en bænk",
"nl": "Deze halte heeft een zitbank"
}
},
{
"if": "bench=no",
"then": {
"en": "This stop does not have a bench",
"de": "Die Haltestelle hat keine Bank",
"da": "Dette stoppested har ingen bænk",
"nl": "Deze halte heeft geen zitbank"
}
},
{
"if": "bench=separate",
"then": {
"en": "This stop has a bench, that's separately mapped",
"de": "Die Haltestelle hat eine Bank, die separat kartiert ist",
"nl": "Deze halte heeft een zitbank, die los aangegeven is op de kaart"
},
"hideInAnswer": true
}
],
"question": {
"en": "Does this stop have a bench?",
"de": "Gibt es an der Haltestelle eine Sitzbank?",
"da": "Har dette stop en bænk?",
"nl": "Heeft deze halte een zitbank?"
}
},
{
"id": "bin",
"mappings": [
{
"if": "bin=yes",
"then": {
"en": "This stop has a bin",
"de": "Die Haltestelle hat einen Mülleimer",
"da": "Dette stop har en skraldespand",
"nl": "Deze halte heeft een vuilnisbak"
}
},
{
"if": "bin=no",
"then": {
"en": "This stop does not have a bin",
"de": "Die Haltestelle hat keinen Mülleimer",
"da": "Dette stoppested har ikke en skraldespand",
"nl": "Deze halte heeft geen vuilnisbak"
}
},
{
"if": "bin=separate",
"then": {
"en": "This stop has a bin, that's separately mapped",
"de": "Die Haltestelle hat einen Mülleimer, der separat kartiert ist",
"nl": "Deze heeft een vuilnisbak, die los op de kaart staat"
},
"hideInAnswer": true
}
],
"question": {
"en": "Does this stop have a bin?",
"de": "Hat die Haltestelle einen Mülleimer?",
"da": "Har dette stop en skraldespand?",
"nl": "Heeft deze halte een vuilnisbak?"
}
},
"wheelchair-access",
{
"id": "tactile_paving",
"mappings": [
{
"if": "tactile_paving=yes",
"then": {
"en": "This stop has tactile paving",
"de": "Die Haltestelle hat ein taktiles Pflaster"
}
},
{
"if": "tactile_paving=no",
"then": {
"en": "This stop does not have tactile paving",
"de": "Die Haltestelle hat kein taktiles Pflaster"
}
}
],
"question": {
"en": "Does this stop have tactile paving?",
"de": "Hat die Haltestelle hat ein taktiles Pflaster?"
}
},
{
"id": "lit",
"mappings": [
{
"if": "lit=yes",
"then": {
"en": "This stop is lit",
"de": "Die Haltestelle ist beleuchtet",
"nl": "Deze halte is niet verlicht"
}
},
{
"if": "lit=no",
"then": {
"en": "This stop is not lit",
"de": "Die Haltestelle ist nicht beleuchtet",
"da": "Dette stop lyser ikke",
"nl": "Deze halte is niet verlicht"
}
}
],
"question": {
"en": "Is this stop lit?",
"de": "Ist die Haltestelle beleuchtet?",
"nl": "Is deze halte verlicht?"
}
},
{
"id": "departures_board",
"mappings": [
{
"if": "departures_board=yes",
"then": {
"en": "This stop has a departures board of unknown type",
"de": "Die Haltestelle hat einen Fahrplan, der nicht näher definiert ist",
"da": "Dette stoppested har en afgangstavle af ukendt type"
},
"hideInAnswer": true
},
{
"if": "departures_board=realtime",
"then": {
"en": "This stop has a board showing realtime departure information",
"de": "Die Haltestelle hat einen Fahrplan, der Abfahrtszeiten in Echtzeit anzeigt",
"da": "Dette stop har en tavle med oplysninger om afgang i realtid"
}
},
{
"if": "passenger_information_display=yes",
"then": {
"en": "This stop has a board showing realtime departure information",
"de": "Die Haltestelle hat einen Fahrplan, der Abfahrtszeiten in Echtzeit anzeigt",
"da": "Dette stop har en tavle med oplysninger om afgang i realtid"
},
"hideInAnswer": true
},
{
"if": "departures_board=timetable",
"then": {
"en": "This stop has a timetable showing regular departures",
"de": "Die Haltestelle hat einen Fahrplan, der die regulären Abfahrtszeiten anzeigt",
"da": "Dette stop har en køreplan, der viser regelmæssige afgange"
}
},
{
"if": "departures_board=interval",
"then": {
"en": "This stop has a timetable containing just the interval between departures",
"de": "Die Haltestelle hat einen Fahrplan, der den Abstand zwischen Abfahrten anzeigt",
"da": "Dette stop har en køreplan, der kun indeholder intervallet mellem afgangene"
}
},
{
"if": "departures_board=no",
"then": {
"en": "This stop does not have a departures board",
"de": "Die Haltestelle hat keinen Fahrplan",
"da": "Dette stop har ikke en afgangstavle"
}
}
]
},
{
"render": {
"en": "<h3>{_contained_routes_count} routes stop at this stop</h3> <ul>{_contained_routes}</ul>",
"de": "<h3>{_contained_routes_count} Linien halten an der Haltestelle</h3> <ul>{_contained_routes}</ul>",
"da": "<h3>{_contained_routes_count} ruter stopper ved dette stoppested</h3> <ul>{_contained_routes}</ul>"
},
"condition": "_contained_routes~*",
"id": "contained_routes"
}
],
"filter": [
{
"id": "shelter",
"options": [
{
"osmTags": {
"or": [
"shelter=yes",
"shelter=separate"
]
},
"question": {
"en": "With a shelter",
"de": "Mit einem Unterstand"
}
}
]
},
{
"id": "bench",
"options": [
{
"osmTags": {
"or": [
"bench=yes",
"bench=separate"
]
},
"question": {
"en": "With a bench",
"de": "Mit einer Bank"
}
}
]
},
{
"id": "bin",
"options": [
{
"osmTags": {
"or": [
"bin=yes",
"bin=separate"
]
},
"question": {
"en": "With a bin",
"de": "Mit einem Mülleimer"
}
}
]
},
"tactile_paving"
],
"allowMove": false
}