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 = " image/svg+xml " 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?" - } - } - ] - } + ] }