diff --git a/.github/workflows/deploy_pietervdvn.yml b/.github/workflows/deploy_pietervdvn.yml
index f787b077d..36d4ebc26 100644
--- a/.github/workflows/deploy_pietervdvn.yml
+++ b/.github/workflows/deploy_pietervdvn.yml
@@ -3,7 +3,8 @@ on:
push:
branches:
- develop
- - feature/svelte
+ - feature/*
+ - theme/*
jobs:
build:
runs-on: ubuntu-latest
diff --git a/.gitpod.yml b/.gitpod.yml
index d7253fb46..964b5c27f 100644
--- a/.gitpod.yml
+++ b/.gitpod.yml
@@ -1,6 +1,9 @@
tasks:
- init: npm run init
command: npm run start
+ name: Initialize and start MapComplete
+ - name: Generate Layeroverview
+ command: npm run generate:layeroverview
ports:
- name: MapComplete Website
@@ -11,4 +14,7 @@ vscode:
extensions:
- "esbenp.prettier-vscode"
- "eamodio.gitlens"
- - "GitHub.vscode-pull-request-github"
+ - "github.vscode-pull-request-github"
+ - "svelte.svelte-vscode"
+ - "bradlc.vscode-tailwindcss"
+ - "editorconfig.editorconfig"
diff --git a/.vscode/extensions.json b/.vscode/extensions.json
index 8ca85028f..f2dca9d05 100644
--- a/.vscode/extensions.json
+++ b/.vscode/extensions.json
@@ -2,8 +2,9 @@
"recommendations": [
"esbenp.prettier-vscode",
"eamodio.gitlens",
- "GitHub.vscode-pull-request-github",
+ "github.vscode-pull-request-github",
"svelte.svelte-vscode",
- "bradlc.vscode-tailwindcss"
+ "bradlc.vscode-tailwindcss",
+ "editorconfig.editorconfig"
]
-}
\ No newline at end of file
+}
diff --git a/Docs/Layers/clock.md b/Docs/Layers/clock.md
index b32f0dda2..cb92006af 100644
--- a/Docs/Layers/clock.md
+++ b/Docs/Layers/clock.md
@@ -133,7 +133,7 @@ The question is *How visible is this clock?*
- *This clock is visible from about 5 meters away (small wall-mounted clock)* corresponds with `visibility=house`
- *This clock is visible from about 20 meters away (medium size billboard clock)* corresponds with `visibility=street`
- - *This clock is visible from more than 20 meters away (church clock)* corresponds with `visibility=area`
+ - *This clock is visible from more than 20 meters away (e.g. a church clock or station clock)* corresponds with `visibility=area`
diff --git a/Docs/Layers/hydrant.md b/Docs/Layers/hydrant.md
index 4ff5fe382..2429fda6c 100644
--- a/Docs/Layers/hydrant.md
+++ b/Docs/Layers/hydrant.md
@@ -85,8 +85,6 @@ This is rendered with `The hydrant color is {colour}`
- - *The hydrant color is unknown.* corresponds with ``
- - This option cannot be chosen as answer
- *The hydrant color is yellow.* corresponds with `colour=yellow`
- *The hydrant color is red.* corresponds with `colour=red`
@@ -107,8 +105,6 @@ This is rendered with ` Hydrant type: {fire_hydrant:type}`
- - *The hydrant type is unknown.* corresponds with ``
- - This option cannot be chosen as answer
- *Pillar type.* corresponds with `fire_hydrant:type=pillar`
- *Pipe type.* corresponds with `fire_hydrant:type=pipe`
- *Wall type.* corresponds with `fire_hydrant:type=wall`
diff --git a/Docs/TagInfo/mapcomplete_clock.json b/Docs/TagInfo/mapcomplete_clock.json
index 3db6a3ad2..ea84da5d8 100644
--- a/Docs/TagInfo/mapcomplete_clock.json
+++ b/Docs/TagInfo/mapcomplete_clock.json
@@ -83,7 +83,7 @@
},
{
"key": "visibility",
- "description": "Layer 'Clocks' shows visibility=area with a fixed text, namely 'This clock is visible from more than 20 meters away (church clock)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Clocks')",
+ "description": "Layer 'Clocks' shows visibility=area with a fixed text, namely 'This clock is visible from more than 20 meters away (e.g. a church clock or station clock)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Clocks')",
"value": "area"
},
{
diff --git a/Docs/TagInfo/mapcomplete_hailhydrant.json b/Docs/TagInfo/mapcomplete_hailhydrant.json
index 10e51b65f..4785c5fdf 100644
--- a/Docs/TagInfo/mapcomplete_hailhydrant.json
+++ b/Docs/TagInfo/mapcomplete_hailhydrant.json
@@ -19,11 +19,6 @@
"key": "colour",
"description": "Layer 'Map of hydrants' shows and asks freeform values for key 'colour' (in the MapComplete.osm.be theme 'Hydrants, Extinguishers, Fire stations, and Ambulance stations')"
},
- {
- "key": "colour",
- "description": "Layer 'Map of hydrants' shows with a fixed text, namely 'The hydrant color is unknown.' (in the MapComplete.osm.be theme 'Hydrants, Extinguishers, Fire stations, and Ambulance stations') Picking this answer will delete the key colour.",
- "value": ""
- },
{
"key": "colour",
"description": "Layer 'Map of hydrants' shows colour=yellow with a fixed text, namely 'The hydrant color is yellow.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Hydrants, Extinguishers, Fire stations, and Ambulance stations')",
@@ -38,11 +33,6 @@
"key": "fire_hydrant:type",
"description": "Layer 'Map of hydrants' shows and asks freeform values for key 'fire_hydrant:type' (in the MapComplete.osm.be theme 'Hydrants, Extinguishers, Fire stations, and Ambulance stations')"
},
- {
- "key": "fire_hydrant:type",
- "description": "Layer 'Map of hydrants' shows with a fixed text, namely 'The hydrant type is unknown.' (in the MapComplete.osm.be theme 'Hydrants, Extinguishers, Fire stations, and Ambulance stations') Picking this answer will delete the key fire_hydrant:type.",
- "value": ""
- },
{
"key": "fire_hydrant:type",
"description": "Layer 'Map of hydrants' shows fire_hydrant:type=pillar with a fixed text, namely 'Pillar type.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Hydrants, Extinguishers, Fire stations, and Ambulance stations')",
diff --git a/Docs/TagInfo/mapcomplete_personal.json b/Docs/TagInfo/mapcomplete_personal.json
index 7d0bf6691..48b5b5031 100644
--- a/Docs/TagInfo/mapcomplete_personal.json
+++ b/Docs/TagInfo/mapcomplete_personal.json
@@ -4326,7 +4326,7 @@
},
{
"key": "visibility",
- "description": "Layer 'Clocks' shows visibility=area with a fixed text, namely 'This clock is visible from more than 20 meters away (church clock)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
+ "description": "Layer 'Clocks' shows visibility=area with a fixed text, namely 'This clock is visible from more than 20 meters away (e.g. a church clock or station clock)' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
"value": "area"
},
{
@@ -7189,11 +7189,6 @@
"key": "colour",
"description": "Layer 'Map of hydrants' shows and asks freeform values for key 'colour' (in the MapComplete.osm.be theme 'Personal theme')"
},
- {
- "key": "colour",
- "description": "Layer 'Map of hydrants' shows with a fixed text, namely 'The hydrant color is unknown.' (in the MapComplete.osm.be theme 'Personal theme') Picking this answer will delete the key colour.",
- "value": ""
- },
{
"key": "colour",
"description": "Layer 'Map of hydrants' shows colour=yellow with a fixed text, namely 'The hydrant color is yellow.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
@@ -7208,11 +7203,6 @@
"key": "fire_hydrant:type",
"description": "Layer 'Map of hydrants' shows and asks freeform values for key 'fire_hydrant:type' (in the MapComplete.osm.be theme 'Personal theme')"
},
- {
- "key": "fire_hydrant:type",
- "description": "Layer 'Map of hydrants' shows with a fixed text, namely 'The hydrant type is unknown.' (in the MapComplete.osm.be theme 'Personal theme') Picking this answer will delete the key fire_hydrant:type.",
- "value": ""
- },
{
"key": "fire_hydrant:type",
"description": "Layer 'Map of hydrants' shows fire_hydrant:type=pillar with a fixed text, namely 'Pillar type.' and allows to pick this as a default answer (in the MapComplete.osm.be theme 'Personal theme')",
diff --git a/Docs/Themes/atm.md b/Docs/Themes/atm.md
index 4e3f1f9de..2b8701626 100644
--- a/Docs/Themes/atm.md
+++ b/Docs/Themes/atm.md
@@ -34,6 +34,7 @@ Available languages:
- cs
- nb_NO
- zgh
+ - id
This document is autogenerated from [assets/themes/atm/atm.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/atm/atm.json)
diff --git a/Docs/Themes/bag.md b/Docs/Themes/bag.md
index 374af00ff..f64655199 100644
--- a/Docs/Themes/bag.md
+++ b/Docs/Themes/bag.md
@@ -34,6 +34,7 @@ Available languages:
- nb_NO
- ca
- es
+ - cs
This document is autogenerated from [assets/themes/bag/bag.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/bag/bag.json)
diff --git a/Docs/Themes/clock.md b/Docs/Themes/clock.md
index 227c9bad4..b267d1552 100644
--- a/Docs/Themes/clock.md
+++ b/Docs/Themes/clock.md
@@ -29,6 +29,7 @@ Available languages:
- de
- es
- ca
+ - cs
This document is autogenerated from [assets/themes/clock/clock.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/clock/clock.json)
diff --git a/Docs/Themes/cyclenodes.md b/Docs/Themes/cyclenodes.md
index 9a32def24..91ecf714e 100644
--- a/Docs/Themes/cyclenodes.md
+++ b/Docs/Themes/cyclenodes.md
@@ -31,6 +31,7 @@ Available languages:
- nl
- fr
- ca
+ - cs
This document is autogenerated from [assets/themes/cyclenodes/cyclenodes.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/cyclenodes/cyclenodes.json)
diff --git a/Docs/Themes/kerbs_and_crossings.md b/Docs/Themes/kerbs_and_crossings.md
index 2fb2d34de..4dbcf7ca3 100644
--- a/Docs/Themes/kerbs_and_crossings.md
+++ b/Docs/Themes/kerbs_and_crossings.md
@@ -34,6 +34,7 @@ Available languages:
- nb_NO
- ru
- es
+ - ca
This document is autogenerated from [assets/themes/kerbs_and_crossings/kerbs_and_crossings.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/kerbs_and_crossings/kerbs_and_crossings.json)
diff --git a/Docs/Themes/maproulette.md b/Docs/Themes/maproulette.md
index f814dbacb..5d43c32c3 100644
--- a/Docs/Themes/maproulette.md
+++ b/Docs/Themes/maproulette.md
@@ -31,6 +31,7 @@ Available languages:
- pa_PK
- nl
- es
+ - cs
This document is autogenerated from [assets/themes/maproulette/maproulette.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/maproulette/maproulette.json)
diff --git a/Docs/Themes/onwheels.md b/Docs/Themes/onwheels.md
index 2e71fd289..58ff97bdc 100644
--- a/Docs/Themes/onwheels.md
+++ b/Docs/Themes/onwheels.md
@@ -51,6 +51,7 @@ Available languages:
- ca
- pa_PK
- es
+ - cs
This document is autogenerated from [assets/themes/onwheels/onwheels.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/onwheels/onwheels.json)
diff --git a/Docs/Themes/openwindpowermap.md b/Docs/Themes/openwindpowermap.md
index 5456c11f9..dc9370507 100644
--- a/Docs/Themes/openwindpowermap.md
+++ b/Docs/Themes/openwindpowermap.md
@@ -36,6 +36,7 @@ Available languages:
- nb_NO
- pa_PK
- es
+ - cs
This document is autogenerated from [assets/themes/openwindpowermap/openwindpowermap.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/openwindpowermap/openwindpowermap.json)
diff --git a/Docs/Themes/osm_community_index.md b/Docs/Themes/osm_community_index.md
index 42c89cb9b..fbccf84f5 100644
--- a/Docs/Themes/osm_community_index.md
+++ b/Docs/Themes/osm_community_index.md
@@ -29,6 +29,7 @@ Available languages:
- fr
- es
- ca
+ - cs
This document is autogenerated from [assets/themes/osm_community_index/osm_community_index.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/osm_community_index/osm_community_index.json)
diff --git a/Docs/Themes/parkings.md b/Docs/Themes/parkings.md
index b945ba1ed..3e3600700 100644
--- a/Docs/Themes/parkings.md
+++ b/Docs/Themes/parkings.md
@@ -39,6 +39,7 @@ Available languages:
- da
- pa_PK
- ca
+ - cs
This document is autogenerated from [assets/themes/parkings/parkings.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/parkings/parkings.json)
diff --git a/Docs/Themes/personal.md b/Docs/Themes/personal.md
index 9407925ea..611d61820 100644
--- a/Docs/Themes/personal.md
+++ b/Docs/Themes/personal.md
@@ -129,6 +129,7 @@ Available languages:
- id
- da
- pa_PK
+ - cs
This document is autogenerated from [assets/themes/personal/personal.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/personal/personal.json)
diff --git a/Docs/Themes/pets.md b/Docs/Themes/pets.md
index e14e46ad1..c626724be 100644
--- a/Docs/Themes/pets.md
+++ b/Docs/Themes/pets.md
@@ -36,6 +36,7 @@ Available languages:
- fr
- ca
- es
+ - cs
This document is autogenerated from [assets/themes/pets/pets.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/pets/pets.json)
diff --git a/Docs/Themes/playgrounds.md b/Docs/Themes/playgrounds.md
index d39756488..54da48de6 100644
--- a/Docs/Themes/playgrounds.md
+++ b/Docs/Themes/playgrounds.md
@@ -37,6 +37,7 @@ Available languages:
- ca
- es
- da
+ - cs
This document is autogenerated from [assets/themes/playgrounds/playgrounds.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/playgrounds/playgrounds.json)
diff --git a/Docs/Themes/postal_codes.md b/Docs/Themes/postal_codes.md
index 98d8e96f6..95db8d2e4 100644
--- a/Docs/Themes/postal_codes.md
+++ b/Docs/Themes/postal_codes.md
@@ -36,6 +36,7 @@ Available languages:
- fr
- da
- pa_PK
+ - cs
This document is autogenerated from [assets/themes/postal_codes/postal_codes.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/postal_codes/postal_codes.json)
diff --git a/Docs/Themes/postboxes.md b/Docs/Themes/postboxes.md
index 0eaf345da..ab61d0ba8 100644
--- a/Docs/Themes/postboxes.md
+++ b/Docs/Themes/postboxes.md
@@ -36,6 +36,7 @@ Available languages:
- da
- ca
- es
+ - cs
This document is autogenerated from [assets/themes/postboxes/postboxes.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/postboxes/postboxes.json)
diff --git a/Docs/Themes/rainbow_crossings.md b/Docs/Themes/rainbow_crossings.md
index 60cf1aab4..33a4a84c0 100644
--- a/Docs/Themes/rainbow_crossings.md
+++ b/Docs/Themes/rainbow_crossings.md
@@ -33,6 +33,7 @@ Available languages:
- ru
- ca
- es
+ - cs
This document is autogenerated from [assets/themes/rainbow_crossings/rainbow_crossings.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/rainbow_crossings/rainbow_crossings.json)
diff --git a/Docs/Themes/shops.md b/Docs/Themes/shops.md
index 2bb4cb58a..aa91e6e32 100644
--- a/Docs/Themes/shops.md
+++ b/Docs/Themes/shops.md
@@ -37,6 +37,7 @@ Available languages:
- ca
- da
- es
+ - cs
This document is autogenerated from [assets/themes/shops/shops.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/shops/shops.json)
diff --git a/Docs/Themes/sidewalks.md b/Docs/Themes/sidewalks.md
index 8ce8ce06d..bded59a2a 100644
--- a/Docs/Themes/sidewalks.md
+++ b/Docs/Themes/sidewalks.md
@@ -34,6 +34,7 @@ Available languages:
- it
- da
- pa_PK
+ - cs
This document is autogenerated from [assets/themes/sidewalks/sidewalks.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/sidewalks/sidewalks.json)
diff --git a/Docs/Themes/sport_pitches.md b/Docs/Themes/sport_pitches.md
index e69944b30..116814d3f 100644
--- a/Docs/Themes/sport_pitches.md
+++ b/Docs/Themes/sport_pitches.md
@@ -35,6 +35,7 @@ Available languages:
- ca
- es
- da
+ - cs
This document is autogenerated from [assets/themes/sport_pitches/sport_pitches.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/sport_pitches/sport_pitches.json)
diff --git a/Docs/Themes/sports.md b/Docs/Themes/sports.md
index 8a741aa8e..cbe9933ba 100644
--- a/Docs/Themes/sports.md
+++ b/Docs/Themes/sports.md
@@ -34,6 +34,7 @@ Available languages:
- fr
- ca
- es
+ - cs
This document is autogenerated from [assets/themes/sports/sports.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/sports/sports.json)
diff --git a/Docs/Themes/stations.md b/Docs/Themes/stations.md
index 146c2ad2d..977f96a22 100644
--- a/Docs/Themes/stations.md
+++ b/Docs/Themes/stations.md
@@ -50,6 +50,7 @@ Available languages:
- fr
- ca
- es
+ - cs
This document is autogenerated from [assets/themes/stations/stations.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/stations/stations.json)
diff --git a/Docs/Themes/street_lighting.md b/Docs/Themes/street_lighting.md
index fbafef1b6..3b57edfd7 100644
--- a/Docs/Themes/street_lighting.md
+++ b/Docs/Themes/street_lighting.md
@@ -37,6 +37,7 @@ Available languages:
- da
- pa_PK
- es
+ - cs
This document is autogenerated from [assets/themes/street_lighting/street_lighting.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/street_lighting/street_lighting.json)
diff --git a/Docs/Themes/surveillance.md b/Docs/Themes/surveillance.md
index 93f4b7b41..1ef6a8b03 100644
--- a/Docs/Themes/surveillance.md
+++ b/Docs/Themes/surveillance.md
@@ -37,6 +37,7 @@ Available languages:
- nb_NO
- da
- es
+ - cs
This document is autogenerated from [assets/themes/surveillance/surveillance.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/surveillance/surveillance.json)
diff --git a/Docs/Themes/toilets.md b/Docs/Themes/toilets.md
index 9970d876a..5cd93e089 100644
--- a/Docs/Themes/toilets.md
+++ b/Docs/Themes/toilets.md
@@ -38,6 +38,7 @@ Available languages:
- ca
- da
- es
+ - cs
This document is autogenerated from [assets/themes/toilets/toilets.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/toilets/toilets.json)
diff --git a/Docs/Themes/transit.md b/Docs/Themes/transit.md
index d9af2bc3c..f8d0b2606 100644
--- a/Docs/Themes/transit.md
+++ b/Docs/Themes/transit.md
@@ -36,6 +36,7 @@ Available languages:
- pa_PK
- nl
- es
+ - cs
This document is autogenerated from [assets/themes/transit/transit.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/transit/transit.json)
diff --git a/Docs/Themes/trees.md b/Docs/Themes/trees.md
index 702c5ec67..803745347 100644
--- a/Docs/Themes/trees.md
+++ b/Docs/Themes/trees.md
@@ -39,6 +39,7 @@ Available languages:
- es
- da
- pa_PK
+ - cs
This document is autogenerated from [assets/themes/trees/trees.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/trees/trees.json)
diff --git a/Docs/Themes/walls_and_buildings.md b/Docs/Themes/walls_and_buildings.md
index 60de1627d..5bafc44fd 100644
--- a/Docs/Themes/walls_and_buildings.md
+++ b/Docs/Themes/walls_and_buildings.md
@@ -34,6 +34,7 @@ Available languages:
- nl
- ca
- es
+ - cs
This document is autogenerated from [assets/themes/walls_and_buildings/walls_and_buildings.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/walls_and_buildings/walls_and_buildings.json)
diff --git a/Docs/Themes/waste.md b/Docs/Themes/waste.md
index 16a14d187..5551ccedd 100644
--- a/Docs/Themes/waste.md
+++ b/Docs/Themes/waste.md
@@ -35,6 +35,7 @@ Available languages:
- da
- es
- ru
+ - cs
This document is autogenerated from [assets/themes/waste/waste.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/waste/waste.json)
diff --git a/Docs/Themes/waste_basket.md b/Docs/Themes/waste_basket.md
index ceb4e0cc3..f60723696 100644
--- a/Docs/Themes/waste_basket.md
+++ b/Docs/Themes/waste_basket.md
@@ -36,6 +36,7 @@ Available languages:
- da
- pa_PK
- es
+ - cs
This document is autogenerated from [assets/themes/waste_basket/waste_basket.json](https://github.com/pietervdvn/MapComplete/blob/develop/assets/themes/waste_basket/waste_basket.json)
diff --git a/Docs/wikiIndex.txt b/Docs/wikiIndex.txt
index d91c894f0..6637e95c0 100644
--- a/Docs/wikiIndex.txt
+++ b/Docs/wikiIndex.txt
@@ -4,7 +4,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/personal personal]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:gl|en}}, {{#language:fr|en}}, {{#language:de|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:it|en}}, {{#language:da|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:gl|en}}, {{#language:fr|en}}, {{#language:de|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:it|en}}, {{#language:da|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: Create a personal theme based on all the available layers of all themes
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -13,7 +13,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/cyclofix cyclofix]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:gl|en}}, {{#language:de|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:da|en}}, {{#language:cs|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:gl|en}}, {{#language:de|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: The goal of this map is to present cyclists with an easy-to-use solution to find the appropriate infrastructure for their needs
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -22,7 +22,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/waste waste]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:it|en}}, {{#language:ca|en}}, {{#language:da|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:it|en}}, {{#language:ca|en}}, {{#language:da|en}}, {{#language:es|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: Map showing waste baskets and recycling facilities
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -58,7 +58,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/playgrounds playgrounds]
|region= Worldwide
-|lang= {{#language:nl|en}}, {{#language:en|en}}, {{#language:fr|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:nb_NO|en}}, {{#language:id|en}}, {{#language:hu|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:da|en}}
+|lang= {{#language:nl|en}}, {{#language:en|en}}, {{#language:fr|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:nb_NO|en}}, {{#language:id|en}}, {{#language:hu|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:da|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: A map with playgrounds
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -76,7 +76,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/toilets toilets]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:ru|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:pl|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:nb_NO|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:ru|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:pl|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:nb_NO|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: A map of public toilets
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -112,7 +112,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/atm atm]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:nb_NO|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:ca|en}}, {{#language:cs|en}}, {{#language:nb_NO|en}}, {{#language:es|en}}, {{#language:id|en}}
|descr= A MapComplete theme: This map shows ATMs to withdraw or deposit money
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -193,7 +193,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/clock clock]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:ca|en}}, {{#language:de|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:ca|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: Map showing all public clocks
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -256,7 +256,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/ghostbikes ghostbikes]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:fr|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:fr|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:es|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: A ghost bike is a memorial for a cyclist who died in a traffic accident, in the form of a white bicycle placed permanently near the accident location
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -265,7 +265,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/hackerspaces hackerspaces]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:es|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: A map of hackerspaces
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -283,7 +283,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/hotels hotels]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:da|en}}, {{#language:nb_NO|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:cs|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:da|en}}, {{#language:nb_NO|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:cs|en}}, {{#language:es|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: On this map, you'll find hotels in your area
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -292,7 +292,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/indoors indoors]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:nl|en}}, {{#language:cs|en}}, {{#language:nb_NO|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:nl|en}}, {{#language:cs|en}}, {{#language:nb_NO|en}}, {{#language:es|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: On this map, publicly accessible indoor places are shown
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -301,7 +301,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/kerbs_and_crossings kerbs_and_crossings]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:nb_NO|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:nb_NO|en}}, {{#language:es|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: A map showing kerbs and crossings
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -310,7 +310,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/maps maps]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:es|en}}, {{#language:da|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:es|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: This theme shows all (touristic) maps that OpenStreetMap knows of
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -319,7 +319,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/maxspeed maxspeed]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:es|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: This map shows the legally allowed maximum speed on every road.
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -328,7 +328,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/nature nature]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:cs|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: A map for nature lovers, with interesting POI's
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -337,7 +337,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/notes notes]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:hu|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:cs|en}}
+|lang= {{#language:en|en}}, {{#language:hu|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: A note is a pin on the map with some text to indicate something wrong
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -355,7 +355,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/onwheels onwheels]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:nl|en}}, {{#language:da|en}}, {{#language:cs|en}}, {{#language:es|en}}, {{#language:ca|en}}
|descr= A MapComplete theme: On this map, publicly weelchair accessible places are shown and can be easily added
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -373,7 +373,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/osm_community_index osm_community_index]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:es|en}}, {{#language:ca|en}}
+|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:es|en}}, {{#language:ca|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: An index of community resources for OpenStreetMap.
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -382,7 +382,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/parkings parkings]
|region= Worldwide
-|lang= {{#language:nl|en}}, {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:nb_NO|en}}, {{#language:zh_Hant|en}}, {{#language:id|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:ca|en}}
+|lang= {{#language:nl|en}}, {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:nb_NO|en}}, {{#language:zh_Hant|en}}, {{#language:id|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: This map shows different parking spots
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -391,7 +391,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/pets pets]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:da|en}}, {{#language:de|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:ca|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:da|en}}, {{#language:de|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: On this map, you'll find various interesting places for you pets: veterinarians, dog parks, pet shops, dog-friendly restaurants,
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -400,7 +400,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/postboxes postboxes]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:nb_NO|en}}, {{#language:da|en}}, {{#language:ca|en}}
+|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:nb_NO|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: A map showing postboxes and post offices
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -409,7 +409,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/rainbow_crossings rainbow_crossings]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:nl|en}}, {{#language:ca|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:nl|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: On this map, rainbow-painted pedestrian crossings are shown and can be easily added
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -418,7 +418,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/shops shops]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:fr|en}}, {{#language:ja|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:nl|en}}, {{#language:da|en}}, {{#language:ca|en}}
+|lang= {{#language:en|en}}, {{#language:fr|en}}, {{#language:ja|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:nl|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: An editable map with basic shop information
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -427,7 +427,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/sport_pitches sport_pitches]
|region= Worldwide
-|lang= {{#language:nl|en}}, {{#language:fr|en}}, {{#language:en|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:da|en}}, {{#language:ca|en}}
+|lang= {{#language:nl|en}}, {{#language:fr|en}}, {{#language:en|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:es|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: A map showing sport pitches
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -436,7 +436,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/sports sports]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:ca|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: Map showing sport facilities.
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -445,7 +445,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/street_lighting street_lighting]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:nb_NO|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:de|en}}, {{#language:es|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:nb_NO|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: On this map you can find everything about street lighting
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -454,7 +454,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/surveillance surveillance]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:fr|en}}, {{#language:pl|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:da|en}}, {{#language:nb_NO|en}}, {{#language:ca|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:fr|en}}, {{#language:pl|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:hu|en}}, {{#language:da|en}}, {{#language:nb_NO|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: Surveillance cameras and other means of surveillance
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -463,7 +463,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/transit transit]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:nl|en}}, {{#language:nb_NO|en}}, {{#language:ca|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:de|en}}, {{#language:fr|en}}, {{#language:da|en}}, {{#language:nl|en}}, {{#language:nb_NO|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: Plan your trip with the help of the public transport system
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -472,7 +472,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/trees trees]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:it|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:pl|en}}, {{#language:de|en}}, {{#language:nb_NO|en}}, {{#language:hu|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:da|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:fr|en}}, {{#language:it|en}}, {{#language:ja|en}}, {{#language:zh_Hant|en}}, {{#language:ru|en}}, {{#language:pl|en}}, {{#language:de|en}}, {{#language:nb_NO|en}}, {{#language:hu|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:da|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: Map all the trees
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
@@ -481,7 +481,7 @@
{{service_item
|name= [https://mapcomplete.osm.be/waste_basket waste_basket]
|region= Worldwide
-|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:fr|en}}, {{#language:nb_NO|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:es|en}}
+|lang= {{#language:en|en}}, {{#language:nl|en}}, {{#language:de|en}}, {{#language:it|en}}, {{#language:zh_Hant|en}}, {{#language:hu|en}}, {{#language:fr|en}}, {{#language:nb_NO|en}}, {{#language:da|en}}, {{#language:ca|en}}, {{#language:es|en}}, {{#language:cs|en}}
|descr= A MapComplete theme: A map with waste baskets
|material= {{yes|[https://mapcomplete.osm.be/ Yes]}}
|image= MapComplete_Screenshot.png
diff --git a/Logic/Actors/GeoLocationHandler.ts b/Logic/Actors/GeoLocationHandler.ts
index e5bb9ff7f..b754d6f60 100644
--- a/Logic/Actors/GeoLocationHandler.ts
+++ b/Logic/Actors/GeoLocationHandler.ts
@@ -139,10 +139,14 @@ export default class GeoLocationHandler {
private CopyGeolocationIntoMapstate() {
const features: UIEventSource = new UIEventSource([])
this.currentUserLocation = new StaticFeatureSource(features)
+ // For some weird reason, the 'Object.keys' method doesn't work for the 'location: GeolocationCoordinates'-object and will thus not copy all the properties when using {...location}
+ // As such, they are copied here
+ const keysToCopy = ["speed", "accuracy", "altitude", "altitudeAccuracy", "heading"]
this.geolocationState.currentGPSLocation.addCallbackAndRun((location) => {
if (location === undefined) {
return
}
+
const feature = {
type: "Feature",
properties: {
@@ -156,6 +160,11 @@ export default class GeoLocationHandler {
coordinates: [location.longitude, location.latitude],
},
}
+ for (const key of keysToCopy) {
+ if (location[key] !== null) {
+ feature.properties[key] = location[key]
+ }
+ }
features.setData([feature])
})
diff --git a/Logic/Osm/OsmObject.ts b/Logic/Osm/OsmObject.ts
index fe279f890..11996a92c 100644
--- a/Logic/Osm/OsmObject.ts
+++ b/Logic/Osm/OsmObject.ts
@@ -164,6 +164,11 @@ export abstract class OsmObject {
})
}
+ public static DownloadHistory(id: NodeId): UIEventSource
+ public static DownloadHistory(id: WayId): UIEventSource
+ public static DownloadHistory(id: RelationId): UIEventSource
+
+ public static DownloadHistory(id: OsmId): UIEventSource
public static DownloadHistory(id: string): UIEventSource {
if (OsmObject.historyCache.has(id)) {
return OsmObject.historyCache.get(id)
@@ -181,6 +186,7 @@ export abstract class OsmObject {
const osmObjects: OsmObject[] = []
for (const element of elements) {
let osmObject: OsmObject = null
+ element.nodes = []
switch (type) {
case "node":
osmObject = new OsmNode(idN)
diff --git a/Logic/SimpleMetaTagger.ts b/Logic/SimpleMetaTagger.ts
index c68040a1a..ae8f9c8df 100644
--- a/Logic/SimpleMetaTagger.ts
+++ b/Logic/SimpleMetaTagger.ts
@@ -324,16 +324,9 @@ export default class SimpleMetaTaggers {
},
})
- Object.defineProperty(feature.properties, "_surface:ha", {
- enumerable: false,
- configurable: true,
- get: () => {
- const sqMeters = GeoOperations.surfaceAreaInSqMeters(feature)
- const sqMetersHa = "" + Math.floor(sqMeters / 1000) / 10
- delete feature.properties["_surface:ha"]
- feature.properties["_surface:ha"] = sqMetersHa
- return sqMetersHa
- },
+ Utils.AddLazyProperty(feature.properties, "_surface:ha", () => {
+ const sqMeters = GeoOperations.surfaceAreaInSqMeters(feature)
+ return "" + Math.floor(sqMeters / 1000) / 10
})
return true
diff --git a/Logic/Tags/RegexTag.ts b/Logic/Tags/RegexTag.ts
index c9693212e..0e1f4c658 100644
--- a/Logic/Tags/RegexTag.ts
+++ b/Logic/Tags/RegexTag.ts
@@ -25,6 +25,10 @@ export class RegexTag extends TagsFilter {
if (typeof possibleRegex === "string") {
return fromTag === possibleRegex
}
+ if (typeof fromTag.match !== "function") {
+ console.error("Error: fromTag is not a regex: ", fromTag, possibleRegex)
+ throw "Error: fromTag is not a regex: " + fromTag + possibleRegex
+ }
return fromTag.match(possibleRegex) !== null
}
diff --git a/Models/ThemeConfig/Json/LayerConfigJson.ts b/Models/ThemeConfig/Json/LayerConfigJson.ts
index feb5ea88c..2d6744967 100644
--- a/Models/ThemeConfig/Json/LayerConfigJson.ts
+++ b/Models/ThemeConfig/Json/LayerConfigJson.ts
@@ -290,8 +290,11 @@ export interface LayerConfigJson {
*/
tagRenderings?: (
| string
- | { builtin: string | string[]; override: Partial }
- | { id: string; builtin: string[]; override: Partial }
+ | {
+ id?: string
+ builtin: string | string[]
+ override: Partial
+ }
| QuestionableTagRenderingConfigJson
| (RewritableConfigJson<
(
diff --git a/Models/ThemeConfig/PointRenderingConfig.ts b/Models/ThemeConfig/PointRenderingConfig.ts
index 11d0e0953..bb6c5cce8 100644
--- a/Models/ThemeConfig/PointRenderingConfig.ts
+++ b/Models/ThemeConfig/PointRenderingConfig.ts
@@ -11,7 +11,6 @@ import { FixedUiElement } from "../../UI/Base/FixedUiElement"
import Img from "../../UI/Base/Img"
import Combine from "../../UI/Base/Combine"
import { VariableUiElement } from "../../UI/Base/VariableUIElement"
-import { html } from "svelte/types/compiler/utils/namespaces"
export default class PointRenderingConfig extends WithContextLoader {
private static readonly allowed_location_codes = new Set([
diff --git a/Models/ThemeConfig/TagRenderingConfig.ts b/Models/ThemeConfig/TagRenderingConfig.ts
index a3a388d92..7105d021f 100644
--- a/Models/ThemeConfig/TagRenderingConfig.ts
+++ b/Models/ThemeConfig/TagRenderingConfig.ts
@@ -301,6 +301,10 @@ export default class TagRenderingConfig {
if (allKeys.length > 1 && !allHaveIfNot) {
throw `${context}: A multi-answer is defined, which generates values over multiple keys. Please define ifnot-tags too on every mapping`
}
+
+ if (allKeys.length > 1 && this.freeform?.key !== undefined) {
+ throw `${context}: A multi-answer is defined, which generates values over multiple keys. This is incompatible with having a freeform key`
+ }
}
}
diff --git a/UI/Base/SubtleButton.svelte b/UI/Base/SubtleButton.svelte
index 98cf35ad0..88d6b233b 100644
--- a/UI/Base/SubtleButton.svelte
+++ b/UI/Base/SubtleButton.svelte
@@ -6,44 +6,45 @@
import Translations from "../i18n/Translations";
import { ImmutableStore } from "../../Logic/UIEventSource.js";
- export let imageUrl: string | BaseUIElement = undefined;
- export let message: string | BaseUIElement = undefined;
+ export let imageUrl: string | BaseUIElement = undefined
+ export let message: string | BaseUIElement = undefined
export let options: {
url?: string | Store
newTab?: boolean
imgSize?: string
extraClasses?: string
- } = {};
+ } = {}
// Website to open when clicked
- let href : Store = undefined
- if(options?.url){
- href = typeof options?.url == "string" ? new ImmutableStore(options.url) : options.url;
+ let href: Store = undefined
+ if (options?.url) {
+ href = typeof options?.url == "string" ? new ImmutableStore(options.url) : options.url
}
let imgElem: HTMLElement;
let msgElem: HTMLElement;
let imgClasses = "block justify-center shrink-0 mr-4 " + (options?.imgSize ?? "h-11 w-11");
const dispatch = createEventDispatcher<{click}>()
+
onMount(() => {
// Image
if (imgElem && imageUrl) {
- let img: BaseUIElement;
+ let img: BaseUIElement
if ((imageUrl ?? "") === "") {
- img = undefined;
+ img = undefined
} else if (typeof imageUrl !== "string") {
- img = imageUrl?.SetClass(imgClasses);
+ img = imageUrl?.SetClass(imgClasses)
}
- if (img) imgElem.replaceWith(img.ConstructElement());
+ if (img) imgElem.replaceWith(img.ConstructElement())
}
// Message
if (msgElem && message) {
- let msg = Translations.W(message)?.SetClass("block text-ellipsis no-images flex-shrink");
- msgElem.replaceWith(msg.ConstructElement());
+ let msg = Translations.W(message)?.SetClass("block text-ellipsis no-images flex-shrink")
+ msgElem.replaceWith(msg.ConstructElement())
}
- });
+ })