diff --git a/Svg.ts b/Svg.ts
index 9a5c94b8f2..66d15883fb 100644
--- a/Svg.ts
+++ b/Svg.ts
@@ -39,6 +39,11 @@ export default class Svg {
public static back_svg() { return new Img(Svg.back, true);}
public static back_ui() { return new FixedUiElement(Svg.back_img);}
+ public static barrier = " "
+ public static barrier_img = Img.AsImageElement(Svg.barrier)
+ public static barrier_svg() { return new Img(Svg.barrier, true);}
+ public static barrier_ui() { return new FixedUiElement(Svg.barrier_img);}
+
public static bug = ""
public static bug_img = Img.AsImageElement(Svg.bug)
public static bug_svg() { return new Img(Svg.bug, true);}
@@ -94,6 +99,11 @@ export default class Svg {
public static crosshair_svg() { return new Img(Svg.crosshair, true);}
public static crosshair_ui() { return new FixedUiElement(Svg.crosshair_img);}
+ public static cycle_infra = ""
+ public static cycle_infra_img = Img.AsImageElement(Svg.cycle_infra)
+ public static cycle_infra_svg() { return new Img(Svg.cycle_infra, true);}
+ public static cycle_infra_ui() { return new FixedUiElement(Svg.cycle_infra_img);}
+
public static delete_icon = " "
public static delete_icon_img = Img.AsImageElement(Svg.delete_icon)
public static delete_icon_svg() { return new Img(Svg.delete_icon, true);}
@@ -334,4 +344,4 @@ export default class Svg {
public static wikipedia_svg() { return new Img(Svg.wikipedia, true);}
public static wikipedia_ui() { return new FixedUiElement(Svg.wikipedia_img);}
-public static All = {"SocialImageForeground.svg": Svg.SocialImageForeground,"add.svg": Svg.add,"addSmall.svg": Svg.addSmall,"ampersand.svg": Svg.ampersand,"arrow-left-smooth.svg": Svg.arrow_left_smooth,"arrow-right-smooth.svg": Svg.arrow_right_smooth,"back.svg": Svg.back,"bug.svg": Svg.bug,"camera-plus.svg": Svg.camera_plus,"checkmark.svg": Svg.checkmark,"circle.svg": Svg.circle,"clock.svg": Svg.clock,"close.svg": Svg.close,"compass.svg": Svg.compass,"cross_bottom_right.svg": Svg.cross_bottom_right,"crosshair-blue-center.svg": Svg.crosshair_blue_center,"crosshair-blue.svg": Svg.crosshair_blue,"crosshair.svg": Svg.crosshair,"delete_icon.svg": Svg.delete_icon,"direction.svg": Svg.direction,"direction_gradient.svg": Svg.direction_gradient,"direction_masked.svg": Svg.direction_masked,"direction_outline.svg": Svg.direction_outline,"direction_stroke.svg": Svg.direction_stroke,"down.svg": Svg.down,"envelope.svg": Svg.envelope,"floppy.svg": Svg.floppy,"gear.svg": Svg.gear,"help.svg": Svg.help,"home.svg": Svg.home,"home_white_bg.svg": Svg.home_white_bg,"josm_logo.svg": Svg.josm_logo,"layers.svg": Svg.layers,"layersAdd.svg": Svg.layersAdd,"logo.svg": Svg.logo,"logout.svg": Svg.logout,"mapcomplete_logo.svg": Svg.mapcomplete_logo,"mapillary.svg": Svg.mapillary,"mapillary_black.svg": Svg.mapillary_black,"min.svg": Svg.min,"no_checkmark.svg": Svg.no_checkmark,"or.svg": Svg.or,"osm-copyright.svg": Svg.osm_copyright,"osm-logo-us.svg": Svg.osm_logo_us,"osm-logo.svg": Svg.osm_logo,"pencil.svg": Svg.pencil,"phone.svg": Svg.phone,"pin.svg": Svg.pin,"plus.svg": Svg.plus,"pop-out.svg": Svg.pop_out,"reload.svg": Svg.reload,"ring.svg": Svg.ring,"search.svg": Svg.search,"send_email.svg": Svg.send_email,"share.svg": Svg.share,"square.svg": Svg.square,"star.svg": Svg.star,"star_half.svg": Svg.star_half,"star_outline.svg": Svg.star_outline,"star_outline_half.svg": Svg.star_outline_half,"statistics.svg": Svg.statistics,"translate.svg": Svg.translate,"up.svg": Svg.up,"wikidata.svg": Svg.wikidata,"wikimedia-commons-white.svg": Svg.wikimedia_commons_white,"wikipedia.svg": Svg.wikipedia};}
+public static All = {"SocialImageForeground.svg": Svg.SocialImageForeground,"add.svg": Svg.add,"addSmall.svg": Svg.addSmall,"ampersand.svg": Svg.ampersand,"arrow-left-smooth.svg": Svg.arrow_left_smooth,"arrow-right-smooth.svg": Svg.arrow_right_smooth,"back.svg": Svg.back,"barrier.svg": Svg.barrier,"bug.svg": Svg.bug,"camera-plus.svg": Svg.camera_plus,"checkmark.svg": Svg.checkmark,"circle.svg": Svg.circle,"clock.svg": Svg.clock,"close.svg": Svg.close,"compass.svg": Svg.compass,"cross_bottom_right.svg": Svg.cross_bottom_right,"crosshair-blue-center.svg": Svg.crosshair_blue_center,"crosshair-blue.svg": Svg.crosshair_blue,"crosshair.svg": Svg.crosshair,"cycle-infra.svg": Svg.cycle_infra,"delete_icon.svg": Svg.delete_icon,"direction.svg": Svg.direction,"direction_gradient.svg": Svg.direction_gradient,"direction_masked.svg": Svg.direction_masked,"direction_outline.svg": Svg.direction_outline,"direction_stroke.svg": Svg.direction_stroke,"down.svg": Svg.down,"envelope.svg": Svg.envelope,"floppy.svg": Svg.floppy,"gear.svg": Svg.gear,"help.svg": Svg.help,"home.svg": Svg.home,"home_white_bg.svg": Svg.home_white_bg,"josm_logo.svg": Svg.josm_logo,"layers.svg": Svg.layers,"layersAdd.svg": Svg.layersAdd,"logo.svg": Svg.logo,"logout.svg": Svg.logout,"mapcomplete_logo.svg": Svg.mapcomplete_logo,"mapillary.svg": Svg.mapillary,"mapillary_black.svg": Svg.mapillary_black,"min.svg": Svg.min,"no_checkmark.svg": Svg.no_checkmark,"or.svg": Svg.or,"osm-copyright.svg": Svg.osm_copyright,"osm-logo-us.svg": Svg.osm_logo_us,"osm-logo.svg": Svg.osm_logo,"pencil.svg": Svg.pencil,"phone.svg": Svg.phone,"pin.svg": Svg.pin,"plus.svg": Svg.plus,"pop-out.svg": Svg.pop_out,"reload.svg": Svg.reload,"ring.svg": Svg.ring,"search.svg": Svg.search,"send_email.svg": Svg.send_email,"share.svg": Svg.share,"square.svg": Svg.square,"star.svg": Svg.star,"star_half.svg": Svg.star_half,"star_outline.svg": Svg.star_outline,"star_outline_half.svg": Svg.star_outline_half,"statistics.svg": Svg.statistics,"translate.svg": Svg.translate,"up.svg": Svg.up,"wikidata.svg": Svg.wikidata,"wikimedia-commons-white.svg": Svg.wikimedia_commons_white,"wikipedia.svg": Svg.wikipedia};}
diff --git a/assets/svg/barrier.svg b/assets/svg/barrier.svg
new file mode 100644
index 0000000000..08bb800f50
--- /dev/null
+++ b/assets/svg/barrier.svg
@@ -0,0 +1,10 @@
+
+
diff --git a/assets/svg/license_info.json b/assets/svg/license_info.json
index 1ef8f94c8e..ef0b9ac317 100644
--- a/assets/svg/license_info.json
+++ b/assets/svg/license_info.json
@@ -79,6 +79,16 @@
"license": "CC0",
"sources": []
},
+ {
+ "authors": [
+ "westnordost"
+ ],
+ "path": "barrier.svg",
+ "license": "GPL-3.0",
+ "sources": [
+ "https://github.com/streetcomplete/StreetComplete/blob/master/res/graphics/quest%20icons/barrier.svg"
+ ]
+ },
{
"authors": [
"Github"
diff --git a/assets/themes/cycle_infra/cycle_infra.json b/assets/themes/cycle_infra/cycle_infra.json
index 3aabe2350c..044e91bdc1 100644
--- a/assets/themes/cycle_infra/cycle_infra.json
+++ b/assets/themes/cycle_infra/cycle_infra.json
@@ -28,7 +28,7 @@
"en": "Cycleways",
"nl": "Fietspaden"
},
- "minzoom": 12,
+ "minzoom": 14,
"source": {
"osmTags": {
"or": [
@@ -77,6 +77,66 @@
},
"description": {},
"tagRenderings": [
+ {
+ "freeform": {
+ "key": "cycleway",
+ "addExtraTags": []
+ },
+ "question": {
+ "en": "What kind of cycleway is there?",
+ "nl": "Wat voor fietspad is hier?"
+ },
+ "condition": "highway!=cycleway",
+ "mappings": [
+ {
+ "if": "cycleway=shared_lane",
+ "then": {
+ "en": "There is a shared lane",
+ "nl": "Er is een fietssugestiestrook"
+ }
+ },
+ {
+ "if": "cycleway=lane",
+ "then": {
+ "en": "There is a lane next to the road (seperated with paint)",
+ "nl": "Er is een fietspad aangrenzend aan de weg (gescheiden met verf)"
+ }
+ },
+ {
+ "if": "cycleway=track",
+ "then": {
+ "en": "There is a track, but no cycleway drawn seperately from this road on the map.",
+ "nl": "Er is een fietspad (los van de weg), maar geen fietspad afzonderlijk getekend naast deze weg."
+ }
+ },
+ {
+ "if": "cycleway=seperate",
+ "then": {
+ "en": "There is a seperately drawn cycleway",
+ "nl": "Er is een apart getekend fietspad."
+ }
+ },
+ {
+ "if": "cyclestreet=yes",
+ "then": {
+ "nl": "Dit is een fietsstraat.",
+ "en": "This is a cyclestreet."
+ }
+ },
+ {
+ "if": "cycleway=",
+ "then": {
+ "en": "There is no cycleway",
+ "nl": "Er is geen fietspad"
+ },
+ "hideInAnswer": true
+ }
+ ],
+ "render": {
+ "en": "Unknown cycleway situation",
+ "nl": "Onbekende fietspad situatie"
+ }
+ },
{
"render": {
"en": "The maximum speed on this road is {maxspeed} km/h",
@@ -269,6 +329,124 @@
"en": "What is the carriage width of this road (in meters)?",
"nl": "Hoe breed is de rijbaan in deze straat (in meters)?"
}
+ },
+ {
+ "render": {
+ "en": "This road has the smoothness {smoothness}",
+ "nl": "Deze weg heeft de kwaliteit {smoothness}"
+ },
+ "freeform": {
+ "key": "smoothness",
+ "addExtraTags": []
+ },
+ "condition": {
+ "or": ["cycleway=no", "highway=cycleway"]
+ },
+ "mappings": [
+ {
+ "if": "smoothness=excellent",
+ "then": {
+ "en": "Thin Rollers: rollerblade, skateboard"
+ }
+ },
+ {
+ "if": "smoothness=good",
+ "then": {
+ "en": "Thin Wheels: racing bike"
+ }
+ },
+ {
+ "if": "smoothness=intermediate",
+ "then": {
+ "en": "Wheels: city bike, wheelchair, scooter"
+ }
+ },
+ {
+ "if": "smoothness=bad",
+ "then": {
+ "en": "Robust Wheels: trekking bike, car, rickshaw"
+ }
+ },
+ {
+ "if": "smoothness=very_bad",
+ "then": {
+ "en": "High Clearance: light duty off-road vehicle"
+ }
+ },
+ {
+ "if": "smoothness=horrible",
+ "then": {
+ "en": "Off-Road: heavy duty off-road vehicle"
+ }
+ },
+ {
+ "if": "smoothness=very_horrible",
+ "then": {
+ "en": "Specialized off-road: tractor, ATV"
+ }
+ },
+ {
+ "if": "smoothness=impassable",
+ "then": {
+ "en": "Impassable / No wheeled vehicle"
+ }
+ }
+ ],
+ "question": {
+ "en": "What is the smoothness of this street?",
+ "nl": "Wat is de kwaliteit van deze straat?"
+ }
+ },
+ {
+ "render": {
+ "en": "This road is made of {surface}",
+ "nl": "Deze weg is gemaakt van {surface}"
+ },
+ "freeform": {
+ "key": "surface",
+ "addExtraTags": []
+ },
+ "mappings": [
+ {
+ "if": "surface=wood",
+ "then": {
+ "en": "This street is made of wood",
+ "nl": "Deze weg is gemaakt van hout"
+ }
+ },
+ {
+ "if": "surface=concrete",
+ "then": {
+ "en": "This street is made of concrete",
+ "nl": "Deze straat is gemaakt van beton"
+ }
+ },
+ {
+ "if": "surface=cobblestone",
+ "then": {
+ "en": "This street is made of cobblestone",
+ "nl": "Deze straat is gemaakt van kasseien"
+ }
+ },
+ {
+ "if": "surface=asphalt",
+ "then": {
+ "en": "This street is made of asphalt",
+ "nl": "Deze straat is gemaakt van asfalt"
+ }
+ },
+ {
+ "if": "surface=paved",
+ "then": {
+ "en": "This street is paved",
+ "nl": "Deze straat is geplaveid"
+ }
+ }
+ ],
+ "question": {
+ "en": "What is the surface of the street made from?",
+ "nl": "Waaruit is het oppervlak van de straat gemaakt?"
+ }
}
],
"hideUnderlayingFeaturesMinPercentage": 0,
@@ -325,7 +503,7 @@
]
}
},
- "minzoom": 18,
+ "minzoom": 19,
"wayHandling": 0,
"title": {
"render": {
@@ -345,189 +523,94 @@
"render": "#aaaaaa",
"mappings": []
},
+ "tagRenderings": [
+ {
+ "freeform": {
+ "key": "cycleway",
+ "addExtraTags": []
+ },
+ "question": {
+ "en": "Is there a cycleway?",
+ "nl": "Is er een fietspad?"
+ },
+ "condition": "highway!=cycleway",
+ "mappings": [
+ {
+ "if": "cycleway=shared_lane",
+ "then": {
+ "en": "There is a shared lane",
+ "nl": "Er is een fietssugestiestrook"
+ }
+ },
+ {
+ "if": "cycleway=lane",
+ "then": {
+ "en": "There is a lane next to the road (seperated with paint)",
+ "nl": "Er is een fietspad aangrenzend aan de weg (gescheiden met verf)"
+ }
+ },
+ {
+ "if": "cycleway=track",
+ "then": {
+ "en": "There is a track, but no cycleway drawn seperately from this road on the map.",
+ "nl": "Er is een fietspad (los van de weg), maar geen fietspad afzonderlijk getekend naast deze weg."
+ }
+ },
+ {
+ "if": "cycleway=seperate",
+ "then": {
+ "en": "There is a seperately drawn cycleway",
+ "nl": "Er is een apart getekend fietspad."
+ }
+ },
+ {
+ "if": "cyclestreet=yes",
+ "then": {
+ "nl": "Dit is een fietsstraat.",
+ "en": "This is a cyclestreet."
+ }
+ },
+ {
+ "if": "cycleway=",
+ "then": {
+ "en": "There is no cycleway",
+ "nl": "Er is geen fietspad"
+ },
+ "hideInAnswer": true
+ }
+ ],
+ "render": {
+ "en": "Unknown cycleway situation",
+ "nl": "Onbekende fietspad situatie"
+ }
+ }
+ ]
+ },
+ {
+ "id": "barriers",
+ "name": {
+ "en": "Barriers",
+ "nl": "Barrières"
+ },
+ "description": {
+ "en": "Obstacles while cycling, such as bollards and cycle barriers",
+ "nl": "Hindernissen tijdens het fietsen, zoals paaltjes en fietshekjes"
+ },
+ "source": {
+ "osmTags": {
+ "or": ["barrier=bollard", "barrier=cycle_barrier"]
+ }
+ },
+ "minzoom": 14,
+ "title": {
+ "render": {
+ "en": "Barrier",
+ "nl": "Barrière"
+ }
+ },
+ "icon": "./assets/svg/barrier.svg",
+ "width": "5",
"tagRenderings": []
}
- ],
- "overrideAll": {
- "+tagRenderings": [
- {
- "freeform": {
- "key": "cycleway",
- "addExtraTags": []
- },
- "question": {
- "en": "Is there a cycleway?",
- "nl": "Is er een fietspad?"
- },
- "condition": "highway!=cycleway",
- "mappings": [
- {
- "if": "cycleway=shared_lane",
- "then": {
- "en": "There is a shared lane",
- "nl": "Er is een fietssugestiestrook"
- }
- },
- {
- "if": "cycleway=lane",
- "then": {
- "en": "There is a lane next to the road (seperated with paint)",
- "nl": "Er is een fietspad aangrenzend aan de weg (gescheiden met verf)"
- }
- },
- {
- "if": "cycleway=track",
- "then": {
- "en": "There is a track, but no cycleway drawn seperately from this road on the map.",
- "nl": "Er is een fietspad (los van de weg), maar geen fietspad afzonderlijk getekend naast deze weg."
- }
- },
- {
- "if": "cycleway=seperate",
- "then": {
- "en": "There is a seperately drawn cycleway",
- "nl": "Er is een apart getekend fietspad."
- }
- },
- {
- "if": "cyclestreet=yes",
- "then": {
- "nl": "Dit is een fietsstraat.",
- "en": "This is a cyclestreet."
- }
- },
- {
- "if": "cycleway=",
- "then": {
- "en": "There is no cycleway",
- "nl": "Er is geen fietspad"
- },
- "hideInAnswer": true
- }
- ],
- "render": {
- "en": "Unknown cycleway situation",
- "nl": "Onbekende fietspad situatie"
- }
- },
- {
- "render": {
- "en": "This road has the smoothness {smoothness}",
- "nl": "Deze weg heeft de kwaliteit {smoothness}"
- },
- "freeform": {
- "key": "smoothness",
- "addExtraTags": []
- },
- "condition": {
- "or": ["cycleway=no", "highway=cycleway"]
- },
- "mappings": [
- {
- "if": "smoothness=excellent",
- "then": {
- "en": "Thin Rollers: rollerblade, skateboard"
- }
- },
- {
- "if": "smoothness=good",
- "then": {
- "en": "Thin Wheels: racing bike"
- }
- },
- {
- "if": "smoothness=intermediate",
- "then": {
- "en": "Wheels: city bike, wheelchair, scooter"
- }
- },
- {
- "if": "smoothness=bad",
- "then": {
- "en": "Robust Wheels: trekking bike, car, rickshaw"
- }
- },
- {
- "if": "smoothness=very_bad",
- "then": {
- "en": "High Clearance: light duty off-road vehicle"
- }
- },
- {
- "if": "smoothness=horrible",
- "then": {
- "en": "Off-Road: heavy duty off-road vehicle"
- }
- },
- {
- "if": "smoothness=very_horrible",
- "then": {
- "en": "Specialized off-road: tractor, ATV"
- }
- },
- {
- "if": "smoothness=impassable",
- "then": {
- "en": "Impassable / No wheeled vehicle"
- }
- }
- ],
- "question": {
- "en": "What is the smoothness of this street?",
- "nl": "Wat is de kwaliteit van deze straat?"
- }
- },
- {
- "render": {
- "en": "This road is made of {surface}",
- "nl": "Deze weg is gemaakt van {surface}"
- },
- "freeform": {
- "key": "surface",
- "addExtraTags": []
- },
- "mappings": [
- {
- "if": "surface=wood",
- "then": {
- "en": "This street is made of wood",
- "nl": "Deze weg is gemaakt van hout"
- }
- },
- {
- "if": "surface=concrete",
- "then": {
- "en": "This street is made of concrete",
- "nl": "Deze straat is gemaakt van beton"
- }
- },
- {
- "if": "surface=cobblestone",
- "then": {
- "en": "This street is made of cobblestone",
- "nl": "Deze straat is gemaakt van kasseien"
- }
- },
- {
- "if": "surface=asphalt",
- "then": {
- "en": "This street is made of asphalt",
- "nl": "Deze straat is gemaakt van asfalt"
- }
- },
- {
- "if": "surface=paved",
- "then": {
- "en": "This street is paved",
- "nl": "Deze straat is geplaveid"
- }
- }
- ],
- "question": {
- "en": "What is the surface of the street made from?",
- "nl": "Waaruit is het oppervlak van de straat gemaakt?"
- }
- }
- ]
- }
+ ]
}