This is an automated email from the ASF dual-hosted git repository.

bchapuis pushed a commit to branch basemaps-schema
in repository https://gitbox.apache.org/repos/asf/incubator-baremaps.git

commit 603072337042281f8c760c5e4af019c6a00692c4
Author: Bertil Chapuis <[email protected]>
AuthorDate: Sun Jan 5 22:15:24 2025 +0100

    Filter the tags in the views
---
 basemap/layers/aerialway/create.sql  |    7 +-
 basemap/layers/aeroway/create.sql    |    7 +-
 basemap/layers/amenity/create.sql    |   10 +-
 basemap/layers/amenity/icon.js       | 2066 ----------------------------------
 basemap/layers/attraction/create.sql |    7 +-
 basemap/layers/barrier/create.sql    |    7 +-
 basemap/layers/boundary/create.sql   |    8 +-
 basemap/layers/building/create.sql   |   77 +-
 basemap/layers/building/tileset.js   |   59 +-
 basemap/layers/highway/create.sql    |   16 +-
 basemap/layers/landuse/create.sql    |    5 +-
 basemap/layers/leisure/create.sql    |   10 +-
 basemap/layers/man_made/create.sql   |    5 +-
 basemap/layers/natural/create.sql    |    9 +-
 basemap/layers/point/create.sql      |   37 +-
 basemap/layers/power/create.sql      |    7 +-
 basemap/layers/railway/create.sql    |   12 +-
 basemap/layers/tourism/create.sql    |    7 +-
 18 files changed, 189 insertions(+), 2167 deletions(-)

diff --git a/basemap/layers/aerialway/create.sql 
b/basemap/layers/aerialway/create.sql
index 950580223..6e301b703 100644
--- a/basemap/layers/aerialway/create.sql
+++ b/basemap/layers/aerialway/create.sql
@@ -14,7 +14,12 @@
 -- limitations under the License.
 
 CREATE OR REPLACE VIEW osm_aerialway AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object(
+            'aerialway', tags -> 'aerialway'
+    ) AS tags,
+    geom
 FROM osm_way
 WHERE geom IS NOT NULL
   AND tags ? 'aerialway';
\ No newline at end of file
diff --git a/basemap/layers/aeroway/create.sql 
b/basemap/layers/aeroway/create.sql
index 77863fb33..6a2bb9a96 100644
--- a/basemap/layers/aeroway/create.sql
+++ b/basemap/layers/aeroway/create.sql
@@ -14,7 +14,12 @@
 -- limitations under the License.
 
 CREATE OR REPLACE VIEW osm_aeroway AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object(
+            'aeroway', tags -> 'aeroway'
+    ) AS tags,
+    geom
 FROM osm_way
 WHERE geom IS NOT NULL
   AND tags ? 'aeroway';
\ No newline at end of file
diff --git a/basemap/layers/amenity/create.sql 
b/basemap/layers/amenity/create.sql
index 2ff023d21..bd391cb5b 100644
--- a/basemap/layers/amenity/create.sql
+++ b/basemap/layers/amenity/create.sql
@@ -16,11 +16,17 @@
 -- Zoom levels 20 to 13
 
 CREATE OR REPLACE VIEW osm_amenity AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object('amenity', tags -> 'amenity') AS tags,
+    geom
 FROM osm_way
 WHERE tags ? 'amenity'
 UNION
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object('amenity', tags -> 'amenity') AS tags,
+    geom
 FROM osm_relation
 WHERE tags ? 'amenity';
 
diff --git a/basemap/layers/amenity/icon.js b/basemap/layers/amenity/icon.js
deleted file mode 100644
index 14ec646c4..000000000
--- a/basemap/layers/amenity/icon.js
+++ /dev/null
@@ -1,2066 +0,0 @@
-/**
- Licensed to the Apache Software Foundation (ASF) under one or more
- contributor license agreements.  See the NOTICE file distributed with
- this work for additional information regarding copyright ownership.
- The ASF licenses this file to you under the Apache License, Version 2.0
- (the 'License'); you may not use this file except in compliance with
- the License.  You may obtain a copy of the License at
-
- http://www.apache.org/licenses/LICENSE-2.0
-
- Unless required by applicable law or agreed to in writing, software
- distributed under the License is distributed on an 'AS IS' BASIS,
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- See the License for the specific language governing permissions and
- limitations under the License.
- **/
-import {asLayerObject, withSortKeys} from '../../utils/utils.js';
-import theme from '../../theme.js';
-
-/**
- * These directives are based on the following source:
- * https://wiki.openstreetmap.org/wiki/OpenStreetMap_Carto/Symbols
- */
-let directives = [
-
-    // Gastronomy
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'restaurant'],
-            ['==', ['get', 'amenity'], 'food_court']
-        ],
-        'icon-image': 'restaurant',
-        'icon-color': theme.gastronomyIconColor,
-        'text-color': theme.gastronomyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'cafe'],
-        'icon-image': 'cafe',
-        'icon-color': theme.gastronomyIconColor,
-        'text-color': theme.gastronomyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'fast_food'],
-        'icon-image': 'fast_food',
-        'icon-color': theme.gastronomyIconColor,
-        'text-color': theme.gastronomyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'bar'],
-        'icon-image': 'bar',
-        'icon-color': theme.gastronomyIconColor,
-        'text-color': theme.gastronomyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'pub'],
-        'icon-image': 'pub',
-        'icon-color': theme.gastronomyIconColor,
-        'text-color': theme.gastronomyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'ice_cream'],
-        'icon-image': 'ice_cream',
-        'icon-color': theme.gastronomyIconColor,
-        'text-color': theme.gastronomyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'biergarten'],
-        'icon-image': 'biergarten',
-        'icon-color': theme.gastronomyIconColor,
-        'text-color': theme.gastronomyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'outdoor_seating'],
-        'icon-image': 'outdoor_seating',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-
-    // Culture, entertainment, and arts
-    {
-        'filter': ['==', ['get', 'tourism'], 'artwork'],
-        'icon-image': 'artwork',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'community_centre'],
-        'icon-image': 'community_centre',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'library'],
-        'icon-image': 'library',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'museum'],
-        'icon-image': 'museum',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'theatre'],
-        'icon-image': 'theatre',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'cinema'],
-        'icon-image': 'cinema',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'nightclub'],
-        'icon-image': 'nightclub',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'arts_centre'],
-        'icon-image': 'arts_centre',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'gallery'],
-        'icon-image': 'art',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'internet_cafe'],
-        'icon-image': 'internet_cafe',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'casino'],
-        'icon-image': 'casino',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'public_bookcase'],
-        'icon-image': 'public_bookcase',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'amusement_arcade'],
-        'icon-image': 'amusement_arcade',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-
-    // Historical objects
-    {
-        'filter': ['==', ['get', 'historic'], 'memorial'],
-        'icon-image': 'memorial',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'historic'], 'archaeological_site'],
-        'icon-image': 'archaeological_site',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'historic'], 'wayside_shrine'],
-        'icon-image': 'wayside_shrine',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'historic'], 'monument'],
-        'icon-image': 'monument',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'historic'], 'castle'],
-        'icon-image': 'castle',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': [
-            'any',
-            [
-                'all',
-                ['==', ['get', 'historic'], 'memorial'],
-                ['==', ['get', 'memorial'], 'plaque']
-            ],
-            [
-                'all',
-                ['==', ['get', 'historic'], 'memorial'],
-                ['==', ['get', 'memorial'], 'blue_plaque']
-            ]
-        ],
-        'icon-image': 'plaque',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': [
-            'any',
-            [
-                'all',
-                ['==', ['get', 'historic'], 'memorial'],
-                ['==', ['get', 'memorial'], 'statue']
-            ],
-            [
-                'all',
-                ['==', ['get', 'tourism'], 'artwork'],
-                ['==', ['get', 'artwork_type'], 'statue']
-            ]
-        ],
-        'icon-image': 'statue',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'historic'], 'memorial'],
-            ['==', ['get', 'memorial'], 'stone']
-        ],
-        'icon-image': 'stone',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': [
-            'any',
-            [
-                'all',
-                ['==', ['get', 'historic'], 'castle'],
-                ['==', ['get', 'castle_type'], 'palace']
-            ],
-            [
-                'all',
-                ['==', ['get', 'historic'], 'castle'],
-                ['==', ['get', 'castle_type'], 'stately']
-            ]
-        ],
-        'icon-image': 'palace',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    // {
-    //     'filter': ['==', ['get', 'historic'], 'castle'], =>defensive / 
=>fortress / =>castrum / =>shiro / =>kremlin
-    //     'icon-image': 'fortress',
-    //     'icon-color': theme.historyIconColor,
-    //     'text-color': theme.historyIconColor
-    // },
-    {
-        'filter': ['==', ['get', 'historic'], 'fort'],
-        'icon-image': 'historic_fort',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': [
-            'any',
-            [
-                'all',
-                ['==', ['get', 'historic'], 'memorial'],
-                ['==', ['get', 'memorial'], 'bust']
-            ],
-            [
-                'all',
-                ['==', ['get', 'tourism'], 'artwork'],
-                ['==', ['get', 'artwork_type'], 'bust']
-            ]
-        ],
-        'icon-image': 'bust',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'historic'], 'city_gate'],
-        'icon-image': 'city_gate',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'historic'], 'manor'],
-            [
-                'all',
-                ['==', ['get', 'historic'], 'castle'],
-                ['==', ['get', 'castle_type'], 'manor']
-            ]
-        ],
-        'icon-image': 'manor',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-    {
-        'filter': ['==', ['get', 'man_made'], 'obelisk'],
-        'icon-image': 'obelisk',
-        'icon-color': theme.historyIconColor,
-        'text-color': theme.historyIconColor
-    },
-
-    // Leisure, recreation, and sport
-    {
-        'filter': ['==', ['get', 'leisure'], 'playground'],
-        'icon-image': 'playground',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'leisure'], 'fitness_centre'],
-            ['==', ['get', 'leisure'], 'fitness_station']
-        ],
-        'icon-image': 'fitness',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'golf_course'],
-        'icon-image': 'golf',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'leisure'], 'water_park'],
-            ['==', ['get', 'leisure'], 'swimming_area'],
-            [
-                'all',
-                ['==', ['get', 'leisure'], 'sports_centre'],
-                ['==', ['get', 'sport'], 'swimming']
-            ]
-        ],
-        'icon-image': 'water_park',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'massage'],
-        'icon-image': 'massage',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'sauna'],
-        'icon-image': 'sauna',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'public_bath'],
-        'icon-image': 'public_bath',
-        'icon-color': theme.pointIconPublicBathIconColor,
-        'text-color': theme.pointIconPublicBathTextColor
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'miniature_golf'],
-        'icon-image': 'miniature_golf',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'beach_resort'],
-        'icon-image': 'beach_resort',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'fishing'],
-        'icon-image': 'fishing',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'bowling_alley'],
-        'icon-image': 'bowling_alley',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'dog_park'],
-        'icon-image': 'dog_park',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'golf'], 'pin'],
-        'icon-image': 'leisure_golf_pin',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-
-    // Waste management
-    {
-        'filter': ['==', ['get', 'amenity'], 'toilets'],
-        'icon-image': 'toilets',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'recycling'],
-        'icon-image': 'recycling',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'waste_basket'],
-        'icon-image': 'waste_basket',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'waste_disposal'],
-        'icon-image': 'waste_disposal',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'vending_machine'],
-            ['==', ['get', 'vending'], 'excrement_bags']
-        ],
-        'icon-image': 'excrement_bags',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-
-    // Outdoor
-    {
-        'filter': ['==', ['get', 'amenity'], 'bench'],
-        'icon-image': 'bench',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'shelter'],
-        'icon-image': 'shelter',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'drinking_water'],
-        'icon-image': 'drinking_water',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'picnic_site'],
-        'icon-image': 'picnic',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'fountain'],
-        'icon-image': 'fountain',
-        'icon-color': theme.waterIconColor,
-        'text-color': theme.waterIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'camp_site'],
-        'icon-image': 'camping',
-        'icon-color': theme.accommodationIconColor,
-        'text-color': theme.accommodationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'picnic_table'],
-        'icon-image': 'picnic',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'caravan_site'],
-        'icon-image': 'caravan_park',
-        'icon-color': theme.accommodationIconColor,
-        'text-color': theme.accommodationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'bbq'],
-        'icon-image': 'bbq',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'shower'],
-        'icon-image': 'shower',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'firepit'],
-        'icon-image': 'firepit',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'bird_hide'],
-        'icon-image': 'bird_hide',
-        'icon-color': theme.leisureIconColor,
-        'text-color': theme.leisureIconColor,
-    },
-
-    // Tourism and accommodation
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'tourism'], 'information'],
-            ['==', ['get', 'information'], 'guidepost']
-        ],
-        'icon-image': 'guidepost',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'tourism'], 'information'],
-            ['==', ['get', 'information'], 'board']
-        ],
-        'icon-image': 'board',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': [
-            'any',
-            [
-                'all',
-                ['==', ['get', 'tourism'], 'information'],
-                ['==', ['get', 'information'], 'map']
-            ],
-            [
-                'all',
-                ['==', ['get', 'tourism'], 'information'],
-                ['==', ['get', 'information'], 'tactile_map']
-            ]
-        ],
-        'icon-image': 'map',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'tourism'], 'information'],
-            ['==', ['get', 'information'], 'office']
-        ],
-        'icon-image': 'office',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'tourism'], 'information'],
-            ['==', ['get', 'information'], 'terminal']
-        ],
-        'icon-image': 'terminal',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'tourism'], 'information'],
-            ['==', ['get', 'information'], 'audioguide']
-        ],
-        'icon-image': 'audioguide',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'viewpoint'],
-        'icon-image': 'viewpoint',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'hotel'],
-        'icon-image': 'hotel',
-        'icon-color': theme.accommodationIconColor,
-        'text-color': theme.accommodationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'guest_house'],
-        'icon-image': 'guest_house',
-        'icon-color': theme.accommodationIconColor,
-        'text-color': theme.accommodationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'hostel'],
-        'icon-image': 'hostel',
-        'icon-color': theme.accommodationIconColor,
-        'text-color': theme.accommodationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'chalet'],
-        'icon-image': 'chalet',
-        'icon-color': theme.accommodationIconColor,
-        'text-color': theme.accommodationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'motel'],
-        'icon-image': 'motel',
-        'icon-color': theme.accommodationIconColor,
-        'text-color': theme.accommodationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'apartment'],
-        'icon-image': 'apartment',
-        'icon-color': theme.accommodationIconColor,
-        'text-color': theme.accommodationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'alpine_hut'],
-        'icon-image': 'alpinehut',
-        'icon-color': theme.accommodationIconColor,
-        'text-color': theme.accommodationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'tourism'], 'wilderness_hut'],
-        'icon-image': 'wilderness_hut',
-        'icon-color': theme.accommodationIconColor,
-        'text-color': theme.accommodationIconColor
-    },
-
-    // Finance
-    {
-        'filter': ['==', ['get', 'amenity'], 'bank'],
-        'icon-image': 'bank',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'atm'],
-        'icon-image': 'atm',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'bureau_de_change'],
-        'icon-image': 'bureau_de_change',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-
-    // Healthcare
-    {
-        'filter': ['==', ['get', 'amenity'], 'pharmacy'],
-        'icon-image': 'pharmacy',
-        'icon-color': theme.healthIconColor,
-        'text-color': theme.healthIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'hospital'],
-        'icon-image': 'hospital',
-        'icon-color': theme.healthIconColor,
-        'text-color': theme.healthIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'amenity'], 'clinic'],
-            ['==', ['get', 'amenity'], 'doctors']
-        ],
-        'icon-image': 'doctors',
-        'icon-color': theme.healthIconColor,
-        'text-color': theme.healthIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'dentist'],
-        'icon-image': 'dentist',
-        'icon-color': theme.healthIconColor,
-        'text-color': theme.healthIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'veterinary'],
-        'icon-image': 'veterinary',
-        'icon-color': theme.healthIconColor,
-        'text-color': theme.healthIconColor
-    },
-
-    // Communication
-    {
-        'filter': ['==', ['get', 'amenity'], 'post_box'],
-        'icon-image': 'post_box',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'post_office'],
-        'icon-image': 'post_office',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    // {
-    //     'filter': ['==', ['get', 'amenity'], 'parcel_locker'],
-    //     'icon-image': 'parcel_locker',
-    //     'icon-color': theme.amenityIconColor,
-    //     'text-color': theme.amenityIconColor
-    // },
-    {
-        'filter': ['==', ['get', 'amenity'], 'telephone'],
-        'icon-image': 'telephone',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'emergency'], 'phone'],
-        'icon-image': 'emergency_phone',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-
-    // Transportation
-    {
-        'filter': ['==', ['get', 'amenity'], 'parking'],
-        'icon-image': 'parking',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['all',
-                ['==', ['get', 'amenity'], 'parking'],
-                ['==', ['get', 'parking'], 'lane'],
-            ],
-            ['all',
-                ['==', ['get', 'amenity'], 'parking'],
-                ['==', ['get', 'parking'], 'street_side']
-            ]
-        ],
-        'icon-image': 'parking_subtle',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'highway'], 'bus_stop'],
-        'icon-image': 'bus_stop',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'fuel'],
-        'icon-image': 'fuel',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'bicycle_parking'],
-        'icon-image': 'bicycle_parking',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'railway'], 'station'],
-            ['==', ['get', 'railway'], 'halt'],
-            ['==', ['get', 'railway'], 'tram_stop']
-        ],
-        'icon-image': 'place-6',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'bus_station'],
-        'icon-image': 'bus_station',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'aeroway'], 'helipad'],
-        'icon-image': 'helipad',
-        'icon-color': theme.transportDefaultIconColor,
-        'text-color': theme.transportDefaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'aeroway'], 'aerodrome'],
-        'icon-image': 'aerodrome',
-        'icon-color': theme.transportDefaultIconColor,
-        'text-color': theme.transportDefaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'bicycle_rental'],
-        'icon-image': 'rental_bicycle',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'leisure'], 'slipway'],
-        'icon-image': 'slipway',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'taxi'],
-        'icon-image': 'taxi',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'vending_machine'],
-            ['==', ['get', 'vending'], 'parking_tickets']
-        ],
-        'icon-image': 'parking_tickets',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'railway'], 'subway_entrance'],
-        'icon-image': 'entrance',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'charging_station'],
-        'icon-image': 'charging_station',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'highway'], 'elevator'],
-        'icon-image': 'elevator',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'car_rental'],
-        'icon-image': 'rental_car',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'parking_entrance'],
-            ['==', ['get', 'parking'], 'underground']
-        ],
-        'icon-image': 'parking_entrance_underground',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'vending_machine'],
-            ['==', ['get', 'vending'], 'public_transport_tickets']
-        ],
-        'icon-image': 'public_transport_tickets',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'ferry_terminal'],
-        'icon-image': 'ferry',
-        'icon-color': theme.transportDefaultIconColor,
-        'text-color': theme.transportDefaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'motorcycle_parking'],
-        'icon-image': 'motorcycle_parking',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'bicycle_repair_station'],
-        'icon-image': 'bicycle_repair_station',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'boat_rental'],
-        'icon-image': 'boat_rental',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'parking_entrance'],
-            ['==', ['get', 'parking'], 'multi-storey']
-        ],
-        'icon-image': 'parking_entrance_multistorey',
-        'icon-color': theme.transportationIconColor,
-        'text-color': theme.transportationIconColor
-    },
-
-    // Road features
-    // {
-    //     'filter': ['==', ['get', 'oneway'], 'yes'],
-    //     'icon-image': 'oneway',
-    //     'icon-color': theme.defaultIconColor,
-    //     'text-color': theme.defaultIconColor
-    // },
-    {
-        'filter': ['==', ['get', 'barrier'], 'gate'],
-        'icon-image': 'gate',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'highway'], 'traffic_signals'],
-        'icon-image': 'traffic_light',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    // {
-    //     'filter': [
-    //         'any',
-    //         ['==', ['get', 'railway'], 'level_crossing'],
-    //         ['==', ['get', 'railway'], 'crossing']
-    //     ],
-    //     'icon-image': 'level_crossing2',
-    //     'icon-color': theme.defaultIconColor,
-    //     'text-color': theme.defaultIconColor
-    // },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'railway'], 'level_crossing'],
-            ['==', ['get', 'railway'], 'crossing']
-        ],
-        'icon-image': 'level_crossing',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'barrier'], 'bollard'],
-            ['==', ['get', 'barrier'], 'block'],
-            ['==', ['get', 'barrier'], 'turnstile'],
-            ['==', ['get', 'barrier'], 'log']
-        ],
-        'icon-image': 'gate',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'barrier'], 'lift_gate'],
-            ['==', ['get', 'barrier'], 'swing_gate']
-        ],
-        'icon-image': 'lift_gate',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'barrier'], 'cycle_barrier'],
-        'icon-image': 'cycle_barrier',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'barrier'], 'stile'],
-        'icon-image': 'stile',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    // {
-    //     'filter': ['==', ['get', 'highway'], 'mini_roundabout'],
-    //     'icon-image': 'highway_mini_roundabout',
-    //     'icon-color': theme.defaultIconColor,
-    //     'text-color': theme.defaultIconColor
-    // },
-    {
-        'filter': ['==', ['get', 'barrier'], 'toll_booth'],
-        'icon-image': 'toll_booth',
-        'icon-color': theme.accommodationIconColor,
-        'text-color': theme.accommodationIconColor
-    },
-    {
-        'filter': ['==', ['get', 'barrier'], 'cattle_grid'],
-        'icon-image': 'barrier_cattle_grid',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'barrier'], 'kissing_gate'],
-        'icon-image': 'kissing_gate',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'barrier'], 'full-height_turnstile'],
-        'icon-image': 'full-height_turnstile',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'barrier'], 'motorcycle_barrier'],
-        'icon-image': 'motorcycle_barrier',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'ford'], 'yes'],
-            ['==', ['get', 'ford'], 'stepping_stones']
-        ],
-        'icon-image': 'ford',
-        'icon-color': theme.waterIconColor,
-        'text-color': theme.waterwayTextColor
-    },
-    // {
-    //     'filter': ['==', ['get', 'mountain_pass'], 'yes'],
-    //     'icon-image': 'mountain_pass',
-    //     'icon-color': theme.transportationIconColor,
-    //     'text-color': theme.transportationIconColor
-    // },
-    {
-        'filter': ['==', ['get', 'waterway'], 'dam'],
-        'icon-image': 'place-6',
-        'icon-color': theme.waterIconColor,
-        'text-color': theme.waterTextColor
-    },
-    {
-        'filter': ['==', ['get', 'waterway'], 'weir'],
-        'icon-image': 'place-6',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'waterway'], 'lock_gate'],
-        'icon-image': 'place-6',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    // {
-    //     'filter': ['==', ['get', 'Node with highway'], 'turning_circle at 
way with highway'],
-    //     'icon-image': 'turning_circle_on_highway_track',
-    //     'icon-color': theme.defaultIconColor,
-    //     'text-color': theme.defaultIconColor
-    // },
-
-    // Nature
-    {
-        'filter': ['==', ['get', 'natural'], 'peak'],
-        'icon-image': 'peak',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'natural'], 'spring'],
-        'icon-image': 'spring',
-        'icon-color': theme.waterIconColor,
-        'text-color': theme.waterIconColor
-    },
-    {
-        'filter': ['==', ['get', 'natural'], 'cave_entrance'],
-        'icon-image': 'cave',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'waterway'], 'waterfall'],
-        'icon-image': 'waterfall',
-        'icon-color': theme.waterIconColor,
-        'text-color': theme.waterIconColor
-    },
-    {
-        'filter': ['==', ['get', 'natural'], 'saddle'],
-        'icon-image': 'saddle',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': ['==', ['get', 'natural'], 'volcano'],
-        'icon-image': 'peak',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-
-    // Administrative facilities
-    {
-        'filter': ['==', ['get', 'amenity'], 'police'],
-        'icon-image': 'police',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'townhall'],
-        'icon-image': 'town_hall',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'fire_station'],
-        'icon-image': 'firestation',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'social_facility'],
-        'icon-image': 'social_facility',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'courthouse'],
-        'icon-image': 'courthouse',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'office'], 'diplomatic'],
-            ['==', ['get', 'diplomatic'], 'embassy']
-        ],
-        'icon-image': 'diplomatic',
-        'icon-color': theme.officeIconColor,
-        'text-color': theme.officeIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'office'], 'diplomatic'],
-            ['==', ['get', 'diplomatic'], 'consulate']
-        ],
-        'icon-image': 'consulate',
-        'icon-color': theme.officeIconColor,
-        'text-color': theme.officeIconColor
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'prison'],
-        'icon-image': 'prison',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor
-    },
-
-    // Religious place
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'place_of_worship'],
-            ['==', ['get', 'religion'], 'christian']
-        ],
-        'icon-image': 'christian',
-        'icon-color': theme.religionIconColor,
-        'text-color': theme.religionIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'place_of_worship'],
-            ['==', ['get', 'religion'], 'jewish']
-        ],
-        'icon-image': 'jewish',
-        'icon-color': theme.religionIconColor,
-        'text-color': theme.religionIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'place_of_worship'],
-            ['==', ['get', 'religion'], 'muslim']
-        ],
-        'icon-image': 'muslim',
-        'icon-color': theme.religionIconColor,
-        'text-color': theme.religionIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'place_of_worship'],
-            ['==', ['get', 'religion'], 'taoist']
-        ],
-        'icon-image': 'taoist',
-        'icon-color': theme.religionIconColor,
-        'text-color': theme.religionIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'place_of_worship'],
-            ['==', ['get', 'religion'], 'hindu']
-        ],
-        'icon-image': 'hinduist',
-        'icon-color': theme.religionIconColor,
-        'text-color': theme.religionIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'place_of_worship'],
-            ['==', ['get', 'religion'], 'buddhist']
-        ],
-        'icon-image': 'buddhist',
-        'icon-color': theme.religionIconColor,
-        'text-color': theme.religionIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'place_of_worship'],
-            ['==', ['get', 'religion'], 'shinto']
-        ],
-        'icon-image': 'shintoist',
-        'icon-color': theme.religionIconColor,
-        'text-color': theme.religionIconColor
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'amenity'], 'place_of_worship'],
-            ['==', ['get', 'religion'], 'sikh']
-        ],
-        'icon-image': 'sikhist',
-        'icon-color': theme.religionIconColor,
-        'text-color': theme.religionIconColor
-    },
-    // {
-    //     'filter': [
-    //         'all',
-    //         ['==', ['get', 'amenity'], 'place_of_worship'],
-    //         ['==', ['get', 'without or other religion'], '* value']
-    //     ],
-    //     'icon-image': 'place_of_worship',
-    //     'icon-color': theme.religionIconColor,
-    //     'text-color': theme.religionIconColor
-    // },
-
-    // Shop and services
-    {
-        'filter': ['==', ['get', 'amenity'], 'marketplace'],
-        'icon-image': 'marketplace',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'convenience'],
-        'icon-image': 'convenience',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'supermarket'],
-        'icon-image': 'supermarket',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'shop'], 'clothes'],
-            ['==', ['get', 'shop'], 'fashion']
-        ],
-        'icon-image': 'clothes',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'hairdresser'],
-        'icon-image': 'hairdresser',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'bakery'],
-        'icon-image': 'bakery',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'car_repair'],
-        'icon-image': 'car_repair',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['any',
-            ['==', ['get', 'shop'], 'doityourself'],
-            ['==', ['get', 'shop'], 'hardware']
-        ],
-        'icon-image': 'diy',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'car'],
-        'icon-image': 'car',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['any',
-            ['==', ['get', 'shop'], 'kiosk'],
-            ['==', ['get', 'shop'], 'newsagent']
-        ],
-        'icon-image': 'newsagent',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'beauty'],
-        'icon-image': 'beauty',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'car_wash'],
-        'icon-image': 'car_wash',
-        'icon-color': theme.amenityIconColor,
-        'text-color': theme.amenityIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'butcher'],
-        'icon-image': 'butcher',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['any',
-            ['==', ['get', 'shop'], 'alcohol'],
-            ['==', ['get', 'shop'], 'wine']
-        ],
-        'icon-image': 'alcohol',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'furniture'],
-        'icon-image': 'furniture',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'florist'],
-        'icon-image': 'florist',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'mobile_phone'],
-        'icon-image': 'mobile_phone',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'electronics'],
-        'icon-image': 'electronics',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'shoes'],
-        'icon-image': 'shoes',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'car_parts'],
-        'icon-image': 'car_parts',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'shop'], 'greengrocer'],
-            ['==', ['get', 'shop'], 'farm']
-        ],
-        'icon-image': 'greengrocer',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'shop'], 'laundry'],
-            ['==', ['get', 'shop'], 'dry_cleaning']
-        ],
-        'icon-image': 'laundry',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'optician'],
-        'icon-image': 'optician',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'shop'], 'jewelry'],
-            ['==', ['get', 'shop'], 'jewellery']
-        ],
-        'icon-image': 'jewelry',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'books'],
-        'icon-image': 'library',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'gift'],
-        'icon-image': 'gift',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'department_store'],
-        'icon-image': 'department_store',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'bicycle'],
-        'icon-image': 'bicycle',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'shop'], 'confectionery'],
-            ['==', ['get', 'shop'], 'chocolate'],
-            ['==', ['get', 'shop'], 'pastry']
-        ],
-        'icon-image': 'confectionery',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'variety_store'],
-        'icon-image': 'variety_store',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'travel_agency'],
-        'icon-image': 'travel_agency',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'sports'],
-        'icon-image': 'sports',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'chemist'],
-        'icon-image': 'chemist',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'computer'],
-        'icon-image': 'computer',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'stationery'],
-        'icon-image': 'stationery',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'pet'],
-        'icon-image': 'pet',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'beverages'],
-        'icon-image': 'beverages',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'shop'], 'cosmetics'],
-            ['==', ['get', 'shop'], 'perfumery']
-        ],
-        'icon-image': 'perfumery',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'tyres'],
-        'icon-image': 'tyres',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'motorcycle'],
-        'icon-image': 'motorcycle',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'garden_centre'],
-        'icon-image': 'garden_centre',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'copyshop'],
-        'icon-image': 'copyshop',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'toys'],
-        'icon-image': 'toys',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'deli'],
-        'icon-image': 'deli',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'tobacco'],
-        'icon-image': 'tobacco',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'seafood'],
-        'icon-image': 'seafood',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'interior_decoration'],
-        'icon-image': 'interior_decoration',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'ticket'],
-        'icon-image': 'ticket',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'shop'], 'photo'],
-            ['==', ['get', 'shop'], 'photo_studio'],
-            ['==', ['get', 'shop'], 'photography']
-        ],
-        'icon-image': 'photo',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'shop'], 'trade'],
-            ['==', ['get', 'shop'], 'wholesale']
-        ],
-        'icon-image': 'trade',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'outdoor'],
-        'icon-image': 'outdoor',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'houseware'],
-        'icon-image': 'houseware',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'art'],
-        'icon-image': 'art',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'paint'],
-        'icon-image': 'paint',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'fabric'],
-        'icon-image': 'fabric',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'bookmaker'],
-        'icon-image': 'bookmaker',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'second_hand'],
-        'icon-image': 'second_hand',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'charity'],
-        'icon-image': 'charity',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'bed'],
-        'icon-image': 'bed',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'medical_supply'],
-        'icon-image': 'medical_supply',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'hifi'],
-        'icon-image': 'hifi',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'music'],
-        'icon-image': 'music',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'coffee'],
-        'icon-image': 'coffee',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'musical_instrument'],
-        'icon-image': 'musical_instrument',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'tea'],
-        'icon-image': 'tea',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'video'],
-        'icon-image': 'video',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'bag'],
-        'icon-image': 'bag',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'carpet'],
-        'icon-image': 'carpet',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'video_games'],
-        'icon-image': 'video_games',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'vehicle_inspection'],
-        'icon-image': 'vehicle_inspection',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'shop'], 'dairy'],
-        'icon-image': 'dairy',
-        'icon-color': theme.shopIconColor,
-        'text-color': theme.shopIconColor,
-    },
-    // {
-    //     'filter': ['!=', ['get', 'shop'], 'yes'],
-    //     'icon-image': 'place-4',
-    // 'icon-color': theme.shopIconColor,
-    // 'text-color': theme.shopIconColor,
-    // },
-    {
-        'filter': ['==', ['get', 'office'], '*'],
-        'icon-image': 'office',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-    {
-        'filter': [
-            'any',
-            ['==', ['get', 'amenity'], 'nursing_home'],
-            ['==', ['get', 'amenity'], 'childcare']
-        ],
-        'icon-image': 'place-6',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor
-    },
-
-    // Landmarks, man-made infrastructure, masts and towers
-    {
-        'filter': ['any', ['==', ['get', 'man_made'], 'storage_tank'], ['==', 
['get', 'man_made'], 'silo']],
-        'icon-image': 'storage_tank',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'man_made'], 'tower'],
-        'icon-image': 'tower_generic',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['all', ['==', ['get', 'man_made'], 'tower'], ['==', ['get', 
'tower:type'], 'communication']],
-        'icon-image': 'tower_cantilever_communication',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'power'], 'generator'],
-            ['any',
-                ['==', ['get', 'generator:source'], 'wind'],
-                ['==', ['get', 'generator:method'], 'wind_turbine)']
-            ]
-        ],
-        'icon-image': 'generator_wind',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'amenity'], 'hunting_stand'],
-        'icon-image': 'hunting_stand',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['any', ['==', ['get', 'historic'], 'wayside_cross'], ['==', 
['get', 'man_made'], 'cross']],
-        'icon-image': 'christian',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'man_made'], 'water_tower'],
-        'icon-image': 'water_tower',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'man_made'], 'mast'],
-        'icon-image': 'mast',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        filter: ['==', ['get', 'military'], 'bunker'],
-        'icon-image': 'bunker',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'man_made'], 'chimney'],
-        'icon-image': 'chimney',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'any',
-            [
-                'all',
-                ['==', ['get', 'man_made'], 'tower'],
-                ['==', ['get', 'tower:type'], 'observation']
-            ],
-            [
-                'all',
-                ['==', ['get', 'man_made'], 'tower'],
-                ['==', ['get', 'tower:type'], 'watchtower']
-            ]
-        ],
-        'icon-image': 'tower_observation',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'tower'],
-            ['==', ['get', 'tower:type'], 'bell_tower']
-        ],
-        'icon-image': 'tower_bell_tower',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'tower'],
-            ['==', ['get', 'tower:type'], 'lighting']
-        ],
-        'icon-image': 'tower_lighting',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'man_made'], 'lighthouse'],
-        'icon-image': 'lighthouse',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'advertising'], 'column'],
-        'icon-image': 'column',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'man_made'], 'crane'],
-        'icon-image': 'crane',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'man_made'], 'windmill'],
-        'icon-image': 'windmill',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'tower'],
-            ['==', ['get', 'tower:type'], 'communication'],
-            ['==', ['get', 'tower:construction'], 'lattice']
-        ],
-        'icon-image': 'tower_lattice_communication',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'mast'],
-            ['==', ['get', 'tower:type'], 'lighting']
-        ],
-        'icon-image': 'mast_lighting',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'mast'],
-            ['==', ['get', 'tower:type'], 'communication']
-        ],
-        'icon-image': 'mast_communications',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': ['==', ['get', 'man_made'], 'communications_tower'],
-        'icon-image': 'communication_tower',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'tower'],
-            ['==', ['get', 'tower:type'], 'defensive']
-        ],
-        'icon-image': 'tower_defensive',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'tower'],
-            ['==', ['get', 'tower:type'], 'cooling']
-        ],
-        'icon-image': 'tower_cooling',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'tower'],
-            ['==', ['get', 'tower:construction'], 'lattice']
-        ],
-        'icon-image': 'tower_lattice',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'tower'],
-            ['==', ['get', 'tower:type'], 'lighting'],
-            ['==', ['get', 'tower:construction'], 'lattice']
-        ],
-        'icon-image': 'tower_lattice_lighting',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'tower'],
-            ['==', ['get', 'tower:construction'], 'dish']
-        ],
-        'icon-image': 'tower_dish',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'tower'],
-            ['==', ['get', 'tower:construction'], 'dome']
-        ],
-        'icon-image': 'tower_dome',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'telescope'],
-            ['==', ['get', 'telescope:type'], 'radio']
-        ],
-        'icon-image': 'telescope_dish',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-    {
-        'filter': [
-            'all',
-            ['==', ['get', 'man_made'], 'telescope'],
-            ['==', ['get', 'telescope:type'], 'optical']
-        ],
-        'icon-image': 'telescope_dome',
-        'icon-color': theme.manMadeIconColor,
-        'text-color': theme.manMadeIconColor,
-    },
-
-    // Electricity
-    // {
-    //     'filter': ['==', ['get', 'power'], 'tower'],
-    //     'icon-image': 'power_tower',
-    //     'icon-color': theme.powerIconColor,
-    //     'text-color': theme.powerIconColor,
-    // },
-    // {
-    //     'filter': ['==', ['get', 'power'], 'pole'],
-    //     'icon-image': 'place-6',
-    //     'icon-color': theme.powerIconColor,
-    //     'text-color': theme.powerIconColor,
-    // },
-
-    // Places
-    {
-        'filter': ['==', ['get', 'place'], 'city'],
-        'icon-image': 'place-6',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor,
-    },
-    // {
-    //     'filter': ['has', 'capital'],
-    //     'icon-image': 'place_capital',
-    //     'icon-color': theme.defaultIconColor,
-    //     'text-color': theme.defaultIconColor,
-    // },
-    // {
-    //     'filter': ['==', ['get', 'entrance'], 'yes'],
-    //     'icon-image': 'entrance',
-    //     'icon-color': theme.defaultIconColor,
-    //     'text-color': theme.defaultIconColor,
-    // },
-    // {
-    //     'filter': ['==', ['get', 'entrance'], 'main'],
-    //     'icon-image': 'entrance',
-    //     'icon-color': theme.defaultIconColor,
-    //     'text-color': theme.defaultIconColor,
-    // },
-    // {
-    //     'filter': ['==', ['get', 'entrance'], 'service'],
-    //     'icon-image': 'entrance',
-    //     'icon-color': theme.defaultIconColor,
-    //     'text-color': theme.defaultIconColor,
-    // },
-    {
-        'filter': [
-            'all',
-            ['has', 'entrance'],
-            ['==', ['get', 'access'], 'no']
-        ],
-        'icon-image': 'entrance',
-        'icon-color': theme.defaultIconColor,
-        'text-color': theme.defaultIconColor,
-    },
-];
-
-export default asLayerObject(withSortKeys(directives), {
-    id: 'icon',
-    type: 'symbol',
-    source: 'baremaps',
-    'source-layer': 'point',
-    'minzoom': 14,
-    layout: {
-        visibility: 'visible',
-        'icon-size': 1,
-        'icon-anchor': 'bottom',
-        'text-font': ['Noto Sans Regular'],
-        'text-size': 11,
-        'text-field': ['get', 'name'],
-        'text-anchor': 'top',
-        'text-optional': true,
-        'text-max-width': 5,
-    },
-    paint: {
-        'icon-opacity': 1,
-        'icon-translate-anchor': 'map',
-        'icon-halo-color': theme.pointIconLayerIconHaloColor,
-        'icon-halo-width': 1,
-        'text-halo-width': 1,
-        'text-halo-color': theme.pointIconLayerTextHaloColor,
-    },
-});
\ No newline at end of file
diff --git a/basemap/layers/attraction/create.sql 
b/basemap/layers/attraction/create.sql
index c9ef71be8..398ba5296 100644
--- a/basemap/layers/attraction/create.sql
+++ b/basemap/layers/attraction/create.sql
@@ -14,7 +14,12 @@
 -- limitations under the License.
 
 CREATE OR REPLACE VIEW osm_attraction AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object(
+            'attraction', tags -> 'attraction'
+    ) AS tags,
+    geom
 FROM osm_way
 WHERE geom IS NOT NULL
   AND tags ? 'attraction';
\ No newline at end of file
diff --git a/basemap/layers/barrier/create.sql 
b/basemap/layers/barrier/create.sql
index 776b1573d..ee941e2d4 100644
--- a/basemap/layers/barrier/create.sql
+++ b/basemap/layers/barrier/create.sql
@@ -14,7 +14,12 @@
 -- limitations under the License.
 
 CREATE OR REPLACE VIEW osm_barrier AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object(
+            'barrier', tags -> 'barrier'
+    ) AS tags,
+    geom
 FROM osm_way
 WHERE geom IS NOT NULL
   AND tags ? 'barrier';
\ No newline at end of file
diff --git a/basemap/layers/boundary/create.sql 
b/basemap/layers/boundary/create.sql
index 096903b68..2e1d87322 100644
--- a/basemap/layers/boundary/create.sql
+++ b/basemap/layers/boundary/create.sql
@@ -14,7 +14,13 @@
 -- limitations under the License.
 
 CREATE OR REPLACE VIEW osm_boundary AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object(
+            'boudary', tags -> 'boudary',
+            'admin_level', tags -> 'admin_level'
+    ) AS tags,
+    geom
 FROM osm_way
 WHERE geom IS NOT NULL
   AND tags ? 'boundary';
\ No newline at end of file
diff --git a/basemap/layers/building/create.sql 
b/basemap/layers/building/create.sql
index 0ffa20118..8ceff8258 100644
--- a/basemap/layers/building/create.sql
+++ b/basemap/layers/building/create.sql
@@ -15,28 +15,59 @@
 
 CREATE OR REPLACE VIEW osm_building AS
 SELECT id,
-       tags
-           || jsonb_build_object('extrusion:base',
-                                 CASE
-                                     WHEN tags ? 'min_height'
-                                         THEN convert_to_number(tags ->> 
'min_height', 0)
-                                     WHEN tags ? 'building:min_height'
-                                         THEN convert_to_number(tags ->> 
'building:min_height', 0)
-                                     WHEN tags ? 'building:min_level'
-                                         THEN convert_to_number(tags ->> 
'building:min_level', 0) * 3
-                                     ELSE 0
-                                     END)
-           || jsonb_build_object('extrusion:height',
-                                 CASE
-                                     WHEN tags ? 'height'
-                                         THEN convert_to_number(tags ->> 
'height', 6)
-                                     WHEN tags ? 'building:height'
-                                         THEN convert_to_number(tags ->> 
'building:height', 6)
-                                     WHEN tags ? 'building:levels'
-                                         THEN convert_to_number(tags ->> 
'building:levels', 2) * 3
-                                     ELSE 6
-                                     END) as tags,
+       jsonb_build_object(
+               'addr:housenumber', tags -> 'addr:housenumber',
+               'extrusion:base',
+               CASE
+                   WHEN tags ? 'min_height'
+                       THEN convert_to_number(tags ->> 'min_height', 0)
+                   WHEN tags ? 'building:min_height'
+                       THEN convert_to_number(tags ->> 'building:min_height', 
0)
+                   WHEN tags ? 'building:min_level'
+                       THEN convert_to_number(tags ->> 'building:min_level', 
0) * 3
+                   ELSE 0
+                   END,
+               'extrusion:height',
+               CASE
+                   WHEN tags ? 'height'
+                       THEN convert_to_number(tags ->> 'height', 6)
+                   WHEN tags ? 'building:height'
+                       THEN convert_to_number(tags ->> 'building:height', 6)
+                   WHEN tags ? 'building:levels'
+                       THEN convert_to_number(tags ->> 'building:levels', 2) * 
3
+                   ELSE 6
+                   END) as tags,
        geom
-FROM osm_polygon
+FROM osm_way
 WHERE (tags ? 'building' OR tags ? 'building:part')
-  AND ((NOT tags ? 'layer') OR convert_to_number(tags ->> 'layer', 0) >= 0)
\ No newline at end of file
+  AND ((NOT tags ? 'layer') OR convert_to_number(tags ->> 'layer', 0) >= 0)
+UNION
+SELECT id,
+       jsonb_build_object(
+               'aaddr:housenumber', tags -> 'addr:housenumber',
+               'extrusion:base',
+               CASE
+                   WHEN tags ? 'min_height'
+                       THEN convert_to_number(tags ->> 'min_height', 0)
+                   WHEN tags ? 'building:min_height'
+                       THEN convert_to_number(tags ->> 'building:min_height', 
0)
+                   WHEN tags ? 'building:min_level'
+                       THEN convert_to_number(tags ->> 'building:min_level', 
0) * 3
+                   ELSE 0
+                   END,
+               'extrusion:height',
+               CASE
+                   WHEN tags ? 'height'
+                       THEN convert_to_number(tags ->> 'height', 6)
+                   WHEN tags ? 'building:height'
+                       THEN convert_to_number(tags ->> 'building:height', 6)
+                   WHEN tags ? 'building:levels'
+                       THEN convert_to_number(tags ->> 'building:levels', 2) * 
3
+                   ELSE 6
+                   END) as tags,
+       geom
+FROM osm_relation
+WHERE (tags ? 'building' OR tags ? 'building:part')
+  AND ((NOT tags ? 'layer') OR convert_to_number(tags ->> 'layer', 0) >= 0)
+
+
diff --git a/basemap/layers/building/tileset.js 
b/basemap/layers/building/tileset.js
index f68e137ba..c55173d80 100644
--- a/basemap/layers/building/tileset.js
+++ b/basemap/layers/building/tileset.js
@@ -21,64 +21,7 @@ export default {
         {
             minzoom: 13,
             maxzoom: 20,
-            sql: `
-                SELECT
-                    id,
-                    tags
-                        || jsonb_build_object('extrusion:base',
-                            CASE
-                                WHEN tags ? 'min_height'
-                                    THEN convert_to_number(tags ->> 
'min_height', 0)
-                                WHEN tags ? 'building:min_height'
-                                    THEN convert_to_number(tags ->> 
'building:min_height', 0)
-                                WHEN tags ? 'building:min_level'
-                                    THEN convert_to_number(tags ->> 
'building:min_level', 0) * 3
-                                ELSE 0
-                            END)
-                        || jsonb_build_object('extrusion:height', 
-                            CASE
-                                WHEN tags ? 'height'
-                                    THEN convert_to_number(tags ->> 'height', 
6)
-                                WHEN tags ? 'building:height'
-                                    THEN convert_to_number(tags ->> 
'building:height', 6)
-                                WHEN tags ? 'building:levels'
-                                    THEN convert_to_number(tags ->> 
'building:levels', 2) * 3
-                                ELSE 6
-                            END) as tags,
-                    geom
-                FROM osm_way
-                WHERE (tags ? 'building' OR tags ? 'building:part') AND ((NOT 
tags ? 'layer') OR convert_to_number(tags ->> 'layer', 0) >= 0)`,
-        },
-        {
-            minzoom: 13,
-            maxzoom: 20,
-            sql: `
-                SELECT
-                    id,
-                    tags
-                        || jsonb_build_object('extrusion:base',
-                            CASE
-                                WHEN tags ? 'min_height'
-                                    THEN convert_to_number(tags ->> 
'min_height', 0)
-                                WHEN tags ? 'building:min_height'
-                                    THEN convert_to_number(tags ->> 
'building:min_height', 0)
-                                WHEN tags ? 'building:min_level'
-                                    THEN convert_to_number(tags ->> 
'building:min_level', 0) * 3
-                                ELSE 0
-                            END)
-                        || jsonb_build_object('extrusion:height',
-                            CASE
-                                WHEN tags ? 'height'
-                                    THEN convert_to_number(tags ->> 'height', 
6)
-                                WHEN tags ? 'building:height'
-                                    THEN convert_to_number(tags ->> 
'building:height', 6)
-                                WHEN tags ? 'building:levels'
-                                    THEN convert_to_number(tags ->> 
'building:levels', 2) * 3
-                                ELSE 6
-                            END) as tags,
-                    geom
-                FROM osm_relation
-                WHERE (tags ? 'building' OR tags ? 'building:part') AND ((NOT 
tags ? 'layer') OR convert_to_number(tags ->> 'layer', 0) >= 0)`,
+            sql: `SELECT id, tags, geom FROM osm_building`,
         },
     ],
 }
diff --git a/basemap/layers/highway/create.sql 
b/basemap/layers/highway/create.sql
index 2f60242f0..a01ab8ecd 100644
--- a/basemap/layers/highway/create.sql
+++ b/basemap/layers/highway/create.sql
@@ -16,7 +16,21 @@
 -- Zoom levels 20-13
 
 CREATE OR REPLACE VIEW osm_highway AS
-SELECT id, tags, geom
+SELECT id,
+       jsonb_build_object(
+               'highway', tags -> 'highway',
+                'footway', tags -> 'footway',
+               'sidewalk', tags -> 'sidewalk',
+               'cycleway', tags -> 'cycleway',
+               'bridge', tags -> 'bridge',
+               'tunnel', tags -> 'tunnel',
+               'access', tags -> 'access',
+               'area', tags -> 'area',
+               'bicycle', tags -> 'bicycle',
+               'construction', tags -> 'construction',
+               'name', tags -> 'name'
+       ) AS tags,
+       geom
 FROM osm_way
 WHERE osm_way.geom IS NOT NULL
   AND tags ? 'highway';
diff --git a/basemap/layers/landuse/create.sql 
b/basemap/layers/landuse/create.sql
index 12a209c0a..c317aba01 100644
--- a/basemap/layers/landuse/create.sql
+++ b/basemap/layers/landuse/create.sql
@@ -16,7 +16,10 @@
 -- Zoom levels 20 to 13
 
 CREATE OR REPLACE VIEW osm_landuse AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object('landuse', tags -> 'landuse') AS tags,
+    geom
 FROM osm_way
 WHERE tags ? 'landuse'
 UNION
diff --git a/basemap/layers/leisure/create.sql 
b/basemap/layers/leisure/create.sql
index bcbe2531b..b93e2cad8 100644
--- a/basemap/layers/leisure/create.sql
+++ b/basemap/layers/leisure/create.sql
@@ -16,11 +16,17 @@
 -- Zoom levels 20 to 13
 
 CREATE OR REPLACE VIEW osm_leisure AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object('leisure', tags -> 'leisure') AS tags,
+    geom
 FROM osm_way
 WHERE tags ? 'leisure'
 UNION
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object('leisure', tags -> 'leisure') AS tags,
+    geom
 FROM osm_relation
 WHERE tags ? 'leisure';
 
diff --git a/basemap/layers/man_made/create.sql 
b/basemap/layers/man_made/create.sql
index 9e8641f78..9c0e9089d 100644
--- a/basemap/layers/man_made/create.sql
+++ b/basemap/layers/man_made/create.sql
@@ -14,7 +14,10 @@
 -- limitations under the License.
 
 CREATE OR REPLACE VIEW osm_man_made AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object('man_made', tags -> 'man_made') AS tags,
+    geom
 FROM osm_way
 WHERE geom IS NOT NULL
   AND tags ? 'man_made'
\ No newline at end of file
diff --git a/basemap/layers/natural/create.sql 
b/basemap/layers/natural/create.sql
index 360487c36..55f003baa 100644
--- a/basemap/layers/natural/create.sql
+++ b/basemap/layers/natural/create.sql
@@ -16,7 +16,14 @@
 -- Zoom levels 20 to 13
 
 CREATE OR REPLACE VIEW osm_natural AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object(
+            'natural', tags -> 'natural',
+            'surface', tags -> 'surface',
+            'lake', tags -> 'lake'
+    ) AS tags,
+    geom
 FROM osm_way
 WHERE tags ? 'natural'
 UNION
diff --git a/basemap/layers/point/create.sql b/basemap/layers/point/create.sql
index 91ad9c374..3ca9e8c45 100644
--- a/basemap/layers/point/create.sql
+++ b/basemap/layers/point/create.sql
@@ -1,9 +1,44 @@
 CREATE OR REPLACE VIEW osm_point AS
-SELECT id, tags, geom
+SELECT id,
+       jsonb_build_object(
+               'amenity', tags -> 'amenity',
+               'leisure', tags -> 'leisure',
+               'tourism', tags -> 'tourism',
+               'historic', tags -> 'historic',
+               'man_made', tags -> 'man_made',
+               'shop', tags -> 'shop',
+               'sport', tags -> 'sport',
+               'natural', tags -> 'natural',
+               'waterway', tags -> 'waterway',
+               'power', tags -> 'power',
+               'office', tags -> 'office',
+               'diplomatic', tags -> 'diplomatic',
+               'religion', tags -> 'religion',
+               'place', tags -> 'place',
+               'capital', tags -> 'capital',
+               'barrier', tags -> 'barrier',
+               'highway', tags -> 'highway',
+               'railway', tags -> 'railway',
+               'emergency', tags -> 'emergency',
+               'aeroway', tags -> 'aeroway',
+               'military', tags -> 'military',
+               'generator:source', tags -> 'generator:source',
+               'generator:method', tags -> 'generator:method',
+               'tower:type', tags -> 'tower:type',
+               'tower:construction', tags -> 'tower:construction',
+               'castle_type', tags -> 'castle_type',
+               'artwork_type', tags -> 'artwork_type',
+               'memorial', tags -> 'memorial',
+               'diplomatic', tags -> 'diplomatic',
+               'name', tags -> 'name',
+               'population', tags -> 'population'
+       ) AS tags,
+       geom
 FROM osm_node
 WHERE geom IS NOT NULL
   AND tags != '{}';
 
+
 CREATE OR REPLACE VIEW osm_point_z20 AS
 SELECT *
 FROM osm_point;
diff --git a/basemap/layers/power/create.sql b/basemap/layers/power/create.sql
index 8781ff798..15e286010 100644
--- a/basemap/layers/power/create.sql
+++ b/basemap/layers/power/create.sql
@@ -1,5 +1,10 @@
 CREATE OR REPLACE VIEW osm_power AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object(
+        'power', tags -> 'power'
+    ) AS tags,
+    geom
 FROM osm_way
 WHERE geom IS NOT NULL
   AND tags ->> 'power' IN ('cable', 'line', 'minor_line', 'plant', 
'substation');
\ No newline at end of file
diff --git a/basemap/layers/railway/create.sql 
b/basemap/layers/railway/create.sql
index 49e9f5247..25a210416 100644
--- a/basemap/layers/railway/create.sql
+++ b/basemap/layers/railway/create.sql
@@ -16,12 +16,16 @@
 DROP MATERIALIZED VIEW IF EXISTS osm_railway CASCADE;
 CREATE MATERIALIZED VIEW IF NOT EXISTS osm_railway AS
 SELECT id, tags, geom
-FROM (SELECT min(id)                                                           
             as id,
-             jsonb_build_object('railway', tags -> 'railway', 'service', tags 
-> 'service') as tags,
-             (st_dump(st_linemerge(st_collect(geom)))).geom                    
             as geom
+FROM (SELECT min(id)                                        as id,
+             jsonb_build_object(
+                     'railway', tags -> 'railway',
+                     'service', tags -> 'service',
+                     'tunnel', tags -> 'tunnel'
+             )                                              as tags,
+             (st_dump(st_linemerge(st_collect(geom)))).geom as geom
       FROM osm_way
       WHERE tags ->> 'railway' IN ('light_rail', 'monorail', 'rail', 'subway', 
'tram')
-      GROUP BY tags -> 'railway', tags -> 'service') AS mergedDirective
+      GROUP BY tags -> 'railway', tags -> 'service', tags -> 'tunnel') AS 
mergedDirective
 WITH NO DATA;
 
 CREATE OR REPLACE VIEW osm_railway_z20 AS
diff --git a/basemap/layers/tourism/create.sql 
b/basemap/layers/tourism/create.sql
index 0c5dd6e4b..6bc082c93 100644
--- a/basemap/layers/tourism/create.sql
+++ b/basemap/layers/tourism/create.sql
@@ -14,7 +14,12 @@
 -- limitations under the License.
 
 CREATE OR REPLACE VIEW osm_tourism AS
-SELECT id, tags, geom
+SELECT
+    id,
+    jsonb_build_object(
+        'tourism', tags -> 'tourism'
+    ) AS tags,
+    geom
 FROM osm_relation
 WHERE geom IS NOT NULL
   AND tags ? 'tourism';
\ No newline at end of file

Reply via email to