diff --git a/assets/layers/cycleways_and_roads/cycleways_and_roads.json b/assets/layers/cycleways_and_roads/cycleways_and_roads.json
index c5dd1ea1d..25fe94364 100644
--- a/assets/layers/cycleways_and_roads/cycleways_and_roads.json
+++ b/assets/layers/cycleways_and_roads/cycleways_and_roads.json
@@ -21,6 +21,13 @@
"highway=unclassified",
"highway=primary",
"highway=secondary",
+ "highway=tertiary_link",
+ "highway=primary_link",
+ "highway=secondary_link",
+ "highway=service",
+ "highway=footway",
+ "highway=pedestrian",
+ "highway=living_street",
{
"and": [
"highway=path",
@@ -32,15 +39,23 @@
},
"title": {
"render": {
- "en": "Cycleways",
- "nl": "Fietspaden",
- "de": "Radwege",
- "ru": "Велосипедные дорожки",
- "fr": "Pistes cyclables",
- "ca": "Vies ciclistes",
- "es": "Ciclovías"
+ "en": "Way",
+ "nl": "Weg"
},
"mappings": [
+ {
+ "if": {
+ "and": [
+ "highway=cycleway",
+ "name~*"
+ ]
+ },
+ "then": {
+ "nl": "Fietsweg {name}",
+ "en": "Cycleway {name}",
+ "de": "Radweg {name}"
+ }
+ },
{
"if": {
"or": [
@@ -56,7 +71,19 @@
"fr": "Piste cyclable",
"ca": "Via ciclista",
"da": "Cykelsti",
- "es": "Carril bici"
+ "es": "Carril compartido"
+ }
+ },
+ {
+ "if": {
+ "and": [
+ "cycleway=shared_lane",
+ "name~*"
+ ]
+ },
+ "then": {
+ "nl": "Weg met fietssugestiestrook {name}",
+ "en": "Road with shared lane {name}"
}
},
{
@@ -67,7 +94,19 @@
"de": "Gemeinsame Fahrspur",
"fr": "Voie partagée",
"ca": "Carril compartit",
- "es": "Carril compartido"
+ "es": "Vía ciclista al lado de la carretera"
+ }
+ },
+ {
+ "if": {
+ "and": [
+ "cycleway=lane",
+ "name~*"
+ ]
+ },
+ "then": {
+ "nl": "Weg met fietsstrook {name}",
+ "en": "Road with bike lane {name}"
}
},
{
@@ -81,6 +120,18 @@
"es": "Carril bici"
}
},
+ {
+ "if": {
+ "and": [
+ "cycleway=track",
+ "name~*"
+ ]
+ },
+ "then": {
+ "nl": "Weg met fietspad naast de weg {name}",
+ "en": "Road with cycleway next to the road {name}"
+ }
+ },
{
"if": "cycleway=track",
"then": {
@@ -92,6 +143,19 @@
"es": "Vía ciclista al lado de la carretera"
}
},
+ {
+ "if": {
+ "and": [
+ "cyclestreet=yes",
+ "name~*"
+ ]
+ },
+ "then": {
+ "nl": "Fietsstraat {name}",
+ "en": "Cyclestreet {name}",
+ "de": "Fahrradstraße {name}"
+ }
+ },
{
"if": "cyclestreet=yes",
"then": {
@@ -103,6 +167,10 @@
"da": "Cykelgade",
"es": "Ciclocalle"
}
+ },
+ {
+ "if": "name~*",
+ "then": "{name}"
}
]
},
@@ -117,7 +185,8 @@
"condition": {
"and": [
"highway!=cycleway",
- "highway!=path"
+ "highway!=path",
+ "highway!=footway"
]
},
"mappings": [
@@ -246,7 +315,8 @@
"condition": {
"and": [
"highway!=cycleway",
- "highway!=path"
+ "highway!=path",
+ "highway!=footway"
]
},
"mappings": [
@@ -304,7 +374,8 @@
"condition": {
"and": [
"highway!=cycleway",
- "highway!=path"
+ "highway!=path",
+ "highway!=footway"
]
},
"mappings": [
@@ -828,7 +899,8 @@
"condition": {
"and": [
"highway!=cycleway",
- "highway!=path"
+ "highway!=path",
+ "highway!=footway"
]
},
"render": {
diff --git a/assets/layers/kerbs/KerbIcon.svg b/assets/layers/kerbs/KerbIcon.svg
new file mode 100644
index 000000000..2e4172e4d
--- /dev/null
+++ b/assets/layers/kerbs/KerbIcon.svg
@@ -0,0 +1,92 @@
+
+
+
+
+
+
+
+
+
+ image/svg+xml
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/assets/layers/kerbs/flush.svg b/assets/layers/kerbs/flush.svg
new file mode 100644
index 000000000..43068b390
--- /dev/null
+++ b/assets/layers/kerbs/flush.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/assets/layers/kerbs/kerbs.json b/assets/layers/kerbs/kerbs.json
new file mode 100644
index 000000000..a9f20f6de
--- /dev/null
+++ b/assets/layers/kerbs/kerbs.json
@@ -0,0 +1,305 @@
+{
+ "id": "kerbs",
+ "name": {
+ "en": "Kerbs",
+ "nl": "Stoepranden"
+ },
+ "description": {
+ "en": "A layer showing kerbs.",
+ "nl": "Een laag met stoepranden."
+ },
+ "source": {
+ "osmTags": "barrier=kerb"
+ },
+ "minzoom": 13,
+ "title": {
+ "render": {
+ "en": "Kerb",
+ "nl": "Stoeprand"
+ }
+ },
+ "mapRendering": [
+ {
+ "location": [
+ "point"
+ ],
+ "icon": {
+ "render": "./assets/layers/kerbs/KerbIcon.svg",
+ "mappings": [
+ {
+ "if": "kerb=raised",
+ "then": "./assets/layers/kerbs/raised.svg"
+ },
+ {
+ "if": "kerb=lowered",
+ "then": "./assets/layers/kerbs/lowered.svg"
+ },
+ {
+ "if": "kerb=flush",
+ "then": "./assets/layers/kerbs/flush.svg"
+ },
+ {
+ "if": "kerb=no",
+ "then": "./assets/layers/kerbs/no.svg"
+ }
+ ]
+ }
+ },
+ {
+ "color": "#f44e42",
+ "fill": "no",
+ "width": "8"
+ }
+ ],
+ "tagRenderings": [
+ {
+ "id": "kerb-type",
+ "question": {
+ "en": "What is the height of this kerb?",
+ "nl": "Hoe hoog is deze stoeprand?"
+ },
+ "mappings": [
+ {
+ "if": "kerb=raised",
+ "then": {
+ "en": "This kerb is raised (>3 cm)",
+ "nl": "Deze stoeprand is hoog (>3 cm)"
+ },
+ "icon": {
+ "path": "./assets/layers/kerbs/raised.svg",
+ "class": "small"
+ }
+ },
+ {
+ "if": "kerb=lowered",
+ "then": {
+ "en": "This kerb is lowered (~3 cm)",
+ "nl": "Deze stoeprand is verlaagd (~3 cm)"
+ },
+ "icon": {
+ "path": "./assets/layers/kerbs/lowered.svg",
+ "class": "small"
+ }
+ },
+ {
+ "if": "kerb=flush",
+ "then": {
+ "en": "This kerb is flush (~0cm)",
+ "nl": "Deze stoeprand is vlak (~0cm)"
+ },
+ "icon": {
+ "path": "./assets/layers/kerbs/flush.svg",
+ "class": "small"
+ }
+ },
+ {
+ "if": "kerb=no",
+ "then": {
+ "en": "There is no kerb here",
+ "nl": "Er is hier geen stoeprand"
+ },
+ "hideInAnswer": true,
+ "icon": {
+ "path": "./assets/layers/kerbs/no.svg",
+ "class": "small"
+ }
+ },
+ {
+ "if": "kerb=yes",
+ "then": {
+ "en": "There is a kerb of unknown height",
+ "nl": "Er is een stoeprand met onbekende hoogte"
+ },
+ "hideInAnswer": true
+ }
+ ],
+ "condition": "_geometry:type=Point"
+ },
+ {
+ "id": "tactile-paving",
+ "question": {
+ "en": "Is there tactile paving at this kerb?"
+ },
+ "mappings": [
+ {
+ "if": "tactile_paving=yes",
+ "then": {
+ "en": "This kerb has tactile paving."
+ }
+ },
+ {
+ "if": "tactile_paving=no",
+ "then": {
+ "en": "This kerb does not have tactile paving."
+ }
+ },
+ {
+ "if": "tactile_paving=incorrect",
+ "then": {
+ "en": "This kerb has tactile paving, but it is incorrect"
+ },
+ "hideInAnswer": true
+ }
+ ],
+ "condition": "_geometry:type=Point"
+ },
+ {
+ "id": "kerb-height",
+ "question": {
+ "en": "What is the height of this kerb?",
+ "nl": "Hoe hoog is deze stoeprand?"
+ },
+ "render": {
+ "en": "Kerb height: {{kerb:height}}",
+ "nl": "Stoeprandhoogte: {{kerb:height}}"
+ },
+ "freeform": {
+ "key": "kerb:height",
+ "placeholder": {
+ "en": "Height of the kerb",
+ "nl": "Hoogte van de stoeprand"
+ },
+ "type": "pnat"
+ }
+ }
+ ],
+ "presets": [
+ {
+ "title": {
+ "en": "a kerb",
+ "nl": "een stoeprand"
+ },
+ "tags": [
+ "barrier=kerb"
+ ],
+ "description": {
+ "en": "Kerb in a footway",
+ "nl": "Stoeprand in een voetpad"
+ },
+ "preciseInput": {
+ "maxSnapDistance": 10,
+ "preferredBackground": "photo",
+ "snapToLayer": [
+ "cycleways_and_roads",
+ "kerbs"
+ ]
+ }
+ }
+ ],
+ "filter": [
+ {
+ "id": "kerb-type",
+ "options": [
+ {
+ "question": {
+ "en": "All types of kerbs",
+ "nl": "Alle typen stoepranden"
+ }
+ },
+ {
+ "osmTags": "kerb=raised",
+ "question": {
+ "en": "Raised kerb (>3 cm)",
+ "nl": "Hoge stoeprand (>3 cm)"
+ }
+ },
+ {
+ "osmTags": "kerb=lowered",
+ "question": {
+ "en": "Lowered kerb (~3 cm)",
+ "nl": "Verlaagde stoeprand (~3 cm)"
+ }
+ },
+ {
+ "osmTags": "kerb=flush",
+ "question": {
+ "en": "Flush kerb (~0cm)",
+ "nl": "Vlakke stoeprand (~0cm)"
+ }
+ },
+ {
+ "osmTags": "kerb=no",
+ "question": {
+ "en": "No kerb",
+ "nl": "Geen stoeprand"
+ }
+ },
+ {
+ "osmTags": "kerb=",
+ "question": {
+ "en": "Kerb with unknown height",
+ "nl": "Stoeprand met onbekende hoogte"
+ }
+ }
+ ]
+ },
+ {
+ "id": "tactile-paving",
+ "options": [
+ {
+ "question": {
+ "en": "Kerbs with or without tactile paving"
+ }
+ },
+ {
+ "osmTags": "tactile_paving=yes",
+ "question": {
+ "en": "Kerb with tactile paving"
+ }
+ },
+ {
+ "osmTags": "tactile_paving=no",
+ "question": {
+ "en": "Kerb without tactile paving"
+ }
+ },
+ {
+ "osmTags": "tactile_paving=",
+ "question": {
+ "en": "Kerb wihout information about tactile paving"
+ }
+ }
+ ]
+ }
+ ],
+ "units": [
+ {
+ "applicableUnits": [
+ {
+ "canonicalDenomination": "cm",
+ "alternativeDenomination": [
+ "centimeter",
+ "centimeters"
+ ],
+ "human": {
+ "en": "centimeters",
+ "nl": "centimeter"
+ },
+ "humanSingular": {
+ "en": "centimeter",
+ "nl": "centimeter"
+ },
+ "default": true
+ },
+ {
+ "canonicalDenomination": "m",
+ "alternativeDenomination": [
+ "meter",
+ "meters"
+ ],
+ "human": {
+ "en": "meters",
+ "nl": "meter"
+ },
+ "humanSingular": {
+ "en": "meter",
+ "nl": "meter"
+ }
+ }
+ ],
+ "appliesToKey": [
+ "kerb:height"
+ ]
+ }
+ ]
+}
\ No newline at end of file
diff --git a/assets/layers/kerbs/license_info.json b/assets/layers/kerbs/license_info.json
new file mode 100644
index 000000000..61687d833
--- /dev/null
+++ b/assets/layers/kerbs/license_info.json
@@ -0,0 +1,52 @@
+[
+ {
+ "path": "KerbIcon.svg",
+ "license": "CC0",
+ "authors": [
+ "Treeem"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:KerbIcon.svg"
+ ]
+ },
+ {
+ "path": "flush.svg",
+ "license": "CC0",
+ "authors": [
+ "Jeroen Hoek"
+ ],
+ "sources": [
+ "https://wiki.openstreetmap.org/wiki/File:Icon_kerb%3Dflush.svg"
+ ]
+ },
+ {
+ "path": "lowered.svg",
+ "license": "CC0",
+ "authors": [
+ "Jeroen Hoek"
+ ],
+ "sources": [
+ "https://wiki.openstreetmap.org/wiki/File:Icon_kerb%3Dlowered.svg"
+ ]
+ },
+ {
+ "path": "no.svg",
+ "license": "CC0",
+ "authors": [
+ "Jeroen Hoek"
+ ],
+ "sources": [
+ "https://wiki.openstreetmap.org/wiki/File:Icon_kerb%3Dno.svg"
+ ]
+ },
+ {
+ "path": "raised.svg",
+ "license": "CC0",
+ "authors": [
+ "Jeroen Hoek"
+ ],
+ "sources": [
+ "https://wiki.openstreetmap.org/wiki/File:Icon_kerb%3Draised.svg"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/assets/layers/kerbs/lowered.svg b/assets/layers/kerbs/lowered.svg
new file mode 100644
index 000000000..13737e582
--- /dev/null
+++ b/assets/layers/kerbs/lowered.svg
@@ -0,0 +1,5 @@
+
+
+
+
+
diff --git a/assets/layers/kerbs/no.svg b/assets/layers/kerbs/no.svg
new file mode 100644
index 000000000..e7cc817ff
--- /dev/null
+++ b/assets/layers/kerbs/no.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/assets/layers/kerbs/raised.svg b/assets/layers/kerbs/raised.svg
new file mode 100644
index 000000000..629a32606
--- /dev/null
+++ b/assets/layers/kerbs/raised.svg
@@ -0,0 +1,7 @@
+
+
+
+
+
+
+
diff --git a/assets/svg/license_info.json b/assets/svg/license_info.json
index 133544ecf..58f491f57 100644
--- a/assets/svg/license_info.json
+++ b/assets/svg/license_info.json
@@ -1247,6 +1247,14 @@
"https://commons.wikimedia.org/wiki/File:OOjs_UI_icon_language-ltr.svg"
]
},
+ {
+ "path": "triangle.svg",
+ "license": "CC0",
+ "authors": [
+ "Robin van der Linde"
+ ],
+ "sources": []
+ },
{
"path": "twitter.svg",
"license": "Logo - all rights reserved",
diff --git a/assets/svg/triangle.svg b/assets/svg/triangle.svg
new file mode 100644
index 000000000..846a32f32
--- /dev/null
+++ b/assets/svg/triangle.svg
@@ -0,0 +1,9 @@
+
+
+
+
diff --git a/assets/themes/kerbs_and_crossings/kerbs_and_crossings.json b/assets/themes/kerbs_and_crossings/kerbs_and_crossings.json
new file mode 100644
index 000000000..ddb32ee8d
--- /dev/null
+++ b/assets/themes/kerbs_and_crossings/kerbs_and_crossings.json
@@ -0,0 +1,29 @@
+{
+ "id": "kerbs_and_crossings",
+ "maintainer": "Robin van der Linde",
+ "version": "20211215",
+ "title": {
+ "en": "Kerbs and crossings",
+ "nl": "Stoepranden en oversteekplaatsen"
+ },
+ "description": {
+ "en": "A map showing kerbs and crossings.",
+ "nl": "Een kaart met stoepranden en oversteekplaatsen."
+ },
+ "icon": "./assets/layers/kerbs/KerbIcon.svg",
+ "startZoom": 19,
+ "startLat": 53.23776,
+ "startLon": 6.53812,
+ "layers": [
+ {
+ "builtin": "crossings",
+ "override": {
+ "=presets": [],
+ "source": {
+ "osmTags": "highway=crossing"
+ }
+ }
+ },
+ "kerbs"
+ ]
+}
\ No newline at end of file
diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
index 996bd4deb..c21ef5df7 100644
--- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json
+++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
@@ -207,6 +207,10 @@
"if": "theme=hailhydrant",
"then": "./assets/themes/hailhydrant/logo.svg"
},
+ {
+ "if": "theme=kerbs_and_crossings",
+ "then": "./assets/layers/kerbs/KerbIcon.svg"
+ },
{
"if": "theme=mapcomplete-changes",
"then": "./assets/svg/logo.svg"
diff --git a/langs/layers/ca.json b/langs/layers/ca.json
index 4cef6671c..231cd932e 100644
--- a/langs/layers/ca.json
+++ b/langs/layers/ca.json
@@ -514,20 +514,19 @@
},
"title": {
"mappings": {
- "0": {
+ "1": {
"then": "Via ciclista"
},
- "1": {
+ "3": {
"then": "Carril compartit"
},
- "2": {
+ "5": {
"then": "Carril bici"
},
- "4": {
+ "9": {
"then": "Carrer ciclista"
}
- },
- "render": "Vies ciclistes"
+ }
}
},
"defibrillator": {
diff --git a/langs/layers/da.json b/langs/layers/da.json
index 7b7bd47cb..2e70a0a23 100644
--- a/langs/layers/da.json
+++ b/langs/layers/da.json
@@ -1190,13 +1190,13 @@
},
"title": {
"mappings": {
- "0": {
+ "1": {
"then": "Cykelsti"
},
- "3": {
+ "7": {
"then": "Cykelsti ved siden af vejen"
},
- "4": {
+ "9": {
"then": "Cykelgade"
}
}
diff --git a/langs/layers/de.json b/langs/layers/de.json
index 0c4c9dfc0..9d5aa66f5 100644
--- a/langs/layers/de.json
+++ b/langs/layers/de.json
@@ -3090,22 +3090,27 @@
"title": {
"mappings": {
"0": {
- "then": "Radweg"
+ "then": "Radweg {name}"
},
"1": {
- "then": "Gemeinsame Fahrspur"
- },
- "2": {
- "then": "Fahrradspur"
+ "then": "Radweg"
},
"3": {
+ "then": "Gemeinsame Fahrspur"
+ },
+ "5": {
+ "then": "Fahrradspur"
+ },
+ "7": {
"then": "Radweg neben der Straße"
},
- "4": {
+ "8": {
+ "then": "Fahrradstraße {name}"
+ },
+ "9": {
"then": "Fahrradstraße"
}
- },
- "render": "Radwege"
+ }
}
},
"defibrillator": {
diff --git a/langs/layers/en.json b/langs/layers/en.json
index 69bea69b6..01aa1fabb 100644
--- a/langs/layers/en.json
+++ b/langs/layers/en.json
@@ -3090,22 +3090,37 @@
"title": {
"mappings": {
"0": {
- "then": "Cycleway"
+ "then": "Cycleway {name}"
},
"1": {
- "then": "Shared lane"
+ "then": "Cycleway"
},
"2": {
- "then": "Bike lane"
+ "then": "Road with shared lane {name}"
},
"3": {
- "then": "Cycleway next to the road"
+ "then": "Shared lane"
},
"4": {
+ "then": "Road with bike lane {name}"
+ },
+ "5": {
+ "then": "Bike lane"
+ },
+ "6": {
+ "then": "Road with cycleway next to the road {name}"
+ },
+ "7": {
+ "then": "Cycleway next to the road"
+ },
+ "8": {
+ "then": "Cyclestreet {name}"
+ },
+ "9": {
"then": "Cyclestreet"
}
},
- "render": "Cycleways"
+ "render": "Way"
}
},
"defibrillator": {
@@ -4052,6 +4067,116 @@
"render": "Information board"
}
},
+ "kerbs": {
+ "description": "A layer showing kerbs.",
+ "filter": {
+ "0": {
+ "options": {
+ "0": {
+ "question": "All types of kerbs"
+ },
+ "1": {
+ "question": "Raised kerb (>3 cm)"
+ },
+ "2": {
+ "question": "Lowered kerb (~3 cm)"
+ },
+ "3": {
+ "question": "Flush kerb (~0cm)"
+ },
+ "4": {
+ "question": "No kerb"
+ },
+ "5": {
+ "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",
+ "presets": {
+ "0": {
+ "description": "Kerb in a footway",
+ "title": "a kerb"
+ }
+ },
+ "tagRenderings": {
+ "kerb-height": {
+ "freeform": {
+ "placeholder": "Height of the kerb"
+ },
+ "question": "What is the height of this kerb?",
+ "render": "Kerb height: {{kerb:height}}"
+ },
+ "kerb-type": {
+ "mappings": {
+ "0": {
+ "then": "This kerb is raised (>3 cm)"
+ },
+ "1": {
+ "then": "This kerb is lowered (~3 cm)"
+ },
+ "2": {
+ "then": "This kerb is flush (~0cm)"
+ },
+ "3": {
+ "then": "There is no kerb here"
+ },
+ "4": {
+ "then": "There is a kerb of unknown height"
+ }
+ },
+ "question": "What is the height of this kerb?"
+ },
+ "tactile-paving": {
+ "mappings": {
+ "0": {
+ "then": "This kerb has tactile paving."
+ },
+ "1": {
+ "then": "This kerb does not have tactile paving."
+ },
+ "2": {
+ "then": "This kerb has tactile paving, but it is incorrect"
+ }
+ },
+ "question": "Is there tactile paving at this kerb?"
+ }
+ },
+ "title": {
+ "render": "Kerb"
+ },
+ "units": {
+ "0": {
+ "applicableUnits": {
+ "0": {
+ "human": "centimeters",
+ "humanSingular": "centimeter"
+ },
+ "1": {
+ "human": "meters",
+ "humanSingular": "meter"
+ }
+ }
+ }
+ }
+ },
"kindergarten_childcare": {
"name": "Kindergartens and childcare",
"presets": {
diff --git a/langs/layers/es.json b/langs/layers/es.json
index 1b9751a39..f2b061f1c 100644
--- a/langs/layers/es.json
+++ b/langs/layers/es.json
@@ -1952,23 +1952,22 @@
},
"title": {
"mappings": {
- "0": {
- "then": "Carril bici"
- },
"1": {
"then": "Carril compartido"
},
- "2": {
- "then": "Carril bici"
- },
"3": {
"then": "Vía ciclista al lado de la carretera"
},
- "4": {
+ "5": {
+ "then": "Carril bici"
+ },
+ "7": {
+ "then": "Vía ciclista al lado de la carretera"
+ },
+ "9": {
"then": "Ciclocalle"
}
- },
- "render": "Ciclovías"
+ }
}
},
"defibrillator": {
diff --git a/langs/layers/fr.json b/langs/layers/fr.json
index 9251d26f6..388f83931 100644
--- a/langs/layers/fr.json
+++ b/langs/layers/fr.json
@@ -1613,23 +1613,22 @@
"name": "Pistes cyclables et routes",
"title": {
"mappings": {
- "0": {
+ "1": {
"then": "Piste cyclable"
},
- "1": {
+ "3": {
"then": "Voie partagée"
},
- "2": {
+ "5": {
"then": "Bande cyclable"
},
- "3": {
+ "7": {
"then": "Piste cyclable séparée de la route"
},
- "4": {
+ "9": {
"then": "Vélorue"
}
- },
- "render": "Pistes cyclables"
+ }
}
},
"defibrillator": {
diff --git a/langs/layers/nl.json b/langs/layers/nl.json
index f0962da5f..96d2abc4f 100644
--- a/langs/layers/nl.json
+++ b/langs/layers/nl.json
@@ -3075,22 +3075,37 @@
"title": {
"mappings": {
"0": {
- "then": "Fietsweg"
+ "then": "Fietsweg {name}"
},
"1": {
- "then": "Fietssuggestiestrook"
+ "then": "Fietsweg"
},
"2": {
- "then": "Fietsstrook"
+ "then": "Weg met fietssugestiestrook {name}"
},
"3": {
- "then": "Fietsweg naast de weg"
+ "then": "Fietssuggestiestrook"
},
"4": {
+ "then": "Weg met fietsstrook {name}"
+ },
+ "5": {
+ "then": "Fietsstrook"
+ },
+ "6": {
+ "then": "Weg met fietspad naast de weg {name}"
+ },
+ "7": {
+ "then": "Fietsweg naast de weg"
+ },
+ "8": {
+ "then": "Fietsstraat {name}"
+ },
+ "9": {
"then": "Fietsstraat"
}
},
- "render": "Fietspaden"
+ "render": "Weg"
}
},
"defibrillator": {
@@ -3981,6 +3996,86 @@
"render": "Informatiebord"
}
},
+ "kerbs": {
+ "description": "Een laag met stoepranden.",
+ "filter": {
+ "0": {
+ "options": {
+ "0": {
+ "question": "Alle typen stoepranden"
+ },
+ "1": {
+ "question": "Hoge stoeprand (>3 cm)"
+ },
+ "2": {
+ "question": "Verlaagde stoeprand (~3 cm)"
+ },
+ "3": {
+ "question": "Vlakke stoeprand (~0cm)"
+ },
+ "4": {
+ "question": "Geen stoeprand"
+ },
+ "5": {
+ "question": "Stoeprand met onbekende hoogte"
+ }
+ }
+ }
+ },
+ "name": "Stoepranden",
+ "presets": {
+ "0": {
+ "description": "Stoeprand in een voetpad",
+ "title": "een stoeprand"
+ }
+ },
+ "tagRenderings": {
+ "kerb-height": {
+ "freeform": {
+ "placeholder": "Hoogte van de stoeprand"
+ },
+ "question": "Hoe hoog is deze stoeprand?",
+ "render": "Stoeprandhoogte: {{kerb:height}}"
+ },
+ "kerb-type": {
+ "mappings": {
+ "0": {
+ "then": "Deze stoeprand is hoog (>3 cm)"
+ },
+ "1": {
+ "then": "Deze stoeprand is verlaagd (~3 cm)"
+ },
+ "2": {
+ "then": "Deze stoeprand is vlak (~0cm)"
+ },
+ "3": {
+ "then": "Er is hier geen stoeprand"
+ },
+ "4": {
+ "then": "Er is een stoeprand met onbekende hoogte"
+ }
+ },
+ "question": "Hoe hoog is deze stoeprand?"
+ }
+ },
+ "title": {
+ "render": "Stoeprand"
+ },
+ "units": {
+ "0": {
+ "applicableUnits": {
+ "0": {
+ "human": "centimeter",
+ "humanSingular": "centimeter"
+ },
+ "1": {
+ "human": "meter",
+ "humanSingular": "meter"
+ }
+ }
+ }
+ }
+ },
"kindergarten_childcare": {
"name": "Kleuterscholen en kinderopvang",
"presets": {
diff --git a/langs/layers/ru.json b/langs/layers/ru.json
index b3912ae5b..ccb05ca70 100644
--- a/langs/layers/ru.json
+++ b/langs/layers/ru.json
@@ -842,11 +842,10 @@
"cycleways_and_roads": {
"title": {
"mappings": {
- "0": {
+ "1": {
"then": "Велосипедная дорожка"
}
- },
- "render": "Велосипедные дорожки"
+ }
}
},
"defibrillator": {
diff --git a/langs/themes/en.json b/langs/themes/en.json
index b76a1c16c..fc2a5c198 100644
--- a/langs/themes/en.json
+++ b/langs/themes/en.json
@@ -647,6 +647,10 @@
"shortDescription": "Map to show hydrants, extinguishers, fire stations, and ambulance stations.",
"title": "Hydrants, Extinguishers, Fire stations, and Ambulance stations"
},
+ "kerbs_and_crossings": {
+ "description": "A map showing kerbs and crossings.",
+ "title": "Kerbs and crossings"
+ },
"mapcomplete-changes": {
"description": "This maps shows all the changes made with MapComplete",
"layers": {
diff --git a/langs/themes/nl.json b/langs/themes/nl.json
index 7c0763523..956c45889 100644
--- a/langs/themes/nl.json
+++ b/langs/themes/nl.json
@@ -922,6 +922,71 @@
"shortDescription": "Kaart om hydranten, brandblussers, brandweerkazernes en ambulanceposten weer te geven.",
"title": "Brandkranen, brandblussers, brandweerposten en ambulanceposten"
},
+ "kerbs_and_crossings": {
+ "description": "Een kaart met stoepranden en oversteekplaatsen.",
+ "title": "Stoepranden en oversteekplaatsen"
+ },
+ "mapcomplete-changes": {
+ "description": "Deze kaart toont alle wijzigingen die met MapComplete werden gemaakt",
+ "layers": {
+ "0": {
+ "description": "Toont alle wijzigingen met MapComplete",
+ "filter": {
+ "0": {
+ "options": {
+ "0": {
+ "question": "Themanaam bevat {search}"
+ }
+ }
+ },
+ "1": {
+ "options": {
+ "0": {
+ "question": "Gemaakt door bijdrager {search}"
+ }
+ }
+ },
+ "2": {
+ "options": {
+ "0": {
+ "question": "Niet gemaakt door bijdrager {search}"
+ }
+ }
+ }
+ },
+ "tagRenderings": {
+ "contributor": {
+ "render": "Wijziging gemaakt door {_last_edit:contributor} "
+ },
+ "render_id": {
+ "render": "Wijzigingset {id} "
+ },
+ "theme": {
+ "mappings": {
+ "0": {
+ "then": "Wijziging met officieus thema {theme} "
+ }
+ },
+ "render": "Wijziging met thema {theme} "
+ }
+ },
+ "title": {
+ "render": "Wijzigingset voor {theme}"
+ }
+ },
+ "1": {
+ "override": {
+ "tagRenderings": {
+ "link_to_more": {
+ "render": "Meer statistieken kunnen hier gevonden worden"
+ }
+ }
+ }
+ }
+ },
+ "shortDescription": "Toont wijzigingen gemaakt met MapComplete",
+ "title": "Wijzigingen gemaakt met MapComplete"
+ },
"maps": {
"description": "Op deze kaart kan je alle kaarten zien die OpenStreetMap kent. Ontbreekt er een kaart, dan kan je die kaart hier ook gemakelijk aan deze kaart toevoegen.",
"shortDescription": "Dit thema toont alle (toeristische) kaarten die OpenStreetMap kent",