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/19 22:48:10 UTC

(incubator-baremaps) branch main updated: Create the spritesheet with spreet (#831)

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

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


The following commit(s) were added to refs/heads/main by this push:
     new e628783c Create the spritesheet with spreet (#831)
e628783c is described below

commit e628783cec77ac60e2cef2c4cd7048bccacfeae9
Author: Bertil Chapuis <bc...@gmail.com>
AuthorDate: Mon Feb 19 23:48:05 2024 +0100

    Create the spritesheet with spreet (#831)
---
 .run/basemap-dev.run.xml                           |    2 +-
 .run/basemap-serve.run.xml                         |    2 +-
 .../main/java/org/apache/baremaps/cli/map/Dev.java |   13 +-
 .../java/org/apache/baremaps/cli/map/MBTiles.java  |    4 +-
 .../java/org/apache/baremaps/cli/map/Serve.java    |   12 +-
 .../main/resources/{assets => static}/favicon.ico  |  Bin
 .../maplibre-custom-controls.css                   |    0
 .../{assets => static}/maplibre-custom-controls.js |    0
 .../{assets => static}/maplibre-gl-framerate.js    |    0
 .../{assets => static}/maplibre-gl-inspect.css     |    0
 .../{assets => static}/maplibre-gl-inspect.js      |    0
 .../maplibre-gl-tile-boundaries.css                |    0
 .../maplibre-gl-tile-boundaries.js                 |    0
 .../main/resources/{assets => static}/server.html  |    0
 .../main/resources/{assets => static}/viewer.html  |    0
 basemap/assets/icons.json                          | 2050 ++++++++++++++++++++
 basemap/assets/icons.md                            |   15 +
 basemap/assets/icons.png                           |  Bin 0 -> 150034 bytes
 basemap/assets/icons/advertising_column.svg        |    4 +
 basemap/assets/icons/aerodrome.svg                 |    4 +
 basemap/assets/icons/alcohol.svg                   |    4 +
 basemap/assets/icons/alpinehut.svg                 |    4 +
 basemap/assets/icons/amusement_arcade.svg          |    4 +
 basemap/assets/icons/apartment.svg                 |    4 +
 basemap/assets/icons/archaeological_site.svg       |    4 +
 basemap/assets/icons/art.svg                       |    4 +
 basemap/assets/icons/arts_centre.svg               |    4 +
 basemap/assets/icons/artwork.svg                   |    4 +
 basemap/assets/icons/atm.svg                       |    4 +
 basemap/assets/icons/audioguide.svg                |    4 +
 basemap/assets/icons/bag.svg                       |    4 +
 basemap/assets/icons/bakery.svg                    |    4 +
 basemap/assets/icons/bank.svg                      |    4 +
 basemap/assets/icons/bar.svg                       |    4 +
 basemap/assets/icons/bbq.svg                       |    4 +
 basemap/assets/icons/beach_resort.svg              |    5 +
 basemap/assets/icons/beauty.svg                    |    4 +
 basemap/assets/icons/bed.svg                       |    4 +
 basemap/assets/icons/bell_tower.svg                |    4 +
 basemap/assets/icons/bench.svg                     |    4 +
 basemap/assets/icons/beverages.svg                 |    4 +
 basemap/assets/icons/bicycle.svg                   |    4 +
 basemap/assets/icons/bicycle_parking.svg           |    4 +
 basemap/assets/icons/bicycle_repair_station.svg    |    4 +
 basemap/assets/icons/biergarten.svg                |    4 +
 basemap/assets/icons/bird_hide.svg                 |    4 +
 basemap/assets/icons/board.svg                     |    4 +
 basemap/assets/icons/boat_rental.svg               |    4 +
 basemap/assets/icons/bookmaker.svg                 |    5 +
 basemap/assets/icons/bowling_alley.svg             |    4 +
 basemap/assets/icons/buddhist.svg                  |    4 +
 basemap/assets/icons/bunker.svg                    |    4 +
 basemap/assets/icons/bureau_de_change.svg          |    7 +
 basemap/assets/icons/bus_station.svg               |    4 +
 basemap/assets/icons/bus_stop.svg                  |    4 +
 basemap/assets/icons/bust.svg                      |    4 +
 basemap/assets/icons/butcher.svg                   |    4 +
 basemap/assets/icons/cafe.svg                      |    4 +
 basemap/assets/icons/camping.svg                   |    4 +
 basemap/assets/icons/car.svg                       |    4 +
 basemap/assets/icons/car_parts.svg                 |    4 +
 basemap/assets/icons/car_repair.svg                |    8 +
 basemap/assets/icons/car_wash.svg                  |    4 +
 basemap/assets/icons/caravan_park.svg              |    4 +
 basemap/assets/icons/carpet.svg                    |    4 +
 basemap/assets/icons/casino.svg                    |    4 +
 basemap/assets/icons/castle.svg                    |    4 +
 basemap/assets/icons/cave.svg                      |    4 +
 basemap/assets/icons/chalet.svg                    |    5 +
 basemap/assets/icons/charging_station.svg          |    4 +
 basemap/assets/icons/charity.svg                   |    4 +
 basemap/assets/icons/chemist.svg                   |    4 +
 basemap/assets/icons/chimney.svg                   |    5 +
 basemap/assets/icons/christian.svg                 |    4 +
 basemap/assets/icons/cinema.svg                    |    4 +
 basemap/assets/icons/city_gate.svg                 |    4 +
 basemap/assets/icons/clothes.svg                   |    4 +
 basemap/assets/icons/coffee.svg                    |    4 +
 basemap/assets/icons/communications_tower.svg      |    4 +
 basemap/assets/icons/community_centre.svg          |    4 +
 basemap/assets/icons/computer.svg                  |    4 +
 basemap/assets/icons/confectionery.svg             |    4 +
 basemap/assets/icons/consulate.svg                 |    4 +
 basemap/assets/icons/convenience.svg               |    4 +
 basemap/assets/icons/copyshop.svg                  |    4 +
 basemap/assets/icons/courthouse.svg                |    4 +
 basemap/assets/icons/crane.svg                     |    4 +
 basemap/assets/icons/cross.svg                     |    4 +
 basemap/assets/icons/cycle_barrier.svg             |    2 +
 basemap/assets/icons/dairy.svg                     |    4 +
 basemap/assets/icons/deli.svg                      |    4 +
 basemap/assets/icons/dentist.svg                   |    4 +
 basemap/assets/icons/department_store.svg          |    4 +
 basemap/assets/icons/diy.svg                       |    4 +
 basemap/assets/icons/doctors.svg                   |    4 +
 basemap/assets/icons/drinking_water.svg            |    4 +
 basemap/assets/icons/electronics.svg               |    4 +
 basemap/assets/icons/elevator.svg                  |    4 +
 basemap/assets/icons/embassy.svg                   |    4 +
 basemap/assets/icons/emergency_phone.svg           |    4 +
 basemap/assets/icons/entrance.svg                  |    4 +
 basemap/assets/icons/excrement_bags.svg            |    4 +
 basemap/assets/icons/fabric.svg                    |    4 +
 basemap/assets/icons/fast_food.svg                 |    4 +
 basemap/assets/icons/ferry.svg                     |    4 +
 basemap/assets/icons/firepit.svg                   |    4 +
 basemap/assets/icons/firestation.svg               |    4 +
 basemap/assets/icons/fishing.svg                   |    4 +
 basemap/assets/icons/fitness.svg                   |    4 +
 basemap/assets/icons/florist.svg                   |    4 +
 basemap/assets/icons/ford.svg                      |    5 +
 basemap/assets/icons/fort.svg                      |    4 +
 basemap/assets/icons/fortress.svg                  |    4 +
 basemap/assets/icons/fountain.svg                  |    4 +
 basemap/assets/icons/fuel.svg                      |    4 +
 basemap/assets/icons/full-height_turnstile.svg     |    4 +
 basemap/assets/icons/furniture.svg                 |    4 +
 basemap/assets/icons/garden_centre.svg             |    4 +
 basemap/assets/icons/gate.svg                      |    4 +
 basemap/assets/icons/generator_wind.svg            |    4 +
 basemap/assets/icons/gift.svg                      |    4 +
 basemap/assets/icons/golf.svg                      |    4 +
 basemap/assets/icons/golf_pin.svg                  |    4 +
 basemap/assets/icons/greengrocer.svg               |    4 +
 basemap/assets/icons/guest_house.svg               |    5 +
 basemap/assets/icons/guidepost.svg                 |    4 +
 basemap/assets/icons/hairdresser.svg               |    4 +
 basemap/assets/icons/helipad.svg                   |    4 +
 basemap/assets/icons/hifi.svg                      |    4 +
 basemap/assets/icons/hinduist.svg                  |    4 +
 basemap/assets/icons/hospital.svg                  |    4 +
 basemap/assets/icons/hostel.svg                    |    5 +
 basemap/assets/icons/hotel.svg                     |    4 +
 basemap/assets/icons/houseware.svg                 |    4 +
 basemap/assets/icons/hunting_stand.svg             |    4 +
 basemap/assets/icons/ice_cream.svg                 |    4 +
 basemap/assets/icons/interior_decoration.svg       |    4 +
 basemap/assets/icons/internet_cafe.svg             |    4 +
 basemap/assets/icons/jewelry.svg                   |    4 +
 basemap/assets/icons/jewish.svg                    |    4 +
 basemap/assets/icons/kissing_gate.svg              |    4 +
 basemap/assets/icons/laundry.svg                   |    4 +
 basemap/assets/icons/level_crossing.svg            |    4 +
 basemap/assets/icons/level_crossing2.svg           |    4 +
 basemap/assets/icons/library.svg                   |    4 +
 basemap/assets/icons/lift_gate.svg                 |    4 +
 basemap/assets/icons/lighthouse.svg                |    4 +
 basemap/assets/icons/manor.svg                     |    4 +
 basemap/assets/icons/map.svg                       |    4 +
 basemap/assets/icons/marketplace.svg               |    4 +
 basemap/assets/icons/massage.svg                   |    4 +
 basemap/assets/icons/mast.svg                      |    4 +
 basemap/assets/icons/mast_communications.svg       |    4 +
 basemap/assets/icons/mast_lighting.svg             |    4 +
 basemap/assets/icons/medical_supply.svg            |    4 +
 basemap/assets/icons/memorial.svg                  |    4 +
 basemap/assets/icons/miniature_golf.svg            |    6 +
 basemap/assets/icons/mobile_phone.svg              |    4 +
 basemap/assets/icons/monument.svg                  |    4 +
 basemap/assets/icons/motel.svg                     |    4 +
 basemap/assets/icons/motorcycle.svg                |    4 +
 basemap/assets/icons/motorcycle_barrier.svg        |    4 +
 basemap/assets/icons/motorcycle_parking.svg        |    4 +
 basemap/assets/icons/museum.svg                    |    4 +
 basemap/assets/icons/music.svg                     |    4 +
 basemap/assets/icons/musical_instrument.svg        |    4 +
 basemap/assets/icons/muslim.svg                    |    4 +
 basemap/assets/icons/newsagent.svg                 |    4 +
 basemap/assets/icons/nightclub.svg                 |    4 +
 basemap/assets/icons/obelisk.svg                   |    4 +
 basemap/assets/icons/office.svg                    |    4 +
 basemap/assets/icons/oneway-reverse.svg            |    4 +
 basemap/assets/icons/oneway.svg                    |    4 +
 basemap/assets/icons/optician.svg                  |    4 +
 basemap/assets/icons/outdoor.svg                   |    4 +
 basemap/assets/icons/outdoor_seating.svg           |    4 +
 basemap/assets/icons/paint.svg                     |    4 +
 basemap/assets/icons/palace.svg                    |    4 +
 basemap/assets/icons/parking.svg                   |    4 +
 .../assets/icons/parking_entrance_multistorey.svg  |    4 +
 .../assets/icons/parking_entrance_underground.svg  |    4 +
 basemap/assets/icons/parking_subtle.svg            |    4 +
 basemap/assets/icons/parking_tickets.svg           |    4 +
 basemap/assets/icons/peak.svg                      |    4 +
 basemap/assets/icons/perfumery.svg                 |    4 +
 basemap/assets/icons/pet.svg                       |    4 +
 basemap/assets/icons/pharmacy.svg                  |    4 +
 basemap/assets/icons/photo.svg                     |    4 +
 basemap/assets/icons/picnic.svg                    |    4 +
 basemap/assets/icons/place-4-z7.svg                |    4 +
 basemap/assets/icons/place-4.svg                   |    4 +
 basemap/assets/icons/place-6-z7.svg                |    4 +
 basemap/assets/icons/place-6.svg                   |    4 +
 basemap/assets/icons/place-capital-6.svg           |    4 +
 basemap/assets/icons/place-capital-8.svg           |    5 +
 basemap/assets/icons/place_of_worship.svg          |    4 +
 basemap/assets/icons/plaque.svg                    |    4 +
 basemap/assets/icons/playground.svg                |    4 +
 basemap/assets/icons/police.svg                    |    4 +
 basemap/assets/icons/post_box.svg                  |    4 +
 basemap/assets/icons/post_office.svg               |    4 +
 basemap/assets/icons/power_tower.svg               |    5 +
 basemap/assets/icons/power_tower_small.svg         |    2 +
 basemap/assets/icons/prison.svg                    |    4 +
 basemap/assets/icons/pub.svg                       |    4 +
 basemap/assets/icons/public_bath.svg               |    4 +
 basemap/assets/icons/public_bookcase.svg           |    4 +
 basemap/assets/icons/public_transport_tickets.svg  |    4 +
 basemap/assets/icons/recycling.svg                 |    4 +
 basemap/assets/icons/rental_bicycle.svg            |    4 +
 basemap/assets/icons/rental_car.svg                |    4 +
 basemap/assets/icons/restaurant.svg                |    4 +
 basemap/assets/icons/saddle.svg                    |    4 +
 basemap/assets/icons/sauna.svg                     |    7 +
 basemap/assets/icons/seafood.svg                   |    4 +
 basemap/assets/icons/second_hand.svg               |    4 +
 basemap/assets/icons/shelter.svg                   |    4 +
 basemap/assets/icons/shintoist.svg                 |    4 +
 basemap/assets/icons/shoes.svg                     |    4 +
 basemap/assets/icons/shower.svg                    |    4 +
 basemap/assets/icons/shrine.svg                    |    4 +
 basemap/assets/icons/sikhist.svg                   |    4 +
 basemap/assets/icons/slipway.svg                   |    4 +
 basemap/assets/icons/social_facility.svg           |    4 +
 basemap/assets/icons/sports.svg                    |    4 +
 basemap/assets/icons/spring.svg                    |    4 +
 basemap/assets/icons/stationery.svg                |    4 +
 basemap/assets/icons/statue.svg                    |    4 +
 basemap/assets/icons/stile.svg                     |    4 +
 basemap/assets/icons/stone.svg                     |    4 +
 basemap/assets/icons/storage_tank.svg              |    4 +
 basemap/assets/icons/supermarket.svg               |    4 +
 basemap/assets/icons/taoist.svg                    |    4 +
 basemap/assets/icons/taxi.svg                      |    4 +
 basemap/assets/icons/tea.svg                       |    4 +
 basemap/assets/icons/telephone.svg                 |    4 +
 basemap/assets/icons/telescope_dish.svg            |    4 +
 basemap/assets/icons/telescope_dome.svg            |    4 +
 basemap/assets/icons/terminal.svg                  |    4 +
 basemap/assets/icons/theatre.svg                   |    4 +
 basemap/assets/icons/ticket.svg                    |    4 +
 basemap/assets/icons/tobacco.svg                   |    4 +
 basemap/assets/icons/toilets.svg                   |    4 +
 basemap/assets/icons/toll_booth.svg                |    4 +
 .../icons/tower_cantilever_communication.svg       |    4 +
 basemap/assets/icons/tower_cooling.svg             |    4 +
 basemap/assets/icons/tower_defensive.svg           |    4 +
 basemap/assets/icons/tower_dish.svg                |    4 +
 basemap/assets/icons/tower_dome.svg                |    4 +
 basemap/assets/icons/tower_generic.svg             |    4 +
 basemap/assets/icons/tower_lattice.svg             |    4 +
 .../assets/icons/tower_lattice_communication.svg   |    4 +
 basemap/assets/icons/tower_lattice_lighting.svg    |    4 +
 basemap/assets/icons/tower_lighting.svg            |    4 +
 basemap/assets/icons/tower_observation.svg         |    4 +
 basemap/assets/icons/town_hall.svg                 |    4 +
 basemap/assets/icons/toys.svg                      |    4 +
 basemap/assets/icons/trade.svg                     |    4 +
 basemap/assets/icons/traffic_light.svg             |    4 +
 basemap/assets/icons/travel_agency.svg             |    4 +
 basemap/assets/icons/tyres.svg                     |    4 +
 basemap/assets/icons/variety_store.svg             |    4 +
 basemap/assets/icons/vehicle_inspection.svg        |    4 +
 basemap/assets/icons/veterinary.svg                |    4 +
 basemap/assets/icons/video.svg                     |    4 +
 basemap/assets/icons/video_games.svg               |    5 +
 basemap/assets/icons/viewpoint.svg                 |    4 +
 basemap/assets/icons/waste_basket.svg              |    4 +
 basemap/assets/icons/waste_disposal.svg            |    4 +
 basemap/assets/icons/water_park.svg                |    4 +
 basemap/assets/icons/water_tower.svg               |    4 +
 basemap/assets/icons/waterfall.svg                 |    4 +
 basemap/assets/icons/wilderness_hut.svg            |    4 +
 basemap/assets/icons/windmill.svg                  |    4 +
 basemap/style.js                                   |    2 +-
 275 files changed, 3133 insertions(+), 9 deletions(-)

diff --git a/.run/basemap-dev.run.xml b/.run/basemap-dev.run.xml
index af9438a4..a5d0d3b9 100644
--- a/.run/basemap-dev.run.xml
+++ b/.run/basemap-dev.run.xml
@@ -2,7 +2,7 @@
   <configuration default="false" name="basemap-dev" type="Application" factoryName="Application">
     <option name="MAIN_CLASS_NAME" value="org.apache.baremaps.cli.Baremaps" />
     <module name="baremaps-cli" />
-    <option name="PROGRAM_PARAMETERS" value="map dev --tileset tileset.js --style style.js --log-level DEBUG" />
+    <option name="PROGRAM_PARAMETERS" value="map dev --tileset tileset.js --style style.js --assets assets --log-level DEBUG" />
     <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/basemap" />
     <extension name="software.aws.toolkits.jetbrains.core.execution.JavaAwsConnectionExtension">
       <option name="credential" />
diff --git a/.run/basemap-serve.run.xml b/.run/basemap-serve.run.xml
index a0e90fa3..b955d441 100644
--- a/.run/basemap-serve.run.xml
+++ b/.run/basemap-serve.run.xml
@@ -2,7 +2,7 @@
   <configuration default="false" name="basemap-serve" type="Application" factoryName="Application">
     <option name="MAIN_CLASS_NAME" value="org.apache.baremaps.cli.Baremaps" />
     <module name="baremaps-cli" />
-    <option name="PROGRAM_PARAMETERS" value="map serve --tileset tileset.js --style style.js" />
+    <option name="PROGRAM_PARAMETERS" value="map serve --tileset tileset.js --style style.js --assets assets" />
     <option name="WORKING_DIRECTORY" value="$PROJECT_DIR$/basemap" />
     <method v="2">
       <option name="Make" enabled="true" />
diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Dev.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Dev.java
index a2431b39..a1283f4f 100644
--- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Dev.java
+++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Dev.java
@@ -66,6 +66,10 @@ public class Dev implements Callable<Integer> {
       required = true)
   private Path stylePath;
 
+  @Option(names = {"--assets"}, paramLabel = "ASSETS", description = "The assets directory.",
+      required = false)
+  private Path assetsPath;
+
   @Option(names = {"--host"}, paramLabel = "HOST", description = "The host of the server.")
   private String host = "localhost";
 
@@ -112,9 +116,13 @@ public class Dev implements Callable<Integer> {
     serverBuilder.annotatedService(new StyleResource(styleSupplier), jsonResponseConverter);
     serverBuilder.annotatedService(new TilesetResource(tilesetSupplier), jsonResponseConverter);
 
-    var index = HttpFile.of(ClassLoader.getSystemClassLoader(), "/assets/viewer.html");
+    var index = HttpFile.of(ClassLoader.getSystemClassLoader(), "/static/viewer.html");
     serverBuilder.service("/", index.asService());
-    serverBuilder.serviceUnder("/", FileService.of(ClassLoader.getSystemClassLoader(), "/assets"));
+    serverBuilder.serviceUnder("/", FileService.of(ClassLoader.getSystemClassLoader(), "/static"));
+
+    if (assetsPath != null) {
+      serverBuilder.serviceUnder("/assets", FileService.of(assetsPath));
+    }
 
     serverBuilder.decorator(CorsService.builderForAnyOrigin()
         .allowRequestMethods(HttpMethod.POST, HttpMethod.GET, HttpMethod.PUT)
@@ -123,6 +131,7 @@ public class Dev implements Callable<Integer> {
 
     serverBuilder.serviceUnder("/docs", new DocService());
 
+
     serverBuilder.disableServerHeader();
     serverBuilder.disableDateHeader();
 
diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/MBTiles.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/MBTiles.java
index 79f6238f..ab063069 100644
--- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/MBTiles.java
+++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/MBTiles.java
@@ -97,9 +97,9 @@ public class MBTiles implements Callable<Integer> {
     serverBuilder.annotatedService(new StyleResource(styleSupplier), jsonResponseConverter);
     serverBuilder.annotatedService(new TileJSONResource(tileJSONSupplier), jsonResponseConverter);
 
-    var index = HttpFile.of(ClassLoader.getSystemClassLoader(), "/assets/server.html");
+    var index = HttpFile.of(ClassLoader.getSystemClassLoader(), "/static/server.html");
     serverBuilder.service("/", index.asService());
-    serverBuilder.serviceUnder("/", FileService.of(ClassLoader.getSystemClassLoader(), "/assets"));
+    serverBuilder.serviceUnder("/", FileService.of(ClassLoader.getSystemClassLoader(), "/static"));
 
     serverBuilder.decorator(CorsService.builderForAnyOrigin()
         .allowRequestMethods(HttpMethod.GET, HttpMethod.POST, HttpMethod.PUT, HttpMethod.DELETE,
diff --git a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java
index 56a0b3cf..8c7d733a 100644
--- a/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java
+++ b/baremaps-cli/src/main/java/org/apache/baremaps/cli/map/Serve.java
@@ -72,6 +72,10 @@ public class Serve implements Callable<Integer> {
       required = true)
   private Path stylePath;
 
+  @Option(names = {"--assets"}, paramLabel = "ASSETS", description = "The assets directory.",
+      required = false)
+  private Path assetsPath;
+
   @Option(names = {"--host"}, paramLabel = "HOST", description = "The host of the server.")
   private String host = "localhost";
 
@@ -105,9 +109,13 @@ public class Serve implements Callable<Integer> {
     serverBuilder.annotatedService(new TileJSONResource(tileJSONSupplier), jsonResponseConverter);
     serverBuilder.annotatedService(new SearchResource(datasource), jsonResponseConverter);
 
-    var index = HttpFile.of(ClassLoader.getSystemClassLoader(), "/assets/server.html");
+    var index = HttpFile.of(ClassLoader.getSystemClassLoader(), "/static/server.html");
     serverBuilder.service("/", index.asService());
-    serverBuilder.serviceUnder("/", FileService.of(ClassLoader.getSystemClassLoader(), "/assets"));
+    serverBuilder.serviceUnder("/", FileService.of(ClassLoader.getSystemClassLoader(), "/static"));
+
+    if (assetsPath != null) {
+      serverBuilder.serviceUnder("/assets", FileService.of(assetsPath));
+    }
 
     serverBuilder.decorator(CorsService.builderForAnyOrigin()
         .allowRequestMethods(HttpMethod.GET, HttpMethod.POST, HttpMethod.PUT, HttpMethod.DELETE,
diff --git a/baremaps-server/src/main/resources/assets/favicon.ico b/baremaps-server/src/main/resources/static/favicon.ico
similarity index 100%
rename from baremaps-server/src/main/resources/assets/favicon.ico
rename to baremaps-server/src/main/resources/static/favicon.ico
diff --git a/baremaps-server/src/main/resources/assets/maplibre-custom-controls.css b/baremaps-server/src/main/resources/static/maplibre-custom-controls.css
similarity index 100%
rename from baremaps-server/src/main/resources/assets/maplibre-custom-controls.css
rename to baremaps-server/src/main/resources/static/maplibre-custom-controls.css
diff --git a/baremaps-server/src/main/resources/assets/maplibre-custom-controls.js b/baremaps-server/src/main/resources/static/maplibre-custom-controls.js
similarity index 100%
rename from baremaps-server/src/main/resources/assets/maplibre-custom-controls.js
rename to baremaps-server/src/main/resources/static/maplibre-custom-controls.js
diff --git a/baremaps-server/src/main/resources/assets/maplibre-gl-framerate.js b/baremaps-server/src/main/resources/static/maplibre-gl-framerate.js
similarity index 100%
rename from baremaps-server/src/main/resources/assets/maplibre-gl-framerate.js
rename to baremaps-server/src/main/resources/static/maplibre-gl-framerate.js
diff --git a/baremaps-server/src/main/resources/assets/maplibre-gl-inspect.css b/baremaps-server/src/main/resources/static/maplibre-gl-inspect.css
similarity index 100%
rename from baremaps-server/src/main/resources/assets/maplibre-gl-inspect.css
rename to baremaps-server/src/main/resources/static/maplibre-gl-inspect.css
diff --git a/baremaps-server/src/main/resources/assets/maplibre-gl-inspect.js b/baremaps-server/src/main/resources/static/maplibre-gl-inspect.js
similarity index 100%
rename from baremaps-server/src/main/resources/assets/maplibre-gl-inspect.js
rename to baremaps-server/src/main/resources/static/maplibre-gl-inspect.js
diff --git a/baremaps-server/src/main/resources/assets/maplibre-gl-tile-boundaries.css b/baremaps-server/src/main/resources/static/maplibre-gl-tile-boundaries.css
similarity index 100%
rename from baremaps-server/src/main/resources/assets/maplibre-gl-tile-boundaries.css
rename to baremaps-server/src/main/resources/static/maplibre-gl-tile-boundaries.css
diff --git a/baremaps-server/src/main/resources/assets/maplibre-gl-tile-boundaries.js b/baremaps-server/src/main/resources/static/maplibre-gl-tile-boundaries.js
similarity index 100%
rename from baremaps-server/src/main/resources/assets/maplibre-gl-tile-boundaries.js
rename to baremaps-server/src/main/resources/static/maplibre-gl-tile-boundaries.js
diff --git a/baremaps-server/src/main/resources/assets/server.html b/baremaps-server/src/main/resources/static/server.html
similarity index 100%
rename from baremaps-server/src/main/resources/assets/server.html
rename to baremaps-server/src/main/resources/static/server.html
diff --git a/baremaps-server/src/main/resources/assets/viewer.html b/baremaps-server/src/main/resources/static/viewer.html
similarity index 100%
rename from baremaps-server/src/main/resources/assets/viewer.html
rename to baremaps-server/src/main/resources/static/viewer.html
diff --git a/basemap/assets/icons.json b/basemap/assets/icons.json
new file mode 100644
index 00000000..ce3359be
--- /dev/null
+++ b/basemap/assets/icons.json
@@ -0,0 +1,2050 @@
+{
+  "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
new file mode 100644
index 00000000..809fb06f
--- /dev/null
+++ b/basemap/assets/icons.md
@@ -0,0 +1,15 @@
+# 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
new file mode 100644
index 00000000..01c613dc
Binary files /dev/null and b/basemap/assets/icons.png differ
diff --git a/basemap/assets/icons/advertising_column.svg b/basemap/assets/icons/advertising_column.svg
new file mode 100644
index 00000000..15375191
--- /dev/null
+++ b/basemap/assets/icons/advertising_column.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="advertising_column">
+  <path d="M 4,3 L 4,2 7,0 10,2 10,3 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/aerodrome.svg b/basemap/assets/icons/aerodrome.svg
new file mode 100644
index 00000000..7d6cebb7
--- /dev/null
+++ b/basemap/assets/icons/aerodrome.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" id="aerodrome">
+  <path d="M 6 0 C 5.254644 0 5 2 5 2 L 5 3.96875 L 0 7.5 L 0 8.5 L 5 7.25 L 5 9.65625 L 3 11 L 3 12 L 6 11.25 L 9 12 L 9 11 L 7 9.65625 L 7 7.25 L 12 8.5 L 12 7.5 L 7 3.96875 L 7 2 C 7 2 6.745356 0 6 0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/alcohol.svg b/basemap/assets/icons/alcohol.svg
new file mode 100644
index 00000000..61796654
--- /dev/null
+++ b/basemap/assets/icons/alcohol.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="alcohol">
+  <path d="M 3,0 C 2,0 2,0.4670568 2,1 L 2,3 C 2,4 0,4 0,6 l 0,7 c 0,0.566252 0.467057,1 1,1 l 4,0 c 0.599561,0 1,-0.400439 1,-1 L 6,6 C 6,4 4,4 4,3 L 4,1 C 4,0.4337479 4,0 3,0 z m 4,5 c 0,3 0.47106,5 3,5 l 0,2 c 0,0.666911 -1,1 -1.5,1 -1,0 -1.5,0 -1.5,1 l 7,0 C 14,13 13.5,13 12.5,13 12,13 11,12.633602 11,12 l 0,-2 c 2.47106,0 3,-2 3,-5 L 7,5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/alpinehut.svg b/basemap/assets/icons/alpinehut.svg
new file mode 100644
index 00000000..33adbbbb
--- /dev/null
+++ b/basemap/assets/icons/alpinehut.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="alpinehut">
+  <path d="M 7 0 L 0 3.5 L 0 5.5 L 1.5 4.8496094 L 1.5 14 L 3 14 L 3 4.1992188 L 7 2.5 L 11 4.1992188 L 11 14 L 12.5 14 L 12.5 4.8496094 L 14 5.5 L 14 3.5 L 7 0 z M 6.9726562 5.0488281 C 6.5840971 5.0488281 6.2675781 5.3630448 6.2675781 5.7519531 C 6.2675781 6.1417342 6.584097 6.4550781 6.9726562 6.4550781 C 7.361041 6.4550781 7.6757812 6.1417342 7.6757812 5.7519531 C 7.6757812 5.3630448 7.3608664 5.0488281 6.9726562 5.0488281 z M 5.0488281 6.1875 C 4.9393822 6.162539 4.8312529 6.2261094 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/amusement_arcade.svg b/basemap/assets/icons/amusement_arcade.svg
new file mode 100644
index 00000000..e83b60a4
--- /dev/null
+++ b/basemap/assets/icons/amusement_arcade.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="amusement_arcade">
+  <path d="m0,1 h4 v2 h-4z m10,0 h4 v2 h-4z m-6,2 v2 h-2 v2 h-2 v7 h2 v-2 h2 v2 h2 v-2 h2 v2 h2 v-2 h2 v2 h2 v-7 h-2 v-2 h-2 v-2 h-2 v2 h-2 v-2z m0,4 h2 v2 h-2 z m4,0 h2 v2 h-2 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/apartment.svg b/basemap/assets/icons/apartment.svg
new file mode 100644
index 00000000..ab164d77
--- /dev/null
+++ b/basemap/assets/icons/apartment.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="apartment">
+  <path d="M 0.5,3 C 0.223,3 0,3.223 0,3.5 V 4 8 9 9.5 11 H 1 V 9.5 9 H 13 V 10.5 11 H 13.5 14 V 10.5 9 8 6 5.5 C 14,5.223 13.777,5 13.5,5 13.223,5 13,5.223 13,5.5 V 6 8 H 1 V 4 3.5 C 1,3.223 0.777,3 0.5,3 Z m 3,1 C 2.671573,4 2,4.671573 2,5.5 2,6.328427 2.671573,7 3.5,7 4.328427,7 5,6.328427 5,5.5 5,4.671573 4.328427,4 3.5,4 Z M 6,5 v 2 h 6 C 12,6 10.963825,5 10,5 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/archaeological_site.svg b/basemap/assets/icons/archaeological_site.svg
new file mode 100644
index 00000000..09a2a87a
--- /dev/null
+++ b/basemap/assets/icons/archaeological_site.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="archaeological_site">
+  <path d="M 3,0 3,1 4,1 C 4.5988688,1 4.8411383,2.0430706 4.9375,2.90625 3.9652283,2.1499026 3.0249855,1.8795933 2.21875,2.03125 1.1884439,2.2250555 0.5,3.1743045 0.5,4.25 c 0,0.8419164 0.31211643,1.5788561 0.84375,2.34375 0.464621,0.6684787 1.1198438,1.4400576 1.9375,2.375 C 3.6476993,10.327756 4.3223039,11.572304 5,12.25 L 5,13 4,13.5 4,14 10,14 10,13.5 9,13 9,12.25 c 0.6776961,-0.677696 1.352301,-1.922244 1.71875,-3.28125 0.817656,-0.9349424 1.472879,-1.7065213 1.9375,-2.375 C 13.187 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/art.svg b/basemap/assets/icons/art.svg
new file mode 100644
index 00000000..c2248275
--- /dev/null
+++ b/basemap/assets/icons/art.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="art">
+  <path d="M 7,-9.9999999e-8 C 3.134444,-9.9999999e-8 0,3.1344439 0,7 c 0,3.865556 3.134444,7 7,7 0.645556,0 1.1660156,-0.520461 1.1660156,-1.166016 0,-0.303333 -0.1121788,-0.577093 -0.3027344,-0.783203 -0.1827769,-0.206111 -0.2910156,-0.473992 -0.2910156,-0.773437 0,-0.645556 0.5204596,-1.166016 1.1660156,-1.166016 l 1.3730468,0 C 12.257994,10.111328 14,8.369323 14,6.222656 c 0,-3.4377778 -3.134445,-6.2226561 -7,-6.2226561 z M 8.9335938,1.3046874 A 1.3891786,1.3891786 0 0 1 10.322266,2. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/arts_centre.svg b/basemap/assets/icons/arts_centre.svg
new file mode 100644
index 00000000..985f04cf
--- /dev/null
+++ b/basemap/assets/icons/arts_centre.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="arts_centre">
+  <path d="M 14 0.001953125 C 13.33277 0.091718085 12.665921 0.2004374 12 0.3046875 L 12 10.171875 L 11.492188 10.132812 C 10.176877 10.039022 8.7861312 10.693032 8.1757812 11.691406 C 7.9510942 12.058924 7.92742 12.6419 8.125 12.958984 C 8.433456 13.453997 9.1660816 13.86832 9.9628906 14.001953 C 11.795196 13.948773 13.108043 13.301828 13.998047 11.96875 C 14.000047 7.9999604 14 4.0006148 14 0.001953125 z M 7.1074219 0.005859375 C 4.6531858 -0.057768225 2.2414122 1.1902481 0.92773438 3. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/artwork.svg b/basemap/assets/icons/artwork.svg
new file mode 100644
index 00000000..0b1539c2
--- /dev/null
+++ b/basemap/assets/icons/artwork.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="artwork">
+  <path d="M 4 0 L 5 2 L 6 2 L 5 4 L 6 6 L 5 8 L 6 10 L 5 12 L 9 12 L 8 10 L 9 8 L 8 6 L 9 4 L 8 2 L 9 2 L 10 0 L 4 0 z M 7 3 A 1 1 0 0 1 8 4 A 1 1 0 0 1 7 5 A 1 1 0 0 1 6 4 A 1 1 0 0 1 7 3 z M 7 7 A 1 1 0 0 1 8 8 A 1 1 0 0 1 7 9 A 1 1 0 0 1 6 8 A 1 1 0 0 1 7 7 z M 3 13 L 3 14 L 11 14 L 11 13 L 3 13 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/atm.svg b/basemap/assets/icons/atm.svg
new file mode 100644
index 00000000..1c5f5a6e
--- /dev/null
+++ b/basemap/assets/icons/atm.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="atm">
+  <path d="M 0,0 C 0,1 0,2 0,3 H 1 V 1 h 12 v 2 h 1 V 0 C 9.3333333,0 4.6666667,0 0,0 Z m 2,2 c 0,3 0,6 0,9 0,0.599243 0.400757,1 1,1 h 8 c 0.527334,0 1,-0.448696 1,-1 0,-3 0,-6 0,-9 h -1 c 0,2.3333333 0,4.6666667 0,7 -1,0 -2,1 -2,2 H 5 C 5,10 4,9 3,9 3,6.6666667 3,4.3333333 3,2 Z M 7,4 C 5.429204,4 4,4.9528024 4,6 4,7.047198 5.429204,8 7,8 8.570796,8 10,7.047198 10,6 10,4.9528024 8.570796,4 7,4 Z M 2,12.5 C 2,13.554668 2.424727,14 3,14 h 8 c 0.527334,0 1,-0.445332 1,-1.5 -0.305085,0.271 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/audioguide.svg b/basemap/assets/icons/audioguide.svg
new file mode 100644
index 00000000..ee35bf64
--- /dev/null
+++ b/basemap/assets/icons/audioguide.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="audioguide">
+  <path d="M 7 1 A 5 5 0 0 0 2 6 C 0.892 6 0 6.892 0 8 L 0 10 C 0 11.108 0.892 12 2 12 L 3 12 L 3 6 A 4 4 0 0 1 7 2 A 4 4 0 0 1 11 6 L 11 12 L 12 12 C 13.108 12 14 11.108 14 10 L 14 8 C 14 6.892 13.108 6 12 6 A 5 5 0 0 0 7 1 z M 7 4.9550781 A 1.138829 1.138829 0 0 0 5.8613281 6.09375 A 1.138829 1.138829 0 0 0 7 7.2324219 A 1.138829 1.138829 0 0 0 8.1386719 6.09375 A 1.138829 1.138829 0 0 0 7 4.9550781 z M 7.7519531 7.9824219 L 5.4960938 8.734375 L 5.4960938 9.4863281 L 6.1875 9.4863281 L [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bag.svg b/basemap/assets/icons/bag.svg
new file mode 100644
index 00000000..a9dee382
--- /dev/null
+++ b/basemap/assets/icons/bag.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bag">
+  <path d="M 6,1 C 5,1 4,2.0209735 4,3 l 0,1 -0.75,0 0,9 7.5,0 0,-9 L 10,4 10,3 C 10,2 8.9895132,1 8,1 z m 0.5,1.25 1,0 c 0.8599138,0 1.25,0.5994182 1.25,1.25 l 0,0.5 -3.5,0 0,-0.5 C 5.25,2.8707948 5.5557891,2.25 6.5,2.25 z M 2,4 C 0.64345039,4 0,4.6434504 0,6 l 0,5 c 0,1.35655 0.74831793,2 2,2 z m 10,0 0,9 c 1.251682,0 2,-0.748318 2,-2 L 14,6 C 14,4.6853974 13.377523,4 12,4 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bakery.svg b/basemap/assets/icons/bakery.svg
new file mode 100644
index 00000000..e190a0c8
--- /dev/null
+++ b/basemap/assets/icons/bakery.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bakery">
+  <path d="M 6.75,3 8.25,7 6.75,7 5.25,3 C 5.25,3 3.494833,3 3.5,3 L 5,7 3.5,7 2.176907,3.5762712 C 1.291044,4.2640693 0,6.1983848 0,8 l 0,2 c 0,0.59322 0.423729,1 1,1 l 12,0 c 0.576271,0 1,-0.423729 1,-1 L 14,8 C 14,5.5355945 12.272623,3.5853602 10,3 L 11.5,7 10,7 8.5,3 c 0,0 -1.743955,0 -1.75,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bank.svg b/basemap/assets/icons/bank.svg
new file mode 100644
index 00000000..153c430e
--- /dev/null
+++ b/basemap/assets/icons/bank.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bank">
+  <path d="m 0,2 0,7 c 0,0.627119 0.423729,1 1,1 l 12,0 c 0.576271,0 1,-0.423729 1,-1 L 14,2 0,2 z m 3,1 8,0 c 0,1 1,2 2,2 l 0,2 C 12,7 11,8 11,9 L 3,9 C 3,8 2,7 1,7 L 1,5 C 2,5 3,4 3,3 z M 7,4 C 5.343146,4 4,4.8954305 4,6 4,7.10457 5.343146,8 7,8 8.656855,8 10,7.10457 10,6 10,4.8954305 8.656855,4 7,4 z M 0,10.5 C 0,11.626577 0.448696,12 1,12 l 12,0 c 0.551304,0 1,-0.445333 1,-1.5 -0.288136,0.271186 -0.559322,0.5 -1,0.5 L 1,11 C 0.559322,11 0.271186,10.754237 0,10.5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bar.svg b/basemap/assets/icons/bar.svg
new file mode 100644
index 00000000..844b2f13
--- /dev/null
+++ b/basemap/assets/icons/bar.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" id="bar">
+  <path d="m0,0 l5.5,6 v4 c0,0 -4.5,1 -4.5,2 h10 c0,-1 -4.5,-2 -4.5,-2 v-4 l5.5,-6 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bbq.svg b/basemap/assets/icons/bbq.svg
new file mode 100644
index 00000000..29271972
--- /dev/null
+++ b/basemap/assets/icons/bbq.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bbq">
+  <path d="M 4,0 C 3,0.5 2,0.5 2,1.5 2,2.5 3.5,3 3.5,3.5 3.5,4 2.8333335,4.5 2.5,5 4,4.5 4.5,4.5 4.5,3.5 4.5,2.5 3.5,2 3,1.5 3,1 3.8333335,0.6666665 4,0 Z m 3.75,0 c -1,0.5 -2,0.5 -2,1.5 0,1 1.5,1.5 1.5,2 0,0.5 -0.6666665,1 -1,1.5 1.5,-0.5 2,-0.5 2,-1.5 0,-1 -1,-1.5 -1.5,-2 0,-0.5 0.8333335,-0.8333335 1,-1.5 z m 3.75,0 c -1,0.5 -2,0.5 -2,1.5 0,1 1.5,1.5 1.5,2 0,0.5 -0.666666,1 -1,1.5 1.5,-0.5 2,-0.5 2,-1.5 0,-1 -1,-1.5 -1.5,-2 0,-0.5 0.833334,-0.8333335 1,-1.5 z M 1,6 v 8 h 1 v -2 h 10 v [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/beach_resort.svg b/basemap/assets/icons/beach_resort.svg
new file mode 100644
index 00000000..aee3ce1a
--- /dev/null
+++ b/basemap/assets/icons/beach_resort.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="beach_resort">
+  <path id="water" d="M 4.1219331,13.626631 C 3.9041098,13.56795 3.7043745,13.480474 3.043201,13.154183 2.3936171,12.833614 2.1711099,12.749242 1.9125179,12.725438 c -0.2427544,-0.02235 -0.5196116,0.06876 -1.14937063,0.378208 -0.26989319,0.132619 -0.49218946,0.237405 -0.49399252,0.232857 -0.00182,-0.0045 7.8464e-4,-0.433243 0.005749,-0.952658 l 0.009006,-0.944389 0.38017662,-0.185017 c 1.15315213,-0.561185 1.19548523,-0.560485 2.43880113,0.04037 0.8838929,0.42716 1.0026169,0.470972 1.279 [...]
+  <path id="umberella" d="M 6.016584,6.0236978 C 5.932851,5.9378471 3.6378765,6.9862878 2.6954763,7.54092 2.3320484,7.7548096 1.9622319,7.9298097 1.8736625,7.9298097 c -0.3712658,0 -0.5631356,-0.466656 -0.5631356,-1.369629 0,-1.2413424 0.4715626,-2.5062381 1.3248694,-3.5537599 C 2.9552391,2.6137791 3.8490947,1.901672 4.2094811,1.752395 4.4083272,1.6700224 4.427748,1.6355879 4.427748,1.3652619 c 0,-0.57579519 0.4995253,-0.77136879 0.8590791,-0.3363459 0.1844817,0.2232084 0.2021353,0.22934 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/beauty.svg b/basemap/assets/icons/beauty.svg
new file mode 100644
index 00000000..2c814b0c
--- /dev/null
+++ b/basemap/assets/icons/beauty.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="beauty">
+  <path d="M 5,1 C 4,1 3,1.46875 2,2.46875 c -1,1 -2,2 -2,3 0.66666667,0 1.3333333,0.375 2,0.375 1.5237901,0 1.9342025,-1.3092025 3,-2.375 C 5.5389586,3.1175528 5.9898446,2.7619014 7.46875,2.9375 9.0284017,3.2709486 12,4.4600154 14,5.875 12.391103,4.2253627 10.510265,2.4108539 8,1.46875 7,0.9738806 6,1 5,1 Z m 7.34375,5.15625 -4.03125,1.75 C 4.9738455,8.4535704 1.1352801,7.1709309 1.25,7.3125 1.294552,7.367479 1.331618,7.4143303 1.375,7.46875 V 7.5 L 0,11 2.59375,9 3,13 4.96875,9.8125 c  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bed.svg b/basemap/assets/icons/bed.svg
new file mode 100644
index 00000000..754dc27a
--- /dev/null
+++ b/basemap/assets/icons/bed.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bed">
+  <path d="M13.301,1.531c-0.275,0-0.699,0.21-0.699,0.469v6H0v3h1.4V9.398h11.201V11H14V2C14,1.741,13.576,1.531,13.301,1.531z M0.5,4.6C0.224,4.6,0,4.824,0,5.1V7h11.602V4.6H0.5z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bell_tower.svg b/basemap/assets/icons/bell_tower.svg
new file mode 100644
index 00000000..593fbbbd
--- /dev/null
+++ b/basemap/assets/icons/bell_tower.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bell_tower">
+  <path d="M 7 0 L 3 3 L 3 14 L 4 14 L 4 6 A 3 3 0 0 1 7 3 A 3 3 0 0 1 10 6 L 10 14 L 11 14 L 11 3 L 7 0 z M 6.6425781 4.5 C 5.1713456 5.5990112 5.6263833 6.1171551 5.125 8.0292969 C 5.0267045 8.1297436 4.5 8.4517303 4.5 8.7597656 L 4.5 9 L 9.5 9 L 9.5 8.7597656 C 9.5065855 8.4517303 8.9283731 8.1297433 8.8300781 8.0292969 C 8.3366263 6.1474042 8.7614816 5.3429388 7.3574219 4.5 L 6.6425781 4.5 z M 7 9.75 A 0.75 0.75 0 0 0 6.25 10.5 A 0.75 0.75 0 0 0 7 11.25 A 0.75 0.75 0 0 0 7.75 10.5 A  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bench.svg b/basemap/assets/icons/bench.svg
new file mode 100644
index 00000000..6b11278b
--- /dev/null
+++ b/basemap/assets/icons/bench.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bench">
+  <path d="m1,5 a.75,.75 0 0 0 0,1.5 h12 a.75,.75 0 0 0 0,-1.5 z m1,2 v3 h1.5 v-3 z m8.5,0 v3 h1.5 v-3 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/beverages.svg b/basemap/assets/icons/beverages.svg
new file mode 100644
index 00000000..4e57010e
--- /dev/null
+++ b/basemap/assets/icons/beverages.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="beverages">
+  <path d="M 3,0 C 2,0 2,0.50227551 2,2 2,3 0,7 0,8 l 0,5 c 0,0.566252 0.467057,1 1,1 l 4,0 c 0.599561,0 1,-0.400439 1,-1 L 6,8 C 6,7 4,3 4,2 4,0.46896661 4,0 3,0 z m 7.875,1 -1,4 L 11,5 11.75,2 14,2 14,1 z M 7,6 8,13 c 0,0 0,1 1,1 l 2,0 c 1,0 1,-1 1,-1 l 1,-7 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bicycle.svg b/basemap/assets/icons/bicycle.svg
new file mode 100644
index 00000000..46ab0616
--- /dev/null
+++ b/basemap/assets/icons/bicycle.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bicycle">
+  <path d="M 8,1.5 8,2.375 9.25,3.15625 9.25,4.25 5,4.25 5,3.5 l 0.5,0 c 1,0 1,-1 0,-1 l -2,0 c -1,0 -1,1 0,1 L 4,3.5 4,4.25 3.0625,6 C 3.0416,5.9995343 3.02098,6 3,6 1.387717,6 0,7.3877166 0,9 0,10.612283 1.387717,12 3,12 4.612283,12 6,10.612283 6,9 6,8.654031 5.92843,8.313419 5.8125,8 L 6.25,8 C 7,8 7.172746,7.546004 7.4375,7.28125 L 9.21875,5.25 9.75,6.28125 C 8.727462,6.7659158 8,7.824875 8,9 c 0,1.612283 1.387717,3 3,3 1.612283,0 3,-1.387717 3,-3 C 14,7.3877166 12.612283,6 11,6 10.9 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bicycle_parking.svg b/basemap/assets/icons/bicycle_parking.svg
new file mode 100644
index 00000000..04c10314
--- /dev/null
+++ b/basemap/assets/icons/bicycle_parking.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bicycle_parking">
+  <path d="m 0,0 0,10 2.000077,0 0,-3.5 2.500097,0 c 1.976154,3e-7 3.500135,-1 3.500135,-3.25 C 8.000309,1 6.4871,2e-7 4.968942,0 z m 2.000077,2 2.500097,0 c 0.963608,0 1.500058,0.5254308 1.500058,1.25 0,0.7245692 -0.631804,1.25 -1.500058,1.25 l -2.500097,0 z M 9,7 9,7.5938559 9.500367,8 l 0,0.75 -3.000116,0 0,-0.25 0.50002,0 c 0.479412,0 0.455442,-0.5 0,-0.5 L 5.500213,8 c -0.50002,0 -0.50002,0.452061 0,0.5 l 0.500019,0 0,0.25 -0.562522,1.28125 C 5.296384,10.001436 5.147956,10 5.000193, [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bicycle_repair_station.svg b/basemap/assets/icons/bicycle_repair_station.svg
new file mode 100644
index 00000000..7d1ff94a
--- /dev/null
+++ b/basemap/assets/icons/bicycle_repair_station.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bicycle_repair_station">
+  <path d="M 2.7441406 0 C 2.0338765 0.0003935 1.3740289 0.4117078 1 1 L 3.3691406 1 L 3.9921875 2 L 3.3691406 3 L 1.0019531 3 C 1.3756288 3.5877381 2.0345467 3.9989723 2.7441406 4 C 3.5023764 3.9999999 4.1562562 3.595766 4.5117188 3 L 9.1777344 3 C 9.533156 3.5959232 10.188909 4.0000003 10.947266 4 C 12.080957 4.0000002 13 3.1045696 13 2 C 13 0.89543042 12.080957 -2e-007 10.947266 0 C 10.188909 -2.6757065e-007 9.533156 0.40407683 9.1777344 1 L 4.5117188 1 C 4.1562561 0.40423404 3.502376 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/biergarten.svg b/basemap/assets/icons/biergarten.svg
new file mode 100644
index 00000000..9bf8dde7
--- /dev/null
+++ b/basemap/assets/icons/biergarten.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="biergarten">
+  <path d="M 3,0 C 2,0 1,1 1,2 l 0,10 c 0,1 -1,2 -1,2 l 11,0 c 0,0 -1,-1 -1,-2 l 3,0 c 1,0 1,-1 1,-1 L 14,5 C 14,4 13,3 12,3 L 10,3 10,2 C 10,0.7603028 9.263667,0 8,0 z M 4,1 7,1 C 8.380981,1 9,1.3528175 9,2 6,2 3.85459,2.19773 4,5 4,7 2,7 2,5 L 2,3 C 2,1.4966359 2.496636,1 4,1 z m 6,3.5 1,0 c 0.690253,0 1.5,0.027334 1.5,1.5 l 0,4.5 -2.5,0 z m -8,7.5 7,0 0,1 -7,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bird_hide.svg b/basemap/assets/icons/bird_hide.svg
new file mode 100644
index 00000000..33e15208
--- /dev/null
+++ b/basemap/assets/icons/bird_hide.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bird_hide">
+  <path d="M 3.0710695,0.10833 V 2.015194 H 5.7318342 V 0.10833 Z m 5.2096283,0 V 2.015194 H 10.945605 V 0.10833 Z m 0,2.5037956 v 5.2646027 c 0,0.2525691 0.2033707,0.4559935 0.4558908,0.4559935 h 0.033149 0.4227382 v 5.1029302 c 0,0.244081 0.1994286,0.443555 0.4434623,0.443555 h 3.9124009 c 0.244028,0 0.443463,-0.19947 0.443463,-0.443555 v -3.17534 L 14,9.7960303 12.3049,2.6121256 Z M 1.6992419,2.6204383 0,9.8043411 0.00831104,10.272767 v 3.175343 c 7.43e-6,0.244086 0.19944083,0.44356 0 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/board.svg b/basemap/assets/icons/board.svg
new file mode 100644
index 00000000..6bd0289f
--- /dev/null
+++ b/basemap/assets/icons/board.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="board">
+  <path d="m 0,0 c 0,4.6666667 0,9.3333333 0,14 h 1 v -3 h 12 v 3 h 1 C 14,9.3333333 14,4.6666667 14,0 9.3333333,0 4.6666667,0 0,0 Z m 1,1 h 12 v 9 H 1 Z m 3,2 v 1 h 6 V 3 Z M 2,5 V 6 H 12 V 5 Z M 2,7 V 8 H 12 V 7 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/boat_rental.svg b/basemap/assets/icons/boat_rental.svg
new file mode 100644
index 00000000..985fb36c
--- /dev/null
+++ b/basemap/assets/icons/boat_rental.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="boat_rental">
+  <path d="M 3.5,0 C 2.1192879,0 1,1.1192882 1,2.5 1,3.8807119 2.1192879,5 3.5,5 4.4253419,5 5.223985,4.4972377 5.65625,3.75 H 7 l 1,-1 1,1 1,-1 1,1 h 0.5 L 13,2.5 11.5,1.25 H 5.65625 C 5.223985,0.50276224 4.4253419,0 3.5,0 Z m -1,2 C 2.776142,2 3,2.2238576 3,2.5 3,2.7761424 2.776142,3 2.5,3 2.223858,3 2,2.7761424 2,2.5 2,2.2238576 2.223858,2 2.5,2 Z M 5.2324219,5.4296875 V 8.0253906 H 0 L 1.4648438,10.566406 H 12.535156 L 14,8.0253906 H 8.7675781 V 5.4296875 Z M 3,11.5 c -0.533898,0 -1. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bookmaker.svg b/basemap/assets/icons/bookmaker.svg
new file mode 100644
index 00000000..7b44cd76
--- /dev/null
+++ b/basemap/assets/icons/bookmaker.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bookmaker">
+  <path d="m0 0v3h.01953c.5707-.0002268.9805.4476.9805 1-3.235e-5.5524-.4293 1-1 1v3h2v-1h-1v-1.283c.5935-.348.9999-.983 1-1.717-.0001081-.7339-.4063-1.369-1-1.717v-1.283h12v1.283c-.5937.3479-.9999.9829-1 1.717 8.3e-5.7436.4024 1.386 1 1.73v1.27h-1v1h2v-3h-.03126c-.5707.000189-.9687-.4476-.9688-1-6e-6-.5524.3804-1 .9512-1 .0076.0006047.01757.00195.01757.00195v-.00195h.03126v-3z"/>
+  <path d="m7 3c-1.178 0-2.134 1.176-2.134 2.624 0 1.031.4844 1.924 1.189 2.352.2121.1288-.01935.4621-.1751.2461-.3911-.5426-.9616-.8849-1.597-.8849-1.178 0-2.134 1.176-2.134 2.624 0 1.448.9564 2.622 2.134 2.622 1.169 0 2.122-1.156 2.134-2.589.00215-.2542.3194-.2805.3194.06153 0 .5386-.4211 3.399-.6465 3.944.2461-.0763.6562-.1396.9102-.1396.2539 0 .6641.06329.9102.1396-.2255-.5454-.6465-3.406-.6465-3.944 0-.342.3172-.3157.3194-.06153.01232 1.433.9654 2.589 2.134 2.589 1.178 0 2.134-1.174 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bowling_alley.svg b/basemap/assets/icons/bowling_alley.svg
new file mode 100644
index 00000000..df5feb1f
--- /dev/null
+++ b/basemap/assets/icons/bowling_alley.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bowling_alley">
+  <path d="M 11 0 C 9.8954305 -1e-007 8.9999999 0.8954305 9 2 C 9.00107 2.3513949 9.3232274 2.6963044 9.5 3 L 12.5 3 C 12.67609 2.696115 12.999519 2.3512172 13 2 C 13 0.8954303 12.104569 -3e-007 11 0 z M 9.5 4 L 9.5 5 L 12.5 5 L 12.5 4 L 9.5 4 z M 9.5 6 C 9.2156306 6.5752845 8.8489337 7.2576044 8.5488281 8 A 4.2222223 4.4444442 0 0 1 9 10 A 4.2222223 4.4444442 0 0 1 8.3730469 12.318359 C 8.578129 12.913881 8.8249294 13.482017 9 14 L 13 14 C 13.350634 12.956902 13.999701 11.716901 14 10.4 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/buddhist.svg b/basemap/assets/icons/buddhist.svg
new file mode 100644
index 00000000..c2bca7e1
--- /dev/null
+++ b/basemap/assets/icons/buddhist.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="buddhist">
+  <path d="m 7.0002108,0.02315904 c -0.246143,-0.00213 -0.48457,0.3250143 -0.5,0.96875 -2.897016,0.25455126 -5.243685,2.60238176 -5.5,5.49999996 -1.27039499,0 -1.28747199,0.96914 0,1 0.228319,2.916564 2.584827,5.219257 5.5,5.468751 0,1.404649 1,1.356045 1,0 2.9353962,-0.222296 5.2464402,-2.531918 5.4687502,-5.468751 1.394629,0 1.355936,-1 0,-1 -0.249604,-2.9177553 -2.551719,-5.2731708 -5.4687502,-5.49999996 0,-0.6351976 -0.253858,-0.9666155 -0.5,-0.96875 z m -0.5,2.28124996 0,3.5 -2.4687 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bunker.svg b/basemap/assets/icons/bunker.svg
new file mode 100644
index 00000000..b634be5b
--- /dev/null
+++ b/basemap/assets/icons/bunker.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bunker">
+  <path d="M 5,3 C 3.0000002,3 3,3 2,5 L 0,11 H 2 L 4,5 h 6 l 2,6 h 2 L 12,5 C 11,3 11,3 9,3 Z M 7.0136719,6.5 C 6.2592778,6.4940661 5.5029349,6.9941165 5,8 l -1,3 h 6 L 9,8 C 8.502935,7.005871 7.7592604,6.5075591 7.0136719,6.5 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bureau_de_change.svg b/basemap/assets/icons/bureau_de_change.svg
new file mode 100644
index 00000000..c75a8953
--- /dev/null
+++ b/basemap/assets/icons/bureau_de_change.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bureau_de_change">
+  <path d="m1.0586 9.998c-0.03552 0.16696-0.053837 0.33712-0.054688 0.50781 9.901e-4 1.3405 1.0591 2.4416 2.3984 2.4961v0.99805l2.5977-1.5-2.5977-1.5v1c-0.78627-0.05336-1.3972-0.70606-1.3984-1.4941 4.082e-4 -0.17319 0.030805-0.345 0.089844-0.50781z"/>
+  <path d="m12.07 5c-0.79765 0-1.5275 0.1732-2.1895 0.52148-1.0731 0.56201-1.5826 1.2435-1.9922 2.4785h-0.7168l-0.17188 1h0.80859c2.362e-4 0.33875-0.015931 0.65968 0.011719 1h-0.64844l-0.17188 1h0.94336c0.094567 0.42744 0.1028 0.49413 0.23438 0.79492 0.65374 1.4881 2.0146 2.2051 3.873 2.2051 0.62085 0 1.1892-0.1142 1.7031-0.34375v-1.2227c-0.43172 0.38786-1.0319 0.58008-1.8008 0.58008-0.55096 0-1.0643-0.13512-1.5371-0.4082-0.65786-0.37995-1.0715-0.69914-1.2441-1.6055h3.668l0.17383-1h-3.97 [...]
+  <path d="m10.598 0-2.5977 1.5 2.5977 1.5v-1.002c0.78627 0.053358 1.3972 0.70606 1.3984 1.4941-4.08e-4 0.17319-0.030804 0.345-0.089844 0.50781h1.0352c0.03552-0.16696 0.05384-0.33712 0.05469-0.50781-9.92e-4 -1.3405-1.0591-2.4416-2.3984-2.4961z"/>
+  <path d="m3 0v1.0293c-0.42067 0.029208-0.82096 0.086442-1.1816 0.20117-0.48386 0.15391-0.85354 0.38109-1.1055 0.67969-0.25193 0.29551-0.37695 0.61339-0.37695 0.95508 0 0.31091 0.1027 0.59328 0.30664 0.8457 0.20794 0.24934 0.52153 0.45765 0.94141 0.62695 0.27973 0.11431 0.77542 0.23715 1.416 0.36523v2.4453c-0.23113-0.033071-0.44941-0.082571-0.6543-0.15039-0.39989-0.13544-0.69673-0.31186-0.88867-0.52734-0.18795-0.21856-0.30739-0.49537-0.35938-0.83398l-1.0977 0.072266c0.015995 0.45251 0.1 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bus_station.svg b/basemap/assets/icons/bus_station.svg
new file mode 100644
index 00000000..37f4cea6
--- /dev/null
+++ b/basemap/assets/icons/bus_station.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bus_station">
+  <path d="m 7.0000055,0.4619362 c -1.205409,0.00954 -2.839825,0.350732 -3.521484,0.6347656 -0.691424,0.288102 -1.150891,0.574682 -1.294922,1.294922 l -0.519531,3.994141 v 5.5019532 h 0.894531 v 0.861328 c 0,1.052024 1.537109,1.052024 1.537109,0 v -0.861328 h 2.84375 0.0078 2.955079 v 0.861328 c 0,1.052024 1.5390625,1.052024 1.5390625,0 v -0.861328 h 0.894532 V 6.3857648 l -0.51953,-3.994141 C 11.672344,1.6713838 11.21292,1.3848038 10.521489,1.0967018 9.8397675,0.8126426 8.2054405,0.4714 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bus_stop.svg b/basemap/assets/icons/bus_stop.svg
new file mode 100644
index 00000000..e547a953
--- /dev/null
+++ b/basemap/assets/icons/bus_stop.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" id="bus_stop">
+  <path d="M 2,0 1,1 v 8 h 0.65625 c 0,0 0.1011489,1 0.81275,1 C 3.1581295,10 3.25,9 3.25,9 h 3.5 c 0,0 0.1143421,1 0.781,1 0.8164686,0 0.81275,-1 0.81275,-1 H 9 V 1 L 8,0 Z M 3,1 H 7 V 2 H 3 Z M 2,3 H 8 V 6 H 2 Z M 2,7 H 3 V 8 H 2 Z M 7,7 H 8 V 8 H 7 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/bust.svg b/basemap/assets/icons/bust.svg
new file mode 100644
index 00000000..8e5f0fd4
--- /dev/null
+++ b/basemap/assets/icons/bust.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="bust">
+  <path d="M7,0 A2,2 0 0 0 7,4 A2,2 0 0 0 7,0 z M6.9570312,4.6816406 C5.2902834,4.6850809 3.6375829,5.2168626 2,6.2675781 C3.353007,7.1708985 4.4623594,8.2534157 4.4355469,9.7753906 L9.5410156,9.7753906 C9.4718986,8.2352704 10.815039,7.1150008 12,6.2675781 C10.304574,5.2031015 8.6237792,4.6782004 6.9570312,4.6816406 z M5,11 v1 h4 v-1 z M3,13 v1 h8 v-1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/butcher.svg b/basemap/assets/icons/butcher.svg
new file mode 100644
index 00000000..230d0bb7
--- /dev/null
+++ b/basemap/assets/icons/butcher.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="butcher">
+  <path d="m 6.2677549,9.8682448 c 0,0 -1.0360627,-1.2128355 -2.1133438,-2.9771358 C 3.2996742,5.4913559 2.50916,3.6476446 2.4367653,3.4517488 3.0202661,3.0282239 5.9979756,1.6895383 6.6016987,1.5583477 6.7772482,2.235353 7.0520765,3.561113 7.6327387,4.8491026 8.232651,6.1798161 8.954803,7.2172665 9.2235836,7.567882 8.5803974,8.1735258 6.2677549,9.8682448 6.2677549,9.8682448 Z M 8.2968156,9.1263796 c 0.074859,0.6201947 2.1684664,3.5038334 2.8763084,4.0268154 0.273219,0.201855 0.464245,0. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/cafe.svg b/basemap/assets/icons/cafe.svg
new file mode 100644
index 00000000..a1591b75
--- /dev/null
+++ b/basemap/assets/icons/cafe.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="cafe">
+  <path d="M 1,1 1,7 C 1,9 3,10 5.5,10 8,10 10,9 10,7 l 2,0 c 1,0 2,-1 2,-2 L 14,4 C 14,3 13,2 12,2 l -2,0 0,-1 z m 9,2.25 1.75,0 c 0.667788,0 1,0.5628359 1,1.25 0,0.6871641 -0.388201,1.25 -1,1.25 L 10,5.75 z M 0,11 c 0,1 1,2 2,2 l 7,0 c 1,0 2,-1 2,-2 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/camping.svg b/basemap/assets/icons/camping.svg
new file mode 100644
index 00000000..cc97d14e
--- /dev/null
+++ b/basemap/assets/icons/camping.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="camping">
+  <path d="M 14,14 8.000001,2.9999992 9.000001,0 l -1,0 -1,1.9999995 L 6,0 5,0 6,2.9999992 0,14 z m -6.999999,-7.0000008 3,6.0000018 -6.000001,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/car.svg b/basemap/assets/icons/car.svg
new file mode 100644
index 00000000..8529687e
--- /dev/null
+++ b/basemap/assets/icons/car.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="car">
+  <path d="m11,11 v2 h2 v-2.0858 a1.5,1.5 0 0 0 1,-1.4142 v-3 a1.5,1.5 0 0 0 -1.5,-1.5 h-0.5 v-2.5 a1.5,1.5 0 0 0 -1.5,-1.5 h-7 a1.5,1.5 0 0 0 -1.5,1.5 v2.5 h-0.5 a1.5,1.5 0 0 0 -1.5,1.5 v3 a1.5,1.5 0 0 0 1,1.4142 v2.0858 h2 v-2 z M3.5,5 v-1.5 a1,1 0 0 1 1,-1 h5 a1,1 0 0 1 1,1 v1.5 z M2.5,6.6 a.9,.9 0 0 1 0,1.8 a.9,.9 0 0 1 0,-1.8 z m9,0 a.9,.9 0 0 1 0,1.8 a.9,.9 0 0 1 0,-1.8 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/car_parts.svg b/basemap/assets/icons/car_parts.svg
new file mode 100644
index 00000000..6b387f16
--- /dev/null
+++ b/basemap/assets/icons/car_parts.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="car_parts">
+  <path d="m 9,3 0,-2 3,0 0,2 z M 2,3 2,1 5,1 5,3 z M 0,3 0,13 14,13 14,3 z M 3.4455611,5 5,5 l 0,2 2,0 0,1.5778894 -2,0 L 5,10.60134 3.4370847,10.634261 3.4615242,8.5300029 1.3911725,8.5459664 1.4221106,7 3.4295976,7 z M 9,7 13,7 13,8.6108059 9,8.5948424 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/car_repair.svg b/basemap/assets/icons/car_repair.svg
new file mode 100644
index 00000000..bf084524
--- /dev/null
+++ b/basemap/assets/icons/car_repair.svg
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" id="car_repair" version="1.1" viewBox="0 0 14 14">
+  <g id="g97">
+    <g id="g105">
+      <path id="repair-car" d="M 2.7441406 0 C 2.0338764 0.0003935 1.3740289 0.4117078 1 1 L 3.3691406 1 L 3.9921875 2 L 3.3691406 3 L 1.0019531 3 C 1.3756288 3.5877381 2.0345466 3.9989723 2.7441406 4 C 3.5023764 3.9999999 4.1562562 3.595766 4.5117188 3 L 9.1777344 3 C 9.533156 3.5959232 10.188909 4.0000003 10.947266 4 C 12.080957 4.0000002 13 3.1045696 13 2 C 13 0.8954304 12.080957 -2e-007 10.947266 0 C 10.188909 -2.6757065e-007 9.533156 0.40407682 9.1777344 1 L 4.5117188 1 C 4.1562561  [...]
+    </g>
+  </g>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/car_wash.svg b/basemap/assets/icons/car_wash.svg
new file mode 100644
index 00000000..c501661c
--- /dev/null
+++ b/basemap/assets/icons/car_wash.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="car_wash">
+  <path d="M 5,2 3,5 2,5 4,2 Z m 4,0 2,3 1,0 -2,-3 z m -2.5,0 1,0 0,3 -1,0 z M 6,0 4,1 10,1 8,0 Z M 4,6 3,9 C 2.527334,9 2,9.3842954 2,10 l 0,3 1,0 c 0,0 0,1 1,1 1,0 1,-1 1,-1 l 4,0 c 0,0 0,1 1,1 1,0 1,-1 1,-1 l 1,0 0,-3 C 12,9.4793944 11.544575,9 11,9 L 10,6 4,6 Z M 5,7 9,7 9.625,9 4.375,9 5,7 Z m -1,3.25 c 0.414214,0 0.75,0.335786 0.75,0.75 0,0.414214 -0.335786,0.75 -0.75,0.75 -0.414214,0 -0.75,-0.335786 -0.75,-0.75 0,-0.414214 0.335786,-0.75 0.75,-0.75 z m 6,0 c 0.414214,0 0.75,0.3357 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/caravan_park.svg b/basemap/assets/icons/caravan_park.svg
new file mode 100644
index 00000000..dd8d85ee
--- /dev/null
+++ b/basemap/assets/icons/caravan_park.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="caravan_park">
+  <path d="M 2,2 C 1,2 0,3 0,4 l 0,4 c 0,1 1,2 2,2 l 1.0625,0 C 3.295616,8.860792 4.291877,8 5.5,8 6.708123,8 7.704384,8.860792 7.9375,10 L 14,10 c 0,0 0,-1 -1,-1 l -1.5,0 0,-5 c 0,-0.9606645 -1.024338,-2 -2,-2 z M 2.84375,4 C 2.9375,3.984375 3,4 3,4 L 5,4 C 5,4 6,4 6,5 6,6 5,6 5,6 L 3,6 C 3,6 2,6 2,5 2,4.25 2.5625,4.046875 2.84375,4 z M 8,4 8.5,4 c 0,0 1,0 1,1 0,1 -1,1 -1,1 L 8,6 C 8,6 7,6 7,5 7,4 8,4 8,4 z M 5.5,9 C 4.671573,9 4,9.671573 4,10.5 4,11.328427 4.671573,12 5.5,12 6.328427,1 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/carpet.svg b/basemap/assets/icons/carpet.svg
new file mode 100644
index 00000000..00bdc0f6
--- /dev/null
+++ b/basemap/assets/icons/carpet.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="carpet">
+  <path d="M 12 0 C 10.892 0 10 0.892 10 2 L 10 12 C 10 13.108 10.892 14 12 14 C 13.108 14 14 13.108 14 12 L 14 2 C 14 0.892 13.108 0 12 0 z M 0 2 L 0 3 L 1 3 L 1 4.1992188 L 0 4.1992188 L 0 5.1992188 L 1 5.1992188 L 1 6.4003906 L 0 6.4003906 L 0 7.4003906 L 1 7.4003906 L 1 8.5996094 L 0 8.5996094 L 0 9.5996094 L 1 9.5996094 L 1 10.800781 L 0 10.800781 L 0 11.800781 L 1 11.800781 L 1 13 L 0 13 L 0 14 L 9 14 L 9 2 L 0 2 z M 2 3 L 4 4 L 6 3 L 8 4 L 8 5 L 6 4 L 4 5 L 2 4 L 2 3 z M 2 5.66601 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/casino.svg b/basemap/assets/icons/casino.svg
new file mode 100644
index 00000000..35d99b17
--- /dev/null
+++ b/basemap/assets/icons/casino.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="casino">
+  <path d="M 3.8671777,1.0634361 C 3.2272339,1.1084121 2.6197181,1.4636089 2.2734031,2.0634145 L 0.27344635,5.532158 C -0.2805518,6.4917336 0.03263971,7.6967117 0.99219263,8.2508989 L 4.4609362,10.250856 c 0.1411074,0.08088 0.2881145,0.174525 0.4374764,0.218745 V 6.969677 c 0,-1.6446466 1.3552885,-2.9999351 2.9999351,-2.9999351 H 9.117121 C 8.9518853,3.7233151 8.7361858,3.5037681 8.4608875,3.3447648 L 4.992144,1.344808 C 4.6323135,1.1369435 4.2511365,1.036734 3.8671777,1.0635646 Z M 4.17 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/castle.svg b/basemap/assets/icons/castle.svg
new file mode 100644
index 00000000..318e9661
--- /dev/null
+++ b/basemap/assets/icons/castle.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="castle">
+  <path d="M 1 1 L 0 2.5 L 0 3 L 5 3 L 5 2.5 L 4 1 L 1 1 z M 10 1 L 9 2.5 L 9 3 L 14 3 L 14 2.5 L 13 1 L 10 1 z M 0 4 L 0 13 L 5 13 C 5 12 5 10 7 10 C 9 10 9 12 9 13 L 14 13 L 14 4 L 9 4 L 9 6 L 7 6 L 5 6 L 5 4 L 0 4 z M 2 6 L 3 6 L 3 7 L 2.5 8 L 2 7 L 2 6 z M 11 6 L 12 6 L 12 7 L 11.5 8 L 11 7 L 11 6 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/cave.svg b/basemap/assets/icons/cave.svg
new file mode 100644
index 00000000..43002a74
--- /dev/null
+++ b/basemap/assets/icons/cave.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="cave">
+  <path d="M 3,10 C 3,9 5,6 6.9763711,6 9,6 11,9 11,10 L 7,10 Z M 7,3 C 4,3 0,7 0,10 l 1,0 C 1,7 5,4 7,4 c 2,0 6,3 6,6 l 1,0 C 14,7 10,3 7,3 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/chalet.svg b/basemap/assets/icons/chalet.svg
new file mode 100644
index 00000000..7c1d45b9
--- /dev/null
+++ b/basemap/assets/icons/chalet.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="chalet">
+  <path d="M 4.2421875,0.73339625 0,4.5927712 H 0.49023438 V 11.221678 H 3.0859375 V 7.5068337 h 2.3125 v 2.7402343 l -2.2519531,2.587891 c -0.1403231,0.161407 -0.026373,0.413047 0.1875,0.414063 l 10.4140626,0.01758 c 0.1788,10e-4 0.300849,-0.180512 0.232422,-0.345703 l -3.375,-8.1074226 c -0.03944,-0.095231 -0.133278,-0.1564947 -0.236328,-0.1542969 -0.07059,0.00144 -0.137274,0.032655 -0.183594,0.085937 L 7.9941406,7.2626931 V 4.5927712 H 8.484375 Z M 10.296875,5.3779275 13.373047,12.766 [...]
+  <path d="M 10.296875,5.3779275 7.9941406,8.0244118 V 11.221678 H 5.3984375 v -0.214844 l -1.515625,1.742188 9.4902345,0.01758 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/charging_station.svg b/basemap/assets/icons/charging_station.svg
new file mode 100644
index 00000000..81e71662
--- /dev/null
+++ b/basemap/assets/icons/charging_station.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="charging_station">
+  <path d="M 2,1 C 0.8344723,1 0,1.7955215 0,3 L 0,14 7,14 7,6.125 C 7,6.125 7.875,6 7.875,7 l 0,4 c 0,2 1.864698,2.125 2.125,2.125 0.275652,0 2.125,-0.124975 2.125,-2.125 l 0,-4 c 0,0 1.387558,0.017377 1.375,-2.96875 l -0.75,0 0,-2 C 12.75,1.4640917 12,1.4675079 12,2 l 0,2 -1,0 0,-2 C 11,1.4538157 10.25,1.4548128 10.25,2 l 0,2 -0.75,0 c 0.01252,2.9863904 1.375,3 1.375,3 l 0,4 c 0,0.874159 -0.767136,0.875 -0.875,0.875 -0.107864,0 -0.875,-0.04279 -0.875,-0.875 l 0,-4 C 9.125,5.7190916 8,4 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/charity.svg b/basemap/assets/icons/charity.svg
new file mode 100644
index 00000000..fa9622c8
--- /dev/null
+++ b/basemap/assets/icons/charity.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="charity">
+  <path d="M 5 0 C 4 0 4 0 4 1 L 4.0097656 4 L 1 4 L 1 13 C 1 14 1 14 2 14 L 12 14 C 13 14 13 14 13 13 L 13 4 L 10.039062 4 L 10 1 C 10 0 10 0 9 0 L 5 0 z M 5 1 L 9 1 L 9 4 L 5 4 L 5 1 z M 5.1777344 5.4980469 C 5.6948144 5.4951869 5.8032568 5.5555569 6.1074219 5.7226562 C 6.4776429 5.9260446 6.8587292 6.6814598 6.9375 6.9902344 L 6.9863281 7.1816406 L 7.1054688 6.9179688 C 7.8374226 5.3155896 9.9453218 4.8690109 10.701172 6.6347656 C 10.910591 7.1239934 10.967755 8.1253493 10.755859 8.69 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/chemist.svg b/basemap/assets/icons/chemist.svg
new file mode 100644
index 00000000..d565e7a9
--- /dev/null
+++ b/basemap/assets/icons/chemist.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="chemist">
+  <path d="m 13.515914,13 c 0,-12 0.02345,-10.0477231 0.02345,-12 0,-1 -0.0469,-1 -1.539364,-1 l 0,13.038526 C 12.048052,14.003111 12.000001,14 12.718594,14 c 0.765494,0 0.79732,0 0.79732,-1 z M 2.5075377,11.624791 c 1.9893914,0.633166 3.1278615,0.633166 5.0938024,-0.07035 L 7,4 C 5,4.281407 5,4.3048576 3,4 z M 4.319933,0 5.718593,0 6.2730319,3 c -1,0.3048576 -1.5544389,0.3048576 -2.5544389,0 z m -2.2964824,14 0.2345058,-1 5.4991626,0 0.2579562,1 z m 7.4606365,-14 1.9597989,0 0,0.6097152 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/chimney.svg b/basemap/assets/icons/chimney.svg
new file mode 100644
index 00000000..5520e64f
--- /dev/null
+++ b/basemap/assets/icons/chimney.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="chimney">
+  <path d="m2 4v9.0039l-1 0.99609h1 2 1l-1-1.0039v-8.9961h-2z"/>
+  <path d="m3 3c1-0.66667 1.4697-1 3-1 1.9996 0.021928 2.7623 0.97624 4 1 1.5581 0 2-1 3-3-1 1-1 1-3 1s-2-1-4-1c-1 0-2 0.76562-3 3z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/christian.svg b/basemap/assets/icons/christian.svg
new file mode 100644
index 00000000..979a2740
--- /dev/null
+++ b/basemap/assets/icons/christian.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="christian">
+  <path d="m6,1 a1,1 0 0 1 2,0 v3 h4 v2 h-4 v8 h-2 v-8 h-4 v-2 h4 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/cinema.svg b/basemap/assets/icons/cinema.svg
new file mode 100644
index 00000000..b77b7abf
--- /dev/null
+++ b/basemap/assets/icons/cinema.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="cinema">
+  <path d="M 1,1 C 0.446,1 0,1.446 0,2 l 0,11 c 0,0.554 0.446,1 1,1 l 12,0 c 0.554,0 1,-0.446 1,-1 L 14,2 C 14,1.446 13.554,1 13,1 L 1,1 Z m 0.25,1 0.5,0 C 1.8885,2 2,2.1115 2,2.25 l 0,0.5 C 2,2.8885 1.8885,3 1.75,3 L 1.25,3 C 1.1115,3 1,2.8885 1,2.75 L 1,2.25 C 1,2.1115 1.1115,2 1.25,2 Z M 4,2 10,2 10,7 4,7 4,2 Z m 8.25,0 0.5,0 C 12.8885,2 13,2.1115 13,2.25 l 0,0.5 C 13,2.8885 12.8885,3 12.75,3 l -0.5,0 C 12.1115,3 12,2.8885 12,2.75 l 0,-0.5 C 12,2.1115 12.1115,2 12.25,2 Z m -11,2 0.5,0 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/city_gate.svg b/basemap/assets/icons/city_gate.svg
new file mode 100644
index 00000000..6574351a
--- /dev/null
+++ b/basemap/assets/icons/city_gate.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="city_gate">
+  <path d="M 0,1 0,4 14,4 14,1 12,1 12,3 10,3 10,1 8,1 8,3 6,3 6,1 4,1 4,3 2,3 2,1 0,1 z m 0,4 0,8 2.5,0 C 2.5,10 3.487647,6.5 7,6.5 10.404489,6.473034 11.5,10 11.5,13 L 14,13 14,5 0,5 z M 7,8 C 5,8 4,10 4,13 l 6,0 C 10,10 9,8 7,8 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/clothes.svg b/basemap/assets/icons/clothes.svg
new file mode 100644
index 00000000..fccecad2
--- /dev/null
+++ b/basemap/assets/icons/clothes.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="clothes">
+  <path d="M 3,1 0,3 1,6.35 3,5 3,13 11,13 11,5 13,6.35 14,3 11,1 9,1 C 9,2 8,3 7,3 6,3 5,2 5,1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/coffee.svg b/basemap/assets/icons/coffee.svg
new file mode 100644
index 00000000..f3be4bc1
--- /dev/null
+++ b/basemap/assets/icons/coffee.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="coffee">
+  <path d="m 12.384493,0.563045 c 0,0 -0.755812,-0.70671723 -2.001266,-0.5366193 C 9.1377731,0.19652406 5.67408,1.8563585 4.064323,3.2842072 2.4545656,4.7120561 0.24023006,7.0019767 0.09832664,8.5231653 -0.04357662,10.044353 -0.27583032,10.704286 1.4065218,12.384527 c 1.682352,1.68024 5.6574649,0.07602 5.6574649,0.07602 0,0 3.4984663,-1.595396 5.2184953,-4.5534894 1.720029,-2.9580935 1.659359,-4.2103848 1.659359,-4.2103848 0,0 0.238751,-1.0939281 -0.251224,-2.0514304 -0.489975,-0.9575027 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/communications_tower.svg b/basemap/assets/icons/communications_tower.svg
new file mode 100644
index 00000000..d877e2e8
--- /dev/null
+++ b/basemap/assets/icons/communications_tower.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="communications_tower">
+  <path d="M 6 0 L 6 3.2714844 A 2 2 0 0 0 5 5 A 2 2 0 0 0 6 6.7304688 L 6 14 L 8 14 L 8 6.7285156 A 2 2 0 0 0 9 5 A 2 2 0 0 0 8 3.2695312 L 8 0 L 6 0 z M 11.005859 0 L 11.005859 1.28125 C 12.202359 1.99175 12.953125 3.1940094 12.953125 4.7246094 C 12.953125 6.2552094 12.202359 7.477 11.005859 8.1875 L 11.005859 9.4863281 C 12.774559 8.6847681 14.003906 6.8309094 14.003906 4.7246094 C 14.003906 2.6183094 12.774459 0.8015 11.005859 0 z M 3 0.00390625 C 1.2313 0.80546625 0.00390625 2.63588 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/community_centre.svg b/basemap/assets/icons/community_centre.svg
new file mode 100644
index 00000000..7f8cd66f
--- /dev/null
+++ b/basemap/assets/icons/community_centre.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="community_centre">
+  <path d="M 11.473506,2.5 C 11.473506,3.328427 10.813795,4 10,4 9.1862051,4 8.5264938,3.328427 8.5264938,2.5 8.5264938,1.6715729 9.1862051,1 10,1 c 0.813795,0 1.473506,0.6715729 1.473506,1.5 z M 3,6 5,6 5,9 3,9 Z M 5.4735062,2.5 C 5.4735062,3.328427 4.8137949,4 4,4 3.1862051,4 2.5264938,3.328427 2.5264938,2.5 2.5264938,1.6715729 3.1862051,1 4,1 4.8137949,1 5.4735062,1.6715729 5.4735062,2.5 Z M 0,5 7,5 7,6 0,6 Z M 1,13 3,9 4,9 2,13 Z M 7,13 5,9 4,9 6,13 Z M 9,6 11,6 11,9 9,9 Z M 7,5 14,5 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/computer.svg b/basemap/assets/icons/computer.svg
new file mode 100644
index 00000000..2445d847
--- /dev/null
+++ b/basemap/assets/icons/computer.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="computer">
+  <path d="M 3 1 C 2.5154074 1 2 1.5166276 2 2 L 2 8 C 2 8.4833725 2.5166276 9 3 9 L 11 9 C 11.483372 9 12 8.4833725 12 8 L 12 2 C 12 1.5166127 11.483372 1 11 1 L 3 1 z M 3 2 L 11 2 L 11 8 L 3 8 L 3 2 z M 2 10 C 1.7492735 10 1.6780977 10.147712 1.5527344 10.398438 L 0.46484375 13.529297 C 0.27854468 13.779151 0.74927346 14 1 14 L 13 14 C 13.250727 14 13.619365 13.749684 13.535156 13.529297 L 12.416016 10.367188 C 12.290653 10.147801 12.250727 10 12 10 L 2 10 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/confectionery.svg b/basemap/assets/icons/confectionery.svg
new file mode 100644
index 00000000..1c651dd9
--- /dev/null
+++ b/basemap/assets/icons/confectionery.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="confectionery">
+  <path d="M 0.40106652,7 C 0.38814368,6 2,4 4,4 5,4.0319271 6,5.5872292 7,5.5393387 8,5.6564044 9,3.9946789 10,4 12,4 13.571453,6 13.574494,7 13.265866,7 12.839985,7 12.531357,7 12,6 11,5.4873703 10,5.4455611 9,5.5519845 8,7.0053211 7,7 6,7.0266058 5,5.6085387 4,5.5393635 3,5.5119975 2,6 1.5793983,7 1.2335222,7 0.7469426,7 0.40106652,7 z M 9,2 C 9,3.1045695 8.1045695,4 7,4 5.8954305,4 5,3.1045695 5,2 5,0.8954305 5.8954305,0 7,0 7.9169484,0 8.7164405,0.62354577 8.939772,1.5128812 M 3,13  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/consulate.svg b/basemap/assets/icons/consulate.svg
new file mode 100644
index 00000000..b84b6c53
--- /dev/null
+++ b/basemap/assets/icons/consulate.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="consulate">
+  <path d="m 2.5,0 c -0.25,0 -0.5,0.221572 -0.5,0.666016 V 11.333984 c 0,0.888888 1,0.888888 1,0 V 0.66601587 C 3,0.22157187 2.75,0 2.5,0 Z m 6.1347661,0.0059 c -0.514161,-0.03826 -1.1535161,0.08454 -1.8847661,0.574219 -1.95,1.30581203 -3.25,0 -3.25,0 V 5.1504319 c 0,0 1.3,1.305811 3.25,0 1.9500001,-1.3058131 3.25,0 3.25,0 V 0.58011887 c 0,0 -0.508301,-0.510458 -1.3652339,-0.574219 z M 9.5,5.9999999 a 1.5,1.5 0 0 0 -1.5,1.5 1.5,1.5 0 0 0 1.5,1.5 1.5,1.5 0 0 0 1.5,-1.5 1.5,1.5 0 0 0 -1.5, [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/convenience.svg b/basemap/assets/icons/convenience.svg
new file mode 100644
index 00000000..9ecbbb21
--- /dev/null
+++ b/basemap/assets/icons/convenience.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="convenience">
+  <path d="M2,12 11,12 13,5 7.1,5 8.780928,2.473755 A0.497925,0.497925 0 0 0 7.951841,1.922094 L5.9,5 0,5 z M1.55,7 1.25,6 3,6 3,7 z M3.5,7 3.5,6 5,6 5,7 z M5.5,7 5.5,6 7.5,6 7.5,7 z M8,7 8,6 9.5,6 9.5,7 z M10,7 10,6 11.75,6 11.45,7 z M2.15,9 1.7,7.5 3,7.5 3,9 z M3.5,9 3.5,7.5 5,7.5 5,9 z M5.5,9 5.5,7.5 7.5,7.5 7.5,9 z M8,9 8,7.5 9.5,7.5 9.5,9 z M10,9 10,7.5 11.3,7.5 10.85,9 z M2.75,11 2.3,9.5 3,9.5 3,11 z M3.5,11 3.5,9.5 5,9.5 5,11 z M5.5,11 5.5,9.5 7.5,9.5 7.5,11 z M8,11 8,9.5 9.5,9.5  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/copyshop.svg b/basemap/assets/icons/copyshop.svg
new file mode 100644
index 00000000..b62da48a
--- /dev/null
+++ b/basemap/assets/icons/copyshop.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="copyshop">
+  <path d="M 9.03125,-0.03125 1,0 1,10 4,10 4,9 2,9 2,1 l 6,0 0,2 1.03125,0 0,-3.03125 z M 3,2 3,2.5 7,2.5 7,2 3,2 z M 3,3 3,3.5 4,3.5 4,3 3,3 z M 3,4 3,4.5 4,4.5 4,4 3,4 z M 5,4 5,14 13,14 13,7.28125 9.71875,4 5,4 z M 3,5 3,5.5 4,5.5 4,5 3,5 z m 3,0 3,0 0,3 3,0 0,5 -6,0 0,-8 z M 10,5.6875 11.3125,7 10,7 10,5.6875 z M 3,6 3,6.5 4,6.5 4,6 3,6 z M 7,6 7,6.5 8,6.5 8,6 7,6 z M 3,7 3,7.5 4,7.5 4,7 3,7 z M 7,7 7,7.5 8,7.5 8,7 7,7 z M 7,8 7,8.5 8,8.5 8,8 7,8 z m 0,1 0,0.5 4,0 L 11,9 7,9 z m 0,1 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/courthouse.svg b/basemap/assets/icons/courthouse.svg
new file mode 100644
index 00000000..3d267d9c
--- /dev/null
+++ b/basemap/assets/icons/courthouse.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="courthouse">
+  <path d="M 7,0 C 6,0 6,1 6,1 L 2.25,2 2.25,3 0,8 C 0,9 0.792008,10 2.5,10 4.207992,10 5,9 5,8 L 2.75,3 6,3 6,13 2,13 1,14 13,14 12,13 8,13 8,3 11.25,3 9,8 c 0,1 0.77294,2 2.5,2 C 13.22706,10 14,9 14,8 L 11.75,3 11.75,2 8,1 C 8,1 8,0 7,0 z M 2.5,4 4.25,8 0.75,8 z m 9,0 1.75,4 -3.5,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/crane.svg b/basemap/assets/icons/crane.svg
new file mode 100644
index 00000000..14de9e0f
--- /dev/null
+++ b/basemap/assets/icons/crane.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="crane">
+  <path d="M 1,0 C 0.446,0 0,0.446 0,1 0,2 0,3 0,4 h 1 v 10 h 1 v -3 l 3,3 H 6 V 4 h 5 V 9 H 9 v 2 h 5 V 9 H 12 V 4 h 2 L 13,2 H 6 L 5,0 C 3.6666667,0 2.3333333,0 1,0 Z M 1,1 C 2.3333333,1 3.6666667,1 5,1 L 5.5,2 H 1 Z M 2,4 H 5 V 7 Z M 2,5 4.5,7.5 2,10 Z m 3,3 v 5 L 2.5,10.5 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/cross.svg b/basemap/assets/icons/cross.svg
new file mode 100644
index 00000000..0134acff
--- /dev/null
+++ b/basemap/assets/icons/cross.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="7" height="7" viewBox="0 0 7 7" id="cross">
+  <path d="m3,2 h-2 v1 h2 v4 h1 v-4 h2 v-1 h-2 v-1.5 a.5,.5 0 0 0 -1,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/cycle_barrier.svg b/basemap/assets/icons/cycle_barrier.svg
new file mode 100644
index 00000000..bb0c1fe7
--- /dev/null
+++ b/basemap/assets/icons/cycle_barrier.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" id="cycle_barrier"/>
\ No newline at end of file
diff --git a/basemap/assets/icons/dairy.svg b/basemap/assets/icons/dairy.svg
new file mode 100644
index 00000000..0b3820e2
--- /dev/null
+++ b/basemap/assets/icons/dairy.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="dairy">
+  <path d="M 1.296875,0 C 1.1185507,0 0.97265625,0.14597801 0.97265625,0.32421875 V 2.6484375 L 0.03320312,4.7871094 C 0.01699212,4.8357204 0,4.8674044 0,4.9160156 V 13.675781 C 0,13.854022 0.14589435,14 0.32421875,14 H 14 V 8.2441406 H 7.5039062 c 9.973e-4,-1.1089434 0.00195,-2.2182945 0.00195,-3.328125 0,-0.048611 -0.015039,-0.096499 -0.03125,-0.1289062 L 6.5332031,2.6484375 V 0.32421875 C 6.5332031,0.14597801 6.3873087,0 6.2089844,0 Z M 1.6210938,0.6640625 H 5.8847656 V 2.5664062 H 1. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/deli.svg b/basemap/assets/icons/deli.svg
new file mode 100644
index 00000000..7e4a9adf
--- /dev/null
+++ b/basemap/assets/icons/deli.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="deli">
+  <path d="m6 0h2c2 0 3 0 3 1v1h-8v-1c0-1 1-1 3-1zm-2 3c-1e-7 2-2.0219 1-2.0156 3l0.015625 5c0.00312 1 1 3 3 3h4c2 0 3-2 3-3v-5c0-2-2-1-2-3zm6 4v3h-6v-3z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/dentist.svg b/basemap/assets/icons/dentist.svg
new file mode 100644
index 00000000..21b9312e
--- /dev/null
+++ b/basemap/assets/icons/dentist.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="dentist">
+  <path d="m 7,8 c 2,0 2,1 2,3 0,1 -1.009121,3 0,3 1,0 1.751359,-1.142963 2,-3 C 11.248641,9.142963 11,8 11,7 11,5 12,3 12,2 12,1 11.599761,0.21742 11,0 9,0 9,1 7,1 5,1 5,0 3,0 2.400799,0.21742 2,1 2,2 2,3 3,5 3,7 3,8 2.87761,9.57334 3,11 3.12239,12.42666 4,14 5,14 6.008702,14 5,12 5,11 5,9 5,8 7,8 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/department_store.svg b/basemap/assets/icons/department_store.svg
new file mode 100644
index 00000000..aba33459
--- /dev/null
+++ b/basemap/assets/icons/department_store.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="department_store">
+  <path d="M 5 0 C 4 0 4 0 4 1 L 4.0097656 4 L 1 4 L 1 13 C 1 14 1 14 2 14 L 12 14 C 13 14 13 14 13 13 L 13 4 L 10.039062 4 L 10 1 C 10 0 10 0 9 0 L 5 0 z M 5 1 L 9 1 L 9 4 L 5 4 L 5 1 z M 6.5683594 5.5 C 7.3324736 5.5 7.8930989 5.6496197 8.2519531 5.9453125 C 8.6108082 6.2410052 8.7890625 6.5950746 8.7890625 7.0078125 C 8.7890625 7.2388225 8.7363691 7.4593457 8.625 7.671875 C 8.5167249 7.8844042 8.3851479 8.0570074 8.2304688 8.1894531 C 8.0757896 8.321899 7.799462 8.5194386 7.4003906 8. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/diy.svg b/basemap/assets/icons/diy.svg
new file mode 100644
index 00000000..dc0ab7ee
--- /dev/null
+++ b/basemap/assets/icons/diy.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="diy">
+  <path d="M 9,0 C 8.248808,0.4909181 7.75,1.3481516 7.75,2.3125 c 0,1.0641992 0.615654,1.9803063 1.5,2.4375 l 0,7.75 c 0,0.877754 0.521186,1.5 1.25,1.5 0.728813,0 1.25,-0.603432 1.25,-1.5 l 0,-7.75 C 12.634346,4.2928063 13.25,3.3766992 13.25,2.3125 13.25,1.3481516 12.751192,0.4909181 12,0 L 12,1.5 10.5,3 9,1.5 C 9,1.5 9,-0.0023227 9,0 z M 4,0 C 3.447507,0 3,0.3804513 3,0.75 l -1.5,0 -1.25,1.75 1.25,1.75 1.5,0 0,8.5 C 3,13.434896 3.376848,14 4,14 4.623152,14 5,13.471763 5,12.75 l 0,-8.5  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/doctors.svg b/basemap/assets/icons/doctors.svg
new file mode 100644
index 00000000..3e579c74
--- /dev/null
+++ b/basemap/assets/icons/doctors.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="doctors">
+  <path d="M 7,1 C 5.83929,1 4.667834,1.5047052 3.875,2.5 3.187514,3.3630449 3,4 2.90625,5.0000004 0.01009,5.0238004 0,6.0817104 0,13 l 14,0 C 14,6.0817104 13.9899,5.0237504 11.09375,5.0000004 11,4 10.795537,3.3460958 10.125,2.5 9.334655,1.5027279 8.16071,1 7,1 z M 7,3 C 8.281412,2.99511 9,4 9.0625,5.0000004 l -4.125,0 C 5,4 5.718588,3.0048937 7,3 z m -1,3.0000004 2,0 L 8,8 l 2,0 0,2 -2,0 0,2 -2,0 0,-2 -2,0 0,-2 2,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/drinking_water.svg b/basemap/assets/icons/drinking_water.svg
new file mode 100644
index 00000000..526fd046
--- /dev/null
+++ b/basemap/assets/icons/drinking_water.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="drinking_water">
+  <path d="m 1,6 1.5,8 5,0 L 9,6 z M 2.18,7 7.81,7 7.44,9 2.55,9 M 4,5 C 4,3 5,2 7,2 L 8,2 8,1 7,1 C 6,1 6,0 7,0 l 3,0 c 1,0 1,1 0,1 l -1,0 0,1 4,0 0,1.5 -6,0 C 5.91526,3.49111 5.5,3.9824765 5.5,5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/electronics.svg b/basemap/assets/icons/electronics.svg
new file mode 100644
index 00000000..3240d8c9
--- /dev/null
+++ b/basemap/assets/icons/electronics.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="electronics">
+  <path d="M 9.375,0.03125 C 9.228609,0.0143576 9.069653,0.0553473 8.9375,0.1875 L 6.03125,3.125 4.125,1.1875 C 3.913054,0.9017344 3.437513,0.8725487 3.1875,1.125 2.937487,1.3774513 2.966994,1.8484875 3.25,2.0625 L 5.15625,4 2,4 C 1,4 0,5 0,6 l 0,6 c 0,1 1,2 2,2 l 10,0 c 1,0 2,-1 2,-2 L 14,6 C 14,5 13,4 12,4 L 6.90625,4 9.8125,1.0625 C 10.20002,0.6749802 9.814172,0.0819271 9.375,0.03125 z M 6,6 c 3,0 4,0 4,3 0,3 -1,3 -4,3 C 3,12 2,12 2,9 2,6 3,6 6,6 z m 6,0.125 c 0.483249,0 0.875,0.39175 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/elevator.svg b/basemap/assets/icons/elevator.svg
new file mode 100644
index 00000000..fa4fc249
--- /dev/null
+++ b/basemap/assets/icons/elevator.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" id="elevator">
+  <path d="m 8,0 0,1 2,0 0,10 -1.7440812,0 -0.027057,1 L 12,12 12,0 Z M 3,7 6,12 9,7 7,7 7,5 9,5 6,0 3,5 5,5 5,7 Z M 3.5817362,12 3.6223224,11 2,11 2,1 4,1 4,0 0,0 0,12 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/embassy.svg b/basemap/assets/icons/embassy.svg
new file mode 100644
index 00000000..9b0e38f7
--- /dev/null
+++ b/basemap/assets/icons/embassy.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="embassy">
+  <path d="M 8,1 C 5,3 3,1 3,1 l 0,7 c 0,0 2,2 5,0 3,-2 5,0 5,0 L 13,1 C 13,1 11,-1 8,1 z M 1.5,0.25 C 1.25,0.25 1,0.5 1,1 l 0,12 c 0,1 1,1 1,0 L 2,1 C 2,0.5 1.75,0.25 1.5,0.25 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/emergency_phone.svg b/basemap/assets/icons/emergency_phone.svg
new file mode 100644
index 00000000..f05f7d1e
--- /dev/null
+++ b/basemap/assets/icons/emergency_phone.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="emergency_phone">
+  <path d="M 2,1 C 1,1 0,2 0,3 l 0,1 4,0 1,-1 4,0 1,1 4,0 0,-1 C 14,2 13,1 12,1 z M 0,4.75 0,5.25 C 0,5.25 0.37037551,6 1,6 L 3,6 C 3.5663545,5.9811215 4,5.25 4,5.25 l 0,-0.5 z m 10,0 0,0.5 c 0,0 0.433715,0.75 1,0.75 l 2,0 c 0.566673,0 1,-0.75 1,-0.75 l 0,-0.5 z M 1.5,8 C 0.70762712,8 0,8.573533 0,9.5 0,10.478901 0.72245763,11 1.5,11 l 1,0 C 2.5,11 3,11 3,11.5 3,12 2.5,12 2.5,12 l -2,0 0,1 2,0 C 3.2775424,13 4,12.396919 4,11.46875 4,10.593015 3.2627119,10 2.5,10 l -1,0 C 1.5,10 1,10 1,9. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/entrance.svg b/basemap/assets/icons/entrance.svg
new file mode 100644
index 00000000..b739e30a
--- /dev/null
+++ b/basemap/assets/icons/entrance.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" id="entrance">
+  <path d="m 2.75,0 0,2.5 1.25,0 0,-1.25 4.75,0 0,7.5 L 4,8.75 4,7.5 2.75,7.5 2.75,10 10,10 10,0 z M 5,2.5 l 0,1.75 -4,0 0,1.5 4,0 L 5,7.5 8,5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/excrement_bags.svg b/basemap/assets/icons/excrement_bags.svg
new file mode 100644
index 00000000..347212b5
--- /dev/null
+++ b/basemap/assets/icons/excrement_bags.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="excrement_bags">
+  <path d="M 0,0 C 0,1 0,2 0,3 H 1 V 1 h 12 v 2 h 1 V 0 C 9.3333333,0 4.6666667,0 0,0 Z m 2,2 v 10 l -1,2 c 4,0 8,0 12,0 L 12,12 V 2 C 8.6666667,2 5.3333333,2 2,2 Z m 1,1 h 8 V 4 H 3 Z m 0,2 h 8 c 0,2.5 0,5 0,7.5 0,0.277 -0.223,0.5 -0.5,0.5 h -7 C 3.223,13 3,12.777 3,12.5 3,10 3,7.5 3,5 Z M 7,6 C 7,7 6.7426357,7.5622251 6,8 5.4460001,8 5,8.4460001 5,9 5,9.5539999 5.4460001,10 6,10 H 5 c -0.554,0 -1,0.446 -1,1 0,0.554 0.446,1 1,1 h 4 c 0.554,0 1,-0.446 1,-1 0,-0.554 -0.446,-1 -1,-1 H 8 C  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/fabric.svg b/basemap/assets/icons/fabric.svg
new file mode 100644
index 00000000..1a89bcd2
--- /dev/null
+++ b/basemap/assets/icons/fabric.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="fabric">
+  <path d="M 2,0 V 1 H 3 V 0 Z M 5,0 C 5,1.3333333 5,2.6666667 5,4 H 6 C 6,2.6666667 6,1.3333333 6,0 Z M 8,0 V 1 H 9 V 0 Z m 3,0 c 0,1.3333333 0,2.6666667 0,4 h 1 C 12,2.6666667 12,1.3333333 12,0 Z M 0,2 V 3 C 1.3333333,3 2.6666667,3 4,3 V 2 C 2.6666667,2 1.3333333,2 0,2 Z m 7,0 v 1 c 1,0 2,0 3,0 V 2 C 9,2 8,2 7,2 Z m 6,0 v 1 h 1 V 2 Z M 2,4 C 2,5.3333333 2,6.6666667 2,8 H 3 C 3,6.6666667 3,5.3333333 3,4 Z M 8,4 C 8,5.3333333 8,6.6666667 8,8 H 9 C 9,6.6666667 9,5.3333333 9,4 Z M 0,5 V 6  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/fast_food.svg b/basemap/assets/icons/fast_food.svg
new file mode 100644
index 00000000..e55feaf0
--- /dev/null
+++ b/basemap/assets/icons/fast_food.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="fast_food">
+  <path d="M 5,3 C 2,3 0.960032,5.000799 1,6 L 1,7 13,7 13,6 C 13,5 12,3 9,3 z M 1,8 C 0,8 0,9 1,9 l 12,0 c 1,0 1,-1 0,-1 z m 0,2.03125 0,0.625 C 1,11.34045 1.81579,12 2.5,12 l 9,0 c 0.68421,0 1.5,-0.65955 1.5,-1.34375 l 0,-0.625 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/ferry.svg b/basemap/assets/icons/ferry.svg
new file mode 100644
index 00000000..d06a4753
--- /dev/null
+++ b/basemap/assets/icons/ferry.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="ferry">
+  <path d="M 7,0 C 6.1253946,0 5.4140625,0.7026661 5.4140625,1.5683594 5.4140625,2.2059534 5.8015873,2.75498 6.3535156,3 6.3465545,3.3334053 6.3389743,3.6665943 6.3320312,4 H 2 v 1 h 4.3125 c -0.040833,1.9652474 -0.082466,3.9292782 -0.1230469,5.894531 -0.00265,0.125895 0.00195,1.393427 -1.6992187,0.517578 C 2.7844231,10.534906 3.7469006,9.5408232 3.8613281,9.5117188 2.8591762,9.1963061 1.9523583,8.3194572 1.21875,7.4199219 0.49872446,9.0233829 1.7874594,10.736126 1.8496094,10.980469 2.00 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/firepit.svg b/basemap/assets/icons/firepit.svg
new file mode 100644
index 00000000..a233f48f
--- /dev/null
+++ b/basemap/assets/icons/firepit.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="firepit">
+  <path d="M 5.8613281 -0.01171875 C 7.4948435 3.3410494 -1.0755672 5.5380484 6.3769531 10.130859 L 6.6992188 10.013672 C 4.8436378 7.328355 12.374438 4.1804808 5.8613281 -0.01171875 z M 9.25 3.4238281 C 10.300411 6.5115557 6.7139152 7.3962701 7.8398438 9.5976562 L 9.5292969 8.984375 C 10.207099 7.3309044 11.943051 5.9976828 9.25 3.4238281 z M 1.4746094 8.9980469 A 0.50005 0.50005 0 0 0 1.3300781 9.9707031 L 5.5449219 11.503906 L 1.3320312 13.035156 A 0.49426052 0.49426052 0 0 0 1.667968 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/firestation.svg b/basemap/assets/icons/firestation.svg
new file mode 100644
index 00000000..a36da4aa
--- /dev/null
+++ b/basemap/assets/icons/firestation.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="firestation">
+  <path d="M 7,0 C 3.424161,1.2414283 2,5 2,8 2,11 3.744933,13.259763 6,14 4,10.741416 4,8 7,6 6.495078,7.352818 7,10 8,11 8.431455,10.599243 9,9.575273 9,9 c 2,2 0.562898,3.633261 0,5 1.08818,-0.559102 3,-2 3,-5 C 12,6 10,5 10,2 8.616484,2.5992431 8,4 8,5 7.047939,4.4434404 6,2.2464256 7,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/fishing.svg b/basemap/assets/icons/fishing.svg
new file mode 100644
index 00000000..43b28be2
--- /dev/null
+++ b/basemap/assets/icons/fishing.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="fishing">
+  <path d="M 0 0 L 0 5 A 3 3 0 0 0 3 8 A 3 3 0 0 0 6 5 L 6 3 L 4 5 L 5 5 A 2 2 0 0 1 3 7 A 2 2 0 0 1 1 5 L 1 0 L 0 0 z M 5.5 9 C 3.1428576 8.9999999 0.78571479 10.25 0 11.5 C 0.78571457 12.75 3.142857 14 5.5 14 C 7.8571441 14.000001 10.214284 12.75 11 11.5 C 10.214286 10.25 7.8571436 9.0000001 5.5 9 z M 11 11.5 L 14 14 L 14 9 L 11 11.5 z M 3 10 A 1 1 0 0 1 4 11 A 1 1 0 0 1 3 12 A 1 1 0 0 1 2 11 A 1 1 0 0 1 3 10 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/fitness.svg b/basemap/assets/icons/fitness.svg
new file mode 100644
index 00000000..885daf53
--- /dev/null
+++ b/basemap/assets/icons/fitness.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14.933333" height="14.933333" viewBox="0 0 14 14" id="fitness">
+  <path d="M 8.5372267,1.2755905 A 1.2677165,1.2598426 0 0 0 9.8049431,2.5354332 1.2677165,1.2598426 0 0 0 11.07266,1.2755905 1.2677165,1.2598426 0 0 0 9.8049431,0.01574798 1.2677165,1.2598426 0 0 0 8.5372267,1.2755905 Z m -6.8521549,8.5590563 2.681077,0.6891092 c 0.1095105,0.02815 0.3520751,0.0033 0.4439037,-0.01932 0.2353372,-0.04563 0.3030067,-0.154948 0.3951006,-0.269256 L 6.4744703,8.1436871 8.0702194,9.8565596 7.4259242,13.059105 c -0.020606,0.06867 -0.030908,0.125809 -0.030908,0.1 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/florist.svg b/basemap/assets/icons/florist.svg
new file mode 100644
index 00000000..808c595b
--- /dev/null
+++ b/basemap/assets/icons/florist.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="florist">
+  <path d="M 3,0 C 3.944406,2.8332196 2.233819,6.4334035 6.25,6.938 l 0,5.562 C 6.25,11.033993 3.997226,8 1,8 c 3,2 1,6 5,6 2,0 0,0 2,0 4,0 2,-4 5,-6 -2.997226,0 -5.25,2.944994 -5.25,4.5 l 0,-5.562 C 11.753428,6.4504075 10.055593,2.8332196 11,0 10,0 8.75,3 8.75,3 8.75,3 8,1 7,0 6,1 5.25,3 5.25,3 5.25,3 4,0 3,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/ford.svg b/basemap/assets/icons/ford.svg
new file mode 100644
index 00000000..d33edba3
--- /dev/null
+++ b/basemap/assets/icons/ford.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="ford">
+  <path d="m5 1-4 3.5 4 3.5v-2h4v2l4-3.5-4-3.5v2h-4z"/>
+  <path d="m0 9c0.7479 0 2.134 2 2.8002 2 0.62422 0 2.0943-2 2.8002-2s2.1772 2 2.8002 2c0.74906 0 2.1293-2 2.7991-2 0.7479-0.029 2.2192 2 2.8002 2v3c-0.70472 0-2.1352-2-2.8002-2-0.66389 0-2.0943 2-2.7991 2-0.66972 0-2.0943-2-2.8002-2-0.71056 0-2.134 2-2.8002 2-0.74673 0-2.0932-2-2.8002-2z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/fort.svg b/basemap/assets/icons/fort.svg
new file mode 100644
index 00000000..53a69422
--- /dev/null
+++ b/basemap/assets/icons/fort.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="fort">
+  <path d="M 1 1 L 1 3 L 6 3 L 6 1 L 5 1 L 5 2 L 4 2 L 4 1 L 3 1 L 3 2 L 2 2 L 2 1 L 1 1 z M 8 1 L 8 3 L 13 3 L 13 1 L 12 1 L 12 2 L 11 2 L 11 1 L 10 1 L 10 2 L 9 2 L 9 1 L 8 1 z M 1 4 L 1 10 L 13 10 L 13 4 L 8 4 L 8 6 L 6 6 L 6 4 L 1 4 z M 3 6 L 4 6 L 4 7 L 3.5 8 L 3 7 L 3 6 z M 10 6 L 11 6 L 11 7 L 10.5 8 L 10 7 L 10 6 z M 1 11 L 0 14 L 14 14 L 13 11 L 1 11 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/fortress.svg b/basemap/assets/icons/fortress.svg
new file mode 100644
index 00000000..c8981bb2
--- /dev/null
+++ b/basemap/assets/icons/fortress.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="fortress">
+  <path d="M 6,13 H 8 C 8,12 8,10 7,10 6,10 6,12 6,13 Z M 0,1 V 3 H 5 V 1 H 4 V 2 H 3 V 1 H 2 V 2 H 1 V 1 Z m 9,0 v 2 h 5 V 1 H 13 V 2 H 12 V 1 H 11 V 2 H 10 V 1 Z M 0,4 v 9 h 5 c 0,-1 0,-4 2,-4 2,0 2,3 2,4 h 5 V 4 H 9 V 6 H 7 5 V 4 Z M 2,6 H 3 V 7 L 2.5,8 2,7 Z m 9,0 h 1 V 7 L 11.5,8 11,7 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/fountain.svg b/basemap/assets/icons/fountain.svg
new file mode 100644
index 00000000..f2b1371c
--- /dev/null
+++ b/basemap/assets/icons/fountain.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="fountain">
+  <path d="m 0,11 14,0 C 13,13 9,14 7,14 5,14 1.3014827,13 0,11 Z M 9,0.06093585 c -1,0 -1.6751539,1.03509635 -2.0117188,1.81368585 C 6.6507147,1.058013 6,0.015234 5,0.015234 c -1.500366,0 -2,1.9238302 -2,2.9238302 0,1 1,0.6746464 1,0.030468 1,-2 2,-1.6140036 2.2421875,1.5476678 l 0,0.3496094 C 5.8591901,4.6775997 5.4301952,4.5582155 5,4.5582155 c -1.467057,0 -2.75,1.0324775 -2.75,3 l 0,1 c 0,1 1.5,1 1.5,0 l 0,-1 c 0,-0.9659595 0.683016,-1.5 1.25,-1.5 0.5494724,0 1.2020386,0.5361786 1.24 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/fuel.svg b/basemap/assets/icons/fuel.svg
new file mode 100644
index 00000000..c10cc148
--- /dev/null
+++ b/basemap/assets/icons/fuel.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="fuel">
+  <path d="m 10.78125,0 -0.625,0.71875 1.1875,1.09375 c 0.03621,0.036212 0.0856,0.084693 0.125,0.125 l -0.25,0.28125 C 10.818532,2.6189681 11.105689,3.1369332 11.25,3.28125 L 12,4.03125 12,10 c 0,1 -0.392136,1 -0.5,1 C 11.392136,11 11,11 11,10 L 11,6 C 11,4.7190916 10,4 9,4 L 9,2 C 9,1.4486964 8.575273,1 8,1 L 2,1 C 1.400757,1 1,1.4247267 1,2 l 0,12 8,0 0,-9 c 0,0 1,0 1,1 l 0,4 c 0,2 1.239698,2 1.5,2 0.275652,0 1.5,0 1.5,-2 L 13,3 C 13,2 12.713983,1.7907839 12.375,1.46875 L 10.78125,0 z  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/full-height_turnstile.svg b/basemap/assets/icons/full-height_turnstile.svg
new file mode 100644
index 00000000..dfae341c
--- /dev/null
+++ b/basemap/assets/icons/full-height_turnstile.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" id="full-height_turnstile">
+  <path d="m5,0 v1 h-3 v1 h3 v2 h-3 v1 h3 v2 h-3 v1 h3 v2 h-3 v1 h3 v1 h2 v-1 h3 v-1 h-3 v-2 h3 v-1 h-3 v-2 h3 v-1 h-3 v-2 h3 v-1 h-3 v-1 h-2 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/furniture.svg b/basemap/assets/icons/furniture.svg
new file mode 100644
index 00000000..399e8656
--- /dev/null
+++ b/basemap/assets/icons/furniture.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="furniture">
+  <path d="M 3,2 C 2,2 1,3 1,4 3,4 4,5.5760463 4,7 l 6,0 C 10,5.4818344 11,4 13,4 13,3 12,2 11,2 z M 1,5 C 0,5 0,6 0,6 0,6.5181656 0.481834,7 1,7 l 0,3 c 0,0.645252 0.423351,1 1,1 l 0.5,0 c 0,0 0,1 1,1 1,0 1,-1 1,-1 l 5,0 c 0,0 0,1 1,1 1,0 1,-1 1,-1 l 0.5,0 c 0.509491,0 1,-0.48425 1,-1 l 0,-3 c 0.494613,0 1,-0.3876224 1,-1 0,0 0,-1 -1,-1 -1,0 -2,1 -2,3 L 3,8 C 3,6 2,5 1,5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/garden_centre.svg b/basemap/assets/icons/garden_centre.svg
new file mode 100644
index 00000000..f57e21a8
--- /dev/null
+++ b/basemap/assets/icons/garden_centre.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="garden_centre">
+  <path d="M 10,1 C 8.001165,0.9317471 5.5133754,2.3911196 6,6 L 6.7504188,9 3.5393635,7 3.494936,5 2.6951424,4 C 2,4 0,6.3539922 0,7.2495812 L 1.3059259,8 3,7.7035176 8,14 c 1.5857062,0 2.836405,0 4.422111,0 L 14,6 C 14,1 10.686767,1.0234505 10,1 z m 0,1.39866 C 12,2.417906 13,4 12.530988,6 L 7.5159129,6 C 7,4 7.4606365,2.39866 10,2.39866 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/gate.svg b/basemap/assets/icons/gate.svg
new file mode 100644
index 00000000..2831a729
--- /dev/null
+++ b/basemap/assets/icons/gate.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="6" height="5" viewBox="0 0 6 5" id="gate">
+  <path d="m0,1 h6 v1 h-6 z m0,2 h6 v1 h-6 z m1,2 l3,-5 h1 l-3,5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/generator_wind.svg b/basemap/assets/icons/generator_wind.svg
new file mode 100644
index 00000000..d369a399
--- /dev/null
+++ b/basemap/assets/icons/generator_wind.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="generator_wind">
+  <path d="M 12 0 C 9.5776054 1.453437 8.7344237 2.0062586 7.5644531 3.0820312 A 2 2 0 0 1 8.9179688 4.4355469 C 10.000256 3.2607453 10.536088 2.4398548 12 0 z M 3.71875 3.6542969 C 2.7974228 3.6764675 1.760434 3.7900279 0 4 C 2.6016345 5.0128073 3.5611756 5.3446455 5.0976562 5.609375 A 2 2 0 0 1 5 5 A 2 2 0 0 1 5.4589844 3.7265625 C 4.8432712 3.6727363 4.2823162 3.6407354 3.71875 3.6542969 z M 7 4 A 1 1 0 0 0 6 5 A 1 1 0 0 0 7 6 A 1 1 0 0 0 8 5 A 1 1 0 0 0 7 4 z M 8.9199219 5.5585938 A  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/gift.svg b/basemap/assets/icons/gift.svg
new file mode 100644
index 00000000..b1ce04bc
--- /dev/null
+++ b/basemap/assets/icons/gift.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="gift">
+  <path d="M 4.375,0.5 C 3.5,0.5 2.625,1.1125001 2.625,2.25 2.625,3.386625 3.144625,4 4.28125,4 l 2.5625,0 0.25,0 2.5625,0 C 10.792,4 11.375,3.4169999 11.375,2.28125 11.374125,1.14375 10.499999,0.5 9.625,0.5 8.2985,0.5 7.333375,1.3032501 7,2.46875 6.66575,1.3032501 5.730375,0.5 4.375,0.5 z m 0,0.875 c 1.416625,0 1.656375,1.120875 1.75,1.75 l -1.75,0 C 3.455375,3.125 3.5,2.287625 3.5,2.25 3.5,2.212375 3.45538,1.375 4.375,1.375 z m 5.25,0 c 0.874999,0 0.875,0.837375 0.875,0.875 0,0.037625  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/golf.svg b/basemap/assets/icons/golf.svg
new file mode 100644
index 00000000..3ce42a1a
--- /dev/null
+++ b/basemap/assets/icons/golf.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" id="golf">
+  <path d="M 10.255722,1.25 9.5556113,2.2668282 C 9.3825471,2.5061111 9.4247604,2.7108452 9.6778523,2.8835927 9.9171215,3.0296005 10.121551,2.9900288 10.294617,2.7641298 L 10.694681,2.1668123 16.923447,6.2535722 11.83375,7.170384 c -0.186473,0.039757 -0.336941,0.1360572 -0.450071,0.2889348 -0.113146,0.1528975 -0.14213,0.3134364 -0.0889,0.4861884 l 1.097396,4.2867918 -3.5950144,5.361962 c -0.066629,0.11923 -0.1000208,0.244819 -0.1000151,0.377838 -5.6e-6,0.212502 0.077435,0.397196 0.230592 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/golf_pin.svg b/basemap/assets/icons/golf_pin.svg
new file mode 100644
index 00000000..6ea5df63
--- /dev/null
+++ b/basemap/assets/icons/golf_pin.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="9" height="23" version="1.1" viewBox="0 0 9 23" id="golf_pin">
+  <path d="m4,1 v9.77344 a2.10716,0.75 0 1 0 1,0 v-6.77344 l4,-1.5 -4,-1.5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/greengrocer.svg b/basemap/assets/icons/greengrocer.svg
new file mode 100644
index 00000000..184c0d83
--- /dev/null
+++ b/basemap/assets/icons/greengrocer.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="greengrocer">
+  <path d="M 7.6811441,0.3845339 C 7.1074871,0.9581909 6.6438573,1.7807134 6.5,2.5 6.4213803,2.8930985 6.38606,3.8255659 6.375,4.281125 6.5830531,4.4032096 6.7911853,4.499514 7,4.656125 7.2211442,4.4902669 7.4360105,4.3770848 7.65625,4.249875 7.6737853,3.8551732 7.6944029,3.0279856 7.75,2.75 7.8561427,2.2192866 8.1298011,1.6858769 8.5561441,1.2595339 z M 0.5,1 C 1.0359156,3 3.3537505,4 5.5,3 4.5967177,1 3,0.36207008 0.5,1 z M 2,5.25 C 1.3855932,5.8940678 1,7 1,8 c 0,2 2,5.5 4,5.5 0.56355 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/guest_house.svg b/basemap/assets/icons/guest_house.svg
new file mode 100644
index 00000000..61dd75bf
--- /dev/null
+++ b/basemap/assets/icons/guest_house.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="guest_house">
+  <path d="M7,0.85331316 1,5 h 2 v 8 H 6 V 8 h 2 v 5 h 3 V 5 h 2 z"/>
+  <path d="m 0.5,6 c -0.277,0 -0.5,0.223 -0.5,0.5 v 0.5 V 11 12 12.5 14 H 1 V 12.5 12 H 13 V 13.5 14 H 13.5 14 V 13.5 12 11 9 v -0.5 c 0,-0.277 -0.223,-0.5 -0.5,-0.5 -0.277,0 -0.5,0.223 -0.5,0.5 v 0.5 V 11 H 1 v -4 -0.5 c 0,-0.277 -0.223,-0.5 -0.5,-0.5 z m 3,1 c -0.828427,0 -1.5,0.671573 -1.5,1.5 C 2,9.3284274 2.671573,10 3.5,10 4.328427,10 5,9.3284274 5,8.5 c 0,-0.828427 -0.671573,-1.5 -1.5,-1.5 z m 2.5,1 V 10 h 6 C 12,9 10.963825,8 10,8 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/guidepost.svg b/basemap/assets/icons/guidepost.svg
new file mode 100644
index 00000000..31907a6a
--- /dev/null
+++ b/basemap/assets/icons/guidepost.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="guidepost">
+  <path d="M 7,0.25 C 6.625,0.25 6.25,0.5 6.25,1 l 0,13 1.5,0 0,-13 C 7.75,0.5 7.375,0.25 7,0.25 z M 2,1 0,2.5 2,4 6,4 6,1 2,1 z M 8,4 8,7 12,7 14,5.5 12,4 8,4 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/hairdresser.svg b/basemap/assets/icons/hairdresser.svg
new file mode 100644
index 00000000..3f1f4380
--- /dev/null
+++ b/basemap/assets/icons/hairdresser.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="hairdresser">
+  <path d="M 4,0 4,9.53125 C 3.580263,9.212414 3.064535,9 2.5,9 1.12521,9 0,10.12521 0,11.5 0,12.87479 1.12521,14 2.5,14 3.702941,14 4.703332,13.136374 4.9375,12 l 0.125,0 C 5.296668,13.136374 6.297059,14 7.5,14 8.87479,14 10,12.87479 10,11.5 10,10.12521 8.87479,9 7.5,9 6.935465,9 6.419737,9.212414 6,9.53125 L 6,0 z m 4,0 0,2 4,0 0,1 -4,0 0,1 4,0 0,1 -4,0 0,1 4,0 0,1 -4,0 0,1 4,0 0,6 2,0 0,-12 C 14,1 13,0 12,0 z M 2.5,10 C 3.334349,10 4,10.665651 4,11.5 4,12.334349 3.334349,13 2.5,13 1.6 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/helipad.svg b/basemap/assets/icons/helipad.svg
new file mode 100644
index 00000000..8a8d0e45
--- /dev/null
+++ b/basemap/assets/icons/helipad.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16" id="helipad">
+  <path d="m8,.5 a7.5,7.5 0 0 0 0,15 a7.5,7.5 0 0 0 0,-15 z m0,1 a6.5,6.5 0 0 1 0,13 a6.5,6.5 0 0 1 0,-13 z m-3,1.5 l-.75,.75 v8.5 l.75,.75 h1 v-4 h4 v4 h1 l.75,-.75 v-8.5 l-.75,-.75 h-1 v4 h-4 v-4 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/hifi.svg b/basemap/assets/icons/hifi.svg
new file mode 100644
index 00000000..f8aaba44
--- /dev/null
+++ b/basemap/assets/icons/hifi.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="hifi">
+  <path d="m 8.5118375,9.5349493 a 1.5,1.5 0 0 1 -1.5,1.4999997 1.5,1.5 0 0 1 -1.5,-1.4999997 1.5,1.5 0 0 1 1.5,-1.5 1.5,1.5 0 0 1 1.5,1.5 z M 2,0 2,14 12,14 12,0 2,0 Z m 5.0703125,0.96875 c 1.1045695,0 2,0.8954305 2,2 0,1.1045695 -0.8954305,2 -2,2 -1.1045695,0 -2,-0.8954305 -2,-2 0,-1.1045695 0.8954305,-2 2,-2 z m -0.060547,5.0195312 a 3.5,3.5 0 0 1 3.5000004,3.5 3.5,3.5 0 0 1 -3.5000004,3.4999998 3.5,3.5 0 0 1 -3.5,-3.4999998 3.5,3.5 0 0 1 3.5,-3.5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/hinduist.svg b/basemap/assets/icons/hinduist.svg
new file mode 100644
index 00000000..ad3abb36
--- /dev/null
+++ b/basemap/assets/icons/hinduist.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="hinduist">
+  <path d="m 6,1.9999996 c 0,0 1.598346,2.8202261 4,0.5 0.330985,0.5 1,1.5 1,1.5 0,0 -3.443372,2.3559064 -5,-2 z m -5,2 c 0.288621,0.6087858 0.66053,1.357316 1,2 0.504453,-1 2,-1 2,-1 1,0 1.73386,0.3918109 1.73386,1.0271271 C 5.73386,6.6624429 5,6.9999996 4,6.9999996 c 0,0 0,1 0,1.4999997 1.310854,-0.248718 2.002635,0.789559 1.682148,1.5069877 C 5.074951,11.366339 1.503926,11.526643 0,8.9999993 c 0,3.9878227 3.441492,3.9999997 4,3.9999997 2,0 3,-2 3,-3.9999997 0.520803,0.543036 1.354855, [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/hospital.svg b/basemap/assets/icons/hospital.svg
new file mode 100644
index 00000000..2ff7fc87
--- /dev/null
+++ b/basemap/assets/icons/hospital.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="hospital">
+  <path d="M7,0 A7,7 0 0 0 7,14 7,7 0 0 0 7,0 Z M6,3 H8 V6 H11 V8 H8 V11 H6 V8 H3 V6 h3 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/hostel.svg b/basemap/assets/icons/hostel.svg
new file mode 100644
index 00000000..14677fdb
--- /dev/null
+++ b/basemap/assets/icons/hostel.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="hostel">
+  <path d="M 3.5,1 C 2.671573,1 2,1.671573 2,2.5 2,3.328427 2.671573,4 3.5,4 4.328427,4 5,3.328427 5,2.5 5,1.671573 4.328427,1 3.5,1 Z M 6,2 v 2 h 6 C 12,3 10.963825,2 10,2 Z M 3.5,7 C 2.671573,7 2,7.671573 2,8.5 2,9.328427 2.671573,10 3.5,10 4.328427,10 5,9.328427 5,8.5 5,7.671573 4.328427,7 3.5,7 Z M 6,8 v 2 l 6,0.01288 C 12,9 10.963825,8 10,8 Z"/>
+  <path d="m1,.5 a.5,.5 0 0 0 -1,0 v14.5 h1 v-3 h12 v3 h1 v-12.5 a.5,.5 0 0 0 -1,0 v2.5 h-12 z m0,5.5 h12 v5 h-12 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/hotel.svg b/basemap/assets/icons/hotel.svg
new file mode 100644
index 00000000..e5425684
--- /dev/null
+++ b/basemap/assets/icons/hotel.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="hotel">
+  <path d="M 0.5 3 C 0.223 3 0 3.223 0 3.5 L 0 4 L 0 8 L 0 9 L 0 9.5 L 0 11 L 1 11 L 1 9.5 L 1 9 L 13 9 L 13 10.5 L 13 11 L 13.5 11 L 14 11 L 14 10.5 L 14 9 L 14 8 L 14 6 L 14 5.5 C 14 5.223 13.777 5 13.5 5 C 13.223 5 13 5.223 13 5.5 L 13 6 L 13 8 L 1 8 L 1 4 L 1 3.5 C 1 3.223 0.777 3 0.5 3 z M 3.5 4 C 2.671573 4 2 4.671573 2 5.5 C 2 6.328427 2.671573 7 3.5 7 C 4.328427 7 5 6.328427 5 5.5 C 5 4.671573 4.328427 4 3.5 4 z M 6 5 L 6 7 L 12 7 C 12 6 10.963825 5 10 5 L 6 5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/houseware.svg b/basemap/assets/icons/houseware.svg
new file mode 100644
index 00000000..b2720529
--- /dev/null
+++ b/basemap/assets/icons/houseware.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="houseware">
+  <path d="M10,3H4.827C4.522,3.721,3.589,4.25,2.471,4.25C1.106,4.25,0,3.466,0,2.5s1.106-1.75,2.471-1.75 c1.118,0,2.051,0.529,2.355,1.25H10V3z M1,8.402V12c0,1.104,0.896,2,2,2h4c1.104,0,2-0.896,2-2V8.402H1z M10,8V7H7 c0-0.551-0.447-1-1-1H4C3.447,6,3,6.449,3,7H0v1H10z M12,14v-3h1.5c0-4.021-0.5-8-2.5-10v13H12z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/hunting_stand.svg b/basemap/assets/icons/hunting_stand.svg
new file mode 100644
index 00000000..caf0b6ad
--- /dev/null
+++ b/basemap/assets/icons/hunting_stand.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="hunting_stand">
+  <path d="m 3,0 0,1.25 8,2 L 11,2 z M 4,2.5 4,7 10,7 10,4 z M 3,8 l 0,1 1,0 -1,5 1.5,0 1,-5 3,0 1.03125,5 1.5,0 L 10,9 11,9 11,8 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/ice_cream.svg b/basemap/assets/icons/ice_cream.svg
new file mode 100644
index 00000000..63c67c01
--- /dev/null
+++ b/basemap/assets/icons/ice_cream.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="ice_cream">
+  <path d="M 5,0 C 3.3431457,0 2,1.3431457 2,3 2,3.3555333 2.0739786,3.6835283 2.1875,4 l 5.625,0 C 7.9260214,3.6835283 8,3.3555333 8,3 8,1.3431457 6.6568543,0 5,0 z M 9,0 C 8.5961418,0 8.2266723,0.105305 7.875,0.25 8.5629725,0.96841289 9,1.9267594 9,3 9,3.3467764 8.931082,3.6790098 8.84375,4 L 11.8125,4 C 11.926021,3.6835283 12,3.3555333 12,3 12,1.3431457 10.656854,0 9,0 z M 3.25,5 7,14 10.75,5 3.25,5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/interior_decoration.svg b/basemap/assets/icons/interior_decoration.svg
new file mode 100644
index 00000000..4ab7ef29
--- /dev/null
+++ b/basemap/assets/icons/interior_decoration.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="interior_decoration">
+  <path d="M 1.3066406 0 L 0 4.8125 L 2.8613281 4.8125 L 2.8613281 12.878906 L 1.515625 12.878906 L 1.515625 14 L 5.3300781 14 L 5.3300781 12.878906 L 3.984375 12.878906 L 3.984375 4.8125 L 6.8457031 4.8125 L 5.5273438 0 L 1.3066406 0 z M 11.246094 0.54296875 A 1.1890712 1.1890712 0 0 0 10.105469 1.4023438 A 1.1890712 1.1890712 0 0 0 9.8222656 1.3671875 A 1.1890712 1.1890712 0 0 0 8.6328125 2.5566406 A 1.1890712 1.1890712 0 0 0 9.1152344 3.5097656 A 1.1890712 1.1890712 0 0 0 8.6328125 4. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/internet_cafe.svg b/basemap/assets/icons/internet_cafe.svg
new file mode 100644
index 00000000..6bce0b56
--- /dev/null
+++ b/basemap/assets/icons/internet_cafe.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="internet_cafe">
+  <path d="M 7.7613518,9.6777548 Q 7.2808871,10.223493 6.6821541,10.558212 6.090813,10.885655 5.4920802,10.885655 q -0.6578671,0 -1.2787752,-0.378379 Q 3.5923967,10.128898 3.2006332,9.3430354 2.8162615,8.5571727 2.8162615,7.6185033 q 0,-1.1569647 0.5987329,-2.3139293 Q 4.021119,4.1403329 4.9155225,3.5582124 5.809926,2.9760918 6.6525871,2.9760918 q 0.6430835,0 1.2270328,0.3347193 0.5839494,0.3274428 1.00528,1.0041579 l 0.25132,-1.1278585 H 10.459346 L 9.3949316,8.0696467 q -0.2217529,1.01 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/jewelry.svg b/basemap/assets/icons/jewelry.svg
new file mode 100644
index 00000000..b04a4aca
--- /dev/null
+++ b/basemap/assets/icons/jewelry.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="jewelry">
+  <path d="m 5.5001761,-0.03125 -1.5000755,2 6.0003024,0 -1.500076,-2 -3.0001509,0 z m -1.5000755,3 3.000151,2.75 3.0001514,-2.75 -6.0003024,0 z m -0.1250063,2.125 C 2.7594552,6.0221898 2,7.4228958 2,8.96875 2,11.716935 4.3397727,14 6.969,14 9.598227,14 11.938,11.716935 11.938,8.96875 11.938,7.4345438 11.195755,6.0534671 10.094157,5.125 L 8.9691006,6.15625 c 0.9205844,0.6728387 1.5625784,1.7640005 1.5625784,2.8125 0,1.711475 -1.7320219,3.46875 -3.562679,3.46875 -1.8306571,0 -3.5314277,-1 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/jewish.svg b/basemap/assets/icons/jewish.svg
new file mode 100644
index 00000000..ae637620
--- /dev/null
+++ b/basemap/assets/icons/jewish.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="jewish">
+  <path d="M 6.9999998,0 4.9994361,3.5 H 1 L 3.0005636,7 1,10.5 H 4.9994361 L 6.9999998,14 9.0005635,10.5 H 12.999999 L 10.999436,7 13,3.5 H 9.0005635 Z m 0,1.751709 L 7.9994361,3.5 H 6.0005635 Z M 2.501691,4.375 H 4.5005635 L 3.5011273,6.123291 Z m 2.9999999,0 H 8.4983087 L 9.9983093,7 8.4983087,9.625 H 5.5016909 L 4.001691,7 Z m 3.9977453,0 H 11.498308 L 10.498873,6.123291 Z M 3.5011273,7.876709 4.5005635,9.625 H 2.501691 Z m 6.9977457,0 L 11.498308,9.625 H 9.4994362 Z M 6.0005635,10.5 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/kissing_gate.svg b/basemap/assets/icons/kissing_gate.svg
new file mode 100644
index 00000000..88efec07
--- /dev/null
+++ b/basemap/assets/icons/kissing_gate.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" id="kissing_gate">
+  <path d="M 4,0 3.4003906,1 H 0 V 2 H 2.7988281 L 2.1992188,3 H 0 V 4 H 1.5996094 L 1,5 H 2 L 2.5996094,4 H 6 V 3 H 3.1992188 L 3.7988281,2 H 6 V 1 H 4.4003906 L 5,0 Z M 6,2 V 3 H 7 A 4,4 0 0 1 11,7 4,4 0 0 1 7,11 4,4 0 0 1 3.5410156,9 H 2.4199219 A 5,5 0 0 0 7,12 5,5 0 0 0 12,7 5,5 0 0 0 7,2 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/laundry.svg b/basemap/assets/icons/laundry.svg
new file mode 100644
index 00000000..06aa19aa
--- /dev/null
+++ b/basemap/assets/icons/laundry.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="laundry">
+  <path d="M 9.5,8.5 C 9.5,9.8807119 8.380712,11 7,11 5.619509,11 4.500312,9.8810564 4.5,8.5005654 M 1,0 1,14 13,14 13,0 1,0 Z M 3,1 8,1 8,3 3,3 3,1 Z m 7,0 2,0 0,2 -2,0 0,-2 z M 7,5 c 1.60466,0 3.01542,1.0999131 3.40625,2.65625 L 10.5,8.5 C 10.5,10.432997 8.932997,12 7,12 5.067003,12 3.5,10.432997 3.5,8.5 3.5,6.5670034 5.067003,5 7,5 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/level_crossing.svg b/basemap/assets/icons/level_crossing.svg
new file mode 100644
index 00000000..ba23f12b
--- /dev/null
+++ b/basemap/assets/icons/level_crossing.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="7" height="7" viewBox="0 0 7 7" id="level_crossing">
+  <path d="m.25,.25 h.8536 l2.3964,2.3964 2.3964,-2.3964 h.8536 v.8536 l-2.3964,2.3964 2.3964,2.3964 v.8536 h-.8536 l-2.3964,-2.3964 -2.3964,2.3964 h-.8536 v-.8536 l2.3964,-2.3964 -2.3964,-2.3964 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/level_crossing2.svg b/basemap/assets/icons/level_crossing2.svg
new file mode 100644
index 00000000..9d1bccbc
--- /dev/null
+++ b/basemap/assets/icons/level_crossing2.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="11" height="11" viewBox="0 0 11 11" id="level_crossing2">
+  <path d="m.65,.65 h1.495 l3.355,3.355 3.355,-3.355 h1.495 v1.495 l-3.355,3.355 3.355,3.355 v1.495 h-1.495 l-3.355,-3.355 -3.355,3.355 h-1.495 v-1.495 l3.355,-3.355 -3.355,-3.355 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/library.svg b/basemap/assets/icons/library.svg
new file mode 100644
index 00000000..1e3bc68a
--- /dev/null
+++ b/basemap/assets/icons/library.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="library">
+  <path d="M 2.5917969,0.8769531 C 2.39328,0.8849528 2.1958998,0.9246486 2,1 L 2,9 C 2,9 5.1875,8.875 6,12 L 6,3.5996094 C 5.38001,2.2940108 3.9814151,0.8209552 2.5917969,0.8769531 Z M 6,12 C 3.9375,10.40625 1,10 1,10 L 1,2.4003906 0,2 l 0,9 6,2 2,0 6,-2 0,-9 -1,0.4003906 0,8.0000004 L 8,12 C 7.333333,11.74532 6.556181,11.790637 6,12 Z M 12,1 C 10.00748,0.8934496 7.7073046,2.0896818 6.5,3.1191406 l 0,8.4648434 C 7.6147712,10.659345 9.613583,9.442711 12,9.199219 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/lift_gate.svg b/basemap/assets/icons/lift_gate.svg
new file mode 100644
index 00000000..f38a6923
--- /dev/null
+++ b/basemap/assets/icons/lift_gate.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="6" height="5" viewBox="0 0 6 5" id="lift_gate">
+  <path d="m0,0 v5 h2 v-3 h4 v-1 h-4 v-1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/lighthouse.svg b/basemap/assets/icons/lighthouse.svg
new file mode 100644
index 00000000..08961d7a
--- /dev/null
+++ b/basemap/assets/icons/lighthouse.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="lighthouse">
+  <path d="m 7.0003065,0 -3,1.5 c -0.465049,1.5 -0.465049,2.5 0,4.5 l 1,0 -1,8 6.0000005,0 -1,-8 1,0 c 0.530187,-2 0.530187,-3 0,-4.5 L 7.0003065,0 Z m -6.28125,1.46875 c -0.167266,0.084188 -0.229367,0.3762768 0,0.46875 l 1.875,0.75 c 0.306429,0.1235421 0.493322,-0.3454524 0.1875,-0.46875 l -1.875,-0.75 c -0.07646,-0.030824 -0.131745,-0.028062 -0.1875,0 z m 12.3750005,0 -1.875,0.75 c -0.305822,0.1232976 -0.118929,0.5922921 0.1875,0.46875 l 1.875,-0.75 C 13.58738,1.8142024 13.399879,1.345 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/manor.svg b/basemap/assets/icons/manor.svg
new file mode 100644
index 00000000..510fcec3
--- /dev/null
+++ b/basemap/assets/icons/manor.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="manor">
+  <path d="m 9,7 h 1 V 8 H 9 Z M 4,7 H 5 V 8 H 4 Z M 7,6.9277978 6,7.9241877 V 13 H 8 V 8 Z M 9,8 v 5 h 5 V 8 Z m 2,1 h 2 v 2 H 11 Z M 0,8 v 5 H 5 V 8 Z m 1,1 h 2 v 2 H 1 Z M 7,1 1,4 0,7 H 5 L 7,5 9,7 h 5 L 13,4 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/map.svg b/basemap/assets/icons/map.svg
new file mode 100644
index 00000000..d5789eca
--- /dev/null
+++ b/basemap/assets/icons/map.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="map">
+  <path d="M 4.46875 1 C 4.4340322 1.0022386 4.3999788 1.0179371 4.3652344 1.0273438 C 4.3418638 1.0339809 4.316744 1.0351181 4.2949219 1.0449219 C 4.2885174 1.047763 4.2817055 1.0476262 4.2753906 1.0507812 L 0.26953125 3.0527344 L 0.26953125 3.0625 C 0.11092462 3.1461425 1.7200928e-017 3.3075506 0 3.5 L 0 12.5 C 0 12.506925 0.0036301406 12.512676 0.00390625 12.519531 C 0.0049226003 12.548659 0.015193262 12.576414 0.021484375 12.605469 C 0.029297893 12.640912 0.033967723 12.676843 0.0488 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/marketplace.svg b/basemap/assets/icons/marketplace.svg
new file mode 100644
index 00000000..67ed682e
--- /dev/null
+++ b/basemap/assets/icons/marketplace.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg version="1.1" width="14" height="14" viewBox="0 0 14 14" xmlns="http://www.w3.org/2000/svg" id="marketplace">
+  <path d="m0 0v1 1a2 2 0 0 0 2 2 2 2 0 0 0 2-2h1a2 2 0 0 0 2 2 2 2 0 0 0 2-2h1a2 2 0 0 0 2 2 2 2 0 0 0 2-2v-1-1h-2-12z m0 5v4 2 3h2v-3h10v3h2v-3-2-4h-2v4h-10v-4h-2z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/massage.svg b/basemap/assets/icons/massage.svg
new file mode 100644
index 00000000..936f76d2
--- /dev/null
+++ b/basemap/assets/icons/massage.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="massage">
+  <path d="M 5.5449219 1 A 1.5 1.5 0 0 0 4.0449219 2.5 A 1.5 1.5 0 0 0 5.5449219 4 A 1.5 1.5 0 0 0 7.0449219 2.5 A 1.5 1.5 0 0 0 5.5449219 1 z M 4.3300781 4.5097656 C 3.9406791 4.5609641 3.5894805 4.8289578 3.4570312 5.2148438 L 2.1582031 9 L 4.2265625 9 L 5.1738281 6.2421875 L 6.1914062 7.2890625 C 6.2070166 7.3051225 6.2270579 7.3126522 6.2441406 7.3261719 C 6.261156 7.3411298 6.2816192 7.3506327 6.3007812 7.3632812 C 6.330583 7.3808944 6.3585151 7.399261 6.390625 7.4101562 C 6.4071604 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/mast.svg b/basemap/assets/icons/mast.svg
new file mode 100644
index 00000000..c3345b67
--- /dev/null
+++ b/basemap/assets/icons/mast.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="mast">
+  <path d="M 7,1 C 6.4022075,1 6,1.4692172 6,2 L 6,9 3.1132812,14 4.2675781,14 6,11 6,14 8,14 8,11 9.7324219,14 10.886719,14 8,9 8,2 C 8,1.5039063 7.5977925,1 7,1 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/mast_communications.svg b/basemap/assets/icons/mast_communications.svg
new file mode 100644
index 00000000..3ab40e1a
--- /dev/null
+++ b/basemap/assets/icons/mast_communications.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="mast_communications">
+  <path d="M 4 0.40625 C 2.23276 1.1855669 0.96875 2.9521023 0.96875 5 C 0.96875 7.047898 2.23276 8.814433 4 9.59375 L 4 8.4375 C 2.80447 7.746709 2 6.4881502 2 5 C 2 3.5118498 2.80447 2.2532914 4 1.5625 L 4 0.40625 z M 10 0.40625 L 10 1.5625 C 11.19553 2.2532914 12 3.5118498 12 5 C 12 6.4881502 11.19553 7.746709 10 8.4375 L 10 9.59375 C 11.76724 8.814433 13.03125 7.047898 13.03125 5 C 13.03125 2.9521023 11.76724 1.1855669 10 0.40625 z M 5 2.1875 C 3.842954 2.6043642 3 3.7033306 3 5 C 3  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/mast_lighting.svg b/basemap/assets/icons/mast_lighting.svg
new file mode 100644
index 00000000..d02ec95b
--- /dev/null
+++ b/basemap/assets/icons/mast_lighting.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="mast_lighting">
+  <path d="M 7 1 C 6.4022075 1 6 1.4692172 6 2 L 6 9 L 3.1132812 14 L 4.2675781 14 L 6 11 L 6 14 L 8 14 L 8 11 L 9.7324219 14 L 10.886719 14 L 8 9 L 8 2 C 8 1.5039063 7.5977925 1 7 1 z M 2.7148438 1.5449219 C 2.5475777 1.6291099 2.4854766 1.9211987 2.7148438 2.0136719 L 4.5898438 2.7636719 C 4.8962727 2.887214 5.0831658 2.4182195 4.7773438 2.2949219 L 2.9023438 1.5449219 C 2.8258838 1.5140979 2.7705987 1.5168599 2.7148438 1.5449219 z M 11 1.5957031 L 9.125 2.3457031 C 8.819178 2.4690007  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/medical_supply.svg b/basemap/assets/icons/medical_supply.svg
new file mode 100644
index 00000000..1002bbc6
--- /dev/null
+++ b/basemap/assets/icons/medical_supply.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="medical_supply">
+  <path d="M 13.819407,1.9040845e-7 10.474988,0.24220688 v 0.006858 l -0.0092,-0.002289 L 9.9343609,4.6453386 H 4.6153841 V 6.0620208 H 6.9518954 A 4.232613,4.2103869 0 0 0 4.9818957,8.2441653 H 2.0429309 v 0.052555 L 1.4244427,10.350905 A 1.8668557,1.8570526 0 0 0 0.04773353,12.14232 1.8668557,1.8570526 0 0 0 1.9146519,14 1.8668557,1.8570526 0 0 0 3.7815703,12.14232 1.8668557,1.8570526 0 0 0 2.8538379,10.540559 L 2.9752447,10.133834 H 4.6978492 A 4.232613,4.2103869 0 0 0 8.9150232,14 4. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/memorial.svg b/basemap/assets/icons/memorial.svg
new file mode 100644
index 00000000..7a41cd15
--- /dev/null
+++ b/basemap/assets/icons/memorial.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="memorial">
+  <path d="M 6,2 C 5,2 4,3 4,4 l 0,8 8,0 0,-8 C 12,3 11,2 10,2 z M 7,4 9,4 9,5 7,5 z m -2,2 6,0 0,1 -6,0 z m 1,2 4,0 0,1 -4,0 z m -3,5 -1,1 0,1 12,0 0,-1 -1,-1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/miniature_golf.svg b/basemap/assets/icons/miniature_golf.svg
new file mode 100644
index 00000000..21f250b6
--- /dev/null
+++ b/basemap/assets/icons/miniature_golf.svg
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20" id="miniature_golf">
+  <path d="m3.0956 17.663 1.2291-8.0762 0.96362-0.57698 0.94261 0.59237s1.0687 8.1587 0.96838 8.1098c-0.10033-0.04893-4.0837 0.02447-4.1038-0.04893z"/>
+  <path d="m2.4462 6.1308c-0.052923 0.00317-0.10306 0.024801-0.14168 0.061119l-1.1196 1.0474c-0.099372 0.092638-0.09547 0.2513 0.00833 0.33893l3.2977 2.8198-3.2977 2.8226c-0.10381 0.08764-0.10771 0.24629-0.00833 0.33893l1.1196 1.0474c0.099888 0.09345 0.25916 0.07778 0.33893-0.03334l2.6393-3.5977 2.6393 3.5977c0.079709 0.1091 0.23657 0.12466 0.33616 0.03334l1.1196-1.0474c0.099372-0.09264 0.09547-0.2513-0.00834-0.33893l-3.2977-2.8226 3.2977-2.8198c0.10381-0.087641 0.10771-0.24629 0.0083353 [...]
+  <path d="m13.578 5.4759c-1e-5 -0.35889-0.12958-0.6613-0.3887-0.90726-0.25915-0.24595-0.56815-0.36891-0.92704-0.36893-0.3585 1.12e-5 -0.66406 0.12299-0.91669 0.36893-0.25265 0.24596-0.37897 0.54839-0.37897 0.90726-7e-6 0.3585 0.12632 0.66072 0.37897 0.90667 0.25263 0.24596 0.55821 0.36894 0.91669 0.36893 0.35889 8.2e-6 0.6679-0.12297 0.92704-0.36893 0.25912-0.24595 0.38868-0.54816 0.3887-0.90667zm-3.4283 13.275c0.27899-3e-6 0.50488-0.13281 0.67763-0.39843l3.747-5.6412 0.19952 0.7774-0.5 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/mobile_phone.svg b/basemap/assets/icons/mobile_phone.svg
new file mode 100644
index 00000000..db8dd366
--- /dev/null
+++ b/basemap/assets/icons/mobile_phone.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="mobile_phone">
+  <path d="M 6,0 C 5.517164,0 5,0.3876224 5,1 L 5,2 C 3.8815,2.0818 3,2.90528 3,4 l 0,8 c 0,1.1488 0.803333,2 2,2 l 4,0 c 1.196667,0 2,-0.8512 2,-2 L 11,4 C 11,2.8512 10.196667,2 9,2 L 7,2 7,1 C 7,0.3640694 6.482836,0 6,0 z m -2,4 6,0 0,7 -6,0 0,-7 z m 2,8 2,0 0,1 -2,0 0,-1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/monument.svg b/basemap/assets/icons/monument.svg
new file mode 100644
index 00000000..4011fa8f
--- /dev/null
+++ b/basemap/assets/icons/monument.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="monument">
+  <path d="M 7,0 C 7,0 5,1.4966359 5,2 l 0,8 4,0 0,-8 C 9,1.5206056 7,0 7,0 z M 4,11 c -1,0 -1,1 -1,2 l -1,0 -1,1 12,0 -1,-1 -1,0 c 0,-1 0,-2 -1,-2 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/motel.svg b/basemap/assets/icons/motel.svg
new file mode 100644
index 00000000..57920da8
--- /dev/null
+++ b/basemap/assets/icons/motel.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="motel">
+  <path d="M 0.5,0 C 0.223,0 0,0.223 0,0.5 V 1 6 H 1 V 5 h 12 v 1 h 1 V 2 1.5 C 14,1.223 13.777,1 13.5,1 13.223,1 13,1.223 13,1.5 V 2 4 H 1 V 1 0.5 C 1,0.223 0.777,0 0.5,0 Z m 3,0 C 2.671573,0 2,0.671573 2,1.5 2,2.328427 2.671573,3 3.5,3 4.328427,3 5,2.328427 5,1.5 5,0.671573 4.328427,0 3.5,0 Z M 6,1 v 2 h 6 C 12,2 10.963825,1 10,1 Z M 4,6 3,9 C 2.527334,9 2,9.384295 2,10 v 3 h 1 c 0,0 0,1 1,1 1,0 1,-1 1,-1 h 4 c 0,0 0,1 1,1 1,0 1,-1 1,-1 h 1 V 10 C 12,9.479394 11.544575,9 11,9 L 10,6 Z  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/motorcycle.svg b/basemap/assets/icons/motorcycle.svg
new file mode 100644
index 00000000..ced2677b
--- /dev/null
+++ b/basemap/assets/icons/motorcycle.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="motorcycle">
+  <path d="m 11.656176,5.8256161 c 0.298589,0.2100571 0.472688,0.4414767 0.557618,0.7348004 0.02791,0.096441 0.02967,0.116247 0.03043,0.3145082 6.72e-4,0.1824775 -0.0013,0.2303319 -0.02282,0.331662 -0.04231,0.1988789 -0.12061,0.4210966 -0.212909,0.6147172 l -0.04055,0.088638 -0.139406,0.00864 C 11.321401,7.9483119 10.913322,8.0512522 10.558686,8.241664 9.7980817,8.6500367 9.3203179,9.4172822 9.0835261,10.60618 l -0.020273,0.09435 -0.098852,0.102933 c -0.054816,0.05578 -0.1286446,0.122894 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/motorcycle_barrier.svg b/basemap/assets/icons/motorcycle_barrier.svg
new file mode 100644
index 00000000..200e0ead
--- /dev/null
+++ b/basemap/assets/icons/motorcycle_barrier.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="motorcycle_barrier">
+  <path d="M 5 0 L 5 4 L 3 10 L 3 14 L 4 14 L 4 10 L 6 4 L 6 0 L 5 0 z M 8 0 L 8 4 L 10 10 L 10 14 L 11 14 L 11 10 L 9 4 L 9 0 L 8 0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/motorcycle_parking.svg b/basemap/assets/icons/motorcycle_parking.svg
new file mode 100644
index 00000000..e605d44d
--- /dev/null
+++ b/basemap/assets/icons/motorcycle_parking.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="motorcycle_parking">
+  <path d="m 12.105361,8.592849 c 0.230087,0.143493 0.364242,0.301579 0.429688,0.501953 0.02151,0.06588 0.02287,0.07941 0.02344,0.214845 5.18e-4,0.124653 -9.69e-4,0.157343 -0.01758,0.226563 -0.0326,0.135857 -0.09294,0.287657 -0.164063,0.419922 l -0.03125,0.06055 -0.107422,0.0059 c -0.390788,0.02031 -0.705242,0.09063 -0.978515,0.220703 -0.586101,0.278965 -0.954254,0.803082 -1.136719,1.615234 l -0.01563,0.06445 -0.07617,0.07031 c -0.04224,0.03811 -0.09913,0.08395 -0.126953,0.101562 -0.2528 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/museum.svg b/basemap/assets/icons/museum.svg
new file mode 100644
index 00000000..f55749e6
--- /dev/null
+++ b/basemap/assets/icons/museum.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="museum">
+  <path d="M 7,1 1,3 1,4 13,4 13,3 z m -6,4 0,1 1,0 0,5 -1,0 -1,2 14,0 -1,-2 -1,0 0,-5 1,0 0,-1 z M 5,6 C 5.497372,6 6,6.5325904 6,7 L 6,11 4,11 4,7 C 4,6.4726661 4.502628,6 5,6 z m 4,0 c 0.503364,0 1,0.4726661 1,1 l 0,4 -2,0 0,-4 C 8,6.4726661 8.496636,6 9,6 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/music.svg b/basemap/assets/icons/music.svg
new file mode 100644
index 00000000..f5cc6287
--- /dev/null
+++ b/basemap/assets/icons/music.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="music">
+  <path d="M 6.0702169,0 4.1261099,0.30664062 C 4.1110424,3.5941871 4.0981627,6.8823665 4.0851608,10.169922 L 3.537223,10.130859 c -1.3286234,-0.09376 -2.73349869,0.560555 -3.35002602,1.558594 -0.22696225,0.367395 -0.25027762,0.950601 -0.0506989,1.267578 C 0.44807488,13.451881 1.1879837,13.866411 1.9928571,14 3.8437076,13.94684 5.1692552,13.299428 6.068267,11.966797 6.068267,7.9261386 6.0700268,3.5834362 6.0702169,0 Z m 0.9398793,0.01953125 a 6.9904018,6.9852977 0 0 0 -0.02145,0.0019531  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/musical_instrument.svg b/basemap/assets/icons/musical_instrument.svg
new file mode 100644
index 00000000..6f142602
--- /dev/null
+++ b/basemap/assets/icons/musical_instrument.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="musical_instrument">
+  <path d="m 11,6 c 1,0 2,1 2,2 l 0,2 c 0.0034,0.946601 -1,2 -2,2 L 6,12 C 5,12 4,11 4,10 L 4,8 C 4,7 5,6 6,6 L 7,6 C 5,7 5,7 5,9 5,9.558061 5.5149841,9.961494 6,10 l 5,0 c 0.605412,0 1,-0.441939 1,-1 0,-2 0,-2 -2,-3.0047349 z M 7,3 7,4.9882812 5,5 5,6 7,6 7,8 8,8 8,6 l 1,0 0,2 1,0 0,-2 3,0 c 0,1 1,1 1,1 l 0,-3 c 0,0 -1,4.76e-4 -1,0.953125 L 10,4.9707031 10,3 9,3 9,4.9765625 8,4.9824219 8,3 7,3 Z M 0,10 0,1 C 3,1 3,5 5,5 L 5,6 C 3,6 3,10 0,10 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/muslim.svg b/basemap/assets/icons/muslim.svg
new file mode 100644
index 00000000..7f799c10
--- /dev/null
+++ b/basemap/assets/icons/muslim.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="muslim">
+  <path d="M 6,1 C 2.609585,1 0,3.6096 0,7 c 0,3.3904 2.609585,6 6,6 1.89566,0 3.873911,-0.6497 5,-2 -0.7358,0.479 -2.056597,1 -3,1 C 5.40733,12 3,9.5927 3,7 3,4.4073 5.40733,2 8,2 8.943403,2 10.2642,2.5211 11,3 9.873911,1.6498 7.89566,1 6,1 z M 10.5,4 9.5,6 7,6 9,7.5 8,10 10.5,8.5 13,10 12,7.5 14,6 11.5,6 10.5,4 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/newsagent.svg b/basemap/assets/icons/newsagent.svg
new file mode 100644
index 00000000..3057aba6
--- /dev/null
+++ b/basemap/assets/icons/newsagent.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="newsagent">
+  <path d="m 7,11 4,0 0,0.536839 -4,0.02177 z m 0,-1 4,0 0,0.536839 -4,0.02177 z M 7,6 11,6 11,9 7,9 Z M 2,6 6,6.023451 6,6.5602898 2,6.5586098 Z m 0,5 4,0 0,0.536839 -4,0.02177 z m 0,-1 4,0 0,0.536839 -4,0.02177 z M 2,9 6,9.023451 6,9.5602901 2,9.5586101 Z M 2,8 6,8.023451 6,8.5602898 2,8.5586098 Z M 2,7 6,7 6,7.5368388 2,7.5586062 Z M 2,2 2,4.510373 11,4.5572742 11,2 Z M 0,0 c 0,1.5606474 0,8.9375328 0,11 0,2 0,0 0,3 l 10,0 3,0 0,-14 z m 1,1 11,0 0,12 -9,0 c -1.4082984,0 0,0 -2,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/nightclub.svg b/basemap/assets/icons/nightclub.svg
new file mode 100644
index 00000000..2ecb070f
--- /dev/null
+++ b/basemap/assets/icons/nightclub.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="nightclub">
+  <path d="M 13.006803,0.00308957 3.0068028,2.0030896 l 0,8.5624994 c -0.385369,-0.06933 -0.787572,-0.07549 -1.1875,0.03125 -1.15478198,0.308194 -2.01331698,1.387352 -1.78124998,2.25 0.232067,0.862648 1.50146898,1.370694 2.65624998,1.0625 1.154781,-0.308194 1.8125,-1.336236 1.8125,-2.25 l 0,-6.9687494 7.0000002,-1.375 0,5.6249997 c -0.385334,-0.06124 -0.787622,-0.04422 -1.1875,0.0625 -1.1546372,0.308156 -2.0130612,1.3561497 -1.7812502,2.2187497 0.232265,0.862479 1.5016132,1.370655 2.6562 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/obelisk.svg b/basemap/assets/icons/obelisk.svg
new file mode 100644
index 00000000..46f25b20
--- /dev/null
+++ b/basemap/assets/icons/obelisk.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="obelisk">
+  <path d="M7,0 L5.7988281,2 L5.546875,12 L8.453125,12 L8.2011719,2 L7,0 z M3,13 v1 h8 v-1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/office.svg b/basemap/assets/icons/office.svg
new file mode 100644
index 00000000..86f4198b
--- /dev/null
+++ b/basemap/assets/icons/office.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="office">
+  <path d="M 7 0 A 7 7 0 0 0 0 7 A 7 7 0 0 0 7 14 A 7 7 0 0 0 14 7 A 7 7 0 0 0 7 0 z M 7 1.5 A 5.5 5.5 0 0 1 12.5 7 A 5.5 5.5 0 0 1 7 12.5 A 5.5 5.5 0 0 1 1.5 7 A 5.5 5.5 0 0 1 7 1.5 z M 7 2.8691406 A 1.0399773 1.0399773 0 0 0 5.9609375 3.9101562 A 1.0399773 1.0399773 0 0 0 7 4.9492188 A 1.0399773 1.0399773 0 0 0 8.0390625 3.9101562 A 1.0399773 1.0399773 0 0 0 7 2.8691406 z M 7.6875 5.6347656 L 5.6269531 6.3222656 L 5.6269531 7.0078125 L 6.2597656 7.0078125 L 6.3125 10.443359 L 5.6269531 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/oneway-reverse.svg b/basemap/assets/icons/oneway-reverse.svg
new file mode 100644
index 00000000..702ae3ef
--- /dev/null
+++ b/basemap/assets/icons/oneway-reverse.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="5" viewBox="0 0 12 5" id="oneway-reverse">
+  <path d="M 12,3 5,3 5,5 0,2.5 5,0 5,2 12,2 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/oneway.svg b/basemap/assets/icons/oneway.svg
new file mode 100644
index 00000000..6dae35cd
--- /dev/null
+++ b/basemap/assets/icons/oneway.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="5" viewBox="0 0 12 5" id="oneway">
+  <path d="M 0,2 7,2 7,0 12,2.5 7,5 7,3 0,3 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/optician.svg b/basemap/assets/icons/optician.svg
new file mode 100644
index 00000000..31f778b0
--- /dev/null
+++ b/basemap/assets/icons/optician.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="optician">
+  <path d="M 5,3 0,6 c 0,2 0.25,5 1.25,5 L 5,11 C 6,11 6.25,7.5 6.25,7.5 6.76702,7.25 7.23298,7.25 7.75,7.5 7.75,7.5 8,11 9,11 l 3.75,0 C 13.75,11 14,8 14,6 L 9,3 C 8.521411,2.7236864 8.12726,3.746123 9,4.25 L 12,6 2,6 5,4.25 C 5.922502,3.7173932 5.364967,2.789286 5,3 z m -3.75,4.25 3.75,0 -0.5,2.5 -2.75,0 z m 7.75,0 3.75,0 -0.5,2.5 -2.75,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/outdoor.svg b/basemap/assets/icons/outdoor.svg
new file mode 100644
index 00000000..8cc16f46
--- /dev/null
+++ b/basemap/assets/icons/outdoor.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="outdoor">
+  <path d="M 5.5 1.015625 A 1.5 1.5 0 0 0 4 2.515625 A 1.5 1.5 0 0 0 5.5 4.015625 A 1.5 1.5 0 0 0 7 2.515625 A 1.5 1.5 0 0 0 5.5 1.015625 z M 10 2 L 8 3 L 11 9 L 13 8 L 10 2 z M 8 4 L 6 5 L 6.2949219 6.4707031 L 4 8 L 1 7 L 1 8 L 4 10 L 6.6464844 8.234375 L 7 10 L 10 9 L 8 4 z M 1 9 L 1 14 L 2 14 L 2 9 L 1 9 z M 10 10 L 7 11 L 5 14 L 6.8339844 14 L 8.3652344 12 L 9 14 L 11 14 L 10 10 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/outdoor_seating.svg b/basemap/assets/icons/outdoor_seating.svg
new file mode 100644
index 00000000..4b48f32c
--- /dev/null
+++ b/basemap/assets/icons/outdoor_seating.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="outdoor_seating">
+  <path d="M 7.0078125,0 0,3 V 4 H 6.5 V 8 H 2 v 1 h 4.5 v 5 h 1 V 9 H 12 V 8 H 7.5 V 4 H 14 V 3 Z M 0,6 c 0,2.6666667 0,5.333333 0,8 h 1 v -2 h 2 v 2 H 4 C 4,13 4,12 4,11 3,11 2,11 1,11 V 6 Z m 13,0 v 5 c -1,0 -2,0 -3,0 0,1 0,2 0,3 h 1 v -2 h 2 v 2 h 1 c 0,-2.666667 0,-5.3333333 0,-8 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/paint.svg b/basemap/assets/icons/paint.svg
new file mode 100644
index 00000000..2ae8993e
--- /dev/null
+++ b/basemap/assets/icons/paint.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="paint">
+  <path d="M 1,0 C 0.446,0 0,0.446 0,1 v 2 c 0,0.554 0.446,1 1,1 h 10 c 0.554,0 1,-0.446 1,-1 V 2.5 h 1 V 5 C 10.666667,5 8.3333333,5 6,5 V 7 H 5 v 7 H 8 V 7 H 7 V 6 c 2.3333333,0 4.666667,0 7,0 V 1.5 c -0.666667,0 -1.333333,0 -2,0 V 1 C 12,0.446 11.554,0 11,0 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/palace.svg b/basemap/assets/icons/palace.svg
new file mode 100644
index 00000000..bc38fcc6
--- /dev/null
+++ b/basemap/assets/icons/palace.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="palace">
+  <path d="M 12,2 11,3.5 V 4 h 3 V 3.5 L 13,2 Z M 1,2 0,3.5 V 4 H 3 V 3.5 L 2,2 Z m 3,2 h 6 V 3 L 7,0 4,3 Z M 0,5 v 8 h 5 c 0,-1 0,-3 2,-3 2,0 2,2 2,3 h 5 V 5 H 11.018051 L 11,6 H 10 L 10.03249,5 H 4.0433213 L 4,6 H 3 V 5 Z m 3,3 c 1,0 1,1 1,2 H 2 C 2,9 2,8 3,8 Z m 8,0 c 1,0 1,0.7301391 1,2 l -2,0.02539 C 9.9645368,8.7473493 10,8 11,8 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/parking.svg b/basemap/assets/icons/parking.svg
new file mode 100644
index 00000000..205fdd4d
--- /dev/null
+++ b/basemap/assets/icons/parking.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" id="parking">
+  <path d="m2,0 v12 h1.75 v-5 h4.25 a3,3.5 0 0 0 0,-7 z m1.75,1.75 h3.75 a1.58,1.75 0 0 1 0,3.5 h-3.75 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/parking_entrance_multistorey.svg b/basemap/assets/icons/parking_entrance_multistorey.svg
new file mode 100644
index 00000000..095f052b
--- /dev/null
+++ b/basemap/assets/icons/parking_entrance_multistorey.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="parking_entrance_multistorey">
+  <path d="m0,0 v10 h2 v-4 h2.3807 c3.5045,-0.023785 3.5045,-6 0,-6z m2,4 v-2 h2 c1.5622,0 1.5728,2 0,2 z M5,11 h5 v3 l4,-4 -4,-4 v3 h-5 v2 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/parking_entrance_underground.svg b/basemap/assets/icons/parking_entrance_underground.svg
new file mode 100644
index 00000000..e465c8ac
--- /dev/null
+++ b/basemap/assets/icons/parking_entrance_underground.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="parking_entrance_underground">
+  <path d="m0,0 v10 h2 v-4 h2.3807 c3.5045,-0.023785 3.5045,-6 0,-6z m2,4 v-2 h2 c1.5622,0 1.5728,2 0,2 z M8.3438,6.9297 l-1.4141,1.4141 3.3633,3.3633 -2.293,2.293 h6 v-6 l-2.293,2.293 -3.3633,-3.3633 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/parking_subtle.svg b/basemap/assets/icons/parking_subtle.svg
new file mode 100644
index 00000000..4776b2d0
--- /dev/null
+++ b/basemap/assets/icons/parking_subtle.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 7 7" height="7" width="7" id="parking_subtle">
+  <path d="m1,0 v7 h1 v-3 h2.41 a1.7,2 0 0 0 0,-4z m1,1 h2.12 a.9,1 0 0 1 0,2 h-2.12z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/parking_tickets.svg b/basemap/assets/icons/parking_tickets.svg
new file mode 100644
index 00000000..12946665
--- /dev/null
+++ b/basemap/assets/icons/parking_tickets.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="parking_tickets">
+  <path d="m0,0 v3 h1 v-2 h12 v2 h1 v-3 z m3,2 v12 h3 v-1 a1,1 0 0 1 2,0 v1 h3 v-12 h-1 v11 h-1 a2,2 0 0 0 -4,0 h-1 v-11 z m2,2 v6 h1 v-2.5 h1.6666 c 1.7777,0 1.7777,-3.5 0,-3.5 z m1,0.875 h1.4453 c0.9364,0 0.9364,1.75 0,1.75 h-1.4453 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/peak.svg b/basemap/assets/icons/peak.svg
new file mode 100644
index 00000000..f44dd3c7
--- /dev/null
+++ b/basemap/assets/icons/peak.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8" id="peak">
+  <path d="M4,1 0,8 8,8 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/perfumery.svg b/basemap/assets/icons/perfumery.svg
new file mode 100644
index 00000000..4c8ac610
--- /dev/null
+++ b/basemap/assets/icons/perfumery.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="perfumery">
+  <path d="M 14,2.5 C 14,3.6605381 12.880712,4.6013401 11.5,4.6013401 10.119288,4.6013401 9,3.6605381 9,2.5 9,1.3394619 10.119288,0.39865994 11.5,0.39865994 12.880712,0.39865994 14,1.3394619 14,2.5 Z M 8,2 10,2 10,3 8,3 Z M 3,-5.0000001e-8 l 1,0 L 4,1 3,1 Z M 1,0 2,0 2,1 1,1 Z M 1,4 2,4 2,5 1,5 Z M 3,4 4,4 4,5 3,5 Z M 4,2 5,2 5,3 4,3 Z M 2,2 3,2 3,3 2,3 Z M 0,2 1,2 1,3 0,3 Z M 6,5.4221106 8,5.39866 8,2 C 8,1 8,1 7,1 6.0336003,1.0168001 6,1 6,2 Z M 5,6 C 3,6 1.46875,9 1.46875,11 1.46875,1 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/pet.svg b/basemap/assets/icons/pet.svg
new file mode 100644
index 00000000..f181f588
--- /dev/null
+++ b/basemap/assets/icons/pet.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="pet">
+  <path d="M 9.412959,0.00215164 C 8.1693111,0.14587964 7.4631991,1.5093558 7.3733471,2.6936522 7.2264421,3.7464942 7.6860601,5.0899481 8.7918901,5.3320382 9.750208,5.4175142 10.512633,4.5171926 10.825819,3.6583651 11.195679,2.5833906 11.206482,1.147845 10.309038,0.34250684 10.059753,0.12647084 9.739671,-0.00476426 9.412959,0.00215164 z m -5.0729339,0.056367 c -1.034807,0.074858 -1.5652,1.27744256 -1.493223,2.24276386 0.0088,1.2907239 0.717612,2.7424122 2.010186,3.0488129 0.963956,0.1042 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/pharmacy.svg b/basemap/assets/icons/pharmacy.svg
new file mode 100644
index 00000000..1f024d3a
--- /dev/null
+++ b/basemap/assets/icons/pharmacy.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="pharmacy">
+  <path d="m 4,4 -2,2 0,8 10,0 0,-8 -2,-2 z m 2,2 2,0 0,2 2,0 0,2 -2,0 0,2 -2,0 0,-2 -2,0 0,-2 2,0 z M 4,0 4,3 10,3 10,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/photo.svg b/basemap/assets/icons/photo.svg
new file mode 100644
index 00000000..a80502fc
--- /dev/null
+++ b/basemap/assets/icons/photo.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="photo">
+  <path d="M 1.8994152,3.9828765 C 0,4 0,4.1964912 8.78837e-4,5.9898537 L 0.015625,12.03284 C 0,14 0,14 1.9308491,14.034854 L 12.052666,13.998501 C 14,14 14,14 14.050419,11.981131 l -0.0013,-5.9842195 C 14,4 14,4 12.052028,3.9919077 Z M 8,5.015625 c 2.209139,1e-7 4,1.790861 4,4 0,2.209139 -1.790861,4 -4,4 -2.209139,0 -4,-1.790861 -4,-4 0,-2.209139 1.790861,-4 4,-4 z m -6.0163743,-3.0343384 1.0327485,-1e-7 C 4,2 4,3 4.0315789,3.4888892 L 1.0502924,3.5216379 C 1,3 1,2 1.9836257,1.9812866 Z [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/picnic.svg b/basemap/assets/icons/picnic.svg
new file mode 100644
index 00000000..4ce800f8
--- /dev/null
+++ b/basemap/assets/icons/picnic.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="picnic">
+  <path d="m 2.9995255,2 c -1.322034,0 -1.322034,1.5 0,1.5 l 8.0000005,0 c 1.33909,0 1.338983,-1.5 0,-1.5 L 2.9995255,2 z m 1,2 -0.75,3 -2.25,0 c -1.322034,0 -1.322034,1.5 0,1.5 l 1.875,0 -0.875,3.5 1.5,0 0.875,-3.5 5.25,0 0.8750005,3.5 1.5,0 -0.875,-3.5 1.875,0 c 1.33909,0 1.338983,-1.5 0,-1.5 l -2.25,0 -0.7500005,-3 -1.5,0 0.75,3 -4.5,0 0.75,-3 -1.5,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/place-4-z7.svg b/basemap/assets/icons/place-4-z7.svg
new file mode 100644
index 00000000..b66ecbdc
--- /dev/null
+++ b/basemap/assets/icons/place-4-z7.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" id="place-4-z7">
+  <path d="m3.75,2 a 1.75,1.75 0 0 1 -3.5,0 1.75,1.75 0 1 1 3.5,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/place-4.svg b/basemap/assets/icons/place-4.svg
new file mode 100644
index 00000000..8802308b
--- /dev/null
+++ b/basemap/assets/icons/place-4.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="4" height="4" viewBox="0 0 4 4" id="place-4">
+  <path d="m3.75,2 a 1.75,1.75 0 0 1 -3.5,0 1.75,1.75 0 1 1 3.5,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/place-6-z7.svg b/basemap/assets/icons/place-6-z7.svg
new file mode 100644
index 00000000..df454016
--- /dev/null
+++ b/basemap/assets/icons/place-6-z7.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="6" height="6" viewBox="0 0 6 6" id="place-6-z7">
+  <path d="M 5.6,3 A 2.6,2.6 0 0 1 0.4,3 2.6,2.6 0 1 1 5.6,3 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/place-6.svg b/basemap/assets/icons/place-6.svg
new file mode 100644
index 00000000..dcc23a1b
--- /dev/null
+++ b/basemap/assets/icons/place-6.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="6" height="6" viewBox="0 0 6 6" id="place-6">
+  <path d="M 5.6,3 A 2.6,2.6 0 0 1 0.4,3 2.6,2.6 0 1 1 5.6,3 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/place-capital-6.svg b/basemap/assets/icons/place-capital-6.svg
new file mode 100644
index 00000000..bd491747
--- /dev/null
+++ b/basemap/assets/icons/place-capital-6.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="6" height="6" viewBox="0 0 6 6" id="place-capital-6">
+  <path d="m3,.5 a2.5,2.5 0 0 1 0,5 2.5,2.5 0 1 1 0,-5 z m0,2 a.5,.5 0 0 0 0,1 .5,.5 0 0 0 0,-1z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/place-capital-8.svg b/basemap/assets/icons/place-capital-8.svg
new file mode 100644
index 00000000..6ea08f7a
--- /dev/null
+++ b/basemap/assets/icons/place-capital-8.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8" id="place-capital-8">
+  <path d="m 7.5,4 a 3.5,3.5 0 0 1 -7,0 3.5,3.5 0 1 1 7,0 z"/>
+  <path d="m 5.5,4 a 1.5,1.5 0 0 1 -3,0 1.5,1.5 0 1 1 3,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/place_of_worship.svg b/basemap/assets/icons/place_of_worship.svg
new file mode 100644
index 00000000..b8c76d00
--- /dev/null
+++ b/basemap/assets/icons/place_of_worship.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="place_of_worship">
+  <path d="m 6.4996451,0 c -0.828427,0 -1.5,0.6715729 -1.5,1.5 0,0.8284271 0.671573,1.5 1.5,1.5 0.828428,0 1.5,-0.6715729 1.5,-1.5 0,-0.8284271 -0.671573,-1.5 -1.5,-1.5 z M 1.1674331,4.573171 2.4996451,7 l 3,-1 1,4 -2,2 c -0.271186,0.305085 -0.466101,0.45872 -0.5,1 0,1 1,1 1,1 l 5.9999999,0 c 0,0 1,0 1,-1 0,-1 -1,-1 -1,-1 l -2.9999999,0 1,-1 c 1,-1 0.928985,-1.472666 0.8125,-2 l -0.8125,-4 c -0.23939,-0.8934168 -0.862211,-1.3296509 -2,-1.15 l -1,0.15 -3,1.5 -1,-1.5 C 1.5584831,3.412383 0 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/plaque.svg b/basemap/assets/icons/plaque.svg
new file mode 100644
index 00000000..2bb05942
--- /dev/null
+++ b/basemap/assets/icons/plaque.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" id="plaque">
+  <path d="m1.5,1 a1.5,1.5 0 0 0 -1.5,1.5 v7 a1.5,1.5 0 0 0 1.5,1.5 h9 a1.5,1.5 0 0 0 1.5,-1.5 v-7 a1.5,1.5 0 0 0 -1.5,-1.5 z m0,1 a.5,.5 0 0 1 0,1 a.5,.5 0 0 1 0,-1 z m0,7 a.5,.5 0 0 1 0,1 a.5,.5 0 0 1 0,-1 z m9,0 a.5,.5 0 0 1 0,1 a.5,.5 0 0 1 0,-1 z m0,-7 a.5,.5 0 0 1 0,1 a.5,.5 0 0 1 0,-1 z m-6.5,1 h1 v1 h-1 z m2,0 h2 v1 h-2 z m-4,2 h8 v1 h-8 z m2,2 h4 v1 h-4 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/playground.svg b/basemap/assets/icons/playground.svg
new file mode 100644
index 00000000..8696db1f
--- /dev/null
+++ b/basemap/assets/icons/playground.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="playground">
+  <path d="M 3.40625,1 C 2.65262,1.047193 1.998524,1.7448953 2,2.5 2.000287,3.2852156 2.714784,3.9994517 3.5,3.9994517 4.285216,3.9994517 4.999713,3.2852156 5,2.5 5.0016,1.6823545 4.222298,0.9488955 3.40625,1 z m 8,3 C 10.65262,4.0471927 9.998524,4.7448953 10,5.5 c 2.87e-4,0.7852156 0.714784,1.4994517 1.5,1.4994517 0.785216,0 1.499713,-0.7142361 1.5,-1.4994517 C 13.001599,4.6823545 12.222298,3.9488956 11.40625,4 z M 3,4.5 C 1.52901,4.5 1.134165,6.3734067 1.03125,7.375 L 0,7 0,8 5.96875,1 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/police.svg b/basemap/assets/icons/police.svg
new file mode 100644
index 00000000..a1529741
--- /dev/null
+++ b/basemap/assets/icons/police.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="police">
+  <path d="M 5,0 4,1 4,2 10,2 10,1 9,0 z M 4,3 C 3.9667,3.168726 4,3.3395259 4,3.5185186 4,4.9503556 5.61931,6 7,6 8.38069,6 10,4.9503556 10,3.5185186 10,3.3395259 10,3 10,3 z M 4,7 C 2.581094,7 2.01415,8.876578 2,10 L 2,14 3.53125,14 9,7 z M 10.5,7 5.03125,14 12,14 12,10 C 12,8.876474 11.727158,7 10.5,7 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/post_box.svg b/basemap/assets/icons/post_box.svg
new file mode 100644
index 00000000..82a34546
--- /dev/null
+++ b/basemap/assets/icons/post_box.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" id="post_box">
+  <path d="m1,0 a1,1 0 0 0 -1,1 v1 a1,1 0 0 0 1,1 v-2 h10 v2 a1,1 0 0 0 1,-1 v-1 a1,1 0 0 0 -1,-1 z M 7.5,12 2,12 2,2 7.5,2 4.5,7 Z M 10,12 9,12 6,7 9,2 10,2 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/post_office.svg b/basemap/assets/icons/post_office.svg
new file mode 100644
index 00000000..37307dfe
--- /dev/null
+++ b/basemap/assets/icons/post_office.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="post_office">
+  <path d="m 0,2 0,1 7,4 7,-4 0,-1 z m 0,3 0,7 14,0 0,-7 -7,4 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/power_tower.svg b/basemap/assets/icons/power_tower.svg
new file mode 100644
index 00000000..3a88b812
--- /dev/null
+++ b/basemap/assets/icons/power_tower.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="7" height="7" viewBox="0 0 7 7" id="power_tower">
+  <path d="M 0.625,1 6,6.375 6.375,6 1,0.625 z"/>
+  <path d="M 6,0.625 0.625,6 1,6.375 6.375,1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/power_tower_small.svg b/basemap/assets/icons/power_tower_small.svg
new file mode 100644
index 00000000..96982e17
--- /dev/null
+++ b/basemap/assets/icons/power_tower_small.svg
@@ -0,0 +1,2 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="3" height="3" viewBox="0 0 3 3" id="power_tower_small"/>
\ No newline at end of file
diff --git a/basemap/assets/icons/prison.svg b/basemap/assets/icons/prison.svg
new file mode 100644
index 00000000..ba599b35
--- /dev/null
+++ b/basemap/assets/icons/prison.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="prison">
+  <path d="M 0,0 0,14 14,14 14,0 0,0 z m 1,1 3,0 0,12 -0.5,0 0,-4.21875 C 3.200928,9.13501 3,9.5625 3,10 L 3,13 1,13 1,1 z m 4,0 4,0 0,12 -0.5,0 0,-5 -3,0 0,5 L 5,13 5,1 z m 5,0 3,0 0,12 -2,0 0,-3 C 11,9.5625 10.799072,9.13501 10.5,8.78125 L 10.5,13 10,13 10,1 z M 7,3 C 6.399152,3 5.866615,3.2680514 5.5,3.6875 l 0,2.625 C 5.866615,6.7319486 6.399152,7 7,7 7.600847,7 8.133385,6.7319486 8.5,6.3125 l 0,-2.625 C 8.133385,3.2680514 7.600847,3 7,3 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/pub.svg b/basemap/assets/icons/pub.svg
new file mode 100644
index 00000000..5c811963
--- /dev/null
+++ b/basemap/assets/icons/pub.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" id="pub">
+  <path d="m1,0 2,12 6,0 2,-12 z m 1.25,1 7.5,0 -0.33,2 -6.86,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/public_bath.svg b/basemap/assets/icons/public_bath.svg
new file mode 100644
index 00000000..72f622a9
--- /dev/null
+++ b/basemap/assets/icons/public_bath.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="public_bath">
+  <path d="M 1.65421264,11.0000406 C 1.2278399,11.0000406 0.597367898,11.3624969 0.016138571,11.650988 L 0,13.6777956 C 0.60987926,13.3856384 1.26337235,13.0000135 1.65421378,13.0000135 2.32305249,13.0000135 3.59890634,14 4.30708821,14 4.93781155,14 6.28651045,13.0000135 6.95996245,13.0000135 7.62880117,13.0000135 8.97844268,14 9.6128367,14 10.2816765,14 11.6362175,13.0000135 12.2657132,13.0000135 12.6597037,13.0000135 13.3377157,13.3917234 13.9538671,13.6848255 L 14,11.6613061 C 13.4001 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/public_bookcase.svg b/basemap/assets/icons/public_bookcase.svg
new file mode 100644
index 00000000..8d1ec03d
--- /dev/null
+++ b/basemap/assets/icons/public_bookcase.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="public_bookcase">
+  <path d="M 7 0 L 0 2 L 0 3 L 7 1 L 14 3 L 14 2 L 7 0 z M 3.5371094 3.5722656 C 3.3811324 3.5784856 3.2261866 3.6093727 3.0722656 3.6679688 L 3.0722656 9.8886719 C 3.0722656 9.8886719 5.5764507 9.7925362 6.2148438 12.222656 L 6.2148438 5.6894531 C 5.7277087 4.6741673 4.6289524 3.5287194 3.5371094 3.5722656 z M 6.2148438 12.222656 C 4.5943077 10.983292 2.2851562 10.667969 2.2851562 10.667969 L 2.2851562 4.7578125 L 1.5 4.4453125 L 1.5 11.445312 L 6.2148438 13 L 7.7851562 13 L 12.5 11.445 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/public_transport_tickets.svg b/basemap/assets/icons/public_transport_tickets.svg
new file mode 100644
index 00000000..8daadd58
--- /dev/null
+++ b/basemap/assets/icons/public_transport_tickets.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="public_transport_tickets">
+  <path d="m0,0 v3 h1 v-2 h12 v2 h1 v-3 z m3,2 v12 h3 v-1 a1,1 0 0 1 2,0 v1 h3 v-12 h-1 v6 h-6 v-6 z m1,7 h6 v4 h-1 a2,2 0 0 0 -4,0 h-1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/recycling.svg b/basemap/assets/icons/recycling.svg
new file mode 100644
index 00000000..25d96b3f
--- /dev/null
+++ b/basemap/assets/icons/recycling.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="recycling">
+  <path d="M 5.111113,8.690628 3.513352,5.804047 0.3,5.804047 1.60621,6.5880837 0.798678,8.031102 c -0.06887,0.130859 -0.103304,0.267511 -0.103301,0.409961 -3e-6,0.142456 0.03443,0.27911 0.103301,0.40996 l 1.271077,2.298282 c 0.05733,-0.166376 0.11466,-0.309011 0.171995,-0.427902 L 3.82273,7.906591 5.111113,8.690628 z m -2.38799,2.316224 c -0.09194,0.154416 -0.137914,0.320611 -0.13791,0.498585 -4e-6,0.273307 0.09456,0.504931 0.283685,0.694868 0.189119,0.189939 0.415298,0.284906 0.678537, [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/rental_bicycle.svg b/basemap/assets/icons/rental_bicycle.svg
new file mode 100644
index 00000000..710a8184
--- /dev/null
+++ b/basemap/assets/icons/rental_bicycle.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="rental_bicycle">
+  <path d="M 3.5,0 C 2.119288,0 1,1.1192881 1,2.5 1,3.8807119 2.119288,5 3.5,5 4.425342,5 5.223985,4.4972377 5.65625,3.75 L 7,3.75 l 1,-1 1,1 1,-1 1,1 0.5,0 L 13,2.5 11.5,1.25 5.65625,1.25 C 5.223985,0.5027623 4.425342,0 3.5,0 z m -1,2 C 2.776142,2 3,2.2238576 3,2.5 3,2.7761424 2.776142,3 2.5,3 2.223858,3 2,2.7761424 2,2.5 2,2.2238576 2.223858,2 2.5,2 z m 5.5,3.4375 0.03125,1 L 9,7 9,8 5.25,8 5,8 5,7 5.5,7 c 1,0 1,-1 0,-1 l -2,0 c -1,0 -1,1 0,1 L 4,7 4,8 3.4375,9.375 c -0.04165,-0.0023 - [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/rental_car.svg b/basemap/assets/icons/rental_car.svg
new file mode 100644
index 00000000..776f4365
--- /dev/null
+++ b/basemap/assets/icons/rental_car.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="rental_car">
+  <path d="M 3.5,0 C 2.119288,0 1,1.1192881 1,2.5 1,3.8807119 2.119288,5 3.5,5 4.425342,5 5.223985,4.4972377 5.65625,3.75 L 7,3.75 l 1,-1 1,1 1,-1 1,1 0.5,0 L 13,2.5 11.5,1.25 5.65625,1.25 C 5.223985,0.5027623 4.425342,0 3.5,0 z m -1,2 C 2.776142,2 3,2.2238576 3,2.5 3,2.7761424 2.776142,3 2.5,3 2.223858,3 2,2.7761424 2,2.5 2,2.2238576 2.223858,2 2.5,2 z M 4,6 3,9 C 2.527334,9 2,9.384295 2,10 l 0,3 1,0 c 0,0 0,1 1,1 1,0 1,-1 1,-1 l 4,0 c 0,0 0,1 1,1 1,0 1,-1 1,-1 l 1,0 0,-3 C 12,9.479394  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/restaurant.svg b/basemap/assets/icons/restaurant.svg
new file mode 100644
index 00000000..c3afa7d8
--- /dev/null
+++ b/basemap/assets/icons/restaurant.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="restaurant">
+  <path d="M 1.5 0 C 1.25 0 1 0.25 1 0.75 L 1 7 C 1 8 2.75 8 2.75 9 L 2.25 14 L 4.75 14 L 4.25 9 C 4.25 8 6 8 6 7 L 6 0.75 C 6 -0.25 5 -0.25 5 0.75 L 5 6 C 5 6.5632885 4 6.5632884 4 6 L 4 0.75 C 4 -0.25 3 -0.25 3 0.75 L 3 6 C 3 6.5273339 2 6.5273339 2 6 L 2 0.75 C 2 0.25 1.75 0 1.5 0 z M 10 0 C 9 0 7 2 7 5 C 7 8 9.25 9 9.25 9 L 8.75 14 L 11.25 14 L 10.75 9 C 10.75 9 13 8 13 5 C 13 2 11 0 10 0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/saddle.svg b/basemap/assets/icons/saddle.svg
new file mode 100644
index 00000000..977bb739
--- /dev/null
+++ b/basemap/assets/icons/saddle.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8" id="saddle">
+  <path d="M0,3 0,8 8,8 8,3 4,5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/sauna.svg b/basemap/assets/icons/sauna.svg
new file mode 100644
index 00000000..1313c14a
--- /dev/null
+++ b/basemap/assets/icons/sauna.svg
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="sauna">
+  <path d="m0.82924 10.095h3.3722l-0.44665 3.9051h-2.5459z"/>
+  <path d="m1.3678 0.069465c-3.9978 2.6001 3.2253 3.0269-1.2178 6.1111l0.87772-0.01179c4.1676-3.2915-3.0949-3.5323 1.3044-6.1262z"/>
+  <path d="m4.4017 0.070365c-3.9978 2.6001 3.2253 3.0269-1.2178 6.1111l0.87772-0.01179c4.1676-3.2915-3.0949-3.5323 1.3044-6.1262z"/>
+  <path d="m 12.012084,4.5000232 1.948347,5.4212786 c 0.124144,0.3454322 -0.05394,0.7236182 -0.399293,0.8479502 -0.345352,0.124332 -0.723323,-0.05367 -0.847467,-0.399099 L 10.765324,4.9488743 c -0.124145,-0.3454327 0.05394,-0.7236185 0.399292,-0.8479503 0.345353,-0.1243317 0.723323,0.053667 0.847468,0.3990992 z m -2.6535202,5.0144122 3.9987192,0.00719 c 0.3563,6.409e-4 0.642957,0.2879967 0.642729,0.6442966 v 2e-5 c -2.28e-4,0.356299 -0.287252,0.642624 -0.643552,0.641983 l -3.9987191,-0.0 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/seafood.svg b/basemap/assets/icons/seafood.svg
new file mode 100644
index 00000000..6457141a
--- /dev/null
+++ b/basemap/assets/icons/seafood.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="seafood">
+  <path d="M 6,3 C 3,3 0,5 0,7 0,9 3,11 6,11 8.2433092,10.977189 11,9 11,7 11,5 8,3 6,3 Z m 5,4 c 0,2 1.634385,3.274211 3,4 C 14,9 13.333333,8.3333333 13,7 13.333333,5.6666667 14,5 14,3 12.771491,3.6648531 11,5 11,7 Z M 2.9824219,5 A 1,1 0 0 1 4,5.9765625 L 4,6 A 1,1 0 0 1 3.0058594,7 1,1 0 0 1 2,6.0117188 1,1 0 0 1 2.9824219,5 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/second_hand.svg b/basemap/assets/icons/second_hand.svg
new file mode 100644
index 00000000..465ebb01
--- /dev/null
+++ b/basemap/assets/icons/second_hand.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="second_hand">
+  <path d="M 5 0 C 4 0 4 0 4 1 L 4.0097656 4 L 1 4 L 1 13 C 1 14 1 14 2 14 L 12 14 C 13 14 13 14 13 13 L 13 4 L 10.039062 4 L 10 1 C 10 0 10 0 9 0 L 5 0 z M 5 1 L 9 1 L 9 4 L 5 4 L 5 1 z M 7.5058594 5 L 7.7089844 5.0371094 C 9.127416 5.2898435 10.312583 6.2814255 10.802734 7.6289062 C 10.92386 7.9618667 10.997929 8.3050881 11.027344 8.6464844 C 11.10874 9.5911796 10.79949 10.505123 10.261719 11.275391 L 10.628906 11.275391 C 10.896171 11.275879 11.117833 11.495542 11.117188 11.761719 L 1 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/shelter.svg b/basemap/assets/icons/shelter.svg
new file mode 100644
index 00000000..c7bc1864
--- /dev/null
+++ b/basemap/assets/icons/shelter.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="shelter">
+  <path d="M 4.0078125 0 L 3.0078125 2 L 3.4765625 2 L 4.5234375 0 L 4.0078125 0 z M 8.0078125 0 L 7.0078125 2 L 7.4765625 2 L 8.5234375 0 L 8.0078125 0 z M 12.007812 0 L 11.007812 2 L 11.476562 2 L 12.523438 0 L 12.007812 0 z M 1 2 L 0 4 L 0.46875 4 L 1.5175781 2 L 1 2 z M 5.0078125 2 L 4.0078125 4 L 4.4765625 4 L 5.5234375 2 L 5.0078125 2 z M 9.0078125 2 L 8.0078125 4 L 8.4765625 4 L 9.5234375 2 L 9.0078125 2 z M 13.007812 2 L 12.007812 4 L 12.476562 4 L 13.523438 2 L 13.007812 2 z M 2 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/shintoist.svg b/basemap/assets/icons/shintoist.svg
new file mode 100644
index 00000000..bff1c811
--- /dev/null
+++ b/basemap/assets/icons/shintoist.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="shintoist">
+  <path d="m 0,0 c 0,1 0.654545,1.639242 1,1.984387 0.345455,0.345145 0.842678,0.2121799 0.842678,0.4724826 0,0 0.157322,0.5275173 0.657322,0.5275173 l 1.25,0 c 0,0.2876366 0.25,0.5 0.25,0.5 0,0 -0.25,0.1404543 -0.25,0.5000002 l -1.25,0 c -0.5,0 -0.5,0.2499999 -0.5,0.5 0,0.5273339 0,0.9999999 0,0.9999999 0,0.2396973 0.2311,0.5 0.5,0.5 0.2689,0 1.25,0 1.25,0 l 0,1 -0.75,0 c 0,0.406026 0.270606,0.731586 0.75,1 0,0.316353 0,5.5 0,5.5 0,0.658649 1.5,0.715727 1.5,0 l 0,-7.5 3.5,0 0,7.5 c 0,0. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/shoes.svg b/basemap/assets/icons/shoes.svg
new file mode 100644
index 00000000..79487d1f
--- /dev/null
+++ b/basemap/assets/icons/shoes.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="shoes">
+  <path d="M 0.75,3 C 0.75,3 0,5.25 0,8.25 l 5.5,0 c 0.5,0 1.306389,1 1.3,1 l 7.2,0 C 14,6.25 11,6 10,6 L 8,6 C 7,4 5,3 5,3 L 4.75,3 C 4,4.508412 2.016472,4.508412 1,3 z M 5.5,4 C 5.776142,4 6,4.2238577 6,4.5 6,4.7761423 5.776142,5 5.5,5 5.223858,5 5,4.7761423 5,4.5 5,4.2238577 5.223858,4 5.5,4 z m 1,1 C 6.776142,5 7,5.2238577 7,5.5 7,5.7761423 6.776142,6 6.5,6 6.223858,6 6,5.7761423 6,5.5 6,5.2238577 6.223858,5 6.5,5 z M 0,9 l 0,2 5.25,0 0,-2 z m 7.3,1 c 0,0 0.7,1 1.2,1 l 5.5,0 0,-1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/shower.svg b/basemap/assets/icons/shower.svg
new file mode 100644
index 00000000..167fdfdb
--- /dev/null
+++ b/basemap/assets/icons/shower.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="shower">
+  <path d="M 6.8417969 0 C 6.5080632 0.0089554703 6.214521 0.24656385 6.1503906 0.58789062 L 5.8476562 2.1933594 C 4.6012255 2.2351741 3.5074523 3.1334887 3.2675781 4.4101562 L 8.6171875 5.4160156 C 8.8407092 4.2264228 8.2526189 3.0728712 7.2441406 2.5234375 L 7.4375 1.5 L 14 1.5 L 14 0 L 6.8417969 0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/shrine.svg b/basemap/assets/icons/shrine.svg
new file mode 100644
index 00000000..4525e291
--- /dev/null
+++ b/basemap/assets/icons/shrine.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="shrine">
+  <path d="M 7 0 L 5 3 L 5 12 L 9 12 L 9 3 L 7 0 z M 7 3.9980469 A 1 1 0 0 1 8 4.9980469 A 1 1 0 0 0 8 5 L 8 8 L 6 8 L 6 5 A 1 1 0 0 0 6 4.9980469 A 1 1 0 0 1 7 3.9980469 z M 4 13 L 4 14 L 10 14 L 10 13 L 4 13 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/sikhist.svg b/basemap/assets/icons/sikhist.svg
new file mode 100644
index 00000000..c3ab5613
--- /dev/null
+++ b/basemap/assets/icons/sikhist.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="sikhist">
+  <path d="M 6.984334,0 5.981723,1 C 6.044283,1.4367914 6.060103,1.7749535 6.10705,2.15625 4.882655,2.5360844 3.976501,3.653806 3.976501,5 c 0,1.3565494 0.922901,2.472798 2.16188,2.84375 C 6.087361,8.219854 6.053031,8.57327 5.981723,9 l 0.501306,0.5 0,0.40625 C 5.561404,9.285538 4.581513,8.595246 3.976501,8 1.943686,6 2.480323,2.5 4.979112,1 2.980081,1.5 1,3.3084098 1,6 c 0,3 2.976501,4 2.976501,5 l 1.002611,-1 1.284596,0.71875 C 5.649538,11.098319 4.979112,11.5 4.979112,11.5 l 0.501306, [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/slipway.svg b/basemap/assets/icons/slipway.svg
new file mode 100644
index 00000000..9781b712
--- /dev/null
+++ b/basemap/assets/icons/slipway.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="slipway">
+  <path d="M 6.546875,1.9990235 5.859375,4.4091797 1,3.022461 1.6875,5.7705078 11.966797,8.7041016 14,6.7314454 9.140625,5.3466797 9.828125,2.9345704 Z M 0,7.0009766 v 5.0000004 h 14 v -1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/social_facility.svg b/basemap/assets/icons/social_facility.svg
new file mode 100644
index 00000000..49df44cb
--- /dev/null
+++ b/basemap/assets/icons/social_facility.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="social_facility">
+  <path d="M 7.0078125 0.041015625 C 6.1796632 0.041015535 5.5082053 0.6932389 5.5078125 1.4980469 C 5.507095 2.3036176 6.1788781 2.9570315 7.0078125 2.9570312 C 7.8367469 2.9570315 8.50853 2.3036176 8.5078125 1.4980469 C 8.5074197 0.6932389 7.8359618 0.041015535 7.0078125 0.041015625 z M 1.5 1.5 A 0.5 0.5 0 0 0 1 2 L 1 8 C 1 9 0.99942295 9 2.1679688 10 C 2.999423 11 3 11 3 12 L 3 14 L 6 14 L 6 11 C 6 10.210871 5.5867649 10.262622 5 10 C 3.2611238 9 2 8 2 7 L 2 2 A 0.5 0.5 0 0 0 1.5 1.5  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/sports.svg b/basemap/assets/icons/sports.svg
new file mode 100644
index 00000000..4c45d45d
--- /dev/null
+++ b/basemap/assets/icons/sports.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="sports">
+  <path d="M 5.5433072,1.2755905 A 1.2677165,1.2598426 0 0 1 4.2755908,2.5354332 1.2677165,1.2598426 0 0 1 3.0078741,1.2755905 1.2677165,1.2598426 0 0 1 4.2755908,0.01574798 1.2677165,1.2598426 0 0 1 5.5433072,1.2755905 Z M 12.395462,9.8346468 9.714385,10.523756 c -0.1095105,0.02815 -0.3520751,0.0033 -0.4439036,-0.01932 C 9.0351441,10.4588 8.9674746,10.349486 8.8753807,10.235178 L 7.6060635,8.1436871 6.0103144,9.8565596 6.6546096,13.059105 c 0.020606,0.06867 0.030909,0.125809 0.030909,0. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/spring.svg b/basemap/assets/icons/spring.svg
new file mode 100644
index 00000000..06b83494
--- /dev/null
+++ b/basemap/assets/icons/spring.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="12" height="12" viewBox="0 0 12 12" id="spring">
+  <path d="m6,1.3125 a4.6875,4.6875 0 0 0 0,9.375 a4.6875,4.6875 0 0 0 0,-9.375z m0,2.625 a2.0625,2.0625 0 0 1 0,4.125 a2.0625,2.0625 0 0 1 0,-4.125z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/stationery.svg b/basemap/assets/icons/stationery.svg
new file mode 100644
index 00000000..7a61c541
--- /dev/null
+++ b/basemap/assets/icons/stationery.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="stationery">
+  <path d="M 5,10 C 5,9.2808818 5,4.6666667 5,2 5,1 5,1 6,1 l 1,0 c 1,0 1,0 1,1 l -0.010634,7.0084269 -1,0 L 7,3 6,3 C 6,4.6666667 5.9893664,7.3417602 5.9893664,9.0084269 5.9893664,10.008427 5.9893679,9.991392 7,10 l 0.9893664,0.0084 c 1,0 1,0 1,-1.0000001 L 9,2 C 9.0030345,2.3020714e-6 9,0 7,0 6,0 7,0 6,0 4,0 4,0 4,2 4,5 4,7 4,10 4,11 4,11 6.654504,13.668971 6.8617369,13.968351 7,14 7.5370581,14 8,14 8.195636,14.016316 8.5031967,13.68551 11,11 11,11 11,10 11,6.6666667 11,5.3333333 11,2  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/statue.svg b/basemap/assets/icons/statue.svg
new file mode 100644
index 00000000..73901d24
--- /dev/null
+++ b/basemap/assets/icons/statue.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="statue">
+  <path d="M 7 0 C 6.4264737 0 5.9609375 0.46553614 5.9609375 1.0390625 C 5.9609375 1.612589 6.4264736 2.0761719 7 2.0761719 C 7.5735264 2.0761719 8.0390625 1.612589 8.0390625 1.0390625 C 8.0390625 0.46553614 7.5735265 0 7 0 z M 5.9609375 2.7695312 C 5.5958601 2.7695312 5.2695312 3.1012631 5.2695312 3.4609375 C 5.2695312 4.1532453 6.4804687 6.2426478 6.4804688 6.9238281 L 6.4804688 9 L 7.5195312 9 L 7.5195312 6.9238281 C 7.5195312 6.2561271 8.7304688 4.1532453 8.7304688 3.4609375 C 8.730 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/stile.svg b/basemap/assets/icons/stile.svg
new file mode 100644
index 00000000..72533aec
--- /dev/null
+++ b/basemap/assets/icons/stile.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="10" height="10" viewBox="0 0 10 10" id="stile">
+  <path d="m2,.5 a.5,.5 0 0 1 1,0 v3.5 h4 v-3.5 a.5,.5 0 0 1 1,0 v9.5 h-1 v-1 h-4 v1 h-1 z m1,4.5 v1 h4 v-1 z m0,2 v1 h4 v-1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/stone.svg b/basemap/assets/icons/stone.svg
new file mode 100644
index 00000000..885374e1
--- /dev/null
+++ b/basemap/assets/icons/stone.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="stone">
+  <path d="M 6,2 C 1.5761781,1.9981574 0,3.9915246 0,7.9389842 0,11 3,12 7.738275,11.99037 c 3.993429,0 6.278049,-2.4152505 6.261719,-4.5667636 C 14,5 9,2 6,2 Z M 4,4 H 5 V 5 H 4 Z M 6,4 H 9 V 5 H 6 Z M 2,7 h 9 V 8 H 2 Z m 2,2 h 5 v 1 H 4 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/storage_tank.svg b/basemap/assets/icons/storage_tank.svg
new file mode 100644
index 00000000..fe772eab
--- /dev/null
+++ b/basemap/assets/icons/storage_tank.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="storage_tank">
+  <path d="M 5.4511719 0 C 4.1792667 -0.0065223625 2.9230628 0.6531739 2 2 L 2 14 L 9 14 L 9 6 L 11 6 L 11 14 L 12 14 L 12 2 L 11 2 L 11 4.9414062 L 9 4.9414062 L 9 2 C 8.0106834 0.67926335 6.723077 0.0065223625 5.4511719 0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/supermarket.svg b/basemap/assets/icons/supermarket.svg
new file mode 100644
index 00000000..57614fd3
--- /dev/null
+++ b/basemap/assets/icons/supermarket.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="supermarket">
+  <path d="m0 3 1 6 9 0.9v1.1h-8.5a0.5 0.5 0 1 0 0 1h1.0202a1 1 0 1 0 1.9596 0h4.0404a1 1 0 1 0 1.9596 0h0.5202v-2l1.5846-7.3946 1.037-0.36342a0.5534 0.5534 0 1 0-0.38487-1.0371l-1.4687 0.54508-0.268 1.25z M5.5 7h-1.5v-1.5h1.5z M7.5 7h-1.5v-1.5h1.5z M9.5 7h-1.5v-1.5h1.5z M10.652 7h-0.65172v-1.5h0.96886z M1.3458 5l-0.17878-1h2.333v1z M10.25 8.9l-0.25-0.023952v-1.376h0.546z M9.5 8.8281l-1.5-0.14371v-1.1844h1.5z M7.5 8.6365l-1.5-0.14371v-0.99282h1.5z M5.5 8.4449l-1.5-0.14371v-0.8012h1.5z M1 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/taoist.svg b/basemap/assets/icons/taoist.svg
new file mode 100644
index 00000000..6a63c340
--- /dev/null
+++ b/basemap/assets/icons/taoist.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="taoist">
+  <path d="m 7,14 c 3.858078,0 7,-3.169117 7,-7 C 14,3.169117 10.877274,0 7,0 3.122726,0 0,3.13993 0,7 c 0,3.860071 3.141922,7 7,7 z M 7,13 C 3.680369,13 1,10.319631 1,7 1,3.680369 3.680369,1 7,1 10,1 11,6.4793944 7,7 3,7.520606 4.084746,13 7,13 z M 7,11 C 6.447715,11 6,10.552284 6,10 6,9.447716 6.447715,9 7,9 7.552285,9 8,9.447716 8,10 8,10.552284 7.552285,11 7,11 z M 7,5 C 7.552285,5 8,4.552285 8,4 8,3.447715 7.552285,3 7,3 6.447715,3 6,3.447715 6,4 6,4.552285 6.447715,5 7,5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/taxi.svg b/basemap/assets/icons/taxi.svg
new file mode 100644
index 00000000..97408a82
--- /dev/null
+++ b/basemap/assets/icons/taxi.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="taxi">
+  <path d="M 5.96875,0 C 5.429431,0 5,0.4876472 5,1 L 4.96875,2 3,2 1.75,6 C 0.989697,6 0,6.4966359 0,8 l 0,4 2,0 0,1 c 0,0 0,1 1,1 1,0 1,-1 1,-1 L 4,12 10,11.96875 10,13 c 0,0 0,1 1,1 1,0 1,-1 1,-1 l 0,-1 2,0 0,-4 C 14,6.4726661 13,6 12,6 L 11,2 9,2 9,1 C 9,0.4337153 8.566285,0 8,0 L 5.96875,0 z M 6,1 8,1 8,2 6,2 6,1 z M 4,3.5 10,3.5 10.59375,6 3.3125,6 4,3.5 z M 3,8 C 3.552285,8 4,8.447715 4,9 4,9.552285 3.552285,10 3,10 2.447715,10 2,9.552285 2,9 2,8.447715 2.447715,8 3,8 z m 8,0 c 0. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tea.svg b/basemap/assets/icons/tea.svg
new file mode 100644
index 00000000..07e952fc
--- /dev/null
+++ b/basemap/assets/icons/tea.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tea">
+  <path d="M 6.8320312,1.8984375 A 1.2055479,0.94874388 0 0 0 5.6269531,2.8476562 1.2055479,0.94874388 0 0 0 6.4667969,3.7519531 C 5.0890082,3.8629576 3.899133,4.5711593 3.2011719,5.6171875 c -0.014037,-0.00629 -0.026946,-0.019665 -0.041016,-0.025391 -0.648797,-0.26404 -1.6220121,-0.3965713 -2.25195308,0.011719 -0.61338999,0.39758 -0.87117,1.1088738 -0.90624999,1.9960938 -0.07125,1.80296 1.28012817,2.1642531 2.62695307,2.3457031 0.109103,0.014698 0.2167003,0.00673 0.3242188,0.00195 0.295 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/telephone.svg b/basemap/assets/icons/telephone.svg
new file mode 100644
index 00000000..2440b79b
--- /dev/null
+++ b/basemap/assets/icons/telephone.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg width="12" height="12" version="1.1" viewBox="0 0 12 12" xmlns="http://www.w3.org/2000/svg" id="telephone">
+  <path d="m1,7 c-0.98818,0.98818 -1.44,2.5736 -0.45127,3.553 l0.45127,0.44703 3,-3 v-1.5 l2.5,-2.5 h1.5 l3,-3 -0.51059,-0.48729 c-0.97553,-0.93101 -2.5086,-0.49348 -3.4894,0.48729 z m0.54515,4.5376 0.33879,0.35289 s0.85017,0.07591 1.2889,-0.35617 l1.3937,-1.3725 c0.38187,-0.40198 0.30732,-1.3046 0.30732,-1.3046 l-0.33879,-0.35289 z m7.0079,-7.0172 0.33879,0.35289 s0.85017,0.07591 1.2889,-0.35617 l1.3937,-1.3725 c0.38187,-0.40198 0.30732,-1.3046 0.30732,-1.3046 l-0.33879,-0.35289 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/telescope_dish.svg b/basemap/assets/icons/telescope_dish.svg
new file mode 100644
index 00000000..7cd5572d
--- /dev/null
+++ b/basemap/assets/icons/telescope_dish.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="telescope_dish">
+  <path d="M 4.0507812 0 C 1.5789894 2.539636 1.5789894 6.6576312 4.0507812 9.1972656 C 6.5225734 11.736904 10.528207 11.736904 13 9.1972656 C 12.343388 8.5209988 12.562756 8.7485174 12.095703 8.2675781 L 12.447266 1.8925781 A 1 1 0 0 0 13 1 A 1 1 0 0 0 12 0 A 1 1 0 0 0 11.103516 0.55859375 L 4.9648438 0.93945312 C 4.513421 0.47588035 4.6907678 0.6575524 4.0507812 0 z M 10.777344 1.5722656 L 8.1425781 4.2070312 C 7.8109554 3.8671766 6.6384106 2.6582437 5.8808594 1.8808594 L 10.777344 1.5 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/telescope_dome.svg b/basemap/assets/icons/telescope_dome.svg
new file mode 100644
index 00000000..3cb54906
--- /dev/null
+++ b/basemap/assets/icons/telescope_dome.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="telescope_dome">
+  <path d="M 6 0 L 6 1 L 7 1 A 6 6 0 0 1 13 7 L 13 8 L 14 8 L 14 7 A 7 7 0 0 0 12.599609 2.8144531 L 14 1.4140625 L 12.585938 0 L 11.185547 1.4003906 A 7 7 0 0 0 7 0 L 6 0 z M 6 2 A 5.9999999 6 0 0 0 0 8 L 12 8 A 5.9999999 6 0 0 0 6 2 z M 0 9 L 0 14 L 12 14 L 12 9 L 0 9 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/terminal.svg b/basemap/assets/icons/terminal.svg
new file mode 100644
index 00000000..91b4ffec
--- /dev/null
+++ b/basemap/assets/icons/terminal.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="terminal">
+  <path d="M 3 0 L 3 1 L 3 11 L 3 14 L 11 14 L 11 11 L 11 1 L 11 0 L 10 0 L 4 0 L 3 0 z M 4 1 L 10 1 L 10 11 L 4 11 L 4 1 z M 7 1.9941406 A 1.0112764 1.0072076 0 0 0 5.9882812 3.0019531 A 1.0112764 1.0072076 0 0 0 7 4.0097656 A 1.0112764 1.0072076 0 0 0 8.0117188 3.0019531 A 1.0112764 1.0072076 0 0 0 7 1.9941406 z M 7.6679688 4.6738281 L 5.6640625 5.3378906 L 5.6640625 6.0019531 L 6.2792969 6.0019531 L 6.3320312 9.3300781 L 5.6640625 9.3300781 L 5.6640625 9.9941406 L 8.3359375 9.9941406  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/theatre.svg b/basemap/assets/icons/theatre.svg
new file mode 100644
index 00000000..965d9658
--- /dev/null
+++ b/basemap/assets/icons/theatre.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="theatre">
+  <path d="m 0,0 0,7 c 0,0 0,4 4,4 0.487694,0 0.905229,-0.08308 1.28125,-0.1875 C 5.222862,10.329209 5.25,10 5.25,10 l 0,-0.21875 C 4.906989,9.915179 4.490013,10 4,10 1,10 1,7 1,7 L 1,1.5 c 2,0.9520605 4,0.9520605 6,0 L 7,2.65625 C 7.334486,2.7893793 7.676632,2.9137483 8,3 L 8,0 C 5,1.3728814 3,1.3050847 0,0 z m 2.5,3 c -0.552285,0 -1,0.4477153 -1,1 0,0.5522847 0.447715,1 1,1 0.552285,0 1,-0.4477153 1,-1 0,-0.5522847 -0.447715,-1 -1,-1 z M 6,3 6,10 c 0,0 0,4 4,4 4,0 4,-4 4,-4 L 14,3 C 11 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/ticket.svg b/basemap/assets/icons/ticket.svg
new file mode 100644
index 00000000..53e477fc
--- /dev/null
+++ b/basemap/assets/icons/ticket.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="ticket">
+  <path d="m0,3 v3 h1 a1,1 0 0 1 0,2 h-1 v3 h14 v-3 h-1 a1,1 0 0 1 0,-2 h1 v-3 z m8,1 h1 v6 h-1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tobacco.svg b/basemap/assets/icons/tobacco.svg
new file mode 100644
index 00000000..539f9323
--- /dev/null
+++ b/basemap/assets/icons/tobacco.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tobacco">
+  <path d="m 2,11 1,0 0,3 -1,0 z M 1,10 C 1.6666667,9 3,8 3,7 3,6 0,5 0,3 0,1 2,1 4,0 3.6666667,1.3333333 2,2 2,3 3,4 5,5 5,7 5,9 4,9 1,10 Z m -1,1 1,0 0,3 -1,0 z m 14,3 -10,0 0,-3 10,0 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/toilets.svg b/basemap/assets/icons/toilets.svg
new file mode 100644
index 00000000..521ccc04
--- /dev/null
+++ b/basemap/assets/icons/toilets.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="toilets">
+  <path d="m 6.25,0 0,14 1.5,0 0,-14 -1.5,0 z M 2.5,1 C 1.671573,1 1,1.6715729 1,2.5 1,3.3284271 1.671573,4 2.5,4 3.328427,4 4,3.3284271 4,2.5 4,1.6715729 3.328427,1 2.5,1 z m 9,0 C 10.671573,1 10,1.6715729 10,2.5 10,3.3284271 10.671573,4 11.5,4 12.328427,4 13,3.3284271 13,2.5 13,1.6715729 12.328427,1 11.5,1 z m -10,4 c -0.599722,0 -1,0.568545 -1,1 0,0.5273339 1.25,1.496636 1.25,2 C 1.75,8.555974 0,9 0,11 l 1.75,0 0,3 1.5,0 0,-3 L 5,11 C 5,9 3.25,8.529509 3.25,8 3.25,7.470492 4.5,6.55130 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/toll_booth.svg b/basemap/assets/icons/toll_booth.svg
new file mode 100644
index 00000000..23d95dfa
--- /dev/null
+++ b/basemap/assets/icons/toll_booth.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="toll_booth">
+  <path d="m7.168,2.5 -7.168,1.45 v8 h6 v-2.5 a1,1 0 0 0 1,-0.93945 l6.7266,-3.3633 -0.44531,-0.89453 -6.7246,3.3633 a1,1 0 0 0,-0.55273 -0.16602 v-2.7305 l1.6035,-1.3906 z m-6.168,2.5 h4 v3 h-4z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tower_cantilever_communication.svg b/basemap/assets/icons/tower_cantilever_communication.svg
new file mode 100644
index 00000000..116f1b46
--- /dev/null
+++ b/basemap/assets/icons/tower_cantilever_communication.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tower_cantilever_communication">
+  <path d="M 4 0.40625 C 2.23276 1.1855669 0.96875 2.9521023 0.96875 5 C 0.96875 7.047898 2.23276 8.814433 4 9.59375 L 4 8.4375 C 2.80447 7.746709 2 6.4881502 2 5 C 2 3.5118498 2.80447 2.2532914 4 1.5625 L 4 0.40625 z M 10 0.40625 L 10 1.5625 C 11.19553 2.2532914 12 3.5118498 12 5 C 12 6.4881502 11.19553 7.746709 10 8.4375 L 10 9.59375 C 11.76724 8.814433 13.03125 7.047898 13.03125 5 C 13.03125 2.9521023 11.76724 1.1855669 10 0.40625 z M 5 2.1875 C 3.842954 2.6043642 3 3.7033306 3 5 C 3  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tower_cooling.svg b/basemap/assets/icons/tower_cooling.svg
new file mode 100644
index 00000000..7219ad7d
--- /dev/null
+++ b/basemap/assets/icons/tower_cooling.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tower_cooling">
+  <path d="m3,1 l1,2 v5 l-2,6 h10 l-2,-6 v-5 l1,-2 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tower_defensive.svg b/basemap/assets/icons/tower_defensive.svg
new file mode 100644
index 00000000..fa4c0497
--- /dev/null
+++ b/basemap/assets/icons/tower_defensive.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tower_defensive">
+  <path d="m 2.5,0 0,3 9,0 0,-3 L 10,0 10,1 8,1 8,0 6,0 6,1 4,1 4,0 z M 3,4 2.5,13 1,13 1,14 5.5,14 C 5.5,13 5.7770449,11.5 7,11.5 8.2738548,11.52672 8.5,13 8.5,14 L 13,14 13,13 11.5,13 11,4 z M 7,6 C 8,6 8,7 8,7 L 8,8 6,8 6,7 C 6,7 6,6 7,6 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tower_dish.svg b/basemap/assets/icons/tower_dish.svg
new file mode 100644
index 00000000..033ed80b
--- /dev/null
+++ b/basemap/assets/icons/tower_dish.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tower_dish">
+  <path d="M 8.0685044,0.05217521 C 7.5102106,0.08185002 6.9559019,0.19918572 6.4298325,0.40262664 L 7.2794418,1.2495509 c 1.3855212,-0.36956358 2.9010802,-0.038252 3.9941402,1.0513543 1.09306,1.0896057 1.425423,2.6003758 1.054687,3.9815176 l 0.84961,0.8469243 C 13.903519,5.2647886 13.533641,3.0468811 12.029441,1.5474346 11.089316,0.61028076 9.8680989,0.11516028 8.6270981,0.05217521 c -0.1861501,-0.0094477 -0.3724959,-0.0098916 -0.5585937,0 z M 8.0470204,2.4021467 c -0.4702958,-0.00363 - [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tower_dome.svg b/basemap/assets/icons/tower_dome.svg
new file mode 100644
index 00000000..9107403b
--- /dev/null
+++ b/basemap/assets/icons/tower_dome.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tower_dome">
+  <path d="m4 14 3-3 3 3h-6"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tower_generic.svg b/basemap/assets/icons/tower_generic.svg
new file mode 100644
index 00000000..9176191c
--- /dev/null
+++ b/basemap/assets/icons/tower_generic.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tower_generic">
+  <path d="m 6,2 0,9 -1,0 0,1 -2,0 0,2 8,0 0,-2 -2,0 0,-1 -1,0 0,-9 C 8,1.5039063 7.5977925,1 7,1 6.4022075,1 6,1.4692172 6,2 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tower_lattice.svg b/basemap/assets/icons/tower_lattice.svg
new file mode 100644
index 00000000..3c696ef5
--- /dev/null
+++ b/basemap/assets/icons/tower_lattice.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tower_lattice">
+  <path d="M 6.471776,0 5.2011719,10 2.5996094,14 H 4 L 4.6660156,13 H 9.3339844 L 10,14 h 1.400391 L 8.8573766,9.9245397 C 9,10 7.5592457,0 7.5592457,0 Z M 7,4 7.75,10 h -1.5 z m -1,7 h 2 l 0.6660156,1 H 5.3339844 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tower_lattice_communication.svg b/basemap/assets/icons/tower_lattice_communication.svg
new file mode 100644
index 00000000..b3fbc126
--- /dev/null
+++ b/basemap/assets/icons/tower_lattice_communication.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tower_lattice_communication">
+  <path d="M 4 0.40625 C 2.23276 1.1855669 0.96875 2.9521023 0.96875 5 C 0.96875 7.047898 2.23276 8.814433 4 9.59375 L 4 8.4375 C 2.80447 7.746709 2 6.4881502 2 5 C 2 3.5118498 2.80447 2.2532914 4 1.5625 L 4 0.40625 z M 10 0.40625 L 10 1.5625 C 11.19553 2.2532914 12 3.5118498 12 5 C 12 6.4881502 11.19553 7.746709 10 8.4375 L 10 9.59375 C 11.76724 8.814433 13.03125 7.047898 13.03125 5 C 13.03125 2.9521023 11.76724 1.1855669 10 0.40625 z M 5 2.1875 C 3.842954 2.6043642 3 3.7033306 3 5 C 3  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tower_lattice_lighting.svg b/basemap/assets/icons/tower_lattice_lighting.svg
new file mode 100644
index 00000000..e6f6c5b7
--- /dev/null
+++ b/basemap/assets/icons/tower_lattice_lighting.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tower_lattice_lighting">
+  <path d="M 6.4726562 0 L 5.2011719 10 L 2.5996094 14 L 4 14 L 4.6660156 13 L 9.3339844 13 L 10 14 L 11.400391 14 L 8.8574219 9.9238281 C 9.0000453 9.9992881 7.5585937 0 7.5585938 0 L 6.4726562 0 z M 2.7148438 1.5449219 C 2.5475777 1.6291099 2.4854765 1.9211987 2.7148438 2.0136719 L 4.5898438 2.7636719 C 4.8962727 2.887214 5.0831658 2.4182195 4.7773438 2.2949219 L 2.9023438 1.5449219 C 2.8258838 1.5140979 2.7705987 1.5168599 2.7148438 1.5449219 z M 11 1.5957031 L 9.125 2.3457031 C 8.819 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tower_lighting.svg b/basemap/assets/icons/tower_lighting.svg
new file mode 100644
index 00000000..e0bd62b3
--- /dev/null
+++ b/basemap/assets/icons/tower_lighting.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tower_lighting">
+  <path d="M 7 1 C 6.4022075 1 6 1.4692172 6 2 L 6 11 L 5 11 L 5 12 L 3 12 L 3 14 L 11 14 L 11 12 L 9 12 L 9 11 L 8 11 L 8 2 C 8 1.5039063 7.5977925 1 7 1 z M 2.7148438 1.5449219 C 2.5475777 1.6291099 2.4854767 1.9211987 2.7148438 2.0136719 L 4.5898438 2.7636719 C 4.8962727 2.887214 5.0831658 2.4182195 4.7773438 2.2949219 L 2.9023438 1.5449219 C 2.8258838 1.5140979 2.7705987 1.5168599 2.7148438 1.5449219 z M 11 1.5957031 L 9.125 2.3457031 C 8.819178 2.4690007 9.006071 2.9379952 9.3125 2. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tower_observation.svg b/basemap/assets/icons/tower_observation.svg
new file mode 100644
index 00000000..182996a4
--- /dev/null
+++ b/basemap/assets/icons/tower_observation.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tower_observation">
+  <path d="M 7 0 L 2 2 L 2 6 L 12 6 L 12 2 L 7 0 z M 3 3 L 5 3 L 5 5 L 3 5 L 3 3 z M 6 3 L 8 3 L 8 5 L 6 5 L 6 3 z M 9 3 L 11 3 L 11 5 L 9 5 L 9 3 z M 3.90625 6.625 L 3 14 L 4.5 14 L 4.6875 12.53125 L 7 11 L 9.3125 12.5625 L 9.5 14 L 11 14 L 10.09375 6.65625 L 3.90625 6.625 z M 5.34375 7.1875 L 8.65625 7.21875 L 8.84375 8.78125 L 7 10 L 5.15625 8.78125 L 5.34375 7.1875 z M 5.03125 9.6875 L 6.25 10.5 L 4.8125 11.46875 L 5.03125 9.6875 z M 8.96875 9.6875 L 9.1875 11.46875 L 7.75 10.5 L 8.9 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/town_hall.svg b/basemap/assets/icons/town_hall.svg
new file mode 100644
index 00000000..19be29a6
--- /dev/null
+++ b/basemap/assets/icons/town_hall.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="town_hall">
+  <path d="M 7,0 C 6.75,0.0032 6.5,0.1644239 6.5,0.5 L 6.5,4.375 1,7 13,7 7.5,4.375 7.5,0.5 C 7.5,0.1516409 7.25,-0.0031957 7,0 z M 8,0 8,3 12,3 10,1.5 12,0 z m -7,8 0,1 1,0 0,4 -1,0 0,1 12,0 0,-1 -1,0 0,-4 1,0 0,-1 z m 6,1.5 c 1,0 2,0.5 2,1.5 l 0,2 -4,0 0,-2 C 5,10 6,9.5 7,9.5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/toys.svg b/basemap/assets/icons/toys.svg
new file mode 100644
index 00000000..195fa0e8
--- /dev/null
+++ b/basemap/assets/icons/toys.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="toys">
+  <path d="M 3,0 3,2 C 2.303,2.367 0.5205,3.74 0.3125,4 0.1125,4.249 0.0935,6.054 0.4375,6 1.0385,5.908 3.07175,4.264 3.59375,4.625 4.11475,4.985 3.965,6.677 4,8 3.2885823,8.9155412 3.0486761,9.914732 2.375,10.65625 2.043673,10.355285 1.6921391,10.067139 1.3125,9.6875 1.2346732,9.5966801 0.85929648,9.3748654 0.50753769,9.6954041 0.28592558,10 0.25660799,10.372075 0.5233459,10.617358 c 2.0149553,2.014955 3.9296858,3.077784 6.7580611,3.077784 2.729723,0 4.081027,-1.080817 6.101445,-3.10123 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/trade.svg b/basemap/assets/icons/trade.svg
new file mode 100644
index 00000000..e17b78d0
--- /dev/null
+++ b/basemap/assets/icons/trade.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="trade">
+  <path d="m 3,0 v 4 h 7 V 0 H 7 V 2 H 6 V 0 Z M 0,5 v 5 H 5 V 5 H 3 V 7 H 2 V 5 Z m 6,0 v 5 h 8 V 5 Z m -6,6 c 0,1 0,2 0,3 h 2 v -2 h 4 v 2 h 2 v -2 h 4 v 2 h 2 c 0,-1 0,-2 0,-3 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/traffic_light.svg b/basemap/assets/icons/traffic_light.svg
new file mode 100644
index 00000000..716bc753
--- /dev/null
+++ b/basemap/assets/icons/traffic_light.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="5" height="13" viewBox="0 0 5 13" id="traffic_light">
+  <path d="m0,2.5 a2.5,2.5 0 0 1 5,0 v8 a2.5,2.5 0 0 1 -5,0z m2.5,-1.5 a1.5,1.5 0 0 0 0,3 a1.5,1.5 0 0 0 0,-3z m0,4 a1.5,1.5 0 0 0 0,3 a1.5,1.5 0 0 0 0,-3z m0,4 a1.5,1.5 0 0 0 0,3 a1.5,1.5 0 0 0 0,-3z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/travel_agency.svg b/basemap/assets/icons/travel_agency.svg
new file mode 100644
index 00000000..99e1fd92
--- /dev/null
+++ b/basemap/assets/icons/travel_agency.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="travel_agency">
+  <path d="M 0,9 C 0,8 0,8 1,8 c 2.3333333,0 4.6666667,0 7,0 1,0 1,0 1,1 0,1.333333 0,2.666667 0,4 0,1 0,1 -1,1 C 5.6666667,14 3.3333333,14 1,14 0,14 0,14 0,13 0,11.666667 0,10.333333 0,9 z M 13,4.03125 13,7 l 1,0 0,-2.96875 -1,0 z M 11.21875,3.6875 9.59375,6.15625 10.40625,6.6875 12.0625,4.25 11.21875,3.6875 z M 9.9375,2.03125 7.125,3.1875 7.5,4.09375 10.3125,2.96875 9.9375,2.03125 z M 7,-0.03125 l 0,1 L 10.09375,1 l 0,-1 L 7,-0.03125 z M 3,8 3,6.2964824 l 3,0 L 6,8 7,8 7,6 C 7,5 7,5 6, [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/tyres.svg b/basemap/assets/icons/tyres.svg
new file mode 100644
index 00000000..01892bac
--- /dev/null
+++ b/basemap/assets/icons/tyres.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="tyres">
+  <path d="m 8.7688269,0.02678201 c 2.2520171,0 4.0755221,3.12883669 4.0755221,6.98660949 C 12.844349,10.868834 11.020844,14 8.7688269,14 6.5179742,14 4.6933047,10.868834 4.6933047,7.0133915 c 0,-3.8577728 1.8246695,-6.98660949 4.0755222,-6.98660949 z M 7.0221746,7.0133915 c 0,2.2124262 0.9129168,3.9893535 2.037761,3.9893535 1.1644354,0 2.0377604,-1.787408 2.0377604,-3.9916833 0,-2.2054397 -0.911752,-3.9928473 -2.0377604,-3.9928473 -1.1644349,0 -2.037761,1.7874076 -2.037761,3.9928473 z m [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/variety_store.svg b/basemap/assets/icons/variety_store.svg
new file mode 100644
index 00000000..eb4a6610
--- /dev/null
+++ b/basemap/assets/icons/variety_store.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="variety_store">
+  <path d="M 5,0 C 4,0 4,0 4,1 L 4.0097656,4 1,4 1,13 c 0,1 0,1 1,1 l 10,0 c 1,0 1,0 1,-1 L 13,4 10.039062,4 10,1 C 10,0 10,0 9,0 Z M 9,1 9,4 5,4 5,1 Z M 5,5 8,5 8,12 5,12 5,11 7,11 7,9 5,9 Z m 4,0 3,0 0,7 -3,0 0,-1 2,0 0,-2 -2,0 z M 6,6 6,8 7,8 7,6 Z m 4,0 0,2 1,0 0,-2 z m -8,5 2,0 0,2.48929 -1,0 L 3,12 2,12 Z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/vehicle_inspection.svg b/basemap/assets/icons/vehicle_inspection.svg
new file mode 100644
index 00000000..0838895b
--- /dev/null
+++ b/basemap/assets/icons/vehicle_inspection.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="vehicle_inspection">
+  <path d="M 2.5 0 C 2.223 0 2 0.223 2 0.5 C 2 0.777 2.223 1 2.5 1 L 6.5 1 C 6.777 1 7 0.777 7 0.5 C 7 0.223 6.777 0 6.5 0 L 2.5 0 z M 11 0 L 9.5449219 3.6367188 L 9 2 L 8 2 L 9 5 L 10 5 L 12 0 L 11 0 z M 2.5 2 C 2.223 2 2 2.223 2 2.5 C 2 2.777 2.223 3 2.5 3 L 6.5 3 C 6.777 3 7 2.777 7 2.5 C 7 2.223 6.777 2 6.5 2 L 2.5 2 z M 2.5 4 C 2.223 4 2 4.223 2 4.5 C 2 4.777 2.223 5 2.5 5 L 6.5 5 C 6.777 5 7 4.777 7 4.5 C 7 4.223 6.777 4 6.5 4 L 2.5 4 z M 4 6 L 3 9 C 2.527334 9 2 9.384295 2 10 L 2  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/veterinary.svg b/basemap/assets/icons/veterinary.svg
new file mode 100644
index 00000000..4c934b8e
--- /dev/null
+++ b/basemap/assets/icons/veterinary.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="veterinary">
+  <path d="m 4.939089,0.12499997 c -1.4191217,0 -1.6451859,1.93046953 -1.28125,2.90625003 C 3.8887816,3.6542301 4.5922019,4.2560356 5.314089,4 6.2476315,3.5384628 6.5113975,2.3550377 6.251589,1.4375 6.1256004,0.82627427 5.6379877,0.12499997 4.939089,0.12499997 z m 3.96875,0 c -0.698899,0 -1.186511,0.7012743 -1.3125,1.31250003 C 7.335531,2.3550377 7.599299,3.5384628 8.532839,4 9.254726,4.2560356 9.9581461,3.6542301 10.189089,3.03125 10.553025,2.0554695 10.326961,0.12499997 8.907839,0.1249 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/video.svg b/basemap/assets/icons/video.svg
new file mode 100644
index 00000000..a93a69d7
--- /dev/null
+++ b/basemap/assets/icons/video.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="video">
+  <path d="M 13.990234,0.01757813 C 10.129073,0.01746474 6.9994428,3.1455756 6.9999999,7.0039062 7.0005082,10.861481 10.139592,14.000113 14,14 c 0.01008,-0.988687 -0.02305,-0.01498 0,-1 -3.308167,7.56e-4 -5.9668722,-2.672792 -5.966797,-5.9902344 -7.97e-5,-3.3128692 2.674918,-5.9983003 5.978516,-6.0058594 V 0.02148438 l -0.02149,-0.0019531 z M -6.5301839e-8,1 V 14 H 0.99999993 1.9999999 h 1 5.6640625 V 13 H 2.9999999 V 8 h 3 V 7 h -3 V 2 h 5 V 1 h -5 -1 -0.99999997 z M 0.99999993,2 H 1.99 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/video_games.svg b/basemap/assets/icons/video_games.svg
new file mode 100644
index 00000000..59d6c47b
--- /dev/null
+++ b/basemap/assets/icons/video_games.svg
@@ -0,0 +1,5 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="video_games">
+  <path d="M 3.219845,3.8253628 C 2.7468854,3.9379881 2.4597076,4.1012638 2.0993258,4.467284 1.6882935,4.8783163 1.3786096,5.351276 1.1477682,5.9425466 0.84111673,6.5927121 0.62936992,7.3021042 0.47770254,7.9583345 0.13418848,9.4730183 0.05292964,10.990119 0.13418848,11.70278 c 0.18582926,0.844618 0.39980299,1.317578 0.79396761,1.706104 0.40539401,0.405441 0.70384851,0.534934 1.29507171,0.563079 0.5799465,0.02814 1.0134849,-0.07884 1.430203,-0.354744 0.3209606,-0.213973 1.159893,-1.08673 [...]
+  <path d="M 1.3323441,-0.05994706 C 1.3037034,0.46829033 1.5988154,0.8602857 1.9556111,1.2257321 2.3124068,1.5911784 2.7809586,1.9232693 3.3052364,2.1771513 3.8295142,2.4310332 4.4091673,2.6077204 4.9971727,2.6144098 5.5851781,2.6210994 6.2019586,2.4353176 6.6548686,1.9642133 7.3006205,1.2925201 7.8716641,1.2713612 8.1749553,1.392862 8.3266009,1.453612 8.4115592,1.547706 8.4475827,1.637079 8.4828147,1.724488 8.4913537,1.8183987 8.4071417,1.9753182 8.1290121,2.420017 7.7222881,2.8532272  [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/viewpoint.svg b/basemap/assets/icons/viewpoint.svg
new file mode 100644
index 00000000..300a0735
--- /dev/null
+++ b/basemap/assets/icons/viewpoint.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="viewpoint">
+  <path d="m 9.65625,0.59375 c -0.3024732,0.0462641 -0.5739493,0.24857188 -0.75,0.5 C 8.4915325,1.6542533 8.3846231,2.3479287 8.1875,3 7.9662603,3.8420605 7.7522058,4.7006473 7.625,5.5625 7.6044,5.8106582 7.7926492,5.8644805 8.03125,5.625 8.8564261,4.8565483 9.6689927,4.0447405 10.46875,3.25 10.66307,3.0435127 10.857947,2.8397801 11,2.59375 c 0.22114,-0.3696454 0.325018,-0.8581921 0.09375,-1.25 -0.238762,-0.3960416 -0.675926,-0.6652283 -1.125,-0.75 -0.1037376,-0.0197567 -0.2116756,-0.015 [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/waste_basket.svg b/basemap/assets/icons/waste_basket.svg
new file mode 100644
index 00000000..86a771b9
--- /dev/null
+++ b/basemap/assets/icons/waste_basket.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="8" height="8" viewBox="0 0 8 8" id="waste_basket">
+  <path d="m4,0 l1,1 h1 l1,1 h-6 l1,-1 h1 z m-3,3 l1,5 h4 l1,-5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/waste_disposal.svg b/basemap/assets/icons/waste_disposal.svg
new file mode 100644
index 00000000..24a2df78
--- /dev/null
+++ b/basemap/assets/icons/waste_disposal.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="waste_disposal">
+  <path d="M 6 1 L 6 2 L 3 2 L 3 3 L 11 3 L 11 2 L 8 2 L 8 1 L 6 1 z M 3 5 L 4 14 L 10 14 L 11 5 L 3 5 z M 5 6 L 6 6 L 6 13 L 5 13 L 5 6 z M 8 6 L 9 6 L 9 13 L 8 13 L 8 6 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/water_park.svg b/basemap/assets/icons/water_park.svg
new file mode 100644
index 00000000..7976e2f1
--- /dev/null
+++ b/basemap/assets/icons/water_park.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="water_park">
+  <path d="m 8.7083337,0.54178023 c -0.1252548,0.009961 -0.2461931,0.0506323 -0.375,0.12499897 L 4.2916666,2.8334275 C 3.77896,3.0760921 3.5785334,3.8362857 3.9166666,4.2917486 L 5,6.0000675 0.3333334,8.6667117 0.375,9.5000379 c 0,0 0.6238766,-0.4999957 1.2916666,-0.4999957 0.6317149,0 1.8976382,0.9999918 2.6666668,0.9999918 0.6711521,0 1.9949321,-0.9999918 2.6666666,-0.9999918 0.6991169,0 1.9675497,0.9999918 2.666666,0.9999918 H 10.125 L 6.3333334,4.0000843 9.125,2.5417633 C 9.722322,2. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/water_tower.svg b/basemap/assets/icons/water_tower.svg
new file mode 100644
index 00000000..fcb0d09f
--- /dev/null
+++ b/basemap/assets/icons/water_tower.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="water_tower">
+  <path d="M 2,0 2,3.5 C 2,4.9469172 2.7905512,5.9802716 3.90625,6.625 L 3,14 4.5,14 4.6875,12.53125 7,11 9.3125,12.5625 9.5,14 11,14 10.09375,6.65625 C 11.21821,6.0132746 12,4.9628112 12,3.5 l 0,-3.5 -1.5,0 0,1.5 -0.5,0 C 8.8728814,2 8,2 7,1.5 6,1 5.0381356,1 4,1.5 l -0.5,0 0,-1.5 z m 3.34375,7.1875 c 1.069224,0.2671613 2.2426846,0.2935662 3.3125,0.03125 L 8.84375,8.78125 7,10 5.15625,8.78125 z m -0.3125,2.5 L 6.25,10.5 4.8125,11.46875 z m 3.9375,0 L 9.1875,11.46875 7.75,10.5 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/waterfall.svg b/basemap/assets/icons/waterfall.svg
new file mode 100644
index 00000000..5a2e9227
--- /dev/null
+++ b/basemap/assets/icons/waterfall.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="waterfall">
+  <path d="m1 11c0.641 0 1.829 1 2.4 1 0.535 0 1.795-1 2.4-1s1.866 1 2.4 1c0.642 0 1.825-1 2.399-1 0.641-0.029 1.902 1 2.4 1v2c-0.604 0-1.83-1-2.4-1-0.569 0-1.795 1-2.399 1-0.574 0-1.795-1-2.4-1-0.609 0-1.829 1-2.4 1-0.64 0-1.794-1-2.4-1zm0-8c1.094 0 2.001 0.3 2.001 1.75l-1e-3 2.5c0 2 1.5 3 2.5 3 0 0-0.5-1-0.5-3v-2.5c0-0.915-0.649-1.308-1.001-1.75 1.094 0 2.001 0.3 2.001 1.75v2.5c0 2 1.5 3 2.5 3 0 0-0.5-1-0.5-3l0.1-2.5c0.036571-0.91427-0.749-1.308-1.1-1.75 1.093 0 2 0.3 2 1.75v2.5c0 2 1. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/wilderness_hut.svg b/basemap/assets/icons/wilderness_hut.svg
new file mode 100644
index 00000000..53ed9838
--- /dev/null
+++ b/basemap/assets/icons/wilderness_hut.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="wilderness_hut">
+  <path d="M 8,0 8,2 7,1.5 0,5 0,7 1.5,6.3496094 1.5,14 3,14 3,5.6992188 7,4 8,4.4257812 8,9 4.5,9 c 0.025314,1.65157 -0.034277,3.38952 0,5 l 5,0 C 9.518206,11.046736 9.50603,8.0503867 9.5,5.0625 L 11,5.6992188 11,14 12.5,14 12.5,6.3496094 14,7 14,5 9.5,2.75 C 9.4984477,1.8314022 9.5,0.9158261 9.5,0 L 8,0 Z M 7,11 c 0,0 1,0 1,1 l 0,1 -2,0 0,-1 c 0,-1 1,-1 1,-1 z"/>
+</svg>
\ No newline at end of file
diff --git a/basemap/assets/icons/windmill.svg b/basemap/assets/icons/windmill.svg
new file mode 100644
index 00000000..2b915862
--- /dev/null
+++ b/basemap/assets/icons/windmill.svg
@@ -0,0 +1,4 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<svg xmlns="http://www.w3.org/2000/svg" width="14" height="14" viewBox="0 0 14 14" id="windmill">
+  <path d="M 2.71875,0 1,1.71875 5.96875,6 1,10.28125 2.71875,12 7,7.03125 11.28125,12 13,10.28125 8.03125,6 13,1.71875 11.28125,0 7,4.96875 2.71875,0 z M 7,2 C 6.5846058,2 6.2371923,2.0902004 5.9375,2.21875 L 7,3.4375 8.0625,2.21875 C 7.7644902,2.0832701 7.4104059,2 7,2 z M 7,5.5 C 7.2761424,5.5 7.5,5.7238576 7.5,6 7.5,6.2761424 7.2761424,6.5 7,6.5 6.7238576,6.5 6.5,6.2761424 6.5,6 6.5,5.7238576 6.7238576,5.5 7,5.5 z M 4.1875,5.78125 4.15625,6.25 4.4375,6 4.1875,5.78125 z m 5.625,0 L 9. [...]
+</svg>
\ No newline at end of file
diff --git a/basemap/style.js b/basemap/style.js
index cfe115fb..923bb435 100644
--- a/basemap/style.js
+++ b/basemap/style.js
@@ -78,7 +78,7 @@ export default {
             "url": `${config.host}/tiles.json`
         }
     },
-    "sprite": `https://baremaps.apache.org/sprites/osm/sprite`,
+    "sprite": `${config.host}/assets/icons`,
     "glyphs": "https://baremaps.apache.org/fonts/{fontstack}/{range}.pbf",
     "layers": [
         background,