You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@baremaps.apache.org by bc...@apache.org on 2024/02/20 14:04:44 UTC

(incubator-baremaps) 01/01: Add spritezero icons and instructions

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

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

commit 93dd995a0c71d5e031a50b231cc7fd94c174e4f4
Author: Bertil Chapuis <bc...@gmail.com>
AuthorDate: Tue Feb 20 15:04:32 2024 +0100

    Add spritezero icons and instructions
---
 basemap/assets/README.md     |   35 +
 basemap/assets/icons.json    | 2050 -----------------------------------------
 basemap/assets/icons.md      |   15 -
 basemap/assets/icons.png     |  Bin 150034 -> 0 bytes
 basemap/assets/icons@1x.json | 2050 +++++++++++++++++++++++++++++++++++++++++
 basemap/assets/icons@1x.png  |  Bin 0 -> 84217 bytes
 basemap/assets/icons@2x.json | 2050 +++++++++++++++++++++++++++++++++++++++++
 basemap/assets/icons@2x.png  |  Bin 0 -> 84217 bytes
 basemap/assets/icons@4x.json | 2050 +++++++++++++++++++++++++++++++++++++++++
 basemap/assets/icons@4x.png  |  Bin 0 -> 84217 bytes
 basemap/layers/point/icon.js | 2066 ------------------------------------------
 11 files changed, 6185 insertions(+), 4131 deletions(-)

diff --git a/basemap/assets/README.md b/basemap/assets/README.md
new file mode 100644
index 00000000..aa6f4c6c
--- /dev/null
+++ b/basemap/assets/README.md
@@ -0,0 +1,35 @@
+# OpenStreetMap-Carto Icons
+
+The icons stored in this directory come from the [OpenStreetMap-Carto](https://github.com/gravitystorm/openstreetmap-carto/)
+project released under the CC0 Public Domain Dedication, version 1.0, as published by Creative Commons.
+
+Created by Andy Allan <an...@gravitystorm.co.uk> and contributors.
+Based on original cartography by Steve Chilton and others.
+
+Both spritezero and spreet can be used to generate the png and json files from the SVG files.
+
+## Spritezero
+
+[Spritezero](https://github.com/elastic/spritezero#readme), while unmaintained, is currently the preferred tool to generate the png and json files from the SVG files.
+
+```
+volta install node@10
+npm install -g @elastic/spritezero-cli
+spritezero --ratio=1 --sdf icons@1x icons
+spritezero --ratio=1 --sdf icons@2x icons
+spritezero --ratio=1 --sdf icons@4x icons
+```
+
+We fake ratio 2 and 4 as spritezero's generated files are broken.
+
+## Spreet
+
+[Spreet](https://github.com/flother/spreet) is a promising alternative to spritezero, and we hope to use it in the future.
+However, the generated files are not yet as good as the ones generated by spritezero.
+
+```
+cargo install spreet
+spreet --sdf --ratio 1 icons icons@1x
+spreet --sdf --ratio 2 icons icons@2x
+spreet --sdf --ratio 4 icons icons@4x
+```
diff --git a/basemap/assets/icons.json b/basemap/assets/icons.json
deleted file mode 100644
index ce3359be..00000000
--- a/basemap/assets/icons.json
+++ /dev/null
@@ -1,2050 +0,0 @@
-{
-  "advertising_column": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 242,
-    "y": 66,
-    "sdf": true
-  },
-  "aerodrome": {
-    "height": 54,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 970,
-    "y": 0,
-    "sdf": true
-  },
-  "alcohol": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 172,
-    "y": 70,
-    "sdf": true
-  },
-  "alpinehut": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 86,
-    "sdf": true
-  },
-  "amusement_arcade": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 86,
-    "sdf": true
-  },
-  "apartment": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 304,
-    "y": 98,
-    "sdf": true
-  },
-  "archaeological_site": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 234,
-    "y": 128,
-    "sdf": true
-  },
-  "art": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 350,
-    "y": 0,
-    "sdf": true
-  },
-  "arts_centre": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 132,
-    "sdf": true
-  },
-  "artwork": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 148,
-    "sdf": true
-  },
-  "atm": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 148,
-    "sdf": true
-  },
-  "audioguide": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 412,
-    "y": 0,
-    "sdf": true
-  },
-  "bag": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 474,
-    "y": 0,
-    "sdf": true
-  },
-  "bakery": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 536,
-    "y": 0,
-    "sdf": true
-  },
-  "bank": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 598,
-    "y": 0,
-    "sdf": true
-  },
-  "bar": {
-    "height": 54,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 248,
-    "y": 966,
-    "sdf": true
-  },
-  "bbq": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 660,
-    "y": 0,
-    "sdf": true
-  },
-  "beach_resort": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 722,
-    "y": 0,
-    "sdf": true
-  },
-  "beauty": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 784,
-    "y": 0,
-    "sdf": true
-  },
-  "bed": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 846,
-    "y": 0,
-    "sdf": true
-  },
-  "bell_tower": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 908,
-    "y": 0,
-    "sdf": true
-  },
-  "bench": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 296,
-    "y": 160,
-    "sdf": true
-  },
-  "beverages": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 190,
-    "sdf": true
-  },
-  "bicycle": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 194,
-    "sdf": true
-  },
-  "bicycle_parking": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 210,
-    "sdf": true
-  },
-  "bicycle_repair_station": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 210,
-    "sdf": true
-  },
-  "biergarten": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 358,
-    "y": 160,
-    "sdf": true
-  },
-  "bird_hide": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 366,
-    "y": 62,
-    "sdf": true
-  },
-  "board": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 420,
-    "y": 124,
-    "sdf": true
-  },
-  "boat_rental": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 428,
-    "y": 62,
-    "sdf": true
-  },
-  "bookmaker": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 482,
-    "y": 124,
-    "sdf": true
-  },
-  "bowling_alley": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 490,
-    "y": 62,
-    "sdf": true
-  },
-  "buddhist": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 544,
-    "y": 124,
-    "sdf": true
-  },
-  "bunker": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 552,
-    "y": 62,
-    "sdf": true
-  },
-  "bureau_de_change": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 606,
-    "y": 124,
-    "sdf": true
-  },
-  "bus_station": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 614,
-    "y": 62,
-    "sdf": true
-  },
-  "bus_stop": {
-    "height": 46,
-    "pixelRatio": 4,
-    "width": 46,
-    "x": 124,
-    "y": 86,
-    "sdf": true
-  },
-  "bust": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 668,
-    "y": 124,
-    "sdf": true
-  },
-  "butcher": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 676,
-    "y": 62,
-    "sdf": true
-  },
-  "cafe": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 730,
-    "y": 124,
-    "sdf": true
-  },
-  "camping": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 738,
-    "y": 62,
-    "sdf": true
-  },
-  "car": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 792,
-    "y": 124,
-    "sdf": true
-  },
-  "car_parts": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 800,
-    "y": 62,
-    "sdf": true
-  },
-  "car_repair": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 854,
-    "y": 124,
-    "sdf": true
-  },
-  "car_wash": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 862,
-    "y": 62,
-    "sdf": true
-  },
-  "caravan_park": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 924,
-    "y": 62,
-    "sdf": true
-  },
-  "carpet": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 916,
-    "y": 124,
-    "sdf": true
-  },
-  "casino": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 420,
-    "y": 186,
-    "sdf": true
-  },
-  "castle": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 222,
-    "sdf": true
-  },
-  "cave": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 252,
-    "sdf": true
-  },
-  "chalet": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 256,
-    "sdf": true
-  },
-  "charging_station": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 222,
-    "sdf": true
-  },
-  "charity": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 272,
-    "sdf": true
-  },
-  "chemist": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 272,
-    "sdf": true
-  },
-  "chimney": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 482,
-    "y": 186,
-    "sdf": true
-  },
-  "christian": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 544,
-    "y": 186,
-    "sdf": true
-  },
-  "cinema": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 606,
-    "y": 186,
-    "sdf": true
-  },
-  "city_gate": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 668,
-    "y": 186,
-    "sdf": true
-  },
-  "clothes": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 730,
-    "y": 186,
-    "sdf": true
-  },
-  "coffee": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 792,
-    "y": 186,
-    "sdf": true
-  },
-  "communications_tower": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 854,
-    "y": 186,
-    "sdf": true
-  },
-  "community_centre": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 916,
-    "y": 186,
-    "sdf": true
-  },
-  "computer": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 248,
-    "sdf": true
-  },
-  "confectionery": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 284,
-    "sdf": true
-  },
-  "consulate": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 314,
-    "sdf": true
-  },
-  "convenience": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 318,
-    "sdf": true
-  },
-  "copyshop": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 284,
-    "sdf": true
-  },
-  "courthouse": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 334,
-    "sdf": true
-  },
-  "crane": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 334,
-    "sdf": true
-  },
-  "cross": {
-    "height": 34,
-    "pixelRatio": 4,
-    "width": 34,
-    "x": 724,
-    "y": 852,
-    "sdf": true
-  },
-  "cycle_barrier": {
-    "height": 46,
-    "pixelRatio": 4,
-    "width": 46,
-    "x": 186,
-    "y": 132,
-    "sdf": true
-  },
-  "dairy": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 248,
-    "sdf": true
-  },
-  "deli": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 248,
-    "sdf": true
-  },
-  "dentist": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 248,
-    "sdf": true
-  },
-  "department_store": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 620,
-    "y": 248,
-    "sdf": true
-  },
-  "diy": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 682,
-    "y": 248,
-    "sdf": true
-  },
-  "doctors": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 744,
-    "y": 248,
-    "sdf": true
-  },
-  "drinking_water": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 806,
-    "y": 248,
-    "sdf": true
-  },
-  "electronics": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 868,
-    "y": 248,
-    "sdf": true
-  },
-  "elevator": {
-    "height": 54,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 302,
-    "y": 966,
-    "sdf": true
-  },
-  "embassy": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 930,
-    "y": 248,
-    "sdf": true
-  },
-  "emergency_phone": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 310,
-    "sdf": true
-  },
-  "entrance": {
-    "height": 46,
-    "pixelRatio": 4,
-    "width": 46,
-    "x": 978,
-    "y": 124,
-    "sdf": true
-  },
-  "excrement_bags": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 346,
-    "sdf": true
-  },
-  "fabric": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 376,
-    "sdf": true
-  },
-  "fast_food": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 380,
-    "sdf": true
-  },
-  "ferry": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 346,
-    "sdf": true
-  },
-  "firepit": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 396,
-    "sdf": true
-  },
-  "firestation": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 396,
-    "sdf": true
-  },
-  "fishing": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 310,
-    "sdf": true
-  },
-  "fitness": {
-    "height": 66,
-    "pixelRatio": 4,
-    "width": 66,
-    "x": 242,
-    "y": 0,
-    "sdf": true
-  },
-  "florist": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 310,
-    "sdf": true
-  },
-  "ford": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 310,
-    "sdf": true
-  },
-  "fort": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 620,
-    "y": 310,
-    "sdf": true
-  },
-  "fortress": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 682,
-    "y": 310,
-    "sdf": true
-  },
-  "fountain": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 744,
-    "y": 310,
-    "sdf": true
-  },
-  "fuel": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 806,
-    "y": 310,
-    "sdf": true
-  },
-  "full-height_turnstile": {
-    "height": 54,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 620,
-    "y": 744,
-    "sdf": true
-  },
-  "furniture": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 868,
-    "y": 310,
-    "sdf": true
-  },
-  "garden_centre": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 930,
-    "y": 310,
-    "sdf": true
-  },
-  "gate": {
-    "height": 26,
-    "pixelRatio": 4,
-    "width": 30,
-    "x": 372,
-    "y": 222,
-    "sdf": true
-  },
-  "generator_wind": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 372,
-    "sdf": true
-  },
-  "gift": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 408,
-    "sdf": true
-  },
-  "golf": {
-    "height": 86,
-    "pixelRatio": 4,
-    "width": 86,
-    "x": 0,
-    "y": 0,
-    "sdf": true
-  },
-  "golf_pin": {
-    "height": 98,
-    "pixelRatio": 4,
-    "width": 42,
-    "x": 308,
-    "y": 0,
-    "sdf": true
-  },
-  "greengrocer": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 438,
-    "sdf": true
-  },
-  "guest_house": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 442,
-    "sdf": true
-  },
-  "guidepost": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 408,
-    "sdf": true
-  },
-  "hairdresser": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 458,
-    "sdf": true
-  },
-  "helipad": {
-    "height": 70,
-    "pixelRatio": 4,
-    "width": 70,
-    "x": 172,
-    "y": 0,
-    "sdf": true
-  },
-  "hifi": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 458,
-    "sdf": true
-  },
-  "hinduist": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 372,
-    "sdf": true
-  },
-  "hospital": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 372,
-    "sdf": true
-  },
-  "hostel": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 372,
-    "sdf": true
-  },
-  "hotel": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 620,
-    "y": 372,
-    "sdf": true
-  },
-  "houseware": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 682,
-    "y": 372,
-    "sdf": true
-  },
-  "hunting_stand": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 744,
-    "y": 372,
-    "sdf": true
-  },
-  "ice_cream": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 806,
-    "y": 372,
-    "sdf": true
-  },
-  "interior_decoration": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 868,
-    "y": 372,
-    "sdf": true
-  },
-  "internet_cafe": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 930,
-    "y": 372,
-    "sdf": true
-  },
-  "jewelry": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 434,
-    "sdf": true
-  },
-  "jewish": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 470,
-    "sdf": true
-  },
-  "kissing_gate": {
-    "height": 54,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 620,
-    "y": 798,
-    "sdf": true
-  },
-  "laundry": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 500,
-    "sdf": true
-  },
-  "level_crossing": {
-    "height": 34,
-    "pixelRatio": 4,
-    "width": 34,
-    "x": 712,
-    "y": 940,
-    "sdf": true
-  },
-  "level_crossing2": {
-    "height": 50,
-    "pixelRatio": 4,
-    "width": 50,
-    "x": 674,
-    "y": 852,
-    "sdf": true
-  },
-  "library": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 504,
-    "sdf": true
-  },
-  "lift_gate": {
-    "height": 26,
-    "pixelRatio": 4,
-    "width": 30,
-    "x": 386,
-    "y": 992,
-    "sdf": true
-  },
-  "lighthouse": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 470,
-    "sdf": true
-  },
-  "manor": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 520,
-    "sdf": true
-  },
-  "map": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 520,
-    "sdf": true
-  },
-  "marketplace": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 496,
-    "sdf": true
-  },
-  "massage": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 532,
-    "sdf": true
-  },
-  "mast": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 562,
-    "sdf": true
-  },
-  "mast_communications": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 566,
-    "sdf": true
-  },
-  "mast_lighting": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 532,
-    "sdf": true
-  },
-  "medical_supply": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 582,
-    "sdf": true
-  },
-  "memorial": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 582,
-    "sdf": true
-  },
-  "miniature_golf": {
-    "height": 86,
-    "pixelRatio": 4,
-    "width": 86,
-    "x": 86,
-    "y": 0,
-    "sdf": true
-  },
-  "mobile_phone": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 558,
-    "sdf": true
-  },
-  "monument": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 594,
-    "sdf": true
-  },
-  "motel": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 624,
-    "sdf": true
-  },
-  "motorcycle": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 628,
-    "sdf": true
-  },
-  "motorcycle_barrier": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 594,
-    "sdf": true
-  },
-  "motorcycle_parking": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 644,
-    "sdf": true
-  },
-  "museum": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 644,
-    "sdf": true
-  },
-  "music": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 620,
-    "sdf": true
-  },
-  "musical_instrument": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 656,
-    "sdf": true
-  },
-  "muslim": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 686,
-    "sdf": true
-  },
-  "newsagent": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 690,
-    "sdf": true
-  },
-  "nightclub": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 656,
-    "sdf": true
-  },
-  "obelisk": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 706,
-    "sdf": true
-  },
-  "office": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 706,
-    "sdf": true
-  },
-  "oneway": {
-    "height": 26,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 186,
-    "y": 996,
-    "sdf": true
-  },
-  "oneway-reverse": {
-    "height": 26,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 366,
-    "y": 124,
-    "sdf": true
-  },
-  "optician": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 682,
-    "sdf": true
-  },
-  "outdoor": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 718,
-    "sdf": true
-  },
-  "outdoor_seating": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 748,
-    "sdf": true
-  },
-  "paint": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 752,
-    "sdf": true
-  },
-  "palace": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 718,
-    "sdf": true
-  },
-  "parking": {
-    "height": 54,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 620,
-    "y": 852,
-    "sdf": true
-  },
-  "parking_entrance_multistorey": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 768,
-    "sdf": true
-  },
-  "parking_entrance_underground": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 768,
-    "sdf": true
-  },
-  "parking_subtle": {
-    "height": 34,
-    "pixelRatio": 4,
-    "width": 34,
-    "x": 712,
-    "y": 974,
-    "sdf": true
-  },
-  "parking_tickets": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 810,
-    "sdf": true
-  },
-  "peak": {
-    "height": 38,
-    "pixelRatio": 4,
-    "width": 38,
-    "x": 674,
-    "y": 902,
-    "sdf": true
-  },
-  "perfumery": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 814,
-    "sdf": true
-  },
-  "pet": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 830,
-    "sdf": true
-  },
-  "pharmacy": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 830,
-    "sdf": true
-  },
-  "photo": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 872,
-    "sdf": true
-  },
-  "picnic": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 876,
-    "sdf": true
-  },
-  "place-4": {
-    "height": 22,
-    "pixelRatio": 4,
-    "width": 22,
-    "x": 124,
-    "y": 1000,
-    "sdf": true
-  },
-  "place-4-z7": {
-    "height": 22,
-    "pixelRatio": 4,
-    "width": 22,
-    "x": 146,
-    "y": 1000,
-    "sdf": true
-  },
-  "place-6": {
-    "height": 30,
-    "pixelRatio": 4,
-    "width": 30,
-    "x": 978,
-    "y": 216,
-    "sdf": true
-  },
-  "place-6-z7": {
-    "height": 30,
-    "pixelRatio": 4,
-    "width": 30,
-    "x": 248,
-    "y": 190,
-    "sdf": true
-  },
-  "place-capital-6": {
-    "height": 30,
-    "pixelRatio": 4,
-    "width": 30,
-    "x": 356,
-    "y": 992,
-    "sdf": true
-  },
-  "place-capital-8": {
-    "height": 38,
-    "pixelRatio": 4,
-    "width": 38,
-    "x": 674,
-    "y": 940,
-    "sdf": true
-  },
-  "place_of_worship": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 892,
-    "sdf": true
-  },
-  "plaque": {
-    "height": 54,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 620,
-    "y": 906,
-    "sdf": true
-  },
-  "playground": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 892,
-    "sdf": true
-  },
-  "police": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 0,
-    "y": 954,
-    "sdf": true
-  },
-  "post_box": {
-    "height": 54,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 620,
-    "y": 960,
-    "sdf": true
-  },
-  "post_office": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 62,
-    "y": 954,
-    "sdf": true
-  },
-  "power_tower": {
-    "height": 34,
-    "pixelRatio": 4,
-    "width": 34,
-    "x": 746,
-    "y": 940,
-    "sdf": true
-  },
-  "power_tower_small": {
-    "height": 18,
-    "pixelRatio": 4,
-    "width": 18,
-    "x": 168,
-    "y": 1000,
-    "sdf": true
-  },
-  "prison": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 186,
-    "y": 934,
-    "sdf": true
-  },
-  "pub": {
-    "height": 54,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 674,
-    "y": 744,
-    "sdf": true
-  },
-  "public_bath": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 124,
-    "y": 938,
-    "sdf": true
-  },
-  "public_bookcase": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 744,
-    "sdf": true
-  },
-  "public_transport_tickets": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 780,
-    "sdf": true
-  },
-  "recycling": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 780,
-    "sdf": true
-  },
-  "rental_bicycle": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 842,
-    "sdf": true
-  },
-  "rental_car": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 248,
-    "y": 904,
-    "sdf": true
-  },
-  "restaurant": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 842,
-    "sdf": true
-  },
-  "saddle": {
-    "height": 38,
-    "pixelRatio": 4,
-    "width": 38,
-    "x": 674,
-    "y": 978,
-    "sdf": true
-  },
-  "sauna": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 310,
-    "y": 904,
-    "sdf": true
-  },
-  "seafood": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 806,
-    "sdf": true
-  },
-  "second_hand": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 868,
-    "sdf": true
-  },
-  "shelter": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 372,
-    "y": 930,
-    "sdf": true
-  },
-  "shintoist": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 434,
-    "sdf": true
-  },
-  "shoes": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 434,
-    "sdf": true
-  },
-  "shower": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 434,
-    "sdf": true
-  },
-  "shrine": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 620,
-    "y": 434,
-    "sdf": true
-  },
-  "sikhist": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 682,
-    "y": 434,
-    "sdf": true
-  },
-  "slipway": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 744,
-    "y": 434,
-    "sdf": true
-  },
-  "social_facility": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 806,
-    "y": 434,
-    "sdf": true
-  },
-  "sports": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 868,
-    "y": 434,
-    "sdf": true
-  },
-  "spring": {
-    "height": 54,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 682,
-    "y": 682,
-    "sdf": true
-  },
-  "stationery": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 930,
-    "y": 434,
-    "sdf": true
-  },
-  "statue": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 496,
-    "sdf": true
-  },
-  "stile": {
-    "height": 46,
-    "pixelRatio": 4,
-    "width": 46,
-    "x": 978,
-    "y": 170,
-    "sdf": true
-  },
-  "stone": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 558,
-    "sdf": true
-  },
-  "storage_tank": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 620,
-    "sdf": true
-  },
-  "supermarket": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 682,
-    "sdf": true
-  },
-  "taoist": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 744,
-    "sdf": true
-  },
-  "taxi": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 806,
-    "sdf": true
-  },
-  "tea": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 868,
-    "sdf": true
-  },
-  "telephone": {
-    "height": 54,
-    "pixelRatio": 4,
-    "width": 54,
-    "x": 674,
-    "y": 798,
-    "sdf": true
-  },
-  "telescope_dish": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 434,
-    "y": 930,
-    "sdf": true
-  },
-  "telescope_dome": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 496,
-    "sdf": true
-  },
-  "terminal": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 496,
-    "sdf": true
-  },
-  "theatre": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 620,
-    "y": 496,
-    "sdf": true
-  },
-  "ticket": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 682,
-    "y": 496,
-    "sdf": true
-  },
-  "tobacco": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 744,
-    "y": 496,
-    "sdf": true
-  },
-  "toilets": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 806,
-    "y": 496,
-    "sdf": true
-  },
-  "toll_booth": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 868,
-    "y": 496,
-    "sdf": true
-  },
-  "tower_cantilever_communication": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 930,
-    "y": 496,
-    "sdf": true
-  },
-  "tower_cooling": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 558,
-    "sdf": true
-  },
-  "tower_defensive": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 620,
-    "sdf": true
-  },
-  "tower_dish": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 682,
-    "sdf": true
-  },
-  "tower_dome": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 744,
-    "sdf": true
-  },
-  "tower_generic": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 806,
-    "sdf": true
-  },
-  "tower_lattice": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 868,
-    "sdf": true
-  },
-  "tower_lattice_communication": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 496,
-    "y": 930,
-    "sdf": true
-  },
-  "tower_lattice_lighting": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 558,
-    "sdf": true
-  },
-  "tower_lighting": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 620,
-    "y": 558,
-    "sdf": true
-  },
-  "tower_observation": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 682,
-    "y": 558,
-    "sdf": true
-  },
-  "town_hall": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 744,
-    "y": 558,
-    "sdf": true
-  },
-  "toys": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 806,
-    "y": 558,
-    "sdf": true
-  },
-  "trade": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 868,
-    "y": 558,
-    "sdf": true
-  },
-  "traffic_light": {
-    "height": 58,
-    "pixelRatio": 4,
-    "width": 26,
-    "x": 986,
-    "y": 54,
-    "sdf": true
-  },
-  "travel_agency": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 930,
-    "y": 558,
-    "sdf": true
-  },
-  "tyres": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 620,
-    "sdf": true
-  },
-  "variety_store": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 682,
-    "sdf": true
-  },
-  "vehicle_inspection": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 744,
-    "sdf": true
-  },
-  "veterinary": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 806,
-    "sdf": true
-  },
-  "video": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 868,
-    "sdf": true
-  },
-  "video_games": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 558,
-    "y": 930,
-    "sdf": true
-  },
-  "viewpoint": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 620,
-    "y": 620,
-    "sdf": true
-  },
-  "waste_basket": {
-    "height": 38,
-    "pixelRatio": 4,
-    "width": 38,
-    "x": 712,
-    "y": 902,
-    "sdf": true
-  },
-  "waste_disposal": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 682,
-    "y": 620,
-    "sdf": true
-  },
-  "water_park": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 744,
-    "y": 620,
-    "sdf": true
-  },
-  "water_tower": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 806,
-    "y": 620,
-    "sdf": true
-  },
-  "waterfall": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 868,
-    "y": 620,
-    "sdf": true
-  },
-  "wilderness_hut": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 930,
-    "y": 620,
-    "sdf": true
-  },
-  "windmill": {
-    "height": 62,
-    "pixelRatio": 4,
-    "width": 62,
-    "x": 620,
-    "y": 682,
-    "sdf": true
-  }
-}
\ No newline at end of file
diff --git a/basemap/assets/icons.md b/basemap/assets/icons.md
deleted file mode 100644
index 809fb06f..00000000
--- a/basemap/assets/icons.md
+++ /dev/null
@@ -1,15 +0,0 @@
-# OpenStreetMap-Carto Icons
-
-The icons stored in this directory come from the [OpenStreetMap-Carto](https://github.com/gravitystorm/openstreetmap-carto/) 
-project released under the CC0 Public Domain Dedication, version 1.0, as published by Creative Commons.
-
-Created by Andy Allan <an...@gravitystorm.co.uk> and contributors.
-Based on original cartography by Steve Chilton and others.
-
-The icons.png and icons.json files are generated from the SVG files using the following spreet command [spreet](https://github.com/flother/spreet).
-
-```
-spreet --sdf --ratio 4 icons icons
-```
-
-The resolution is set to 4x so that one can increase the size of the icons without losing quality.
diff --git a/basemap/assets/icons.png b/basemap/assets/icons.png
deleted file mode 100644
index 01c613dc..00000000
Binary files a/basemap/assets/icons.png and /dev/null differ
diff --git a/basemap/assets/icons@1x.json b/basemap/assets/icons@1x.json
new file mode 100644
index 00000000..8e8453eb
--- /dev/null
+++ b/basemap/assets/icons@1x.json
@@ -0,0 +1,2050 @@
+{
+  "advertising_column": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 37,
+    "y": 0
+  },
+  "aerodrome": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 131,
+    "y": 375
+  },
+  "alcohol": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 55
+  },
+  "alpinehut": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 55
+  },
+  "amusement_arcade": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 55
+  },
+  "apartment": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 75
+  },
+  "archaeological_site": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 75
+  },
+  "art": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 75
+  },
+  "arts_centre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 95
+  },
+  "artwork": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 95
+  },
+  "atm": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 95
+  },
+  "audioguide": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 55
+  },
+  "bag": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 55
+  },
+  "bakery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 55
+  },
+  "bank": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 75
+  },
+  "bar": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 149,
+    "y": 375
+  },
+  "bbq": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 75
+  },
+  "beach_resort": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 75
+  },
+  "beauty": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 95
+  },
+  "bed": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 95
+  },
+  "bell_tower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 95
+  },
+  "bench": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 52,
+    "y": 29
+  },
+  "beverages": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 72,
+    "y": 29
+  },
+  "bicycle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 92,
+    "y": 29
+  },
+  "bicycle_parking": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 57,
+    "y": 0
+  },
+  "bicycle_repair_station": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 77,
+    "y": 0
+  },
+  "biergarten": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 97,
+    "y": 0
+  },
+  "bird_hide": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 115
+  },
+  "board": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 115
+  },
+  "boat_rental": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 115
+  },
+  "bookmaker": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 115
+  },
+  "bowling_alley": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 115
+  },
+  "buddhist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 115
+  },
+  "bunker": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 135
+  },
+  "bureau_de_change": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 135
+  },
+  "bus_station": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 135
+  },
+  "bus_stop": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 107,
+    "y": 395
+  },
+  "bust": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 135
+  },
+  "butcher": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 135
+  },
+  "cafe": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 135
+  },
+  "camping": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 155
+  },
+  "car": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 155
+  },
+  "car_parts": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 155
+  },
+  "car_repair": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 155
+  },
+  "car_wash": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 155
+  },
+  "caravan_park": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 155
+  },
+  "carpet": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 175
+  },
+  "casino": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 175
+  },
+  "castle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 175
+  },
+  "cave": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 175
+  },
+  "chalet": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 175
+  },
+  "charging_station": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 175
+  },
+  "charity": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 195
+  },
+  "chemist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 195
+  },
+  "chimney": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 195
+  },
+  "christian": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 195
+  },
+  "cinema": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 195
+  },
+  "city_gate": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 195
+  },
+  "clothes": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 55
+  },
+  "coffee": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 55
+  },
+  "communications_tower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 55
+  },
+  "community_centre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 55
+  },
+  "computer": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 55
+  },
+  "confectionery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 55
+  },
+  "consulate": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 75
+  },
+  "convenience": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 75
+  },
+  "copyshop": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 75
+  },
+  "courthouse": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 75
+  },
+  "crane": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 75
+  },
+  "cross": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 227,
+    "y": 395
+  },
+  "cycle_barrier": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 123,
+    "y": 395
+  },
+  "dairy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 75
+  },
+  "deli": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 95
+  },
+  "dentist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 95
+  },
+  "department_store": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 95
+  },
+  "diy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 95
+  },
+  "doctors": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 95
+  },
+  "drinking_water": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 95
+  },
+  "electronics": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 115
+  },
+  "elevator": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 167,
+    "y": 375
+  },
+  "embassy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 115
+  },
+  "emergency_phone": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 115
+  },
+  "entrance": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 139,
+    "y": 395
+  },
+  "excrement_bags": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 115
+  },
+  "fabric": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 115
+  },
+  "fast_food": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 115
+  },
+  "ferry": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 135
+  },
+  "firepit": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 135
+  },
+  "firestation": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 135
+  },
+  "fishing": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 135
+  },
+  "fitness": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 135
+  },
+  "florist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 135
+  },
+  "ford": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 155
+  },
+  "fort": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 155
+  },
+  "fortress": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 155
+  },
+  "fountain": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 155
+  },
+  "fuel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 155
+  },
+  "full-height_turnstile": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 185,
+    "y": 375
+  },
+  "furniture": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 155
+  },
+  "garden_centre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 175
+  },
+  "gate": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 75,
+    "y": 413
+  },
+  "generator_wind": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 175
+  },
+  "gift": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 175
+  },
+  "golf": {
+    "height": 26,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 26,
+    "x": 0,
+    "y": 29
+  },
+  "golf_pin": {
+    "height": 29,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 15,
+    "x": 0,
+    "y": 0
+  },
+  "greengrocer": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 175
+  },
+  "guest_house": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 175
+  },
+  "guidepost": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 175
+  },
+  "hairdresser": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 195
+  },
+  "helipad": {
+    "height": 22,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 22,
+    "x": 15,
+    "y": 0
+  },
+  "hifi": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 195
+  },
+  "hinduist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 195
+  },
+  "hospital": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 195
+  },
+  "hostel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 195
+  },
+  "hotel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 195
+  },
+  "houseware": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 112,
+    "y": 29
+  },
+  "hunting_stand": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 132,
+    "y": 29
+  },
+  "ice_cream": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 152,
+    "y": 29
+  },
+  "interior_decoration": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 172,
+    "y": 29
+  },
+  "internet_cafe": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 192,
+    "y": 29
+  },
+  "jewelry": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 212,
+    "y": 29
+  },
+  "jewish": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 117,
+    "y": 0
+  },
+  "kissing_gate": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 203,
+    "y": 375
+  },
+  "laundry": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 137,
+    "y": 0
+  },
+  "level_crossing": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 0,
+    "y": 413
+  },
+  "level_crossing2": {
+    "height": 17,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 17,
+    "x": 90,
+    "y": 395
+  },
+  "library": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 157,
+    "y": 0
+  },
+  "lift_gate": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 87,
+    "y": 413
+  },
+  "lighthouse": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 177,
+    "y": 0
+  },
+  "manor": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 197,
+    "y": 0
+  },
+  "map": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 217,
+    "y": 0
+  },
+  "marketplace": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 215
+  },
+  "massage": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 215
+  },
+  "mast": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 215
+  },
+  "mast_communications": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 215
+  },
+  "mast_lighting": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 215
+  },
+  "medical_supply": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 215
+  },
+  "memorial": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 215
+  },
+  "miniature_golf": {
+    "height": 26,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 26,
+    "x": 26,
+    "y": 29
+  },
+  "mobile_phone": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 215
+  },
+  "monument": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 215
+  },
+  "motel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 215
+  },
+  "motorcycle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 215
+  },
+  "motorcycle_barrier": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 215
+  },
+  "motorcycle_parking": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 235
+  },
+  "museum": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 235
+  },
+  "music": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 235
+  },
+  "musical_instrument": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 235
+  },
+  "muslim": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 235
+  },
+  "newsagent": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 235
+  },
+  "nightclub": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 235
+  },
+  "obelisk": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 235
+  },
+  "office": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 235
+  },
+  "oneway": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 99,
+    "y": 413
+  },
+  "oneway-reverse": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 117,
+    "y": 413
+  },
+  "optician": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 235
+  },
+  "outdoor": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 235
+  },
+  "outdoor_seating": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 235
+  },
+  "paint": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 255
+  },
+  "palace": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 255
+  },
+  "parking": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 221,
+    "y": 375
+  },
+  "parking_entrance_multistorey": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 255
+  },
+  "parking_entrance_underground": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 255
+  },
+  "parking_subtle": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 13,
+    "y": 413
+  },
+  "parking_tickets": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 255
+  },
+  "peak": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 171,
+    "y": 395
+  },
+  "perfumery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 255
+  },
+  "pet": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 255
+  },
+  "pharmacy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 255
+  },
+  "photo": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 255
+  },
+  "picnic": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 255
+  },
+  "place-4": {
+    "height": 10,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 10,
+    "x": 135,
+    "y": 413
+  },
+  "place-4-z7": {
+    "height": 10,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 10,
+    "x": 145,
+    "y": 413
+  },
+  "place-6": {
+    "height": 12,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 39,
+    "y": 413
+  },
+  "place-6-z7": {
+    "height": 12,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 51,
+    "y": 413
+  },
+  "place-capital-6": {
+    "height": 12,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 63,
+    "y": 413
+  },
+  "place-capital-8": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 185,
+    "y": 395
+  },
+  "place_of_worship": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 255
+  },
+  "plaque": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 0,
+    "y": 395
+  },
+  "playground": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 255
+  },
+  "police": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 275
+  },
+  "post_box": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 18,
+    "y": 395
+  },
+  "post_office": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 275
+  },
+  "power_tower": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 26,
+    "y": 413
+  },
+  "power_tower_small": {
+    "height": 9,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 9,
+    "x": 155,
+    "y": 413
+  },
+  "prison": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 275
+  },
+  "pub": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 36,
+    "y": 395
+  },
+  "public_bath": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 275
+  },
+  "public_bookcase": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 275
+  },
+  "public_transport_tickets": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 275
+  },
+  "recycling": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 275
+  },
+  "rental_bicycle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 275
+  },
+  "rental_car": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 275
+  },
+  "restaurant": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 275
+  },
+  "saddle": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 199,
+    "y": 395
+  },
+  "sauna": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 275
+  },
+  "seafood": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 275
+  },
+  "second_hand": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 295
+  },
+  "shelter": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 295
+  },
+  "shintoist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 295
+  },
+  "shoes": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 295
+  },
+  "shower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 295
+  },
+  "shrine": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 295
+  },
+  "sikhist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 295
+  },
+  "slipway": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 295
+  },
+  "social_facility": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 295
+  },
+  "sports": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 295
+  },
+  "spring": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 54,
+    "y": 395
+  },
+  "stationery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 295
+  },
+  "statue": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 295
+  },
+  "stile": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 155,
+    "y": 395
+  },
+  "stone": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 315
+  },
+  "storage_tank": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 315
+  },
+  "supermarket": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 315
+  },
+  "taoist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 315
+  },
+  "taxi": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 315
+  },
+  "tea": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 315
+  },
+  "telephone": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 72,
+    "y": 395
+  },
+  "telescope_dish": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 315
+  },
+  "telescope_dome": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 315
+  },
+  "terminal": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 315
+  },
+  "theatre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 315
+  },
+  "ticket": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 315
+  },
+  "tobacco": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 315
+  },
+  "toilets": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 335
+  },
+  "toll_booth": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 335
+  },
+  "tower_cantilever_communication": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 335
+  },
+  "tower_cooling": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 335
+  },
+  "tower_defensive": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 335
+  },
+  "tower_dish": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 335
+  },
+  "tower_dome": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 335
+  },
+  "tower_generic": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 335
+  },
+  "tower_lattice": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 335
+  },
+  "tower_lattice_communication": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 335
+  },
+  "tower_lattice_lighting": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 335
+  },
+  "tower_lighting": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 335
+  },
+  "tower_observation": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 355
+  },
+  "town_hall": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 355
+  },
+  "toys": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 355
+  },
+  "trade": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 355
+  },
+  "traffic_light": {
+    "height": 19,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 11,
+    "x": 120,
+    "y": 375
+  },
+  "travel_agency": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 355
+  },
+  "tyres": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 355
+  },
+  "variety_store": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 355
+  },
+  "vehicle_inspection": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 355
+  },
+  "veterinary": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 355
+  },
+  "video": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 355
+  },
+  "video_games": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 355
+  },
+  "viewpoint": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 355
+  },
+  "waste_basket": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 213,
+    "y": 395
+  },
+  "waste_disposal": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 375
+  },
+  "water_park": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 375
+  },
+  "water_tower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 375
+  },
+  "waterfall": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 375
+  },
+  "wilderness_hut": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 375
+  },
+  "windmill": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 375
+  }
+}
\ No newline at end of file
diff --git a/basemap/assets/icons@1x.png b/basemap/assets/icons@1x.png
new file mode 100644
index 00000000..52d290c6
Binary files /dev/null and b/basemap/assets/icons@1x.png differ
diff --git a/basemap/assets/icons@2x.json b/basemap/assets/icons@2x.json
new file mode 100644
index 00000000..8e8453eb
--- /dev/null
+++ b/basemap/assets/icons@2x.json
@@ -0,0 +1,2050 @@
+{
+  "advertising_column": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 37,
+    "y": 0
+  },
+  "aerodrome": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 131,
+    "y": 375
+  },
+  "alcohol": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 55
+  },
+  "alpinehut": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 55
+  },
+  "amusement_arcade": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 55
+  },
+  "apartment": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 75
+  },
+  "archaeological_site": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 75
+  },
+  "art": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 75
+  },
+  "arts_centre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 95
+  },
+  "artwork": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 95
+  },
+  "atm": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 95
+  },
+  "audioguide": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 55
+  },
+  "bag": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 55
+  },
+  "bakery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 55
+  },
+  "bank": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 75
+  },
+  "bar": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 149,
+    "y": 375
+  },
+  "bbq": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 75
+  },
+  "beach_resort": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 75
+  },
+  "beauty": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 95
+  },
+  "bed": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 95
+  },
+  "bell_tower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 95
+  },
+  "bench": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 52,
+    "y": 29
+  },
+  "beverages": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 72,
+    "y": 29
+  },
+  "bicycle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 92,
+    "y": 29
+  },
+  "bicycle_parking": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 57,
+    "y": 0
+  },
+  "bicycle_repair_station": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 77,
+    "y": 0
+  },
+  "biergarten": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 97,
+    "y": 0
+  },
+  "bird_hide": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 115
+  },
+  "board": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 115
+  },
+  "boat_rental": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 115
+  },
+  "bookmaker": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 115
+  },
+  "bowling_alley": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 115
+  },
+  "buddhist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 115
+  },
+  "bunker": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 135
+  },
+  "bureau_de_change": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 135
+  },
+  "bus_station": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 135
+  },
+  "bus_stop": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 107,
+    "y": 395
+  },
+  "bust": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 135
+  },
+  "butcher": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 135
+  },
+  "cafe": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 135
+  },
+  "camping": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 155
+  },
+  "car": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 155
+  },
+  "car_parts": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 155
+  },
+  "car_repair": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 155
+  },
+  "car_wash": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 155
+  },
+  "caravan_park": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 155
+  },
+  "carpet": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 175
+  },
+  "casino": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 175
+  },
+  "castle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 175
+  },
+  "cave": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 175
+  },
+  "chalet": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 175
+  },
+  "charging_station": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 175
+  },
+  "charity": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 195
+  },
+  "chemist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 195
+  },
+  "chimney": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 195
+  },
+  "christian": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 195
+  },
+  "cinema": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 195
+  },
+  "city_gate": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 195
+  },
+  "clothes": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 55
+  },
+  "coffee": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 55
+  },
+  "communications_tower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 55
+  },
+  "community_centre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 55
+  },
+  "computer": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 55
+  },
+  "confectionery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 55
+  },
+  "consulate": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 75
+  },
+  "convenience": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 75
+  },
+  "copyshop": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 75
+  },
+  "courthouse": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 75
+  },
+  "crane": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 75
+  },
+  "cross": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 227,
+    "y": 395
+  },
+  "cycle_barrier": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 123,
+    "y": 395
+  },
+  "dairy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 75
+  },
+  "deli": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 95
+  },
+  "dentist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 95
+  },
+  "department_store": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 95
+  },
+  "diy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 95
+  },
+  "doctors": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 95
+  },
+  "drinking_water": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 95
+  },
+  "electronics": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 115
+  },
+  "elevator": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 167,
+    "y": 375
+  },
+  "embassy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 115
+  },
+  "emergency_phone": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 115
+  },
+  "entrance": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 139,
+    "y": 395
+  },
+  "excrement_bags": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 115
+  },
+  "fabric": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 115
+  },
+  "fast_food": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 115
+  },
+  "ferry": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 135
+  },
+  "firepit": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 135
+  },
+  "firestation": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 135
+  },
+  "fishing": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 135
+  },
+  "fitness": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 135
+  },
+  "florist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 135
+  },
+  "ford": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 155
+  },
+  "fort": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 155
+  },
+  "fortress": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 155
+  },
+  "fountain": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 155
+  },
+  "fuel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 155
+  },
+  "full-height_turnstile": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 185,
+    "y": 375
+  },
+  "furniture": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 155
+  },
+  "garden_centre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 175
+  },
+  "gate": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 75,
+    "y": 413
+  },
+  "generator_wind": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 175
+  },
+  "gift": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 175
+  },
+  "golf": {
+    "height": 26,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 26,
+    "x": 0,
+    "y": 29
+  },
+  "golf_pin": {
+    "height": 29,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 15,
+    "x": 0,
+    "y": 0
+  },
+  "greengrocer": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 175
+  },
+  "guest_house": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 175
+  },
+  "guidepost": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 175
+  },
+  "hairdresser": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 195
+  },
+  "helipad": {
+    "height": 22,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 22,
+    "x": 15,
+    "y": 0
+  },
+  "hifi": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 195
+  },
+  "hinduist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 195
+  },
+  "hospital": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 195
+  },
+  "hostel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 195
+  },
+  "hotel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 195
+  },
+  "houseware": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 112,
+    "y": 29
+  },
+  "hunting_stand": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 132,
+    "y": 29
+  },
+  "ice_cream": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 152,
+    "y": 29
+  },
+  "interior_decoration": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 172,
+    "y": 29
+  },
+  "internet_cafe": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 192,
+    "y": 29
+  },
+  "jewelry": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 212,
+    "y": 29
+  },
+  "jewish": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 117,
+    "y": 0
+  },
+  "kissing_gate": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 203,
+    "y": 375
+  },
+  "laundry": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 137,
+    "y": 0
+  },
+  "level_crossing": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 0,
+    "y": 413
+  },
+  "level_crossing2": {
+    "height": 17,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 17,
+    "x": 90,
+    "y": 395
+  },
+  "library": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 157,
+    "y": 0
+  },
+  "lift_gate": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 87,
+    "y": 413
+  },
+  "lighthouse": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 177,
+    "y": 0
+  },
+  "manor": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 197,
+    "y": 0
+  },
+  "map": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 217,
+    "y": 0
+  },
+  "marketplace": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 215
+  },
+  "massage": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 215
+  },
+  "mast": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 215
+  },
+  "mast_communications": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 215
+  },
+  "mast_lighting": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 215
+  },
+  "medical_supply": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 215
+  },
+  "memorial": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 215
+  },
+  "miniature_golf": {
+    "height": 26,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 26,
+    "x": 26,
+    "y": 29
+  },
+  "mobile_phone": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 215
+  },
+  "monument": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 215
+  },
+  "motel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 215
+  },
+  "motorcycle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 215
+  },
+  "motorcycle_barrier": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 215
+  },
+  "motorcycle_parking": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 235
+  },
+  "museum": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 235
+  },
+  "music": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 235
+  },
+  "musical_instrument": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 235
+  },
+  "muslim": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 235
+  },
+  "newsagent": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 235
+  },
+  "nightclub": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 235
+  },
+  "obelisk": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 235
+  },
+  "office": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 235
+  },
+  "oneway": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 99,
+    "y": 413
+  },
+  "oneway-reverse": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 117,
+    "y": 413
+  },
+  "optician": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 235
+  },
+  "outdoor": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 235
+  },
+  "outdoor_seating": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 235
+  },
+  "paint": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 255
+  },
+  "palace": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 255
+  },
+  "parking": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 221,
+    "y": 375
+  },
+  "parking_entrance_multistorey": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 255
+  },
+  "parking_entrance_underground": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 255
+  },
+  "parking_subtle": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 13,
+    "y": 413
+  },
+  "parking_tickets": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 255
+  },
+  "peak": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 171,
+    "y": 395
+  },
+  "perfumery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 255
+  },
+  "pet": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 255
+  },
+  "pharmacy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 255
+  },
+  "photo": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 255
+  },
+  "picnic": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 255
+  },
+  "place-4": {
+    "height": 10,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 10,
+    "x": 135,
+    "y": 413
+  },
+  "place-4-z7": {
+    "height": 10,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 10,
+    "x": 145,
+    "y": 413
+  },
+  "place-6": {
+    "height": 12,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 39,
+    "y": 413
+  },
+  "place-6-z7": {
+    "height": 12,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 51,
+    "y": 413
+  },
+  "place-capital-6": {
+    "height": 12,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 63,
+    "y": 413
+  },
+  "place-capital-8": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 185,
+    "y": 395
+  },
+  "place_of_worship": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 255
+  },
+  "plaque": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 0,
+    "y": 395
+  },
+  "playground": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 255
+  },
+  "police": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 275
+  },
+  "post_box": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 18,
+    "y": 395
+  },
+  "post_office": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 275
+  },
+  "power_tower": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 26,
+    "y": 413
+  },
+  "power_tower_small": {
+    "height": 9,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 9,
+    "x": 155,
+    "y": 413
+  },
+  "prison": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 275
+  },
+  "pub": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 36,
+    "y": 395
+  },
+  "public_bath": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 275
+  },
+  "public_bookcase": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 275
+  },
+  "public_transport_tickets": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 275
+  },
+  "recycling": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 275
+  },
+  "rental_bicycle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 275
+  },
+  "rental_car": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 275
+  },
+  "restaurant": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 275
+  },
+  "saddle": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 199,
+    "y": 395
+  },
+  "sauna": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 275
+  },
+  "seafood": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 275
+  },
+  "second_hand": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 295
+  },
+  "shelter": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 295
+  },
+  "shintoist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 295
+  },
+  "shoes": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 295
+  },
+  "shower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 295
+  },
+  "shrine": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 295
+  },
+  "sikhist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 295
+  },
+  "slipway": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 295
+  },
+  "social_facility": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 295
+  },
+  "sports": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 295
+  },
+  "spring": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 54,
+    "y": 395
+  },
+  "stationery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 295
+  },
+  "statue": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 295
+  },
+  "stile": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 155,
+    "y": 395
+  },
+  "stone": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 315
+  },
+  "storage_tank": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 315
+  },
+  "supermarket": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 315
+  },
+  "taoist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 315
+  },
+  "taxi": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 315
+  },
+  "tea": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 315
+  },
+  "telephone": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 72,
+    "y": 395
+  },
+  "telescope_dish": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 315
+  },
+  "telescope_dome": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 315
+  },
+  "terminal": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 315
+  },
+  "theatre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 315
+  },
+  "ticket": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 315
+  },
+  "tobacco": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 315
+  },
+  "toilets": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 335
+  },
+  "toll_booth": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 335
+  },
+  "tower_cantilever_communication": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 335
+  },
+  "tower_cooling": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 335
+  },
+  "tower_defensive": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 335
+  },
+  "tower_dish": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 335
+  },
+  "tower_dome": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 335
+  },
+  "tower_generic": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 335
+  },
+  "tower_lattice": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 335
+  },
+  "tower_lattice_communication": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 335
+  },
+  "tower_lattice_lighting": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 335
+  },
+  "tower_lighting": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 335
+  },
+  "tower_observation": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 355
+  },
+  "town_hall": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 355
+  },
+  "toys": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 355
+  },
+  "trade": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 355
+  },
+  "traffic_light": {
+    "height": 19,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 11,
+    "x": 120,
+    "y": 375
+  },
+  "travel_agency": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 355
+  },
+  "tyres": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 355
+  },
+  "variety_store": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 355
+  },
+  "vehicle_inspection": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 355
+  },
+  "veterinary": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 355
+  },
+  "video": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 355
+  },
+  "video_games": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 355
+  },
+  "viewpoint": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 355
+  },
+  "waste_basket": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 213,
+    "y": 395
+  },
+  "waste_disposal": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 375
+  },
+  "water_park": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 375
+  },
+  "water_tower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 375
+  },
+  "waterfall": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 375
+  },
+  "wilderness_hut": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 375
+  },
+  "windmill": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 375
+  }
+}
\ No newline at end of file
diff --git a/basemap/assets/icons@2x.png b/basemap/assets/icons@2x.png
new file mode 100644
index 00000000..52d290c6
Binary files /dev/null and b/basemap/assets/icons@2x.png differ
diff --git a/basemap/assets/icons@4x.json b/basemap/assets/icons@4x.json
new file mode 100644
index 00000000..8e8453eb
--- /dev/null
+++ b/basemap/assets/icons@4x.json
@@ -0,0 +1,2050 @@
+{
+  "advertising_column": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 37,
+    "y": 0
+  },
+  "aerodrome": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 131,
+    "y": 375
+  },
+  "alcohol": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 55
+  },
+  "alpinehut": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 55
+  },
+  "amusement_arcade": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 55
+  },
+  "apartment": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 75
+  },
+  "archaeological_site": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 75
+  },
+  "art": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 75
+  },
+  "arts_centre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 95
+  },
+  "artwork": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 95
+  },
+  "atm": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 95
+  },
+  "audioguide": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 55
+  },
+  "bag": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 55
+  },
+  "bakery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 55
+  },
+  "bank": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 75
+  },
+  "bar": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 149,
+    "y": 375
+  },
+  "bbq": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 75
+  },
+  "beach_resort": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 75
+  },
+  "beauty": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 95
+  },
+  "bed": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 95
+  },
+  "bell_tower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 95
+  },
+  "bench": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 52,
+    "y": 29
+  },
+  "beverages": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 72,
+    "y": 29
+  },
+  "bicycle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 92,
+    "y": 29
+  },
+  "bicycle_parking": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 57,
+    "y": 0
+  },
+  "bicycle_repair_station": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 77,
+    "y": 0
+  },
+  "biergarten": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 97,
+    "y": 0
+  },
+  "bird_hide": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 115
+  },
+  "board": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 115
+  },
+  "boat_rental": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 115
+  },
+  "bookmaker": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 115
+  },
+  "bowling_alley": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 115
+  },
+  "buddhist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 115
+  },
+  "bunker": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 135
+  },
+  "bureau_de_change": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 135
+  },
+  "bus_station": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 135
+  },
+  "bus_stop": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 107,
+    "y": 395
+  },
+  "bust": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 135
+  },
+  "butcher": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 135
+  },
+  "cafe": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 135
+  },
+  "camping": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 155
+  },
+  "car": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 155
+  },
+  "car_parts": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 155
+  },
+  "car_repair": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 155
+  },
+  "car_wash": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 155
+  },
+  "caravan_park": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 155
+  },
+  "carpet": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 175
+  },
+  "casino": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 175
+  },
+  "castle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 175
+  },
+  "cave": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 175
+  },
+  "chalet": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 175
+  },
+  "charging_station": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 175
+  },
+  "charity": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 195
+  },
+  "chemist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 195
+  },
+  "chimney": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 195
+  },
+  "christian": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 195
+  },
+  "cinema": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 195
+  },
+  "city_gate": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 195
+  },
+  "clothes": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 55
+  },
+  "coffee": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 55
+  },
+  "communications_tower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 55
+  },
+  "community_centre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 55
+  },
+  "computer": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 55
+  },
+  "confectionery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 55
+  },
+  "consulate": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 75
+  },
+  "convenience": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 75
+  },
+  "copyshop": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 75
+  },
+  "courthouse": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 75
+  },
+  "crane": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 75
+  },
+  "cross": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 227,
+    "y": 395
+  },
+  "cycle_barrier": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 123,
+    "y": 395
+  },
+  "dairy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 75
+  },
+  "deli": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 95
+  },
+  "dentist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 95
+  },
+  "department_store": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 95
+  },
+  "diy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 95
+  },
+  "doctors": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 95
+  },
+  "drinking_water": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 95
+  },
+  "electronics": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 115
+  },
+  "elevator": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 167,
+    "y": 375
+  },
+  "embassy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 115
+  },
+  "emergency_phone": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 115
+  },
+  "entrance": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 139,
+    "y": 395
+  },
+  "excrement_bags": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 115
+  },
+  "fabric": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 115
+  },
+  "fast_food": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 115
+  },
+  "ferry": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 135
+  },
+  "firepit": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 135
+  },
+  "firestation": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 135
+  },
+  "fishing": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 135
+  },
+  "fitness": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 135
+  },
+  "florist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 135
+  },
+  "ford": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 155
+  },
+  "fort": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 155
+  },
+  "fortress": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 155
+  },
+  "fountain": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 155
+  },
+  "fuel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 155
+  },
+  "full-height_turnstile": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 185,
+    "y": 375
+  },
+  "furniture": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 155
+  },
+  "garden_centre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 175
+  },
+  "gate": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 75,
+    "y": 413
+  },
+  "generator_wind": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 175
+  },
+  "gift": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 175
+  },
+  "golf": {
+    "height": 26,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 26,
+    "x": 0,
+    "y": 29
+  },
+  "golf_pin": {
+    "height": 29,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 15,
+    "x": 0,
+    "y": 0
+  },
+  "greengrocer": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 175
+  },
+  "guest_house": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 175
+  },
+  "guidepost": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 175
+  },
+  "hairdresser": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 195
+  },
+  "helipad": {
+    "height": 22,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 22,
+    "x": 15,
+    "y": 0
+  },
+  "hifi": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 195
+  },
+  "hinduist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 195
+  },
+  "hospital": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 195
+  },
+  "hostel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 195
+  },
+  "hotel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 195
+  },
+  "houseware": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 112,
+    "y": 29
+  },
+  "hunting_stand": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 132,
+    "y": 29
+  },
+  "ice_cream": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 152,
+    "y": 29
+  },
+  "interior_decoration": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 172,
+    "y": 29
+  },
+  "internet_cafe": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 192,
+    "y": 29
+  },
+  "jewelry": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 212,
+    "y": 29
+  },
+  "jewish": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 117,
+    "y": 0
+  },
+  "kissing_gate": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 203,
+    "y": 375
+  },
+  "laundry": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 137,
+    "y": 0
+  },
+  "level_crossing": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 0,
+    "y": 413
+  },
+  "level_crossing2": {
+    "height": 17,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 17,
+    "x": 90,
+    "y": 395
+  },
+  "library": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 157,
+    "y": 0
+  },
+  "lift_gate": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 87,
+    "y": 413
+  },
+  "lighthouse": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 177,
+    "y": 0
+  },
+  "manor": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 197,
+    "y": 0
+  },
+  "map": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 217,
+    "y": 0
+  },
+  "marketplace": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 215
+  },
+  "massage": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 215
+  },
+  "mast": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 215
+  },
+  "mast_communications": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 215
+  },
+  "mast_lighting": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 215
+  },
+  "medical_supply": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 215
+  },
+  "memorial": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 215
+  },
+  "miniature_golf": {
+    "height": 26,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 26,
+    "x": 26,
+    "y": 29
+  },
+  "mobile_phone": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 215
+  },
+  "monument": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 215
+  },
+  "motel": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 215
+  },
+  "motorcycle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 215
+  },
+  "motorcycle_barrier": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 215
+  },
+  "motorcycle_parking": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 235
+  },
+  "museum": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 235
+  },
+  "music": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 235
+  },
+  "musical_instrument": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 235
+  },
+  "muslim": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 235
+  },
+  "newsagent": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 235
+  },
+  "nightclub": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 235
+  },
+  "obelisk": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 235
+  },
+  "office": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 235
+  },
+  "oneway": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 99,
+    "y": 413
+  },
+  "oneway-reverse": {
+    "height": 11,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 117,
+    "y": 413
+  },
+  "optician": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 235
+  },
+  "outdoor": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 235
+  },
+  "outdoor_seating": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 235
+  },
+  "paint": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 255
+  },
+  "palace": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 255
+  },
+  "parking": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 221,
+    "y": 375
+  },
+  "parking_entrance_multistorey": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 255
+  },
+  "parking_entrance_underground": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 255
+  },
+  "parking_subtle": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 13,
+    "y": 413
+  },
+  "parking_tickets": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 255
+  },
+  "peak": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 171,
+    "y": 395
+  },
+  "perfumery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 255
+  },
+  "pet": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 255
+  },
+  "pharmacy": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 255
+  },
+  "photo": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 255
+  },
+  "picnic": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 255
+  },
+  "place-4": {
+    "height": 10,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 10,
+    "x": 135,
+    "y": 413
+  },
+  "place-4-z7": {
+    "height": 10,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 10,
+    "x": 145,
+    "y": 413
+  },
+  "place-6": {
+    "height": 12,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 39,
+    "y": 413
+  },
+  "place-6-z7": {
+    "height": 12,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 51,
+    "y": 413
+  },
+  "place-capital-6": {
+    "height": 12,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 12,
+    "x": 63,
+    "y": 413
+  },
+  "place-capital-8": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 185,
+    "y": 395
+  },
+  "place_of_worship": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 255
+  },
+  "plaque": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 0,
+    "y": 395
+  },
+  "playground": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 255
+  },
+  "police": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 275
+  },
+  "post_box": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 18,
+    "y": 395
+  },
+  "post_office": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 275
+  },
+  "power_tower": {
+    "height": 13,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 13,
+    "x": 26,
+    "y": 413
+  },
+  "power_tower_small": {
+    "height": 9,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 9,
+    "x": 155,
+    "y": 413
+  },
+  "prison": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 275
+  },
+  "pub": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 36,
+    "y": 395
+  },
+  "public_bath": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 275
+  },
+  "public_bookcase": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 275
+  },
+  "public_transport_tickets": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 275
+  },
+  "recycling": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 275
+  },
+  "rental_bicycle": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 275
+  },
+  "rental_car": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 275
+  },
+  "restaurant": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 275
+  },
+  "saddle": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 199,
+    "y": 395
+  },
+  "sauna": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 275
+  },
+  "seafood": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 275
+  },
+  "second_hand": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 295
+  },
+  "shelter": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 295
+  },
+  "shintoist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 295
+  },
+  "shoes": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 295
+  },
+  "shower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 295
+  },
+  "shrine": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 295
+  },
+  "sikhist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 295
+  },
+  "slipway": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 295
+  },
+  "social_facility": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 295
+  },
+  "sports": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 295
+  },
+  "spring": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 54,
+    "y": 395
+  },
+  "stationery": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 295
+  },
+  "statue": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 295
+  },
+  "stile": {
+    "height": 16,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 16,
+    "x": 155,
+    "y": 395
+  },
+  "stone": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 315
+  },
+  "storage_tank": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 315
+  },
+  "supermarket": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 315
+  },
+  "taoist": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 315
+  },
+  "taxi": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 315
+  },
+  "tea": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 315
+  },
+  "telephone": {
+    "height": 18,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 18,
+    "x": 72,
+    "y": 395
+  },
+  "telescope_dish": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 315
+  },
+  "telescope_dome": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 315
+  },
+  "terminal": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 315
+  },
+  "theatre": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 315
+  },
+  "ticket": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 315
+  },
+  "tobacco": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 315
+  },
+  "toilets": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 335
+  },
+  "toll_booth": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 335
+  },
+  "tower_cantilever_communication": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 335
+  },
+  "tower_cooling": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 335
+  },
+  "tower_defensive": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 335
+  },
+  "tower_dish": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 335
+  },
+  "tower_dome": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 335
+  },
+  "tower_generic": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 335
+  },
+  "tower_lattice": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 335
+  },
+  "tower_lattice_communication": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 335
+  },
+  "tower_lattice_lighting": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 335
+  },
+  "tower_lighting": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 335
+  },
+  "tower_observation": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 355
+  },
+  "town_hall": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 355
+  },
+  "toys": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 355
+  },
+  "trade": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 355
+  },
+  "traffic_light": {
+    "height": 19,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 11,
+    "x": 120,
+    "y": 375
+  },
+  "travel_agency": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 355
+  },
+  "tyres": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 355
+  },
+  "variety_store": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 120,
+    "y": 355
+  },
+  "vehicle_inspection": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 140,
+    "y": 355
+  },
+  "veterinary": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 160,
+    "y": 355
+  },
+  "video": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 180,
+    "y": 355
+  },
+  "video_games": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 200,
+    "y": 355
+  },
+  "viewpoint": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 220,
+    "y": 355
+  },
+  "waste_basket": {
+    "height": 14,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 14,
+    "x": 213,
+    "y": 395
+  },
+  "waste_disposal": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 0,
+    "y": 375
+  },
+  "water_park": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 20,
+    "y": 375
+  },
+  "water_tower": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 40,
+    "y": 375
+  },
+  "waterfall": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 60,
+    "y": 375
+  },
+  "wilderness_hut": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 80,
+    "y": 375
+  },
+  "windmill": {
+    "height": 20,
+    "pixelRatio": 1,
+    "sdf": true,
+    "width": 20,
+    "x": 100,
+    "y": 375
+  }
+}
\ No newline at end of file
diff --git a/basemap/assets/icons@4x.png b/basemap/assets/icons@4x.png
new file mode 100644
index 00000000..52d290c6
Binary files /dev/null and b/basemap/assets/icons@4x.png differ
diff --git a/basemap/layers/point/icon.js b/basemap/layers/point/icon.js
deleted file mode 100644
index 543c1081..00000000
--- a/basemap/layers/point/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,
-    },
... 397 lines suppressed ...