diff --git a/Models/ThemeConfig/Json/LayoutConfigJson.ts b/Models/ThemeConfig/Json/LayoutConfigJson.ts index be7c3ccf53..cf1346b32a 100644 --- a/Models/ThemeConfig/Json/LayoutConfigJson.ts +++ b/Models/ThemeConfig/Json/LayoutConfigJson.ts @@ -118,18 +118,6 @@ export interface LayoutConfigJson { * Default: overpassMaxZoom + 1 */ osmApiTileSize?: number - - /** - * A tagrendering depicts how to show some tags or how to show a question for it. - * - * These tagrenderings are applied to _all_ the loaded layers and are a way to reuse tagrenderings. - * Note that if multiple themes are loaded (e.g. via the personal theme) - * that these roamingRenderings are applied to the layers of the OTHER themes too! - * - * In order to prevent them to do too much damage, all the overpass-tags of the layers are taken and combined as OR. - * These tag renderings will only show up if the object matches this filter. - */ - roamingRenderings?: (TagRenderingConfigJson | string)[], /** * An override applied on all layers of the theme. diff --git a/Models/ThemeConfig/Json/TagRenderingConfigJson.ts b/Models/ThemeConfig/Json/TagRenderingConfigJson.ts index 532690af70..f834ec19b6 100644 --- a/Models/ThemeConfig/Json/TagRenderingConfigJson.ts +++ b/Models/ThemeConfig/Json/TagRenderingConfigJson.ts @@ -170,9 +170,4 @@ export interface TagRenderingConfigJson { }[] - /** - * If set to true, this tagRendering will escape the current layer and attach itself to all the other layers too. - * However, it will _only_ be shown if it matches the overpass-tags of the layer it was originally defined in. - */ - roaming?: boolean } \ No newline at end of file diff --git a/assets/layers/bike_shop/bike_shop.json b/assets/layers/bike_shop/bike_shop.json index 1cdc7d5e62..7992c7c7f9 100644 --- a/assets/layers/bike_shop/bike_shop.json +++ b/assets/layers/bike_shop/bike_shop.json @@ -744,6 +744,11 @@ ] }, "iconOverlays": [ + { + "if": "opening_hours~*", + "then": "isOpen", + "badge": true + }, { "if": "opening_hours~*", "then": "isOpen", diff --git a/assets/themes/buurtnatuur/buurtnatuur.json b/assets/themes/buurtnatuur/buurtnatuur.json index 03d04cffe9..12962edeec 100644 --- a/assets/themes/buurtnatuur/buurtnatuur.json +++ b/assets/themes/buurtnatuur/buurtnatuur.json @@ -124,6 +124,19 @@ "nl": "Voeg een ontbrekend, erkend natuurreservaat toe, bv. een gebied dat beheerd wordt door het ANB of natuurpunt" } } + ], + "mapRendering": [ + { + "icon": { + "render": "circle:#ffffff;./assets/themes/buurtnatuur/nature_reserve.svg" + }, + "iconSize": { + "render": "50,50,center" + }, + "location": [ + "point" + ] + } ] }, { @@ -222,6 +235,19 @@ "nl": "Voeg een ontbrekend park toe" } } + ], + "mapRendering": [ + { + "icon": { + "render": "circle:#ffffff;./assets/themes/buurtnatuur/park.svg" + }, + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point" + ] + } ] }, { @@ -339,6 +365,19 @@ "nl": "Voeg een ontbrekend bos toe aan de kaart" } } + ], + "mapRendering": [ + { + "icon": { + "render": "circle:#ffffff;./assets/themes/buurtnatuur/forest.svg" + }, + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point" + ] + } ] }, "viewpoint" diff --git a/assets/themes/campersite/campersite.json b/assets/themes/campersite/campersite.json index 670e45299e..f7d6586c6c 100644 --- a/assets/themes/campersite/campersite.json +++ b/assets/themes/campersite/campersite.json @@ -676,7 +676,31 @@ } } ], - "wayHandling": 2 + "wayHandling": 2, + "mapRendering": [ + { + "icon": { + "render": "circle:white;./assets/themes/campersite/caravan.svg", + "mappings": [ + { + "if": { + "and": [ + "fee=no" + ] + }, + "then": "circle:white;./assets/themes/campersite/caravan_green.svg" + } + ] + }, + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point", + "centroid" + ] + } + ] }, { "id": "dumpstations", @@ -1075,6 +1099,19 @@ "de": "Fügen Sie eine neue sanitäre Entsorgungsstation hinzu. Hier können Camper Abwasser oder chemischen Toilettenabfälle entsorgen. Oft gibt es auch Trinkwasser und Strom." } } + ], + "mapRendering": [ + { + "icon": { + "render": "circle:white;./assets/themes/campersite/sanitary_dump_station.svg" + }, + "iconSize": { + "render": "32,32,center" + }, + "location": [ + "point" + ] + } ] } ], diff --git a/assets/themes/climbing/climbing.json b/assets/themes/climbing/climbing.json index bfd84bba85..5174911cc8 100644 --- a/assets/themes/climbing/climbing.json +++ b/assets/themes/climbing/climbing.json @@ -215,7 +215,27 @@ } } ], - "wayHandling": 1 + "wayHandling": 1, + "mapRendering": [ + { + "icon": { + "render": "./assets/themes/climbing/club.svg" + }, + "iconOverlays": [ + { + "if": "opening_hours~*", + "then": "isOpen", + "badge": true + } + ], + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point" + ] + } + ] }, { "id": "climbing_gym", @@ -313,7 +333,27 @@ "iconSize": { "render": "40,40,center" }, - "wayHandling": 1 + "wayHandling": 1, + "mapRendering": [ + { + "icon": { + "render": "./assets/themes/climbing/climbing_gym.svg" + }, + "iconOverlays": [ + { + "if": "opening_hours~*", + "then": "isOpen", + "badge": true + } + ], + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point" + ] + } + ] }, { "id": "climbing_route", @@ -532,7 +572,21 @@ ] } ], - "wayHandling": 2 + "wayHandling": 2, + "mapRendering": [ + { + "icon": { + "render": "circle:white;./assets/themes/climbing/climbing_route.svg" + }, + "iconSize": { + "render": "28,28,center" + }, + "location": [ + "point", + "centroid" + ] + } + ] }, { "id": "climbing", @@ -801,6 +855,20 @@ "_difficulty_hist=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p['climbing:grade:french'])", "_length_hist=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').map(p => p['climbing:length'])", "_contained_climbing_routes_count=JSON.parse(feat.properties._contained_climbing_routes_properties ?? '[]').length" + ], + "mapRendering": [ + { + "icon": { + "render": "./assets/themes/climbing/climbing_no_rope.svg" + }, + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point", + "centroid" + ] + } ] }, { @@ -930,7 +998,15 @@ "color": { "render": "#ddff55AA" }, - "wayHandling": 0 + "wayHandling": 0, + "mapRendering": [ + { + "icon": "./assets/themes/climbing/climbing_unknown.svg", + "location": [ + "point" + ] + } + ] } ], "overrideAll": { diff --git a/assets/themes/cyclestreets/cyclestreets.json b/assets/themes/cyclestreets/cyclestreets.json index 9f332e1576..d5b76a7cb1 100644 --- a/assets/themes/cyclestreets/cyclestreets.json +++ b/assets/themes/cyclestreets/cyclestreets.json @@ -84,6 +84,14 @@ "width": "10", "tagRenderings": [ "images" + ], + "mapRendering": [ + { + "icon": "./assets/themes/cyclestreets/F111.svg", + "location": [ + "point" + ] + } ] }, { @@ -136,6 +144,14 @@ "width": "5", "tagRenderings": [ "images" + ], + "mapRendering": [ + { + "icon": "./assets/themes/cyclestreets/F113.svg", + "location": [ + "point" + ] + } ] }, { @@ -201,6 +217,14 @@ }, "tagRenderings": [ "images" + ], + "mapRendering": [ + { + "icon": "./assets/svg/pencil.svg", + "location": [ + "point" + ] + } ] } ], diff --git a/assets/themes/facadegardens/facadegardens.json b/assets/themes/facadegardens/facadegardens.json index d9fc9ed62d..295c3e03e1 100644 --- a/assets/themes/facadegardens/facadegardens.json +++ b/assets/themes/facadegardens/facadegardens.json @@ -454,7 +454,78 @@ } } ], - "wayHandling": 1 + "wayHandling": 1, + "mapRendering": [ + { + "icon": { + "render": "circle:white;./assets/themes/facadegardens/geveltuin.svg", + "mappings": [ + { + "if": { + "and": [ + "direct_sunlight=yes" + ] + }, + "then": "circle:white;./assets/themes/facadegardens/zon.svg" + }, + { + "if": { + "and": [ + "direct_sunlight=partial" + ] + }, + "then": "circle:white;./assets/themes/facadegardens/halfzon.svg" + }, + { + "if": { + "and": [ + "direct_sunlight=no" + ] + }, + "then": "circle:white;./assets/themes/facadegardens/schaduw.svg" + } + ] + }, + "iconOverlays": [ + { + "if": "plant~.*vine.*", + "then": "circle:white;./assets/themes/facadegardens/klimplant.svg", + "badge": true + }, + { + "if": "plant~.*groundcover.*", + "then": "circle:white;./assets/themes/facadegardens/bodembedekker.svg", + "badge": true + }, + { + "if": "edible=true", + "then": "circle:white;./assets/themes/facadegardens/eetbaar.svg", + "badge": true + }, + { + "if": "rain_barel=yes", + "then": "circle:white;./assets/themes/facadegardens/gevelton.svg", + "badge": true + }, + { + "if": "plant~.*shrub.*", + "then": "circle:white;./assets/themes/facadegardens/struik.svg", + "badge": true + }, + { + "if": "plant~.*flower.*", + "then": "circle:white;./assets/themes/facadegardens/bloei.svg", + "badge": true + } + ], + "iconSize": { + "render": "50,50,center" + }, + "location": [ + "point" + ] + } + ] } ] } \ No newline at end of file diff --git a/assets/themes/fruit_trees/fruit_trees.json b/assets/themes/fruit_trees/fruit_trees.json index 9f9e84fab6..88b145e6be 100644 --- a/assets/themes/fruit_trees/fruit_trees.json +++ b/assets/themes/fruit_trees/fruit_trees.json @@ -68,6 +68,19 @@ "nl": "Voeg een boomgaard toe (als punt - omtrek nog te tekenen)" } } + ], + "mapRendering": [ + { + "icon": { + "render": "./assets/themes/buurtnatuur/forest.svg" + }, + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point" + ] + } ] }, { @@ -170,6 +183,19 @@ "nl": "Voeg hier een boom toe" } } + ], + "mapRendering": [ + { + "icon": { + "render": "./assets/themes/fruit_trees/fruit_tree.svg" + }, + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point" + ] + } ] } ] diff --git a/assets/themes/grb.json b/assets/themes/grb.json index d55577e5a2..d279a64098 100644 --- a/assets/themes/grb.json +++ b/assets/themes/grb.json @@ -197,7 +197,26 @@ "render": "#00f" }, "wayHandling": 2, - "presets": [] + "presets": [], + "mapRendering": [ + { + "label": { + "mappings": [ + { + "if": "addr:housenumber~*", + "then": "
{addr:housenumber}
" + } + ] + }, + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point", + "centroid" + ] + } + ] } ], "hideFromOverview": true, diff --git a/assets/themes/natuurpunt/natuurpunt.json b/assets/themes/natuurpunt/natuurpunt.json index fc9bcd4cd4..ceaa8a6846 100644 --- a/assets/themes/natuurpunt/natuurpunt.json +++ b/assets/themes/natuurpunt/natuurpunt.json @@ -32,8 +32,8 @@ "enablePdfDownload": true, "enableDownload": true, "hideFromOverview": true, - "#": "Disable clustering for this theme", "clustering": { + "#": "Disable clustering for this theme", "maxZoom": 0 }, "layers": [ diff --git a/assets/themes/uk_addresses/uk_addresses.json b/assets/themes/uk_addresses/uk_addresses.json index 09e93cbe6a..ee782ca105 100644 --- a/assets/themes/uk_addresses/uk_addresses.json +++ b/assets/themes/uk_addresses/uk_addresses.json @@ -108,6 +108,29 @@ } ] } + ], + "mapRendering": [ + { + "icon": { + "render": "./assets/themes/uk_addresses/housenumber_unknown.svg", + "mappings": [ + { + "if": "_embedding_object:id~*", + "then": "./assets/themes/uk_addresses/housenumber_unknown_small.svg" + }, + { + "if": "_imported=yes", + "then": "./assets/themes/uk_addresses/housenumber_unknown_small.svg" + } + ] + }, + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point" + ] + } ] }, { @@ -254,7 +277,36 @@ "then": "#ff0" } ] - } + }, + "mapRendering": [ + { + "icon": { + "render": "./assets/themes/uk_addresses/housenumber_ok.svg", + "mappings": [ + { + "if": { + "or": [ + { + "and": [ + "addr:housenumber=", + "nohousenumber!=yes" + ] + }, + "addr:street=" + ] + }, + "then": "./assets/themes/uk_addresses/housenumber_unknown.svg" + } + ] + }, + "iconSize": { + "render": "40,40,center" + }, + "location": [ + "point" + ] + } + ] }, { "id": "named_streets", @@ -272,7 +324,14 @@ }, "width": { "render": "0" - } + }, + "mapRendering": [ + { + "location": [ + "point" + ] + } + ] } ] } \ No newline at end of file