summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xbin/build-style.js12
-rw-r--r--bin/style.js506
-rw-r--r--include/mbgl/map/map.hpp1
-rw-r--r--include/mbgl/util/filesource.hpp2
-rw-r--r--include/mbgl/util/uv.hpp14
-rw-r--r--linux/main.cpp14
-rw-r--r--linux/mapboxgl-app.gyp2
-rw-r--r--macosx/main.mm17
-rw-r--r--macosx/mapboxgl-app.gyp4
-rw-r--r--mapboxgl.gyp33
-rw-r--r--src/map/map.cpp19
-rw-r--r--src/util/filesource.cpp40
-rw-r--r--styles/bright/img/sprite.json2818
-rw-r--r--styles/bright/img/sprite.pngbin0 -> 118946 bytes
-rw-r--r--styles/bright/img/sprite@2x.json2818
-rw-r--r--styles/bright/img/sprite@2x.pngbin0 -> 272040 bytes
-rw-r--r--styles/bright/style.json1336
17 files changed, 7075 insertions, 561 deletions
diff --git a/bin/build-style.js b/bin/build-style.js
deleted file mode 100755
index c69fcb8b40..0000000000
--- a/bin/build-style.js
+++ /dev/null
@@ -1,12 +0,0 @@
-#!/usr/bin/env node
-'use strict';
-
-var path = require('path');
-var fs = require('fs');
-var mkdirp = require('./mkdirp');
-var name = 'style';
-var data = JSON.stringify(require(path.join(process.cwd(), process.argv[2])));
-
-var out_path = path.join(process.argv[3], 'bin/style.min.js');
-mkdirp.sync(path.dirname(out_path));
-fs.writeFileSync(out_path, data);
diff --git a/bin/style.js b/bin/style.js
deleted file mode 100644
index 909276ac45..0000000000
--- a/bin/style.js
+++ /dev/null
@@ -1,506 +0,0 @@
-"use strict";
-
-module.exports = {
- "version": 4,
- "sprite": "https://www.mapbox.com/mapbox-gl-styles/sprites/sprite",
- "glyphs": "http://mapbox.s3.amazonaws.com/gl-glyphs-256/{fontstack}/{range}.pbf",
- "constants": {
- "@red": "#f00",
- "@land": "#eee",
- "@water": "#999",
- "@park": "#bda",
- "@road": "#fefefe",
- "@border": "#6d90ab",
- "@wood": "#33AA66",
- "@building": "#ddd",
- "@building_outline": "#ccc",
- "@text": "#000000",
- "@satellite_brightness_low": 0,
- "@satellite_brightness_high": 1,
- "@satellite_saturation": 0,
- "@satellite_spin": 0,
- "@satellite_contrast": 0,
- "@road_blur": 1,
- "@stroke_width": 0.25
- },
- "sources": {
- "mapbox": {
- "type": "vector",
- "url": "mapbox://mapbox.mapbox-streets-v5",
- "maxZoom": 14
- }
- },
- "layers": [{
- "id": "bg",
- "type": "background",
- "style": {
- "background-color": "@land",
- "transition-background-color": {
- "duration": 500
- }
- },
- "style.satellite": {
- "transition-fill-color": {
- "duration": 500,
- "delay": 500
- },
- "fill-opacity": 0,
- "fill-color": "rgba(255,0,0,0)"
- }
- }, {
- "id": "park",
- "source": "mapbox",
- "source-layer": "landuse",
- "filter": { "class": "park" },
- "type": "fill",
- "style": {
- "fill-color": "@park"
- },
- "style.satellite": {
- "transition-fill-color": {
- "duration": 500
- },
- "fill-color": "rgba(0,0,0,0)"
- }
- }, {
- "id": "wood",
- "source": "mapbox",
- "source-layer": "landuse",
- "filter": { "class": "wood" },
- "type": "fill",
- "style": {
- "fill-color": "@wood",
- "fill-opacity": 0.08
- }
- }, {
- "id": "water",
- "source": "mapbox",
- "source-layer": "water",
- "type": "fill",
- "style": {
- "fill-color": "@water"
- },
- "style.satellite": {
- "fill-opacity": 0
- }
- }, {
- "id": "waterway",
- "source": "mapbox",
- "source-layer": "waterway",
- "type": "line",
- "style": {
- "line-color": "@water",
- "line-width": {
- "base": 1.01,
- "stops": [[7, 0.5], [19, 6.5]]
- }
- }
- }, {
- // "id": "roads",
- // "layers": [{
- "id": "tunnel_large_casing",
- "source": "mapbox",
- "source-layer": "tunnel",
- "filter": { "class": ["motorway", "main"] },
- "type": "line",
- "style": {
- "line-color": "rgba(0,0,0,0.5)",
- "line-width": 1,
- "line-offset": {
- "stops": [[12.11458208048225, 1], [19, 93.2862864971161]]
- }
- }
- }, {
- "id": "tunnel_regular_casing",
- "source": "mapbox",
- "source-layer": "tunnel",
- "filter": { "class": ["street", "street_limited"] },
- "type": "line",
- "style": {
- "line-color": "rgba(0,0,0,0.5)",
- "line-width": 1,
- "line-offset": {
- "stops": [[11.637356828788917, 1], [19, 31.287358856201173]]
- }
- }
- }, {
- "id": "tunnel_large",
- "ref": "tunnel_large_casing",
- "style": {
- "line-color": "rgba(255,255,255,0.5)",
- "line-width": {
- "stops": [[12.11458208048225, 1], [19, 93.2862864971161]]
- }
- }
- }, {
- "id": "tunnel_regular",
- "ref": "tunnel_regular_casing",
- "style": {
- "line-color": "rgba(255,255,255,0.5)",
- "line-width": {
- "stops": [[14.11458208048225, 1], [19, 29.787358856201173]]
- }
- }
- }, {
- "id": "road_large_casing",
- "source": "mapbox",
- "source-layer": "road",
- "filter": { "class": ["motorway", "main"] },
- "type": "line",
- "render": {
- "line-cap": "round",
- "line-join": "bevel"
- },
- "style": {
- "line-color": "rgba(154,154,154,0.5)",
- "line-width": {
- "stops": [[12.751938909271168, 4], [19, 100.00060082197189]]
- },
- "line-opacity": {
- "base": 1.01,
- "stops": [[13, 0], [14, 1]]
- },
- "transition-line-width": {
- "duration": 500
- },
- "line-blur": "@road_blur"
- },
- "style.satellite": {
- "line-width": {
- "stops": [[13.751938909271168, 4], [19, 57.57177189826965]]
- },
- "transition-line-width": {
- "duration": 500,
- "delay": 1000
- }
- },
- "style.test": {
- "line-width": {
- "stops": [[11.751938909271168, 4], [19, 174.25105143845082]]
- },
- "line-color": "rgba(255,0,0,1)",
- "transition-line-width": {
- "duration": 500
- },
- "transition-line-color": {
- "duration": 2000,
- "delay": 500
- }
- }
- }, {
- "id": "road_regular_casing",
- "source": "mapbox",
- "source-layer": "road",
- "filter": { "class": "street" },
- "type": "line",
- "render": {
- "line-cap": "round",
- "line-join": "bevel"
- },
- "style": {
- "line-color": "rgba(154,154,154,0.5)",
- "line-width": {
- "stops": [[10.637356828788917, 1], [19, 54.377877998352055]]
- },
- "line-opacity": {
- "base": 1.01,
- "stops": [[14.5, 0], [15.5, 1]]
- },
- "line-blur": "@road_blur"
- },
- "style.satellite": {
- "transition-line-width": {
- "duration": 500,
- "delay": 1000
- },
- "line-width": {
- "stops": [[11.637356828788917, 1], [19, 31.287358856201173]]
- }
- }
- }, {
- "id": "road_limited",
- "source": "mapbox",
- "source-layer": "road",
- "filter": { "class": "street_limited" },
- "type": "line",
- "render": {
- "line-cap": "round",
- "line-join": "bevel",
- "line-round-limit": 0.7
- },
- "style": {
- "line-dasharray": [10, 2],
- "line-color": "@road",
- "line-blur": "@road_blur",
- "line-width": {
- "stops": [[13.11458208048225, 1], [19, 52.877877998352055]]
- }
- }
- }, {
- "id": "road_large",
- "ref": "road_large_casing",
- "style": {
- "line-color": "@road",
- "line-blur": "@road_blur",
- "line-width": {
- "stops": [[12.11458208048225, 1], [19, 93.2862864971161]]
- }
- },
- "style.satellite": {
- "transition-line-width": {
- "duration": 500,
- "delay": 1000
- },
- "line-width": {
- "stops": [[13.11458208048225, 1], [19, 52.877877998352055]]
- }
- }
- }, {
- "id": "road_regular",
- "ref": "road_regular_casing",
- "style": {
- "line-color": "@road",
- "line-blur": "@road_blur",
- "line-width": {
- "stops": [[13.11458208048225, 1], [19, 52.877877998352055]]
- }
- },
- "style.satellite": {
- "transition-line-width": {
- "duration": 500,
- "delay": 1000
- },
- "line-width": {
- "stops": [[14.11458208048225, 1], [19, 29.787358856201173]]
- }
- }
- }, {
- "id": "path",
- "source": "mapbox",
- "source-layer": "road",
- "filter": { "class": "path" },
- "type": "line",
- "render": {
- "line-cap": "round",
- "line-join": "bevel"
- },
- "style": {
- "line-color": "rgba(255,255,255,1)",
- "line-dasharray": [2, 2],
- "line-width": 2
- }
- }, {
- "id": "rail",
- "source": "mapbox",
- "source-layer": "road",
- "filter": { "class": "major_rail" },
- "type": "line",
- "render": {
- "line-cap": "round",
- "line-join": "bevel"
- },
- "style": {
- "line-color": "rgba(76,76,76,0.8)",
- "line-dasharray": [2, 1],
- "line-width": 3
- }
- }, {
- "id": "tunnel_rail",
- "source": "mapbox",
- "source-layer": "tunnel",
- "filter": { "class": ["minor_rail", "major_rail"] },
- "type": "line",
- "style": {
- "line-color": "rgba(76,76,76,0.3)",
- "line-dasharray": [2, 1],
- "line-width": 3
- }
- // }],
- // "type": "composite",
- // "style": {
- // "composite-opacity": 1,
- // "transition-composite-opacity": {
- // "duration": 500
- // }
- // },
- // "style.satellite": {
- // "transition-composite-opacity": {
- // "duration": 500,
- // "delay": 500
- // },
- // "composite-opacity": 0.5
- // }
- }, {
- "id": "building",
- "source": "mapbox",
- "source-layer": "building",
- "type": "fill",
- "style": {
- "fill-color": "@building",
- "transition-fill-opacity": {
- "duration": 500,
- "delay": 500
- },
- "fill-opacity": {
- "base": 1.01,
- "stops": [[13, 0], [14, 1]]
- },
- "fill-outline-color": "@building_outline"
- },
- "style.satellite": {
- "fill-opacity": 0,
- "transition-fill-opacity": {
- "duration": 500
- }
- }
- }, {
- "id": "borders",
- "source": "mapbox",
- "source-layer": "admin",
- "type": "line",
- "style": {
- "line-color": "rgba(0,0,0,0.3)",
- "line-width": 1
- }
- }, {
- "id": "bridge_large_casing",
- "source": "mapbox",
- "source-layer": "bridge",
- "filter": { "class": ["motorway", "main"] },
- "type": "line",
- "style": {
- "line-color": "rgba(0,0,0,0.4)",
- "line-width": {
- "stops": [[2.6468052936710817, 1.51], [19, 95.7862864971161]]
- }
- }
- }, {
- "id": "bridge_large",
- "ref": "bridge_large_casing",
- "style": {
- "line-color": "@road",
- "line-width": {
- "stops": [[12.11458208048225, 1], [19, 93.2862864971161]]
- }
- }
- }, {
- "id": "park_poi",
- "source": "mapbox",
- "source-layer": "poi_label",
- "filter": { "maki": "park" },
- "type": "symbol",
- "render": {
- "icon-image": "dot.sdf",
- "icon-allow-overlap": true,
- "icon-ignore-placement": true
- },
- "style": {
- "icon-color": "#8f8",
- "icon-halo-color": "#393",
- "icon-halo-width": 0,
- "icon-halo-blur": 5,
- "icon-opacity": 0,
- "icon-halo-opacity": 0.9,
- "icon-translate": [2, -1],
- "icon-size": 15
- }
- }, {
- "id": "country_label",
- "source": "mapbox",
- "source-layer": "country_label",
- "filter": { "$type": "Point" },
- "type": "symbol",
- "render": {
- "text-field": "{name}",
- "text-font": "Open Sans Regular, Arial Unicode MS Regular",
- "text-max-size": 16,
- "text-path": "horizontal",
- "text-padding": 10
- },
- "style": {
- "text-halo-color": "rgba(255,255,255,0.7)",
- "text-halo-width": "@stroke_width",
- "text-color": "@text"
- }
- }, {
- "id": "place_label",
- "source": "mapbox",
- "source-layer": "place_label",
- "filter": { "$type": "Point" },
- "type": "symbol",
- "render": {
- "text-field": "{name}",
- "text-font": "Open Sans Semibold, Arial Unicode MS Regular",
- "text-max-size": 18,
- "text-path": "horizontal",
- "text-max-width": 2
- },
- "style": {
- "text-halo-color": "rgba(255,255,255,0.7)",
- "text-halo-width": "@stroke_width",
- "text-color": "@text"
- }
- }, {
- "id": "road_label",
- "source": "mapbox",
- "source-layer": "road_label",
- "filter": { "$type": "LineString" },
- "type": "symbol",
- "min-zoom": 14,
- "render": {
- "symbol-placement": "line",
- "text-field": "{name}",
- "text-font": "Open Sans Regular, Arial Unicode MS Regular",
- "text-max-size": 12,
- "text-path": "curve",
- "text-min-distance": 250,
- "text-max-angle": 1.04
- },
- "style": {
- "text-color": "@text",
- "text-halo-color": "rgba(255,255,255,0.7)",
- "text-halo-width": "@stroke_width",
- "text-size": {
- "stops": [[4.770835839035499, 8.01], [15.477225251693334, 12]]
- }
- }
- }, {
- "id": "poi",
- "source": "mapbox",
- "source-layer": "poi_label",
- "type": "symbol",
- "min-zoom": 15,
- "render": {
- "icon-size": 12,
- "icon-image": "{maki}-12",
- "text-font": "Open Sans Regular, Arial Unicode MS Regular",
- "text-max-size": 10,
- "text-offset": [0, 0.8],
- "text-path": "horizontal",
- "text-max-width": 7,
- "text-optional": true,
- "text-vertical-align": "top",
- "text-field": "{name}"
- },
- "style": {
- "text-size": 10,
- "text-color": "#333",
- "text-halo-color": "#eee",
- "icon-rotate-anchor": "viewport"
- }
- }, {
- "id": "road_markers",
- "source": "mapbox",
- "source-layer": "road",
- "filter": { "oneway": 1, "$type": "LineString" },
- "type": "symbol",
- "min-zoom": 16,
- "render": {
- "symbol-placement": "line",
- "symbol-min-distance": 150,
- "icon-image": "triangle-stroked-12",
- "icon-rotate": 90
- }
- }
- ]
-};
diff --git a/include/mbgl/map/map.hpp b/include/mbgl/map/map.hpp
index 4fb5bf90bd..be01b456cc 100644
--- a/include/mbgl/map/map.hpp
+++ b/include/mbgl/map/map.hpp
@@ -65,6 +65,7 @@ public:
void toggleClass(const std::string &name);
const std::vector<std::string> &getAppliedClasses() const;
void setDefaultTransitionDuration(uint64_t duration_milliseconds = 0);
+ void setStyleURL(const std::string &url);
void setStyleJSON(std::string newStyleJSON, const std::string &base = "");
std::string getStyleJSON() const;
void setAccessToken(std::string access_token);
diff --git a/include/mbgl/util/filesource.hpp b/include/mbgl/util/filesource.hpp
index 5d5143dbf7..83e2a635e5 100644
--- a/include/mbgl/util/filesource.hpp
+++ b/include/mbgl/util/filesource.hpp
@@ -12,7 +12,7 @@ class loop;
namespace mbgl {
namespace platform {
-class Response;
+struct Response;
}
enum class ResourceType : uint8_t {
diff --git a/include/mbgl/util/uv.hpp b/include/mbgl/util/uv.hpp
index a11d9b19cf..a083229cc3 100644
--- a/include/mbgl/util/uv.hpp
+++ b/include/mbgl/util/uv.hpp
@@ -16,9 +16,23 @@
#pragma clang diagnostic pop
#endif
+#include <string>
+
namespace uv {
+inline std::string cwd() {
+ size_t max = 0;
+ std::string dir;
+ do {
+ max += 256;
+ dir.resize(max);
+ uv_cwd(const_cast<char *>(dir.data()), &max);
+ } while (max == dir.size());
+ dir.resize(max);
+ return dir;
+}
+
class loop {
public:
inline loop() {
diff --git a/linux/main.cpp b/linux/main.cpp
index d51d2c8846..392b9fb666 100644
--- a/linux/main.cpp
+++ b/linux/main.cpp
@@ -45,15 +45,6 @@ int main(int argc, char *argv[]) {
sigIntHandler.sa_flags = 0;
sigaction(SIGINT, &sigIntHandler, NULL);
- // read default stylesheet from disk
- std::ifstream stylefile("./style.min.js");
- if (!stylefile.good()) {
- fprintf(stderr, "Cannot read style file\n");
- return 1;
- }
- std::stringstream stylejson;
- stylejson << stylefile.rdbuf();
-
view = new GLFWView();
mbgl::Map map(*view);
@@ -72,7 +63,10 @@ int main(int argc, char *argv[]) {
}
// Load style
- map.setStyleJSON(stylejson.str());
+ std::string style = "file://";
+ style += uv::cwd();
+ style += "/styles/bright/style.json";
+ map.setStyleURL(style);
int ret = view->run();
diff --git a/linux/mapboxgl-app.gyp b/linux/mapboxgl-app.gyp
index 1d09b5444b..7b703ed75c 100644
--- a/linux/mapboxgl-app.gyp
+++ b/linux/mapboxgl-app.gyp
@@ -53,7 +53,7 @@
],
'dependencies': [
'../mapboxgl.gyp:mapboxgl',
- '../mapboxgl.gyp:copy_default_stylesheet',
+ '../mapboxgl.gyp:copy_styles',
'../mapboxgl.gyp:copy_certificate_bundle',
],
},
diff --git a/macosx/main.mm b/macosx/main.mm
index c61c9decb6..9ecc307c05 100644
--- a/macosx/main.mm
+++ b/macosx/main.mm
@@ -73,14 +73,17 @@ int main() {
GLFWView view;
mbgl::Map map(view);
+ URLHandler *handler = [[URLHandler alloc] init];
+ [handler setMap:&map];
+ NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
+ [appleEventManager setEventHandler:handler andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];
+
// Load settings
mbgl::Settings_NSUserDefaults settings;
map.setLonLatZoom(settings.longitude, settings.latitude, settings.zoom);
map.setBearing(settings.bearing);
map.setDebug(settings.debug);
- URLHandler *handler = [[URLHandler alloc] init];
- [handler setMap:&map];
// Set access token if present
NSString *accessToken = [[NSProcessInfo processInfo] environment][@"MAPBOX_ACCESS_TOKEN"];
@@ -88,15 +91,9 @@ int main() {
if (accessToken) map.setAccessToken([accessToken cStringUsingEncoding:[NSString defaultCStringEncoding]]);
// Load style
- NSString *path = [[NSBundle mainBundle] pathForResource:@"style.min" ofType:@"js"];
- NSString *json = [NSString stringWithContentsOfFile:path
- encoding:[NSString defaultCStringEncoding]
- error:nil];
- map.setStyleJSON((std::string)[json cStringUsingEncoding:[NSString defaultCStringEncoding]]);
-
- NSAppleEventManager *appleEventManager = [NSAppleEventManager sharedAppleEventManager];
- [appleEventManager setEventHandler:handler andSelector:@selector(handleGetURLEvent:withReplyEvent:) forEventClass:kInternetEventClass andEventID:kAEGetURL];
+ const std::string path([[[NSBundle mainBundle] pathForResource:@"style" ofType:@"json" inDirectory:@"styles/bright"] UTF8String]);
+ map.setStyleURL(std::string("file://") + path);
int ret = view.run();
diff --git a/macosx/mapboxgl-app.gyp b/macosx/mapboxgl-app.gyp
index 59dfc66470..480dc2a114 100644
--- a/macosx/mapboxgl-app.gyp
+++ b/macosx/mapboxgl-app.gyp
@@ -23,7 +23,6 @@
'mac_bundle': 1,
'mac_bundle_resources': [
'Icon.icns',
- '<(SHARED_INTERMEDIATE_DIR)/bin/style.min.js'
],
'xcode_settings': {
'SDKROOT': 'macosx',
@@ -40,7 +39,8 @@
'CLANG_ENABLE_OBJC_ARC': 'YES'
},
'dependencies': [
- '../mapboxgl.gyp:mapboxgl'
+ '../mapboxgl.gyp:bundle_styles',
+ '../mapboxgl.gyp:mapboxgl',
]
}
]
diff --git a/mapboxgl.gyp b/mapboxgl.gyp
index 6585dca3bc..046a5d40ad 100644
--- a/mapboxgl.gyp
+++ b/mapboxgl.gyp
@@ -34,37 +34,42 @@
}
},
{
- 'target_name': 'build_stylesheet',
+ 'target_name': 'bundle_styles',
'type': 'none',
'hard_dependency': 1,
'actions': [
{
- 'action_name': 'Build Stylesheet',
+ 'action_name': 'Touch Stylesheet Directory',
'inputs': [
- 'bin/style.js',
+ 'styles',
],
- 'outputs': [
- '<(SHARED_INTERMEDIATE_DIR)/bin/style.min.js'
- ],
- 'action': ['<@(node)', 'bin/build-style.js', '<@(_inputs)', '<(SHARED_INTERMEDIATE_DIR)']
+ 'outputs': [],
+ 'action': ['touch', 'styles'], # required for xcode http://openradar.appspot.com/7232149
}
],
'direct_dependent_settings': {
- 'sources': [
- '<(SHARED_INTERMEDIATE_DIR)/bin/style.min.js'
+ 'mac_bundle_resources': [
+ 'styles',
],
}
},
{
- 'target_name': 'copy_default_stylesheet',
+ 'target_name': 'copy_styles',
'type': 'none',
'hard_dependency': 1,
- 'dependencies': [
- 'build_stylesheet'
+ 'actions': [
+ {
+ 'action_name': 'Touch Stylesheet Directory',
+ 'inputs': [
+ 'styles',
+ ],
+ 'outputs': [],
+ 'action': ['touch', 'styles'], # required for xcode http://openradar.appspot.com/7232149
+ }
],
'copies': [
{
- 'files': [ '<(SHARED_INTERMEDIATE_DIR)/bin/style.min.js' ],
+ 'files': [ 'styles' ],
'destination': '<(PRODUCT_DIR)'
}
]
@@ -86,7 +91,6 @@
'type': 'static_library',
'hard_dependency': 1,
'dependencies': [
- 'build_stylesheet',
'shaders',
],
'sources': [
@@ -154,7 +158,6 @@
'type': 'static_library',
'hard_dependency': 1,
'dependencies': [
- 'build_stylesheet',
'shaders',
],
'sources': [
diff --git a/src/map/map.cpp b/src/map/map.cpp
index e394b71b09..7936eaf300 100644
--- a/src/map/map.cpp
+++ b/src/map/map.cpp
@@ -19,6 +19,7 @@
#include <mbgl/util/texturepool.hpp>
#include <mbgl/geometry/sprite_atlas.hpp>
#include <mbgl/util/filesource.hpp>
+#include <mbgl/platform/log.hpp>
#include <algorithm>
#include <memory>
@@ -186,6 +187,24 @@ void Map::setup() {
painter.setup();
}
+void Map::setStyleURL(const std::string &url) {
+ fileSource->load(ResourceType::JSON, url, [&](platform::Response *res) {
+ if (res->code == 200) {
+ // Calculate the base
+ const size_t pos = url.rfind('/');
+ std::string base = "";
+ if (pos != std::string::npos) {
+ base = url.substr(0, pos + 1);
+ }
+
+ this->setStyleJSON(res->body, base);
+ } else {
+ Log::Error(Event::Setup, "loading style failed: %d (%s)", res->code, res->error_message.c_str());
+ }
+ });
+}
+
+
void Map::setStyleJSON(std::string newStyleJSON, const std::string &base) {
styleJSON.swap(newStyleJSON);
sprite.reset();
diff --git a/src/util/filesource.cpp b/src/util/filesource.cpp
index a910d25191..7f184405f8 100644
--- a/src/util/filesource.cpp
+++ b/src/util/filesource.cpp
@@ -1,6 +1,9 @@
#include <mbgl/util/filesource.hpp>
#include <mbgl/platform/platform.hpp>
+#include <fstream>
+#include <sstream>
+
namespace mbgl {
FileSource::FileSource(const std::shared_ptr<uv::loop> &loop)
@@ -18,10 +21,39 @@ const std::string &FileSource::getBase() const {
void FileSource::load(ResourceType type, const std::string &url, std::function<void(platform::Response *)> callback) {
// convert relative URLs to absolute URLs
- // try to load from disk (not yet)
-
- // load from the internet
- platform::request_http(url, callback, loop);
+ const std::string absoluteURL = [&]() -> std::string {
+ const size_t separator = url.find("://");
+ if (separator == std::string::npos) {
+ // Relative URL.
+ return base + url;
+ } else {
+ return url;
+ }
+ }();
+
+ const size_t separator = absoluteURL.find("://");
+ const std::string protocol = separator != std::string::npos ? absoluteURL.substr(0, separator) : "";
+
+ if (protocol == "file") {
+ // load from disk
+ const std::string path = absoluteURL.substr(separator + 3);
+ std::ifstream file(path);
+
+ platform::Response response(callback);
+ if (!file.good()) {
+ response.error_message = "file not found (" + path + ")";
+ } else {
+ std::stringstream data;
+ data << file.rdbuf();
+ response.code = 200;
+ response.body = data.str();
+ }
+
+ callback(&response);
+ } else {
+ // load from the internet
+ platform::request_http(absoluteURL, callback, loop);
+ }
}
} \ No newline at end of file
diff --git a/styles/bright/img/sprite.json b/styles/bright/img/sprite.json
new file mode 100644
index 0000000000..d8fd539f42
--- /dev/null
+++ b/styles/bright/img/sprite.json
@@ -0,0 +1,2818 @@
+{
+ "marker-24": {
+ "x": 0,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "zoo-24": {
+ "x": 26,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "-24": {
+ "x": 0,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "wetland-24": {
+ "x": 26,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "water-24": {
+ "x": 52,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "airfield-24": {
+ "x": 52,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "waste-basket-24": {
+ "x": 0,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "warehouse-24": {
+ "x": 26,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "airport-24": {
+ "x": 52,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "village-24": {
+ "x": 78,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "triangle-stroked-24": {
+ "x": 78,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "alcohol-shop-24": {
+ "x": 78,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "triangle-24": {
+ "x": 0,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "town-hall-24": {
+ "x": 26,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "america-football-24": {
+ "x": 52,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "town-24": {
+ "x": 78,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "toilets-24": {
+ "x": 104,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "art-gallery-24": {
+ "x": 104,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "theatre-24": {
+ "x": 104,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "tennis-24": {
+ "x": 104,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bakery-24": {
+ "x": 0,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "telephone-24": {
+ "x": 26,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "swimming-24": {
+ "x": 52,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bank-24": {
+ "x": 78,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "suitcase-24": {
+ "x": 104,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "star-stroked-24": {
+ "x": 130,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bar-24": {
+ "x": 130,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "star-24": {
+ "x": 130,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "square-stroked-24": {
+ "x": 130,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "baseball-24": {
+ "x": 130,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "square-24": {
+ "x": 0,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "soccer-24": {
+ "x": 26,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "basketball-24": {
+ "x": 52,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "slaughterhouse-24": {
+ "x": 78,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "skiing-24": {
+ "x": 104,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "beer-24": {
+ "x": 130,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "shop-24": {
+ "x": 156,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "scooter-24": {
+ "x": 156,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bicycle-24": {
+ "x": 156,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "school-24": {
+ "x": 156,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rocket-24": {
+ "x": 156,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "building-24": {
+ "x": 156,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "roadblock-24": {
+ "x": 0,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "restaurant-24": {
+ "x": 26,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bus-24": {
+ "x": 52,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "religious-muslim-24": {
+ "x": 78,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "religious-jewish-24": {
+ "x": 104,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cafe-24": {
+ "x": 130,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "religious-christian-24": {
+ "x": 156,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-underground-24": {
+ "x": 182,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "camera-24": {
+ "x": 182,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-metro-24": {
+ "x": 182,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-light-24": {
+ "x": 182,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "campsite-24": {
+ "x": 182,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-above-24": {
+ "x": 182,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-24": {
+ "x": 182,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "car-24": {
+ "x": 0,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "prison-24": {
+ "x": 26,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "post-24": {
+ "x": 52,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cemetery-24": {
+ "x": 78,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "polling-place-24": {
+ "x": 104,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "police-24": {
+ "x": 130,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "chemist-24": {
+ "x": 156,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "playground-24": {
+ "x": 182,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "place-of-worship-24": {
+ "x": 208,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cinema-24": {
+ "x": 208,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "pitch-24": {
+ "x": 208,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "pharmacy-24": {
+ "x": 208,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "circle-24": {
+ "x": 208,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "parking-garage-24": {
+ "x": 208,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "parking-24": {
+ "x": 208,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "circle-stroked-24": {
+ "x": 208,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "park2-24": {
+ "x": 0,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "park-24": {
+ "x": 26,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "city-24": {
+ "x": 52,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "oil-well-24": {
+ "x": 78,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "music-24": {
+ "x": 104,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "clothing-store-24": {
+ "x": 130,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "museum-24": {
+ "x": 156,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "monument-24": {
+ "x": 182,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "college-24": {
+ "x": 208,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "mobilephone-24": {
+ "x": 234,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "minefield-24": {
+ "x": 234,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "commercial-24": {
+ "x": 234,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "marker-stroked-24": {
+ "x": 234,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "london-underground-24": {
+ "x": 234,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cricket-24": {
+ "x": 234,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "logging-24": {
+ "x": 234,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "lodging-24": {
+ "x": 234,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cross-24": {
+ "x": 234,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "lighthouse-24": {
+ "x": 0,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "library-24": {
+ "x": 26,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "dam-24": {
+ "x": 52,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "laundry-24": {
+ "x": 78,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "land-use-24": {
+ "x": 104,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "danger-24": {
+ "x": 130,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "industrial-24": {
+ "x": 156,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "hospital-24": {
+ "x": 182,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "disability-24": {
+ "x": 208,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "heliport-24": {
+ "x": 234,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "heart-24": {
+ "x": 260,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "dog-park-24": {
+ "x": 260,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "harbor-24": {
+ "x": 260,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "hairdresser-24": {
+ "x": 260,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "embassy-24": {
+ "x": 260,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "grocery-24": {
+ "x": 260,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "golf-24": {
+ "x": 260,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "emergency-telephone-24": {
+ "x": 260,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "garden-24": {
+ "x": 260,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "fuel-24": {
+ "x": 260,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "entrance-24": {
+ "x": 0,
+ "y": 260,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "fire-station-24": {
+ "x": 26,
+ "y": 260,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "ferry-24": {
+ "x": 52,
+ "y": 260,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "farm-24": {
+ "x": 78,
+ "y": 260,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "fast-food-24": {
+ "x": 104,
+ "y": 260,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "police-18": {
+ "x": 130,
+ "y": 260,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "fast-food-18": {
+ "x": 150,
+ "y": 260,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "farm-18": {
+ "x": 170,
+ "y": 260,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "fire-station-18": {
+ "x": 190,
+ "y": 260,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "fuel-18": {
+ "x": 210,
+ "y": 260,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "entrance-18": {
+ "x": 230,
+ "y": 260,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "garden-18": {
+ "x": 250,
+ "y": 260,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "golf-18": {
+ "x": 286,
+ "y": 0,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "emergency-telephone-18": {
+ "x": 286,
+ "y": 20,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "grocery-18": {
+ "x": 286,
+ "y": 40,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "hairdresser-18": {
+ "x": 286,
+ "y": 60,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "embassy-18": {
+ "x": 286,
+ "y": 80,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "harbor-18": {
+ "x": 286,
+ "y": 100,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "heart-18": {
+ "x": 286,
+ "y": 120,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "dog-park-18": {
+ "x": 286,
+ "y": 140,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "heliport-18": {
+ "x": 286,
+ "y": 160,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "hospital-18": {
+ "x": 286,
+ "y": 180,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "disability-18": {
+ "x": 286,
+ "y": 200,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "industrial-18": {
+ "x": 286,
+ "y": 220,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "land-use-18": {
+ "x": 286,
+ "y": 240,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "danger-18": {
+ "x": 286,
+ "y": 260,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "laundry-18": {
+ "x": 0,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "library-18": {
+ "x": 20,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "dam-18": {
+ "x": 40,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "lighthouse-18": {
+ "x": 60,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "lodging-18": {
+ "x": 80,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cross-18": {
+ "x": 100,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "logging-18": {
+ "x": 120,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "london-underground-18": {
+ "x": 140,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cricket-18": {
+ "x": 160,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "marker-18": {
+ "x": 180,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "-18": {
+ "x": 200,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "marker-stroked-18": {
+ "x": 220,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "minefield-18": {
+ "x": 240,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "commercial-18": {
+ "x": 260,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "mobilephone-18": {
+ "x": 280,
+ "y": 286,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "monument-18": {
+ "x": 306,
+ "y": 0,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "college-18": {
+ "x": 306,
+ "y": 20,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "motorway_1": {
+ "x": 0,
+ "y": 306,
+ "width": 19,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "motorway_2": {
+ "x": 21,
+ "y": 306,
+ "width": 24,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "motorway_3": {
+ "x": 47,
+ "y": 306,
+ "width": 29,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "motorway_4": {
+ "x": 78,
+ "y": 306,
+ "width": 34,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "motorway_5": {
+ "x": 114,
+ "y": 306,
+ "width": 39,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "motorway_6": {
+ "x": 155,
+ "y": 306,
+ "width": 44,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "museum-18": {
+ "x": 306,
+ "y": 40,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "music-18": {
+ "x": 306,
+ "y": 60,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "clothing-store-18": {
+ "x": 306,
+ "y": 80,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "oil-well-18": {
+ "x": 306,
+ "y": 100,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "park-18": {
+ "x": 306,
+ "y": 120,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "city-18": {
+ "x": 306,
+ "y": 140,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "park2-18": {
+ "x": 306,
+ "y": 160,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "parking-18": {
+ "x": 306,
+ "y": 180,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "circle-stroked-18": {
+ "x": 306,
+ "y": 200,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "parking-garage-18": {
+ "x": 306,
+ "y": 220,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "pharmacy-18": {
+ "x": 306,
+ "y": 240,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "circle-18": {
+ "x": 306,
+ "y": 260,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "pitch-18": {
+ "x": 306,
+ "y": 280,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "place-of-worship-18": {
+ "x": 201,
+ "y": 306,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cinema-18": {
+ "x": 221,
+ "y": 306,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "playground-18": {
+ "x": 241,
+ "y": 306,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "ferry-18": {
+ "x": 261,
+ "y": 306,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "chemist-18": {
+ "x": 281,
+ "y": 306,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "polling-place-18": {
+ "x": 301,
+ "y": 306,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "post-18": {
+ "x": 326,
+ "y": 0,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cemetery-18": {
+ "x": 326,
+ "y": 20,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "prison-18": {
+ "x": 326,
+ "y": 40,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-18": {
+ "x": 326,
+ "y": 60,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "car-18": {
+ "x": 326,
+ "y": 80,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-above-18": {
+ "x": 326,
+ "y": 100,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-light-18": {
+ "x": 326,
+ "y": 120,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "campsite-18": {
+ "x": 326,
+ "y": 140,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-metro-18": {
+ "x": 326,
+ "y": 160,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-underground-18": {
+ "x": 326,
+ "y": 180,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "camera-18": {
+ "x": 326,
+ "y": 200,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "religious-christian-18": {
+ "x": 326,
+ "y": 220,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "religious-jewish-18": {
+ "x": 326,
+ "y": 240,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cafe-18": {
+ "x": 326,
+ "y": 260,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "religious-muslim-18": {
+ "x": 326,
+ "y": 280,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "restaurant-18": {
+ "x": 326,
+ "y": 300,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bus-18": {
+ "x": 0,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "roadblock-18": {
+ "x": 20,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rocket-18": {
+ "x": 40,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "building-18": {
+ "x": 60,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "school-18": {
+ "x": 80,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "scooter-18": {
+ "x": 100,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bicycle-18": {
+ "x": 120,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "shop-18": {
+ "x": 140,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "skiing-18": {
+ "x": 160,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "beer-18": {
+ "x": 180,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "slaughterhouse-18": {
+ "x": 200,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "soccer-18": {
+ "x": 220,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "basketball-18": {
+ "x": 240,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "square-18": {
+ "x": 260,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "square-stroked-18": {
+ "x": 280,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "baseball-18": {
+ "x": 300,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "star-18": {
+ "x": 320,
+ "y": 326,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "star-stroked-18": {
+ "x": 346,
+ "y": 0,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bar-18": {
+ "x": 346,
+ "y": 20,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "suitcase-18": {
+ "x": 346,
+ "y": 40,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "swimming-18": {
+ "x": 346,
+ "y": 60,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bank-18": {
+ "x": 346,
+ "y": 80,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "telephone-18": {
+ "x": 346,
+ "y": 100,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "tennis-18": {
+ "x": 346,
+ "y": 120,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bakery-18": {
+ "x": 346,
+ "y": 140,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "theatre-18": {
+ "x": 346,
+ "y": 160,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "toilets-18": {
+ "x": 346,
+ "y": 180,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "art-gallery-18": {
+ "x": 346,
+ "y": 200,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "town-18": {
+ "x": 346,
+ "y": 220,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "town-hall-18": {
+ "x": 346,
+ "y": 240,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "america-football-18": {
+ "x": 346,
+ "y": 260,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "triangle-18": {
+ "x": 346,
+ "y": 280,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "triangle-stroked-18": {
+ "x": 346,
+ "y": 300,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "alcohol-shop-18": {
+ "x": 346,
+ "y": 320,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "village-18": {
+ "x": 0,
+ "y": 346,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "warehouse-18": {
+ "x": 20,
+ "y": 346,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "airport-18": {
+ "x": 40,
+ "y": 346,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "waste-basket-18": {
+ "x": 60,
+ "y": 346,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "water-18": {
+ "x": 80,
+ "y": 346,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "airfield-18": {
+ "x": 100,
+ "y": 346,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "zoo-18": {
+ "x": 120,
+ "y": 346,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "wetland-18": {
+ "x": 140,
+ "y": 346,
+ "width": 18,
+ "height": 18,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cricket-12": {
+ "x": 270,
+ "y": 260,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "prison-12": {
+ "x": 160,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "minefield-12": {
+ "x": 174,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cemetery-12": {
+ "x": 188,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-12": {
+ "x": 202,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "fuel-12": {
+ "x": 216,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "grocery-12": {
+ "x": 230,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-above-12": {
+ "x": 244,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "mobilephone-12": {
+ "x": 258,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "car-12": {
+ "x": 272,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-light-12": {
+ "x": 286,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "industrial-12": {
+ "x": 300,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "commercial-12": {
+ "x": 314,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-metro-12": {
+ "x": 328,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "monument-12": {
+ "x": 342,
+ "y": 346,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "campsite-12": {
+ "x": 366,
+ "y": 0,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rail-underground-12": {
+ "x": 366,
+ "y": 14,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "ferry-12": {
+ "x": 366,
+ "y": 28,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "disability-12": {
+ "x": 366,
+ "y": 42,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "religious-christian-12": {
+ "x": 366,
+ "y": 56,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "land-use-12": {
+ "x": 366,
+ "y": 70,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "camera-12": {
+ "x": 366,
+ "y": 84,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "religious-jewish-12": {
+ "x": 366,
+ "y": 98,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "emergency-telephone-12": {
+ "x": 366,
+ "y": 112,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "hairdresser-12": {
+ "x": 366,
+ "y": 126,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "religious-muslim-12": {
+ "x": 366,
+ "y": 140,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "laundry-12": {
+ "x": 366,
+ "y": 154,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cafe-12": {
+ "x": 366,
+ "y": 168,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "restaurant-12": {
+ "x": 366,
+ "y": 182,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "fire-station-12": {
+ "x": 366,
+ "y": 196,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "danger-12": {
+ "x": 366,
+ "y": 210,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "roadblock-12": {
+ "x": 366,
+ "y": 224,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "museum-12": {
+ "x": 366,
+ "y": 238,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bus-12": {
+ "x": 366,
+ "y": 252,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "rocket-12": {
+ "x": 366,
+ "y": 266,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "library-12": {
+ "x": 366,
+ "y": 280,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "college-12": {
+ "x": 366,
+ "y": 294,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "school-12": {
+ "x": 366,
+ "y": 308,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "music-12": {
+ "x": 366,
+ "y": 322,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "building-12": {
+ "x": 366,
+ "y": 336,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "scooter-12": {
+ "x": 366,
+ "y": 350,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "garden-12": {
+ "x": 0,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "harbor-12": {
+ "x": 14,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "shop-12": {
+ "x": 28,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "oil-well-12": {
+ "x": 42,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bicycle-12": {
+ "x": 56,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "skiing-12": {
+ "x": 70,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "lighthouse-12": {
+ "x": 84,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "clothing-store-12": {
+ "x": 98,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "slaughterhouse-12": {
+ "x": 112,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "park-12": {
+ "x": 126,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "beer-12": {
+ "x": 140,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "soccer-12": {
+ "x": 154,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "-12": {
+ "x": 168,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "dam-12": {
+ "x": 182,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "square-12": {
+ "x": 196,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "park2-12": {
+ "x": 210,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "basketball-12": {
+ "x": 224,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "square-stroked-12": {
+ "x": 238,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "lodging-12": {
+ "x": 252,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "city-12": {
+ "x": 266,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "star-12": {
+ "x": 280,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "parking-12": {
+ "x": 294,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "baseball-12": {
+ "x": 308,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "star-stroked-12": {
+ "x": 322,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "embassy-12": {
+ "x": 336,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "heart-12": {
+ "x": 350,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "suitcase-12": {
+ "x": 364,
+ "y": 366,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "parking-garage-12": {
+ "x": 380,
+ "y": 0,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bar-12": {
+ "x": 380,
+ "y": 14,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "swimming-12": {
+ "x": 380,
+ "y": 28,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "logging-12": {
+ "x": 380,
+ "y": 42,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "circle-stroked-12": {
+ "x": 380,
+ "y": 56,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "telephone-12": {
+ "x": 380,
+ "y": 70,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "pharmacy-12": {
+ "x": 380,
+ "y": 84,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bank-12": {
+ "x": 380,
+ "y": 98,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "tennis-12": {
+ "x": 380,
+ "y": 112,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "entrance-12": {
+ "x": 380,
+ "y": 126,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cross-12": {
+ "x": 380,
+ "y": 140,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "theatre-12": {
+ "x": 380,
+ "y": 154,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "pitch-12": {
+ "x": 380,
+ "y": 168,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "bakery-12": {
+ "x": 380,
+ "y": 182,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "toilets-12": {
+ "x": 380,
+ "y": 196,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "london-underground-12": {
+ "x": 380,
+ "y": 210,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "circle-12": {
+ "x": 380,
+ "y": 224,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "town-12": {
+ "x": 380,
+ "y": 238,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "place-of-worship-12": {
+ "x": 380,
+ "y": 252,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "art-gallery-12": {
+ "x": 380,
+ "y": 266,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "town-hall-12": {
+ "x": 380,
+ "y": 280,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "golf-12": {
+ "x": 380,
+ "y": 294,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "heliport-12": {
+ "x": 380,
+ "y": 308,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "triangle-12": {
+ "x": 380,
+ "y": 322,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "playground-12": {
+ "x": 380,
+ "y": 336,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "america-football-12": {
+ "x": 380,
+ "y": 350,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "triangle-stroked-12": {
+ "x": 380,
+ "y": 364,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "marker-12": {
+ "x": 0,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "cinema-12": {
+ "x": 14,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "village-12": {
+ "x": 28,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "police-12": {
+ "x": 42,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "alcohol-shop-12": {
+ "x": 56,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "warehouse-12": {
+ "x": 70,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "farm-12": {
+ "x": 84,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "dog-park-12": {
+ "x": 98,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "waste-basket-12": {
+ "x": 112,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "polling-place-12": {
+ "x": 126,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "airport-12": {
+ "x": 140,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "water-12": {
+ "x": 154,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "marker-stroked-12": {
+ "x": 168,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "fast-food-12": {
+ "x": 182,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "post-12": {
+ "x": 196,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "wetland-12": {
+ "x": 210,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "hospital-12": {
+ "x": 224,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "airfield-12": {
+ "x": 238,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "zoo-12": {
+ "x": 252,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "chemist-12": {
+ "x": 266,
+ "y": 380,
+ "width": 12,
+ "height": 12,
+ "pixelRatio": 1,
+ "sdf": false
+ },
+ "wave": {
+ "x": 280,
+ "y": 380,
+ "width": 16,
+ "height": 8,
+ "pixelRatio": 1,
+ "sdf": false
+ }
+} \ No newline at end of file
diff --git a/styles/bright/img/sprite.png b/styles/bright/img/sprite.png
new file mode 100644
index 0000000000..34ef6124b8
--- /dev/null
+++ b/styles/bright/img/sprite.png
Binary files differ
diff --git a/styles/bright/img/sprite@2x.json b/styles/bright/img/sprite@2x.json
new file mode 100644
index 0000000000..b15134a6a8
--- /dev/null
+++ b/styles/bright/img/sprite@2x.json
@@ -0,0 +1,2818 @@
+{
+ "marker-24": {
+ "x": 0,
+ "y": 0,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "zoo-24": {
+ "x": 50,
+ "y": 0,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "-24": {
+ "x": 0,
+ "y": 50,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "wetland-24": {
+ "x": 50,
+ "y": 50,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "water-24": {
+ "x": 100,
+ "y": 0,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "airfield-24": {
+ "x": 100,
+ "y": 50,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "waste-basket-24": {
+ "x": 0,
+ "y": 100,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "warehouse-24": {
+ "x": 50,
+ "y": 100,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "airport-24": {
+ "x": 100,
+ "y": 100,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "village-24": {
+ "x": 150,
+ "y": 0,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "triangle-stroked-24": {
+ "x": 150,
+ "y": 50,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "alcohol-shop-24": {
+ "x": 150,
+ "y": 100,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "triangle-24": {
+ "x": 0,
+ "y": 150,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "town-hall-24": {
+ "x": 50,
+ "y": 150,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "america-football-24": {
+ "x": 100,
+ "y": 150,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "town-24": {
+ "x": 150,
+ "y": 150,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "toilets-24": {
+ "x": 200,
+ "y": 0,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "art-gallery-24": {
+ "x": 200,
+ "y": 50,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "theatre-24": {
+ "x": 200,
+ "y": 100,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "tennis-24": {
+ "x": 200,
+ "y": 150,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bakery-24": {
+ "x": 0,
+ "y": 200,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "telephone-24": {
+ "x": 50,
+ "y": 200,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "swimming-24": {
+ "x": 100,
+ "y": 200,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bank-24": {
+ "x": 150,
+ "y": 200,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "suitcase-24": {
+ "x": 200,
+ "y": 200,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "star-stroked-24": {
+ "x": 250,
+ "y": 0,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bar-24": {
+ "x": 250,
+ "y": 50,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "star-24": {
+ "x": 250,
+ "y": 100,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "square-stroked-24": {
+ "x": 250,
+ "y": 150,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "baseball-24": {
+ "x": 250,
+ "y": 200,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "square-24": {
+ "x": 0,
+ "y": 250,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "soccer-24": {
+ "x": 50,
+ "y": 250,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "basketball-24": {
+ "x": 100,
+ "y": 250,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "slaughterhouse-24": {
+ "x": 150,
+ "y": 250,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "skiing-24": {
+ "x": 200,
+ "y": 250,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "beer-24": {
+ "x": 250,
+ "y": 250,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "shop-24": {
+ "x": 300,
+ "y": 0,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "scooter-24": {
+ "x": 300,
+ "y": 50,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bicycle-24": {
+ "x": 300,
+ "y": 100,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "school-24": {
+ "x": 300,
+ "y": 150,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rocket-24": {
+ "x": 300,
+ "y": 200,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "building-24": {
+ "x": 300,
+ "y": 250,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "roadblock-24": {
+ "x": 0,
+ "y": 300,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "restaurant-24": {
+ "x": 50,
+ "y": 300,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bus-24": {
+ "x": 100,
+ "y": 300,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "religious-muslim-24": {
+ "x": 150,
+ "y": 300,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "religious-jewish-24": {
+ "x": 200,
+ "y": 300,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cafe-24": {
+ "x": 250,
+ "y": 300,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "religious-christian-24": {
+ "x": 300,
+ "y": 300,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-underground-24": {
+ "x": 350,
+ "y": 0,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "camera-24": {
+ "x": 350,
+ "y": 50,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-metro-24": {
+ "x": 350,
+ "y": 100,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-light-24": {
+ "x": 350,
+ "y": 150,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "campsite-24": {
+ "x": 350,
+ "y": 200,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-above-24": {
+ "x": 350,
+ "y": 250,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-24": {
+ "x": 350,
+ "y": 300,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "car-24": {
+ "x": 0,
+ "y": 350,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "prison-24": {
+ "x": 50,
+ "y": 350,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "post-24": {
+ "x": 100,
+ "y": 350,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cemetery-24": {
+ "x": 150,
+ "y": 350,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "polling-place-24": {
+ "x": 200,
+ "y": 350,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "police-24": {
+ "x": 250,
+ "y": 350,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "chemist-24": {
+ "x": 300,
+ "y": 350,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "playground-24": {
+ "x": 350,
+ "y": 350,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "place-of-worship-24": {
+ "x": 400,
+ "y": 0,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cinema-24": {
+ "x": 400,
+ "y": 50,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "pitch-24": {
+ "x": 400,
+ "y": 100,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "pharmacy-24": {
+ "x": 400,
+ "y": 150,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "circle-24": {
+ "x": 400,
+ "y": 200,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "parking-garage-24": {
+ "x": 400,
+ "y": 250,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "parking-24": {
+ "x": 400,
+ "y": 300,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "circle-stroked-24": {
+ "x": 400,
+ "y": 350,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "park2-24": {
+ "x": 0,
+ "y": 400,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "park-24": {
+ "x": 50,
+ "y": 400,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "city-24": {
+ "x": 100,
+ "y": 400,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "oil-well-24": {
+ "x": 150,
+ "y": 400,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "music-24": {
+ "x": 200,
+ "y": 400,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "clothing-store-24": {
+ "x": 250,
+ "y": 400,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "museum-24": {
+ "x": 300,
+ "y": 400,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "monument-24": {
+ "x": 350,
+ "y": 400,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "college-24": {
+ "x": 400,
+ "y": 400,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "mobilephone-24": {
+ "x": 450,
+ "y": 0,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "minefield-24": {
+ "x": 450,
+ "y": 50,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "commercial-24": {
+ "x": 450,
+ "y": 100,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "marker-stroked-24": {
+ "x": 450,
+ "y": 150,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "london-underground-24": {
+ "x": 450,
+ "y": 200,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cricket-24": {
+ "x": 450,
+ "y": 250,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "logging-24": {
+ "x": 450,
+ "y": 300,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "lodging-24": {
+ "x": 450,
+ "y": 350,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cross-24": {
+ "x": 450,
+ "y": 400,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "lighthouse-24": {
+ "x": 0,
+ "y": 450,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "library-24": {
+ "x": 50,
+ "y": 450,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "dam-24": {
+ "x": 100,
+ "y": 450,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "laundry-24": {
+ "x": 150,
+ "y": 450,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "land-use-24": {
+ "x": 200,
+ "y": 450,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "danger-24": {
+ "x": 250,
+ "y": 450,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "industrial-24": {
+ "x": 300,
+ "y": 450,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "hospital-24": {
+ "x": 350,
+ "y": 450,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "disability-24": {
+ "x": 400,
+ "y": 450,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "heliport-24": {
+ "x": 450,
+ "y": 450,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "heart-24": {
+ "x": 500,
+ "y": 0,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "dog-park-24": {
+ "x": 500,
+ "y": 50,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "harbor-24": {
+ "x": 500,
+ "y": 100,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "hairdresser-24": {
+ "x": 500,
+ "y": 150,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "embassy-24": {
+ "x": 500,
+ "y": 200,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "grocery-24": {
+ "x": 500,
+ "y": 250,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "golf-24": {
+ "x": 500,
+ "y": 300,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "emergency-telephone-24": {
+ "x": 500,
+ "y": 350,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "garden-24": {
+ "x": 500,
+ "y": 400,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "fuel-24": {
+ "x": 500,
+ "y": 450,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "entrance-24": {
+ "x": 0,
+ "y": 500,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "fire-station-24": {
+ "x": 50,
+ "y": 500,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "ferry-24": {
+ "x": 100,
+ "y": 500,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "farm-24": {
+ "x": 150,
+ "y": 500,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "fast-food-24": {
+ "x": 200,
+ "y": 500,
+ "width": 48,
+ "height": 48,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "police-18": {
+ "x": 250,
+ "y": 500,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "fast-food-18": {
+ "x": 288,
+ "y": 500,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "farm-18": {
+ "x": 326,
+ "y": 500,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "fire-station-18": {
+ "x": 364,
+ "y": 500,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "fuel-18": {
+ "x": 402,
+ "y": 500,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "entrance-18": {
+ "x": 440,
+ "y": 500,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "garden-18": {
+ "x": 478,
+ "y": 500,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "golf-18": {
+ "x": 550,
+ "y": 0,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "emergency-telephone-18": {
+ "x": 550,
+ "y": 38,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "grocery-18": {
+ "x": 550,
+ "y": 76,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "hairdresser-18": {
+ "x": 550,
+ "y": 114,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "embassy-18": {
+ "x": 550,
+ "y": 152,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "harbor-18": {
+ "x": 550,
+ "y": 190,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "heart-18": {
+ "x": 550,
+ "y": 228,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "dog-park-18": {
+ "x": 550,
+ "y": 266,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "heliport-18": {
+ "x": 550,
+ "y": 304,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "hospital-18": {
+ "x": 550,
+ "y": 342,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "disability-18": {
+ "x": 550,
+ "y": 380,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "industrial-18": {
+ "x": 550,
+ "y": 418,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "land-use-18": {
+ "x": 550,
+ "y": 456,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "danger-18": {
+ "x": 550,
+ "y": 494,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "laundry-18": {
+ "x": 0,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "library-18": {
+ "x": 38,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "dam-18": {
+ "x": 76,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "lighthouse-18": {
+ "x": 114,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "lodging-18": {
+ "x": 152,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cross-18": {
+ "x": 190,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "logging-18": {
+ "x": 228,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "london-underground-18": {
+ "x": 266,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cricket-18": {
+ "x": 304,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "marker-18": {
+ "x": 342,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "-18": {
+ "x": 380,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "marker-stroked-18": {
+ "x": 418,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "minefield-18": {
+ "x": 456,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "commercial-18": {
+ "x": 494,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "mobilephone-18": {
+ "x": 532,
+ "y": 550,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "monument-18": {
+ "x": 588,
+ "y": 0,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "college-18": {
+ "x": 588,
+ "y": 38,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "motorway_1": {
+ "x": 0,
+ "y": 588,
+ "width": 38,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "motorway_2": {
+ "x": 40,
+ "y": 588,
+ "width": 48,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "motorway_3": {
+ "x": 90,
+ "y": 588,
+ "width": 58,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "motorway_4": {
+ "x": 150,
+ "y": 588,
+ "width": 68,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "motorway_5": {
+ "x": 220,
+ "y": 588,
+ "width": 78,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "motorway_6": {
+ "x": 300,
+ "y": 588,
+ "width": 88,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "museum-18": {
+ "x": 588,
+ "y": 76,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "music-18": {
+ "x": 588,
+ "y": 114,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "clothing-store-18": {
+ "x": 588,
+ "y": 152,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "oil-well-18": {
+ "x": 588,
+ "y": 190,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "park-18": {
+ "x": 588,
+ "y": 228,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "city-18": {
+ "x": 588,
+ "y": 266,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "park2-18": {
+ "x": 588,
+ "y": 304,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "parking-18": {
+ "x": 588,
+ "y": 342,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "circle-stroked-18": {
+ "x": 588,
+ "y": 380,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "parking-garage-18": {
+ "x": 588,
+ "y": 418,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "pharmacy-18": {
+ "x": 588,
+ "y": 456,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "circle-18": {
+ "x": 588,
+ "y": 494,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "pitch-18": {
+ "x": 588,
+ "y": 532,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "place-of-worship-18": {
+ "x": 390,
+ "y": 588,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cinema-18": {
+ "x": 428,
+ "y": 588,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "playground-18": {
+ "x": 466,
+ "y": 588,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "ferry-18": {
+ "x": 504,
+ "y": 588,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "chemist-18": {
+ "x": 542,
+ "y": 588,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "polling-place-18": {
+ "x": 580,
+ "y": 588,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "post-18": {
+ "x": 626,
+ "y": 0,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cemetery-18": {
+ "x": 626,
+ "y": 38,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "prison-18": {
+ "x": 626,
+ "y": 76,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-18": {
+ "x": 626,
+ "y": 114,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "car-18": {
+ "x": 626,
+ "y": 152,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-above-18": {
+ "x": 626,
+ "y": 190,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-light-18": {
+ "x": 626,
+ "y": 228,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "campsite-18": {
+ "x": 626,
+ "y": 266,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-metro-18": {
+ "x": 626,
+ "y": 304,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-underground-18": {
+ "x": 626,
+ "y": 342,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "camera-18": {
+ "x": 626,
+ "y": 380,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "religious-christian-18": {
+ "x": 626,
+ "y": 418,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "religious-jewish-18": {
+ "x": 626,
+ "y": 456,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cafe-18": {
+ "x": 626,
+ "y": 494,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "religious-muslim-18": {
+ "x": 626,
+ "y": 532,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "restaurant-18": {
+ "x": 626,
+ "y": 570,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bus-18": {
+ "x": 0,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "roadblock-18": {
+ "x": 38,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rocket-18": {
+ "x": 76,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "building-18": {
+ "x": 114,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "school-18": {
+ "x": 152,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "scooter-18": {
+ "x": 190,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bicycle-18": {
+ "x": 228,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "shop-18": {
+ "x": 266,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "skiing-18": {
+ "x": 304,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "beer-18": {
+ "x": 342,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "slaughterhouse-18": {
+ "x": 380,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "soccer-18": {
+ "x": 418,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "basketball-18": {
+ "x": 456,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "square-18": {
+ "x": 494,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "square-stroked-18": {
+ "x": 532,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "baseball-18": {
+ "x": 570,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "star-18": {
+ "x": 608,
+ "y": 626,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "star-stroked-18": {
+ "x": 664,
+ "y": 0,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bar-18": {
+ "x": 664,
+ "y": 38,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "suitcase-18": {
+ "x": 664,
+ "y": 76,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "swimming-18": {
+ "x": 664,
+ "y": 114,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bank-18": {
+ "x": 664,
+ "y": 152,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "telephone-18": {
+ "x": 664,
+ "y": 190,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "tennis-18": {
+ "x": 664,
+ "y": 228,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bakery-18": {
+ "x": 664,
+ "y": 266,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "theatre-18": {
+ "x": 664,
+ "y": 304,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "toilets-18": {
+ "x": 664,
+ "y": 342,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "art-gallery-18": {
+ "x": 664,
+ "y": 380,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "town-18": {
+ "x": 664,
+ "y": 418,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "town-hall-18": {
+ "x": 664,
+ "y": 456,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "america-football-18": {
+ "x": 664,
+ "y": 494,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "triangle-18": {
+ "x": 664,
+ "y": 532,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "triangle-stroked-18": {
+ "x": 664,
+ "y": 570,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "alcohol-shop-18": {
+ "x": 664,
+ "y": 608,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "village-18": {
+ "x": 0,
+ "y": 664,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "warehouse-18": {
+ "x": 38,
+ "y": 664,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "airport-18": {
+ "x": 76,
+ "y": 664,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "waste-basket-18": {
+ "x": 114,
+ "y": 664,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "water-18": {
+ "x": 152,
+ "y": 664,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "airfield-18": {
+ "x": 190,
+ "y": 664,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "zoo-18": {
+ "x": 228,
+ "y": 664,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "wetland-18": {
+ "x": 266,
+ "y": 664,
+ "width": 36,
+ "height": 36,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cricket-12": {
+ "x": 516,
+ "y": 500,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "prison-12": {
+ "x": 304,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "minefield-12": {
+ "x": 330,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cemetery-12": {
+ "x": 356,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-12": {
+ "x": 382,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "fuel-12": {
+ "x": 408,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "grocery-12": {
+ "x": 434,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-above-12": {
+ "x": 460,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "mobilephone-12": {
+ "x": 486,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "car-12": {
+ "x": 512,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-light-12": {
+ "x": 538,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "industrial-12": {
+ "x": 564,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "commercial-12": {
+ "x": 590,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-metro-12": {
+ "x": 616,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "monument-12": {
+ "x": 642,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "campsite-12": {
+ "x": 668,
+ "y": 664,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rail-underground-12": {
+ "x": 702,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "ferry-12": {
+ "x": 702,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "disability-12": {
+ "x": 702,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "religious-christian-12": {
+ "x": 702,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "land-use-12": {
+ "x": 702,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "camera-12": {
+ "x": 702,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "religious-jewish-12": {
+ "x": 702,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "emergency-telephone-12": {
+ "x": 702,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "hairdresser-12": {
+ "x": 702,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "religious-muslim-12": {
+ "x": 702,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "laundry-12": {
+ "x": 702,
+ "y": 260,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cafe-12": {
+ "x": 702,
+ "y": 286,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "restaurant-12": {
+ "x": 702,
+ "y": 312,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "fire-station-12": {
+ "x": 702,
+ "y": 338,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "danger-12": {
+ "x": 702,
+ "y": 364,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "roadblock-12": {
+ "x": 702,
+ "y": 390,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "museum-12": {
+ "x": 702,
+ "y": 416,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bus-12": {
+ "x": 702,
+ "y": 442,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "rocket-12": {
+ "x": 702,
+ "y": 468,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "library-12": {
+ "x": 702,
+ "y": 494,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "college-12": {
+ "x": 702,
+ "y": 520,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "school-12": {
+ "x": 702,
+ "y": 546,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "music-12": {
+ "x": 702,
+ "y": 572,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "building-12": {
+ "x": 702,
+ "y": 598,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "scooter-12": {
+ "x": 702,
+ "y": 624,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "garden-12": {
+ "x": 702,
+ "y": 650,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "harbor-12": {
+ "x": 702,
+ "y": 676,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "shop-12": {
+ "x": 0,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "oil-well-12": {
+ "x": 26,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bicycle-12": {
+ "x": 52,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "skiing-12": {
+ "x": 78,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "lighthouse-12": {
+ "x": 104,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "clothing-store-12": {
+ "x": 130,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "slaughterhouse-12": {
+ "x": 156,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "park-12": {
+ "x": 182,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "beer-12": {
+ "x": 208,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "soccer-12": {
+ "x": 234,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "-12": {
+ "x": 260,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "dam-12": {
+ "x": 286,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "square-12": {
+ "x": 312,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "park2-12": {
+ "x": 338,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "basketball-12": {
+ "x": 364,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "square-stroked-12": {
+ "x": 390,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "lodging-12": {
+ "x": 416,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "city-12": {
+ "x": 442,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "star-12": {
+ "x": 468,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "parking-12": {
+ "x": 494,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "baseball-12": {
+ "x": 520,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "star-stroked-12": {
+ "x": 546,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "embassy-12": {
+ "x": 572,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "heart-12": {
+ "x": 598,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "suitcase-12": {
+ "x": 624,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "parking-garage-12": {
+ "x": 650,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bar-12": {
+ "x": 676,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "swimming-12": {
+ "x": 702,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "logging-12": {
+ "x": 728,
+ "y": 0,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "circle-stroked-12": {
+ "x": 728,
+ "y": 26,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "telephone-12": {
+ "x": 728,
+ "y": 52,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "pharmacy-12": {
+ "x": 728,
+ "y": 78,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bank-12": {
+ "x": 728,
+ "y": 104,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "tennis-12": {
+ "x": 728,
+ "y": 130,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "entrance-12": {
+ "x": 728,
+ "y": 156,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cross-12": {
+ "x": 728,
+ "y": 182,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "theatre-12": {
+ "x": 728,
+ "y": 208,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "pitch-12": {
+ "x": 728,
+ "y": 234,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "bakery-12": {
+ "x": 728,
+ "y": 260,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "toilets-12": {
+ "x": 728,
+ "y": 286,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "london-underground-12": {
+ "x": 728,
+ "y": 312,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "circle-12": {
+ "x": 728,
+ "y": 338,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "town-12": {
+ "x": 728,
+ "y": 364,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "place-of-worship-12": {
+ "x": 728,
+ "y": 390,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "art-gallery-12": {
+ "x": 728,
+ "y": 416,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "town-hall-12": {
+ "x": 728,
+ "y": 442,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "golf-12": {
+ "x": 728,
+ "y": 468,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "heliport-12": {
+ "x": 728,
+ "y": 494,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "triangle-12": {
+ "x": 728,
+ "y": 520,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "playground-12": {
+ "x": 728,
+ "y": 546,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "america-football-12": {
+ "x": 728,
+ "y": 572,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "triangle-stroked-12": {
+ "x": 728,
+ "y": 598,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "marker-12": {
+ "x": 728,
+ "y": 624,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "cinema-12": {
+ "x": 728,
+ "y": 650,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "village-12": {
+ "x": 728,
+ "y": 676,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "police-12": {
+ "x": 728,
+ "y": 702,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "alcohol-shop-12": {
+ "x": 0,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "warehouse-12": {
+ "x": 26,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "farm-12": {
+ "x": 52,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "dog-park-12": {
+ "x": 78,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "waste-basket-12": {
+ "x": 104,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "polling-place-12": {
+ "x": 130,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "airport-12": {
+ "x": 156,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "water-12": {
+ "x": 182,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "marker-stroked-12": {
+ "x": 208,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "fast-food-12": {
+ "x": 234,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "post-12": {
+ "x": 260,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "wetland-12": {
+ "x": 286,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "hospital-12": {
+ "x": 312,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "airfield-12": {
+ "x": 338,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "zoo-12": {
+ "x": 364,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "chemist-12": {
+ "x": 390,
+ "y": 728,
+ "width": 24,
+ "height": 24,
+ "pixelRatio": 2,
+ "sdf": false
+ },
+ "wave": {
+ "x": 664,
+ "y": 646,
+ "width": 32,
+ "height": 16,
+ "pixelRatio": 2,
+ "sdf": false
+ }
+} \ No newline at end of file
diff --git a/styles/bright/img/sprite@2x.png b/styles/bright/img/sprite@2x.png
new file mode 100644
index 0000000000..ef7c1f45d1
--- /dev/null
+++ b/styles/bright/img/sprite@2x.png
Binary files differ
diff --git a/styles/bright/style.json b/styles/bright/style.json
new file mode 100644
index 0000000000..1ee81a499b
--- /dev/null
+++ b/styles/bright/style.json
@@ -0,0 +1,1336 @@
+{
+ "version": 4,
+ "sprite": "img/sprite",
+ "glyphs": "https://mapbox.s3.amazonaws.com/gl-glyphs-256/{fontstack}/{range}.pbf",
+ "constants": {
+ "@name": "{name_en}",
+ "@sans": "Open Sans Regular, Arial Unicode MS Regular",
+ "@sans_it": "Open Sans Italic, Arial Unicode MS Regular",
+ "@sans_md": "Open Sans Semibold, Arial Unicode MS Bold",
+ "@sans_bd": "Open Sans Bold, Arial Unicode MS Bold",
+ "@land": "#f8f4f0",
+ "@water": "#a0c8f0",
+ "@admin": "#446",
+ "@park": "#d8e8c8",
+ "@cemetary": "#e0e4dd",
+ "@hospital": "#fde",
+ "@school": "#f0e8f8",
+ "@wood": "#6a4",
+ "@building": "#f2eae2",
+ "@building_shadow": "#dfdbd7",
+ "@building_color_transition": {
+ "base": 1,
+ "stops": [[15.5, "#f2eae2"], [16, "#dfdbd7"]]
+ },
+ "@building_opacity": {"base": 1, "stops": [[15, 0], [16, 1]]},
+ "@aeroway": "#f0ede9",
+ "@motorway": "#fc8",
+ "@motorway_casing": "#e9ac77",
+ "@motorway_tunnel": "#ffdaa6",
+ "@main": "#fea",
+ "@main_tunnel": "#fff4c6",
+ "@street": "#fff",
+ "@street_limited": "#f3f3f3",
+ "@street_casing": "#cfcdca",
+ "@path": "#cba",
+ "@rail": "#bbb",
+ "@text": "#334",
+ "@text_halo": "rgba(255,255,255,0.8)",
+ "@marine_text": "#74aee9",
+ "@marine_text_halo": "rgba(255,255,255,0.7)",
+ "@poi_text": "#666",
+ "@poi_text_halo": "#ffffff",
+ "@maki": "#666",
+ "@point_translate": [0, -30],
+ "@tunnel_line_dasharray": [{
+ "base": 1.5, "stops": [[12, 6], [20, 9]]
+ }, {
+ "base": 1.5, "stops": [[12, 2], [20, 3]]
+ }],
+ "@motorway_width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 18]]},
+ "@motorway_casing_width": {"base": 1.2, "stops": [[5, 0.4], [6, 0.6], [7, 1.5], [20, 22]]},
+ "@motorway_link_width": {"base": 1.2, "stops": [[12.5, 0], [13, 1.5], [20, 10]]},
+ "@motorway_link_casing_width": {"base": 1.2, "stops": [[12, 1], [13, 3], [20, 13]]},
+ "@main_width": {"base": 1.2, "stops": [[6.5, 0], [7, 0.5], [20, 14]]},
+ "@main_casing_width": {"base": 1.2, "stops": [[5, 0.1], [6, 0.2], [7, 1.5], [20, 18]]},
+ "@street_width": {"base": 1.2, "stops": [[13.5, 0], [14, 2.5], [20, 11.5]]},
+ "@street_casing_width": {"base": 1.2, "stops": [[12, 0.5], [13, 1], [14, 4], [20, 15]]},
+ "@street_casing_opacity": {"stops": [[12, 0], [12.5, 1]]},
+ "@service_casing_width": {"base": 1.2, "stops": [[15, 1], [16, 4], [20, 11]]},
+ "@service_width": {"base": 1.2, "stops": [[15.5, 0], [16, 2], [20, 7.5]]},
+ "@path_width": {"base": 1.2, "stops": [[15, 1.2], [20, 4]]},
+ "@path_line_dasharray": [{
+ "base": 1.2, "stops": [[15, 2], [20, 4]]
+ },{
+ "base": 1.2, "stops": [[15, 1], [20, 2]]
+ }],
+ "@rail_width": {"base": 1.4, "stops": [[14, 0.4], [15, 0.75], [20, 2]]},
+ "@rail_hatch_width": {"base": 1.4, "stops": [[14.5, 0], [15, 3], [20, 8]]},
+ "@rail_hatch_line_dasharray": [2, 30],
+ "@admin_level_3_width": {
+ "base": 1,
+ "stops": [[4, 0.4], [5, 1], [12, 3]]
+ },
+ "@admin_level_2_width": {
+ "base": 1,
+ "stops": [[4, 1.4], [5, 2], [12, 8]]
+ }
+ },
+ "sources": {
+ "mapbox": {
+ "type": "vector",
+ "url": "mapbox://mapbox.mapbox-streets-v6-dev",
+ "maxZoom": 15
+ }
+ },
+ "layers": [{
+ "id": "background",
+ "style": {
+ "background-color": "@land"
+ },
+ "type": "background"
+ }, {
+ "id": "landuse_park",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "park" },
+ "style": {
+ "fill-color": "@park"
+ },
+ "type": "fill"
+ }, {
+ "id": "landuse_cemetary",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "cemetary" },
+ "style": {
+ "fill-color": "@cemetary"
+ },
+ "type": "fill"
+ }, {
+ "id": "landuse_hospital",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "hospital" },
+ "style": {
+ "fill-color": "@hospital"
+ },
+ "type": "fill"
+ }, {
+ "id": "landuse_school",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "school" },
+ "style": {
+ "fill-color": "@school"
+ },
+ "type": "fill"
+ }, {
+ "id": "landuse_wood",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "wood" },
+ "style": {
+ "fill-color": "@wood",
+ "fill-opacity": 0.1
+ },
+ "type": "fill"
+ }, {
+ "id": "waterway",
+ "source": "mapbox",
+ "source-layer": "waterway",
+ "filter": {
+ "class": {
+ "!=": ["river", "stream", "canal"]
+ }
+ },
+ "render": {
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "@water",
+ "line-width": {
+ "base": 1.3,
+ "stops": [[13, 0.5], [20, 2]]
+ }
+ },
+ "type": "line"
+ }, {
+ "id": "waterway_river",
+ "source": "mapbox",
+ "source-layer": "waterway",
+ "filter": { "class": "river" },
+ "render": {
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "@water",
+ "line-width": {
+ "base": 1.2,
+ "stops": [[11, 0.5], [20, 6]]
+ }
+ },
+ "type": "line"
+ }, {
+ "id": "waterway_stream_canal",
+ "source": "mapbox",
+ "source-layer": "waterway",
+ "filter": { "class": ["stream", "canal"] },
+ "render": {
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "@water",
+ "line-width": {
+ "base": 1.3,
+ "stops": [[13, 0.5], [20, 6]]
+ }
+ },
+ "type": "line"
+ }, {
+ "id": "water",
+ "source": "mapbox",
+ "source-layer": "water",
+ "style": {
+ "fill-color": "@water"
+ },
+ "type": "fill"
+ }, {
+ "id": "water_offset",
+ "source": "mapbox",
+ "source-layer": "water",
+ "type": "fill",
+ "style": {
+ "fill-color": "white",
+ "fill-opacity": 0.3,
+ "fill-translate": [0, 2.5]
+ }
+ }, {
+ "id": "water_pattern",
+ "ref": "water",
+ "style": {
+ "fill-image": "wave",
+ "fill-translate": [0, 2.5]
+ }
+ }, {
+ "id": "aeroway_fill",
+ "source": "mapbox",
+ "source-layer": "aeroway",
+ "min-zoom": 11,
+ "filter": {
+ "$type": "Polygon"
+ },
+ "style": {
+ "fill-color": "@aeroway",
+ "fill-opacity": 0.7
+ },
+ "type": "fill"
+ }, {
+ "id": "aeroway_runway",
+ "source": "mapbox",
+ "source-layer": "aeroway",
+ "min-zoom": 11,
+ "filter": {
+ "$type": "LineString",
+ "type": "runway" },
+ "style": {
+ "line-color": "@aeroway",
+ "line-width": {
+ "base": 1.2,
+ "stops": [[11, 3], [20, 16]]
+ }
+ },
+ "type": "line"
+ }, {
+ "id": "aeroway_taxiway",
+ "source": "mapbox",
+ "source-layer": "aeroway",
+ "min-zoom": 11,
+ "filter": {
+ "$type": "LineString",
+ "type": "taxiway" },
+ "style": {
+ "line-color": "@aeroway",
+ "line-width": {
+ "base": 1.2,
+ "stops": [[11, 0.5], [20, 6]]
+ }
+ },
+ "type": "line"
+ }, {
+ "id": "building",
+ "source": "mapbox",
+ "source-layer": "building",
+ "style": {
+ "fill-color": "@building_color_transition"
+ },
+ "type": "fill"
+ }, {
+ "id": "building_top",
+ "ref": "building",
+ "style": {
+ "fill-color": "@building",
+ "fill-opacity": "@building_opacity",
+ "fill-translate": [{
+ "base": 1,
+ "stops": [[15, 0], [16, -2] ]
+ }, {
+ "base": 1,
+ "stops": [[15, 0], [16, -2] ]
+ }],
+ "fill-outline-color": "@building_shadow"
+ }
+ }, {
+ "id": "tunnel_motorway_link_casing",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": "motorway_link" },
+ "render": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@motorway_casing",
+ "line-dasharray": "@tunnel_line_dasharray",
+ "line-width": "@motorway_link_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "tunnel_service_casing",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": "service" },
+ "render": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@street_casing",
+ "line-dasharray": "@tunnel_line_dasharray",
+ "line-width": "@service_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "tunnel_street_casing",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": ["street", "street_limited"] },
+ "render": {
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@street_casing",
+ "line-dasharray": [7, 2],
+ "line-width": "@street_casing_width",
+ "line-opacity": "@street_casing_opacity"
+ },
+ "type": "line"
+ }, {
+ "id": "tunnel_main_casing",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": "main" },
+ "render": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@motorway_casing",
+ "line-dasharray": "@tunnel_line_dasharray",
+ "line-width": "@main_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "tunnel_motorway_casing",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": "motorway" },
+ "render": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@motorway_casing",
+ "line-dasharray": "@tunnel_line_dasharray",
+ "line-width": "@motorway_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "tunnel_path",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": "path" },
+ "type": "line",
+ "style": {
+ "line-color": "@path",
+ "line-dasharray": "@path_line_dasharray",
+ "line-width": "@path_width"
+ }
+ }, {
+ "id": "tunnel_motorway_link",
+ "ref": "tunnel_motorway_link_casing",
+ "style": {
+ "line-color": "@motorway",
+ "line-width": "@motorway_link_width"
+ }
+ }, {
+ "id": "tunnel_service",
+ "ref": "tunnel_service_casing",
+ "style": {
+ "line-color": "@street",
+ "line-width": "@service_width"
+ }
+ }, {
+ "id": "tunnel_street",
+ "ref": "tunnel_street_casing",
+ "style": {
+ "line-color": "@street",
+ "line-width": "@street_width"
+ }
+ }, {
+ "id": "tunnel_main",
+ "ref": "tunnel_main_casing",
+ "style": {
+ "line-color": "@main_tunnel",
+ "line-width": "@main_width"
+ }
+ }, {
+ "id": "tunnel_motorway",
+ "ref": "tunnel_motorway_casing",
+ "style": {
+ "line-color": "@motorway_tunnel",
+ "line-width": "@motorway_width"
+ }
+ }, {
+ "id": "tunnel_major_rail",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": "major_rail" },
+ "style": {
+ "line-color": "@rail",
+ "line-width": "@rail_width"
+ },
+ "type": "line"
+ }, {
+ "id": "tunnel_major_rail_hatching",
+ "ref": "tunnel_major_rail",
+ "style": {
+ "line-color": "@rail",
+ "line-dasharray": "@rail_hatch_line_dasharray",
+ "line-width": "@rail_hatch_width"
+ }
+ }, {
+ "id": "road_motorway_link_casing",
+ "source": "mapbox",
+ "source-layer": "road",
+ "min-zoom": 12,
+ "filter": { "class": "motorway_link" },
+ "render": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@motorway_casing",
+ "line-width": "@motorway_link_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "road_service_casing",
+ "source": "mapbox",
+ "source-layer": "road",
+ "filter": { "class": "service" },
+ "render": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@street_casing",
+ "line-width": "@service_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "road_street_casing",
+ "source": "mapbox",
+ "source-layer": "road",
+ "filter": { "class": ["street", "street_limited"], "$type": "LineString" },
+ "render": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@street_casing",
+ "line-width": "@street_casing_width",
+ "line-opacity": "@street_casing_opacity"
+ },
+ "type": "line"
+ }, {
+ "id": "road_main_casing",
+ "source": "mapbox",
+ "source-layer": "road",
+ "filter": { "class": "main" },
+ "render": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@motorway_casing",
+ "line-width": "@main_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "road_motorway_casing",
+ "source": "mapbox",
+ "source-layer": "road",
+ "min-zoom": 5,
+ "filter": { "class": "motorway" },
+ "render": {
+ "line-cap": "round",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@motorway_casing",
+ "line-width": "@motorway_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "road_path",
+ "source": "mapbox",
+ "source-layer": "road",
+ "filter": { "class": "path" },
+ "style": {
+ "line-color": "@path",
+ "line-dasharray": "@path_line_dasharray",
+ "line-width": "@path_width"
+ },
+ "type": "line"
+ }, {
+ "id": "road_motorway_link",
+ "ref": "road_motorway_link_casing",
+ "style": {
+ "line-color": "@motorway",
+ "line-width": "@motorway_link_width"
+ }
+ }, {
+ "id": "road_service",
+ "ref": "road_service_casing",
+ "style": {
+ "line-color": "@street",
+ "line-width": "@service_width"
+ }
+ }, {
+ "id": "road_street",
+ "ref": "road_street_casing",
+ "style": {
+ "line-color": "@street",
+ "line-width": "@street_width"
+ }
+ }, {
+ "id": "road_main",
+ "ref": "road_main_casing",
+ "style": {
+ "line-color": "@main",
+ "line-width": "@main_width"
+ }
+ }, {
+ "id": "road_motorway",
+ "ref": "road_motorway_casing",
+ "style": {
+ "line-color": "@motorway",
+ "line-width": "@motorway_width"
+ },
+ "type": "line"
+ }, {
+ "id": "road_major_rail",
+ "source": "mapbox",
+ "source-layer": "road",
+ "filter": { "class": "major_rail" },
+ "style": {
+ "line-color": "@rail",
+ "line-width": "@rail_width"
+ },
+ "type": "line"
+ }, {
+ "id": "road_major_rail_hatching",
+ "ref": "road_major_rail",
+ "style": {
+ "line-color": "@rail",
+ "line-dasharray": "@rail_hatch_line_dasharray",
+ "line-width": "@rail_hatch_width"
+ }
+ }, {
+ "id": "bridge_motorway_link_casing",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "motorway_link" },
+ "render": {
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@motorway_casing",
+ "line-width": "@motorway_link_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "bridge_motorway_casing",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "motorway" },
+ "render": {
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@motorway_casing",
+ "line-width": "@motorway_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "bridge_service_casing",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "service" },
+ "render": {
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@street_casing",
+ "line-width": "@service_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "bridge_street_casing",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": ["street", "street_limited"] },
+ "render": {
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@street_casing",
+ "line-width": "@street_casing_width",
+ "line-opacity": "@street_casing_opacity"
+ },
+ "type": "line"
+ }, {
+ "id": "bridge_main_casing",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "main" },
+ "render": {
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@motorway_casing",
+ "line-width": "@main_casing_width"
+ },
+ "type": "line"
+ }, {
+ "id": "bridge_path",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "path" },
+ "style": {
+ "line-color": "@path",
+ "line-dasharray": "@path_line_dasharray",
+ "line-width": "@path_width"
+ },
+ "type": "line"
+ }, {
+ "id": "bridge_motorway_link",
+ "ref": "bridge_motorway_link_casing",
+ "style": {
+ "line-color": "@motorway",
+ "line-width": "@motorway_link_width"
+ }
+ }, {
+ "id": "bridge_service",
+ "ref": "bridge_service_casing",
+ "style": {
+ "line-color": "@street",
+ "line-width": "@service_width"
+ }
+ }, {
+ "id": "bridge_street",
+ "ref": "bridge_street_casing",
+ "style": {
+ "line-color": "@street",
+ "line-width": "@street_width"
+ }
+ }, {
+ "id": "bridge_main",
+ "ref": "bridge_main_casing",
+ "style": {
+ "line-color": "@main",
+ "line-width": "@main_width"
+ }
+ }, {
+ "id": "bridge_motorway",
+ "ref": "bridge_motorway_casing",
+ "style": {
+ "line-color": "@motorway",
+ "line-width": "@motorway_width"
+ }
+ }, {
+ "id": "bridge_major_rail",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "major_rail" },
+ "style": {
+ "line-color": "@rail",
+ "line-width": "@rail_width"
+ },
+ "type": "line"
+ }, {
+ "id": "bridge_major_rail_hatching",
+ "ref": "bridge_major_rail",
+ "style": {
+ "line-color": "@rail",
+ "line-dasharray": "@rail_hatch_line_dasharray",
+ "line-width": "@rail_hatch_width"
+ }
+ }, {
+ "id": "admin",
+ "type": "composite",
+ "style": {
+ "composite-opacity": 0.5
+ },
+ "layers": [{
+ "id": "admin_level_3",
+ "source": "mapbox",
+ "source-layer": "admin",
+ "filter": {
+ "admin_level": {">=": 3},
+ "maritime": 0
+ },
+ "render": {
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@admin",
+ "line-dasharray": [10, 3],
+ "line-width": "@admin_level_3_width"
+ },
+ "type": "line"
+ }, {
+ "id": "admin_level_2",
+ "source": "mapbox",
+ "source-layer": "admin",
+ "filter": {
+ "admin_level": 2,
+ "disputed": 0,
+ "maritime": 0
+ },
+ "render": {
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "@admin",
+ "line-width": "@admin_level_2_width"
+ },
+ "type": "line"
+ }, {
+ "id": "admin_level_2_disputed",
+ "source": "mapbox",
+ "source-layer": "admin",
+ "filter": {
+ "admin_level": 2,
+ "disputed": 1,
+ "maritime": 0
+ },
+ "render": {
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "@admin",
+ "line-dasharray": [4, 4],
+ "line-width": "@admin_level_2_width"
+ },
+ "type": "line"
+ }, {
+ "id": "admin_level_3_maritime",
+ "source": "mapbox",
+ "source-layer": "admin",
+ "filter": {
+ "admin_level": {">=": 3},
+ "maritime": 1
+ },
+ "render": {
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "@water",
+ "line-dasharray": [10, 3],
+ "line-width": "@admin_level_3_width"
+ },
+ "type": "line"
+ }, {
+ "id": "admin_level_2_maritime",
+ "source": "mapbox",
+ "source-layer": "admin",
+ "filter": {
+ "admin_level": 2,
+ "maritime": 1
+ },
+ "render": {
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "@water",
+ "line-width": "@admin_level_2_width"
+ },
+ "type": "line"
+ }]
+ }, {
+ "id": "country_label_line",
+ "source": "mapbox",
+ "source-layer": "country_label_line",
+ "style": {
+ "line-color": "@text",
+ "line-opacity": 0.5
+ },
+ "type": "line"
+ }, {
+ "id": "country_label_1",
+ "source": "mapbox",
+ "source-layer": "country_label",
+ "filter": {
+ "scalerank": 1
+ },
+ "render": {
+ "text-font": "@sans_bd",
+ "text-field": "@name",
+ "text-max-width": 6.25,
+ "text-transform": "uppercase",
+ "text-max-size": 17
+ },
+ "style": {
+ "text-color": "@text",
+ "text-halo-color": "@text_halo",
+ "text-halo-width": 2,
+ "text-halo-blur": 1,
+ "text-size": {
+ "stops": [[2, 13], [4, 17]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "country_label_2",
+ "source": "mapbox",
+ "source-layer": "country_label",
+ "filter": {
+ "scalerank": 2
+ },
+ "render": {
+ "text-font": "@sans_bd",
+ "text-field": "{name_en}",
+ "text-max-width": 6.25,
+ "text-transform": "uppercase",
+ "text-max-size": 17
+ },
+ "style": {
+ "text-color": "@text",
+ "text-halo-color": "@text_halo",
+ "text-halo-width": 2,
+ "text-halo-blur": 1,
+ "text-size": {
+ "stops": [[3, 13], [5, 17]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "country_label_3",
+ "source": "mapbox",
+ "source-layer": "country_label",
+ "filter": {
+ "scalerank": 3
+ },
+ "render": {
+ "text-font": "@sans_bd",
+ "text-field": "@name",
+ "text-max-width": 6.25,
+ "text-transform": "uppercase",
+ "text-max-size": 17
+ },
+ "style": {
+ "text-color": "@text",
+ "text-halo-color": "@text_halo",
+ "text-halo-width": 2,
+ "text-halo-blur": 1,
+ "text-size": {
+ "stops": [[4, 13], [7, 17]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "country_label_4",
+ "source": "mapbox",
+ "source-layer": "country_label",
+ "filter": {
+ "scalerank": {">=": 4}
+ },
+ "render": {
+ "text-font": "@sans_bd",
+ "text-field": "@name",
+ "text-max-width": 6.25,
+ "text-transform": "uppercase",
+ "text-max-size": 15
+ },
+ "style": {
+ "text-color": "@text",
+ "text-halo-color": "@text_halo",
+ "text-halo-width": 2,
+ "text-halo-blur": 1,
+ "text-size": {
+ "stops": [[5, 13], [6, 15]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "marine_label_point_1",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": {"labelrank": 1, "$type": "Point"},
+ "render": {
+ "text-font": "@sans_it",
+ "text-field": "@name",
+ "text-max-size": 22,
+ "text-max-width": 5,
+ "text-letter-spacing": 0.2,
+ "text-line-height": 1.6,
+ "symbol-placement": "point",
+ "text-offset": [0, 2.4]
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-halo-color": "@marine_text_halo",
+ "text-halo-width": 0.75,
+ "text-halo-blur": 0.75,
+ "text-size": {
+ "stops": [[3, 18], [4, 22]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "marine_label_line_1",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": {"labelrank": 1, "$type": "LineString"},
+ "render": {
+ "text-font": "@sans_it",
+ "text-field": "@name",
+ "text-max-size": 14,
+ "text-letter-spacing": 0.2,
+ "symbol-placement": "line"
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-halo-color": "@marine_text_halo",
+ "text-halo-width": 0.75,
+ "text-halo-blur": 0.75,
+ "text-size": {
+ "stops": [[3, 18], [4, 22]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "marine_label_point_2",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": {"labelrank": 2, "$type": "Point"},
+ "render": {
+ "text-font": "@sans_it",
+ "text-field": "@name",
+ "text-max-size": 16,
+ "text-max-width": 5,
+ "text-letter-spacing": 0.2,
+ "symbol-placement": "point"
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-halo-color": "@marine_text_halo",
+ "text-halo-width": 0.75,
+ "text-halo-blur": 0.75,
+ "text-size": {
+ "stops": [[3, 14], [4, 16]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "marine_label_line_2",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": {"labelrank": 2, "$type": "LineString"},
+ "render": {
+ "text-font": "@sans_it",
+ "text-field": "@name",
+ "text-max-size": 16,
+ "text-letter-spacing": 0.2,
+ "symbol-placement": "line"
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-halo-color": "@marine_text_halo",
+ "text-halo-width": 0.75,
+ "text-halo-blur": 0.75,
+ "text-size": {
+ "stops": [[3, 14], [4, 16]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "marine_label_3",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": {"labelrank": 3, "$type": "Point"},
+ "render": {
+ "text-font": "@sans_it",
+ "text-field": "@name",
+ "text-max-size": 14,
+ "text-max-width": 5,
+ "text-letter-spacing": 0.2,
+ "symbol-placement": "point"
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-halo-color": "@marine_text_halo",
+ "text-halo-width": 0.75,
+ "text-halo-blur": 0.75,
+ "text-size": {
+ "stops": [[3, 11], [4, 14]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "marine_label_line_3",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": {"labelrank": 3, "$type": "LineString"},
+ "render": {
+ "text-font": "@sans_it",
+ "text-field": "@name",
+ "text-max-size": 14,
+ "text-letter-spacing": 0.2,
+ "symbol-placement": "line"
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-halo-color": "@marine_text_halo",
+ "text-halo-width": 0.75,
+ "text-halo-blur": 0.75,
+ "text-size": {
+ "stops": [[3, 11], [4, 14]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "marine_label_4",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": {"labelrank": {">=": 4}, "$type": "Point"},
+ "render": {
+ "text-font": "@sans_it",
+ "text-field": "@name",
+ "text-max-size": 12,
+ "text-max-width": 6,
+ "text-letter-spacing": 0.2,
+ "symbol-placement": "point"
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-halo-color": "@marine_text_halo",
+ "text-halo-width": 0.75,
+ "text-halo-blur": 0.75,
+ "text-size": {
+ "stops": [[3, 11], [4, 12]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "marine_label_line_4",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": {"labelrank": {">=": 4}, "$type": "LineString"},
+ "render": {
+ "text-font": "@sans_it",
+ "text-field": "@name",
+ "text-max-size": 12,
+ "text-letter-spacing": 0.2,
+ "symbol-placement": "line"
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-halo-color": "@marine_text_halo",
+ "text-halo-width": 0.75,
+ "text-halo-blur": 0.75,
+ "text-size": {
+ "stops": [[3, 11], [4, 12]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "place_label_city",
+ "source": "mapbox",
+ "source-layer": "place_label",
+ "filter": { "type": "city" },
+ "render": {
+ "text-font": "@sans_md",
+ "text-field": "@name",
+ "text-max-size": 24,
+ "text-max-width": 8
+ },
+ "style": {
+ "text-color": "#333",
+ "text-halo-color": "@text_halo",
+ "text-halo-width": 1.2,
+ "text-size": {
+ "base": 1.2,
+ "stops": [[7, 14], [11, 24]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "place_label_town",
+ "source": "mapbox",
+ "source-layer": "place_label",
+ "filter": { "type": "town" },
+ "render": {
+ "text-font": "@sans",
+ "text-field": "@name",
+ "text-max-size": 24,
+ "text-max-width": 8
+ },
+ "style": {
+ "text-color": "#333",
+ "text-halo-color": "@text_halo",
+ "text-halo-width": 1.2,
+ "text-size": {
+ "base": 1.2,
+ "stops": [[10, 14], [15, 24]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "place_label_village",
+ "source": "mapbox",
+ "source-layer": "place_label",
+ "filter": { "type": "village" },
+ "render": {
+ "text-font": "@sans",
+ "text-field": "@name",
+ "text-max-size": 22,
+ "text-max-width": 8
+ },
+ "style": {
+ "text-color": "#333",
+ "text-halo-color": "@text_halo",
+ "text-halo-width": 1.2,
+ "text-size": {
+ "base": 1.2,
+ "stops": [[10, 12], [15, 22]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "road_label_highway_shields",
+ "source": "mapbox",
+ "source-layer": "road_label",
+ "filter": {"class": "motorway", "reflen": [1,2,3,4,5,6]},
+ "render": {
+ "symbol-placement": "line",
+ "symbol-min-distance": 500,
+ "icon-image": "motorway_{reflen}",
+ "icon-max-size": 1,
+ "text-field": "{ref}",
+ "text-font": "@sans_bd",
+ "text-max-size": 11,
+ "text-rotation-alignment": "viewport",
+ "icon-rotation-alignment": "viewport"
+ },
+ "style": {
+ "text-color": "#765",
+ "text-size": 11
+ },
+ "type": "symbol"
+ }, {
+ "id": "road_label",
+ "source": "mapbox",
+ "source-layer": "road_label",
+ "filter": { "$type": "LineString" },
+ "render": {
+ "text-font": "@sans",
+ "text-field": "@name",
+ "text-max-size": 13,
+ "symbol-placement": "line"
+ },
+ "style": {
+ "text-color": "#765",
+ "text-halo-color": "#fff",
+ "text-halo-width": 1,
+ "text-halo-blur": 0.5,
+ "text-size": {
+ "stops": [[13, 12], [14, 13]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "place_label_other",
+ "source": "mapbox",
+ "source-layer": "place_label",
+ "filter": { "type": ["hamlet", "suburb", "neighbourhood"] },
+ "render": {
+ "text-font": "@sans_bd",
+ "text-transform": "uppercase",
+ "text-letter-spacing": 0.1,
+ "text-field": "@name",
+ "text-max-size": 14,
+ "text-max-width": 9
+ },
+ "style": {
+ "text-color": "#633",
+ "text-halo-color": "@text_halo",
+ "text-halo-width": 1.2,
+ "text-size": {
+ "base": 1.2,
+ "stops": [[12, 10], [15, 14]]
+ }
+ },
+ "type": "symbol"
+ }, {
+ "id": "poi_label_1",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "$type": "Point", "scalerank": 1 },
+ "render": {
+ "icon-image": "{maki}-12",
+ "text-font": "@sans_md",
+ "text-field": "@name",
+ "text-max-size": 12,
+ "text-max-width": 9,
+ "text-padding": 2,
+ "text-offset": [0, 0.6],
+ "text-vertical-align": "top"
+ },
+ "style": {
+ "text-color": "@poi_text",
+ "text-size": 12,
+ "text-halo-color": "@poi_text_halo",
+ "text-halo-width": 1,
+ "text-halo-blur": 0.5
+ },
+ "min-zoom": 13,
+ "type": "symbol"
+ }, {
+ "id": "poi_label_2",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "$type": "Point", "scalerank": 2 },
+ "render": {
+ "icon-image": "{maki}-12",
+ "text-font": "@sans_md",
+ "text-field": "@name",
+ "text-max-size": 12,
+ "text-max-width": 9,
+ "text-padding": 2,
+ "text-offset": [0, 0.6],
+ "text-vertical-align": "top"
+ },
+ "style": {
+ "text-color": "@poi_text",
+ "text-size": 12,
+ "text-halo-color": "@poi_text_halo",
+ "text-halo-width": 1,
+ "text-halo-blur": 0.5
+ },
+ "min-zoom": 14,
+ "type": "symbol"
+ }, {
+ "id": "poi_label_3",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "$type": "Point", "scalerank": 3 },
+ "render": {
+ "icon-image": "{maki}-12",
+ "text-font": "@sans_md",
+ "text-field": "@name",
+ "text-max-size": 12,
+ "text-max-width": 9,
+ "text-padding": 2,
+ "text-offset": [0, 0.6],
+ "text-vertical-align": "top"
+ },
+ "style": {
+ "text-color": "@poi_text",
+ "text-size": 12,
+ "text-halo-color": "@poi_text_halo",
+ "text-halo-width": 1,
+ "text-halo-blur": 0.5
+ },
+ "min-zoom": 15,
+ "type": "symbol"
+ }, {
+ "id": "poi_label_4",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "$type": "Point", "scalerank": 4 },
+ "render": {
+ "icon-image": "{maki}-12",
+ "text-font": "@sans_md",
+ "text-field": "@name",
+ "text-max-size": 12,
+ "text-max-width": 9,
+ "text-padding": 2,
+ "text-offset": [0, 0.6],
+ "text-vertical-align": "top"
+ },
+ "style": {
+ "text-color": "@poi_text",
+ "text-size": 12,
+ "text-halo-color": "@poi_text_halo",
+ "text-halo-width": 1,
+ "text-halo-blur": 0.5
+ },
+ "min-zoom": 16,
+ "type": "symbol"
+ }, {
+ "id": "poi_label_other",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "$type": "Point", "scalerank": {">=": 5} },
+ "render": {
+ "icon-image": "{maki}-12",
+ "text-font": "@sans_md",
+ "text-field": "@name",
+ "text-max-size": 12,
+ "text-max-width": 9,
+ "text-padding": 2,
+ "text-offset": [0, 0.6],
+ "text-vertical-align": "top"
+ },
+ "style": {
+ "text-color": "@poi_text",
+ "text-size": 12,
+ "text-halo-color": "@poi_text_halo",
+ "text-halo-width": 1,
+ "text-halo-blur": 0.5
+ },
+ "min-zoom": 17,
+ "type": "symbol"
+ }, {
+ "id": "water_label",
+ "source": "mapbox",
+ "source-layer": "water_label",
+ "filter": { "$type": "Point" },
+ "render": {
+ "text-font": "@sans_it",
+ "text-field": "@name",
+ "text-max-size": 12,
+ "text-max-width": 5
+ },
+ "style": {
+ "text-size": 12,
+ "text-color": "@marine_text",
+ "text-halo-width": 1.5,
+ "text-halo-color": "@marine_text_halo"
+ },
+ "type": "symbol"
+ }]
+} \ No newline at end of file