diff --git a/Models/Constants.ts b/Models/Constants.ts
index 759557962..13d72da09 100644
--- a/Models/Constants.ts
+++ b/Models/Constants.ts
@@ -2,7 +2,7 @@ import {Utils} from "../Utils";
export default class Constants {
- public static vNumber = "0.9.7";
+ public static vNumber = "0.9.8";
// The user journey states thresholds when a new feature gets unlocked
public static userJourney = {
diff --git a/assets/layers/observation_tower/Tower_observation.svg b/assets/layers/observation_tower/Tower_observation.svg
new file mode 100644
index 000000000..2dd693970
--- /dev/null
+++ b/assets/layers/observation_tower/Tower_observation.svg
@@ -0,0 +1,38 @@
+
+
\ No newline at end of file
diff --git a/assets/layers/observation_tower/license_info.json b/assets/layers/observation_tower/license_info.json
new file mode 100644
index 000000000..06150da7d
--- /dev/null
+++ b/assets/layers/observation_tower/license_info.json
@@ -0,0 +1,12 @@
+[
+ {
+ "path": "Tower_observation.svg",
+ "license": "CC0",
+ "authors": [
+ "Teslaton"
+ ],
+ "sources": [
+ "https://wiki.openstreetmap.org/w/images/b/b9/Tower_observation.svg"
+ ]
+ }
+]
\ No newline at end of file
diff --git a/assets/layers/observation_tower/observation_tower.json b/assets/layers/observation_tower/observation_tower.json
new file mode 100644
index 000000000..188de7de0
--- /dev/null
+++ b/assets/layers/observation_tower/observation_tower.json
@@ -0,0 +1,158 @@
+{
+ "id": "observation_tower",
+ "name": {
+ "en": "Observation towers",
+ "nl": "Uitkijktorens"
+ },
+ "minzoom": 8,
+ "title": {
+ "render": {
+ "en": "Observation tower",
+ "nl": "Uitkijktoren"
+ },
+ "mappings": [{
+ "if": "name~*",
+ "then": {
+ "en": "{name}",
+ "nl": "{name}"
+ }
+ }]
+ },
+ "description": {
+ "en": "Towers with a panoramic view",
+ "nl": "Torens om van het uitzicht te genieten"
+ },
+ "tagRenderings": [
+ "images",
+ {
+ "#": "name",
+ "question": {
+ "en": "What is the name of this tower?",
+ "nl": "Heeft deze toren een naam?"
+ },
+ "render": {
+ "en": "This tower is called {name}",
+ "nl": "Deze toren heet {name}"
+ },
+ "freeform": {
+ "key": "name"
+ },
+ "mappings": [
+ {
+ "if": "noname=yes",
+ "then": {
+ "en": "This tower doesn't have a specific name",
+ "nl": "Deze toren heeft geen specifieke naam"
+ }
+ }
+ ]
+ },
+ {
+ "#": "Height",
+ "question": {
+ "en": "What is the height of this tower?",
+ "nl": "Hoe hoog is deze toren?"
+ },
+ "render": {
+ "en": "This tower is {height} high",
+ "nl": "Deze toren is {height} hoog"
+ },
+ "freeform": {
+ "key": "height",
+ "type": "pfloat"
+ }
+ },
+ {
+ "#": "Operator",
+ "question": {
+ "en": "Who maintains this tower?",
+ "nl": "Wie onderhoudt deze toren?"
+ },
+ "render": {
+ "nl": "Wordt onderhouden door {operator}",
+ "en": "Maintained by {operator}"
+ },
+ "freeform": {
+ "key": "operator"
+ }
+ },
+ "website",
+ {
+ "#": "Fee",
+ "question": {
+ "en": "How much does one have to pay to enter this tower?",
+ "nl": "Hoeveel moet men betalen om deze toren te bezoeken?"
+ },
+ "render": {
+ "en": "Visiting this tower costs {charge}",
+ "nl": "Deze toren bezoeken kost {charge}"
+ },
+ "freeform": {
+ "key": "charge",
+ "addExtraTags": ["fee=yes"]
+ },
+ "mappings": [
+ {
+ "if": {
+ "and": [
+ "fee=no",
+ "charge="
+ ]
+ },
+ "then": {
+ "en": "Free to visit",
+ "nl": "Gratis te bezoeken"
+ }
+ }
+ ]
+ },
+ {
+ "#": "Payment methods",
+ "builtin": "payment-options",
+ "override": {
+ "condition": {
+ "or": [
+ "fee=yes",
+ "charge~*"
+ ]
+ }
+ }
+ },
+ "wheelchair-access"
+ ],
+ "wayHandling": 1,
+ "icon": {
+ "render": "circle:white;./assets/layers/observation_tower/Tower_observation.svg"
+ },
+ "width": {
+ "render": "2"
+ },
+ "iconSize": {
+ "render": "40,40,center"
+ },
+ "color": {
+ "render": "#00f"
+ },
+ "presets": [
+ {
+ "tags": [
+ "man_made=tower",
+ "tower:type=observation"
+ ],
+ "title": {
+ "en": "observation tower",
+ "nl": "Uitkijktoren"
+ },
+ "description": {
+ "nl": "Een publiek toegankelijke uitkijktoren"
+ }
+ }
+ ],
+ "source": {
+ "osmTags": {
+ "and": [
+ "tower:type=observation"
+ ]
+ }
+ }
+}
\ No newline at end of file
diff --git a/assets/themes/observation_towers/observation_towers.json b/assets/themes/observation_towers/observation_towers.json
new file mode 100644
index 000000000..8d7fe2689
--- /dev/null
+++ b/assets/themes/observation_towers/observation_towers.json
@@ -0,0 +1,51 @@
+{
+ "id": "observation_towers",
+ "title": {
+ "en": "Observation towers",
+ "nl": "Uitkijktorens"
+ },
+ "shortDescription": {
+ "en": "Publicly accessible towers to enjoy the view",
+ "nl": "Publieke uitkijktorens om van het panorama te genieten"
+ },
+ "description": {
+ "nl": "Publieke uitkijktorens om van het panorama te genieten",
+ "en": "Publicly accessible towers to enjoy the view"
+ },
+ "language": [
+ "en",
+ "nl"
+ ],
+ "maintainer": "",
+ "icon": "./assets/layers/observation_tower/Tower_observation.svg",
+ "version": "0",
+ "startLat": 0,
+ "startLon": 0,
+ "startZoom": 1,
+ "widenFactor": 0.05,
+ "socialImage": "",
+ "layers": [
+ "observation_tower"
+ ],
+ "units": [
+ {
+ "appliesToKey": [
+ "height"
+ ],
+ "applicableUnits": [
+ {
+ "canonicalDenomination": "m",
+ "alternativeDenomination": [
+ "meter",
+ "mtr"
+ ],
+ "human": {
+ "nl": " meter",
+ "en": " meter"
+ }
+ }
+ ],
+ "eraseInvalidValues": true
+ }
+ ]
+}
\ No newline at end of file
diff --git a/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json b/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json
index e96c0e81e..5c85d321b 100644
--- a/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json
+++ b/assets/themes/toerisme_vlaanderen/toerisme_vlaanderen.json
@@ -36,7 +36,29 @@
"bench",
"waste_basket",
"bike_repair_station",
- "binocular"
+ "binocular",
+ "observation_tower"
],
- "hideFromOverview": true
+ "hideFromOverview": true,
+ "units": [
+ {
+ "appliesToKey": [
+ "height"
+ ],
+ "applicableUnits": [
+ {
+ "canonicalDenomination": "m",
+ "alternativeDenomination": [
+ "meter",
+ "mtr"
+ ],
+ "human": {
+ "nl": " meter",
+ "en": " meter"
+ }
+ }
+ ],
+ "eraseInvalidValues": true
+ }
+ ]
}
\ No newline at end of file