From 9675d37a509c7457e5e757af0e819959017db991 Mon Sep 17 00:00:00 2001 From: Robin van der Linde Date: Sun, 27 Oct 2024 22:17:58 +0100 Subject: [PATCH 01/10] Add panoramax to items_with_image layer --- .../layers/item_with_image/item_with_image.json | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/assets/layers/item_with_image/item_with_image.json b/assets/layers/item_with_image/item_with_image.json index 5d52bfc634..70b8b61126 100644 --- a/assets/layers/item_with_image/item_with_image.json +++ b/assets/layers/item_with_image/item_with_image.json @@ -19,7 +19,19 @@ "image:7~*", "image:8~*", "image:9~*", - "image:10~*" + "image:10~*", + "panoramax~*", + "panoramax:0~*", + "panoramax:1~*", + "panoramax:2~*", + "panoramax:3~*", + "panoramax:4~*", + "panoramax:5~*", + "panoramax:6~*", + "panoramax:7~*", + "panoramax:8~*", + "panoramax:9~*", + "panoramax:10~*" ] } }, @@ -56,4 +68,4 @@ "images" ], "allowMove": false -} +} \ No newline at end of file From faece7619b50b2b01b84749cc7966727548a3655 Mon Sep 17 00:00:00 2001 From: Robin van der Linde Date: Sun, 27 Oct 2024 23:50:19 +0100 Subject: [PATCH 02/10] Add cyclist waiting aid (#1663) --- .../cyclist_waiting_aid.json | 148 ++++++++++++++++++ .../cyclist_waiting_aid/license_info.json | 10 ++ .../cyclist_waiting_aid/waiting_aid.svg | 21 +++ .../waiting_aid.svg.license | 2 + assets/themes/cycle_infra/cycle_infra.json | 21 ++- 5 files changed, 194 insertions(+), 8 deletions(-) create mode 100644 assets/layers/cyclist_waiting_aid/cyclist_waiting_aid.json create mode 100644 assets/layers/cyclist_waiting_aid/license_info.json create mode 100644 assets/layers/cyclist_waiting_aid/waiting_aid.svg create mode 100644 assets/layers/cyclist_waiting_aid/waiting_aid.svg.license diff --git a/assets/layers/cyclist_waiting_aid/cyclist_waiting_aid.json b/assets/layers/cyclist_waiting_aid/cyclist_waiting_aid.json new file mode 100644 index 0000000000..eb6ab3ea3f --- /dev/null +++ b/assets/layers/cyclist_waiting_aid/cyclist_waiting_aid.json @@ -0,0 +1,148 @@ +{ + "credits": "Robin van der Linde", + "pointRendering": [ + { + "location": [ + "point", + "centroid" + ], + "marker": [ + { + "icon": "pin", + "color": "#538EE8" + }, + { + "icon": "./assets/layers/cyclist_waiting_aid/waiting_aid.svg" + } + ], + "anchor": "bottom" + } + ], + "tagRenderings": [ + "images", + { + "question": { + "en": "What kind of components does this waiting aid have?" + }, + "id": "type", + "multiAnswer": true, + "mappings": [ + { + "if": "footrest=yes", + "then": { + "en": "There is a board or peg to rest your foot on here" + }, + "ifnot": "footrest=" + }, + { + "if": "handrest=yes", + "then": { + "en": "There is a rail or a handle to hold on to here" + }, + "ifnot": "handrest=" + } + ] + }, + { + "question": { + "en": "On what side of the road is this located?" + }, + "id": "side", + "mappings": [ + { + "if": "side=left", + "then": { + "en": "This waiting aid is located on the left side" + } + }, + { + "if": "side=right", + "then": { + "en": "This waiting aid is located on the right side" + } + }, + { + "if": "side=both", + "then": { + "en": "There are waiting aids on both sides of the road" + } + } + ] + }, + { + "condition": "direction~*", + "id": "direction", + "mappings": [ + { + "if": "direction=forward", + "then": { + "en": "This waiting aid can be used when going forward on this way" + } + }, + { + "if": "direction=backward", + "then": { + "en": "This waiting aid can be used when going backward on this way" + } + } + ], + "render": { + "en": "This waiting aid can be used when going in {direction} direction" + } + } + ], + "lineRendering": [ + { + "width": 1, + "color": "blue" + } + ], + "credits:uid": 5093765, + "id": "cyclist_waiting_aid", + "description": { + "en": "Various pieces of infrastructure that aid cyclists while they wait at a traffic light." + }, + "source": { + "osmTags": "highway=cyclist_waiting_aid" + }, + "name": { + "en": "Cyclist Waiting Aids" + }, + "title": { + "render": { + "en": "Cyclist Waiting Aid" + } + }, + "deletion": { + "softDeletionTags": { + "and": [ + "highway=", + "side=", + "footrest=", + "handrest=", + "material=", + "height=", + "support=", + "count=", + "capacity=" + ] + } + }, + "allowMove": false, + "presets": [ + { + "title": { + "en": "a cyclist waiting aid" + }, + "tags": [ + "highway=cyclist_waiting_aid" + ], + "description": { + "en": "A footrest, handrail or other aid, to improve comfort while waiting at traffic lights" + }, + "snapToLayer": [ + "cycleways_and_roads" + ] + } + ] +} \ No newline at end of file diff --git a/assets/layers/cyclist_waiting_aid/license_info.json b/assets/layers/cyclist_waiting_aid/license_info.json new file mode 100644 index 0000000000..45b87f4def --- /dev/null +++ b/assets/layers/cyclist_waiting_aid/license_info.json @@ -0,0 +1,10 @@ +[ + { + "path": "waiting_aid.svg", + "license": "CC0-1.0", + "authors": [ + "Robin van der Linde" + ], + "sources": [] + } +] \ No newline at end of file diff --git a/assets/layers/cyclist_waiting_aid/waiting_aid.svg b/assets/layers/cyclist_waiting_aid/waiting_aid.svg new file mode 100644 index 0000000000..f154e0c64b --- /dev/null +++ b/assets/layers/cyclist_waiting_aid/waiting_aid.svg @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/layers/cyclist_waiting_aid/waiting_aid.svg.license b/assets/layers/cyclist_waiting_aid/waiting_aid.svg.license new file mode 100644 index 0000000000..2c50b69814 --- /dev/null +++ b/assets/layers/cyclist_waiting_aid/waiting_aid.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Robin van der Linde +SPDX-License-Identifier: CC0 \ No newline at end of file diff --git a/assets/themes/cycle_infra/cycle_infra.json b/assets/themes/cycle_infra/cycle_infra.json index 638efa2abc..4e50ccfec8 100644 --- a/assets/themes/cycle_infra/cycle_infra.json +++ b/assets/themes/cycle_infra/cycle_infra.json @@ -56,13 +56,18 @@ "startLon": 3.75, "hideFromOverview": false, "layers": [ - "cycleways_and_roads", - "barrier", - "crossings", - "bicycle_counter" + { + "builtin": [ + "cycleways_and_roads", + "barrier", + "crossings", + "bicycle_counter", + "cyclist_waiting_aid" + ], + "override": { + "minzoom": 16 + } + } ], - "overrideAll": { - "minzoom": 16 - }, "enableDownload": true -} +} \ No newline at end of file From 8d181c183a9fcf4eb6ba8d48bb8005dcd3e97e9d Mon Sep 17 00:00:00 2001 From: Robin van der Linde Date: Mon, 28 Oct 2024 00:25:21 +0100 Subject: [PATCH 03/10] Add self_service and automated to bike wash (#2203) --- .../layers/bike_cleaning/bike_cleaning.json | 61 ++++++++++++++++--- 1 file changed, 52 insertions(+), 9 deletions(-) diff --git a/assets/layers/bike_cleaning/bike_cleaning.json b/assets/layers/bike_cleaning/bike_cleaning.json index fedd79d623..7297efcde9 100644 --- a/assets/layers/bike_cleaning/bike_cleaning.json +++ b/assets/layers/bike_cleaning/bike_cleaning.json @@ -34,8 +34,7 @@ "or": [ "service:bicycle:cleaning=yes", "service:bicycle:cleaning=diy", - "amenity=bicycle_wash", - "amenity=bike_wash" + "amenity=bicycle_wash" ] } }, @@ -83,7 +82,6 @@ "if": { "and": [ "service:bicycle:cleaning~*", - "amenity!=bike_wash", "amenity!=bicycle_wash" ] }, @@ -106,7 +104,6 @@ ] } ], - "lineRendering": [], "presets": [ { "title": { @@ -158,7 +155,6 @@ }, "condition": { "and": [ - "amenity!=bike_wash", "amenity!=bicycle_wash", "service:bicycle:cleaning!=no", "service:bicycle:cleaning!=" @@ -169,7 +165,7 @@ "addExtraTags": [ "service:bicycle:cleaning:fee=yes" ], - "inline": true + "inline": false }, "mappings": [ { @@ -212,7 +208,7 @@ "hideInAnswer": true } ], - "id": "bike_cleaning-service_bicycle_cleaning_charge" + "id": "bike_cleaning-service:bicycle:cleaning:charge" }, { "question": { @@ -241,7 +237,6 @@ }, "condition": { "or": [ - "amenity=bike_wash", "amenity=bicycle_wash" ] }, @@ -285,6 +280,54 @@ } ], "id": "bike_cleaning-charge" + }, + { + "question": { + "en": "Is this bicycle cleaning service automated?", + "nl": "Is dit fietsschoonmaakpunt geautomatiseerd?" + }, + "id": "automated", + "mappings": [ + { + "if": "automated=no", + "then": { + "en": "This is a manual bike washing station", + "nl": "Dit is een handmatig fietsschoonmaakpunt" + } + }, + { + "if": "automated=yes", + "then": { + "en": "This is an automated bike wash", + "nl": "Dit is een automatisch fietsschoonmaakpunt" + } + } + ], + "condition": "amenity=bicycle_wash" + }, + { + "question": { + "nl": "Is dit fietsschoonmaakpunt zelfbediening?", + "en": "Is this cleaning service self-service?" + }, + "id": "self_service", + "mappings": [ + { + "if": "self_service=yes", + "then": { + "nl": "Dit fietsschoonmaakpunt is zelfbediening", + "en": "This cleaning service is self-service" + } + }, + { + "if": "self_service=no", + "then": { + "nl": "Dit fietsschoonmaakpunt wordt bediend door aanwezig personeel", + "en": "This cleaning service is operated by an employee" + } + } + ], + "condition": "amenity=bicycle_wash" } ], "deletion": { @@ -300,4 +343,4 @@ "enableRelocation": false, "enableImproveAccuracy": true } -} +} \ No newline at end of file From ce744128910dc9e2302aa8ec877aeb06a7af1a60 Mon Sep 17 00:00:00 2001 From: Robin van der Linde Date: Tue, 29 Oct 2024 16:02:41 +0100 Subject: [PATCH 04/10] Add `crossing:markings` question, file move script --- assets/layers/crossings/crossing_unmarked.png | Bin 0 -> 2924 bytes .../crossings/crossing_unmarked.png.license | 2 + assets/layers/crossings/crossings.json | 190 +++++++++++++++--- assets/layers/crossings/license_info.json | 110 ++++++++++ assets/layers/crossings/markings_dashes.png | Bin 0 -> 3202 bytes .../crossings/markings_dashes.png.license | 2 + assets/layers/crossings/markings_dots.png | Bin 0 -> 3786 bytes .../crossings/markings_dots.png.license | 2 + assets/layers/crossings/markings_ladder.png | Bin 0 -> 3116 bytes .../crossings/markings_ladder.png.license | 2 + .../crossings/markings_ladder_skewed.png | Bin 0 -> 6834 bytes .../markings_ladder_skewed.png.license | 2 + assets/layers/crossings/markings_lines.png | Bin 0 -> 3352 bytes .../crossings/markings_lines.png.license | 2 + .../crossings/markings_lines_paired.png | Bin 0 -> 3726 bytes .../markings_lines_paired.png.license | 2 + assets/layers/crossings/markings_surface.png | Bin 0 -> 3036 bytes .../crossings/markings_surface.png.license | 2 + assets/layers/crossings/markings_zebra.png | Bin 0 -> 3193 bytes .../crossings/markings_zebra.png.license | 2 + .../crossings/markings_zebra_bicolour.png | Bin 0 -> 3312 bytes .../markings_zebra_bicolour.png.license | 2 + .../crossings/markings_zebra_double.png | Bin 0 -> 3371 bytes .../markings_zebra_double.png.license | 2 + .../waiting_aid.svg.license | 2 +- scripts/moveImage.ts | 91 +++++++++ 26 files changed, 385 insertions(+), 30 deletions(-) create mode 100644 assets/layers/crossings/crossing_unmarked.png create mode 100644 assets/layers/crossings/crossing_unmarked.png.license create mode 100644 assets/layers/crossings/markings_dashes.png create mode 100644 assets/layers/crossings/markings_dashes.png.license create mode 100644 assets/layers/crossings/markings_dots.png create mode 100644 assets/layers/crossings/markings_dots.png.license create mode 100644 assets/layers/crossings/markings_ladder.png create mode 100644 assets/layers/crossings/markings_ladder.png.license create mode 100644 assets/layers/crossings/markings_ladder_skewed.png create mode 100644 assets/layers/crossings/markings_ladder_skewed.png.license create mode 100644 assets/layers/crossings/markings_lines.png create mode 100644 assets/layers/crossings/markings_lines.png.license create mode 100644 assets/layers/crossings/markings_lines_paired.png create mode 100644 assets/layers/crossings/markings_lines_paired.png.license create mode 100644 assets/layers/crossings/markings_surface.png create mode 100644 assets/layers/crossings/markings_surface.png.license create mode 100644 assets/layers/crossings/markings_zebra.png create mode 100644 assets/layers/crossings/markings_zebra.png.license create mode 100644 assets/layers/crossings/markings_zebra_bicolour.png create mode 100644 assets/layers/crossings/markings_zebra_bicolour.png.license create mode 100644 assets/layers/crossings/markings_zebra_double.png create mode 100644 assets/layers/crossings/markings_zebra_double.png.license create mode 100644 scripts/moveImage.ts diff --git a/assets/layers/crossings/crossing_unmarked.png b/assets/layers/crossings/crossing_unmarked.png new file mode 100644 index 0000000000000000000000000000000000000000..629009d322b44b61b351539b66c93b6d65d2d10e GIT binary patch literal 2924 zcmeAS@N?(olHy`uVBq!ia0y~yV2S`?4mP03zO)&4fD~teM`SSr1K$x4W}K?cC(XdX zE$8Xt7*a9k?X``*(TpN(7rjrwMqSQqSa^U&ss?vAFmV}Sy5yQeHkXb4wc>NI7^ zSqAz3L(g?S+<#Xmu3ta@ewwR&{oV7|^Y5ppJu9#{Q?@&{_+QQ(zvVaIe>XPXeEV(M z=9@JiTp7-s(K&5&{BdF0pM&4O{FmRe_ord}y7ggq|Nr??u>IA8Pe0PH+A=)Yquam# z`O8nGSI_#dUdPBVhp~~BK|mPj6T?x)XdsNHgwb3unhQpA!DucR%>|>mU^ExdJQw_C ZXN%LEx$yaUC1CTJ!PC{xWt~$(699V_&+`BP literal 0 HcmV?d00001 diff --git a/assets/layers/crossings/crossing_unmarked.png.license b/assets/layers/crossings/crossing_unmarked.png.license new file mode 100644 index 0000000000..8bbbce0634 --- /dev/null +++ b/assets/layers/crossings/crossing_unmarked.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: StenSoft +SPDX-License-Identifier: CC0 1.0 \ No newline at end of file diff --git a/assets/layers/crossings/crossings.json b/assets/layers/crossings/crossings.json index 2cd743b98e..f4b7d45948 100644 --- a/assets/layers/crossings/crossings.json +++ b/assets/layers/crossings/crossings.json @@ -222,49 +222,181 @@ "fr": "Passage piéton sans marquages", "ca": "Creuament sense senyalitzar", "cs": "Přechod bez označení přechodu" - } + }, + "hideInAnswer": true } ] }, { - "id": "crossing-is-zebra", + "id": "markings", "question": { - "en": "Is this is a zebra crossing?", - "nl": "Is dit een zebrapad?", - "de": "Ist das ein Zebrastreifen?", - "es": "¿Esto es un paso de cebra?", - "fr": "Est-ce un passage piéton ?", - "ca": "Açò és un pas de vianants?", - "pl": "Czy to jest przejście dla pieszych typu \"zebra\"?", - "cs": "Jedná se o zebra přechod?" + "en": "What kind of markings does this crossing have?", + "nl": "Wat voor markering heeft deze oversteekplaats?" }, - "condition": "crossing=uncontrolled", "mappings": [ { - "if": "crossing_ref=zebra", + "if": "crossing:markings=no", "then": { - "en": "This is a zebra crossing", - "nl": "Dit is een zebrapad", - "de": "Dies ist ein Zebrastreifen", - "es": "Esto es un paso de cebra", - "fr": "C'est un passage piéton", - "ca": "Açò és un pas de vianants", - "cs": "Toto je zebra přechod" + "en": "This crossing has no markings", + "nl": "Deze oversteekplaats heeft geen markeringen" + }, + "icon": { + "class": "large", + "path": "./assets/layers/crossings/crossing_unmarked.png" } }, { - "if": "crossing_ref=", + "if": "crossing:markings=zebra", "then": { - "en": "This is not a zebra crossing", - "nl": "Dit is geen zebrapad", - "de": "Dies ist kein Zebrastreifen", - "es": "Esto no es un paso de cebra", - "fr": "Ce n'est pas un passage piéton", - "ca": "Açò no és un pas de vianants", - "cs": "Tohle není zebra přechod" + "en": "This crossing has zebra markings", + "nl": "Deze oversteekplaats heeft een zebramarkering" + }, + "icon": { + "class": "large", + "path": "./assets/layers/crossings/markings_zebra.png" + } + }, + { + "hideInAnswer": true, + "then": { + "en": "This crossing has markings of an unknown type", + "nl": "Deze oversteekplaats heeft markeringen van een onbekend type" + }, + "if": "crossing:markings=yes" + }, + { + "if": "crossing:markings=lines", + "then": { + "en": "This crossings has lines on either side of the crossing", + "nl": "Deze oversteekplaats heeft lijnen aan beide kanten van de oversteekplaats" + }, + "icon": { + "class": "large", + "path": "./assets/layers/crossings/markings_lines.png" + } + }, + { + "if": "crossing:markings=ladder", + "then": { + "en": "This crossing has lines on either side of the crossing, along with bars connecting them", + "nl": "Deze oversteekplaats heeft lijnen aan beide kanten van de oversteekplaats, met strepen die ze verbinden" + }, + "icon": { + "class": "large", + "path": "./assets/layers/crossings/markings_ladder.png" + } + }, + { + "if": "crossing:markings=dashes", + "then": { + "en": "This crossing has dashed lines on either sides of the crossing", + "nl": "Deze oversteekplaats heeft onderbroken lijnen aan beide kanten van de oversteekplaats" + }, + "icon": { + "class": "large", + "path": "./assets/layers/crossings/markings_dashes.png" + } + }, + { + "if": "crossing:markings=dots", + "then": { + "en": "This crossing has dotted lines on either sides of the crossing", + "nl": "Deze oversteekplaats heeft stippellijnen aan beide kanten van de oversteekplaats" + }, + "icon": { + "class": "large", + "path": "./assets/layers/crossings/markings_dots.png" + } + }, + { + "if": "crossing:markings=surface", + "then": { + "en": "This crossing is marked by using a different coloured surface", + "nl": "Deze oversteekplaats is gemarkeerd door een anders gekleurd wegdek" + }, + "icon": { + "class": "large", + "path": "./assets/layers/crossings/markings_surface.png" + } + }, + { + "if": "crossing:markings=ladder:skewed", + "then": { + "en": "This crossing has lines on either side of the crossing, along with angled bars connecting them", + "nl": "Deze oversteekplaats heeft lijnen aan beide kanten van de oversteekplaats, met schuine strepen die ze verbinden" + }, + "icon": { + "class": "large", + "path": "./assets/layers/crossings/markings_ladder_skewed.png" + } + }, + { + "if": "crossing:markings=zebra:paired", + "then": { + "en": "This crossing has zebra markings with an interruption in every bar", + "nl": "Deze oversteekplaats heeft zebramarkeringen met een onderbreking van elke streep" + } + }, + { + "if": "crossing:markings=zebra:bicolour", + "then": { + "en": "This crossing has zebra markings in alternating colours", + "nl": "Deze oversteekplaats heeft een zebramarkering in afwisselende kleuren" + }, + "icon": { + "class": "large", + "path": "./assets/layers/crossings/markings_zebra_bicolour.png" + } + }, + { + "if": "crossing:markings=zebra:double", + "then": { + "en": "This crossing has double zebra markings", + "nl": "Deze oversteekplaats heeft een dubbele zebramarkering" + }, + "icon": { + "class": "large", + "path": "./assets/layers/crossings/markings_zebra_double.png" + } + }, + { + "if": "crossing:markings=pictograms", + "then": { + "en": "This crossing has pictograms on the road", + "nl": "Deze oversteekplaats heeft pictogrammen op de weg" + } + }, + { + "if": "crossing:markings=ladder:paired", + "then": { + "en": "This crossing has lines on either side of the crossing, along with bars connecting them, with an interruption in every bar", + "nl": "Deze oversteekplaats heeft lijnen aan beide kanten van de oversteekplaats, met strepen die ze verbinden, met een onderbreking van elke streep" + } + }, + { + "if": "crossing:markings=lines:paired", + "then": { + "en": "This crossing has double lines on either side of the crossing", + "nl": "Deze oversteekplaats heeft dubbele lijnen aan beide kanten van de oversteekplaats" + }, + "icon": { + "class": "large", + "path": "./assets/layers/crossings/markings_lines_paired.png" } } - ] + ], + "render": { + "en": "This crossing has {crossing:markings} markings", + "nl": "Deze oversteekplaats heeft {crossing:markings} markeringen" + }, + "freeform": { + "key": "crossing:markings", + "type": "string", + "addExtraTags": [ + "fixme=Free-form value used in MapComplete for crossing:markings" + ] + }, + "multiAnswer": true }, { "id": "crossing-bicycle-allowed", @@ -732,4 +864,4 @@ "enableImproveAccuracy": true, "enableRelocation": false } -} +} \ No newline at end of file diff --git a/assets/layers/crossings/license_info.json b/assets/layers/crossings/license_info.json index 22105ed136..cfed79075b 100644 --- a/assets/layers/crossings/license_info.json +++ b/assets/layers/crossings/license_info.json @@ -39,6 +39,116 @@ "https://wiki.openstreetmap.org/wiki/File:Vibrating_button_illustration.jpg" ] }, + { + "path": "crossing_unmarked.png", + "license": "CC0 1.0", + "authors": [ + "StenSoft" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Crossing_without_markings.png" + ] + }, + { + "path": "markings_dashes.png", + "license": "CC0 1.0", + "authors": [ + "Popball" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Markings_dashes.png" + ] + }, + { + "path": "markings_dots.png", + "license": "CC0 1.0", + "authors": [ + "Popball" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Markings_dots.png" + ] + }, + { + "path": "markings_ladder.png", + "license": "CC0 1.0", + "authors": [ + "Popball" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Markings_ladder.png" + ] + }, + { + "path": "markings_ladder_skewed.png", + "license": "CC0 1.0", + "authors": [ + "Popball" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Markings_adder_skewed.png" + ] + }, + { + "path": "markings_lines.png", + "license": "CC0 1.0", + "authors": [ + "Popball" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Markings_lines.png" + ] + }, + { + "path": "markings_lines_paired.png", + "license": "CC0 1.0", + "authors": [ + "Popball" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Markings_lines_paired.png" + ] + }, + { + "path": "markings_surface.png", + "license": "CC0 1.0", + "authors": [ + "Popball" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Surface_crossing_markings.png" + ] + }, + { + "path": "markings_zebra.png", + "license": "CC0 1.0", + "authors": [ + "Popball" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Markings_zebra.png" + ] + }, + { + "path": "markings_zebra_bicolour.png", + "license": "CC0 1.0", + "authors": [ + "Popball" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Markings_zebra_bicolour.png" + ] + }, + { + "path": "markings_zebra_double.png", + "license": "CC0 1.0", + "authors": [ + "Popball" + ], + "sources": [ + "https://wiki.openstreetmap.org/wiki/File:Crossing_markings_zebra_double.png" + ] + }, { "path": "pedestrian_crossing.svg", "license": "CC-BY-SA-4.0", diff --git a/assets/layers/crossings/markings_dashes.png b/assets/layers/crossings/markings_dashes.png new file mode 100644 index 0000000000000000000000000000000000000000..e562679c1d81d8a0bf53d9b0557fe04f4997f856 GIT binary patch literal 3202 zcmeAS@N?(olHy`uVBq!ia0y~yV2S`?4mP03zO)&4fD}uylV=DA5Y%v_bO8CB1s;*b z3=G^mK$y{PlY}@>P_o1|q9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysW>i?cD zjv*Cu-rm@ltCA|y{*eEPmCRag2bCX_ggbLzYB}zfb`%uo)h)78khb1=VY*C-!9?zl z6N3)Cp1Jj}4ey_Svr^(}@BjV%J>I@Y^zXOh^QX_>Uo-cZMDnaFZgO84g%~d-=Hi<4=ZM;W7m zFq#r@=YqMpwG8VI-@SYHn);fo$Z3YYm$jmI-_4WhKOVZx@95vZe`h?eoVs@Q?Ae92 zwR=xpTRCG{rq1b2r>;FLkPsIaU!60z>u=ruubg|B;x;faBr$O_D5z0^ksd97;Pr<4 z@3-4MJR3Fb==WO3&o=#)^S0YPKD%r0-n+k8EIg@dAGO>)Y7P|>!DwJo9+=>aR8U^N z{VV6{sA;J_m$#g{mbYE{_~XK+PRa#-+Y~_AD(XK7ReCQmti~Ql~eq*;HyF zbL{BRqgv6+llI@wuVq@_Adb5TA-Rsdaq}Ac2dg*Vf3Nkg*gP%uV{QBeoAb%@p07P$ yu{ke4f4d!{-y~|aAe2I+Nafj5YQNa8bPwi!*gxPe>rGDXx#ynT z+?<^AIrlbxMLN7?bL3_K0JdZw$@~TYHqzDv6NFk6C2ce46j+&&or^(79p==J==y_- zBgZQNAVjt%8`AGZgrmkCRavwu3bUk&U3j(_V6)lrrx|6HP+>)JJo9X+XgMts0Ja{^ z&ODG?({7w1G+}c$s$Se5{hY^ZIrR04;6P>(go$IRGLAplJM`$0@NU*G+HI1&+t1-| ziM(CMLWjbG4h3l&C5;#1T`}{Uj(xZfs*7R7p6Ta#9-sKAQyQ%QR zc|X^uS5C~;nl2_neAeQh*Ch%?LyJWTibNuvb!iOZ<47H8DN*MauEfq^F5qB?$D&q& z%t0KyLP#F-HEdgbsph77g-UO=W#?NeW7cCM2B*{@m-KL+slKA+D)7+sTpZqkue2=Q z36?um0Ve|h2R0Oq9*(yO2;J^i{6YBtWP+r%n0^62+_-&rSBKA{CJK#4qZqur6&pz= zdadIErqX-vguLoB0$+(a3|}Rur&Q~D?kFM$1_mfeQFSXr=2y3bB<*vJ25cHBLg4A? zX_;@;-OVr<4E(am-ecP2TI;LiI>*Ympea0|Il947h`?r@N=0}(lUNOvm6ajR8Ejx! z|H3mW{bubdI;;;0rTw{OLc_Uw(_u3|})nC%swd^_VCnnmSF!l&Oo~}qkWzbMIBMk|U=cBU6 z9ob(FLC_TSNIQ|+Fh#w9`=JxF0XVxc1lal6T>vQZEB+w(GvPl~AiZY@sVJ>6kA!!3 z_{PXY0eh~Vjlc+k(CG9|Imy;np~67vobxZB?4}$w5j|x@TqBY@4K$wKa>^OV=>k#W=%YG<&^XF{mc`JhHd5 zoNmUTb5TT5>z8-lmBn_GZr)fYAun*k@D78)Q8fksVo)a}rhBpfAW+qe1$UF$+vF13 z9+Z$Smy4E{Cz7+w^CL^V>Ng92NaXU=>VpNWI8P?#y>#}x@e| z907u$?v^n9hMeVf+19t67QO1xPj|ljS>4@|_r|VaCb&2E8{HuiS z#AGt3CS~P#JRT}7EnQPJ8qKI8qi7wCekS_cfWH^M=LdnEEP_o1|q9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysW>Xn`@ zjv*Cu-rm`mE91`4c5&lDs~as3T|$&BZo0I}ury7KX_1lTJGS)Qfs2f@HEh(T%(~&E z;mRb#!Sf_PpY={P>zO|{>t-a>|NQgbet$3bug~lEzqhlqdwX0WdH?t$JLvj zd;YniqCz6M$I$okj=g*DRtPdA_iWTTJ>z+0&qM1S%l_A~|F8J^`*8dB_vfbX`Ty+a z&(q7j<9>WQ`}*U@k1r>MGckm}c{}_1@8{3;#rJ-`-hGdap@5Y|jKRStfsx_JC}T7b zMpMFo<$^b9uNl|mZ@=A}IcwWI#sd<`^PU@?|9s6jVy3tbL&J;%Obi{IxEVh$z7VyL z>wjEgwYKQn!-9yXckGmF>PeV_D{FN&6=S7CE*L>o?X%f6G7p@BQrOm1jQhId$`o4KX?9OuyUu10O47 zmR|-M#n59oE%jy@&sx>MUot=#m-~mikRnTxweM-dJ2(TH3;Raze_^=;YXiNqb4m0Y6t9 z&edyO;8&Z|&!FP<$66#AcY3ni=L+Y2fBgNwPMN(nW>I(jqMLp@&o5_Q%;l`j7tY+* zNNFTj4X`7xdH(7t^4j>%6CdPwUJaS&S9^c|$3wr)+wYL`(Faq%PG1*Sbup&lD)rWJ z*&#`W?yh3WLfWR|d(~yp1B_<9rfZETWjItn%1Y9!itl@T`|Y=d5;xzlqQ;AJ2(+7M zdxb2h8231wN7H8dX1s|>D5?0+W5YFW7fthy^LlRMt|vNm+0VLxD7_*HdE=+=IN8$D z!jd(OF_UOTT3AsybZi>Vwm+$Q?C6IH2{Pe`@C>ySam5L6vmlgp_MW)?J8YeBD;L|? z;eI(qe+RemfnX}`%Q)f`+(&p04)>$W+hK15@)jZg8(i3)**IlbDVEc?pdRBvBv1}a zHQ>{i`{);Z)Sn~tQ10p++HjFuh1+=dbnyTpi|E?jr5ok)#H}o;aG0bn50%w`AaMzK ziXJdU`IeDS=>I_|Ew9+75JvLKmBcs)xn)@avg>k{>CV)86Vj?&8DaZdrCtI zXI5lY%9=l(h%a_=v?DDlo=dL5ooP>{Ihr%wO? ziHRize@|hHsD|va3Cw~Kgdfn2#1=A&=Pxl_^pHJAETqr zHL5xY!1yS)234mXoJh!VmoS^;7x(f@l^)u(rdP%s*yqDit)-C($L6khP0(;8Qp@%*^F*4Xq*R3=_U}S)l2@mK=YceG- zAcp90J4?=Q9g!aP=}a#&=K`=U#csB@hx=01sa#EYc{%#3vB(k`>^%CiPj$;ejqn=A zFSTvipI-I(M4nw-Z4!unktYls#B1$y=*t!rZzy=J9N5O=HZr;?XMmVzKV~LHA3VgBL1RQ>EAGK*#OcUw_y#eNMG~a=*KID#FZrOuh zaW%ea1AEGDzWLfxTN-u}6*DcinnSN!;|UT-RY%9iU$VkY!wwjlChtt#QnnqXAoqV> zkSHu%VVMp0TzcJIRftiZ@!AkOo7`i6&l=s6r5cRpY7RTPk%xwctR?_)@A_q{II?C( zxE0ANeLSJ(za&?#_3k9FQ@r^eM1)H@l zjyN-868(%ATc;By6*1gY1k&1;nlx}T<`x4TH$VbDS)O{)Dt-!Zfj~z$|2+~ROHM&( zwCXv2>6}TGl8J??C7krXSr9J=H1Hn4Sp=-%iMwhLM07Pa*fMrK>Hw}W`) zGfV?nv{^@2Tjl5oW&t;{lw{uC7XYh>%02OAHM&fz9m4EriwI#ZQCU^h4(P9|1F1AI z^x5mzyR*hs-*GiZ95G)>4Km6P`>b9<&}SGglX~$~<7Icg{>_W~k#hW8h*86Z;FB0} zle(%c7JSGAnT*Sx73P;WGBQF@4@=2PQe0enW6>J3jlmr<*Tv1&Nw}wp&}cS-w77!m-^U@8qL)Q7TZ%lU`Be8jV<9HCZbGpFC_5KDE&86Cm<;f0`r9 z)IYiO&7{9!LU|1Ch`32|Q1p@ruC=23gQBaVn@s|}*8VbGVM^67ex8nP{{Yf8R$B8+ ztE|yedD&xoEzuy|L3B87a`k2*Cikg>-M?3IIFC`?*pNhYV7jB#rX6h(_P>-!M86-H z4xR@(;*03AtyYXCI{eGL;`^}T3$uaDfc?EO?{6A7nFW_A@HMfknvb?!DH3TTxa0~b z!Yrx4$cE#NnU8xKY*u1k{qz`faWYIHV|qlJZDscOCV_gLfO{dp+Sft$n9%doh@kFBHl9>r1%fV`SBf~djX^BlbNfOF;N=bIG=E2^3L7dhCON9A2zs7|XzO0FtxXK;D;_*}kV+M# zQmK5I&E<(=9BX#KG@fL$P0?~c3d>IF?Jz#x-qZUw5)?O4Qy3ZnfR5$?$sZbld-uN9 z46*bbmf^WMD{N0adp)zgnyRT1*C2WtFIBq9lBEjF1-Yvn7T2ltf<6p5@;D{_m zGzcpbWq(n+K;naqST{wVZqm_t}v0RqZrvI1!FM9}I%n+Gi(4_dv+ zZ5Zl&qt?g7#j%gBE+Q*i!8+kYlViN`_-54md99$AF+z*@O(G(eNRbaPT_*&Ph>8c5 ziJ}$?+Wr*Pp(3tmMAkZ)S{Fc3P5pWOmh%=hKc}*?1s%l<$6uQa24u#Hp^sP*^+VUq zj1&F<5A zi>2w1K-iOezPD}&28#*WOC_bH6dnPZS0`t{Au_JIVm+wGb^2GR#z8cp*2epf24>bU5PX zZK|;k-4?i>!jm4Qf(F%}_`+I)oS^}MG`Ds_heKBSBz1OlrawPQw&<#x>jbW!dUZ^; z1>g}D0(W*1$F|<&%SID=VU7ZL#L7s1W(Aa)S)=_@t1@#rxJyNKbtk+aHC9{jhIA62 zphKyrw(3~=aHJ6F4t;bc3DJA$2fQRHOI(k(gBxlo<0^%7!PJ!rXkSAf>f1H8;Sb)V zK4P_o1|q9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~yqm2A-*& zE{-7;bKc&y?TZeTXn2@>{N$M&C2o(|E)yk|a9s2`?4=QOP-(%erg^d#c6myQWE#!V z<1U!4^z~0lQt$-@N5&Ul_j1_#*MF^b*E^RT>m3*K@6+eYh6~@<|9Sc4>w59$$vuU2 zb#{LK{>x?R4esr!G>+R_WqM5F@tZd}Hg$h0p7ku`|Z2CQ<(Sve0BQcuj}2K?o15qZ)UIGXLCQVeDb*%KPz5_2MioK z3=K05Ffnv+jxt6AVKgO>k_*;8i(`1OUPe~7mz`hE$0&X0o&V)$A3uKVd2Vxz-tmhU zFW!6JV|Z+_d;hVlt^c!AHb(SJo;-Q)dCBCSt68RUb~QV$ONNJsC-04WU&{7bID-Ab z)6>%*AMFD^N4@`YcE*jo6O27VmABi9c=@~#!`lL z>((7R-Y@?=j+ue4?S29y!x0uS1_z%}#%LgnrUZ;!kYoCt>COGm&(9yfyxbp{XBrHT zJ$?E#V*T~v^#|v1u3`T0=H}+YvNE&pQVczYV%f7w#lmb}URB4!Qj#V~lf`njxgN@xNA$>IBY literal 0 HcmV?d00001 diff --git a/assets/layers/crossings/markings_lines.png.license b/assets/layers/crossings/markings_lines.png.license new file mode 100644 index 0000000000..09b78e1373 --- /dev/null +++ b/assets/layers/crossings/markings_lines.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Popball +SPDX-License-Identifier: CC0 1.0 \ No newline at end of file diff --git a/assets/layers/crossings/markings_lines_paired.png b/assets/layers/crossings/markings_lines_paired.png new file mode 100644 index 0000000000000000000000000000000000000000..f33af47db6b9c1480ee01a1f7afe48e137d8185d GIT binary patch literal 3726 zcmeHKdrVtZ96p6QUIWH(yax`V#7NjW9s%W{69R+*%Q_j#ghGYNU=&JeyIO%ww=rR$ z5_zPo{DH0^Oqs(`Dl4>sUX0K-$g@IuSPN-s%cK-q+7)k^5MpAoKm2dK$;tih$w|I* zzI(p!{LbxjsR@quUiJV0$E3u#^8i?7n49e(xTinAc@BOd%g!WSu!SF*?MKz{w_Qo% z`(*$)^qLzY=Anl>-04Y-&mf}l`9yLKArFwr34+Wk=hJEcFP{o6e)qi#7Jwi3|$bJ73y7#xIxzKlW z5s}vqW8dg0YJBc_{&Q8z`rzKvB8FP1|w zDe#qg&8#8Hq!tKN18bV91)5f-TN-XtYrX{BfK9>0?0zvJcrX{(+ZH6m)iX`}-;DukCiBPsvY z)FmTC#^{I0{OmH5af-lhom}{>mBH9PwiK`^*>=&vw8QS%G?ex*poG#?)}Y!h2vjw5 zt^N&$Lrd_%!NHJ9rGjyy-Vc6OSXWHQ-IF$*nf{$^`!p`K2s!<~>;tL^RYXHX%( zb+x3gBe297ITi3kLSDGDHn3Bn@C3D}sZ}j3qRjz;E$)30-D^3zp5y!`F@3oby|P;b zu@)-c+RwPP^_`xr7^PZW$Ki0yX5{gBGh%TI6}k_nTy0<)15Uce<&F7uqh15M@D_5) zdUHcQUP>UGHanhp$sf6AbSk$Pk7qIf*CxoVW_Rqtd5vPdd>^nSpOu%EqWV(Mv&Af_ zLU9=mwX&;MBYS4enZPfU4TjSN6Rs6ag8UGnPzdSu`U&)IrW#~T*^tR(iinBvO-M*U zix8OFAG5lK<#PE%NH6w3LcsXN6GZ0s=~C_LH1^R4cLoOsJ632v@pDm)BQlr}2bXzD zl_~{Jcqb<(2xc_TLa)gjkr5gzlQl|l_uiW2%(l9QhK3Ft;I>PTp4cmxrmUCo1z@?b zZtKRF3tV`juDt|~xSBzI0foCva-QPz`O5H=E6*Kw55+~0SS*f+jcudalM^w~n6-J1 zx4~eL>U0#JP_o1|q9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysW>PSx) z$B>FSZ*M3T2?vO@UE~fvDfOuPfPqBN;e@PRLM|dYOd%}uWD}CLf`d1Nm|vC^nVS@O zV7kkfIlOo7@6Es0ec!%*&s^nSpWgod^y^uft?}l#_31lfc`qrqkXU;r* z`cy}(TUehdAuVnD?Xzi{XG*?*p!oMcUtP`rysuwBFMn(Je*W9<{`>nXKfF48H0J&t zxz8#LA9`YIcSOAZ?(e?$=cg6d85rg#q!a@4w!? zyQi|k;wukB+Ow;VALsblHZ^~49?iX@CD&;2jXxJa^3VC7KmWw)_}MZy%)I%w%=r8F zP_o1|q9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~ysW>TjMd zjv*Cu-ri93k1dxu{_ww;j9lk|#nV(%u9!F{NX0S8Z5C*{(d2m5WVS-fnFVR<;tD#V zJ)JN4J{0t@nRf2n_u_ZH4=dvi{QTEvHGj_ge}8|kmp{hz_uKLLx8?0??c|etK7ana zaqr%}Cw_)Me)cR)Mpm}h@Ys#JcV%C{e(k-Fqrvc4MMZ_g_3PJ@dF~(7{QKYf$7g?g zxxfEj>zjAqiLb2t_vyS6`~AJO#&&hT_MGr!cpzH+{oC1}pFdA;&8ypg!IYsP+#!LH z;RuTugM-f~V>A#(Q^H`(1!2=_8Sb}rcXxZv|NrHSiJzaJ+TDogXzAt4mru^SbN_z- z=FOWu&CSfsj~_gEaEbKx?c0;hX8Z2ixOubjw{PFn?(W#NOX~B_noGTZ|Nh;$b*t&i zV^5zx-LZT3?2^YnepKY-@>n~+{IOTBUM-PsZ*QM$H-Gv;c^!s^ z83&jcIygreqk%A*60qii8>cq$Ke$~`QL*EV@V;A*A3yG{=-<72xA;dnV8%Q1{B!F3 zk5|(+-<)wa?X=zF)pO_0)&1RabN~PV literal 0 HcmV?d00001 diff --git a/assets/layers/crossings/markings_zebra.png.license b/assets/layers/crossings/markings_zebra.png.license new file mode 100644 index 0000000000..09b78e1373 --- /dev/null +++ b/assets/layers/crossings/markings_zebra.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Popball +SPDX-License-Identifier: CC0 1.0 \ No newline at end of file diff --git a/assets/layers/crossings/markings_zebra_bicolour.png b/assets/layers/crossings/markings_zebra_bicolour.png new file mode 100644 index 0000000000000000000000000000000000000000..2e77a1996630e35e551cf38bea89657863854a9b GIT binary patch literal 3312 zcmeAS@N?(olHy`uVBq!ia0y~yV2S`?4mP03zO)&4fD}uylV=DA5Y%v_bO8CB1s;*b z3=G^mK$y{PlY}@>P_o1|q9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~yqm2A*6` z7srr_Id5-l%#KZEXn*LhY0)uZVYdjEAj|eJFY(~^122MT=X8*pwXl$*quKkFmdfMm;v;tFf6RUOo%eZB+&k_5{lCB6 zv2dGT|MTjtzwP~H$0U-|)6>_iT`T+ik9Tr@etu4FZm;379TguRS=9dea>Se|p~rBZ zeZAegdwZ>qeUOb=R$tFR_Ei3`%^NfdHOZ|p5OfPvd>i*J_zmJ zQkVGr!Goh4^Y&G($!1{CXKZ9;5D*3ioZ%>AG!RBp!eGn=)`nkMXB>Nbd;9c#8zXd% z<(OH2y17-`zJL3@KgBQ0cT~MTH1YX#{dl?8uU~uLpMN$jd1Hi(mHqc`@{b?)*G2yN zH&;IF_+Itpd~?^YS<@qJo~Kj$|K;W7$>rtWPo$fh%k@sZ{y*;3zkl)Td$V^x@2}am zaiih6dA7T+`~?;_b$@@|xPRZiH`+K$D%h#D_-LLt7uHw&|CksDcy?S-y-o1Oj z{AK5t>-kwz_hj>W`@e-RfA9bI@7RvY=VvCK-?n}G@mH^2U3$M^=gys9c>h)ZX&x#$ZT^1F%#wP$`Taj@>~8*hoUVTSYPz`E?fdud&;KL4V_S9I zrN4LY-u3+c-qzCe9T4CAm$Y#PP^Kz-*Zl($$!F3wdw%~}|CwKm!NDhik>Lo-C}T7b gMpMFI&INDey{eikm}*wG1A8Y7p00i_>zopr02b-tKmY&$ literal 0 HcmV?d00001 diff --git a/assets/layers/crossings/markings_zebra_bicolour.png.license b/assets/layers/crossings/markings_zebra_bicolour.png.license new file mode 100644 index 0000000000..09b78e1373 --- /dev/null +++ b/assets/layers/crossings/markings_zebra_bicolour.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Popball +SPDX-License-Identifier: CC0 1.0 \ No newline at end of file diff --git a/assets/layers/crossings/markings_zebra_double.png b/assets/layers/crossings/markings_zebra_double.png new file mode 100644 index 0000000000000000000000000000000000000000..6ab4c3a0bb5b2a6a2de1a48129da4c877dda8981 GIT binary patch literal 3371 zcmeAS@N?(olHy`uVBq!ia0y~yV2S`?4mP03zO)&4fD}uylV=DA5Y%v_bO8CB1s;*b z3=G^mK$y{PlY}@>P_o1|q9iy!t)x7$D3zhSyj(9cFS|H7u^?41zbJk7I~yqm2A&n3 zE{-7;bKc%q=$~3H*Z%OnnT1Uei`>?mEpM)vxb|fJVE!=U>{*tLv$F#vHfiT^taQ8@ zbN7MUoKu+|w^qFtR9=7F@A|dRa(Qi)^Xwng>~o)M{ye|_&!5Zpk8}Sz|G%#0_v!Wf z@AeoTJA3wQ#qV!#z0cK~+SUEBxVOLF{+Pt$ySvLDpPg-Py^o{8@Ys(pFE9W2@bIw2 z;qn5%`oDa2|IgR&`Tu_Z|F0iazkj!@|M&U(beTU7cjq71-~aF1q{$2i!r!#N-?#VY zpP%Q&@BVq_dL0-(OibJi3Thh|7?MUAqk%A*5>Rr%w(YN(e;D1lckkS6`Ox?CkokW|_V|cJbmx3w!(drH>yzOk8vQb)>nUpWm^UFJG>a{{H=Y z@~mZ%=I73xJNEJ8$2HQxLM3_g%`>|S3kwbT`1#ZC?%1_U>h{~RYrU^uzuvfizy0fD zNgHQ;{kezlUjie;5f(892cJ>Ka0!H*{Ojx=QX_Q4cH2F?x$XAb)fN3`(>`n61Evu} z-^=UHS8V%QWqa-QR}kxJ*4Ed;LZ_b=T~|LKaadl5p<&JeCWa19AY;ZrFmBvi$N%7T zL3OqD>(BG&%{x}Kb57~w2M-cr;^NNj`uO9AMcC@AYoy)X-5>w?Q**7iy}f;7+|Ni}3Bi(&8>Du$pRzI3q83crZb-H2WC}Wre!p6O^@&~3TZj5;It0nz*-uCs6 zY|Un$1!joMS;tI#ciTO_3Csr(>#u`Yz?8Ml-$Q5m>Dc)U$vpMIwn`C7DLvYH8EwLi gHeXS5!GCt+J&Sox)TnO;c5E0tUHx3vIVCg!06X6?^Z)<= literal 0 HcmV?d00001 diff --git a/assets/layers/crossings/markings_zebra_double.png.license b/assets/layers/crossings/markings_zebra_double.png.license new file mode 100644 index 0000000000..09b78e1373 --- /dev/null +++ b/assets/layers/crossings/markings_zebra_double.png.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Popball +SPDX-License-Identifier: CC0 1.0 \ No newline at end of file diff --git a/assets/layers/cyclist_waiting_aid/waiting_aid.svg.license b/assets/layers/cyclist_waiting_aid/waiting_aid.svg.license index 2c50b69814..75299f8845 100644 --- a/assets/layers/cyclist_waiting_aid/waiting_aid.svg.license +++ b/assets/layers/cyclist_waiting_aid/waiting_aid.svg.license @@ -1,2 +1,2 @@ SPDX-FileCopyrightText: Robin van der Linde -SPDX-License-Identifier: CC0 \ No newline at end of file +SPDX-License-Identifier: CC0-1.0 \ No newline at end of file diff --git a/scripts/moveImage.ts b/scripts/moveImage.ts new file mode 100644 index 0000000000..989883eee6 --- /dev/null +++ b/scripts/moveImage.ts @@ -0,0 +1,91 @@ +import { existsSync, renameSync, readFileSync, writeFileSync } from "fs" +import SmallLicense from "../src/Models/smallLicense" + +/** + * Script to move/rename image files + * Useful after downloading images from wikimedia commons + * Apart from moving the image files, this will also update the license file + * + * This will NOT update any images in the theme + */ + +function main(args: string[]) { + // Check if the correct number of arguments are passed + if (args.length != 2) { + console.log("Usage: moveImage.ts oldPath newPath") + console.log("You passed in the arguments: " + args.join(",")) + console.log("Example: npx vite-node scripts/moveImage.ts images/old.jpg images/new.jpg") + return + } + const [oldPath, newPath] = args + + // Check if the oldPath exists + if (!existsSync(oldPath)) { + console.log("The oldPath does not exist: " + oldPath) + return + } + + // Move file + renameSync(oldPath, newPath) + + // If it exists also move the .license file + const oldLicensePath = oldPath + ".license" + if (existsSync(oldLicensePath)) { + const newLicensePath = newPath + ".license" + renameSync(oldLicensePath, newLicensePath) + } + + console.log("Moved file from " + oldPath + " to " + newPath) + + // Open license_info.json in the same directory as the old file + const licensePath = oldPath.replace(/\/[^/]+$/, "/license_info.json") + if (!existsSync(licensePath)) { + console.log( + "The license file does not exist: " + + licensePath + + ". Skipping writing to license file." + ) + return + } + + // Read license file + const licenseFile = readFileSync(licensePath, "utf8") + const licenseInfo = JSON.parse(licenseFile) as SmallLicense[] + + // Find correct license item + const licenseItem = licenseInfo.find((item) => item.path === oldPath.replace(/.*\//, "")) + + // Filter out license item + const newLicenseInfo = licenseInfo.filter((item) => item.path !== oldPath.replace(/.*\//, "")) + const newLicenseFile = JSON.stringify(newLicenseInfo, null, 2) + + // Write new license file + writeFileSync(licensePath, newLicenseFile) + + // Look for a license_info.json file in the new path + const newLicensePath = newPath.replace(/\/[^/]+$/, "/license_info.json") + if (!existsSync(newLicensePath) && licenseItem) { + console.log("License file doesn't exist yet, creating new one: " + newLicensePath) + + // Create new license item + const newLicenseItem = licenseItem + newLicenseItem.path = newPath.replace(/.*\//, "") + + // Create file + writeFileSync(newLicensePath, JSON.stringify([newLicenseItem], null, 2)) + } else if (licenseItem) { + console.log("Appending to existing license file: " + newLicensePath) + + // Create new license item + const newLicenseItem = licenseItem + newLicenseItem.path = newPath.replace(/.*\//, "") + + // Append to existing file + const newLicenseFile = readFileSync(newLicensePath, "utf8") + const newLicenseInfo = JSON.parse(newLicenseFile) as SmallLicense[] + newLicenseInfo.push(newLicenseItem) + writeFileSync(newLicensePath, JSON.stringify(newLicenseInfo, null, 2)) + } +} + +main(process.argv.slice(2)) From 1fbc0ca8a8fb42aea85ff5a63d1fed417d4392cb Mon Sep 17 00:00:00 2001 From: Robin van der Linde Date: Tue, 29 Oct 2024 16:22:57 +0100 Subject: [PATCH 05/10] Move crossing icon to center --- assets/layers/crossings/crossings.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/assets/layers/crossings/crossings.json b/assets/layers/crossings/crossings.json index f4b7d45948..57d7f554d0 100644 --- a/assets/layers/crossings/crossings.json +++ b/assets/layers/crossings/crossings.json @@ -91,7 +91,8 @@ ], "location": [ "point" - ] + ], + "anchor": "center" } ], "lineRendering": [ From 9d1d78416c4b1ecd2fd28aa17bb30c32475ee49e Mon Sep 17 00:00:00 2001 From: Robin van der Linde Date: Tue, 29 Oct 2024 16:35:38 +0100 Subject: [PATCH 06/10] Restore ID --- assets/layers/bike_cleaning/bike_cleaning.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/assets/layers/bike_cleaning/bike_cleaning.json b/assets/layers/bike_cleaning/bike_cleaning.json index 7297efcde9..fe85d1eccd 100644 --- a/assets/layers/bike_cleaning/bike_cleaning.json +++ b/assets/layers/bike_cleaning/bike_cleaning.json @@ -208,7 +208,7 @@ "hideInAnswer": true } ], - "id": "bike_cleaning-service:bicycle:cleaning:charge" + "id": "bike_cleaning-service_bicycle_cleaning_charge" }, { "question": { From 605990fcc1445cac0b822b6ded56dbf7d345fb11 Mon Sep 17 00:00:00 2001 From: Robin van der Linde Date: Tue, 29 Oct 2024 20:53:27 +0100 Subject: [PATCH 07/10] Exclude non-rainbow crossings from count --- assets/themes/rainbow_crossings/rainbow_crossings.json | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/assets/themes/rainbow_crossings/rainbow_crossings.json b/assets/themes/rainbow_crossings/rainbow_crossings.json index 5c5795e4e9..c3ac9effab 100644 --- a/assets/themes/rainbow_crossings/rainbow_crossings.json +++ b/assets/themes/rainbow_crossings/rainbow_crossings.json @@ -47,12 +47,18 @@ } } }, - "rainbow_crossings", + { + "builtin": "rainbow_crossings", + "override": { + "isCounted": false + } + }, { "builtin": "cycleways_and_roads", "override": { "minzoom": 18, - "name": null + "name": null, + "isCounted": false } } ], From 988d0bc913e8b21900b587a34f328fbcc9d62e21 Mon Sep 17 00:00:00 2001 From: Robin van der Linde Date: Tue, 29 Oct 2024 21:33:16 +0100 Subject: [PATCH 08/10] Add extra questions to clock layer (#1962 + #1963) --- assets/layers/clock/clock.json | 61 +++++++++++++++++++++++--- assets/layers/questions/questions.json | 25 ++++++++++- langs/layers/ca.json | 15 +------ langs/layers/cs.json | 6 +-- langs/layers/de.json | 6 +-- langs/layers/en.json | 7 ++- langs/layers/fr.json | 6 +-- langs/layers/nl.json | 7 ++- langs/layers/pl.json | 4 +- langs/layers/uk.json | 4 +- 10 files changed, 104 insertions(+), 37 deletions(-) diff --git a/assets/layers/clock/clock.json b/assets/layers/clock/clock.json index 5c159a5790..20a91e0e62 100644 --- a/assets/layers/clock/clock.json +++ b/assets/layers/clock/clock.json @@ -97,8 +97,8 @@ "support=wall_mounted" ], "title": { - "en": "a wall-mounted clock", - "nl": "een klok aan een muur", + "en": "a wall-mounted clock, mounted using a support perpendicular to the wall", + "nl": "een klok aan een muur, bevestigd met een steun loodrecht op de muur", "de": "eine an der Wand montierte Uhr", "ca": "un rellotge muntat en un paret", "fr": "une horloge fixée au mur", @@ -117,6 +117,23 @@ "snapToLayer": [ "walls_and_buildings" ] + }, + { + "tags": [ + "amenity=clock", + "support=wall" + ], + "title": { + "en": "a wall-mounted clock, mounted directly on a wall", + "nl": "een klok aan een muur, rechtstreeks bevestigd aan een muur" + }, + "description": { + "en": "A publicly visible clock mounted directly on a wall", + "nl": "Een publiekelijk zichtbare klok rechtstreeks bevestigd aan een muur" + }, + "snapToLayer": [ + "walls_and_buildings" + ] } ], "tagRenderings": [ @@ -148,8 +165,8 @@ { "if": "support=wall_mounted", "then": { - "en": "This clock is mounted on a wall", - "nl": "Deze klok is bevestigd aan een muur", + "en": "This clock is mounted on a wall, usually through a support perpendicular to the wall", + "nl": "Deze klok is bevestigd aan een muur, meestal met een steun loodrecht op de muur", "de": "Diese Uhr ist an einer Wand montiert", "ca": "Aquest rellotge està muntat en una paret", "fr": "Cette horloge est fixée sur un mur", @@ -157,6 +174,13 @@ "cs": "Tyto hodiny jsou namontovány na stěně" } }, + { + "if": "support=wall", + "then": { + "en": "This clock is mounted directly on a wall", + "nl": "Deze klok is rechtstreeks aan een muur bevestigd" + } + }, { "if": "support=billboard", "then": { @@ -245,6 +269,30 @@ } ] }, + { + "builtin": "indoor", + "override": { + "question": { + "en": "Is this clock indoors?", + "nl": "Is deze klok binnen?" + }, + "mappings": [ + { + "then": { + "en": "This clock is indoors", + "nl": "Deze klok is binnen" + } + }, + { + "if": "indoor=no", + "then": { + "en": "This clock is outdoors", + "nl": "Deze klok is buiten" + } + } + ] + } + }, { "id": "visibility", "question": { @@ -293,7 +341,8 @@ "cs": "Tyto hodiny jsou viditelné ze vzdálenosti větší než 20 metrů (např. kostelní nebo nádražní hodiny)" } } - ] + ], + "condition": "indoor!=yes" }, { "id": "date", @@ -572,4 +621,4 @@ ], "deletion": true, "allowMove": true -} +} \ No newline at end of file diff --git a/assets/layers/questions/questions.json b/assets/layers/questions/questions.json index 5c3f925326..63029e2a57 100644 --- a/assets/layers/questions/questions.json +++ b/assets/layers/questions/questions.json @@ -2972,7 +2972,30 @@ } } ] + }, + { + "id": "indoor", + "question": { + "en": "Is this object located indoors?", + "nl": "Bevindt dit object zich binnen?" + }, + "mappings": [ + { + "if": "indoor=yes", + "then": { + "en": "This object is located indoors", + "nl": "Dit object bevindt zich binnen" + } + }, + { + "if": "indoor=no", + "then": { + "en": "This object is located outdoors", + "nl": "Dit object bevindt zich buiten" + } + } + ] } ], "allowMove": false -} +} \ No newline at end of file diff --git a/langs/layers/ca.json b/langs/layers/ca.json index e6a5d6c347..dd5b6f42e6 100644 --- a/langs/layers/ca.json +++ b/langs/layers/ca.json @@ -2398,10 +2398,10 @@ "1": { "then": "Aquest rellotge està muntat en una paret" }, - "2": { + "3": { "then": "Aquest rellotge està muntat en una tanca publicitària" }, - "3": { + "4": { "then": "Aquest rellotge està al sòl" } }, @@ -2512,17 +2512,6 @@ }, "question": "Aquest creuament té una illa al mig?" }, - "crossing-is-zebra": { - "mappings": { - "0": { - "then": "Açò és un pas de vianants" - }, - "1": { - "then": "Açò no és un pas de vianants" - } - }, - "question": "Açò és un pas de vianants?" - }, "crossing-minimap": { "mappings": { "0": { diff --git a/langs/layers/cs.json b/langs/layers/cs.json index 2d7870173d..bfe44f4dcc 100644 --- a/langs/layers/cs.json +++ b/langs/layers/cs.json @@ -2752,10 +2752,10 @@ "1": { "then": "Tyto hodiny jsou namontovány na stěně" }, - "2": { + "3": { "then": "Tyto hodiny jsou součástí billboardu" }, - "3": { + "4": { "then": "Tyto hodiny jsou na zemi" } }, @@ -10198,4 +10198,4 @@ "render": "větrná turbína" } } -} +} \ No newline at end of file diff --git a/langs/layers/de.json b/langs/layers/de.json index eb37d7a5fb..fbad2cede4 100644 --- a/langs/layers/de.json +++ b/langs/layers/de.json @@ -3296,10 +3296,10 @@ "1": { "then": "Diese Uhr ist an einer Wand montiert" }, - "2": { + "3": { "then": "Diese Uhr ist Teil einer Werbetafel" }, - "3": { + "4": { "then": "Diese Uhr befindet sich auf dem Boden" } }, @@ -12502,4 +12502,4 @@ "render": "Windrad" } } -} +} \ No newline at end of file diff --git a/langs/layers/en.json b/langs/layers/en.json index 40a36590c3..17e217655f 100644 --- a/langs/layers/en.json +++ b/langs/layers/en.json @@ -3294,12 +3294,15 @@ "then": "This clock is mounted on a pole" }, "1": { - "then": "This clock is mounted on a wall" + "then": "This clock is mounted on a wall, usually through a support perpendicular to the wall" }, "2": { - "then": "This clock is part of a billboard" + "then": "This clock is mounted directly on a wall" }, "3": { + "then": "This clock is part of a billboard" + }, + "4": { "then": "This clock is on the ground" } }, diff --git a/langs/layers/fr.json b/langs/layers/fr.json index 9884fee7b9..11acf1a166 100644 --- a/langs/layers/fr.json +++ b/langs/layers/fr.json @@ -2272,10 +2272,10 @@ "1": { "then": "Cette horloge est fixée sur un mur" }, - "2": { + "3": { "then": "Cette horloge fait partie d'un panneau publicitaire" }, - "3": { + "4": { "then": "Cette horloge est posée au sol" } }, @@ -7567,4 +7567,4 @@ "render": "éolienne" } } -} +} \ No newline at end of file diff --git a/langs/layers/nl.json b/langs/layers/nl.json index a385b3b2ef..50f911246e 100644 --- a/langs/layers/nl.json +++ b/langs/layers/nl.json @@ -2748,12 +2748,15 @@ "then": "Deze klok is bevestigd aan een paal" }, "1": { - "then": "Deze klok is bevestigd aan een muur" + "then": "Deze klok is bevestigd aan een muur, meestal met een steun loodrecht op de muur" }, "2": { - "then": "Deze klok is onderdeel van een reclamebord" + "then": "Deze klok is rechtstreeks aan een muur bevestigd" }, "3": { + "then": "Deze klok is onderdeel van een reclamebord" + }, + "4": { "then": "Deze klok staat op de grond" } }, diff --git a/langs/layers/pl.json b/langs/layers/pl.json index e7ae159eca..218dd46647 100644 --- a/langs/layers/pl.json +++ b/langs/layers/pl.json @@ -1356,10 +1356,10 @@ "1": { "then": "Ten zegar jest zamontowany na ścianie" }, - "2": { + "3": { "then": "Ten zegar jest częścią bilbordu" }, - "3": { + "4": { "then": "Ten zegar jest na ziemi" } }, diff --git a/langs/layers/uk.json b/langs/layers/uk.json index 3a3482d497..7e1437b5cb 100644 --- a/langs/layers/uk.json +++ b/langs/layers/uk.json @@ -479,7 +479,7 @@ "tagRenderings": { "support": { "mappings": { - "2": { + "3": { "then": "Цей годинник є частиною білборду" } } @@ -1338,4 +1338,4 @@ "render": "Утилізація відходів" } } -} +} \ No newline at end of file From ec6cb4eca27ed6c927778882747a7c507e9663f4 Mon Sep 17 00:00:00 2001 From: Robin van der Linde Date: Tue, 29 Oct 2024 22:44:35 +0100 Subject: [PATCH 09/10] Add basic tactile map / model layer (#1853) --- assets/layers/tactile_map/tactile_map.json | 147 ++++++++++++++++ assets/layers/tactile_model/license_info.json | 10 ++ .../layers/tactile_model/tactile_model.json | 162 ++++++++++++++++++ assets/layers/tactile_model/tactile_model.svg | 26 +++ assets/themes/blind_osm/blind_osm.json | 6 +- 5 files changed, 349 insertions(+), 2 deletions(-) create mode 100644 assets/layers/tactile_map/tactile_map.json create mode 100644 assets/layers/tactile_model/license_info.json create mode 100644 assets/layers/tactile_model/tactile_model.json create mode 100644 assets/layers/tactile_model/tactile_model.svg diff --git a/assets/layers/tactile_map/tactile_map.json b/assets/layers/tactile_map/tactile_map.json new file mode 100644 index 0000000000..edb59db4cc --- /dev/null +++ b/assets/layers/tactile_map/tactile_map.json @@ -0,0 +1,147 @@ +{ + "id": "tactile_map", + "name": { + "en": "Tactile Maps" + }, + "description": { + "en": "Layer showing tactile maps, which can be used by visually impaired people to navigate the city." + }, + "source": { + "osmTags": "information=tactile_map" + }, + "title": { + "en": "Tactile Map" + }, + "presets": [ + { + "tags": [ + "tourism=information", + "information=tactile_map" + ], + "title": { + "en": "a tactile map" + }, + "description": { + "en": "A tactile map that can be read using touch. Unlike a tactile model, this is relatively flat and does not feature three-dimensional buildings and such." + } + } + ], + "deletion": true, + "allowMove": true, + "minzoom": 10, + "pointRendering": [ + { + "marker": [ + { + "icon": "./assets/layers/map/map.svg" + } + ], + "location": [ + "point", + "centroid" + ] + } + ], + "tagRenderings": [ + "images", + { + "id": "description", + "question": { + "en": "What does this tactile map show?" + }, + "freeform": { + "key": "blind:description:en", + "placeholder": { + "en": "e.g. Tactile map of the city center" + } + }, + "render": { + "en": "Description: {blind:description:en}." + } + }, + { + "id": "braille", + "question": { + "en": "Is there braille text on this tactile map?" + }, + "mappings": [ + { + "if": "braille=yes", + "then": { + "en": "This tactile map has braille text." + } + }, + { + "if": "braille=no", + "then": { + "en": "This tactile map does not have braille text." + } + } + ] + }, + { + "id": "braille_languages", + "question": { + "en": "In which languages is the braille text on this tactile map?" + }, + "condition": "braille=yes", + "render": { + "special": { + "type": "language_chooser", + "key": "tactile_writing:braille", + "question": { + "en": "In which languages is the braille text on this tactile map?" + }, + "render_list_item": { + "en": "This map has braille text in {language}" + }, + "render_single_language": { + "en": "This map has braille text in {language}" + } + } + } + }, + { + "id": "embossed_letters", + "question": { + "en": "Are there embossed letters on this tactile map?" + }, + "mappings": [ + { + "if": "embossed_letters=yes", + "then": { + "en": "This tactile map has embossed letters." + } + }, + { + "if": "embossed_letters=no", + "then": { + "en": "This tactile map does not have embossed letters." + } + } + ] + }, + { + "id": "embossed_letters_languages", + "question": { + "en": "In which languages are the embossed letters on this tactile map?" + }, + "condition": "embossed_letters=yes", + "render": { + "special": { + "type": "language_chooser", + "key": "tactile_writing:embossed", + "question": { + "en": "In which languages are the embossed letters on this tactile map?" + }, + "render_list_item": { + "en": "This map has embossed letters in {language}" + }, + "render_single_language": { + "en": "This map has embossed letters in {language}" + } + } + } + } + ] +} \ No newline at end of file diff --git a/assets/layers/tactile_model/license_info.json b/assets/layers/tactile_model/license_info.json new file mode 100644 index 0000000000..27bb9d186b --- /dev/null +++ b/assets/layers/tactile_model/license_info.json @@ -0,0 +1,10 @@ +[ + { + "path": "tactile_model.svg", + "license": "CC0", + "authors": [ + "Robin van der Linde" + ], + "sources": [] + } +] \ No newline at end of file diff --git a/assets/layers/tactile_model/tactile_model.json b/assets/layers/tactile_model/tactile_model.json new file mode 100644 index 0000000000..93588e9666 --- /dev/null +++ b/assets/layers/tactile_model/tactile_model.json @@ -0,0 +1,162 @@ +{ + "id": "tactile_model", + "name": { + "en": "Tactile Models" + }, + "description": { + "en": "Layer showing tactile models, three-dimensional models of the surrounding area." + }, + "source": { + "osmTags": "information=tactile_model" + }, + "title": { + "en": "Tactile Model" + }, + "presets": [ + { + "tags": [ + "tourism=information", + "information=tactile_model" + ], + "title": { + "en": "a tactile model" + }, + "description": { + "en": "A tactile model is a three-dimensional model of an area, allowing people to explore/see an area by touch." + } + } + ], + "deletion": true, + "allowMove": true, + "minzoom": 10, + "pointRendering": [ + { + "marker": [ + { + "icon": "./assets/layers/tactile_model/tactile_model.svg" + } + ], + "location": [ + "point", + "centroid" + ] + } + ], + "tagRenderings": [ + "images", + { + "id": "description", + "question": { + "en": "What does this tactile model show?" + }, + "freeform": { + "key": "blind:description:en", + "placeholder": { + "en": "e.g. Tactile model of the city center" + } + }, + "render": { + "en": "Description: {blind:description:en}." + } + }, + { + "id": "braille", + "question": { + "en": "Is there a braille description?" + }, + "mappings": [ + { + "if": "braille=yes", + "then": { + "en": "There is a braille description." + } + }, + { + "if": "braille=no", + "then": { + "en": "There is no braille description." + } + } + ] + }, + { + "id": "braille_languages", + "condition": "braille=yes", + "question": { + "en": "In which languages is the braille description available?" + }, + "render": { + "special": { + "type": "language_chooser", + "key": "tactile_writing:braille", + "question": { + "en": "In which languages is there a braille description?" + }, + "render_list_item": { + "en": "This model has a braille description in {language()}" + }, + "render_single_language": { + "en": "This model has a braille description in {language}" + } + } + } + }, + { + "id": "embossed_letters", + "question": { + "en": "Are there embossed letters describing the model?" + }, + "mappings": [ + { + "if": "embossed_letters=yes", + "then": { + "en": "There are embossed letters describing the model." + } + }, + { + "if": "embossed_letters=no", + "then": { + "en": "There are no embossed letters describing the model." + } + } + ] + }, + { + "id": "embossed_letters_languages", + "condition": "embossed_letters=yes", + "question": { + "en": "In which languages are the embossed letters available?" + }, + "render": { + "special": { + "type": "language_chooser", + "key": "tactile_writing:embossed_letters", + "question": { + "en": "In which languages are there embossed letters?" + }, + "render_list_item": { + "en": "This model has embossed letters in {language()}" + }, + "render_single_language": { + "en": "This model has embossed letters in {language}" + } + } + } + }, + { + "id": "scale", + "question": { + "en": "What scale is the model?" + }, + "freeform": { + "key": "scale", + "placeholder": { + "en": "e.g. 1:1000" + } + }, + "render": { + "en": "The scale of this model is {scale}." + } + } + ] +} \ No newline at end of file diff --git a/assets/layers/tactile_model/tactile_model.svg b/assets/layers/tactile_model/tactile_model.svg new file mode 100644 index 0000000000..e565a43ec2 --- /dev/null +++ b/assets/layers/tactile_model/tactile_model.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/themes/blind_osm/blind_osm.json b/assets/themes/blind_osm/blind_osm.json index ab98fa5da2..b45f9a4fc0 100644 --- a/assets/themes/blind_osm/blind_osm.json +++ b/assets/themes/blind_osm/blind_osm.json @@ -117,6 +117,8 @@ "minzoom": 17 } }, - "stairs" + "stairs", + "tactile_map", + "tactile_model" ] -} +} \ No newline at end of file From e86c4910480b0abdd37f155b0ac94f85ce457f12 Mon Sep 17 00:00:00 2001 From: Robin van der Linde Date: Tue, 29 Oct 2024 23:06:15 +0100 Subject: [PATCH 10/10] Small additions --- assets/layers/tactile_map/tactile_map.json | 15 +++++++-------- assets/layers/tactile_model/license_info.json | 2 +- assets/layers/tactile_model/tactile_model.json | 9 ++------- .../tactile_model/tactile_model.svg.license | 2 ++ 4 files changed, 12 insertions(+), 16 deletions(-) create mode 100644 assets/layers/tactile_model/tactile_model.svg.license diff --git a/assets/layers/tactile_map/tactile_map.json b/assets/layers/tactile_map/tactile_map.json index edb59db4cc..f8fb216acc 100644 --- a/assets/layers/tactile_map/tactile_map.json +++ b/assets/layers/tactile_map/tactile_map.json @@ -33,7 +33,11 @@ { "marker": [ { - "icon": "./assets/layers/map/map.svg" + "icon": "circle", + "color": "white" + }, + { + "icon": "./assets/themes/maps/logo.svg" } ], "location": [ @@ -81,9 +85,6 @@ }, { "id": "braille_languages", - "question": { - "en": "In which languages is the braille text on this tactile map?" - }, "condition": "braille=yes", "render": { "special": { @@ -123,9 +124,6 @@ }, { "id": "embossed_letters_languages", - "question": { - "en": "In which languages are the embossed letters on this tactile map?" - }, "condition": "embossed_letters=yes", "render": { "special": { @@ -142,6 +140,7 @@ } } } - } + }, + "website" ] } \ No newline at end of file diff --git a/assets/layers/tactile_model/license_info.json b/assets/layers/tactile_model/license_info.json index 27bb9d186b..8bf12a33c6 100644 --- a/assets/layers/tactile_model/license_info.json +++ b/assets/layers/tactile_model/license_info.json @@ -1,7 +1,7 @@ [ { "path": "tactile_model.svg", - "license": "CC0", + "license": "CC0-1.0", "authors": [ "Robin van der Linde" ], diff --git a/assets/layers/tactile_model/tactile_model.json b/assets/layers/tactile_model/tactile_model.json index 93588e9666..98d98ead36 100644 --- a/assets/layers/tactile_model/tactile_model.json +++ b/assets/layers/tactile_model/tactile_model.json @@ -82,9 +82,6 @@ { "id": "braille_languages", "condition": "braille=yes", - "question": { - "en": "In which languages is the braille description available?" - }, "render": { "special": { "type": "language_chooser", @@ -124,9 +121,6 @@ { "id": "embossed_letters_languages", "condition": "embossed_letters=yes", - "question": { - "en": "In which languages are the embossed letters available?" - }, "render": { "special": { "type": "language_chooser", @@ -157,6 +151,7 @@ "render": { "en": "The scale of this model is {scale}." } - } + }, + "website" ] } \ No newline at end of file diff --git a/assets/layers/tactile_model/tactile_model.svg.license b/assets/layers/tactile_model/tactile_model.svg.license new file mode 100644 index 0000000000..2c50b69814 --- /dev/null +++ b/assets/layers/tactile_model/tactile_model.svg.license @@ -0,0 +1,2 @@ +SPDX-FileCopyrightText: Robin van der Linde +SPDX-License-Identifier: CC0 \ No newline at end of file