Merge branch 'develop' of github.com:pietervdvn/MapComplete into develop
|
@ -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": [
|
||||
{
|
||||
|
@ -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
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
BIN
assets/layers/crossings/crossing_unmarked.png
Normal file
After Width: | Height: | Size: 2.9 KiB |
2
assets/layers/crossings/crossing_unmarked.png.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: StenSoft
|
||||
SPDX-License-Identifier: CC0 1.0
|
|
@ -91,7 +91,8 @@
|
|||
],
|
||||
"location": [
|
||||
"point"
|
||||
]
|
||||
],
|
||||
"anchor": "center"
|
||||
}
|
||||
],
|
||||
"lineRendering": [
|
||||
|
@ -222,49 +223,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 +865,4 @@
|
|||
"enableImproveAccuracy": true,
|
||||
"enableRelocation": false
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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",
|
||||
|
|
BIN
assets/layers/crossings/markings_dashes.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
2
assets/layers/crossings/markings_dashes.png.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Popball
|
||||
SPDX-License-Identifier: CC0 1.0
|
BIN
assets/layers/crossings/markings_dots.png
Normal file
After Width: | Height: | Size: 3.7 KiB |
2
assets/layers/crossings/markings_dots.png.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Popball
|
||||
SPDX-License-Identifier: CC0 1.0
|
BIN
assets/layers/crossings/markings_ladder.png
Normal file
After Width: | Height: | Size: 3 KiB |
2
assets/layers/crossings/markings_ladder.png.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Popball
|
||||
SPDX-License-Identifier: CC0 1.0
|
BIN
assets/layers/crossings/markings_ladder_skewed.png
Normal file
After Width: | Height: | Size: 6.7 KiB |
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Popball
|
||||
SPDX-License-Identifier: CC0 1.0
|
BIN
assets/layers/crossings/markings_lines.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
2
assets/layers/crossings/markings_lines.png.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Popball
|
||||
SPDX-License-Identifier: CC0 1.0
|
BIN
assets/layers/crossings/markings_lines_paired.png
Normal file
After Width: | Height: | Size: 3.6 KiB |
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Popball
|
||||
SPDX-License-Identifier: CC0 1.0
|
BIN
assets/layers/crossings/markings_surface.png
Normal file
After Width: | Height: | Size: 3 KiB |
2
assets/layers/crossings/markings_surface.png.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Popball
|
||||
SPDX-License-Identifier: CC0 1.0
|
BIN
assets/layers/crossings/markings_zebra.png
Normal file
After Width: | Height: | Size: 3.1 KiB |
2
assets/layers/crossings/markings_zebra.png.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Popball
|
||||
SPDX-License-Identifier: CC0 1.0
|
BIN
assets/layers/crossings/markings_zebra_bicolour.png
Normal file
After Width: | Height: | Size: 3.2 KiB |
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Popball
|
||||
SPDX-License-Identifier: CC0 1.0
|
BIN
assets/layers/crossings/markings_zebra_double.png
Normal file
After Width: | Height: | Size: 3.3 KiB |
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Popball
|
||||
SPDX-License-Identifier: CC0 1.0
|
148
assets/layers/cyclist_waiting_aid/cyclist_waiting_aid.json
Normal file
|
@ -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"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
10
assets/layers/cyclist_waiting_aid/license_info.json
Normal file
|
@ -0,0 +1,10 @@
|
|||
[
|
||||
{
|
||||
"path": "waiting_aid.svg",
|
||||
"license": "CC0-1.0",
|
||||
"authors": [
|
||||
"Robin van der Linde"
|
||||
],
|
||||
"sources": []
|
||||
}
|
||||
]
|
21
assets/layers/cyclist_waiting_aid/waiting_aid.svg
Normal file
|
@ -0,0 +1,21 @@
|
|||
<svg width="314" height="374" viewBox="0 0 314 374" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<g clip-path="url(#clip0_1_2)">
|
||||
<path d="M157 0C70.2969 0 0.0117188 70.1211 0.0117188 156.621C0.0117188 231.017 52.0255 293.253 121.742 309.223L147.246 364.684C152.957 377.105 170.652 377.105 176.367 364.684L203.199 306.334C267.352 286.654 313.988 227.075 313.988 156.621C313.988 70.1211 243.703 0 157 0Z" fill="#538EE8"/>
|
||||
<line x1="48.5355" y1="202.464" x2="90.9619" y2="244.891" stroke="white" stroke-width="10"/>
|
||||
<line x1="90.9619" y1="167.536" x2="48.5355" y2="209.962" stroke="white" stroke-width="10"/>
|
||||
<line x1="200.536" y1="216.464" x2="242.962" y2="258.891" stroke="white" stroke-width="10"/>
|
||||
<line x1="242.962" y1="181.536" x2="200.536" y2="223.962" stroke="white" stroke-width="10"/>
|
||||
<path d="M59 197L213 210" stroke="white" stroke-width="10"/>
|
||||
<path d="M84 74L246 85" stroke="white" stroke-width="10"/>
|
||||
<path d="M89 172V72" stroke="white" stroke-width="10"/>
|
||||
<path d="M241 185V85" stroke="white" stroke-width="10"/>
|
||||
<path d="M66 190L220 203" stroke="white" stroke-width="10"/>
|
||||
<path d="M73 184L227 197" stroke="white" stroke-width="10"/>
|
||||
<path d="M81 177L235 190" stroke="white" stroke-width="10"/>
|
||||
</g>
|
||||
<defs>
|
||||
<clipPath id="clip0_1_2">
|
||||
<rect width="314" height="374" fill="white"/>
|
||||
</clipPath>
|
||||
</defs>
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Robin van der Linde
|
||||
SPDX-License-Identifier: CC0-1.0
|
|
@ -69,4 +69,4 @@
|
|||
"images"
|
||||
],
|
||||
"allowMove": false
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
146
assets/layers/tactile_map/tactile_map.json
Normal file
|
@ -0,0 +1,146 @@
|
|||
{
|
||||
"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": "circle",
|
||||
"color": "white"
|
||||
},
|
||||
{
|
||||
"icon": "./assets/themes/maps/logo.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",
|
||||
"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",
|
||||
"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}"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"website"
|
||||
]
|
||||
}
|
10
assets/layers/tactile_model/license_info.json
Normal file
|
@ -0,0 +1,10 @@
|
|||
[
|
||||
{
|
||||
"path": "tactile_model.svg",
|
||||
"license": "CC0-1.0",
|
||||
"authors": [
|
||||
"Robin van der Linde"
|
||||
],
|
||||
"sources": []
|
||||
}
|
||||
]
|
157
assets/layers/tactile_model/tactile_model.json
Normal file
|
@ -0,0 +1,157 @@
|
|||
{
|
||||
"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",
|
||||
"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",
|
||||
"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}."
|
||||
}
|
||||
},
|
||||
"website"
|
||||
]
|
||||
}
|
26
assets/layers/tactile_model/tactile_model.svg
Normal file
|
@ -0,0 +1,26 @@
|
|||
<svg width="500" height="500" viewBox="0 0 500 500" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<circle cx="250" cy="250" r="250" fill="#555555"/>
|
||||
<ellipse cx="250" cy="288" rx="200" ry="150" fill="#977A59"/>
|
||||
<rect x="201.286" y="259.14" width="97.4286" height="92.8598" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<rect x="226" y="167" width="48" height="68" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<rect x="249" y="92" width="2" height="28" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<rect x="243" y="103" width="14" height="2" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<path d="M202.165 257.818L250 209.423L297.835 257.818H202.165Z" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<path d="M225.654 166.818L250 119.197L274.346 166.818H225.654Z" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<rect x="96" y="301" width="58" height="68" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<path d="M96.7832 299.5L125 264.591L153.217 299.5H96.7832Z" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<rect x="161" y="291" width="58" height="68" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<path d="M161.783 289.5L190 254.591L218.217 289.5H161.783Z" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<rect x="131" y="326" width="58" height="68" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<path d="M131.783 324.5L160 289.591L188.217 324.5H131.783Z" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<rect x="178" y="341" width="58" height="68" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<path d="M178.783 339.5L207 304.591L235.217 339.5H178.783Z" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<rect x="-1" y="1" width="58" height="68" transform="matrix(-1 0 0 1 409 300)" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<path d="M409.217 299.5L381 264.591L352.783 299.5H409.217Z" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<rect x="-1" y="1" width="58" height="68" transform="matrix(-1 0 0 1 344 290)" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<path d="M344.217 289.5L316 254.591L287.783 289.5H344.217Z" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<rect x="-1" y="1" width="58" height="68" transform="matrix(-1 0 0 1 374 325)" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<path d="M374.217 324.5L346 289.591L317.783 324.5H374.217Z" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<rect x="-1" y="1" width="58" height="68" transform="matrix(-1 0 0 1 327 340)" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
<path d="M327.217 339.5L299 304.591L270.783 339.5H327.217Z" fill="#896A46" stroke="#6F410D" stroke-width="2"/>
|
||||
</svg>
|
After Width: | Height: | Size: 2.6 KiB |
2
assets/layers/tactile_model/tactile_model.svg.license
Normal file
|
@ -0,0 +1,2 @@
|
|||
SPDX-FileCopyrightText: Robin van der Linde
|
||||
SPDX-License-Identifier: CC0
|
|
@ -117,6 +117,8 @@
|
|||
"minzoom": 17
|
||||
}
|
||||
},
|
||||
"stairs"
|
||||
"stairs",
|
||||
"tactile_map",
|
||||
"tactile_model"
|
||||
]
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
|
@ -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
|
||||
}
|
||||
}
|
||||
],
|
||||
|
|
|
@ -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": {
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -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"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -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"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -479,7 +479,7 @@
|
|||
"tagRenderings": {
|
||||
"support": {
|
||||
"mappings": {
|
||||
"2": {
|
||||
"3": {
|
||||
"then": "Цей годинник є частиною білборду"
|
||||
}
|
||||
}
|
||||
|
@ -1338,4 +1338,4 @@
|
|||
"render": "Утилізація відходів"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
91
scripts/moveImage.ts
Normal file
|
@ -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))
|