diff options
52 files changed, 385 insertions, 9544 deletions
diff --git a/.gitignore b/.gitignore index f8bb8a0b27..c907dbdec5 100644 --- a/.gitignore +++ b/.gitignore @@ -3,16 +3,12 @@ *.o *.actual.png *.diff.png -/node_modules /mason_packages /config.gypi /config-ios.gypi /config/constants_local.cpp /build -/bin/node_modules /include/mbgl/shader/shaders.hpp /src/shader/shaders_gl.cpp /src/shader/shaders_gles2.cpp /bin/style.bin.js -/test/fixtures/styles/index.html -/test/fixtures/style_parser/styles diff --git a/.gitmodules b/.gitmodules index a1359e7398..588802377e 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,15 @@ [submodule "ios/mapbox-gl-cocoa"] path = ios/mapbox-gl-cocoa url = https://github.com/mapbox/mapbox-gl-cocoa.git + +[submodule "test/suite"] + path = test/suite + url = https://github.com/mapbox/mapbox-gl-test-suite.git + +[submodule ".mason"] + path = .mason + url = https://github.com/mapbox/mason.git + +[submodule "styles"] + path = styles + url = https://github.com/mapbox/mapbox-gl-styles.git diff --git a/.mason b/.mason new file mode 160000 +Subproject 462fe28479ea700943abd2fde15b03038a168da diff --git a/.travis.yml b/.travis.yml index 065856d605..a7c7109f03 100644 --- a/.travis.yml +++ b/.travis.yml @@ -25,15 +25,15 @@ env: - LD_LIBRARY_PATH: '/usr/local/lib' before_install: +- source ./scripts/local_mason.sh - source ./scripts/travis_helper.sh - source ./scripts/flags.sh -- (git clone https://github.com/mapbox/mason.git ~/.mason ; sudo ln -s ~/.mason/mason /usr/local/bin/mason) - ./scripts/travis_before_install.sh +- if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then export LD_LIBRARY_PATH=`mason prefix mesa 10.3.1`/lib; fi - if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then glxinfo; fi install: - make config.gypi -- ./scripts/travis_install_test_suite.sh - ulimit -c before_script: @@ -16,7 +16,6 @@ implemented in C++11, currently targeting iOS, OS X, and Ubuntu Linux. - `pkg-config` (for build only) - [Homebrew](http://brew.sh) (for build on OS X) - Python 2.x (for build only) - - Node.js (for build only) # Build instructions diff --git a/bin/build-shaders.js b/bin/build-shaders.js deleted file mode 100755 index 329f8063f7..0000000000 --- a/bin/build-shaders.js +++ /dev/null @@ -1,133 +0,0 @@ -#!/usr/bin/env node -'use strict'; - -var fs = require('fs'); -var path = require('path'); -var mkdirp = require('mkdirp'); - -try { var glsl = require('mapbox-glsl-optimizer'); } catch(err) {} - -module.exports = function(shader_type, prefix, suffix) { - var name; - var shaders = {}; - - var shaderFiles = fs.readdirSync('src/shader'); - - // Load shaders - for (var i = 0; i < shaderFiles.length; i++) { - var parts = shaderFiles[i].match(/^(.+)\.(vertex|fragment)\.glsl$/); - if (parts) { - name = parts[1]; - var type = parts[2]; - if (!(name in shaders)) { - shaders[name] = {}; - } - shaders[name][type] = fs.readFileSync(path.join('src/shader', shaderFiles[i]), 'utf8'); - } - } - - var preamble = ''; - if (shader_type == 'gles2' || shader_type == 'gles3') { - preamble = 'precision highp float;'; - } else { - preamble = '#version 120'; - } - - for (var name in shaders) { - shaders[name].vertex = preamble + '\n' + shaders[name].vertex; - shaders[name].fragment = preamble + '\n' + shaders[name].fragment; - } - - // Optimize shader - if (glsl) { - var target = shader_type == 'gles2' ? glsl.TARGET_OPENGLES20 : (shader_type == 'gles3' ? glsl.TARGET_OPENGLES30 : glsl.TARGET_OPENGL); - - var compiler = new glsl.Compiler(target); - for (name in shaders) { - var vertex_shader = new glsl.Shader(compiler, glsl.VERTEX_SHADER, shaders[name].vertex); - if (vertex_shader.compiled()) { - shaders[name].vertex = vertex_shader.output(); - } else { - console.warn('failed to optimize %s vertex shader', name); - process.exit(1); - } - vertex_shader.dispose(); - - var fragment_shader = new glsl.Shader(compiler, glsl.FRAGMENT_SHADER, shaders[name].fragment); - if (fragment_shader.compiled()) { - shaders[name].fragment = fragment_shader.output(); - } else { - console.warn('failed to optimize %s fragment shader', name); - process.exit(1); - } - fragment_shader.dispose(); - } - compiler.dispose(); - } else { - console.warn('Not optimizing shaders'); - } - - - // Save to file - var lines = []; - var consts = []; - for (var name in shaders) { - consts.push(name.toUpperCase() + '_SHADER'); - - var line = ''; - line += ' {\n'; - line += ' ' + JSON.stringify(shaders[name].vertex) + ',\n'; - line += ' ' + JSON.stringify(shaders[name].fragment) + ',\n'; - line += ' }'; - lines.push(line); - } - - var header = '// NOTE: DO NOT CHANGE THIS FILE. IT IS AUTOMATICALLY GENERATED.\n\n'; - header += '#ifndef MBGL_SHADER_SHADERS\n'; - header += '#define MBGL_SHADER_SHADERS\n'; - header += '\n'; - header += 'namespace mbgl {\n'; - header += '\n'; - header += 'struct shader_source {\n'; - header += ' const char *vertex;\n'; - header += ' const char *fragment;\n'; - header += '};\n'; - header += '\n'; - header += 'enum {\n'; - consts.push('SHADER_COUNT'); - header += ' ' + consts.join(',\n ') + '\n'; - header += '};\n'; - header += '\n'; - header += 'extern const shader_source shaders[SHADER_COUNT];\n'; - header += '\n'; - header += '}\n'; - header += '\n'; - header += '#endif\n'; - - - var code = '// NOTE: DO NOT CHANGE THIS FILE. IT IS AUTOMATICALLY GENERATED.\n'; - code += '#include <mbgl/platform/gl.hpp>\n'; - code += prefix + '\n'; - code += '#include <mbgl/shader/shaders.hpp>\n'; - code += '\n'; - code += 'namespace mbgl {\n'; - code += '\n'; - code += 'const shader_source shaders[SHADER_COUNT] = {\n'; - code += lines.join(',\n'); - code += '\n};\n'; - code += '\n}\n'; - code += suffix + '\n'; - - var header_path = path.join(process.argv[2], 'include/mbgl/shader/shaders.hpp'); - mkdirp.sync(path.dirname(header_path)); - fs.writeFileSync(header_path, header); - console.warn('wrote file ' + header_path); - var file_path = path.join(process.argv[2], 'src/shader/shaders_' + shader_type + '.cpp'); - mkdirp.sync(path.dirname(file_path)); - fs.writeFileSync(file_path, code); - console.warn('wrote file ' + file_path); - -}; - -module.exports('gl', '#ifndef GL_ES_VERSION_2_0', '#endif'); -module.exports('gles2', '#ifdef GL_ES_VERSION_2_0', '#endif'); diff --git a/bin/lazy-update.js b/bin/lazy-update.js deleted file mode 100644 index 0f3ea81ac5..0000000000 --- a/bin/lazy-update.js +++ /dev/null @@ -1,12 +0,0 @@ -var fs = require('fs'); - -module.exports = function(file, content) { - try { - var existing = fs.readFileSync(file, 'utf8'); - if (existing != content) { - fs.writeFileSync(file, content); - } - } catch(err) { - fs.writeFileSync(file, content); - } -}; diff --git a/bin/package.json b/bin/package.json deleted file mode 100644 index 1df8454600..0000000000 --- a/bin/package.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "name": "mbgl-native", - "version": "0.0.1", - "dependencies": { - "mapbox-glsl-optimizer": "~0.1.0", - "mkdirp": "^0.5.0" - } -} @@ -2,52 +2,32 @@ set -e set -o pipefail -shopt -s expand_aliases CONFIG_FILE=${1:-config.gypi} +if [ `uname -s` = 'Darwin' ]; then + MASON_PLATFORM=${MASON_PLATFORM:-osx} +fi + function finish { >&2 echo -en "\033[0m"; } trap finish EXIT -# Install node -if [[ ! -d ~/.nvm ]]; then - git clone --depth 1 https://github.com/creationix/nvm.git ~/.nvm -fi -set +u -. ~/.nvm/nvm.sh -if [ ! `nvm use 0.10 > /dev/null; echo $?` = 0 ]; then - >&2 echo -en "\033[1m\033[32m* " - nvm install 0.10 - >&2 echo -en "\033[0m"; -else - >&2 echo -en "\033[1m\033[32m* " - nvm use 0.10 - >&2 echo -en "\033[0m"; -fi - # Install mason -if [[ ! -d ~/.mason ]]; then - >&2 echo -e "\033[1m\033[32m* Installing Mason\033[0m" - git clone https://github.com/mapbox/mason.git ~/.mason -fi -alias mason='~/.mason/mason' - +. ./scripts/local_mason.sh -case $MASON_PLATFORM in +case ${MASON_PLATFORM} in 'ios') SQLITE_VERSION=system - LIBPNG_VERSION=1.6.13 LIBUV_VERSION=0.10.28 ZLIB_VERSION=system BOOST_VERSION=system - NUNICODE_VERSION=1.4 ;; *) GLFW_VERSION=a21f2377 SQLITE_VERSION=system - LIBPNG_VERSION=system + LIBPNG_VERSION=1.6.13 LIBCURL_VERSION=system LIBUV_VERSION=0.10.28 ZLIB_VERSION=system @@ -58,14 +38,8 @@ esac function abort { >&2 echo -e "\033[1m\033[31m$1\033[0m"; exit 1; } -NODE=`which node || abort 'Cannot find node'` -NPM=`which npm || abort 'Cannot find npm'` PYTHON=`which python || abort 'Cannot find python'` ->&2 echo -en "\033[1m\033[32m* Using npm " ->&2 ${NPM} --version ->&2 echo -en "\033[0m"; - >&2 echo -en "\033[1m\033[32m* Using " >&2 ${PYTHON} --version >&2 echo -en "\033[0m"; @@ -86,8 +60,6 @@ CONFIG="# Do not edit. Generated by the configure script. 'libraries': [] }, 'variables': { - 'node': '${NODE}', - 'npm': '${NPM}', 'python': '${PYTHON}', " diff --git a/deps/gtest/gtest.gyp b/deps/gtest/gtest.gyp index c62b6be3f8..3728dfc914 100644 --- a/deps/gtest/gtest.gyp +++ b/deps/gtest/gtest.gyp @@ -12,6 +12,10 @@ 'sources': [ 'gtest-all.cc' ], + 'link_settings': { + 'xcode_settings': { 'OTHER_LDFLAGS': [ '-lpthread' ] }, + 'ldflags': [ '-lpthread' ], + }, 'direct_dependent_settings': { 'include_dirs': [ '.', diff --git a/gyp/common.gypi b/gyp/common.gypi index 16025eb5ae..b21e8b50d7 100644 --- a/gyp/common.gypi +++ b/gyp/common.gypi @@ -8,6 +8,7 @@ 'conditions': [ ['OS=="mac"', { 'xcode_settings': { + 'MACOSX_DEPLOYMENT_TARGET':'10.9', 'CLANG_CXX_LIBRARY': 'libc++', 'CLANG_CXX_LANGUAGE_STANDARD':'c++11', 'GCC_VERSION': 'com.apple.compilers.llvm.clang.1_0', diff --git a/gyp/fixtures.gypi b/gyp/fixtures.gypi deleted file mode 100644 index 199865a6f3..0000000000 --- a/gyp/fixtures.gypi +++ /dev/null @@ -1,17 +0,0 @@ -{ - 'targets': [ - { 'target_name': 'copy_fixtures', - 'type': 'none', - 'hard_dependency': 1, - 'dependencies': [ - 'bundle_styles' - ], - 'copies': [ - { - 'files': [ '../styles' ], - 'destination': '../test/fixtures/style_parser' - } - ] - }, - ] -} diff --git a/gyp/install.gypi b/gyp/install.gypi index 562f443d16..df65d0457e 100644 --- a/gyp/install.gypi +++ b/gyp/install.gypi @@ -22,7 +22,6 @@ 'conditions': [ ['OS == "linux"', { 'other_ldflags': [ - '-L<(boost_root)/lib', '<@(glfw3_static_libs)', '<@(glfw3_ldflags)', ] diff --git a/gyp/mbgl-core.gypi b/gyp/mbgl-core.gypi index e49697388c..46ff762742 100644 --- a/gyp/mbgl-core.gypi +++ b/gyp/mbgl-core.gypi @@ -10,7 +10,6 @@ ], 'variables': { 'cflags_cc': [ - '<@(png_cflags)', '<@(uv_cflags)', '<@(sqlite3_cflags)', '<@(zlib_cflags)', diff --git a/gyp/mbgl-ios.gypi b/gyp/mbgl-ios.gypi index 755b3cc483..5566ca3a32 100644 --- a/gyp/mbgl-ios.gypi +++ b/gyp/mbgl-ios.gypi @@ -34,6 +34,7 @@ '../platform/darwin/log_nslog.mm', '../platform/darwin/string_nsstring.mm', '../platform/darwin/http_request_baton_cocoa.mm', + '../platform/darwin/image.mm', ], 'include_dirs': [ '../include', @@ -44,7 +45,13 @@ 'direct_dependent_settings': { 'include_dirs': [ '../include', - ] + ], + 'xcode_settings': { + 'OTHER_LDFLAGS': [ + '-framework ImageIO', + '-framework MobileCoreServices', + ], + }, }, }, ], diff --git a/gyp/mbgl-linux.gypi b/gyp/mbgl-linux.gypi index 9f01ba3bb5..a22bd8f7c2 100644 --- a/gyp/mbgl-linux.gypi +++ b/gyp/mbgl-linux.gypi @@ -7,6 +7,7 @@ 'hard_dependency': 1, 'variables': { 'cflags_cc': [ + '<@(png_cflags)', '<@(uv_cflags)', '<@(curl_cflags)', '<@(nu_cflags)', @@ -16,6 +17,7 @@ '<@(nu_cflags)', ], 'ldflags': [ + '<@(png_ldflags)', '<@(uv_ldflags)', '<@(curl_ldflags)', '<@(nu_ldflags)', @@ -26,10 +28,16 @@ '../platform/default/log_stderr.cpp', '../platform/default/string_stdlib.cpp', '../platform/default/http_request_baton_curl.cpp', + '../platform/default/image.cpp', ], 'include_dirs': [ '../include', ], + 'link_settings': { + 'libraries': [ + '<@(png_static_libs)', + ], + }, 'conditions': [ ['OS == "mac"', { 'xcode_settings': { @@ -37,7 +45,6 @@ 'OTHER_CFLAGS': [ '<@(cflags)' ], } }, { - 'ldflags': [ '<@(ldflags)' ], 'cflags_cc': [ '<@(cflags_cc)' ], 'cflags': [ '<@(cflags)' ], }] diff --git a/gyp/mbgl-osx.gypi b/gyp/mbgl-osx.gypi index bee0325498..76c22f5ad6 100644 --- a/gyp/mbgl-osx.gypi +++ b/gyp/mbgl-osx.gypi @@ -10,6 +10,7 @@ '../platform/darwin/log_nslog.mm', '../platform/darwin/string_nsstring.mm', '../platform/darwin/http_request_baton_cocoa.mm', + '../platform/darwin/image.mm', ], 'include_dirs': [ '../include', @@ -20,7 +21,13 @@ 'direct_dependent_settings': { 'include_dirs': [ '../include', - ] + ], + 'xcode_settings': { + 'OTHER_LDFLAGS': [ + '-framework ImageIO', + '-framework CoreServices', + ], + }, }, }, ], diff --git a/gyp/npm_install.gypi b/gyp/npm_install.gypi deleted file mode 100644 index ddd3081ad5..0000000000 --- a/gyp/npm_install.gypi +++ /dev/null @@ -1,20 +0,0 @@ -{ - 'targets': [ - { 'target_name': 'npm_install', - 'type': 'none', - 'hard_dependency': 1, - 'actions': [ - { - 'action_name': 'npm install', - 'inputs': [ - '../bin/package.json', - ], - 'outputs': [ - '../bin/node_modules', - ], - 'action': ['./scripts/npm_install.sh', '<@(npm)'] - } - ], - }, - ] -} diff --git a/gyp/shaders.gypi b/gyp/shaders.gypi index 9435bd7d9c..edbcb61f23 100644 --- a/gyp/shaders.gypi +++ b/gyp/shaders.gypi @@ -4,13 +4,11 @@ 'target_name': 'shaders', 'type': 'none', 'hard_dependency': 1, - 'dependencies': [ - 'npm_install' - ], 'actions': [ { 'action_name': 'Build Shaders', 'inputs': [ + '../scripts/build-shaders.py', '<!@(find src -name "*.glsl")' ], 'outputs': [ @@ -18,7 +16,7 @@ '<(SHARED_INTERMEDIATE_DIR)/src/shader/shaders_gl.cpp', '<(SHARED_INTERMEDIATE_DIR)/src/shader/shaders_gles2.cpp', ], - 'action': ['<@(node)', 'bin/build-shaders.js', '<(SHARED_INTERMEDIATE_DIR)'], + 'action': ['<@(python)', 'scripts/build-shaders.py', '<(SHARED_INTERMEDIATE_DIR)', '<@(_inputs)'], } ], 'direct_dependent_settings': { diff --git a/gyp/styles.gypi b/gyp/styles.gypi index 31bf530c5f..02cdea6e04 100644 --- a/gyp/styles.gypi +++ b/gyp/styles.gypi @@ -19,18 +19,8 @@ 'hard_dependency': 1, 'dependencies': [ 'touch_styles' ], # required for xcode http://openradar.appspot.com/7232149 'direct_dependent_settings': { - 'mac_bundle_resources': [ '../styles' ], + 'mac_bundle_resources': [ '../styles/styles' ], } - }, - { - 'target_name': 'copy_styles', - 'type': 'none', - 'hard_dependency': 1, - 'dependencies': [ 'touch_styles' ], # required for xcode http://openradar.appspot.com/7232149 - 'copies': [{ - 'files': [ '../styles' ], - 'destination': '<(PRODUCT_DIR)' - }], - }, + } ] } diff --git a/include/mbgl/platform/default/headless_view.hpp b/include/mbgl/platform/default/headless_view.hpp index c0baddb884..f140338349 100644 --- a/include/mbgl/platform/default/headless_view.hpp +++ b/include/mbgl/platform/default/headless_view.hpp @@ -27,7 +27,7 @@ public: void createContext(); void resize(uint16_t width, uint16_t height, float pixelRatio); - const std::unique_ptr<uint32_t[]> readPixels(); + std::unique_ptr<uint32_t[]> readPixels(); void notify(); void notify_map_change(MapChange change, timestamp delay = 0); diff --git a/include/mbgl/platform/gl.hpp b/include/mbgl/platform/gl.hpp index cc2a681d42..d5162f2c70 100644 --- a/include/mbgl/platform/gl.hpp +++ b/include/mbgl/platform/gl.hpp @@ -38,7 +38,6 @@ #else #define GL_GLEXT_PROTOTYPES #include <GL/gl.h> - #include <GL/glu.h> #include <GL/glext.h> #endif diff --git a/include/mbgl/util/image.hpp b/include/mbgl/util/image.hpp index dc8f6a8150..b2f70e1442 100644 --- a/include/mbgl/util/image.hpp +++ b/include/mbgl/util/image.hpp @@ -2,31 +2,29 @@ #define MBGL_UTIL_IMAGE #include <string> -#include <cstring> -#include <stdexcept> +#include <memory> namespace mbgl { namespace util { -std::string compress_png(int width, int height, void *rgba, bool flip = false); +std::string compress_png(int width, int height, void *rgba); class Image { public: - Image(const std::string &img, bool flip = false); - ~Image(); + Image(const std::string &img); - inline const char *getData() const { return img; } + inline const char *getData() const { return img.get(); } inline uint32_t getWidth() const { return width; } inline uint32_t getHeight() const { return height; } + inline operator bool() const { return img && width && height; } private: // loaded image dimensions uint32_t width = 0, height = 0; // the raw image data - char *img = nullptr; - + std::unique_ptr<char[]> img; }; diff --git a/include/mbgl/util/token.hpp b/include/mbgl/util/token.hpp index 0f045f434a..64192a99f9 100644 --- a/include/mbgl/util/token.hpp +++ b/include/mbgl/util/token.hpp @@ -22,7 +22,7 @@ std::string replaceTokens(const std::string &source, const Lookup &lookup) { result.append(pos, brace); pos = brace; if (pos != end) { - for (brace++; brace != end && std::isalnum(*brace); brace++); + for (brace++; brace != end && (std::isalnum(*brace) || *brace == '_'); brace++); if (brace != end && *brace == '}') { result.append(lookup({ pos + 1, brace })); pos = brace + 1; diff --git a/ios/mapbox-gl-cocoa b/ios/mapbox-gl-cocoa -Subproject f395112c34ecc754812d4325102ee273fa8ced0 +Subproject 63d166d3dd33a460a5158159ea9656ea651aa17 diff --git a/linux/main.cpp b/linux/main.cpp index 604e471dd1..7b96a349e1 100644 --- a/linux/main.cpp +++ b/linux/main.cpp @@ -65,7 +65,7 @@ int main(int argc, char *argv[]) { } // Load style - const std::string style = std::string("file://") + uv::cwd() + std::string("/styles/bright/style.json"); + const std::string style = std::string("file://") + uv::cwd() + std::string("/styles/styles/bright-v5.json"); map.setStyleURL(style); int ret = view->run(); diff --git a/linux/mapboxgl-app.gyp b/linux/mapboxgl-app.gyp index 913a1fac45..c4be409be3 100644 --- a/linux/mapboxgl-app.gyp +++ b/linux/mapboxgl-app.gyp @@ -22,20 +22,34 @@ '<@(glfw3_cflags)', '-I<(boost_root)/include', ], - 'libraries': [ - '<@(png_ldflags)', - '<@(sqlite3_ldflags)', - '<@(glfw3_static_libs)', - '<@(glfw3_ldflags)', - '<@(curl_ldflags)', - '<@(zlib_ldflags)', + 'variables': { + 'ldflags': [ + '<@(png_ldflags)', + '<@(sqlite3_ldflags)', + '<@(glfw3_static_libs)', + '<@(glfw3_ldflags)', + '<@(curl_ldflags)', + '<@(zlib_ldflags)', + ], + }, + 'conditions': [ + ['OS == "mac"', { + 'xcode_settings': { + 'OTHER_LDFLAGS': [ '<@(ldflags)' ], + } + }, { + 'libraries': [ '<@(ldflags)' ], + }] ], 'dependencies': [ '../mapboxgl.gyp:mbgl-standalone', '../mapboxgl.gyp:mbgl-linux', - '../mapboxgl.gyp:copy_styles', '../mapboxgl.gyp:copy_certificate_bundle', ], + 'copies': [{ + 'files': [ '../styles/styles' ], + 'destination': '<(PRODUCT_DIR)' + }], }, ], } diff --git a/macosx/main.mm b/macosx/main.mm index 81494821cf..5c6f3592a9 100644 --- a/macosx/main.mm +++ b/macosx/main.mm @@ -100,7 +100,7 @@ int main() { if (accessToken) map.setAccessToken([accessToken cStringUsingEncoding:[NSString defaultCStringEncoding]]); // Load style - const std::string path([[[NSBundle mainBundle] pathForResource:@"style" ofType:@"json" inDirectory:@"styles/bright"] UTF8String]); + const std::string path([[[NSBundle mainBundle] pathForResource:@"bright-v5" ofType:@"json" inDirectory:@"styles/"] UTF8String]); map.setStyleURL(std::string("file://") + path); diff --git a/macosx/mapboxgl-app.gyp b/macosx/mapboxgl-app.gyp index 0e6fe38042..e948d054c2 100644 --- a/macosx/mapboxgl-app.gyp +++ b/macosx/mapboxgl-app.gyp @@ -40,8 +40,7 @@ '<@(sqlite3_ldflags)', '<@(glfw3_static_libs)', '<@(glfw3_ldflags)', - '<@(curl_ldflags)', - '<@(png_ldflags)' + '<@(zlib_ldflags)', ] }, 'conditions': [ diff --git a/mapboxgl.gyp b/mapboxgl.gyp index cca803b338..3978ebf0ad 100644 --- a/mapboxgl.gyp +++ b/mapboxgl.gyp @@ -2,9 +2,7 @@ 'includes': [ './gyp/common.gypi', './gyp/shaders.gypi', - './gyp/npm_install.gypi', './gyp/styles.gypi', - './gyp/fixtures.gypi', './gyp/certificates.gypi', './gyp/mbgl-core.gypi', './gyp/mbgl-platform.gypi', diff --git a/platform/darwin/image.mm b/platform/darwin/image.mm new file mode 100644 index 0000000000..50c871533d --- /dev/null +++ b/platform/darwin/image.mm @@ -0,0 +1,125 @@ +#include <mbgl/util/image.hpp> + +#import <ImageIO/ImageIO.h> + +#if TARGET_OS_IPHONE +#import <MobileCoreServices/MobileCoreServices.h> +#else +#import <CoreServices/CoreServices.h> +#endif + +namespace mbgl { +namespace util { + +std::string compress_png(int width, int height, void *rgba) { + CGDataProviderRef provider = CGDataProviderCreateWithData(NULL, rgba, width * height * 4, NULL); + if (!provider) { + return ""; + } + + CGColorSpaceRef color_space = CGColorSpaceCreateDeviceRGB(); + if (!color_space) { + CGDataProviderRelease(provider); + return ""; + } + + CGImageRef image = CGImageCreate(width, height, 8, 32, 4 * width, color_space, + kCGBitmapByteOrderDefault | kCGImageAlphaLast, provider, NULL, false, + kCGRenderingIntentDefault); + if (!image) { + CGColorSpaceRelease(color_space); + CGDataProviderRelease(provider); + return ""; + } + + CFMutableDataRef data = CFDataCreateMutable(kCFAllocatorDefault, 0); + if (!data) { + CGImageRelease(image); + CGColorSpaceRelease(color_space); + CGDataProviderRelease(provider); + return ""; + } + + CGImageDestinationRef image_destination = CGImageDestinationCreateWithData(data, kUTTypePNG, 1, NULL); + if (!image_destination) { + CFRelease(data); + CGImageRelease(image); + CGColorSpaceRelease(color_space); + CGDataProviderRelease(provider); + return ""; + } + + CGImageDestinationAddImage(image_destination, image, NULL); + CGImageDestinationFinalize(image_destination); + + const std::string result { + reinterpret_cast<const char *>(CFDataGetBytePtr(data)), + static_cast<size_t>(CFDataGetLength(data)) + }; + + CFRelease(image_destination); + CFRelease(data); + CGImageRelease(image); + CGColorSpaceRelease(color_space); + CGDataProviderRelease(provider); + + return result; +} + +Image::Image(const std::string &source_data) { + CFDataRef data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, reinterpret_cast<const unsigned char *>(source_data.data()), source_data.size(), kCFAllocatorNull); + if (!data) { + return; + } + + CGImageSourceRef image_source = CGImageSourceCreateWithData(data, NULL); + if (!image_source) { + CFRelease(data); + return; + } + + CGImageRef image = CGImageSourceCreateImageAtIndex(image_source, 0, NULL); + if (!image) { + CFRelease(image_source); + CFRelease(data); + return; + } + + CGColorSpaceRef color_space = CGColorSpaceCreateDeviceRGB(); + if (!color_space) { + CGImageRelease(image); + CFRelease(image_source); + CFRelease(data); + return; + } + + width = CGImageGetWidth(image); + height = CGImageGetHeight(image); + CGRect rect = {{ 0, 0 }, { static_cast<CGFloat>(width), static_cast<CGFloat>(height) }}; + + img = ::std::unique_ptr<char[]>(new char[width * height * 4]()); + CGContextRef context = CGBitmapContextCreate(img.get(), width, height, 8, width * 4, + color_space, kCGImageAlphaPremultipliedLast); + if (!context) { + CGColorSpaceRelease(color_space); + CGImageRelease(image); + CFRelease(image_source); + CFRelease(data); + width = 0; + height = 0; + img.release(); + return; + } + + CGContextSetBlendMode(context, kCGBlendModeCopy); + CGContextDrawImage(context, rect, image); + + CGContextRelease(context); + CGColorSpaceRelease(color_space); + CGImageRelease(image); + CFRelease(image_source); + CFRelease(data); +} + +} +}
\ No newline at end of file diff --git a/platform/default/headless_view.cpp b/platform/default/headless_view.cpp index ec5c4aabec..71096beba0 100644 --- a/platform/default/headless_view.cpp +++ b/platform/default/headless_view.cpp @@ -181,11 +181,11 @@ void HeadlessView::resize(uint16_t width, uint16_t height, float pixelRatio) { make_inactive(); } -const std::unique_ptr<uint32_t[]> HeadlessView::readPixels() { +std::unique_ptr<uint32_t[]> HeadlessView::readPixels() { const unsigned int w = width_ * pixelRatio_; const unsigned int h = height_ * pixelRatio_; - std::unique_ptr<uint32_t[]> pixels(new uint32_t[w * h]); + auto pixels = std::unique_ptr<uint32_t[]>(new uint32_t[w * h]); make_active(); glReadPixels(0, 0, width_, height_, GL_RGBA, GL_UNSIGNED_BYTE, pixels.get()); diff --git a/src/util/image.cpp b/platform/default/image.cpp index ffa65bf0ba..68d1786913 100644 --- a/src/util/image.cpp +++ b/platform/default/image.cpp @@ -4,9 +4,14 @@ #include <cassert> #include <cstdlib> +#include <stdexcept> +#include <cstring> -std::string mbgl::util::compress_png(int width, int height, void *rgba, bool flip) { +namespace mbgl { +namespace util { + +std::string compress_png(int width, int height, void *rgba) { png_voidp error_ptr = 0; png_structp png_ptr = png_create_write_struct(PNG_LIBPNG_VER_STRING, error_ptr, NULL, NULL); if (!png_ptr) { @@ -43,7 +48,7 @@ std::string mbgl::util::compress_png(int width, int height, void *rgba, bool fli } pointers(height); for (int i = 0; i < height; i++) { - pointers.rows[flip ? height - 1 - i : i] = (png_bytep)((png_bytep)rgba + width * 4 * i); + pointers.rows[i] = (png_bytep)((png_bytep)rgba + width * 4 * i); } png_set_rows(png_ptr, info_ptr, pointers.rows); @@ -54,9 +59,6 @@ std::string mbgl::util::compress_png(int width, int height, void *rgba, bool fli } -using namespace mbgl::util; - - struct Buffer { Buffer(const std::string& data_) : data(data_.data()), length(data_.size()) {} @@ -72,7 +74,7 @@ void readCallback(png_structp png, png_bytep data, png_size_t length) { if (reader->pos + length > reader->length) { png_error(png, "Read Error"); } else { - memcpy(data, reader->data + reader->pos, length); + std::memcpy(data, reader->data + reader->pos, length); reader->pos += length; } } @@ -85,7 +87,7 @@ void warningHandler(png_structp, png_const_charp error_msg) { fprintf(stderr, "PNG: %s\n", error_msg); } -Image::Image(const std::string &data, bool flip) { +Image::Image(const std::string &data) { Buffer buffer(data); if (buffer.length < 8 || !png_check_sig((const png_bytep)buffer.data, 8)) { @@ -134,14 +136,16 @@ Image::Image(const std::string &data, bool flip) { if (png_get_gAMA(png, info, &gamma)) png_set_gamma(png, 2.2, gamma); + png_set_alpha_mode(png, PNG_ALPHA_PREMULTIPLIED, 2.2); + png_read_update_info(png, info); png_size_t rowbytes = png_get_rowbytes(png, info); assert(width * 4 == rowbytes); - img = static_cast<char*>(::operator new(width * height * 4)); + img = ::std::unique_ptr<char[]>(new char[width * height * 4]()); - char *surface = img; + char *surface = img.get(); assert(surface); struct ptrs { @@ -150,7 +154,7 @@ Image::Image(const std::string &data, bool flip) { png_bytep *rows = nullptr; } pointers(height); for (unsigned i = 0; i < height; ++i) { - pointers.rows[flip ? height - 1 - i : i] = (png_bytep)(surface + (i * rowbytes)); + pointers.rows[i] = (png_bytep)(surface + (i * rowbytes)); } // Read image data @@ -163,14 +167,12 @@ Image::Image(const std::string &data, bool flip) { fprintf(stderr, "loading PNG failed: %s\n", e.what()); png_destroy_read_struct(&png, &info, nullptr); if (img) { - ::operator delete(img); - img = nullptr; + img.reset(); } width = 0; height = 0; } } -Image::~Image() { - ::operator delete(img),img = nullptr; +} } diff --git a/scripts/build-shaders.py b/scripts/build-shaders.py new file mode 100644 index 0000000000..c1d7f7f28d --- /dev/null +++ b/scripts/build-shaders.py @@ -0,0 +1,104 @@ +#!/usr/bin/env python + +import sys, re, os, errno + + +output_dir = sys.argv[1] +file_names = sys.argv[2:] + + +def mkdir_p(path): + try: + os.makedirs(path) + except OSError as exc: # Python >2.5 + if exc.errno == errno.EEXIST and os.path.isdir(path): + pass + else: raise + +# Load all shaders +shaders = {} +for file_name in file_names: + parts = re.search('/(\w+)\.(vertex|fragment)\.glsl$', file_name) + if parts: + shader_name = parts.group(1) + shader_type = parts.group(2) + if not shader_name in shaders: + shaders[shader_name] = {} + with open(file_name, "r") as f: + shaders[shader_name][shader_type] = f.read() + + +def write_header(): + header = """// NOTE: DO NOT CHANGE THIS FILE. IT IS AUTOMATICALLY GENERATED. + +#ifndef MBGL_SHADER_SHADERS +#define MBGL_SHADER_SHADERS + +namespace mbgl { + +struct shader_source { + const char *vertex; + const char *fragment; +}; + +enum { +%s + SHADER_COUNT +}; + +extern const shader_source shaders[SHADER_COUNT]; + +} + +#endif +""" % '\n'.join([' %s_SHADER,' % name.upper() for name in shaders.keys()]) + header_path = os.path.join(output_dir, 'include/mbgl/shader/shaders.hpp') + mkdir_p(os.path.dirname(header_path)) + with open(header_path, 'w') as f: f.write(header) + + +def write_source(shader_platform, prefix, suffix): + if shader_platform == 'gles2' or shader_platform == 'gles3': + # OpenGL ES + preamble = 'precision highp float;'; + else: + # Desktop OpenGL + preamble = '#version 120'; + + shader_lines = [(""" {{ + R"{name}_vert({preamble}\n{vertex}){name}_vert", + R"{name}_frag({preamble}\n{fragment}){name}_frag", + }}, +""").format( + name = shader, + preamble = preamble, + vertex = shaders[shader]['vertex'], + fragment = shaders[shader]['fragment'] +) for shader in shaders] + + source = """// NOTE: DO NOT CHANGE THIS FILE. IT IS AUTOMATICALLY GENERATED. +#include <mbgl/platform/gl.hpp> +{prefix} +#include <mbgl/shader/shaders.hpp> + +namespace mbgl {{ + +const shader_source shaders[SHADER_COUNT] = {{ +{shaders} +}}; + +}} +{suffix} +""".format( + prefix = prefix, + suffix = suffix, + shaders = ''.join(shader_lines) +) + + source_path = os.path.join(output_dir, 'src/shader/shaders_' + shader_platform + '.cpp') + mkdir_p(os.path.dirname(source_path)) + with open(source_path, 'w') as f: f.write(source) + +write_header() +write_source('gl', '#ifndef GL_ES_VERSION_2_0', '#endif') +write_source('gles2', '#ifdef GL_ES_VERSION_2_0', '#endif') diff --git a/scripts/compare_images.sh b/scripts/compare_images.sh new file mode 100755 index 0000000000..f9e1a81edb --- /dev/null +++ b/scripts/compare_images.sh @@ -0,0 +1,6 @@ +#!/usr/bin/env bash + +set -e +set -o pipefail + +(cd ./test/suite/ && (./bin/compare_images.py || true)) diff --git a/scripts/local_mason.sh b/scripts/local_mason.sh new file mode 100755 index 0000000000..2d8687a280 --- /dev/null +++ b/scripts/local_mason.sh @@ -0,0 +1,5 @@ +#!/usr/bin/env bash + +git submodule update --init .mason +PATH=`pwd`/.mason:$PATH +export MASON_DIR=`pwd`/.mason diff --git a/scripts/travis_before_install.sh b/scripts/travis_before_install.sh index f67aa270d6..2af2f7ae0f 100755 --- a/scripts/travis_before_install.sh +++ b/scripts/travis_before_install.sh @@ -24,30 +24,16 @@ if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then libboost1.55-dev libcurl4-openssl-dev \ libpng-dev libsqlite3-dev - mapbox_time "install_mesa_deps" \ - sudo apt-get install -y libpthread-stubs0-dev \ - xserver-xorg-dev x11proto-xinerama-dev libx11-xcb-dev \ - libxcb-glx0-dev libxrender-dev llvm-3.4 mesa-utils && \ - sudo apt-get build-dep -y libgl1-mesa-dri libxcb-glx0-dev - - mapbox_time "build_mesa" \ - curl -sfo MesaLib-10.3.1.tar.gz http://ftp.de.debian.org/debian/pool/main/m/mesa/mesa_10.3.1.orig.tar.gz && \ - tar -zxf MesaLib-10.3.1.tar.gz && \ - cd Mesa-10.3.1 && \ - ./autogen.sh --with-gallium-drivers=svga,swrast --disable-dri \ - --enable-xlib-glx --enable-glx-tls --with-llvm-prefix=/usr/lib/llvm-3.4 \ - --without-va && \ - echo $CXXFLAGS - echo $CFLAGS - echo $LDFLAGS - make -j$JOBS && sudo make install && \ - cd ../ - mapbox_time "install_opengl" \ - sudo apt-get -y install libxi-dev x11proto-randr-dev \ + sudo apt-get -y install mesa-utils libxi-dev x11proto-randr-dev \ x11proto-xext-dev libxrandr-dev \ x11proto-xf86vidmode-dev libxxf86vm-dev \ - libxcursor-dev libxinerama-dev + libxcursor-dev libxinerama-dev \ + llvm-3.4 # required for mesa + + + mapbox_time "install_mesa" \ + mason install mesa 10.3.1 mapbox_time "install_awscli" \ sudo pip install awscli diff --git a/scripts/travis_install_test_suite.sh b/scripts/travis_install_test_suite.sh deleted file mode 100755 index cb2422d70c..0000000000 --- a/scripts/travis_install_test_suite.sh +++ /dev/null @@ -1,9 +0,0 @@ -#!/usr/bin/env bash - -if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then - # - # we'll need the test suite on Linux - # - mapbox_time "install_test_suite" \ - npm install git+https://github.com/mapbox/mapbox-gl-test-suite.git -fi diff --git a/scripts/travis_script.sh b/scripts/travis_script.sh index 5fa5a3f5f3..ea6097dc55 100755 --- a/scripts/travis_script.sh +++ b/scripts/travis_script.sh @@ -3,6 +3,9 @@ set -e set -o pipefail +mapbox_time "checkout_styles" \ +git submodule update --init styles + if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then # # build & test Linux @@ -13,16 +16,18 @@ if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then mapbox_time "compile_tests" \ make test -j$JOBS BUILDTYPE=${BUILDTYPE} + mapbox_time "checkout_test_suite" \ + git submodule update --init test/suite + mapbox_time "run_tests" \ ./scripts/run_tests.sh - mapbox_time_start "compare_results" - (cd ./node_modules/mapbox-gl-test-suite/ && (./bin/compare_images.js || true)) - mapbox_time_finish + mapbox_time "compare_results" \ + ./scripts/compare_images.sh if [ ! -z "${AWS_ACCESS_KEY_ID}" ] && [ ! -z "${AWS_SECRET_ACCESS_KEY}" ] ; then mapbox_time_start "deploy_results" - (cd ./node_modules/mapbox-gl-test-suite/ && ./bin/deploy_results.sh) + (cd ./test/suite/ && ./bin/deploy_results.sh) mapbox_time_finish fi @@ -39,10 +44,8 @@ elif [[ ${TRAVIS_OS_NAME} == "osx" ]]; then # # build iOS # - git submodule init - - mapbox_time "load_submodules" \ - git submodule update + mapbox_time "checkout_cocoa_bindings" \ + git submodule update --init ios/mapbox-gl-cocoa mapbox_time "create_ios_project" \ make build/ios/mapbox-gl-cocoa/app/mapboxgl-app.xcodeproj diff --git a/src/geometry/sprite_atlas.cpp b/src/geometry/sprite_atlas.cpp index 5271122919..d7ef1e789b 100644 --- a/src/geometry/sprite_atlas.cpp +++ b/src/geometry/sprite_atlas.cpp @@ -72,18 +72,7 @@ void copy_bitmap(const uint32_t *src, const int src_stride, const int src_x, con dst += dst_y * dst_stride + dst_x; for (int y = 0; y < height; y++, src += src_stride, dst += dst_stride) { for (int x = 0; x < width; x++) { - const uint8_t *s = reinterpret_cast<const uint8_t *>(src + x); - uint8_t *d = reinterpret_cast<uint8_t *>(dst + x); - - // Premultiply the bitmap. - // Note: We don't need to clamp the component values to 0..255, since - // the source value is already 0..255 and the operation means they will - // stay within the range of 0..255 and won't overflow. - const uint8_t a = s[3]; - d[0] = s[0] * a / 255; - d[1] = s[1] * a / 255; - d[2] = s[2] * a / 255; - d[3] = a; + dst[x] = src[x]; } } } @@ -158,6 +147,7 @@ void SpriteAtlas::allocate() { void SpriteAtlas::copy(const Rect<dimension>& dst, const SpritePosition& src) { if (!sprite->raster) return; const uint32_t *src_img = reinterpret_cast<const uint32_t *>(sprite->raster->getData()); + if (!src_img) return; allocate(); uint32_t *dst_img = reinterpret_cast<uint32_t *>(data); diff --git a/src/map/sprite.cpp b/src/map/sprite.cpp index 876586e4b0..ad1a8e770b 100644 --- a/src/map/sprite.cpp +++ b/src/map/sprite.cpp @@ -102,6 +102,9 @@ bool Sprite::isLoaded() const { void Sprite::parseImage() { raster = std::make_unique<util::Image>(image); + if (!*raster) { + raster.reset(); + } image.clear(); loadedImage = true; } diff --git a/styles b/styles new file mode 160000 +Subproject 65dc5c9b7e926a7f43c2834979bd4c7395e8dca diff --git a/styles/bright/img/sprite.json b/styles/bright/img/sprite.json deleted file mode 100644 index d8fd539f42..0000000000 --- a/styles/bright/img/sprite.json +++ /dev/null @@ -1,2818 +0,0 @@ -{ - "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 Binary files differdeleted file mode 100644 index 34ef6124b8..0000000000 --- a/styles/bright/img/sprite.png +++ /dev/null diff --git a/styles/bright/img/sprite@2x.json b/styles/bright/img/sprite@2x.json deleted file mode 100644 index b15134a6a8..0000000000 --- a/styles/bright/img/sprite@2x.json +++ /dev/null @@ -1,2818 +0,0 @@ -{ - "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 Binary files differdeleted file mode 100644 index ef7c1f45d1..0000000000 --- a/styles/bright/img/sprite@2x.png +++ /dev/null diff --git a/styles/bright/style.json b/styles/bright/style.json deleted file mode 100644 index 917244648c..0000000000 --- a/styles/bright/style.json +++ /dev/null @@ -1,1335 +0,0 @@ -{ - "version": 4, - "sprite": "img/sprite", - "glyphs": "mapbox://fontstack/{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", - "@admin-opacity": 0.5, - "@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_level_3", - "source": "mapbox", - "source-layer": "admin", - "filter": { - "admin_level": {">=": 3}, - "maritime": 0 - }, - "render": { - "line-join": "round" - }, - "style": { - "line-color": "@admin", - "line-opacity": "@admin-opacity", - "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-opacity": "@admin-opacity", - "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-opacity": "@admin-opacity", - "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-opacity": "@admin-opacity", - "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-opacity": "@admin-opacity", - "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" - }] -} diff --git a/styles/outdoors/style.json b/styles/outdoors/style.json deleted file mode 100644 index 91c7874d7a..0000000000 --- a/styles/outdoors/style.json +++ /dev/null @@ -1,2223 +0,0 @@ -{ - "version": 4, - "sprite": "https://www.mapbox.com/mapbox-gl-styles/sprites/outdoors", - "glyphs": "mapbox://fontstack/{fontstack}/{range}.pbf", - "constants": { - "@land": "rgb(244,239,225)", - "@water": "#cdd", - "@water_dark": "#185869", - "@crop": "#eeeed4", - "@grass": "#e6e6cc", - "@scrub": "#dfe5c8", - "@wood": "#cee2bd", - "@snow": "#f4f8ff", - "@rock": "#ddd", - "@sand": "#ffd", - "@cemetery": "#edf4ed", - "@pitch": "#fff", - "@park": "#d4e4bc", - "@piste": "blue", - "@school": "#e8dfe0", - "@hospital": "#f8eee0", - "@builtup": "#f6faff", - "@case": "#fff", - "@motorway": "#cda0a0", - "@main": "#ddc0b9", - "@street": "#fff", - "@text": "#666", - "@text_stroke": "rgba(255,255,255,0.8)", - "@country_text": "#222", - "@marine_text": "#a0bdc0", - "@water_text": "#185869", - "@land_night": "#017293", - "@water_night": "#103", - "@water_dark_night": "#003366", - "@crop_night": "#178d96", - "@grass_night": "#23948a", - "@scrub_night": "#31a186", - "@wood_night": "#45b581", - "@park_night": "#51bd8b", - "@snow_night": "#5ad9fe", - "@rock_night": "#999", - "@sand_night": "#437162", - "@cemetery_night": "#218c96", - "@pitch_night": "rgba(255,255,255,0.2)", - "@school_night": "#01536a", - "@hospital_night": "#015e7a", - "@builtup_night": "#014b60", - "@admin_night": "#ffb680", - "@text_night": "#fff", - "@text_water_night": "#2a5b8a", - "@text_stroke_night": "#103", - "@text2_stroke_night": "rgba(1,69,89,0.8)", - "@case_night": "#015e7a", - "@street_case_night": "#015b76", - "@motorway_night": "#bbdde7", - "@main_night": "#64b2c9", - "@street_night": "#0186ac", - "@contour_night": "#ffff80", - "@river_canal_width": { - "stops": [[10, 0.5], [11, 1], [13, 2], [15, 3]] - }, - "@stream_width": { - "stops": [[12, 0.25], [13, 0.5], [15, 1.5], [17, 2]] - }, - "@motorway_width": { - "stops": [[4, 0], [5, 0.5], [7, 0.8], [9, 1], [10, 1.2], [11, 2], [12, 3], [13, 4], [14, 6], [15, 9], [16, 12], [17, 14]] - }, - "@motorway_casing_width": { - "stops": [[6.5, 0.6], [7, 0.8], [9, 2.8], [10, 3], [11, 4], [12, 5], [13, 6.5], [14, 9], [15, 12], [16, 15], [17, 17]] - }, - "@motorway_link_width": { - "stops": [[11, 1.2], [13, 2], [15, 3], [17, 4]] - }, - "@motorway_link_casing_width": { - "stops": [[11, 2.8], [13, 3.5], [15, 5], [17, 6]] - }, - "@main_width": { - "stops": [[4, 1], [11, 1], [12, 1.5], [13, 2], [14, 3], [15, 6], [16, 10], [17, 12]] - }, - "@main_casing_width": { - "stops": [[8, 2.9], [11, 2.9], [12, 3.5], [13, 4], [14, 5.5], [15, 9], [16, 12], [17, 14]] - }, - "@street_width": { - "stops": [[13.5, 0], [14, 1.5], [15, 3], [16, 8]] - }, - "@street_casing_width": { - "stops": [[12, 0.4], [13, 1], [14, 2.5], [15, 4], [16, 10]] - }, - "@street_casing_opacity": { - "stops": [[13, 0], [13.5, 1]] - }, - "@service_casing_width": { - "stops": [[13, 0.5], [14, 3], [15, 3.5], [16, 4], [17, 5], [18, 6]] - }, - "@runway_width": { - "stops": [[9, 1], [10, 2], [11, 3], [12, 5], [13, 7], [14, 11], [15, 15], [16, 19], [17, 23]] - }, - "@taxiway_width": { - "stops": [[9, 0.2], [11, 0.2], [12, 1], [13, 1.5], [14, 2], [15, 3], [16, 4], [17, 5]] - }, - "@aerialway_width": { - "stops": [[12.5, 0.8], [13, 1.4], [14, 1.6], [15, 2], [16, 2.4], [17, 3]] - }, - "@aerialway_casing_width": { - "stops": [[12.5, 2], [13, 2.5], [14, 3], [15, 3.5], [16, 4], [21, 5]] - }, - "@path_width": { - "stops": [[13, 1.2], [14, 1.5], [15, 1.8]] - }, - "@admin_l2_width": { - "stops": [[1, 0.5], [2, 0.7], [3, 0.7], [4, 0.8], [5, 1], [7, 2], [9, 3]] - }, - "@admin_l3_width": { - "stops": [[5, 0.6], [7, 1], [11, 2]] - }, - "@road_label_1_size": { - "stops": [[12, 11], [13, 12], [14, 13], [15, 14], [16, 16], [17, 18]] - }, - "@road_label_2_size": { - "stops": [[12, 11], [13, 12], [15, 14], [17, 16]] - }, - "@road_label_3_size": { - "stops": [[14, 10], [15, 12], [17, 14]] - }, - "@fence_width": { - "stops": [[16, 0.6], [18, 1]] - }, - "@hedge_width": { - "stops": [[15, 0.6], [16, 1.2], [18, 1.6]] - }, - "@barrier_line_land_width": { - "stops": [[13, 0.4], [14, 0.75], [15, 1.5], [16, 3], [17, 6], [18, 12], [19, 24], [20, 48]] - }, - "@country_label_size": { - "stops": [[0, 14], [11, 24]] - }, - "@poi_label_1-2_size": { - "stops": [[14, 10], [15, 11], [16, 12]] - }, - "@poi_label_3_size": { - "stops": [[15, 10], [16, 11]] - }, - "@hillshade_prerender": { - "stops": [[10, 0], [11, 1]] - }, - "@hillshade_prerender_size": { - "stops": [[10, 1056], [11, 512], [12, 256]] - } - }, - "sources": { - "mapbox": { - "type": "vector", - "url": "mapbox://mapbox.mapbox-terrain-v1,mapbox.mapbox-streets-v6-dev", - "maxZoom": 15 - } - }, - "layers": [{ - "id": "background", - "style": { - "background-color": "@land" - }, - "style.night": { - "background-color": "@land_night" - }, - "type": "background" - }, { - "id": "landcover_snow", - "source": "mapbox", - "source-layer": "landcover", - "filter": { "class": "snow" }, - "style": { - "fill-color": "@snow" - }, - "style.night": { - "fill-color": "@snow_night" - }, - "type": "fill" - }, { - "id": "landcover_crop", - "source": "mapbox", - "source-layer": "landcover", - "filter": { "class": "crop" }, - "style": { - "fill-color": "@crop" - }, - "style.night": { - "fill-color": "@crop_night" - }, - "type": "fill" - }, { - "id": "landcover_grass", - "source": "mapbox", - "source-layer": "landcover", - "filter": { "class": "grass" }, - "style": { - "fill-color": "@grass", - "fill-opacity": { - "stops": [[12, 1], [13, 0.8], [16, 0.2]] - } - }, - "style.night": { - "fill-color": "@grass_night", - "fill-opacity": { - "stops": [[12, 1], [13, 0.8], [16, 0.2]] - } - }, - "type": "fill" - }, { - "id": "landcover_scrub", - "source": "mapbox", - "source-layer": "landcover", - "filter": { "class": "scrub" }, - "style": { - "fill-color": "@scrub", - "fill-opacity": { - "stops": [[12, 1], [13, 0.8], [16, 0.2]] - } - }, - "style.night": { - "fill-color": "@scrub_night", - "fill-opacity": { - "stops": [[12, 1], [13, 0.8], [16, 0.2]] - } - }, - "type": "fill" - }, { - "id": "landcover_wood", - "source": "mapbox", - "source-layer": "landcover", - "filter": { "class": "wood" }, - "style": { - "fill-color": "@wood", - "fill-opacity": { - "stops": [[12, 1], [13, 0.8], [16, 0.2]] - } - }, - "style.night": { - "fill-color": "@wood_night", - "fill-opacity": { - "stops": [[12, 1], [13, 0.8], [16, 0.2]] - } - }, - "type": "fill" - }, { - "id": "landuse_wood", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "wood" }, - "style": { - "fill-color": "@wood" - }, - "style.night": { - "fill-color": "@wood_night", - "fill-opacity": 0.8 - }, - "type": "fill" - }, { - "id": "landuse_school", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "school" }, - "style": { - "fill-color": "@school" - }, - "style.night": { - "fill-color": "@school_night" - }, - "type": "fill" - }, { - "id": "landuse_sand", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "sand" }, - "style": { - "fill-color": "@sand" - }, - "style.night": { - "fill-color": "@sand_night", - "fill-opacity": 0.8 - }, - "type": "fill" - }, { - "id": "landuse_pitch", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "pitch" }, - "style": { - "fill-color": "rgba(255,255,255,0.5)", - "fill-outline-color": "@pitch" - }, - "style.night": { - "fill-color": "@pitch_night", - "fill-outline-color": "@pitch" - }, - "type": "fill" - }, { - "id": "landuse_park", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "park" }, - "style": { - "fill-color": "@park" - }, - "style.night": { - "fill-color": "@park_night" - }, - "type": "fill" - }, { - "id": "landuse_industrial", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "industrial" }, - "style": { - "fill-color": "rgba(246,250,255,0.5)" - }, - "style.night": { - "fill-color": "@builtup_night" - }, - "type": "fill" - }, { - "id": "landuse_scrub", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "scrub" }, - "style": { - "fill-color": "@scrub" - }, - "style.night": { - "fill-color": "@scrub_night", - "fill-opacity": 0.8 - }, - "type": "fill" - }, { - "id": "landuse_grass", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "grass" }, - "style": { - "fill-color": "@grass" - }, - "style.night": { - "fill-color": "@grass_night", - "fill-opacity": 0.8 - }, - "type": "fill" - }, { - "id": "landuse_crop", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "crop" }, - "style": { - "fill-color": "@crop" - }, - "style.night": { - "fill-color": "@crop_night", - "fill-opacity": 0.8 - }, - "type": "fill" - }, { - "id": "landuse_rock", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "rock" }, - "style": { - "fill-color": "@rock" - }, - "style.night": { - "fill-color": "@rock_night", - "fill-opacity": 0.8 - }, - "type": "fill" - }, { - "id": "landuse_snow", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "snow" }, - "style": { - "fill-color": "@snow" - }, - "style.night": { - "fill-color": "@snow_night", - "fill-opacity": 0.8 - }, - "type": "fill" - }, { - "id": "landuse_hospital", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "hospital" }, - "style": { - "fill-color": "@hospital" - }, - "style.night": { - "fill-color": "@hospital_night" - }, - "type": "fill" - }, { - "id": "landuse_cemetery", - "source": "mapbox", - "source-layer": "landuse", - "filter": { "class": "cemetery" }, - "style": { - "fill-color": "@cemetery" - }, - "style.night": { - "fill-color": "@cemetery_night" - }, - "type": "fill" - }, { - "id": "overlay_breakwater_pier", - "source": "mapbox", - "source-layer": "landuse_overlay", - "filter": { "class": ["breakwater", "pier"] }, - "style": { - "fill-color": "@land" - }, - "style.night": { - "fill-color": "@land_night" - }, - "type": "fill" - }, { - "id": "waterway_river_canal", - "source": "mapbox", - "source-layer": "waterway", - "filter": { "type": ["river", "canal"] }, - "render": { - "line-cap": "round" - }, - "style": { - "line-color": "#87abaf", - "line-width": "@river_canal_width" - }, - "style.night": { - "line-color": "rgb(10,20,71)", - "line-width": "@river_canal_width" - }, - "type": "line" - }, { - "id": "waterway_stream", - "source": "mapbox", - "source-layer": "waterway", - "filter": { "type": "stream" }, - "render": { - "line-cap": "round" - }, - "style": { - "line-color": "#87abaf", - "line-width": "@stream_width" - }, - "style.night": { - "line-color": "rgb(10,20,71)", - "line-width": "@stream_width" - }, - "type": "line" - }, { - "id": "hillshade_rasters", - "type": "raster", - "source": "mapbox", - "render": { - "raster-size": 512, - "raster-blur": 1 - }, - "style": { - "raster-opacity": 1 - }, - "layers": [ - { - "id": "hillshade_full_highlight", - "source": "mapbox", - "source-layer": "hillshade", - "filter": { "class": "full_highlight" }, - "style": { - "fill-color": "#fffff3", - "fill-antialias": false, - "fill-opacity": { - "stops": [[14, 0.3], [15, 0.3], [16, 0.2], [17, 0.2], [18, 0.1]] - } - }, - "style.night": { - "fill-color": "#fdfdad", - "fill-antialias": false, - "fill-opacity": { - "stops": [[13, 0.4], [14, 0.3], [16, 0.2], [17, 0.1], [18, 0.05]] - } - }, - "type": "fill" - }, { - "id": "hillshade_medium_highlight", - "source": "mapbox", - "source-layer": "hillshade", - "filter": { "class": "medium_highlight" }, - "style": { - "fill-color": "#ffd", - "fill-antialias": false, - "fill-opacity": { - "stops": [[14, 0.3], [15, 0.3], [16, 0.2], [17, 0.2], [18, 0.1]] - } - }, - "style.night": { - "fill-color": "#ffe1b7", - "fill-antialias": false, - "fill-opacity": { - "stops": [[14, 0.3], [16, 0.2], [17, 0.15], [18, 0.05]] - } - }, - "type": "fill" - }, { - "id": "hillshade_medium_shadow", - "source": "mapbox", - "source-layer": "hillshade", - "filter": { "class": "medium_shadow" }, - "style": { - "fill-color": "#206", - "fill-antialias": false, - "fill-opacity": { - "stops": [[14, 0.08], [15, 0.075], [16, 0.05], [17, 0.05], [18, 0.025]] - } - }, - "style.night": { - "fill-color": "#206", - "fill-antialias": false, - "fill-opacity": { - "stops": [[15, 0.3], [16, 0.2], [17, 0.1], [18, 0.05]] - } - }, - "type": "fill" - }, { - "id": "hillshade_full_shadow", - "source": "mapbox", - "source-layer": "hillshade", - "filter": { "class": "full_shadow" }, - "style": { - "fill-color": "#103", - "fill-antialias": false, - "fill-opacity": { - "stops": [[14, 0.08], [15, 0.075], [16, 0.05], [17, 0.05], [18, 0.025]] - } - }, - "style.night": { - "fill-color": "#103", - "fill-antialias": false, - "fill-opacity": { - "stops": [[15, 0.3], [16, 0.2], [17, 0.1], [18, 0.05]] - } - }, - "type": "fill" - } - ] - }, { - "id": "overlay_wetland", - "source": "mapbox", - "source-layer": "landuse_overlay", - "filter": { "class": ["wetland", "wetland_noveg"] }, - "style": { - "fill-color": "rgba(210,225,225,0.2)", - "fill-image": "wetland_noveg_64" - }, - "style.night": { - "fill-color": "rgba(210,225,225,0.2)", - "fill-image": "wetland_noveg_64" - }, - "type": "fill" - }, { - "id": "building_shadow", - "source": "mapbox", - "source-layer": "building", - "style": { - "fill-color": "#d5d1c6", - "fill-translate": [1, 1], - "fill-opacity": { - "stops": [[15.5, 0], [16, 1]] - }, - "fill-outline-color": "#d5d1c6" - }, - "style.night": { - "fill-color": "#026688", - "fill-translate": [1, 1], - "fill-opacity": { - "stops": [[15.5, 0], [16, 1]] - }, - "fill-outline-color": "#026688" - }, - "type": "fill" - }, { - "id": "building", - "ref": "building_shadow", - "style": { - "fill-color": "#ebe7db" - }, - "style.night": { - "fill-color": "#027797" - } - }, { - "id": "building_wall", - "ref": "building_shadow", - "style": { - "fill-color": "#ebe7db", - "fill-opacity": { - "stops": [[15.5, 0], [16, 0.7]] - }, - "fill-outline-color": "#d5d1c6" - }, - "style.night": { - "fill-color": "#027797", - "fill-opacity": { - "stops": [[15.5, 0], [16, 0.7]] - }, - "fill-outline-color": "#026688" - } - }, { - "id": "contour_line_loud", - "source": "mapbox", - "source-layer": "contour", - "filter": { "index": 5 }, - "render": { - "line-join": "round" - }, - "style": { - "line-color": "#008", - "line-width": 0.9, - "line-opacity": { - "stops": [[11, 0.05], [12, 0.11]] - } - }, - "style.night": { - "line-color": "@contour_night", - "line-width": 0.9, - "line-opacity": { - "stops": [[11, 0.1], [12, 0.2]] - } - }, - "type": "line" - }, { - "id": "contour_line_regular", - "source": "mapbox", - "source-layer": "contour", - "render": { - "line-join": "round" - }, - "style": { - "line-color": "#008", - "line-width": 0.5, - "line-opacity": { - "stops": [[11, 0.05], [12, 0.11]] - } - }, - "style.night": { - "line-color": "@contour_night", - "line-width": 0.5, - "line-opacity": { - "stops": [[11, 0.1], [12, 0.4]] - } - }, - "type": "line" - }, { - "id": "barrier_line_gate", - "source": "mapbox", - "source-layer": "barrier_line", - "filter": { "class": "gate" }, - "style": { - "line-width": 2.5, - "line-color": "#aab" - }, - "style.night": { - "line-width": 2.5, - "line-color": "#59596f" - }, - "type": "line" - }, { - "id": "barrier_line_fence", - "source": "mapbox", - "source-layer": "barrier_line", - "filter": { "class": "fence" }, - "style": { - "line-color": "#aeada3", - "line-width": "@fence_width" - }, - "style.night": { - "line-color": "#014b61", - "line-width": "@fence_width" - }, - "type": "line" - }, { - "id": "barrier_line_hedge", - "source": "mapbox", - "source-layer": "barrier_line", - "filter": { "class": "hedge" }, - "style": { - "line-color": "#8de99b", - "line-width": "@hedge_width" - }, - "style.night": { - "line-color": "#2e7a57", - "line-width": "@hedge_width" - }, - "type": "line" - }, { - "id": "barrier_line_land", - "source": "mapbox", - "source-layer": "barrier_line", - "filter": { "class": "land" }, - "style": { - "line-color": "@land", - "line-width": "@barrier_line_land_width" - }, - "style.night": { - "line-color": "@land_night", - "line-width": "@barrier_line_land_width" - }, - "type": "line" - }, { - "id": "barrier_line_land_fill", - "source": "mapbox", - "source-layer": "barrier_line", - "filter": { "class": "land" }, - "style": { - "fill-color": "@land" - }, - "style.night": { - "fill-color": "@land_night" - }, - "type": "fill" - }, { - "id": "barrier_line_cliff", - "source": "mapbox", - "source-layer": "barrier_line", - "filter": { "class": "cliff" }, - "style": { - "line-color": "#987", - "line-width": 4 - }, - "style.night": { - "line-color": "#63574b", - "line-width": 4 - }, - "type": "line" - }, { - "id": "water", - "source": "mapbox", - "source-layer": "water", - "style": { - "fill-color": "@water", - "fill-outline-color": "#a2bdc0" - }, - "style.night": { - "fill-color": "@water_night", - "fill-outline-color": "@water_dark_night" - }, - "type": "fill" - }, { - "id": "aeroway_fill", - "source": "mapbox", - "source-layer": "aeroway", - "filter": { - "$type": "Polygon" - }, - "style": { - "fill-color": "#ddd" - }, - "style.night": { - "fill-color": "#367" - }, - "type": "fill" - }, { - "id": "aeroway_runway", - "source": "mapbox", - "source-layer": "aeroway", - "filter": { "type": "runway" }, - "style": { - "line-color": "#ddd", - "line-width": "@runway_width" - }, - "style.night": { - "line-color": "#367", - "line-width": "@runway_width" - }, - "type": "line" - }, { - "id": "aeroway_taxiway", - "source": "mapbox", - "source-layer": "aeroway", - "filter": { "type": "taxiway" }, - "style": { - "line-color": "#ddd", - "line-width": "@taxiway_width" - }, - "style.night": { - "line-color": "#367", - "line-width": "@taxiway_width" - }, - "type": "line" - }, { - "id": "tunnel_motorway_link_casing", - "source": "mapbox", - "source-layer": "tunnel", - "filter": { "class": "motorway_link" }, - "style": { - "line-color": "@case", - "line-dasharray": [6, 6], - "line-width": "@motorway_link_casing_width" - }, - "style.night": { - "line-color": "@case_night", - "line-dasharray": [6, 6], - "line-width": "@motorway_link_casing_width" - }, - "type": "line" - }, { - "id": "tunnel_service_casing", - "source": "mapbox", - "source-layer": "tunnel", - "filter": { "class": "service" }, - "style": { - "line-color": "#000", - "line-opacity": 0.04, - "line-dasharray": [6, 6], - "line-width": "@service_casing_width" - }, - "style.night": { - "line-color": "#000", - "line-opacity": 0.04, - "line-dasharray": [6, 6], - "line-width": "@service_casing_width" - }, - "type": "line" - }, { - "id": "tunnel_main_casing", - "source": "mapbox", - "source-layer": "tunnel", - "filter": { "class": "main" }, - "style": { - "line-color": "@case", - "line-dasharray": [6, 6], - "line-width": "@main_casing_width", - "line-opacity": { - "stops": [[8, 0], [9, 1]] - } - }, - "style.night": { - "line-color": "@case_night", - "line-dasharray": [6, 6], - "line-width": "@main_casing_width", - "line-opacity": { - "stops": [[8, 0], [9, 1]] - } - }, - "type": "line" - }, { - "id": "tunnel_street_casing", - "source": "mapbox", - "source-layer": "tunnel", - "filter": { "class": ["street", "street_limited"] }, - "style": { - "line-color": "#d9d5c6", - "line-width": "@street_casing_width", - "line-opacity": "@street_casing_opacity" - }, - "style.night": { - "line-color": "@street_case_night", - "line-width": "@street_casing_width", - "line-opacity": "@street_casing_opacity" - }, - "type": "line" - }, { - "id": "tunnel_motorway_link", - "ref": "tunnel_motorway_link_casing", - "style": { - "line-color": "#e6cec7", - "line-width": "@motorway_link_width" - }, - "style.night": { - "line-color": "#78b0c1", - "line-width": "@motorway_link_width" - } - }, { - "id": "tunnel_service", - "ref": "tunnel_service_casing", - "style": { - "line-color": "#e6cec7", - "line-width": 2 - }, - "style.night": { - "line-color": "#017ca0", - "line-width": 2 - } - }, { - "id": "tunnel_street", - "ref": "tunnel_street_casing", - "style": { - "line-color": "#d9d5c6", - "line-width": "@street_width" - }, - "style.night": { - "line-color": "@street_night", - "line-width": "@street_width" - } - }, { - "id": "tunnel_main", - "ref": "tunnel_main_casing", - "style": { - "line-color": "#e6cec7", - "line-width": "@main_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - }, - "style.night": { - "line-color": "#78b0c1", - "line-width": "@main_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - } - }, { - "id": "tunnel_motorway_casing", - "source": "mapbox", - "source-layer": "tunnel", - "filter": { "class": "motorway" }, - "style": { - "line-color": "@case", - "line-dasharray": [6, 6], - "line-width": "@motorway_casing_width", - "line-opacity": { - "stops": [[8.5, 0], [9, 1]] - } - }, - "style.night": { - "line-color": "@case_night", - "line-dasharray": [6, 6], - "line-width": "@motorway_casing_width", - "line-opacity": { - "stops": [[8.5, 0], [9, 1]] - } - }, - "type": "line" - }, { - "id": "tunnel_motorway", - "ref": "tunnel_motorway_casing", - "style": { - "line-color": "#e6cec7", - "line-width": "@motorway_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - }, - "style.night": { - "line-color": "#78b0c1", - "line-width": "@motorway_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - } - }, { - "id": "road_path_case", - "source": "mapbox", - "source-layer": "road", - "filter": { "class": "path" }, - "style": { - "line-color": "#ffd", - "line-opacity": 0.4, - "line-width": { - "stops": [[14, 3], [15, 4]] - } - }, - "style.night": { - "line-color": "@land_night", - "line-opacity": 0.2 - }, - "type": "line" - }, { - "id": "road_path_footway", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "type": "footway" }, - "style": { - "line-color": "#bba", - "line-dasharray": [10, 4], - "line-width": "@path_width" - }, - "style.night": { - "line-color": "#fff", - "line-dasharray": [10, 4], - "line-width": "@path_width" - }, - "type": "line" - }, { - "id": "road_path_path", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "type": "path" }, - "style": { - "line-color": "#987", - "line-dasharray": [10, 4], - "line-opacity": 0.8, - "line-width": { - "stops": [[13, 0.8], [14, 0.9], [15, 1.2]] - } - }, - "style.night": { - "line-color": "#fff", - "line-dasharray": [10, 4], - "line-opacity": 0.8, - "line-width": { - "stops": [[13, 0.8], [14, 0.9], [15, 1.2]] - } - }, - "type": "line" - }, { - "id": "road_path_cycleway", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "type": "cycleway" }, - "style": { - "line-color": "#488", - "line-dasharray": [10, 4], - "line-width": "@path_width" - }, - "style.night": { - "line-color": "#94e6ff", - "line-dasharray": [10, 4], - "line-width": "@path_width" - }, - "type": "line" - }, { - "id": "road_path_mtb", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "type": "mtb" }, - "style": { - "line-color": "#488", - "line-dasharray": [12, 4], - "line-width": "@path_width" - }, - "style.night": { - "line-color": "#94e6ff", - "line-dasharray": [12, 4], - "line-width": "@path_width" - }, - "type": "line" - }, { - "id": "road_path_piste", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "type": "piste" }, - "style": { - "line-color": "#87b", - "line-dasharray": [8, 4], - "line-width": "@path_width" - }, - "style.night": { - "line-color": "#715dae", - "line-dasharray": [8, 4], - "line-width": "@path_width" - }, - "type": "line" - }, { - "id": "road_path_steps", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "type": "steps" }, - "style": { - "line-color": "#bba", - "line-dasharray": [10, 4], - "line-width": 4 - }, - "style.night": { - "line-color": "#016684", - "line-dasharray": [10, 4], - "line-opacity": 0.3, - "line-width": 6 - }, - "type": "line" - }, { - "id": "road_major_rail", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "class": "major_rail" }, - "style": { - "line-color": "#c8c4c0", - "line-width": 0.8 - }, - "style.night": { - "line-color": "#c8c4c0", - "line-width": 0.8 - }, - "type": "line" - }, { - "id": "road_major_rail_hatching", - "ref": "road_major_rail", - "style": { - "line-color": "#c8c4c0", - "line-dasharray": [2, 31], - "line-width": 5 - }, - "style.night": { - "line-color": "#c8c4c0", - "line-dasharray": [2, 31], - "line-width": 5 - } - }, { - "id": "road_motorway_link_casing", - "source": "mapbox", - "source-layer": "road", - "filter": { "class": "motorway_link" }, - "render": { - "line-join": "round", - "line-cap": "round" - }, - "style": { - "line-color": "@case", - "line-width": "@motorway_link_casing_width" - }, - "style.night": { - "line-color": "@case_night", - "line-width": "@motorway_link_casing_width" - }, - "type": "line" - }, { - "id": "road_service_casing", - "source": "mapbox", - "source-layer": "road", - "filter": { "class": "service" }, - "render": { - "line-join": "round", - "line-cap": "round" - }, - "style": { - "line-color": "#000", - "line-opacity": 0.04, - "line-width": "@service_casing_width" - }, - "style.night": { - "line-color": "#000", - "line-opacity": 0.04, - "line-width": "@service_casing_width" - }, - "type": "line" - }, { - "id": "road_main_casing", - "source": "mapbox", - "source-layer": "road", - "filter": { "class": "main" }, - "render": { - "line-join": "round", - "line-cap": "round" - }, - "style": { - "line-color": "@case", - "line-width": "@main_casing_width", - "line-opacity": { - "stops": [[8, 0], [9, 1]] - } - }, - "style.night": { - "line-color": "@case_night", - "line-width": "@main_casing_width", - "line-opacity": { - "stops": [[8, 0], [9, 1]] - } - }, - "type": "line" - }, { - "id": "road_street_casing", - "source": "mapbox", - "source-layer": "road", - "filter": { "class": ["street", "street_limited"] }, - "render": { - "line-join": "round", - "line-cap": "round" - }, - "style": { - "line-color": "#d9d5c6", - "line-width": "@street_casing_width", - "line-opacity": "@street_casing_opacity" - }, - "style.night": { - "line-color": "@street_case_night", - "line-width": "@street_casing_width", - "line-opacity": "@street_casing_opacity" - }, - "type": "line" - }, { - "id": "road_motorway_link", - "ref": "road_motorway_link_casing", - "style": { - "line-color": "@motorway", - "line-width": "@motorway_link_width" - }, - "style.night": { - "line-color": "@motorway_night", - "line-width": "@motorway_link_width" - } - }, { - "id": "road_service", - "ref": "road_service_casing", - "style": { - "line-color": "@street", - "line-width": 2 - }, - "style.night": { - "line-color": "@street_night", - "line-width": 2 - } - }, { - "id": "road_street", - "ref": "road_street_casing", - "style": { - "line-color": "@street", - "line-width": "@street_width" - }, - "style.night": { - "line-color": "@street_night", - "line-width": "@street_width" - } - }, { - "id": "road_main", - "ref": "road_main_casing", - "style": { - "line-color": "@main", - "line-width": "@main_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - }, - "style.night": { - "line-color": "@main_night", - "line-width": "@main_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - } - }, { - "id": "road_motorway_casing", - "source": "mapbox", - "source-layer": "road", - "filter": { "class": "motorway" }, - "render": { - "line-join": "round", - "line-cap": "round" - }, - "style": { - "line-color": "@case", - "line-width": "@motorway_casing_width", - "line-opacity": { - "stops": [[8.5, 0], [9, 1]] - } - }, - "style.night": { - "line-color": "@case_night", - "line-width": "@motorway_casing_width", - "line-opacity": { - "stops": [[8.5, 0], [9, 1]] - } - }, - "type": "line" - }, { - "id": "road_motorway", - "ref": "road_motorway_casing", - "style": { - "line-color": "@motorway", - "line-width": "@motorway_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - }, - "style.night": { - "line-color": "@motorway_night", - "line-width": "@motorway_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - } - }, { - "id": "bridge_motorway_link_casing", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "class": "motorway_link" }, - "style": { - "line-color": "@case", - "line-width": "@motorway_link_casing_width" - }, - "style.night": { - "line-color": "@case_night", - "line-width": "@motorway_link_casing_width" - }, - "type": "line" - }, { - "id": "bridge_service_casing", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "class": "service" }, - "style": { - "line-color": "#000", - "line-opacity": 0.04, - "line-width": "@service_casing_width" - }, - "style.night": { - "line-color": "#000", - "line-opacity": 0.04, - "line-width": "@service_casing_width" - }, - "type": "line" - }, { - "id": "bridge_main_casing", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "class": "main" }, - "style": { - "line-color": "@case", - "line-width": "@main_casing_width", - "line-opacity": { - "stops": [[8, 0], [9, 1]] - } - }, - "style.night": { - "line-color": "@case_night", - "line-width": "@main_casing_width", - "line-opacity": { - "stops": [[8, 0], [9, 1]] - } - }, - "type": "line" - }, { - "id": "bridge_street_casing", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "class": ["street", "street_limited"] }, - "style": { - "line-color": "#d9d5c6", - "line-width": "@street_casing_width", - "line-opacity": "@street_casing_opacity" - }, - "style.night": { - "line-color": "@street_case_night", - "line-width": "@street_casing_width", - "line-opacity": "@street_casing_opacity" - }, - "type": "line" - }, { - "id": "bridge_motorway_link", - "ref": "bridge_motorway_link_casing", - "style": { - "line-color": "@motorway", - "line-width": "@motorway_link_width" - }, - "style.night": { - "line-color": "@motorway_night", - "line-width": "@motorway_link_width" - } - }, { - "id": "bridge_service", - "ref": "bridge_service_casing", - "style": { - "line-color": "@street", - "line-width": 2 - }, - "style.night": { - "line-color": "@street_night", - "line-width": 2 - } - }, { - "id": "bridge_street", - "ref": "bridge_street_casing", - "style": { - "line-color": "@street", - "line-width": "@street_width" - }, - "style.night": { - "line-color": "@street_night", - "line-width": "@street_width" - } - }, { - "id": "bridge_main", - "ref": "bridge_main_casing", - "style": { - "line-color": "@main", - "line-width": "@main_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - }, - "style.night": { - "line-color": "@main_night", - "line-width": "@main_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - } - }, { - "id": "bridge_motorway_casing", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "class": "motorway" }, - "style": { - "line-color": "@case", - "line-width": "@motorway_casing_width", - "line-opacity": { - "stops": [[8.5, 0], [9, 1]] - } - }, - "style.night": { - "line-color": "@case_night", - "line-width": "@motorway_casing_width", - "line-opacity": { - "stops": [[8.5, 0], [9, 1]] - } - }, - "type": "line" - }, { - "id": "bridge_motorway", - "ref": "bridge_motorway_casing", - "style": { - "line-color": "@motorway", - "line-width": "@motorway_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - }, - "style.night": { - "line-color": "@motorway_night", - "line-width": "@motorway_width", - "line-opacity": { - "stops": [[5.5, 0], [6, 1]] - } - } - }, { - "id": "bridge_aerialway_casing", - "source": "mapbox", - "source-layer": "bridge", - "filter": { "class": "aerialway" }, - "style": { - "line-color": "white", - "line-opacity": 0.5, - "line-width": "@aerialway_casing_width" - }, - "style.night": { - "line-color": "white", - "line-opacity": 0.5, - "line-width": "@aerialway_casing_width" - }, - "type": "line" - }, { - "id": "bridge_aerialway", - "ref": "bridge_aerialway_casing", - "style": { - "line-color": "#876", - "line-opacity": 0.5, - "line-width": "@aerialway_width" - }, - "style.night": { - "line-color": "#876", - "line-opacity": 0.5, - "line-width": "@aerialway_width" - } - }, { - "id": "admin_l3", - "source": "mapbox", - "source-layer": "admin", - "filter": { "admin_level": [3, 4, 5] }, - "render": { - "line-join": "round" - }, - "style": { - "line-color": "#88a", - "line-dasharray": [60, 20], - "line-opacity": { - "stops": [[3, 0], [5, 1]] - }, - "line-width": "@admin_l3_width" - }, - "style.night": { - "line-color": "@admin_night", - "line-dasharray": [60, 20], - "line-opacity": { - "stops": [[3, 0], [5, 1]] - }, - "line-width": "@admin_l3_width" - }, - "type": "line" - }, { - "id": "admin_l2", - "source": "mapbox", - "source-layer": "admin", - "filter": { "admin_level": 2 }, - "render": { - "line-join": "round", - "line-cap": "round" - }, - "style": { - "line-color": "#88a", - "line-width": "@admin_l2_width" - }, - "style.night": { - "line-color": "@admin_night", - "line-width": "@admin_l2_width" - }, - "type": "line" - }, { - "id": "admin_maritime_cover", - "source": "mapbox", - "source-layer": "admin", - "filter": { "maritime": 1 }, - "render": { - "line-join": "round", - "line-cap": "round" - }, - "style": { - "line-color": "@water", - "line-width": 5 - }, - "style.night": { - "line-color": "@water_night", - "line-width": 5 - }, - "type": "line" - }, { - "id": "admin_maritime", - "ref": "admin_maritime_cover", - "style": { - "line-color": "#c0d6d6", - "line-width": { - "stops": [[5, 1], [7, 2], [11, 3]] - } - }, - "style.night": { - "line-color": "#0a1347", - "line-width": { - "stops": [[5, 1], [7, 2], [11, 3]] - } - } - }, { - "id": "country_label_line", - "source": "mapbox", - "source-layer": "country_label_line", - "render": { - "text-max-width": 5 - }, - "style": { - "line-color": "@country_text", - "line-width": 0.5, - "line-opacity": 0.5 - }, - "style.night": { - "line-color": "@text_night", - "line-width": 0.5, - "line-opacity": 0.5 - }, - "type": "line" - }, { - "id": "country_label", - "source": "mapbox", - "source-layer": "country_label", - "filter": { "$type": "Point" }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold, Arial Unicode MS Bold", - "text-max-size": 24, - "text-max-width": 5 - }, - "style": { - "text-color": "@country_text", - "text-halo-color": "rgba(255,255,255,0.5)", - "text-halo-width": { - "stops": [[0, 1.17], [11, 2]] - }, - "text-size": "@country_label_size" - }, - "style.night": { - "text-color": "@text_night", - "text-halo-color": "@text2_stroke_night", - "text-halo-width": { - "stops": [[0, 1.63], [11, 2.8]] - }, - "text-size": "@country_label_size" - }, - "type": "symbol" - }, { - "id": "marine_label_line_1", - "source": "mapbox", - "source-layer": "marine_label", - "filter": { "$type": "LineString", "labelrank": 1 }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold", - "text-max-size": 30, - "text-max-angle": 28.65, - "text-letter-spacing": 0.4, - "symbol-placement": "line" - }, - "style": { - "text-color": "@marine_text", - "text-size": { - "stops": [[2, 20], [3, 25], [4, 30], [21, 30]] - }, - "text-halo-color": "@water" - }, - "style.night": { - "text-color": "@water_dark_night", - "text-size": { - "stops": [[2, 20], [3, 25], [4, 30], [21, 30]] - }, - "text-halo-color": "@water_night" - }, - "type": "symbol" - }, { - "id": "marine_label_line_2", - "source": "mapbox", - "source-layer": "marine_label", - "filter": { "$type": "LineString", "labelrank": 2 }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold", - "text-max-size": 24, - "text-max-angle": 28.65, - "symbol-placement": "line" - }, - "style": { - "text-color": "@marine_text", - "text-size": { - "stops": [[2, 13], [3, 14], [4, 20], [5, 24], [21, 24]] - }, - "text-halo-color": "@water" - }, - "style.night": { - "text-color": "@water_dark_night", - "text-size": { - "stops": [[2, 13], [3, 14], [4, 20], [5, 24], [21, 24]] - }, - "text-halo-color": "@water_night" - }, - "type": "symbol" - }, { - "id": "marine_label_line_3", - "source": "mapbox", - "source-layer": "marine_label", - "filter": { "$type": "LineString", "labelrank": 3 }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold", - "text-max-size": 18, - "text-max-angle": 28.65, - "symbol-placement": "line" - }, - "style": { - "text-color": "@marine_text", - "text-size": { - "stops": [[2, 12], [3, 13], [4, 15], [5, 18], [21, 18]] - }, - "text-halo-color": "@water" - }, - "style.night": { - "text-color": "@water_dark_night", - "text-size": { - "stops": [[2, 12], [3, 13], [4, 15], [5, 18], [21, 18]] - }, - "text-halo-color": "@water_night" - }, - "type": "symbol" - }, { - "id": "marine_label_line_other", - "source": "mapbox", - "source-layer": "marine_label", - "filter": { "$type": "LineString", "labelrank": [4, 5, 6] }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold", - "text-max-size": 16, - "text-max-angle": 28.65, - "symbol-placement": "line" - }, - "style": { - "text-color": "@marine_text", - "text-size": { - "stops": [[3, 12], [4, 14], [5, 16], [21, 16]] - }, - "text-halo-color": "@water" - }, - "style.night": { - "text-color": "@water_dark_night", - "text-size": { - "stops": [[3, 12], [4, 14], [5, 16], [21, 16]] - }, - "text-halo-color": "@water_night" - }, - "type": "symbol" - }, { - "id": "marine_label_point_1", - "source": "mapbox", - "source-layer": "marine_label", - "filter": { "$type": "Point", "labelrank": 1 }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold", - "text-max-size": 30, - "text-max-width": 8, - "text-letter-spacing": 0.4, - "text-line-height": 2 - }, - "style": { - "text-color": "@marine_text", - "text-size": { - "stops": [[2, 20], [3, 25], [4, 30], [21, 30]] - }, - "text-halo-color": "@water" - }, - "style.night": { - "text-color": "@water_dark_night", - "text-size": { - "stops": [[2, 20], [3, 25], [4, 30], [21, 30]] - }, - "text-halo-color": "@water_night" - }, - "type": "symbol" - }, { - "id": "marine_label_point_2", - "source": "mapbox", - "source-layer": "marine_label", - "filter": { "$type": "Point", "labelrank": 2 }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold", - "text-max-size": 24, - "text-max-width": 8, - "text-letter-spacing": 0.2, - "text-line-height": 1.5 - }, - "style": { - "text-color": "@marine_text", - "text-size": { - "stops": [[2, 13], [3, 14], [4, 20], [5, 24], [21, 24]] - }, - "text-halo-color": "@water" - }, - "style.night": { - "text-color": "@water_dark_night", - "text-size": { - "stops": [[2, 13], [3, 14], [4, 20], [5, 24], [21, 24]] - }, - "text-halo-color": "@water_night" - }, - "type": "symbol" - }, { - "id": "marine_label_point_3", - "source": "mapbox", - "source-layer": "marine_label", - "filter": { "$type": "Point", "labelrank": 3 }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold", - "text-max-size": 18, - "text-max-width": 8, - "text-letter-spacing": 0.1, - "text-line-height": 1.3 - }, - "style": { - "text-color": "@marine_text", - "text-size": { - "stops": [[2, 12], [3, 13], [4, 15], [5, 18], [21, 18]] - }, - "text-halo-color": "@water" - }, - "style.night": { - "text-color": "@water_dark_night", - "text-size": { - "stops": [[2, 12], [3, 13], [4, 15], [5, 18], [21, 18]] - }, - "text-halo-color": "@water_night" - }, - "type": "symbol" - }, { - "id": "marine_label_point_other", - "source": "mapbox", - "source-layer": "marine_label", - "filter": { "$type": "Point", "labelrank": [4, 5, 6] }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold", - "text-max-size": 16, - "text-max-width": 8, - "text-letter-spacing": 0.1, - "text-line-height": 1.2 - }, - "style": { - "text-color": "@marine_text", - "text-size": { - "stops": [[3, 12], [4, 14], [5, 16], [21, 16]] - }, - "text-halo-color": "@water" - }, - "style.night": { - "text-color": "@water_dark_night", - "text-size": { - "stops": [[3, 12], [4, 14], [5, 16], [21, 16]] - }, - "text-halo-color": "@water_night" - }, - "type": "symbol" - }, { - "id": "state_label", - "source": "mapbox", - "source-layer": "state_label", - "filter": { "$type": "Point" }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Regular, Arial Unicode MS Regular", - "text-max-size": 16, - "text-max-width": 8 - }, - "style": { - "text-color": "#333", - "text-halo-width": { - "stops": [[2.99, 0], [3, 1.17], [8.99, 1.87], [9, 0]] - }, - "text-halo-color": "rgba(244,239,225,0.8)", - "text-size": { - "stops": [[2.99, 0], [3, 10], [8.99, 16], [9, 0]] - } - }, - "style.night": { - "text-color": "#fff", - "text-halo-width": { - "stops": [[2.99, 0], [3, 1.17], [8.99, 1.87], [9, 0]] - }, - "text-halo-color": "@land_night", - "text-size": { - "stops": [[2.99, 0], [3, 10], [8.99, 16], [9, 0]] - } - }, - "type": "symbol" - }, { - "id": "place_label_city", - "source": "mapbox", - "source-layer": "place_label", - "filter": { "type": "city", "$type": "Point" }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold, Arial Unicode MS Bold", - "text-max-size": 20, - "text-max-width": 8 - }, - "style": { - "text-color": "#444", - "text-halo-width": { - "stops": [[2.99, 0], [3, 1.17], [6, 1.63], [13.99, 2.33], [14, 0]] - }, - "text-halo-color": "@text_stroke", - "text-size": { - "stops": [[2.99, 0], [3, 10], [6, 14], [13.99, 20], [14, 0]] - } - }, - "style.night": { - "text-color": "#fff", - "text-halo-width": { - "stops": [[2.99, 0], [3, 1.17], [6, 1.63], [13.99, 2.33], [14, 0]] - }, - "text-halo-color": "@text2_stroke_night", - "text-size": { - "stops": [[2.99, 0], [3, 10], [6, 14], [13.99, 20], [14, 0]] - } - }, - "type": "symbol" - }, { - "id": "place_label_town", - "source": "mapbox", - "source-layer": "place_label", - "filter": { "type": "town", "$type": "Point" }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold, Arial Unicode MS Bold", - "text-max-size": 24, - "text-max-width": 8 - }, - "style": { - "text-color": "#716656", - "text-halo-width": { - "stops": [[8, 1.5], [11, 1.95], [13, 2.55], [15, 3.3]] - }, - "text-halo-color": "@text_stroke", - "text-size": { - "stops": [[8, 10], [11, 13], [13, 17], [15, 22]] - } - }, - "style.night": { - "text-color": "@text_night", - "text-halo-width": { - "stops": [[8, 1.5], [11, 1.95], [13, 2.55], [15, 3.3]] - }, - "text-halo-color": "@text2_stroke_night", - "text-size": { - "stops": [[8, 10], [11, 13], [13, 17], [15, 22]] - } - }, - "type": "symbol" - }, { - "id": "place_label_village", - "source": "mapbox", - "source-layer": "place_label", - "filter": { "type": "village", "$type": "Point" }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold, Arial Unicode MS Bold", - "text-max-size": 22, - "text-max-width": 8 - }, - "style": { - "text-color": "#635644", - "text-halo-width": { - "stops": [[8, 1.2], [11, 1.5], [13, 2.1], [15, 2.4], [16, 3]] - }, - "text-halo-color": "@text_stroke", - "text-size": { - "stops": [[8, 8], [11, 10], [13, 14], [15, 16], [16, 20]] - } - }, - "style.night": { - "text-color": "@text_night", - "text-halo-width": { - "stops": [[8, 1.2], [11, 1.5], [13, 2.1], [15, 2.4], [16, 3]] - }, - "text-halo-color": "@text2_stroke_night", - "text-size": { - "stops": [[8, 8], [11, 10], [13, 14], [15, 16], [16, 20]] - } - }, - "type": "symbol" - }, { - "id": "place_label_other", - "source": "mapbox", - "source-layer": "place_label", - "filter": { "type": ["hamlet", "suburb", "neighbourhood"], "$type": "Point" }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold, Arial Unicode MS Bold", - "text-max-size": 18, - "text-max-width": 6 - }, - "style": { - "text-color": "#7d6c55", - "text-halo-color": "@text_stroke", - "text-size": { - "stops": [[12, 11], [13, 12], [15, 14], [17, 18]] - } - }, - "style.night": { - "text-color": "@text_night", - "text-halo-color": "@text2_stroke_night", - "text-halo-width": { - "stops": [[12, 1.65], [13, 1.8], [15, 2.1], [17, 2.7]] - }, - "text-size": { - "stops": [[12, 11], [13, 12], [15, 14], [17, 18]] - } - }, - "type": "symbol" - }, { - "id": "road_label_1", - "source": "mapbox", - "source-layer": "road_label", - "filter": { "class": ["motorway", "main"], "$type": "LineString" }, - "render": { - "text-field": "{name_en}", - "text-padding": 2, - "text-font": "Open Sans Regular, Arial Unicode MS Regular", - "text-max-size": 18, - "text-max-angle": 28.65, - "symbol-placement": "line" - }, - "style": { - "text-color": "#585042", - "text-halo-color": "@land", - "text-halo-width": { - "stops": [[12, 0.55], [13, 0.6], [14, 0.65], [15, 0.7], [16, 0.8], [17, 0.9]] - }, - "text-size": "@road_label_1_size" - }, - "style.night": { - "text-color": "@text_night", - "text-halo-color": "@text2_stroke_night", - "text-halo-width": { - "stops": [[12, 0.92], [13, 1], [14, 1.08], [15, 1.17], [16, 1.33], [17, 1.5]] - }, - "text-size": "@road_label_1_size" - }, - "type": "symbol" - }, { - "id": "road_label_2", - "source": "mapbox", - "source-layer": "road_label", - "filter": { "class": ["street", "street_limited"], "$type": "LineString" }, - "render": { - "text-field": "{name_en}", - "text-padding": 2, - "text-font": "Open Sans Regular, Arial Unicode MS Regular", - "text-max-size": 16, - "text-max-angle": 28.65, - "symbol-placement": "line" - }, - "style": { - "text-color": "#585042", - "text-halo-color": "@land", - "text-halo-width": { - "stops": [[12, 0.55], [13, 0.6], [15, 0.7], [17, 0.8]] - }, - "text-size": "@road_label_2_size" - }, - "style.night": { - "text-color": "@text_night", - "text-halo-color": "@text2_stroke_night", - "text-halo-width": { - "stops": [[12, 0.92], [13, 1], [15, 1.17], [17, 1.33]] - }, - "text-size": "@road_label_2_size" - }, - "type": "symbol" - }, { - "id": "road_label_3", - "source": "mapbox", - "source-layer": "road_label", - "filter": { "class": ["service", "driveway", "path"], "$type": "LineString" }, - "render": { - "text-field": "{name_en}", - "text-padding": 2, - "text-font": "Open Sans Regular, Arial Unicode MS Regular", - "text-max-size": 14, - "text-max-angle": 28.65, - "symbol-placement": "line" - }, - "style": { - "text-color": "#585042", - "text-halo-color": "@land", - "text-halo-width": { - "stops": [[14, 0.5], [15, 0.6], [17, 0.7]] - }, - "text-size": "@road_label_3_size" - }, - "style.night": { - "text-color": "@text_night", - "text-halo-color": "@text2_stroke_night", - "text-halo-width": { - "stops": [[14, 0.83], [15, 1], [17, 1.17]] - }, - "text-size": "@road_label_3_size" - }, - "type": "symbol" - }, { - "id": "contour_label", - "source": "mapbox", - "source-layer": "contour", - "filter": { "index": [5, 10], "$type": "LineString" }, - "render": { - "text-field": "{ele} m", - "text-font": "Open Sans Regular, Arial Unicode MS Regular", - "text-max-size": 10, - "text-max-angle": 28.65, - "symbol-placement": "line" - }, - "style": { - "text-color": "@text", - "text-halo-color": "@land", - "text-halo-width": 1.5, - "text-size": 10 - }, - "style.night": { - "text-color": "@contour_night", - "text-halo-color": "@land_night", - "text-halo-width": 1.5, - "text-size": 10 - }, - "type": "symbol" - }, { - "id": "water_label", - "source": "mapbox", - "source-layer": "water_label", - "filter": { "$type": "Point" }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold", - "text-max-size": 12, - "text-max-width": 8 - }, - "style": { - "text-color": "@water_dark", - "text-halo-color": "rgba(255,255,255,0.75)" - }, - "style.night": { - "text-color": "@text_water_night", - "text-halo-color": "@water_night" - }, - "type": "symbol" - }, { - "id": "waterway_label", - "source": "mapbox", - "source-layer": "waterway_label", - "filter": { "$type": "LineString" }, - "render": { - "text-field": "{name_en}", - "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold", - "text-max-size": 12, - "text-max-angle": 28.65, - "symbol-placement": "line" - }, - "style": { - "text-color": "@water_dark", - "text-halo-width": 1.4, - "text-halo-color": "@text_stroke" - }, - "style.night": { - "text-color": "@text_water_night", - "text-halo-color": "@water_night" - }, - "type": "symbol" - }, { - "id": "poi_label_1-2", - "source": "mapbox", - "source-layer": "poi_label", - "filter": { "scalerank": [1, 2], "$type": "Point" }, - "render": { - "icon-image": "{maki}-12", - "text-field": "{name_en}", - "text-padding": 2, - "text-font": "Open Sans Semibold, Arial Unicode MS Bold", - "text-max-size": 12, - "text-max-width": 10, - "text-offset": [0, 0.6], - "text-vertical-align": "top" - }, - "style": { - "text-color": "#444", - "text-size": "@poi_label_1-2_size", - "text-halo-color": "@land", - "text-halo-width": { - "stops": [[14, 1.5], [15, 1.65], [16, 1.8]] - } - }, - "style.night": { - "text-color": "#fff", - "text-size": "@poi_label_1-2_size", - "text-halo-color": "@text2_stroke_night", - "text-halo-width": { - "stops": [[14, 1.5], [15, 1.65], [16, 1.8]] - } - }, - "type": "symbol" - }, { - "id": "poi_label_3", - "source": "mapbox", - "source-layer": "poi_label", - "filter": { "scalerank": 3, "$type": "Point" }, - "render": { - "icon-image": "{maki}-12", - "text-field": "{name_en}", - "text-padding": 2, - "text-font": "Open Sans Semibold, Arial Unicode MS Bold", - "text-max-size": 11, - "text-max-width": 10, - "text-offset": [0, 0.6], - "text-vertical-align": "top" - }, - "style": { - "icon-opacity": { - "stops": [[15.5, 0], [15.75, 1]] - }, - "text-color": "#444", - "text-size": "@poi_label_3_size", - "text-halo-color": "@land", - "text-halo-width": { - "stops": [[15, 1.5], [16, 1.65]] - }, - "text-opacity": { - "stops": [[15.5, 0], [15.75, 1]] - } - }, - "style.night": { - "text-color": "#fff", - "text-size": "@poi_label_3_size", - "text-halo-color": "@text2_stroke_night", - "text-halo-width": { - "stops": [[15, 1.5], [16, 1.65]] - }, - "text-opacity": { - "stops": [[15.5, 0], [15.75, 1]] - } - }, - "type": "symbol" - }, { - "id": "poi_label_4", - "source": "mapbox", - "source-layer": "poi_label", - "filter": { "scalerank": 4, "$type": "Point" }, - "render": { - "icon-image": "{maki}-12", - "text-field": "{name_en}", - "text-padding": 2, - "text-font": "Open Sans Semibold, Arial Unicode MS Bold", - "text-max-size": 10, - "text-max-width": 10, - "text-offset": [0, 0.6], - "text-vertical-align": "top" - }, - "style": { - "icon-opacity": { - "stops": [[17.5, 0], [17.75, 1]] - }, - "text-color": "#444", - "text-size": 10, - "text-opacity": { - "stops": [[17.5, 0], [17.75, 1]] - }, - "text-halo-color": "@land", - "text-halo-width": 1.5 - }, - "style.night": { - "text-color": "#fff", - "text-size": 10, - "text-opacity": { - "stops": [[17.5, 0], [17.75, 1]] - }, - "text-halo-color": "@text2_stroke_night", - "text-halo-width": 1.5 - }, - "type": "symbol" - }] -} diff --git a/test/fixtures/fixture_request.cpp b/test/fixtures/fixture_request.cpp index f3b41681a6..cc01760ae1 100644 --- a/test/fixtures/fixture_request.cpp +++ b/test/fixtures/fixture_request.cpp @@ -16,7 +16,7 @@ const std::string base_directory = []{ fn.erase(fn.find_last_of("/")); fn.erase(fn.find_last_of("/")); fn.erase(fn.find_last_of("/")); - return fn + "/node_modules/mapbox-gl-test-suite/"; + return fn + "/test/suite/"; }(); namespace mbgl { diff --git a/test/headless.cpp b/test/headless.cpp index e1bdbdc061..4605d7f288 100644 --- a/test/headless.cpp +++ b/test/headless.cpp @@ -20,7 +20,7 @@ const std::string base_directory = []{ std::string fn = __FILE__; fn.erase(fn.find_last_of("/")); fn.erase(fn.find_last_of("/")); - return fn + "/node_modules/mapbox-gl-test-suite/"; + return fn + "/test/suite/"; }(); auto display_ = std::make_shared<mbgl::HeadlessDisplay>(); @@ -92,13 +92,25 @@ TEST_P(HeadlessTest, render) { map.setLonLatZoom(longitude, latitude, zoom); map.setBearing(bearing); + // Run the loop. It will terminate when we don't have any further listeners. map.run(); const unsigned int w = width * pixelRatio; const unsigned int h = height * pixelRatio; - const std::string image = util::compress_png(w, h, view.readPixels().get(), true); + auto pixels = view.readPixels(); + + const int stride = w * 4; + auto tmp = std::unique_ptr<char[]>(new char[stride]()); + char *rgba = reinterpret_cast<char *>(pixels.get()); + for (int i = 0, j = height - 1; i < j; i++, j--) { + memcpy(tmp.get(), rgba + i * stride, stride); + memcpy(rgba + i * stride, rgba + j * stride, stride); + memcpy(rgba + j * stride, tmp.get(), stride); + } + + const std::string image = util::compress_png(w, h, pixels.get()); util::write_file(actual_image, image); } } diff --git a/test/suite b/test/suite new file mode 160000 +Subproject 1651a3df444ff83c98f6eff00679d6b84dc8845 diff --git a/test/test.gyp b/test/test.gyp index f227dd5f54..8ae475d1c1 100644 --- a/test/test.gyp +++ b/test/test.gyp @@ -8,7 +8,7 @@ '<@(uv_ldflags)', '<@(sqlite3_ldflags)', '<@(curl_ldflags)', - '<@(png_ldflags)' + '<@(png_ldflags)', ], }, 'targets': [ @@ -77,8 +77,7 @@ ], 'dependencies': [ '../deps/gtest/gtest.gyp:gtest', - '../mapboxgl.gyp:mbgl-standalone', - '../mapboxgl.gyp:copy_fixtures', + '../mapboxgl.gyp:mbgl-standalone' ], 'conditions': [ ['OS == "mac"', { 'xcode_settings': { 'OTHER_LDFLAGS': [ '<@(ldflags)' ] } |