Merge pull request #1107 from pietervdvn/feature/osm-for-the-blind
Feature/osm for the blind
This commit is contained in:
commit
069c6df9d3
23 changed files with 35261 additions and 21223 deletions
|
@ -9,7 +9,7 @@
|
||||||
"fr": "français",
|
"fr": "français",
|
||||||
"gl": "lingua galega",
|
"gl": "lingua galega",
|
||||||
"hu": "magyar",
|
"hu": "magyar",
|
||||||
"id": "Indonesia",
|
"id": "bahasa Indonesia",
|
||||||
"it": "italiano",
|
"it": "italiano",
|
||||||
"ja": "日本語",
|
"ja": "日本語",
|
||||||
"nb_NO": "bokmål",
|
"nb_NO": "bokmål",
|
||||||
|
|
|
@ -183,6 +183,8 @@
|
||||||
"es": "idioma filipino",
|
"es": "idioma filipino",
|
||||||
"fi": "filipino",
|
"fi": "filipino",
|
||||||
"fr": "Philippin",
|
"fr": "Philippin",
|
||||||
|
"gl": "Lingua filipina",
|
||||||
|
"hu": "filippínó",
|
||||||
"id": "Bahasa Filipino",
|
"id": "Bahasa Filipino",
|
||||||
"it": "filippino",
|
"it": "filippino",
|
||||||
"ja": "フィリピン語",
|
"ja": "フィリピン語",
|
||||||
|
@ -279,7 +281,7 @@
|
||||||
"fr": "indonésien",
|
"fr": "indonésien",
|
||||||
"gl": "lingua indonesia",
|
"gl": "lingua indonesia",
|
||||||
"hu": "indonéz",
|
"hu": "indonéz",
|
||||||
"id": "Indonesia",
|
"id": "bahasa Indonesia",
|
||||||
"it": "indonesiano",
|
"it": "indonesiano",
|
||||||
"ja": "インドネシア語",
|
"ja": "インドネシア語",
|
||||||
"nb_NO": "indonesisk",
|
"nb_NO": "indonesisk",
|
||||||
|
@ -353,7 +355,7 @@
|
||||||
"fi": "kirjanorja",
|
"fi": "kirjanorja",
|
||||||
"fr": "bokmål",
|
"fr": "bokmål",
|
||||||
"gl": "bokmål",
|
"gl": "bokmål",
|
||||||
"hu": "norvég (bokmål)",
|
"hu": "bokmål norvég",
|
||||||
"id": "Bokmål",
|
"id": "Bokmål",
|
||||||
"it": "bokmål",
|
"it": "bokmål",
|
||||||
"ja": "ブークモール",
|
"ja": "ブークモール",
|
||||||
|
@ -372,7 +374,7 @@
|
||||||
"de": "Niederländisch",
|
"de": "Niederländisch",
|
||||||
"en": "Dutch",
|
"en": "Dutch",
|
||||||
"eo": "nederlanda lingvo",
|
"eo": "nederlanda lingvo",
|
||||||
"es": "Neerlandés",
|
"es": "neerlandés",
|
||||||
"fi": "hollanti",
|
"fi": "hollanti",
|
||||||
"fr": "néerlandais",
|
"fr": "néerlandais",
|
||||||
"gl": "lingua neerlandesa",
|
"gl": "lingua neerlandesa",
|
||||||
|
@ -386,7 +388,7 @@
|
||||||
"pt": "neerlandês",
|
"pt": "neerlandês",
|
||||||
"pt_BR": "neerlandês",
|
"pt_BR": "neerlandês",
|
||||||
"ru": "нидерландский язык",
|
"ru": "нидерландский язык",
|
||||||
"sl": "Nizozemščina",
|
"sl": "nizozemščina",
|
||||||
"sv": "nederländska",
|
"sv": "nederländska",
|
||||||
"zh_Hans": "荷兰语",
|
"zh_Hans": "荷兰语",
|
||||||
"zh_Hant": "荷蘭語"
|
"zh_Hant": "荷蘭語"
|
||||||
|
@ -402,7 +404,7 @@
|
||||||
"fr": "polonais",
|
"fr": "polonais",
|
||||||
"gl": "lingua polaca",
|
"gl": "lingua polaca",
|
||||||
"hu": "lengyel",
|
"hu": "lengyel",
|
||||||
"id": "Polandia",
|
"id": "bahasa Polski",
|
||||||
"it": "polacco",
|
"it": "polacco",
|
||||||
"ja": "ポーランド語",
|
"ja": "ポーランド語",
|
||||||
"nb_NO": "polsk",
|
"nb_NO": "polsk",
|
||||||
|
@ -536,6 +538,7 @@
|
||||||
"ru": "шведский язык",
|
"ru": "шведский язык",
|
||||||
"sl": "švedščina",
|
"sl": "švedščina",
|
||||||
"sv": "svenska",
|
"sv": "svenska",
|
||||||
|
"zh_Hans": "瑞典语",
|
||||||
"zh_Hant": "瑞典語"
|
"zh_Hant": "瑞典語"
|
||||||
},
|
},
|
||||||
"zh_Hant": {
|
"zh_Hant": {
|
||||||
|
@ -545,12 +548,15 @@
|
||||||
"en": "Simplified Chinese",
|
"en": "Simplified Chinese",
|
||||||
"eo": "simpligita ĉina skribsistemo",
|
"eo": "simpligita ĉina skribsistemo",
|
||||||
"es": "chino simplificado",
|
"es": "chino simplificado",
|
||||||
|
"fi": "perinteinen kiina",
|
||||||
"fr": "chinois simplifié",
|
"fr": "chinois simplifié",
|
||||||
|
"gl": "chinés simplificado",
|
||||||
"hu": "egyszerűsített kínai",
|
"hu": "egyszerűsített kínai",
|
||||||
"id": "aksara Han sederhana",
|
"id": "aksara Han sederhana",
|
||||||
"it": "cinese semplificato",
|
"it": "cinese semplificato",
|
||||||
"ja": "簡体字中国語",
|
"ja": "簡体字中国語",
|
||||||
"nb_NO": "forenklet kinesisk",
|
"nb_NO": "forenklet kinesisk",
|
||||||
|
"nl": "vereenvoudigd Chinees",
|
||||||
"pl": "język chiński uproszczony",
|
"pl": "język chiński uproszczony",
|
||||||
"pt": "chinês simplificado",
|
"pt": "chinês simplificado",
|
||||||
"ru": "упрощённый китайский",
|
"ru": "упрощённый китайский",
|
||||||
|
|
BIN
assets/layers/crossings/180px-Trairvoja_mapeto.jpg
Normal file
BIN
assets/layers/crossings/180px-Trairvoja_mapeto.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 15 KiB |
BIN
assets/layers/crossings/Vibrating_button_illustration.jpg
Normal file
BIN
assets/layers/crossings/Vibrating_button_illustration.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 46 KiB |
|
@ -121,6 +121,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"tagRenderings": [
|
"tagRenderings": [
|
||||||
|
"images",
|
||||||
{
|
{
|
||||||
"id": "crossing-type",
|
"id": "crossing-type",
|
||||||
"question": {
|
"question": {
|
||||||
|
@ -339,6 +340,115 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"id": "crossing-sound",
|
||||||
|
"question": {
|
||||||
|
"en": "Does this traffic light have sound signals to aid crossing?"
|
||||||
|
},
|
||||||
|
"condition": "crossing=traffic_signals",
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "traffic_signals:sound=yes",
|
||||||
|
"then": {
|
||||||
|
"en": "This traffic light has sound signals to help crossing, both for finding the crossing and for crossing."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "traffic_signals:sound=no",
|
||||||
|
"then": {
|
||||||
|
"en": "This traffic light does not have sound signals to help crossing."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "traffic_signals:sound=locate",
|
||||||
|
"then": {
|
||||||
|
"en": "This traffic light has a sound signal to help locate the pole, but no signal to sign that it is safe to cross."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "traffic_signals:sound=walk",
|
||||||
|
"then": {
|
||||||
|
"en": "This traffic light has a sound signal to sign that it is safe to cross, but no signal to help locate the pole."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "crossing-vibration",
|
||||||
|
"question": {
|
||||||
|
"en": "Does this traffic light have vibration signals to aid crossing? (usually located at the bottom of the crossing button)"
|
||||||
|
},
|
||||||
|
"condition": {
|
||||||
|
"and": [
|
||||||
|
"crossing=traffic_signals",
|
||||||
|
"button_operated=yes"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "traffic_signals:vibration=yes",
|
||||||
|
"then": {
|
||||||
|
"en": "The button for this traffic light has a vibration signal to indicate that it is safe to cross."
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"path": "./assets/layers/crossings/Vibrating_button_illustration.jpg",
|
||||||
|
"class": "large"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "traffic_signals:vibration=no",
|
||||||
|
"then": {
|
||||||
|
"en": "The button for this traffic light does not have a vibration signal to indicate that it is safe to cross."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "crossing-arrow",
|
||||||
|
"question": {
|
||||||
|
"en": "Does this traffic light have an arrow pointing in the direction of crossing?"
|
||||||
|
},
|
||||||
|
"condition": "crossing=traffic_signals",
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "traffic_signals:arrow=yes",
|
||||||
|
"then": {
|
||||||
|
"en": "This traffic light has an arrow pointing in the direction of crossing."
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "traffic_signals:arrow=no",
|
||||||
|
"then": {
|
||||||
|
"en": "This traffic light does <b>not</b> have an arrow pointing in the direction of crossing."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "crossing-minimap",
|
||||||
|
"question": {
|
||||||
|
"en": "Does this traffic light have a tactile map showing the layout of the crossing?"
|
||||||
|
},
|
||||||
|
"condition": "crossing=traffic_signals",
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "traffic_signals:minimap=yes",
|
||||||
|
"then": {
|
||||||
|
"en": "This traffic light has a tactile map showing the layout of the crossing."
|
||||||
|
},
|
||||||
|
"icon": {
|
||||||
|
"path": "./assets/layers/crossings/180px-Trairvoja_mapeto.jpg",
|
||||||
|
"class": "large"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "traffic_signals:minimap=no",
|
||||||
|
"then": {
|
||||||
|
"en": "This traffic light does <b>not</b> have a tactile map showing the layout of the crossing."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"id": "crossing-right-turn-through-red",
|
"id": "crossing-right-turn-through-red",
|
||||||
"question": {
|
"question": {
|
||||||
|
@ -453,5 +563,8 @@
|
||||||
{
|
{
|
||||||
"width": "5"
|
"width": "5"
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"filter": [
|
||||||
|
"tactile_paving_advanced"
|
||||||
]
|
]
|
||||||
}
|
}
|
|
@ -1,4 +1,14 @@
|
||||||
[
|
[
|
||||||
|
{
|
||||||
|
"path": "180px-Trairvoja_mapeto.jpg",
|
||||||
|
"license": "CC-BY-SA 4.0",
|
||||||
|
"authors": [
|
||||||
|
"Martin Constantino–Bodin"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
"https://commons.wikimedia.org/wiki/File:Trairvoja_mapeto.jpg"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "Belgian_road_sign_B22.svg",
|
"path": "Belgian_road_sign_B22.svg",
|
||||||
"license": "CC0",
|
"license": "CC0",
|
||||||
|
@ -19,6 +29,16 @@
|
||||||
"https://commons.wikimedia.org/wiki/File:Belgian_road_sign_B23.svg"
|
"https://commons.wikimedia.org/wiki/File:Belgian_road_sign_B23.svg"
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"path": "Vibrating_button_illustration.jpg",
|
||||||
|
"license": "CC-BY 4.0",
|
||||||
|
"authors": [
|
||||||
|
"Tobias Zwick"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
"https://wiki.openstreetmap.org/wiki/File:Vibrating_button_illustration.jpg"
|
||||||
|
]
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"path": "pedestrian_crossing.svg",
|
"path": "pedestrian_crossing.svg",
|
||||||
"license": "CC-BY-SA 4.0",
|
"license": "CC-BY-SA 4.0",
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
{
|
{
|
||||||
"id": "elevator",
|
"id": "elevator",
|
||||||
"name": {
|
"name": {
|
||||||
"en": "elevator",
|
"en": "Elevator",
|
||||||
"fr": "ascenseur",
|
"fr": "Ascenseur",
|
||||||
"de": "Aufzug",
|
"de": "Aufzug",
|
||||||
"nl": "lift"
|
"nl": "Lift"
|
||||||
},
|
},
|
||||||
"source": {
|
"source": {
|
||||||
"osmTags": "highway=elevator"
|
"osmTags": "highway=elevator"
|
||||||
|
@ -134,7 +134,15 @@
|
||||||
"type": "pfloat"
|
"type": "pfloat"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"induction-loop"
|
"induction-loop",
|
||||||
|
{
|
||||||
|
"builtin": "wikidata.tactile_writing-braille",
|
||||||
|
"override": {
|
||||||
|
"question": {
|
||||||
|
"en": "In which languages does this elevator have tactile writing (braille)?"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"mapRendering": [
|
"mapRendering": [
|
||||||
{
|
{
|
||||||
|
|
|
@ -94,6 +94,60 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "tactile_paving",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"question": {
|
||||||
|
"en": "With tactile paving",
|
||||||
|
"de": "Mit taktilem Pflaster",
|
||||||
|
"fr": "Avec revêtement podotactile",
|
||||||
|
"nl": "Met voelbare bestrating"
|
||||||
|
},
|
||||||
|
"osmTags": "tactile_paving=yes"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "tactile_paving_advanced",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"question": {
|
||||||
|
"en": "With or without tactile paving",
|
||||||
|
"de": "Mit oder ohne taktilem Pflaster",
|
||||||
|
"fr": "Avec ou sans revêtement podotactile",
|
||||||
|
"nl": "Met of zonder voelbare bestrating"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question": {
|
||||||
|
"en": "With tactile paving",
|
||||||
|
"de": "Mit taktilem Pflaster",
|
||||||
|
"fr": "Avec revêtement podotactile",
|
||||||
|
"nl": "Met voelbare bestrating"
|
||||||
|
},
|
||||||
|
"osmTags": "tactile_paving=yes"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"question": {
|
||||||
|
"en": "Without tactile paving",
|
||||||
|
"de": "Ohne taktilem Pflaster",
|
||||||
|
"fr": "Sans revêtement podotactile",
|
||||||
|
"nl": "Zonder voelbare bestrating"
|
||||||
|
},
|
||||||
|
"osmTags": "tactile_paving=no"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"osmTags": "tactile_paving=",
|
||||||
|
"question": {
|
||||||
|
"en": "No information about tactile paving",
|
||||||
|
"de": "Keine Informationen über taktiles Pflaster",
|
||||||
|
"fr": "Sans information sur le revêtement podotactile",
|
||||||
|
"nl": "Geen informatie over voelbare bestrating"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
|
@ -197,8 +197,16 @@
|
||||||
"fr": "Hauteur de la bordure"
|
"fr": "Hauteur de la bordure"
|
||||||
},
|
},
|
||||||
"type": "pnat"
|
"type": "pnat"
|
||||||
|
},
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "kerb:height=0",
|
||||||
|
"then": {
|
||||||
|
"en": "This kerb is flush and is lower than 1cm."
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
],
|
],
|
||||||
"presets": [
|
"presets": [
|
||||||
{
|
{
|
||||||
|
@ -286,46 +294,7 @@
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
"tactile_paving_advanced"
|
||||||
"id": "tactile-paving",
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"question": {
|
|
||||||
"en": "Kerbs with or without tactile paving",
|
|
||||||
"de": "Bordsteine mit oder ohne taktilem Pflaster",
|
|
||||||
"fr": "Bordures avec ou sans revêtement podotactile",
|
|
||||||
"nl": "Stoepranden met of zonder voelbare bestrating"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"osmTags": "tactile_paving=yes",
|
|
||||||
"question": {
|
|
||||||
"en": "Kerb with tactile paving",
|
|
||||||
"de": "Bordstein mit taktilem Pflaster",
|
|
||||||
"fr": "Bordure avec revêtement podotactile",
|
|
||||||
"nl": "Stoeprand met voelbare bestrating"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"osmTags": "tactile_paving=no",
|
|
||||||
"question": {
|
|
||||||
"en": "Kerb without tactile paving",
|
|
||||||
"de": "Bordstein ohne taktilem Pflaster",
|
|
||||||
"fr": "Bordure sans revêtement podotactile",
|
|
||||||
"nl": "Stoeprand zonder voelbare bestrating"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"osmTags": "tactile_paving=",
|
|
||||||
"question": {
|
|
||||||
"en": "Kerb wihout information about tactile paving",
|
|
||||||
"de": "Bordstein ohne Informationen über taktiles Pflaster",
|
|
||||||
"fr": "Bordure sans information sur le revêtement podotactile",
|
|
||||||
"nl": "Stoeprand zonder informatie over voelbare bestrating"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
],
|
||||||
"units": [
|
"units": [
|
||||||
{
|
{
|
||||||
|
|
BIN
assets/layers/stairs/Braille_stairs.jpg
Normal file
BIN
assets/layers/stairs/Braille_stairs.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 895 KiB |
10
assets/layers/stairs/license_info.json
Normal file
10
assets/layers/stairs/license_info.json
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"path": "Braille_stairs.jpg",
|
||||||
|
"license": "CC0",
|
||||||
|
"authors": [
|
||||||
|
"Robin van der Linde"
|
||||||
|
],
|
||||||
|
"sources": []
|
||||||
|
}
|
||||||
|
]
|
132
assets/layers/stairs/stairs.json
Normal file
132
assets/layers/stairs/stairs.json
Normal file
|
@ -0,0 +1,132 @@
|
||||||
|
{
|
||||||
|
"id": "stairs",
|
||||||
|
"name": {
|
||||||
|
"en": "Stairs",
|
||||||
|
"nl": "Trappen"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"en": "Layer showing stairs and escalators"
|
||||||
|
},
|
||||||
|
"title": {
|
||||||
|
"render": {
|
||||||
|
"en": "Stairs",
|
||||||
|
"nl": "Trap"
|
||||||
|
},
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "conveying=yes",
|
||||||
|
"then": {
|
||||||
|
"en": "Escalator",
|
||||||
|
"nl": "Roltrap"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"minzoom": 17,
|
||||||
|
"source": {
|
||||||
|
"osmTags": "highway=steps"
|
||||||
|
},
|
||||||
|
"tagRenderings": [
|
||||||
|
{
|
||||||
|
"id": "handrail",
|
||||||
|
"question": {
|
||||||
|
"en": "Does this stair have a handrail?",
|
||||||
|
"nl": "Heeft deze trap een leuning?"
|
||||||
|
},
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "handrail=yes",
|
||||||
|
"then": {
|
||||||
|
"en": "These stairs have a handrail",
|
||||||
|
"nl": "Deze trap heeft een leuning"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "handrail=no",
|
||||||
|
"then": {
|
||||||
|
"en": "These stairs do <b>not</b> have a handrail",
|
||||||
|
"nl": "Deze trap heeft <b>geen</b> leuning"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "ramp",
|
||||||
|
"question": {
|
||||||
|
"en": "Is there a ramp at these stairs?"
|
||||||
|
},
|
||||||
|
"multiAnswer": true,
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "ramp:bicycle=yes",
|
||||||
|
"ifnot": "ramp:bicycle=no",
|
||||||
|
"then": {
|
||||||
|
"en": "There is a ramp for bicycles here"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "ramp:wheelchair=yes",
|
||||||
|
"ifnot": "ramp:wheelchair=no",
|
||||||
|
"then": {
|
||||||
|
"en": "There is a ramp for wheelchairs here"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "ramp=separate",
|
||||||
|
"then": {
|
||||||
|
"en": "There is ramp for wheelchairs here, but it is shown separately on the map"
|
||||||
|
},
|
||||||
|
"hideInAnswer": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "ramp:stroller=yes",
|
||||||
|
"ifnot": "ramp:stroller=no",
|
||||||
|
"then": {
|
||||||
|
"en": "There is a ramp for strollers here"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "ramp=no",
|
||||||
|
"ifnot": "ramp=",
|
||||||
|
"then": {
|
||||||
|
"en": "There is no ramp at these stairs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"builtin": "wikidata.tactile_writing-braille",
|
||||||
|
"override": {
|
||||||
|
"question": {
|
||||||
|
"en": "In which languages is there tactile writing (braille) for navigation? <img src='./assets/layers/stairs/Braille_stairs.jpg' style='height: 300px; width: auto; display: block;' />"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "conveying",
|
||||||
|
"mappings": [
|
||||||
|
{
|
||||||
|
"if": "conveying=yes",
|
||||||
|
"then": {
|
||||||
|
"en": "This is an escalator",
|
||||||
|
"nl": "Dit is een roltrap"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "conveying=no",
|
||||||
|
"then": {
|
||||||
|
"en": "This is not an escalator",
|
||||||
|
"nl": "Dit is geen roltrap"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mapRendering": [
|
||||||
|
{
|
||||||
|
"color": "gray",
|
||||||
|
"width": 10,
|
||||||
|
"dashArray": "2 2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -94,8 +94,7 @@
|
||||||
"en": "What is the name of this stop?",
|
"en": "What is the name of this stop?",
|
||||||
"de": "Wie lautet der Name der Haltestelle?",
|
"de": "Wie lautet der Name der Haltestelle?",
|
||||||
"da": "Hvad er navnet på dette stop?"
|
"da": "Hvad er navnet på dette stop?"
|
||||||
},
|
}
|
||||||
"placeholder": "Name of the stop"
|
|
||||||
},
|
},
|
||||||
"images",
|
"images",
|
||||||
{
|
{
|
||||||
|
@ -313,6 +312,47 @@
|
||||||
"id": "contained_routes"
|
"id": "contained_routes"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"filter": [],
|
"filter": [
|
||||||
|
{
|
||||||
|
"id": "shelter",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": {
|
||||||
|
"or": ["shelter=yes", "shelter=separate"]
|
||||||
|
},
|
||||||
|
"question": {
|
||||||
|
"en": "With a shelter"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "bench",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": {
|
||||||
|
"or": ["bench=yes", "bench=separate"]
|
||||||
|
},
|
||||||
|
"question": {
|
||||||
|
"en": "With a bench"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"id": "bin",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"osmTags": {
|
||||||
|
"or": ["bin=yes", "bin=separate"]
|
||||||
|
},
|
||||||
|
"question": {
|
||||||
|
"en": "With a bin"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"tactile_paving"
|
||||||
|
],
|
||||||
"allowMove": false
|
"allowMove": false
|
||||||
}
|
}
|
File diff suppressed because it is too large
Load diff
83
assets/themes/blind_osm/Blindicon.svg
Normal file
83
assets/themes/blind_osm/Blindicon.svg
Normal file
|
@ -0,0 +1,83 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
|
<svg
|
||||||
|
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||||
|
xmlns:cc="http://creativecommons.org/ns#"
|
||||||
|
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||||
|
xmlns:svg="http://www.w3.org/2000/svg"
|
||||||
|
xmlns="http://www.w3.org/2000/svg"
|
||||||
|
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||||
|
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||||
|
height="500"
|
||||||
|
id="svg3784"
|
||||||
|
inkscape:version="1.0.1 (3bc2e813f5, 2020-09-07)"
|
||||||
|
sodipodi:docname="Blindicon.svg"
|
||||||
|
sodipodi:version="0.32"
|
||||||
|
width="500"
|
||||||
|
version="1.0">
|
||||||
|
<metadata
|
||||||
|
id="metadata12">
|
||||||
|
<rdf:RDF>
|
||||||
|
<cc:Work
|
||||||
|
rdf:about="">
|
||||||
|
<dc:format>image/svg+xml</dc:format>
|
||||||
|
<dc:type
|
||||||
|
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||||
|
<dc:title></dc:title>
|
||||||
|
</cc:Work>
|
||||||
|
</rdf:RDF>
|
||||||
|
</metadata>
|
||||||
|
<sodipodi:namedview
|
||||||
|
bordercolor="#666666"
|
||||||
|
borderopacity="1.0"
|
||||||
|
id="base"
|
||||||
|
inkscape:current-layer="svg3784"
|
||||||
|
inkscape:cx="351.14257"
|
||||||
|
inkscape:cy="81.197744"
|
||||||
|
inkscape:pageopacity="0.0"
|
||||||
|
inkscape:pageshadow="2"
|
||||||
|
inkscape:window-height="2066"
|
||||||
|
inkscape:window-width="3840"
|
||||||
|
inkscape:window-x="2149"
|
||||||
|
inkscape:window-y="-11"
|
||||||
|
inkscape:zoom="0.86831673"
|
||||||
|
pagecolor="#ffffff"
|
||||||
|
showguides="true"
|
||||||
|
inkscape:guide-bbox="true"
|
||||||
|
width="300px"
|
||||||
|
height="300px"
|
||||||
|
inkscape:document-rotation="0"
|
||||||
|
showgrid="false"
|
||||||
|
inkscape:window-maximized="1" />
|
||||||
|
<defs
|
||||||
|
id="defs3786" />
|
||||||
|
<g
|
||||||
|
id="g1882"
|
||||||
|
transform="matrix(1.6666669,0,0,1.6666669,47.391376,-3.3391765e-5)">
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="cscccccsscsc"
|
||||||
|
style="fill:#000000;stroke:none"
|
||||||
|
id="path3804"
|
||||||
|
d="m 210.33417,191.65047 c 0,-12.11614 9.92685,-15.73789 15.61794,-15.73789 7.14729,0 17.17535,5.87565 17.17535,14.17226 l -0.24838,19.54109 0.25044,86.27428 h -8.83896 l -1.32339,-86.27428 c 0,0 0,-18.49795 0,-18.56853 0,-4.34566 -4.50021,-7.5063 -7.27979,-7.5063 -3.5138,0 -7.489,2.10756 -7.489,7.50713 0,0 0.60646,6.0571 -3.76096,6.0571 -4.36798,0 -4.10325,-4.60928 -4.10325,-5.46486 z" />
|
||||||
|
<g
|
||||||
|
transform="matrix(0.610021,0,0,0.610021,12.22882,1.800647e-5)"
|
||||||
|
id="g3302">
|
||||||
|
<path
|
||||||
|
style="fill:#000000;stroke:none"
|
||||||
|
id="path3304"
|
||||||
|
d="m 268.409,81.671 c 22.55,0 40.834,-18.284 40.834,-40.835 C 309.243,18.284 290.959,0 268.409,0 c -22.552,0 -40.834,18.284 -40.834,40.836 0,22.551 18.282,40.835 40.834,40.835 z" />
|
||||||
|
<path
|
||||||
|
style="fill:#000000;stroke:none"
|
||||||
|
id="path3306"
|
||||||
|
d="m 215.941,156.723 0.25,311.75 c 0,31.184 45.858,30.899 45.858,-0.714 l 0.027,-181.366 8.926,-0.086 -0.028,181.367 c 0,31.612 46.393,32.411 46.393,0.799 l 0.027,-313.057 h 8.058 v 111.795 c 0,26.838 36.42,26.838 36.42,0.48 V 145.393 c 0,-32.876 -24.469,-52.237 -50.348,-52.237 h -72.611 c -17.222,0 -29.722,6.817 -40.222,21.817 l -36.75,53.554 h -63.77 c -25.624,0 -24.186,36.34 -0.48,36.34 h 73.5 c 5.751,0 12.75,-2.144 16.773,-8.148 z" />
|
||||||
|
</g>
|
||||||
|
<path
|
||||||
|
style="fill:#000000;stroke:#ffffff;stroke-width:0.407842"
|
||||||
|
id="path3137"
|
||||||
|
d="m 50.305761,266.80923 h 39.280112 v 23.27381 c 0,12.77166 19.382707,12.77166 19.382707,0 v -50.81676 h 8.72006 c 12.46855,0 12.5818,-17.22727 0.2929,-17.22727 h -15.59208 v 0.0209 l -49.176442,-0.0174 -29.838867,-29.83844 v 15.19956 c 0,0 -20.5828188,20.58153 -20.6462512,20.64709 -4.8059773,4.98564 -2.03878353,11.07942 2.3861752,11.07942 h 25.922221 l 0.09195,50.95299 c 0,12.77166 19.200503,12.77166 19.200503,0 v -23.27381" />
|
||||||
|
<path
|
||||||
|
sodipodi:nodetypes="czc"
|
||||||
|
id="path3088"
|
||||||
|
d="m 78.839329,119.06609 c 0,0 5.444626,31.61398 -2.458867,54.09502 -7.903493,22.48105 -28.161583,51.22892 -28.161583,51.22892"
|
||||||
|
style="fill:none;fill-opacity:0.75;fill-rule:evenodd;stroke:#000000;stroke-width:5.18518;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1" />
|
||||||
|
</g>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 3.9 KiB |
91
assets/themes/blind_osm/blind_osm.json
Normal file
91
assets/themes/blind_osm/blind_osm.json
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
{
|
||||||
|
"id": "blind_osm",
|
||||||
|
"title": {
|
||||||
|
"en": "OSM for the blind"
|
||||||
|
},
|
||||||
|
"description": {
|
||||||
|
"en": "Help to map features relevant for the blind"
|
||||||
|
},
|
||||||
|
"icon": "./assets/themes/blind_osm/Blindicon.svg",
|
||||||
|
"startLat": 52.99238,
|
||||||
|
"startLon": 6.570614,
|
||||||
|
"startZoom": 20,
|
||||||
|
"defaultBackgroundId": "CartoDB.Positron",
|
||||||
|
"layers": [
|
||||||
|
{
|
||||||
|
"builtin": "cycleways_and_roads",
|
||||||
|
"override": {
|
||||||
|
"mapRendering": null,
|
||||||
|
"title": null
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"builtin": "crossings",
|
||||||
|
"override": {
|
||||||
|
"mapRendering": [
|
||||||
|
{
|
||||||
|
"iconBadges": [
|
||||||
|
{
|
||||||
|
"if": "tactile_paving=yes",
|
||||||
|
"then": "circle:green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "tactile_paving=no",
|
||||||
|
"then": "circle:red"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"hideTagRenderingsWithLabels": [
|
||||||
|
"crossing-bicycle-allowed"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"builtin": "kerbs",
|
||||||
|
"override": {
|
||||||
|
"minzoom": 19,
|
||||||
|
"mapRendering": [
|
||||||
|
{
|
||||||
|
"iconBadges": [
|
||||||
|
{
|
||||||
|
"if": "tactile_paving=yes",
|
||||||
|
"then": "circle:green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "tactile_paving=no",
|
||||||
|
"then": "circle:red"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"builtin": "transit_stops",
|
||||||
|
"override": {
|
||||||
|
"mapRendering": [
|
||||||
|
{
|
||||||
|
"iconBadges": [
|
||||||
|
{
|
||||||
|
"if": "tactile_paving=yes",
|
||||||
|
"then": "circle:green"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"if": "tactile_paving=no",
|
||||||
|
"then": "circle:red"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"builtin": "elevator",
|
||||||
|
"override": {
|
||||||
|
"minzoom": 17
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"stairs"
|
||||||
|
]
|
||||||
|
}
|
13
assets/themes/blind_osm/license_info.json
Normal file
13
assets/themes/blind_osm/license_info.json
Normal file
|
@ -0,0 +1,13 @@
|
||||||
|
[
|
||||||
|
{
|
||||||
|
"path": "Blindicon.svg",
|
||||||
|
"license": "CC0",
|
||||||
|
"authors": [
|
||||||
|
"Abu badali",
|
||||||
|
"AIGA"
|
||||||
|
],
|
||||||
|
"sources": [
|
||||||
|
"https://commons.wikimedia.org/wiki/File:Blindicon.svg"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
|
@ -146,6 +146,10 @@
|
||||||
"if": "theme=binoculars",
|
"if": "theme=binoculars",
|
||||||
"then": "./assets/layers/binocular/telescope.svg"
|
"then": "./assets/layers/binocular/telescope.svg"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"if": "theme=blind_osm",
|
||||||
|
"then": "./assets/themes/blind_osm/Blindicon.svg"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"if": "theme=bookcases",
|
"if": "theme=bookcases",
|
||||||
"then": "./assets/themes/bookcases/bookcase.svg"
|
"then": "./assets/themes/bookcases/bookcase.svg"
|
||||||
|
|
|
@ -4352,22 +4352,6 @@
|
||||||
"question": "Bordstein mit unbekannter Höhe"
|
"question": "Bordstein mit unbekannter Höhe"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Bordsteine mit oder ohne taktilem Pflaster"
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"question": "Bordstein mit taktilem Pflaster"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"question": "Bordstein ohne taktilem Pflaster"
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"question": "Bordstein ohne Informationen über taktiles Pflaster"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "Bordsteine",
|
"name": "Bordsteine",
|
||||||
|
|
|
@ -3384,7 +3384,7 @@
|
||||||
},
|
},
|
||||||
"elevator": {
|
"elevator": {
|
||||||
"description": "This layer show elevators and asks for operational status and elevator dimensions. Useful for wheelchair accessibility information",
|
"description": "This layer show elevators and asks for operational status and elevator dimensions. Useful for wheelchair accessibility information",
|
||||||
"name": "elevator",
|
"name": "Elevator",
|
||||||
"presets": {
|
"presets": {
|
||||||
"0": {
|
"0": {
|
||||||
"title": "an elevator"
|
"title": "an elevator"
|
||||||
|
@ -4373,22 +4373,6 @@
|
||||||
"question": "Kerb with unknown height"
|
"question": "Kerb with unknown height"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Kerbs with or without tactile paving"
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"question": "Kerb with tactile paving"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"question": "Kerb without tactile paving"
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"question": "Kerb wihout information about tactile paving"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "Kerbs",
|
"name": "Kerbs",
|
||||||
|
|
|
@ -2228,7 +2228,7 @@
|
||||||
},
|
},
|
||||||
"elevator": {
|
"elevator": {
|
||||||
"description": "Ce calque montre les ascenseurs et demande l'état opérationnel et les dimensions de l'ascenseur. Utile pour les informations sur l'accessibilité en fauteuil roulant",
|
"description": "Ce calque montre les ascenseurs et demande l'état opérationnel et les dimensions de l'ascenseur. Utile pour les informations sur l'accessibilité en fauteuil roulant",
|
||||||
"name": "ascenseur",
|
"name": "Ascenseur",
|
||||||
"presets": {
|
"presets": {
|
||||||
"0": {
|
"0": {
|
||||||
"title": "un ascenseur"
|
"title": "un ascenseur"
|
||||||
|
@ -2963,22 +2963,6 @@
|
||||||
"question": "Bordure de hauteur inconnue"
|
"question": "Bordure de hauteur inconnue"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Bordures avec ou sans revêtement podotactile"
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"question": "Bordure avec revêtement podotactile"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"question": "Bordure sans revêtement podotactile"
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"question": "Bordure sans information sur le revêtement podotactile"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "Bordures",
|
"name": "Bordures",
|
||||||
|
|
|
@ -3372,7 +3372,7 @@
|
||||||
},
|
},
|
||||||
"elevator": {
|
"elevator": {
|
||||||
"description": "Deze laag toont liften en vraagt praktische info over de grootte van de lift en ofdat deze werkt, vooral met het oog op of de lift werkt of niet.",
|
"description": "Deze laag toont liften en vraagt praktische info over de grootte van de lift en ofdat deze werkt, vooral met het oog op of de lift werkt of niet.",
|
||||||
"name": "lift",
|
"name": "Lift",
|
||||||
"presets": {
|
"presets": {
|
||||||
"0": {
|
"0": {
|
||||||
"title": "een lift"
|
"title": "een lift"
|
||||||
|
@ -4360,22 +4360,6 @@
|
||||||
"question": "Stoeprand met onbekende hoogte"
|
"question": "Stoeprand met onbekende hoogte"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"options": {
|
|
||||||
"0": {
|
|
||||||
"question": "Stoepranden met of zonder voelbare bestrating"
|
|
||||||
},
|
|
||||||
"1": {
|
|
||||||
"question": "Stoeprand met voelbare bestrating"
|
|
||||||
},
|
|
||||||
"2": {
|
|
||||||
"question": "Stoeprand zonder voelbare bestrating"
|
|
||||||
},
|
|
||||||
"3": {
|
|
||||||
"question": "Stoeprand zonder informatie over voelbare bestrating"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"name": "Stoepranden",
|
"name": "Stoepranden",
|
||||||
|
|
|
@ -18,6 +18,7 @@ function main() {
|
||||||
)
|
)
|
||||||
const mappings: MappingConfigJson[] = []
|
const mappings: MappingConfigJson[] = []
|
||||||
const schoolmappings: MappingConfigJson[] = []
|
const schoolmappings: MappingConfigJson[] = []
|
||||||
|
const brailemappings: MappingConfigJson[] = []
|
||||||
|
|
||||||
const countryToLanguage: Record<string, string[]> = perCountry
|
const countryToLanguage: Record<string, string[]> = perCountry
|
||||||
const officialLanguagesPerCountry = Utils.TransposeMap(countryToLanguage)
|
const officialLanguagesPerCountry = Utils.TransposeMap(countryToLanguage)
|
||||||
|
@ -57,6 +58,16 @@ function main() {
|
||||||
"*": [code],
|
"*": [code],
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
brailemappings.push(<MappingConfigJson>{
|
||||||
|
if: "tactile_writing:braille:" + code + "=yes",
|
||||||
|
ifnot: "tactile_writing:braille:" + code + "=",
|
||||||
|
searchTerms: {
|
||||||
|
"*": [code],
|
||||||
|
},
|
||||||
|
then,
|
||||||
|
priorityIf: prioritySearch,
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
const wikidataLayer = <LayerConfigJson>{
|
const wikidataLayer = <LayerConfigJson>{
|
||||||
|
@ -94,6 +105,13 @@ function main() {
|
||||||
multiAnswer: true,
|
multiAnswer: true,
|
||||||
mappings: schoolmappings,
|
mappings: schoolmappings,
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
id: "tactile_writing-braille",
|
||||||
|
// @ts-ignore
|
||||||
|
description: "Enables to pick *multiple* 'tactile_writing:braille=<lng>' within the mappings",
|
||||||
|
multiAnswer: true,
|
||||||
|
mappings: brailemappings,
|
||||||
|
}
|
||||||
],
|
],
|
||||||
}
|
}
|
||||||
const dir = "./assets/layers/wikidata/"
|
const dir = "./assets/layers/wikidata/"
|
||||||
|
|
Loading…
Reference in a new issue