diff --git a/.vscode/settings.json b/.vscode/settings.json
index e975a613f1..0eedd13233 100644
--- a/.vscode/settings.json
+++ b/.vscode/settings.json
@@ -7,6 +7,41 @@
{
"fileMatch": ["/assets/themes/*/*.json", "!/assets/themes/*/license_info.json"],
"url": "./Docs/Schemas/LayoutConfigJson.schema.json"
+ },
+ {
+ "fileMatch": ["/assets/themes/*/license_info.json", "/assets/layers/*/license_info.json"],
+ "schema": {
+ "type": "array",
+ "title": "License Info",
+ "items": {
+ "type": "object",
+ "properties": {
+ "path": {
+ "type": "string",
+ "description": "Path to the file"
+ },
+ "authors": {
+ "type": "array",
+ "description": "Authors of the file",
+ "items": {
+ "type": "string"
+ }
+ },
+ "license": {
+ "type": "string",
+ "description": "License of the file"
+ },
+ "sources": {
+ "type": "array",
+ "description": "Sources of the file",
+ "items": {
+ "type": "string"
+ }
+ }
+ },
+ "required": ["path", "authors", "license", "sources"]
+ }
+ }
}
],
"editor.tabSize": 2,
diff --git a/assets/layers/elongated_coin/elongated_coin.json b/assets/layers/elongated_coin/elongated_coin.json
index 41e2e5b87b..398b7921f0 100644
--- a/assets/layers/elongated_coin/elongated_coin.json
+++ b/assets/layers/elongated_coin/elongated_coin.json
@@ -18,7 +18,7 @@
"osmTags": {
"and": [
"amenity=vending_machine",
- "vending=elongated_coin"
+ "vending~.*elongated_coin.*"
]
}
},
@@ -440,8 +440,5 @@
"accepts_credit_cards"
],
"deletion": true,
- "allowMove": {
- "enableImproveAccuracy": true,
- "enableRelocation": true
- }
-}
+ "allowMove": true
+}
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/DeimosXL1.jpg b/assets/layers/playground_equipment/DeimosXL1.jpg
new file mode 100644
index 0000000000..c4317cdfc4
Binary files /dev/null and b/assets/layers/playground_equipment/DeimosXL1.jpg differ
diff --git a/assets/layers/playground_equipment/DeimosXL1.jpg.license b/assets/layers/playground_equipment/DeimosXL1.jpg.license
new file mode 100644
index 0000000000..b5361dfb23
--- /dev/null
+++ b/assets/layers/playground_equipment/DeimosXL1.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Damian stawowy
+SPDX-License-Identifier: CC-BY-SA 4.0
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Funnel_ball.jpg b/assets/layers/playground_equipment/Funnel_ball.jpg
new file mode 100644
index 0000000000..68f7554448
Binary files /dev/null and b/assets/layers/playground_equipment/Funnel_ball.jpg differ
diff --git a/assets/layers/playground_equipment/Funnel_ball.jpg.license b/assets/layers/playground_equipment/Funnel_ball.jpg.license
new file mode 100644
index 0000000000..f7f6dc6353
--- /dev/null
+++ b/assets/layers/playground_equipment/Funnel_ball.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Pavtron (talk)
+SPDX-License-Identifier: Public domain
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Hinkelbaan_tegels.jpg b/assets/layers/playground_equipment/Hinkelbaan_tegels.jpg
new file mode 100644
index 0000000000..073112d077
Binary files /dev/null and b/assets/layers/playground_equipment/Hinkelbaan_tegels.jpg differ
diff --git a/assets/layers/playground_equipment/Hinkelbaan_tegels.jpg.license b/assets/layers/playground_equipment/Hinkelbaan_tegels.jpg.license
new file mode 100644
index 0000000000..1c48623467
--- /dev/null
+++ b/assets/layers/playground_equipment/Hinkelbaan_tegels.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: M.Minderhoud
+SPDX-License-Identifier: Public domain
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Hupfkissen.jpg b/assets/layers/playground_equipment/Hupfkissen.jpg
new file mode 100644
index 0000000000..194e215c5f
Binary files /dev/null and b/assets/layers/playground_equipment/Hupfkissen.jpg differ
diff --git a/assets/layers/playground_equipment/Hupfkissen.jpg.license b/assets/layers/playground_equipment/Hupfkissen.jpg.license
new file mode 100644
index 0000000000..1ebe81d598
--- /dev/null
+++ b/assets/layers/playground_equipment/Hupfkissen.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Peter Wanders
+SPDX-License-Identifier: Public domain
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Manually_powered_carousel_on_a_playground_in_Saint-Petersburg.JPG b/assets/layers/playground_equipment/Manually_powered_carousel_on_a_playground_in_Saint-Petersburg.JPG
new file mode 100644
index 0000000000..0eaaddf0d7
Binary files /dev/null and b/assets/layers/playground_equipment/Manually_powered_carousel_on_a_playground_in_Saint-Petersburg.JPG differ
diff --git a/assets/layers/playground_equipment/Manually_powered_carousel_on_a_playground_in_Saint-Petersburg.JPG.license b/assets/layers/playground_equipment/Manually_powered_carousel_on_a_playground_in_Saint-Petersburg.JPG.license
new file mode 100644
index 0000000000..20e81e6eb5
--- /dev/null
+++ b/assets/layers/playground_equipment/Manually_powered_carousel_on_a_playground_in_Saint-Petersburg.JPG.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Reda Kerbouche
+SPDX-License-Identifier: CC-BY-SA 4.0
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Playground_Map,_Washington_Elementary.jpg b/assets/layers/playground_equipment/Playground_Map,_Washington_Elementary.jpg
new file mode 100644
index 0000000000..82dd923be9
Binary files /dev/null and b/assets/layers/playground_equipment/Playground_Map,_Washington_Elementary.jpg differ
diff --git a/assets/layers/playground_equipment/Playground_Map,_Washington_Elementary.jpg.license b/assets/layers/playground_equipment/Playground_Map,_Washington_Elementary.jpg.license
new file mode 100644
index 0000000000..2fedec7838
--- /dev/null
+++ b/assets/layers/playground_equipment/Playground_Map,_Washington_Elementary.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Jleedev
+SPDX-License-Identifier: CC-BY-SA 4.0
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Playground_climbingwall.jpg b/assets/layers/playground_equipment/Playground_climbingwall.jpg
new file mode 100644
index 0000000000..5cbc109db5
Binary files /dev/null and b/assets/layers/playground_equipment/Playground_climbingwall.jpg differ
diff --git a/assets/layers/playground_equipment/Playground_climbingwall.jpg.license b/assets/layers/playground_equipment/Playground_climbingwall.jpg.license
new file mode 100644
index 0000000000..7bceb516ad
--- /dev/null
+++ b/assets/layers/playground_equipment/Playground_climbingwall.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Mktravel
+SPDX-License-Identifier: Public Domain
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Playground_in_Muchall_Park,_Wolverhampton_-_geograph.org.uk_-_2735437.jpg b/assets/layers/playground_equipment/Playground_in_Muchall_Park,_Wolverhampton_-_geograph.org.uk_-_2735437.jpg
new file mode 100644
index 0000000000..409f54d62d
Binary files /dev/null and b/assets/layers/playground_equipment/Playground_in_Muchall_Park,_Wolverhampton_-_geograph.org.uk_-_2735437.jpg differ
diff --git a/assets/layers/playground_equipment/Playground_in_Muchall_Park,_Wolverhampton_-_geograph.org.uk_-_2735437.jpg.license b/assets/layers/playground_equipment/Playground_in_Muchall_Park,_Wolverhampton_-_geograph.org.uk_-_2735437.jpg.license
new file mode 100644
index 0000000000..26950d9bd8
--- /dev/null
+++ b/assets/layers/playground_equipment/Playground_in_Muchall_Park,_Wolverhampton_-_geograph.org.uk_-_2735437.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Roger Kidd
+SPDX-License-Identifier: CC-BY-SA 2.0
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Playground_swing_03.jpg b/assets/layers/playground_equipment/Playground_swing_03.jpg
new file mode 100644
index 0000000000..65faea8384
Binary files /dev/null and b/assets/layers/playground_equipment/Playground_swing_03.jpg differ
diff --git a/assets/layers/playground_equipment/Playground_swing_03.jpg.license b/assets/layers/playground_equipment/Playground_swing_03.jpg.license
new file mode 100644
index 0000000000..6e28763e54
--- /dev/null
+++ b/assets/layers/playground_equipment/Playground_swing_03.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Kritzolina
+SPDX-License-Identifier: CC-BY-SA 4.0
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Playhouse.jpg b/assets/layers/playground_equipment/Playhouse.jpg
new file mode 100644
index 0000000000..8382d5c7ec
Binary files /dev/null and b/assets/layers/playground_equipment/Playhouse.jpg differ
diff --git a/assets/layers/playground_equipment/Playhouse.jpg.license b/assets/layers/playground_equipment/Playhouse.jpg.license
new file mode 100644
index 0000000000..f669d50ad3
--- /dev/null
+++ b/assets/layers/playground_equipment/Playhouse.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Saku
+SPDX-License-Identifier: CC-BY-SA 3.0
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Rekstok.JPG b/assets/layers/playground_equipment/Rekstok.JPG
new file mode 100644
index 0000000000..393a739683
Binary files /dev/null and b/assets/layers/playground_equipment/Rekstok.JPG differ
diff --git a/assets/layers/playground_equipment/Rekstok.JPG.license b/assets/layers/playground_equipment/Rekstok.JPG.license
new file mode 100644
index 0000000000..c537adb048
--- /dev/null
+++ b/assets/layers/playground_equipment/Rekstok.JPG.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: self
+SPDX-License-Identifier: Public domain
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Seesaw-aa.jpg b/assets/layers/playground_equipment/Seesaw-aa.jpg
new file mode 100644
index 0000000000..8c85458ec1
Binary files /dev/null and b/assets/layers/playground_equipment/Seesaw-aa.jpg differ
diff --git a/assets/layers/playground_equipment/Seesaw-aa.jpg.license b/assets/layers/playground_equipment/Seesaw-aa.jpg.license
new file mode 100644
index 0000000000..5d722d6d1f
--- /dev/null
+++ b/assets/layers/playground_equipment/Seesaw-aa.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Itsmine
+SPDX-License-Identifier: Public domain
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Spinning_circle.jpg b/assets/layers/playground_equipment/Spinning_circle.jpg
new file mode 100644
index 0000000000..d951bfaa32
Binary files /dev/null and b/assets/layers/playground_equipment/Spinning_circle.jpg differ
diff --git a/assets/layers/playground_equipment/Spinning_circle.jpg.license b/assets/layers/playground_equipment/Spinning_circle.jpg.license
new file mode 100644
index 0000000000..5116519247
--- /dev/null
+++ b/assets/layers/playground_equipment/Spinning_circle.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Jose1711
+SPDX-License-Identifier: CC0 1.0
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/SunwardCohousingPlayStructure2005.jpg b/assets/layers/playground_equipment/SunwardCohousingPlayStructure2005.jpg
new file mode 100644
index 0000000000..b9f8cda85e
Binary files /dev/null and b/assets/layers/playground_equipment/SunwardCohousingPlayStructure2005.jpg differ
diff --git a/assets/layers/playground_equipment/SunwardCohousingPlayStructure2005.jpg.license b/assets/layers/playground_equipment/SunwardCohousingPlayStructure2005.jpg.license
new file mode 100644
index 0000000000..9f8c82b3b9
--- /dev/null
+++ b/assets/layers/playground_equipment/SunwardCohousingPlayStructure2005.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Mc on avon
+SPDX-License-Identifier: Public domain
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Szwedy_-_plac_zabaw_-_kotko_i_krzyzyk.jpg b/assets/layers/playground_equipment/Szwedy_-_plac_zabaw_-_kotko_i_krzyzyk.jpg
new file mode 100644
index 0000000000..fcf36bc56d
Binary files /dev/null and b/assets/layers/playground_equipment/Szwedy_-_plac_zabaw_-_kotko_i_krzyzyk.jpg differ
diff --git a/assets/layers/playground_equipment/Szwedy_-_plac_zabaw_-_kotko_i_krzyzyk.jpg.license b/assets/layers/playground_equipment/Szwedy_-_plac_zabaw_-_kotko_i_krzyzyk.jpg.license
new file mode 100644
index 0000000000..4cb2963235
--- /dev/null
+++ b/assets/layers/playground_equipment/Szwedy_-_plac_zabaw_-_kotko_i_krzyzyk.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Pece
+SPDX-License-Identifier: CC-BY 3.0
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Teen_shelter_near_former_coastguard_lookout,_Watchet_-_geograph.org.uk_-_1714960.jpg b/assets/layers/playground_equipment/Teen_shelter_near_former_coastguard_lookout,_Watchet_-_geograph.org.uk_-_1714960.jpg
new file mode 100644
index 0000000000..890bbca14a
Binary files /dev/null and b/assets/layers/playground_equipment/Teen_shelter_near_former_coastguard_lookout,_Watchet_-_geograph.org.uk_-_1714960.jpg differ
diff --git a/assets/layers/playground_equipment/Teen_shelter_near_former_coastguard_lookout,_Watchet_-_geograph.org.uk_-_1714960.jpg.license b/assets/layers/playground_equipment/Teen_shelter_near_former_coastguard_lookout,_Watchet_-_geograph.org.uk_-_1714960.jpg.license
new file mode 100644
index 0000000000..45f44de245
--- /dev/null
+++ b/assets/layers/playground_equipment/Teen_shelter_near_former_coastguard_lookout,_Watchet_-_geograph.org.uk_-_1714960.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Phil Champion
+SPDX-License-Identifier: CC-BY-SA 2.0
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Urbeach-high-park-splashpad.jpg b/assets/layers/playground_equipment/Urbeach-high-park-splashpad.jpg
new file mode 100644
index 0000000000..94fc56557d
Binary files /dev/null and b/assets/layers/playground_equipment/Urbeach-high-park-splashpad.jpg differ
diff --git a/assets/layers/playground_equipment/Urbeach-high-park-splashpad.jpg.license b/assets/layers/playground_equipment/Urbeach-high-park-splashpad.jpg.license
new file mode 100644
index 0000000000..1bf123f8f0
--- /dev/null
+++ b/assets/layers/playground_equipment/Urbeach-high-park-splashpad.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Glogger
+SPDX-License-Identifier: CC-BY-SA 3.0
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/Zandbakw.jpg b/assets/layers/playground_equipment/Zandbakw.jpg
new file mode 100644
index 0000000000..9609d86699
Binary files /dev/null and b/assets/layers/playground_equipment/Zandbakw.jpg differ
diff --git a/assets/layers/playground_equipment/Zandbakw.jpg.license b/assets/layers/playground_equipment/Zandbakw.jpg.license
new file mode 100644
index 0000000000..7412736355
--- /dev/null
+++ b/assets/layers/playground_equipment/Zandbakw.jpg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Waerth
+SPDX-License-Identifier: CC-BY-SA 3.0
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/license_info.json b/assets/layers/playground_equipment/license_info.json
new file mode 100644
index 0000000000..c16a117c14
--- /dev/null
+++ b/assets/layers/playground_equipment/license_info.json
@@ -0,0 +1,182 @@
+[
+ {
+ "path": "DeimosXL1.jpg",
+ "license": "CC-BY-SA 4.0",
+ "authors": [
+ "Damian stawowy"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:DeimosXL1.jpg"
+ ]
+ },
+ {
+ "path": "Funnel_ball.jpg",
+ "license": "Public domain",
+ "authors": [
+ "Pavtron (talk)"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Funnel_ball.jpg"
+ ]
+ },
+ {
+ "path": "Hinkelbaan_tegels.jpg",
+ "license": "Public domain",
+ "authors": [
+ "M.Minderhoud"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Hinkelbaan_tegels.jpg"
+ ]
+ },
+ {
+ "path": "Hupfkissen.jpg",
+ "license": "Public domain",
+ "authors": [
+ "Peter Wanders"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:H%C3%BCpfkissen.jpg"
+ ]
+ },
+ {
+ "path": "Manually_powered_carousel_on_a_playground_in_Saint-Petersburg.JPG",
+ "license": "CC-BY-SA 4.0",
+ "authors": [
+ "Reda Kerbouche"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Manually_powered_carousel_on_a_playground_in_Saint-Petersburg.JPG"
+ ]
+ },
+ {
+ "path": "Playground_Map,_Washington_Elementary.jpg",
+ "license": "CC-BY-SA 4.0",
+ "authors": [
+ "Jleedev"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Playground_Map,_Washington_Elementary.jpg"
+ ]
+ },
+ {
+ "path": "Playground_climbingwall.jpg",
+ "license": "Public Domain",
+ "authors": [
+ "Mktravel"
+ ],
+ "sources": [
+ "https://wiki.openstreetmap.org/wiki/File:Playground_climbingwall.jpg"
+ ]
+ },
+ {
+ "path": "Playground_in_Muchall_Park,_Wolverhampton_-_geograph.org.uk_-_2735437.jpg",
+ "license": "CC-BY-SA 2.0",
+ "authors": [
+ "Roger Kidd"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Playground_in_Muchall_Park,_Wolverhampton_-_geograph.org.uk_-_2735437.jpg"
+ ]
+ },
+ {
+ "path": "Playground_swing_03.jpg",
+ "license": "CC-BY-SA 4.0",
+ "authors": [
+ "Kritzolina"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Playground_swing_03.jpg"
+ ]
+ },
+ {
+ "path": "Playhouse.jpg",
+ "license": "CC-BY-SA 3.0",
+ "authors": [
+ "Saku"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Playhouse.jpg"
+ ]
+ },
+ {
+ "path": "Rekstok.JPG",
+ "license": "Public domain",
+ "authors": [
+ "self"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Rekstok.JPG"
+ ]
+ },
+ {
+ "path": "Seesaw-aa.jpg",
+ "license": "Public domain",
+ "authors": [
+ "Itsmine"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Seesaw-aa.jpg"
+ ]
+ },
+ {
+ "path": "Spinning_circle.jpg",
+ "license": "CC0 1.0",
+ "authors": [
+ "Jose1711"
+ ],
+ "sources": [
+ "https://wiki.openstreetmap.org/wiki/File:Spinning_circle.jpg"
+ ]
+ },
+ {
+ "path": "SunwardCohousingPlayStructure2005.jpg",
+ "license": "Public domain",
+ "authors": [
+ "Mc on avon"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:SunwardCohousingPlayStructure2005.jpg"
+ ]
+ },
+ {
+ "path": "Szwedy_-_plac_zabaw_-_kotko_i_krzyzyk.jpg",
+ "license": "CC-BY 3.0",
+ "authors": [
+ "Pece"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Szwedy_-_plac_zabaw_-_k%C3%B3%C5%82ko_i_krzy%C5%BCyk.jpg"
+ ]
+ },
+ {
+ "path": "Teen_shelter_near_former_coastguard_lookout,_Watchet_-_geograph.org.uk_-_1714960.jpg",
+ "license": "CC-BY-SA 2.0",
+ "authors": [
+ "Phil Champion"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Teen_shelter_near_former_coastguard_lookout,_Watchet_-_geograph.org.uk_-_1714960.jpg"
+ ]
+ },
+ {
+ "path": "Urbeach-high-park-splashpad.jpg",
+ "license": "CC-BY-SA 3.0",
+ "authors": [
+ "Glogger"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Urbeach-high-park-splashpad.jpg"
+ ]
+ },
+ {
+ "path": "Zandbakw.jpg",
+ "license": "CC-BY-SA 3.0",
+ "authors": [
+ "Waerth"
+ ],
+ "sources": [
+ "https://commons.wikimedia.org/wiki/File:Zandbakw.jpg"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/assets/layers/playground_equipment/playground_equipment.json b/assets/layers/playground_equipment/playground_equipment.json
new file mode 100644
index 0000000000..9ee9450e4c
--- /dev/null
+++ b/assets/layers/playground_equipment/playground_equipment.json
@@ -0,0 +1,337 @@
+{
+ "minzoom": 18,
+ "pointRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "marker": [
+ {
+ "icon": "circle",
+ "color": "white"
+ },
+ {
+ "icon": "./assets/themes/playgrounds/playground.svg"
+ }
+ ],
+ "iconSize": "20,20"
+ }
+ ],
+ "tagRenderings": [
+ "images",
+ {
+ "render": {
+ "en": "This is a {playground}"
+ },
+ "id": "type",
+ "freeform": {
+ "key": "playground",
+ "placeholder": {
+ "en": "Type of device"
+ },
+ "addExtraTags": [
+ "fixme=Freeform input used"
+ ]
+ },
+ "question": {
+ "en": "What kind of device is this?",
+ "nl": "Wat voor speeltoestel is dit?"
+ },
+ "invalidValues": "playground=yes",
+ "mappings": [
+ {
+ "if": "playground=swing",
+ "then": {
+ "en": "This is a swing",
+ "nl": "Dit is een schommel"
+ }
+ },
+ {
+ "if": "playground=structure",
+ "then": {
+ "en": "This is a structure consisting of several connected playground devices"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/SunwardCohousingPlayStructure2005.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=slide",
+ "then": {
+ "en": "This is a slide"
+ }
+ },
+ {
+ "if": "playground=sandpit",
+ "then": {
+ "en": "This is a sand pit",
+ "nl": "Dit is een zandbak"
+ },
+ "searchTerms": {
+ "en": [
+ "sandbox"
+ ]
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Zandbakw.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=springy",
+ "then": {
+ "en": "This is a spring rider",
+ "nl": "Dit is een veertoestel"
+ },
+ "searchTerms": {
+ "en": [
+ "springy"
+ ],
+ "nl": [
+ "wipkip"
+ ]
+ }
+ },
+ {
+ "if": "playground=climbingframe",
+ "then": {
+ "en": "This is a climbing frame",
+ "nl": "Dit is een klimrek"
+ },
+ "searchTerms": {
+ "en": [
+ "jungle gym",
+ "rope spider"
+ ]
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/DeimosXL1.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=seesaw",
+ "then": {
+ "en": "This is a seesaw",
+ "nl": "Dit is een wipwap"
+ },
+ "searchTerms": {
+ "en": [
+ "teeter-totter",
+ "teeterboard"
+ ]
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Seesaw-aa.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=playhouse",
+ "then": {
+ "en": "This is a playhouse"
+ },
+ "searchTerms": {
+ "en": [
+ "Wendyhouse"
+ ]
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Playhouse.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=roundabout",
+ "then": {
+ "en": "This is a roundabout"
+ },
+ "searchTerms": {
+ "en": [
+ "merry-go-round"
+ ]
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Manually_powered_carousel_on_a_playground_in_Saint-Petersburg.JPG",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=basketswing",
+ "then": {
+ "en": "This is a basket swing"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Playground_swing_03.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=zipwire",
+ "then": {
+ "en": "This is a zip wire"
+ }
+ },
+ {
+ "if": "playground=horizontal_bar",
+ "then": {
+ "en": "This is a horizontal bar",
+ "nl": "Dit is een rekstok"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Rekstok.JPG",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=hopscotch",
+ "then": {
+ "en": "This is a hopscotch"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Hinkelbaan_tegels.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=splash_pad",
+ "then": {
+ "en": "This is a splash pad"
+ },
+ "searchTerms": {
+ "en": "spray pool"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Urbeach-high-park-splashpad.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=climbingwall",
+ "then": {
+ "en": "This is a climbing wall"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Playground_climbingwall.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=map",
+ "then": {
+ "en": "This is a map"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Playground_Map,_Washington_Elementary.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=bridge",
+ "then": {
+ "en": "This is a bridge (either as a standalone device or as part of a larger structure)"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Playground_in_Muchall_Park,_Wolverhampton_-_geograph.org.uk_-_2735437.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=cushion",
+ "then": {
+ "en": "This is a bouncy cushion"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Hupfkissen.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=activitypanel",
+ "then": {
+ "en": "This is an activity panel"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Szwedy_-_plac_zabaw_-_kotko_i_krzyzyk.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=teenshelter",
+ "then": {
+ "en": "This is a teen shelter"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Teen_shelter_near_former_coastguard_lookout,_Watchet_-_geograph.org.uk_-_1714960.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=funnel_ball",
+ "then": {
+ "en": "This is a funnel used to play with funnel ball"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Funnel_ball.jpg",
+ "class": "large"
+ }
+ },
+ {
+ "if": "playground=spinning_circle",
+ "then": {
+ "en": "This is a spinning circle"
+ },
+ "icon": {
+ "path": "./assets/layers/playground_equipment/Spinning_circle.jpg",
+ "class": "large"
+ }
+ }
+ ]
+ },
+ {
+ "builtin": "wheelchair-access",
+ "override": {
+ "question": {
+ "en": "Is this device accessible by wheelchair?"
+ }
+ }
+ }
+ ],
+ "lineRendering": [
+ {
+ "width": 1,
+ "color": "blue"
+ }
+ ],
+ "id": "playground_equipment",
+ "name": {
+ "en": "Playground equipment"
+ },
+ "description": {
+ "en": "Layer showing playground equipment"
+ },
+ "source": {
+ "osmTags": "playground~*"
+ },
+ "title": {
+ "render": {
+ "en": "Playground device"
+ }
+ },
+ "allowMove": true,
+ "presets": [
+ {
+ "tags": [
+ "playground=yes"
+ ],
+ "title": {
+ "en": "a playground device"
+ },
+ "description": {
+ "en": "An exact type is asked later"
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/assets/layers/postoffices/postoffices.json b/assets/layers/postoffices/postoffices.json
index 826b68ca29..69eb6e9f09 100644
--- a/assets/layers/postoffices/postoffices.json
+++ b/assets/layers/postoffices/postoffices.json
@@ -552,6 +552,86 @@
}
],
"filter": [
- "open_now"
+ "open_now",
+ {
+ "id": "letter_from",
+ "options": [
+ {
+ "question": {
+ "en": "Offers letter posting"
+ },
+ "osmTags": {
+ "and": [
+ "post_office:letter_from~*",
+ "post_office:letter_from!~i~no"
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "id": "parcel_from",
+ "options": [
+ {
+ "question": {
+ "en": "Offers parcel posting"
+ },
+ "osmTags": {
+ "and": [
+ "post_office:parcel_from~*",
+ "post_office:parcel_from!~i~no"
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "id": "parcel_pickup",
+ "options": [
+ {
+ "question": {
+ "en": "Offers pickup of missed parcels"
+ },
+ "osmTags": {
+ "and": [
+ "post_office:parcel_pickup~*",
+ "post_office:parcel_pickup!~i~no"
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "id": "parcel_to",
+ "options": [
+ {
+ "question": {
+ "en": "Accepts pickup of parcels sent here"
+ },
+ "osmTags": {
+ "and": [
+ "post_office:parcel_to~*",
+ "post_office:parcel_to!~i~no"
+ ]
+ }
+ }
+ ]
+ },
+ {
+ "id": "stamps",
+ "options": [
+ {
+ "question": {
+ "en": "Sells stamps"
+ },
+ "osmTags": {
+ "and": [
+ "post_office:stamps~*",
+ "post_office:stamps!~i~no"
+ ]
+ }
+ }
+ ]
+ }
]
-}
+}
\ No newline at end of file
diff --git a/assets/layers/souvenir_coin/license_info.json b/assets/layers/souvenir_coin/license_info.json
new file mode 100644
index 0000000000..81c6e8d3e4
--- /dev/null
+++ b/assets/layers/souvenir_coin/license_info.json
@@ -0,0 +1,10 @@
+[
+ {
+ "path": "souvenir_coin.svg",
+ "license": "CC0-1.0",
+ "authors": [
+ "Robin van der Linde"
+ ],
+ "sources": []
+ }
+]
\ No newline at end of file
diff --git a/assets/layers/souvenir_coin/souvenir_coin.json b/assets/layers/souvenir_coin/souvenir_coin.json
new file mode 100644
index 0000000000..ee56390394
--- /dev/null
+++ b/assets/layers/souvenir_coin/souvenir_coin.json
@@ -0,0 +1,160 @@
+{
+ "pointRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "iconBadges": [
+ {
+ "if": "opening_hours~*",
+ "then": "icons.isOpen"
+ }
+ ],
+ "marker": [
+ {
+ "icon": "circle",
+ "color": "#FFFFFF00"
+ },
+ {
+ "icon": "./assets/layers/souvenir_coin/souvenir_coin.svg"
+ }
+ ]
+ }
+ ],
+ "tagRenderings": [
+ "images",
+ "opening_hours_24_7",
+ {
+ "builtin": "elongated_coin.designs",
+ "id": "designs",
+ "override": {
+ "render": {
+ "en": "This machine has {coin:design_count} designs available"
+ },
+ "mappings": [
+ {
+ "if": "coin:design_count=1",
+ "then": {
+ "en": "This machine has one design available"
+ }
+ },
+ {
+ "if": "coin:design_count=2",
+ "then": {
+ "en": "This machine has two designs available"
+ }
+ },
+ {
+ "if": "coin:design_count=3",
+ "then": {
+ "en": "This machine has three designs available"
+ }
+ },
+ {
+ "if": "coin:design_count=4",
+ "then": {
+ "en": "This machine has four designs available"
+ }
+ }
+ ]
+ }
+ },
+ "payment-options-split",
+ "website",
+ {
+ "question": {
+ "en": "How much does a souvenir coin cost?"
+ },
+ "id": "charge",
+ "render": {
+ "en": "A souvenir coins costs {charge}"
+ },
+ "freeform": {
+ "key": "charge",
+ "placeholder": {
+ "en": "Cost (e.g. 2 EUR)"
+ }
+ },
+ "mappings": [
+ {
+ "if": "charge=2 EUR",
+ "then": {
+ "en": "A souvenir coin costs 2 euro"
+ },
+ "hideInAnswer": "_currency!~.*EUR.*"
+ }
+ ]
+ },
+ "denominations-coins",
+ {
+ "question": {
+ "en": "Is this machine located indoors?"
+ },
+ "id": "indoor",
+ "mappings": [
+ {
+ "if": "indoor=yes",
+ "then": {
+ "en": "This machine is located indoors."
+ }
+ },
+ {
+ "if": "indoor=no",
+ "then": {
+ "en": "This machine is located outdoors."
+ }
+ }
+ ]
+ },
+ "level",
+ "check_date"
+ ],
+ "lineRendering": [
+ {
+ "width": 1,
+ "color": "blue"
+ }
+ ],
+ "id": "souvenir_coin",
+ "name": {
+ "en": "Souvenir Coin Machines"
+ },
+ "description": {
+ "en": "Layer showing machines selling souvenir coins"
+ },
+ "source": {
+ "osmTags": {
+ "and": [
+ "amenity=vending_machine",
+ "vending~.*souvenir_coins.*"
+ ]
+ }
+ },
+ "title": {
+ "render": {
+ "en": "Souvenir Coin Machine"
+ }
+ },
+ "presets": [
+ {
+ "title": {
+ "en": "a souvenir coin machine"
+ },
+ "description": {
+ "en": "Add a machine selling souvenir coins"
+ },
+ "tags": [
+ "amenity=vending_machine",
+ "vending=souvenir_coins"
+ ]
+ }
+ ],
+ "filter": [
+ "open_now",
+ "accepts_debit_cards",
+ "accepts_credit_cards"
+ ],
+ "deletion": true,
+ "allowMove": true
+}
\ No newline at end of file
diff --git a/assets/layers/souvenir_coin/souvenir_coin.svg b/assets/layers/souvenir_coin/souvenir_coin.svg
new file mode 100644
index 0000000000..9bf8075eef
--- /dev/null
+++ b/assets/layers/souvenir_coin/souvenir_coin.svg
@@ -0,0 +1,9 @@
+
diff --git a/assets/layers/souvenir_coin/souvenir_coin.svg.license b/assets/layers/souvenir_coin/souvenir_coin.svg.license
new file mode 100644
index 0000000000..75299f8845
--- /dev/null
+++ b/assets/layers/souvenir_coin/souvenir_coin.svg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Robin van der Linde
+SPDX-License-Identifier: CC0-1.0
\ No newline at end of file
diff --git a/assets/layers/souvenir_note/license_info.json b/assets/layers/souvenir_note/license_info.json
new file mode 100644
index 0000000000..4693f12044
--- /dev/null
+++ b/assets/layers/souvenir_note/license_info.json
@@ -0,0 +1,10 @@
+[
+ {
+ "path": "souvenir_note.svg",
+ "license": "CC0-1.0",
+ "authors": [
+ "Robin van der Linde"
+ ],
+ "sources": []
+ }
+]
\ No newline at end of file
diff --git a/assets/layers/souvenir_note/souvenir_note.json b/assets/layers/souvenir_note/souvenir_note.json
new file mode 100644
index 0000000000..df79f05855
--- /dev/null
+++ b/assets/layers/souvenir_note/souvenir_note.json
@@ -0,0 +1,178 @@
+{
+ "pointRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "iconBadges": [
+ {
+ "if": "opening_hours~*",
+ "then": "icons.isOpen"
+ }
+ ],
+ "marker": [
+ {
+ "icon": "circle",
+ "color": "#FFFFFF00"
+ },
+ {
+ "icon": "./assets/layers/souvenir_note/souvenir_note.svg"
+ }
+ ]
+ }
+ ],
+ "tagRenderings": [
+ "images",
+ "opening_hours_24_7",
+ {
+ "id": "designs",
+ "question": {
+ "en": "How many designs are available?"
+ },
+ "freeform": {
+ "key": "note:design_count",
+ "type": "pnat",
+ "placeholder": {
+ "en": "Number of designs (e.g. 5)",
+ "de": "Motivanzahl (z.B. 5)",
+ "es": "Número de diseños (por ejemplo, 5)",
+ "ca": "Nombre de dissenys (p. e. 5)",
+ "cs": "Počet vzorů (např. 5)"
+ }
+ },
+ "render": {
+ "en": "This machine has {note:design_count} designs available."
+ },
+ "mappings": [
+ {
+ "if": "note:design_count=1",
+ "then": {
+ "en": "This machine has one design available."
+ }
+ },
+ {
+ "if": "note:design_count=2",
+ "then": {
+ "en": "This machine has two designs available."
+ }
+ },
+ {
+ "if": "note:design_count=3",
+ "then": {
+ "en": "This machine has three designs available."
+ }
+ },
+ {
+ "if": "note:design_count=4",
+ "then": {
+ "en": "This machine has four designs available."
+ }
+ }
+ ]
+ },
+ "payment-options-split",
+ "website",
+ {
+ "question": {
+ "en": "How much does a souvenir note cost?"
+ },
+ "id": "charge",
+ "render": {
+ "en": "A souvenir note costs {charge}"
+ },
+ "freeform": {
+ "key": "charge",
+ "placeholder": {
+ "en": "Cost (e.g. 2 EUR)"
+ }
+ },
+ "mappings": [
+ {
+ "if": "charge=2 EUR",
+ "then": {
+ "en": "A souvenir note costs 2 euro"
+ },
+ "hideInAnswer": "_currency!~.*EUR.*"
+ },
+ {
+ "if": "charge=3 EUR",
+ "then": {
+ "en": "A souvenir note costs 3 euro"
+ },
+ "hideInAnswer": "_currency!~.*EUR.*"
+ }
+ ]
+ },
+ "denominations-coins",
+ {
+ "question": {
+ "en": "Is this machine located indoors?"
+ },
+ "id": "indoor",
+ "mappings": [
+ {
+ "if": "indoor=yes",
+ "then": {
+ "en": "This machine is located indoors."
+ }
+ },
+ {
+ "if": "indoor=no",
+ "then": {
+ "en": "This machine is located outdoors."
+ }
+ }
+ ]
+ },
+ "level",
+ "check_date"
+ ],
+ "lineRendering": [
+ {
+ "width": 1,
+ "color": "blue"
+ }
+ ],
+ "id": "souvenir_note",
+ "name": {
+ "en": "Souvenir Banknote Machines"
+ },
+ "description": {
+ "en": "Layer showing machines selling souvenir banknotes"
+ },
+ "source": {
+ "osmTags": {
+ "and": [
+ "amenity=vending_machine",
+ "vending~.*souvenir_notes.*"
+ ]
+ }
+ },
+ "title": {
+ "render": {
+ "en": "Souvenir Banknote Machine"
+ }
+ },
+ "presets": [
+ {
+ "title": {
+ "en": "a souvenir banknote machine"
+ },
+ "description": {
+ "en": "Add a machine selling souvenir banknotes"
+ },
+ "tags": [
+ "amenity=vending_machine",
+ "vending=souvenir_notes"
+ ]
+ }
+ ],
+ "filter": [
+ "open_now",
+ "accepts_debit_cards",
+ "accepts_credit_cards"
+ ],
+ "deletion": true,
+ "allowMove": true
+}
\ No newline at end of file
diff --git a/assets/layers/souvenir_note/souvenir_note.svg b/assets/layers/souvenir_note/souvenir_note.svg
new file mode 100644
index 0000000000..a5f9ab9a10
--- /dev/null
+++ b/assets/layers/souvenir_note/souvenir_note.svg
@@ -0,0 +1,12 @@
+
diff --git a/assets/layers/souvenir_note/souvenir_note.svg.license b/assets/layers/souvenir_note/souvenir_note.svg.license
new file mode 100644
index 0000000000..75299f8845
--- /dev/null
+++ b/assets/layers/souvenir_note/souvenir_note.svg.license
@@ -0,0 +1,2 @@
+SPDX-FileCopyrightText: Robin van der Linde
+SPDX-License-Identifier: CC0-1.0
\ No newline at end of file
diff --git a/assets/themes/elongated_coin/elongated_coin.json b/assets/themes/elongated_coin/elongated_coin.json
index d3e98e5d6b..49afe2f653 100644
--- a/assets/themes/elongated_coin/elongated_coin.json
+++ b/assets/themes/elongated_coin/elongated_coin.json
@@ -21,6 +21,8 @@
"startLat": 53.0565,
"startLon": 8.7492,
"layers": [
- "elongated_coin"
+ "elongated_coin",
+ "souvenir_coin",
+ "souvenir_note"
]
}
\ No newline at end of file
diff --git a/assets/themes/ghostsigns/ghostsigns.json b/assets/themes/ghostsigns/ghostsigns.json
new file mode 100644
index 0000000000..21577bb77c
--- /dev/null
+++ b/assets/themes/ghostsigns/ghostsigns.json
@@ -0,0 +1,179 @@
+{
+ "id": "ghostsigns",
+ "title": {
+ "en": "Ghost Signs"
+ },
+ "description": {
+ "en": "A map showing disused signs on buildings"
+ },
+ "icon": "./assets/themes/advertising/wall_painting.svg",
+ "layers": [
+ {
+ "id": "ghostsigns",
+ "title": {
+ "render": {
+ "en": "Ghost Sign"
+ }
+ },
+ "description": {
+ "en": "Layer showing disused signs on buildings"
+ },
+ "name": {
+ "en": "Ghost Signs"
+ },
+ "source": {
+ "osmTags": {
+ "and": [
+ "historic~*",
+ "advertising=wall_painting"
+ ]
+ }
+ },
+ "minzoom": 10,
+ "allowMove": {
+ "enableImproveAccuracy": true
+ },
+ "tagRenderings": [
+ {
+ "id": "historic",
+ "question": {
+ "en": "Is this a ghost sign?"
+ },
+ "questionHint": {
+ "en": "Is this sign for a business that no longer exists or no longer being maintained?"
+ },
+ "mappings": [
+ {
+ "if": "historic=advertising",
+ "then": {
+ "en": "This is a ghost sign"
+ },
+ "alsoShowIf": "historic=yes"
+ },
+ {
+ "if": "historic=",
+ "then": {
+ "en": "This is not a ghost sign, answering this will hide the sign from the map"
+ }
+ }
+ ]
+ },
+ "images",
+ {
+ "id": "name",
+ "condition": "name~*",
+ "render": {
+ "*": "{name}"
+ }
+ },
+ {
+ "id": "inscription",
+ "question": {
+ "en": "What is the text on the sign?"
+ },
+ "freeform": {
+ "key": "inscription",
+ "type": "string",
+ "placeholder": {
+ "en": "Text on the sign"
+ }
+ },
+ "render": {
+ "en": "The text on the sign is: {inscription}"
+ }
+ },
+ {
+ "id": "brand",
+ "question": {
+ "en": "For what business was this sign made?"
+ },
+ "freeform": {
+ "key": "brand",
+ "type": "string",
+ "placeholder": {
+ "en": "Business name"
+ }
+ },
+ "render": {
+ "en": "This sign was made for: {brand}"
+ }
+ }
+ ],
+ "lineRendering": [
+ {
+ "color": "blue",
+ "width": 2
+ }
+ ],
+ "pointRendering": [
+ {
+ "location": [
+ "point",
+ "centroid"
+ ],
+ "marker": [
+ {
+ "icon": "./assets/themes/advertising/wall_painting.svg"
+ }
+ ]
+ }
+ ],
+ "presets": [
+ {
+ "tags": [
+ "historic=advertising",
+ "advertising=wall_painting"
+ ],
+ "title": {
+ "en": "a ghost sign"
+ },
+ "snapToLayer": [
+ "walls_and_buildings"
+ ],
+ "maxSnapDistance": 5
+ }
+ ]
+ },
+ {
+ "builtin": "advertising",
+ "override": {
+ "source": {
+ "osmTags": "advertising=wall_painting"
+ },
+ "minzoom": 18,
+ "+tagRenderings": [
+ {
+ "id": "historic",
+ "question": {
+ "en": "Is this a ghost sign?"
+ },
+ "questionHint": {
+ "en": "Is this sign for a business that no longer exists or no longer being maintained?"
+ },
+ "mappings": [
+ {
+ "if": "historic=advertising",
+ "then": {
+ "en": "This is a ghost sign"
+ },
+ "alsoShowIf": "historic=yes"
+ },
+ {
+ "if": "historic=",
+ "then": {
+ "en": "This is not a ghost sign"
+ }
+ }
+ ]
+ }
+ ],
+ "=presets": [],
+ "pointRendering": [
+ {
+ "iconSize": "20,20"
+ }
+ ]
+ }
+ }
+ ]
+}
\ No newline at end of file
diff --git a/assets/themes/mapcomplete-changes/mapcomplete-changes.json b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
index 9d03f8832c..3d4f530820 100644
--- a/assets/themes/mapcomplete-changes/mapcomplete-changes.json
+++ b/assets/themes/mapcomplete-changes/mapcomplete-changes.json
@@ -286,6 +286,10 @@
"if": "theme=ghostbikes",
"then": "./assets/themes/ghostbikes/logo.svg"
},
+ {
+ "if": "theme=ghostsigns",
+ "then": "./assets/themes/advertising/wall_painting.svg"
+ },
{
"if": "theme=grb",
"then": "./assets/themes/grb/logo.svg"
diff --git a/assets/themes/playgrounds/playgrounds.json b/assets/themes/playgrounds/playgrounds.json
index 32c82105d0..87db0468e5 100644
--- a/assets/themes/playgrounds/playgrounds.json
+++ b/assets/themes/playgrounds/playgrounds.json
@@ -60,6 +60,7 @@
"startLon": 4.399,
"layers": [
"playground",
+ "playground_equipment",
{
"builtin": [
"bench",
diff --git a/assets/themes/postboxes/postboxes.json b/assets/themes/postboxes/postboxes.json
index 491d46d3c6..13ce50ff73 100644
--- a/assets/themes/postboxes/postboxes.json
+++ b/assets/themes/postboxes/postboxes.json
@@ -54,7 +54,54 @@
"layers": [
"postboxes",
"postoffices",
- "parcel_lockers"
+ "parcel_lockers",
+ {
+ "builtin": "shops",
+ "override": {
+ "minzoom": 18,
+ "minzoomVisible": 18,
+ "description": {
+ "en": "Add a new post partner to the map in an existing shop"
+ },
+ "+tagRenderings": [
+ {
+ "id": "post_partner",
+ "question": {
+ "en": "Is this shop a post partner?"
+ },
+ "mappings": [
+ {
+ "if": "post_office=post_partner",
+ "then": {
+ "en": "This shop is a post partner"
+ }
+ },
+ {
+ "if": "post_office=",
+ "then": {
+ "en": "This shop is not a post partner"
+ }
+ }
+ ]
+ }
+ ],
+ "shownByDefault": false,
+ "=presets": [
+ {
+ "tags": [
+ "shop=yes",
+ "post_office=post_partner"
+ ],
+ "title": {
+ "en": "a missing shop that is a post partner"
+ },
+ "description": {
+ "en": "If a shop is not yet on the map and is a post partner, you can add it here."
+ }
+ }
+ ]
+ }
+ }
],
"widenFactor": 1.5,
"clustering": {
diff --git a/scripts/downloadCommons.ts b/scripts/downloadCommons.ts
index 78cb8e217c..dad3013e67 100644
--- a/scripts/downloadCommons.ts
+++ b/scripts/downloadCommons.ts
@@ -69,6 +69,30 @@ interface CategoryQueryAPIResponse {
}
}
+interface ImagesQueryAPIResponse {
+ continue: {
+ imcontinue: string
+ continue: string
+ }
+ query: {
+ normalized?: {
+ from: string
+ to: string
+ }[]
+ pages: {
+ [key: string]: {
+ pageid: number
+ ns: number
+ title: string
+ images?: {
+ ns: number
+ title: string
+ }[]
+ }
+ }
+ }
+}
+
interface TemplateQueryAPIResponse {
batchcomplete: string
query: {
@@ -96,13 +120,14 @@ const licenseMapping = {}
// Map template names to license names
const templateMapping = {
"Template:PD": "Public Domain",
+ "Template:CC0": "CC0 1.0",
}
async function main(args: string[]) {
if (args.length < 2) {
console.log("Usage: downloadCommons.ts