From f4d555753478d00f2fe5dea1af34035c62d7f3da Mon Sep 17 00:00:00 2001 From: Robin van der Linde Date: Wed, 14 Jul 2021 11:40:00 +0200 Subject: [PATCH] Added crossing to bicycle_infra --- Svg.ts | 12 ++- assets/layers/crossings/crossings.json | 99 ++++++++++++++++++++++ assets/svg/license_info.json | 24 +++++- assets/svg/pedestrian_crossing.svg | 11 +++ assets/svg/traffic_lights.svg | 22 +++++ assets/themes/cycle_infra/cycle_infra.json | 10 ++- 6 files changed, 171 insertions(+), 7 deletions(-) create mode 100644 assets/layers/crossings/crossings.json create mode 100644 assets/svg/pedestrian_crossing.svg create mode 100644 assets/svg/traffic_lights.svg diff --git a/Svg.ts b/Svg.ts index 66d15883f..e787d439e 100644 --- a/Svg.ts +++ b/Svg.ts @@ -239,6 +239,11 @@ export default class Svg { public static osm_logo_svg() { return new Img(Svg.osm_logo, true);} public static osm_logo_ui() { return new FixedUiElement(Svg.osm_logo_img);} + public static pedestrian_crossing = " " + public static pedestrian_crossing_img = Img.AsImageElement(Svg.pedestrian_crossing) + public static pedestrian_crossing_svg() { return new Img(Svg.pedestrian_crossing, true);} + public static pedestrian_crossing_ui() { return new FixedUiElement(Svg.pedestrian_crossing_img);} + public static pencil = " " public static pencil_img = Img.AsImageElement(Svg.pencil) public static pencil_svg() { return new Img(Svg.pencil, true);} @@ -319,6 +324,11 @@ export default class Svg { public static statistics_svg() { return new Img(Svg.statistics, true);} public static statistics_ui() { return new FixedUiElement(Svg.statistics_img);} + public static traffic_lights = " " + public static traffic_lights_img = Img.AsImageElement(Svg.traffic_lights) + public static traffic_lights_svg() { return new Img(Svg.traffic_lights, true);} + public static traffic_lights_ui() { return new FixedUiElement(Svg.traffic_lights_img);} + public static translate = " " public static translate_img = Img.AsImageElement(Svg.translate) public static translate_svg() { return new Img(Svg.translate, true);} @@ -344,4 +354,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,"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};} +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,"pedestrian_crossing.svg": Svg.pedestrian_crossing,"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,"traffic_lights.svg": Svg.traffic_lights,"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/layers/crossings/crossings.json b/assets/layers/crossings/crossings.json new file mode 100644 index 000000000..affcb8a65 --- /dev/null +++ b/assets/layers/crossings/crossings.json @@ -0,0 +1,99 @@ +{ + "id": "crossings", + "name": { + "en": "Crossings", + "nl": "Oversteekplaatsen" + }, + "description": { + "en": "Crossings for pedestrians and cyclists", + "nl": "Oversteekplaatsen voor voetgangers en fietsers" + }, + "source": { + "osmTags": { + "or": ["highway=traffic_signals", "highway=crossing"] + } + }, + "minzoom": 14, + "title": { + "render": { + "en": "Crossing", + "nl": "Oversteekplaats" + }, + "mappings": [ + { + "if": "highway=traffic_signals", + "then": { + "en": "Traffic signal", + "nl": "Verkeerslicht" + } + }, + { + "if": "crossing=traffic_signals", + "then": { + "en": "Crossing with traffic signals", + "nl": "Oversteektplaats met verkeerslichten" + } + } + ] + }, + "icon": { + "render": "./assets/svg/pedestrian_crossing.svg", + "mappings": [ + { + "if": { + "or": ["highway=traffic_signals", "crossing=traffic_signals"] + }, + "then": "./assets/svg/traffic_lights.svg" + } + ] + }, + "width": "5", + "tagRenderings": [ + { + "question": { + "en": "What kind of crossing is this?", + "nl": "Wat voor oversteekplaats is dit?" + }, + "condition": "highway=crossing", + "mappings": [ + { + "if": "crossing=uncontrolled", + "then": { + "en": "Crossing, without traffic lights", + "nl": "Oversteekplaats, zonder verkeerslichten" + } + }, + { + "if": "crossing=traffic_signals", + "then": { + "en": "Crossing with traffic signals", + "nl": "Oversteekplaats met verkeerslichten" + } + } + ] + }, + { + "question": { + "en": "Is this crossing also for bicycles?", + "nl": "Is deze oversteekplaats ook voor fietsers" + }, + "condition": "highway=crossing", + "mappings": [ + { + "if": "bicycle=yes", + "then": { + "en": "A cyclist can use this crossing", + "nl": "Een fietser kan deze oversteekplaats gebruiken" + } + }, + { + "if": "bicycle=no", + "then": { + "en": "A cyclist can not use this crossing", + "nl": "Een fietser kan niet deze oversteekplaats gebruiken" + } + } + ] + } + ] +} diff --git a/assets/svg/license_info.json b/assets/svg/license_info.json index ef0b9ac31..53f8dc63a 100644 --- a/assets/svg/license_info.json +++ b/assets/svg/license_info.json @@ -81,10 +81,10 @@ }, { "authors": [ - "westnordost" + "Tobias Zwick" ], "path": "barrier.svg", - "license": "GPL-3.0", + "license": "CC-BY-SA 4.0", "sources": [ "https://github.com/streetcomplete/StreetComplete/blob/master/res/graphics/quest%20icons/barrier.svg" ] @@ -342,6 +342,16 @@ "https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes" ] }, + { + "authors": [ + "Tobias Zwick" + ], + "path": "pedestrian_crossing.svg", + "license": "CC-BY-SA 4.0", + "sources": [ + "https://github.com/streetcomplete/StreetComplete/blob/master/res/graphics/quest%20icons/pedestrian_crossing.svg" + ] + }, { "authors": [], "path": "star.svg", @@ -366,6 +376,16 @@ "license": "CC0; trivial", "sources": [] }, + { + "authors": [ + "Tobias Zwick" + ], + "path": "traffic_lights.svg", + "license": "CC-BY-SA 4.0", + "sources": [ + "https://github.com/streetcomplete/StreetComplete/blob/master/res/graphics/quest%20icons/traffic_lights.svg" + ] + }, { "authors": [], "path": "logo.svg", diff --git a/assets/svg/pedestrian_crossing.svg b/assets/svg/pedestrian_crossing.svg new file mode 100644 index 000000000..843eefbbc --- /dev/null +++ b/assets/svg/pedestrian_crossing.svg @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/assets/svg/traffic_lights.svg b/assets/svg/traffic_lights.svg new file mode 100644 index 000000000..dd1d85637 --- /dev/null +++ b/assets/svg/traffic_lights.svg @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/themes/cycle_infra/cycle_infra.json b/assets/themes/cycle_infra/cycle_infra.json index 1cbf11567..a488a9ba3 100644 --- a/assets/themes/cycle_infra/cycle_infra.json +++ b/assets/themes/cycle_infra/cycle_infra.json @@ -635,15 +635,15 @@ }, { "render": { - "en": "Maximum width: {maxwidth} m", - "nl": "Maximumbreedte: {maxwidth} m" + "en": "Maximum width: {maxwidth:physical} m", + "nl": "Maximumbreedte: {maxwidth:physical} m" }, "question": { "en": "How wide is the gap left over besides the barrier?", "nl": "Hoe breed is de ruimte naast de barrière?" }, "freeform": { - "key": "maxwidth", + "key": "maxwidth:physical", "type": "pfloat" } }, @@ -652,6 +652,7 @@ "en": "What kind of bollard is this?", "nl": "Wat voor soort paal is dit?" }, + "condition": "barrier=bollard", "mappings": [ { "if": "bollard=removable", @@ -691,6 +692,7 @@ ] } ] - } + }, + "crossings" ] }