From d9d752a1f7ff73fd1346b41ae476995d07fd7917 Mon Sep 17 00:00:00 2001 From: Jake Coppinger Date: Wed, 11 Jan 2023 21:30:59 +1100 Subject: [PATCH] Use maplibre-gl instead of mapbox-gl --- config/webpack.config.js | 4 +- package-lock.json | 152 +- package.json | 3 +- public/css/mapbox-gl.css | 1 + public/index.html | 10 +- public/style.json | 12557 +++++++++++++++++++++++++++++++++++++ src/layers.ts | 19 +- src/map.tsx | 25 +- 8 files changed, 12660 insertions(+), 111 deletions(-) create mode 100644 public/css/mapbox-gl.css create mode 100644 public/style.json diff --git a/config/webpack.config.js b/config/webpack.config.js index d342f8a..b585305 100644 --- a/config/webpack.config.js +++ b/config/webpack.config.js @@ -390,7 +390,7 @@ module.exports = function (webpackEnv) { // See #6846 for context on why cacheCompression is disabled cacheCompression: false, compact: isEnvProduction, - ignore: ['./node_modules/mapbox-gl/dist/mapbox-gl.js'] + ignore: ['./node_modules/maplibre-gl/dist/maplibre-gl.js'] }, }, // Process any JS outside of the app with Babel. @@ -418,7 +418,7 @@ module.exports = function (webpackEnv) { // show incorrect code and set breakpoints on the wrong lines. sourceMaps: shouldUseSourceMap, inputSourceMap: shouldUseSourceMap, - ignore: ['./node_modules/mapbox-gl/dist/mapbox-gl.js'] + ignore: ['./node_modules/maplibre-gl/dist/maplibre-gl.js'] }, }, // "postcss" loader applies autoprefixer to our CSS. diff --git a/package-lock.json b/package-lock.json index c1a2ef5..0d3ad6c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -38,7 +38,7 @@ "jest-environment-jsdom-fourteen": "1.0.1", "jest-resolve": "24.9.0", "jest-watch-typeahead": "0.4.2", - "mapbox-gl": "^2.9.2", + "maplibre-gl": "^2.4.0", "mini-css-extract-plugin": "0.9.0", "optimize-css-assets-webpack-plugin": "5.0.3", "pnp-webpack-plugin": "1.6.4", @@ -71,7 +71,6 @@ "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^7.1.2", "@types/jest": "^24.0.0", - "@types/mapbox-gl": "^2.7.6", "@types/node": "^12.0.0", "@types/react": "^16.9.0", "@types/react-dom": "^16.9.0", @@ -1809,11 +1808,6 @@ "url": "https://github.com/sponsors/sindresorhus" } }, - "node_modules/@mapbox/geojson-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", - "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" - }, "node_modules/@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", @@ -1837,11 +1831,6 @@ "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.5.tgz", "integrity": "sha512-OhXt2lS//WpLdkqrzo/KwB7SRD8AiNTFFzuo9n14IBupzIMa67yGItcK7I2W9D8Ghpa4T04Sw9FWsKCJG50Bxw==" }, - "node_modules/@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4=" - }, "node_modules/@mapbox/vector-tile": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", @@ -2267,8 +2256,7 @@ "node_modules/@types/geojson": { "version": "7946.0.10", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", - "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==", - "dev": true + "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==" }, "node_modules/@types/glob": { "version": "7.1.3", @@ -2325,13 +2313,19 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==" }, - "node_modules/@types/mapbox-gl": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-2.7.6.tgz", - "integrity": "sha512-EPIfNO7WApXaFM7DuJBj+kpXmqffqJHMJ3Q9gbV/nNL23XHR0PC5CCDYbAFa4tKErm0xJd9C5kPLF6KvA/cRcA==", - "dev": true, + "node_modules/@types/mapbox__point-geometry": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.2.tgz", + "integrity": "sha512-D0lgCq+3VWV85ey1MZVkE8ZveyuvW5VAfuahVTQRpXFQTxw03SuIf1/K4UQ87MMIXVKzpFjXFiFMZzLj2kU+iA==" + }, + "node_modules/@types/mapbox__vector-tile": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.0.tgz", + "integrity": "sha512-kDwVreQO5V4c8yAxzZVQLE5tyWF+IPToAanloQaSnwfXmIcJ7cyOrv8z4Ft4y7PsLYmhWXmON8MBV8RX0Rgr8g==", "dependencies": { - "@types/geojson": "*" + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" } }, "node_modules/@types/minimatch": { @@ -2349,6 +2343,11 @@ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, + "node_modules/@types/pbf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.2.tgz", + "integrity": "sha512-EDrLIPaPXOZqDjrkzxxbX7UlJSeQVgah3i0aA4pOSzmK9zq3BIh7/MZIQxED7slJByvKM4Gc6Hypyu2lJzh3SQ==" + }, "node_modules/@types/prop-types": { "version": "15.7.3", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", @@ -7870,11 +7869,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, - "node_modules/grid-index": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", - "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" - }, "node_modules/growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", @@ -10259,35 +10253,43 @@ "node": ">=0.10.0" } }, - "node_modules/mapbox-gl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-2.10.0.tgz", - "integrity": "sha512-ZAlCe55LXlbg60l15okSBs70NQAPLw3yRO3SSJMTB1uU7uj2QQbLCQPy1Ds+3B4wlaa5W3ewv8FNOZPQOoSSPA==", + "node_modules/maplibre-gl": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-2.4.0.tgz", + "integrity": "sha512-csNFylzntPmHWidczfgCZpvbTSmhaWvLRj9e1ezUDBEPizGgshgm3ea1T5TCNEEBq0roauu7BPuRZjA3wO4KqA==", + "hasInstallScript": true, "dependencies": { - "@mapbox/geojson-rewind": "^0.5.1", - "@mapbox/geojson-types": "^1.0.2", + "@mapbox/geojson-rewind": "^0.5.2", "@mapbox/jsonlint-lines-primitives": "^2.0.2", "@mapbox/mapbox-gl-supported": "^2.0.1", "@mapbox/point-geometry": "^0.1.0", "@mapbox/tiny-sdf": "^2.0.5", - "@mapbox/unitbezier": "^0.0.0", + "@mapbox/unitbezier": "^0.0.1", "@mapbox/vector-tile": "^1.3.1", "@mapbox/whoots-js": "^3.1.0", + "@types/geojson": "^7946.0.10", + "@types/mapbox__point-geometry": "^0.1.2", + "@types/mapbox__vector-tile": "^1.3.0", + "@types/pbf": "^3.0.2", "csscolorparser": "~1.0.3", "earcut": "^2.2.4", "geojson-vt": "^3.2.1", "gl-matrix": "^3.4.3", - "grid-index": "^1.1.0", + "global-prefix": "^3.0.0", "murmurhash-js": "^1.0.0", "pbf": "^3.2.1", "potpack": "^1.0.2", "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.1.4", + "supercluster": "^7.1.5", "tinyqueue": "^2.0.3", "vt-pbf": "^3.1.3" } }, + "node_modules/maplibre-gl/node_modules/@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + }, "node_modules/md5.js": { "version": "1.3.5", "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", @@ -14099,11 +14101,6 @@ "aproba": "^1.1.1" } }, - "node_modules/rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, "node_modules/rxjs": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", @@ -18896,11 +18893,6 @@ } } }, - "@mapbox/geojson-types": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@mapbox/geojson-types/-/geojson-types-1.0.2.tgz", - "integrity": "sha512-e9EBqHHv3EORHrSfbR9DqecPNn+AmuAoQxV6aL8Xu30bJMJR1o8PZLZzpk1Wq7/NfCbuhmakHTPYRhoqLsXRnw==" - }, "@mapbox/jsonlint-lines-primitives": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/@mapbox/jsonlint-lines-primitives/-/jsonlint-lines-primitives-2.0.2.tgz", @@ -18921,11 +18913,6 @@ "resolved": "https://registry.npmjs.org/@mapbox/tiny-sdf/-/tiny-sdf-2.0.5.tgz", "integrity": "sha512-OhXt2lS//WpLdkqrzo/KwB7SRD8AiNTFFzuo9n14IBupzIMa67yGItcK7I2W9D8Ghpa4T04Sw9FWsKCJG50Bxw==" }, - "@mapbox/unitbezier": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.0.tgz", - "integrity": "sha1-FWUb1VOme4WB+zmIEMmK2Go0Uk4=" - }, "@mapbox/vector-tile": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/@mapbox/vector-tile/-/vector-tile-1.3.1.tgz", @@ -19259,8 +19246,7 @@ "@types/geojson": { "version": "7946.0.10", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-7946.0.10.tgz", - "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==", - "dev": true + "integrity": "sha512-Nmh0K3iWQJzniTuPRcJn5hxXkfB1T1pgB89SBig5PlJQU5yocazeu4jATJlaA0GYFKWMqDdvYemoSnF2pXgLVA==" }, "@types/glob": { "version": "7.1.3", @@ -19317,13 +19303,19 @@ "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.5.tgz", "integrity": "sha512-7+2BITlgjgDhH0vvwZU/HZJVyk+2XUlvxXe8dFMedNX/aMkaOq++rMAFXc0tM7ij15QaWlbdQASBR9dihi+bDQ==" }, - "@types/mapbox-gl": { - "version": "2.7.6", - "resolved": "https://registry.npmjs.org/@types/mapbox-gl/-/mapbox-gl-2.7.6.tgz", - "integrity": "sha512-EPIfNO7WApXaFM7DuJBj+kpXmqffqJHMJ3Q9gbV/nNL23XHR0PC5CCDYbAFa4tKErm0xJd9C5kPLF6KvA/cRcA==", - "dev": true, + "@types/mapbox__point-geometry": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/@types/mapbox__point-geometry/-/mapbox__point-geometry-0.1.2.tgz", + "integrity": "sha512-D0lgCq+3VWV85ey1MZVkE8ZveyuvW5VAfuahVTQRpXFQTxw03SuIf1/K4UQ87MMIXVKzpFjXFiFMZzLj2kU+iA==" + }, + "@types/mapbox__vector-tile": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@types/mapbox__vector-tile/-/mapbox__vector-tile-1.3.0.tgz", + "integrity": "sha512-kDwVreQO5V4c8yAxzZVQLE5tyWF+IPToAanloQaSnwfXmIcJ7cyOrv8z4Ft4y7PsLYmhWXmON8MBV8RX0Rgr8g==", "requires": { - "@types/geojson": "*" + "@types/geojson": "*", + "@types/mapbox__point-geometry": "*", + "@types/pbf": "*" } }, "@types/minimatch": { @@ -19341,6 +19333,11 @@ "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==" }, + "@types/pbf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/@types/pbf/-/pbf-3.0.2.tgz", + "integrity": "sha512-EDrLIPaPXOZqDjrkzxxbX7UlJSeQVgah3i0aA4pOSzmK9zq3BIh7/MZIQxED7slJByvKM4Gc6Hypyu2lJzh3SQ==" + }, "@types/prop-types": { "version": "15.7.3", "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.3.tgz", @@ -23862,11 +23859,6 @@ "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==" }, - "grid-index": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/grid-index/-/grid-index-1.1.0.tgz", - "integrity": "sha512-HZRwumpOGUrHyxO5bqKZL0B0GlUpwtCAzZ42sgxUPniu33R1LSFH5yrIcBCHjkctCAh3mtWKcKd9J4vDDdeVHA==" - }, "growly": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", @@ -25758,33 +25750,42 @@ "object-visit": "^1.0.0" } }, - "mapbox-gl": { - "version": "2.10.0", - "resolved": "https://registry.npmjs.org/mapbox-gl/-/mapbox-gl-2.10.0.tgz", - "integrity": "sha512-ZAlCe55LXlbg60l15okSBs70NQAPLw3yRO3SSJMTB1uU7uj2QQbLCQPy1Ds+3B4wlaa5W3ewv8FNOZPQOoSSPA==", + "maplibre-gl": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/maplibre-gl/-/maplibre-gl-2.4.0.tgz", + "integrity": "sha512-csNFylzntPmHWidczfgCZpvbTSmhaWvLRj9e1ezUDBEPizGgshgm3ea1T5TCNEEBq0roauu7BPuRZjA3wO4KqA==", "requires": { - "@mapbox/geojson-rewind": "^0.5.1", - "@mapbox/geojson-types": "^1.0.2", + "@mapbox/geojson-rewind": "^0.5.2", "@mapbox/jsonlint-lines-primitives": "^2.0.2", "@mapbox/mapbox-gl-supported": "^2.0.1", "@mapbox/point-geometry": "^0.1.0", "@mapbox/tiny-sdf": "^2.0.5", - "@mapbox/unitbezier": "^0.0.0", + "@mapbox/unitbezier": "^0.0.1", "@mapbox/vector-tile": "^1.3.1", "@mapbox/whoots-js": "^3.1.0", + "@types/geojson": "^7946.0.10", + "@types/mapbox__point-geometry": "^0.1.2", + "@types/mapbox__vector-tile": "^1.3.0", + "@types/pbf": "^3.0.2", "csscolorparser": "~1.0.3", "earcut": "^2.2.4", "geojson-vt": "^3.2.1", "gl-matrix": "^3.4.3", - "grid-index": "^1.1.0", + "global-prefix": "^3.0.0", "murmurhash-js": "^1.0.0", "pbf": "^3.2.1", "potpack": "^1.0.2", "quickselect": "^2.0.0", - "rw": "^1.3.3", - "supercluster": "^7.1.4", + "supercluster": "^7.1.5", "tinyqueue": "^2.0.3", "vt-pbf": "^3.1.3" + }, + "dependencies": { + "@mapbox/unitbezier": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@mapbox/unitbezier/-/unitbezier-0.0.1.tgz", + "integrity": "sha512-nMkuDXFv60aBr9soUG5q+GvZYL+2KZHVvsqFCzqnkGEf46U2fvmytHaEVc1/YZbiLn8X+eR3QzX1+dwDO1lxlw==" + } } }, "md5.js": { @@ -28890,11 +28891,6 @@ "aproba": "^1.1.1" } }, - "rw": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/rw/-/rw-1.3.3.tgz", - "integrity": "sha1-P4Yt+pGrdmsUiF700BEkv9oHT7Q=" - }, "rxjs": { "version": "6.6.2", "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.2.tgz", diff --git a/package.json b/package.json index 55d5e6a..3be1e57 100644 --- a/package.json +++ b/package.json @@ -33,7 +33,7 @@ "jest-environment-jsdom-fourteen": "1.0.1", "jest-resolve": "24.9.0", "jest-watch-typeahead": "0.4.2", - "mapbox-gl": "^2.9.2", + "maplibre-gl": "^2.4.0", "mini-css-extract-plugin": "0.9.0", "optimize-css-assets-webpack-plugin": "5.0.3", "pnp-webpack-plugin": "1.6.4", @@ -76,7 +76,6 @@ "@testing-library/react": "^9.3.2", "@testing-library/user-event": "^7.1.2", "@types/jest": "^24.0.0", - "@types/mapbox-gl": "^2.7.6", "@types/node": "^12.0.0", "@types/react": "^16.9.0", "@types/react-dom": "^16.9.0", diff --git a/public/css/mapbox-gl.css b/public/css/mapbox-gl.css new file mode 100644 index 0000000..8ae1760 --- /dev/null +++ b/public/css/mapbox-gl.css @@ -0,0 +1 @@ +.mapboxgl-map{font:12px/20px Helvetica Neue,Arial,Helvetica,sans-serif;overflow:hidden;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mapboxgl-canvas{position:absolute;left:0;top:0}.mapboxgl-map:-webkit-full-screen{width:100%;height:100%}.mapboxgl-canary{background-color:salmon}.mapboxgl-canvas-container.mapboxgl-interactive,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass{cursor:grab;-webkit-user-select:none;user-select:none}.mapboxgl-canvas-container.mapboxgl-interactive.mapboxgl-track-pointer{cursor:pointer}.mapboxgl-canvas-container.mapboxgl-interactive:active,.mapboxgl-ctrl-group button.mapboxgl-ctrl-compass:active{cursor:grabbing}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate .mapboxgl-canvas{touch-action:pan-x pan-y}.mapboxgl-canvas-container.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:pinch-zoom}.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan,.mapboxgl-canvas-container.mapboxgl-touch-zoom-rotate.mapboxgl-touch-drag-pan .mapboxgl-canvas{touch-action:none}.mapboxgl-ctrl-bottom-left,.mapboxgl-ctrl-bottom-right,.mapboxgl-ctrl-top-left,.mapboxgl-ctrl-top-right{position:absolute;pointer-events:none;z-index:2}.mapboxgl-ctrl-top-left{top:0;left:0}.mapboxgl-ctrl-top-right{top:0;right:0}.mapboxgl-ctrl-bottom-left{bottom:0;left:0}.mapboxgl-ctrl-bottom-right{right:0;bottom:0}.mapboxgl-ctrl{clear:both;pointer-events:auto;transform:translate(0)}.mapboxgl-ctrl-top-left .mapboxgl-ctrl{margin:10px 0 0 10px;float:left}.mapboxgl-ctrl-top-right .mapboxgl-ctrl{margin:10px 10px 0 0;float:right}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl{margin:0 0 10px 10px;float:left}.mapboxgl-ctrl-bottom-right .mapboxgl-ctrl{margin:0 10px 10px 0;float:right}.mapboxgl-ctrl-group{border-radius:4px;background:#fff}.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px rgba(0,0,0,.1)}@media (-ms-high-contrast:active){.mapboxgl-ctrl-group:not(:empty){box-shadow:0 0 0 2px ButtonText}}.mapboxgl-ctrl-group button{width:29px;height:29px;display:block;padding:0;outline:none;border:0;box-sizing:border-box;background-color:transparent;cursor:pointer;overflow:hidden}.mapboxgl-ctrl-group button+button{border-top:1px solid #ddd}.mapboxgl-ctrl button .mapboxgl-ctrl-icon{display:block;width:100%;height:100%;background-repeat:no-repeat;background-position:50%}@media (-ms-high-contrast:active){.mapboxgl-ctrl-icon{background-color:transparent}.mapboxgl-ctrl-group button+button{border-top:1px solid ButtonText}}.mapboxgl-ctrl-attrib-button:focus,.mapboxgl-ctrl-group button:focus{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl button:disabled{cursor:not-allowed}.mapboxgl-ctrl button:disabled .mapboxgl-ctrl-icon{opacity:.25}.mapboxgl-ctrl button:not(:disabled):hover{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-group button:focus:focus-visible{box-shadow:0 0 2px 2px #0096ff}.mapboxgl-ctrl-group button:focus:not(:focus-visible){box-shadow:none}.mapboxgl-ctrl-group button:focus:first-child{border-radius:4px 4px 0 0}.mapboxgl-ctrl-group button:focus:last-child{border-radius:0 0 4px 4px}.mapboxgl-ctrl-group button:focus:only-child{border-radius:inherit}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-out .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10 13c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h9c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-9z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-zoom-in .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M14.5 8.5c-.75 0-1.5.75-1.5 1.5v3h-3c-.75 0-1.5.75-1.5 1.5S9.25 16 10 16h3v3c0 .75.75 1.5 1.5 1.5S16 19.75 16 19v-3h3c.75 0 1.5-.75 1.5-1.5S19.75 13 19 13h-3v-3c0-.75-.75-1.5-1.5-1.5z'/%3E %3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-fullscreen .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M24 16v5.5c0 1.75-.75 2.5-2.5 2.5H16v-1l3-1.5-4-5.5 1-1 5.5 4 1.5-3h1zM6 16l1.5 3 5.5-4 1 1-4 5.5 3 1.5v1H7.5C5.75 24 5 23.25 5 21.5V16h1zm7-11v1l-3 1.5 4 5.5-1 1-5.5-4L6 13H5V7.5C5 5.75 5.75 5 7.5 5H13zm11 2.5c0-1.75-.75-2.5-2.5-2.5H16v1l3 1.5-4 5.5 1 1 5.5-4 1.5 3h1V7.5z'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-shrink .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M18.5 16c-1.75 0-2.5.75-2.5 2.5V24h1l1.5-3 5.5 4 1-1-4-5.5 3-1.5v-1h-5.5zM13 18.5c0-1.75-.75-2.5-2.5-2.5H5v1l3 1.5L4 24l1 1 5.5-4 1.5 3h1v-5.5zm3-8c0 1.75.75 2.5 2.5 2.5H24v-1l-3-1.5L25 5l-1-1-5.5 4L17 5h-1v5.5zM10.5 13c1.75 0 2.5-.75 2.5-2.5V5h-1l-1.5 3L5 4 4 5l4 5.5L5 12v1h5.5z'/%3E %3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E %3C/svg%3E")}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23999'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-compass .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 29 29' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10.5 14l4-8 4 8h-8z'/%3E %3Cpath id='south' d='M10.5 16l4 8 4-8h-8z' fill='%23ccc'/%3E %3C/svg%3E")}}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23333'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23aaa'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-waiting .mapboxgl-ctrl-icon{animation:mapboxgl-spin 2s linear infinite}@media (-ms-high-contrast:active){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23fff'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23999'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-active-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e58978'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%2333b5e5'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate.mapboxgl-ctrl-geolocate-background-error .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23e54e33'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2' display='none'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23000'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' display='none'/%3E %3C/svg%3E")}.mapboxgl-ctrl button.mapboxgl-ctrl-geolocate:disabled .mapboxgl-ctrl-icon{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='29' height='29' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill='%23666'%3E %3Cpath d='M10 4C9 4 9 5 9 5v.1A5 5 0 0 0 5.1 9H5s-1 0-1 1 1 1 1 1h.1A5 5 0 0 0 9 14.9v.1s0 1 1 1 1-1 1-1v-.1a5 5 0 0 0 3.9-3.9h.1s1 0 1-1-1-1-1-1h-.1A5 5 0 0 0 11 5.1V5s0-1-1-1zm0 2.5a3.5 3.5 0 1 1 0 7 3.5 3.5 0 1 1 0-7z'/%3E %3Ccircle id='dot' cx='10' cy='10' r='2'/%3E %3Cpath id='stroke' d='M14 5l1 1-9 9-1-1 9-9z' fill='red'/%3E %3C/svg%3E")}}@keyframes mapboxgl-spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}a.mapboxgl-ctrl-logo{width:88px;height:23px;margin:0 0 -4px -4px;display:block;background-repeat:no-repeat;cursor:pointer;overflow:hidden;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='0.3' stroke='%23000' stroke-width='3'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='0.9' fill='%23fff'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E")}a.mapboxgl-ctrl-logo.mapboxgl-compact{width:23px}@media (-ms-high-contrast:active){a.mapboxgl-ctrl-logo{background-color:transparent;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='1' stroke='%23000' stroke-width='3'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='1' fill='%23fff'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E")}}@media (-ms-high-contrast:black-on-white){a.mapboxgl-ctrl-logo{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='88' height='23' viewBox='0 0 88 23' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink' fill-rule='evenodd'%3E %3Cdefs%3E %3Cpath id='logo' d='M11.5 2.25c5.105 0 9.25 4.145 9.25 9.25s-4.145 9.25-9.25 9.25-9.25-4.145-9.25-9.25 4.145-9.25 9.25-9.25zM6.997 15.983c-.051-.338-.828-5.802 2.233-8.873a4.395 4.395 0 013.13-1.28c1.27 0 2.49.51 3.39 1.42.91.9 1.42 2.12 1.42 3.39 0 1.18-.449 2.301-1.28 3.13C12.72 16.93 7 16 7 16l-.003-.017zM15.3 10.5l-2 .8-.8 2-.8-2-2-.8 2-.8.8-2 .8 2 2 .8z'/%3E %3Cpath id='text' d='M50.63 8c.13 0 .23.1.23.23V9c.7-.76 1.7-1.18 2.73-1.18 2.17 0 3.95 1.85 3.95 4.17s-1.77 4.19-3.94 4.19c-1.04 0-2.03-.43-2.74-1.18v3.77c0 .13-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V8.23c0-.12.1-.23.23-.23h1.4zm-3.86.01c.01 0 .01 0 .01-.01.13 0 .22.1.22.22v7.55c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V15c-.7.76-1.69 1.19-2.73 1.19-2.17 0-3.94-1.87-3.94-4.19 0-2.32 1.77-4.19 3.94-4.19 1.03 0 2.02.43 2.73 1.18v-.75c0-.12.1-.23.23-.23h1.4zm26.375-.19a4.24 4.24 0 00-4.16 3.29c-.13.59-.13 1.19 0 1.77a4.233 4.233 0 004.17 3.3c2.35 0 4.26-1.87 4.26-4.19 0-2.32-1.9-4.17-4.27-4.17zM60.63 5c.13 0 .23.1.23.23v3.76c.7-.76 1.7-1.18 2.73-1.18 1.88 0 3.45 1.4 3.84 3.28.13.59.13 1.2 0 1.8-.39 1.88-1.96 3.29-3.84 3.29-1.03 0-2.02-.43-2.73-1.18v.77c0 .12-.1.23-.23.23h-1.4c-.13 0-.23-.1-.23-.23V5.23c0-.12.1-.23.23-.23h1.4zm-34 11h-1.4c-.13 0-.23-.11-.23-.23V8.22c.01-.13.1-.22.23-.22h1.4c.13 0 .22.11.23.22v.68c.5-.68 1.3-1.09 2.16-1.1h.03c1.09 0 2.09.6 2.6 1.55.45-.95 1.4-1.55 2.44-1.56 1.62 0 2.93 1.25 2.9 2.78l.03 5.2c0 .13-.1.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.8 0-1.46.7-1.59 1.62l.01 4.68c0 .13-.11.23-.23.23h-1.41c-.13 0-.23-.11-.23-.23v-4.59c0-.98-.74-1.71-1.62-1.71-.85 0-1.54.79-1.6 1.8v4.5c0 .13-.1.23-.23.23zm53.615 0h-1.61c-.04 0-.08-.01-.12-.03-.09-.06-.13-.19-.06-.28l2.43-3.71-2.39-3.65a.213.213 0 01-.03-.12c0-.12.09-.21.21-.21h1.61c.13 0 .24.06.3.17l1.41 2.37 1.4-2.37a.34.34 0 01.3-.17h1.6c.04 0 .08.01.12.03.09.06.13.19.06.28l-2.37 3.65 2.43 3.7c0 .05.01.09.01.13 0 .12-.09.21-.21.21h-1.61c-.13 0-.24-.06-.3-.17l-1.44-2.42-1.44 2.42a.34.34 0 01-.3.17zm-7.12-1.49c-1.33 0-2.42-1.12-2.42-2.51 0-1.39 1.08-2.52 2.42-2.52 1.33 0 2.42 1.12 2.42 2.51 0 1.39-1.08 2.51-2.42 2.52zm-19.865 0c-1.32 0-2.39-1.11-2.42-2.48v-.07c.02-1.38 1.09-2.49 2.4-2.49 1.32 0 2.41 1.12 2.41 2.51 0 1.39-1.07 2.52-2.39 2.53zm-8.11-2.48c-.01 1.37-1.09 2.47-2.41 2.47s-2.42-1.12-2.42-2.51c0-1.39 1.08-2.52 2.4-2.52 1.33 0 2.39 1.11 2.41 2.48l.02.08zm18.12 2.47c-1.32 0-2.39-1.11-2.41-2.48v-.06c.02-1.38 1.09-2.48 2.41-2.48s2.42 1.12 2.42 2.51c0 1.39-1.09 2.51-2.42 2.51z'/%3E %3C/defs%3E %3Cmask id='clip'%3E %3Crect x='0' y='0' width='100%25' height='100%25' fill='white'/%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/mask%3E %3Cg id='outline' opacity='1' stroke='%23fff' stroke-width='3' fill='%23fff'%3E %3Ccircle mask='url(%23clip)' cx='11.5' cy='11.5' r='9.25'/%3E %3Cuse xlink:href='%23text' mask='url(%23clip)'/%3E %3C/g%3E %3Cg id='fill' opacity='1' fill='%23000'%3E %3Cuse xlink:href='%23logo'/%3E %3Cuse xlink:href='%23text'/%3E %3C/g%3E %3C/svg%3E")}}.mapboxgl-ctrl.mapboxgl-ctrl-attrib{padding:0 5px;background-color:hsla(0,0%,100%,.5);margin:0}@media screen{.mapboxgl-ctrl-attrib.mapboxgl-compact{min-height:20px;padding:2px 24px 2px 0;margin:10px;position:relative;background-color:#fff;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 28px 2px 8px;visibility:visible}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show,.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact-show{padding:2px 8px 2px 28px;border-radius:12px}.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-inner{display:none}.mapboxgl-ctrl-attrib-button{display:none;cursor:pointer;position:absolute;background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E");background-color:hsla(0,0%,100%,.5);width:24px;height:24px;box-sizing:border-box;border-radius:12px;outline:none;top:0;right:0;border:0}.mapboxgl-ctrl-bottom-left .mapboxgl-ctrl-attrib-button,.mapboxgl-ctrl-top-left .mapboxgl-ctrl-attrib-button{left:0}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-inner,.mapboxgl-ctrl-attrib.mapboxgl-compact .mapboxgl-ctrl-attrib-button{display:block}.mapboxgl-ctrl-attrib.mapboxgl-compact-show .mapboxgl-ctrl-attrib-button{background-color:rgba(0,0,0,.05)}.mapboxgl-ctrl-bottom-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;right:0}.mapboxgl-ctrl-top-right>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;right:0}.mapboxgl-ctrl-top-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{top:0;left:0}.mapboxgl-ctrl-bottom-left>.mapboxgl-ctrl-attrib.mapboxgl-compact:after{bottom:0;left:0}}@media screen and (-ms-high-contrast:active){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd' fill='%23fff'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E")}}@media screen and (-ms-high-contrast:black-on-white){.mapboxgl-ctrl-attrib.mapboxgl-compact:after{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg width='24' height='24' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg' fill-rule='evenodd'%3E %3Cpath d='M4 10a6 6 0 1 0 12 0 6 6 0 1 0-12 0m5-3a1 1 0 1 0 2 0 1 1 0 1 0-2 0m0 3a1 1 0 1 1 2 0v3a1 1 0 1 1-2 0'/%3E %3C/svg%3E")}}.mapboxgl-ctrl-attrib a{color:rgba(0,0,0,.75);text-decoration:none}.mapboxgl-ctrl-attrib a:hover{color:inherit;text-decoration:underline}.mapboxgl-ctrl-attrib .mapbox-improve-map{font-weight:700;margin-left:2px}.mapboxgl-attrib-empty{display:none}.mapboxgl-ctrl-scale{background-color:hsla(0,0%,100%,.75);font-size:10px;border:2px solid #333;border-top:#333;padding:0 5px;color:#333;box-sizing:border-box}.mapboxgl-popup{position:absolute;top:0;left:0;display:flex;will-change:transform;pointer-events:none}.mapboxgl-popup-anchor-top,.mapboxgl-popup-anchor-top-left,.mapboxgl-popup-anchor-top-right{flex-direction:column}.mapboxgl-popup-anchor-bottom,.mapboxgl-popup-anchor-bottom-left,.mapboxgl-popup-anchor-bottom-right{flex-direction:column-reverse}.mapboxgl-popup-anchor-left{flex-direction:row}.mapboxgl-popup-anchor-right{flex-direction:row-reverse}.mapboxgl-popup-tip{width:0;height:0;border:10px solid transparent;z-index:1}.mapboxgl-popup-anchor-top .mapboxgl-popup-tip{align-self:center;border-top:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip{align-self:flex-start;border-top:none;border-left:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{align-self:flex-end;border-top:none;border-right:none;border-bottom-color:#fff}.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip{align-self:center;border-bottom:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip{align-self:flex-start;border-bottom:none;border-left:none;border-top-color:#fff}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{align-self:flex-end;border-bottom:none;border-right:none;border-top-color:#fff}.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{align-self:center;border-left:none;border-right-color:#fff}.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{align-self:center;border-right:none;border-left-color:#fff}.mapboxgl-popup-close-button{position:absolute;right:0;top:0;border:0;border-radius:0 3px 0 0;cursor:pointer;background-color:transparent}.mapboxgl-popup-close-button:hover{background-color:rgba(0,0,0,.05)}.mapboxgl-popup-content{position:relative;background:#fff;border-radius:3px;box-shadow:0 1px 2px rgba(0,0,0,.1);padding:10px 10px 15px;pointer-events:auto}.mapboxgl-popup-anchor-top-left .mapboxgl-popup-content{border-top-left-radius:0}.mapboxgl-popup-anchor-top-right .mapboxgl-popup-content{border-top-right-radius:0}.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-content{border-bottom-left-radius:0}.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-content{border-bottom-right-radius:0}.mapboxgl-popup-track-pointer{display:none}.mapboxgl-popup-track-pointer *{pointer-events:none;user-select:none}.mapboxgl-map:hover .mapboxgl-popup-track-pointer{display:flex}.mapboxgl-map:active .mapboxgl-popup-track-pointer{display:none}.mapboxgl-marker{position:absolute;top:0;left:0;will-change:transform;opacity:1;transition:opacity .2s}.mapboxgl-user-location-dot,.mapboxgl-user-location-dot:before{background-color:#1da1f2;width:15px;height:15px;border-radius:50%}.mapboxgl-user-location-dot:before{content:"";position:absolute;animation:mapboxgl-user-location-dot-pulse 2s infinite}.mapboxgl-user-location-dot:after{border-radius:50%;border:2px solid #fff;content:"";height:19px;left:-2px;position:absolute;top:-2px;width:19px;box-sizing:border-box;box-shadow:0 0 3px rgba(0,0,0,.35)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading{width:0;height:0}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after,.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{content:"";border-bottom:7.5px solid #4aa1eb;position:absolute}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:before{border-left:7.5px solid transparent;transform:translateY(-28px) skewY(-20deg)}.mapboxgl-user-location-show-heading .mapboxgl-user-location-heading:after{border-right:7.5px solid transparent;transform:translate(7.5px,-28px) skewY(20deg)}@keyframes mapboxgl-user-location-dot-pulse{0%{transform:scale(1);opacity:1}70%{transform:scale(3);opacity:0}to{transform:scale(1);opacity:0}}.mapboxgl-user-location-dot-stale{background-color:#aaa}.mapboxgl-user-location-dot-stale:after{display:none}.mapboxgl-user-location-accuracy-circle{background-color:rgba(29,161,242,.2);width:1px;height:1px;border-radius:100%}.mapboxgl-crosshair,.mapboxgl-crosshair .mapboxgl-interactive,.mapboxgl-crosshair .mapboxgl-interactive:active{cursor:crosshair}.mapboxgl-boxzoom{position:absolute;top:0;left:0;width:0;height:0;background:#fff;border:2px dotted #202020;opacity:.5}@media print{.mapbox-improve-map{display:none}}.mapboxgl-scroll-zoom-blocker,.mapboxgl-touch-pan-blocker{color:#fff;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Helvetica,Arial,sans-serif;justify-content:center;text-align:center;position:absolute;display:flex;align-items:center;top:0;left:0;width:100%;height:100%;background:rgba(0,0,0,.7);opacity:0;pointer-events:none;transition:opacity .75s ease-in-out;transition-delay:1s}.mapboxgl-scroll-zoom-blocker-show,.mapboxgl-touch-pan-blocker-show{opacity:1;transition:opacity .1s ease-in-out}.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page,.mapboxgl-canvas-container.mapboxgl-touch-pan-blocker-override.mapboxgl-scrollable-page .mapboxgl-canvas{touch-action:pan-x pan-y} \ No newline at end of file diff --git a/public/index.html b/public/index.html index ceac469..39ee0ef 100644 --- a/public/index.html +++ b/public/index.html @@ -9,7 +9,10 @@ content="A map of safe cycling infrastructure. Uses OpenStreetMap data." /> Safe Cycling Map - + - - -

Safe
Cycling
Map.

diff --git a/public/style.json b/public/style.json new file mode 100644 index 0000000..ce02179 --- /dev/null +++ b/public/style.json @@ -0,0 +1,12557 @@ +{ + "version": 8, + "id": "overpass-ultra", + "name": "Overpass Ultra", + "glyphs": "https://api.maptiler.com/fonts/{fontstack}/{range}.pbf?key=pshic7g6q5sYkoJz2yYP", + "sprite": "https://api.maptiler.com/maps/openstreetmap/sprite", + "sources": { + "openmaptiles": { + "url": "https://api.maptiler.com/tiles/v3-openmaptiles/tiles.json?key=pshic7g6q5sYkoJz2yYP", + "type": "vector" + }, + "OverpassAPI": { + "type": "geojson", + "data": { "type": "FeatureCollection", "features": [] } + } + }, + "layers": [ + { + "id": "background", + "type": "background", + "layout": { + "visibility": "visible" + }, + "paint": { + "background-color": "#f2efe9" + } + }, + { + "id": "landuse_classes", + "type": "fill", + "source": "openmaptiles", + "source-layer": "landuse", + "minzoom": 7, + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": [ + "match", + [ + "get", + "class" + ], + "railway", + "#ebdbe8", + "residential", + "#e0dfdf", + "cemetery", + "#aacbaf", + "military", + "#fceaea", + "commercial", + "#f2dad9", + "industrial", + "#ebdbe8", + "garages", + "#dfddce", + "retail", + "#ffd6d1", + "bus_station", + "#e9e7e2", + "school", + "#ffffe5", + "university", + "#ffffe5", + "kindergarten", + "#ffffe5", + "college", + "#ffffe5", + "hospital", + "#ffffe5", + "stadium", + "#d5ffd9", + "pitch", + "#aae0cb", + "playground", + "#d5ffd9", + "track", + "#aae0cb", + "dam", + "#adadad", + "#000" + ], + "fill-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "railway", + "cemetery", + "military", + "residential", + "commercial", + "industrial", + "garages", + "retail", + "bus_station", + "school", + "university", + "kindergarten", + "college", + "hospital", + "stadium", + "pitch", + "playground", + "track", + "dam" + ], + [ + "==", + "$type", + "Polygon" + ] + ] + }, + { + "id": "landuse_residential", + "type": "fill", + "source": "openmaptiles", + "source-layer": "landuse", + "minzoom": 6, + "maxzoom": 24, + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": { + "stops": [ + [ + 7, + "#d0d0d0" + ], + [ + 11, + "#dddddd" + ], + [ + 12, + "#e0dfdf" + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "residential", + "suburbs", + "neighbourhood" + ] + ] + }, + { + "id": "aeroway_fill", + "type": "fill", + "source": "openmaptiles", + "source-layer": "aeroway", + "minzoom": 11, + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": { + "stops": [ + [ + 6, + "rgba(223, 223, 228, 1)" + ], + [ + 12, + "rgba(232, 231, 223, 1)" + ] + ] + }, + "fill-opacity": 1 + }, + "metadata": {}, + "filter": [ + "==", + "$type", + "Polygon" + ] + }, + { + "id": "landcover_classes", + "type": "fill", + "source": "openmaptiles", + "source-layer": "landcover", + "maxzoom": 13, + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": [ + "match", + [ + "get", + "class" + ], + "farmland", + "#eef0d5", + "wood", + "#add19e", + "rock", + "#eee5dc", + "grass", + "#cdebb0", + "sand", + "#f5e9c6", + "wetland", + "#add19e", + "#000" + ], + "fill-opacity": { + "stops": [ + [ + 7, + 0.5 + ], + [ + 10, + 1 + ] + ] + }, + "fill-antialias": false + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "farmland", + "wood", + "rock", + "grass", + "wetland", + "sand" + ] + ] + }, + { + "id": "landcover_class_outline", + "type": "line", + "source": "openmaptiles", + "source-layer": "landcover", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "#c7c9ae", + "line-width": 0.5 + }, + "filter": [ + "all", + [ + "in", + "class", + "farmland" + ] + ] + }, + { + "id": "landcover_park", + "type": "fill", + "source": "openmaptiles", + "source-layer": "landcover", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#c8facc", + "fill-antialias": true + }, + "filter": [ + "all", + [ + "==", + "subclass", + "park" + ] + ] + }, + { + "id": "landcover_subclasses", + "type": "fill", + "source": "openmaptiles", + "source-layer": "landcover", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": [ + "match", + [ + "get", + "subclass" + ], + "allotments", + "#c9e1bf", + "bare_rock", + "#eee5dc", + "beach", + "#fff1ba", + "bog", + "#d6d99f", + "dune", + "#f5e9c6", + "scrub", + "#c8d7ab", + "farm", + "#f5dcba", + "farmland", + "#eef0d5", + "forest", + "#add19e", + "grass", + "#cdebb0", + "grassland", + "#cdebb0", + "golf_course", + "#def6c0", + "heath", + "#d6d99f", + "mangrove", + "#c8d7ab", + "meadow", + "#cdebb0", + "orchard", + "#aedfa3", + "park", + "#c8facc", + "garden", + "#cdebb0", + "plant_nursery", + "#aedfa3", + "recreation_ground", + "#d5ffd9", + "reedbed", + "#cdebb0", + "saltmarsh", + "#cdebb0", + "sand", + "#f5e9c6", + "scree", + "#eee5dc", + "swamp", + "#add19e", + "tidalflat", + "#DED6CF", + "village_green", + "#cdebb0", + "vineyard", + "#aedfa3", + "wet_meadow", + "#cdebb0", + "wetland", + "#add19e", + "wood", + "#add19e", + "marsh", + "#ff0", + "#FFFFFF" + ], + "fill-antialias": true + }, + "filter": [ + "all", + [ + "in", + "subclass", + "allotments", + "bare_rock", + "beach", + "dune", + "scrub", + "farm", + "farmland", + "forest", + "garden", + "grass", + "grassland", + "golf_course", + "heath", + "meadow", + "orchard", + "plant_nursery", + "recreation_ground", + "reedbed", + "saltmarsh", + "sand", + "scree", + "swamp", + "tidalflat", + "tundra", + "village_green", + "vineyard", + "wet_meadow", + "wetland", + "wood" + ] + ] + }, + { + "id": "landcover_subclass_patterns", + "type": "fill", + "source": "openmaptiles", + "source-layer": "landcover", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-opacity": [ + "match", + [ + "get", + "subclass" + ], + "beach", + 0.4, + "forest", + 0.4, + "bare_rock", + 0.3, + "scrub", + 0.6, + "garden", + 0.6, + "scree", + 0.3, + "wood", + 0.4, + 1 + ], + "fill-pattern": [ + "match", + [ + "get", + "subclass" + ], + "allotments", + "allotments", + "bare_rock", + "rock_overlay", + "beach", + "beach", + "bog", + "wetland_bog", + "scrub", + "scrub", + "forest", + "leaftype_unknown", + "garden", + "plant_nursery", + "mangrove", + "wetland_mangrove", + "marsh", + "wetland_marsh", + "orchard", + "orchard", + "plant_nursery", + "plant_nursery", + "reedbed", + "wetland_reed", + "saltmarsh", + "wetland_marsh", + "scree", + "scree_overlay", + "swamp", + "wetland_swamp", + "vineyard", + "vineyard", + "wet_meadow", + "wetland_marsh", + "wetland", + "wetland", + "wood", + "leaftype_unknown", + "" + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "subclass", + "allotments", + "bare_rock", + "beach", + "bog", + "dune", + "scrub", + "farm", + "farmland", + "forest", + "garden", + "grass", + "grassland", + "golf_course", + "heath", + "mangrove", + "marsh", + "meadow", + "orchard", + "park", + "plant_nursery", + "recreation_ground", + "reedbed", + "saltern", + "saltmarsh", + "sand", + "scree", + "swamp", + "village_green", + "vineyard", + "wet_meadow", + "wetland", + "wood" + ] + ] + }, + { + "id": "landcover_subclass_outline", + "type": "line", + "source": "openmaptiles", + "source-layer": "landcover", + "minzoom": 15, + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": [ + "match", + [ + "get", + "subclass" + ], + "allotments", + "#B1C6A8", + "farm", + "#d1b48c", + "farmland", + "#c7c9ae", + "recreation_ground", + "#3c6640", + "#000" + ], + "line-width": [ + "match", + [ + "get", + "subclass" + ], + "recreation_ground", + 0.3, + 0.5 + ], + "line-opacity": 1 + }, + "filter": [ + "all", + [ + "in", + "subclass", + "allotments", + "farm", + "farmland", + "recreation_ground" + ] + ] + }, + { + "id": "landcover_ice", + "type": "fill", + "source": "openmaptiles", + "source-layer": "landcover", + "minzoom": 5, + "paint": { + "fill-color": "#ddecec", + "fill-antialias": false + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "ice" + ] + ] + }, + { + "id": "landcover_ice_outline", + "type": "line", + "source": "openmaptiles", + "source-layer": "landcover", + "minzoom": 5, + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "#9cf", + "line-width": { + "stops": [ + [ + 5, + 1 + ], + [ + 10, + 1.5 + ] + ] + }, + "line-dasharray": { + "stops": [ + [ + 5, + [ + 1, + 0 + ] + ], + [ + 10, + [ + 4, + 2 + ] + ] + ] + } + }, + "filter": [ + "all", + [ + "in", + "class", + "ice" + ] + ] + }, + { + "id": "waterway_tunnel", + "type": "line", + "source": "openmaptiles", + "source-layer": "waterway", + "minzoom": 14, + "layout": { + "line-cap": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#a0c8f0", + "line-width": { + "base": 1.3, + "stops": [ + [ + 13, + 0.5 + ], + [ + 20, + 6 + ] + ] + }, + "line-dasharray": [ + 2, + 4 + ] + }, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ] + ] + }, + { + "id": "waterway_river", + "type": "line", + "source": "openmaptiles", + "source-layer": "waterway", + "layout": { + "line-cap": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#a0c8f0", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 0.5 + ], + [ + 20, + 6 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "river" + ], + [ + "!=", + "brunnel", + "tunnel" + ], + [ + "!=", + "intermittent", + 1 + ] + ] + }, + { + "id": "waterway_river_intermittent", + "type": "line", + "source": "openmaptiles", + "source-layer": "waterway", + "layout": { + "line-cap": "round" + }, + "paint": { + "line-color": "#a0c8f0", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 0.5 + ], + [ + 20, + 6 + ] + ] + }, + "line-dasharray": [ + 3, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "river" + ], + [ + "!=", + "brunnel", + "tunnel" + ], + [ + "==", + "intermittent", + 1 + ] + ] + }, + { + "id": "waterway_other", + "type": "line", + "source": "openmaptiles", + "source-layer": "waterway", + "layout": { + "line-cap": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#a0c8f0", + "line-width": { + "base": 1.3, + "stops": [ + [ + 13, + 0.5 + ], + [ + 20, + 6 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!=", + "class", + "river" + ], + [ + "!=", + "brunnel", + "tunnel" + ], + [ + "!=", + "intermittent", + 1 + ] + ] + }, + { + "id": "waterway_other_intermittent", + "type": "line", + "source": "openmaptiles", + "source-layer": "waterway", + "layout": { + "line-cap": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#a0c8f0", + "line-width": { + "base": 1.3, + "stops": [ + [ + 13, + 0.5 + ], + [ + 20, + 6 + ] + ] + }, + "line-dasharray": [ + 4, + 3 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "!=", + "class", + "river" + ], + [ + "!=", + "brunnel", + "tunnel" + ], + [ + "==", + "intermittent", + 1 + ] + ] + }, + { + "id": "water_intermittent", + "type": "fill", + "source": "openmaptiles", + "source-layer": "water", + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "rgba(172, 218, 251, 1)", + "fill-opacity": 0.85 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "intermittent", + 1 + ] + ] + }, + { + "id": "water", + "type": "fill", + "source": "openmaptiles", + "source-layer": "water", + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#aad3df" + }, + "metadata": {}, + "filter": [ + "all", + [ + "!=", + "intermittent", + 1 + ], + [ + "!=", + "brunnel", + "tunnel" + ] + ] + }, + { + "id": "building", + "type": "fill", + "source": "openmaptiles", + "source-layer": "building", + "minzoom": 12, + "maxzoom": 24, + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": { + "stops": [ + [ + 13, + "rgba(222, 213, 207, 1)" + ], + [ + 16, + "#d9d0c9" + ] + ] + }, + "fill-outline-color": { + "base": 1, + "stops": [ + [ + 13, + "#9A918A" + ], + [ + 16, + "rgba(166, 157, 150, 1)" + ] + ] + } + }, + "metadata": {} + }, + { + "id": "national_parks", + "type": "line", + "source": "openmaptiles", + "source-layer": "park", + "minzoom": 8, + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(154, 199, 136, 1)", + "line-width": { + "base": 1, + "stops": [ + [ + 8, + 1.2 + ], + [ + 9, + 1.5 + ], + [ + 10, + 3.6 + ], + [ + 24, + 3.6 + ] + ] + }, + "line-offset": 1, + "line-opacity": 0.8 + } + }, + { + "id": "national_parks_thin", + "type": "line", + "source": "openmaptiles", + "source-layer": "park", + "minzoom": 10, + "layout": { + "visibility": "none" + }, + "paint": { + "line-color": "rgba(93, 156, 76, 1)", + "line-width": 1.5 + } + }, + { + "id": "aeroway_runway", + "type": "line", + "source": "openmaptiles", + "source-layer": "aeroway", + "minzoom": 11, + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(178, 181, 209, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 3 + ], + [ + 20, + 48 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "runway" + ] + ] + }, + { + "id": "aeroway_taxiway", + "type": "line", + "source": "openmaptiles", + "source-layer": "aeroway", + "minzoom": 11, + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(178, 181, 209, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 1 + ], + [ + 20, + 24 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "taxiway" + ] + ] + }, + { + "id": "ferry", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 10, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#7d7df8", + "line-width": { + "stops": [ + [ + 10, + 0.5 + ], + [ + 14, + 1.1 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "filter": [ + "all", + [ + "in", + "class", + "ferry" + ] + ] + }, + { + "id": "landuse_class_pattern", + "type": "fill", + "source": "openmaptiles", + "source-layer": "landuse", + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#000000", + "fill-opacity": 1, + "fill-pattern": [ + "match", + [ + "get", + "class" + ], + "military", + "military_red_hatch", + "cemetery", + "grave_yard_generic", + "" + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "military", + "cemetery" + ] + ] + }, + { + "id": "landuse_class_outline", + "type": "line", + "source": "openmaptiles", + "source-layer": "landuse", + "minzoom": 13, + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": [ + "match", + [ + "get", + "class" + ], + "railway", + "#c6b3c3", + "military", + "#ff5555", + "residential", + "#b9b9b9", + "commercial", + "#f2dad9", + "industrial", + "#c6b3c3", + "retail", + "#d99c95", + "school", + "#A6A68C", + "university", + "#A6A68C", + "kindergarten", + "#A6A68C", + "college", + "#A6A68C", + "hospital", + "#A6A68C", + "stadium", + "#7ca680", + "pitch", + "#7aaa97", + "playground", + "#3c6640", + "track", + "#7aaa96", + "theme_park", + "#660033", + "zoo", + "#660033", + "dam", + "#444444", + "#000" + ], + "line-width": [ + "match", + [ + "get", + "class" + ], + "railway", + 0.7, + "military", + 2, + "residential", + 0.5, + "commercial", + 0.5, + "industrial", + 0.5, + "retail", + 0.5, + "school", + 0.3, + "university", + 0.3, + "kindergarten", + 0.3, + "college", + 0.3, + "hospital", + 0.3, + "stadium", + 0.3, + "pitch", + 0.5, + "playground", + 0.3, + "track", + 0.5, + "theme_park", + 1, + "zoo", + 1, + "dam", + 2, + 1 + ], + "line-offset": [ + "match", + [ + "get", + "class" + ], + "military", + 1, + 0 + ], + "line-opacity": [ + "match", + [ + "get", + "class" + ], + "military", + 0.24, + 1 + ] + }, + "filter": [ + "all", + [ + "in", + "class", + "railway", + "military", + "residential", + "commercial", + "industrial", + "retail", + "school", + "university", + "kindergarten", + "college", + "hospital", + "stadium", + "pitch", + "playground", + "track", + "theme_park", + "zoo", + "dam" + ] + ] + }, + { + "id": "landuse_class_themepark", + "type": "line", + "source": "openmaptiles", + "source-layer": "landuse", + "minzoom": 13, + "layout": { + "line-cap": "square", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#660033", + "line-width": { + "stops": [ + [ + 9, + 3.5 + ], + [ + 14, + 5.5 + ] + ] + }, + "line-offset": 2, + "line-opacity": { + "stops": [ + [ + 9, + 0.1 + ], + [ + 12, + 0.3 + ] + ] + } + }, + "filter": [ + "all", + [ + "in", + "class", + "theme_park", + "zoo" + ] + ] + }, + { + "id": "tunnel_motorway_link_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 11, + "#c24e6b" + ], + [ + 12, + "#dc2a67" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 1.5 + ], + [ + 12, + 4 + ], + [ + 14, + 7.8 + ], + [ + 16, + 12 + ], + [ + 17, + 13 + ], + [ + 18, + 16 + ], + [ + 19, + 17 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "motorway_link" + ], + [ + "==", + "ramp", + 1 + ], + [ + "==", + "brunnel", + "tunnel" + ] + ] + }, + { + "id": "tunnel_service_track_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#cfcdca", + "line-width": { + "base": 1.2, + "stops": [ + [ + 15, + 1 + ], + [ + 16, + 4 + ], + [ + 20, + 11 + ] + ] + }, + "line-dasharray": [ + 0.5, + 0.25 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "service", + "track" + ] + ] + }, + { + "id": "tunnel_link_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#e9ac77", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 1 + ], + [ + 13, + 3 + ], + [ + 14, + 4 + ], + [ + 20, + 15 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "ramp", + "1" + ], + [ + "==", + "brunnel", + "tunnel" + ], + [ + ">", + "layer", + 0 + ] + ] + }, + { + "id": "tunnel_street_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#cfcdca", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 0.5 + ], + [ + 13, + 1 + ], + [ + 14, + 4 + ], + [ + 20, + 15 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 12.5, + 1 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "street", + "street_limited" + ] + ] + }, + { + "id": "tunnel_tertiary_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#8f8f8f", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 2.5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 14, + 9 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + }, + "line-opacity": 1, + "line-dasharray": [ + 0.5, + 0.25 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "tertiary" + ] + ] + }, + { + "id": "tunnel_secondary_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#707d05", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 3.5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 14, + 9 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + }, + "line-opacity": 1, + "line-dasharray": [ + 0.5, + 0.25 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "secondary" + ] + ] + }, + { + "id": "tunnel_trunk_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 11, + "#cf6649" + ], + [ + 12, + "#c84e2f" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 3.5 + ], + [ + 12, + 6 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + }, + "line-dasharray": [ + 0.5, + 0.25 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "trunk" + ] + ] + }, + { + "id": "tunnel_trunk_construction_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 255, 255, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 3.5 + ], + [ + 12, + 6 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 25 + ] + ] + }, + "line-dasharray": [ + 1, + 0 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "trunk_construction" + ] + ] + }, + { + "id": "tunnel_primary_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#a06b00" + ], + [ + 10, + "rgba(160, 116, 0, 1)" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 3.5 + ], + [ + 12, + 6 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + }, + "line-dasharray": [ + 0.5, + 0.25 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "primary" + ] + ] + }, + { + "id": "tunnel_motorway_construction_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#dc2a67" + ], + [ + 10, + "#c24e6b" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0 + ], + [ + 7, + 1.75 + ], + [ + 18, + 27 + ] + ] + }, + "line-dasharray": [ + 0.5, + 0.25 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "motorway_construction" + ], + [ + "==", + "brunnel", + "tunnel" + ] + ] + }, + { + "id": "tunnel_motorway_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#dc2a67" + ], + [ + 10, + "#c24e6b" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0 + ], + [ + 7, + 1.75 + ], + [ + 18, + 27 + ] + ] + }, + "line-dasharray": [ + 0.5, + 0.25 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "motorway" + ], + [ + "==", + "brunnel", + "tunnel" + ] + ] + }, + { + "id": "tunnel_path_casing_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(50, 50, 50, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 3.7 + ], + [ + 14, + 4 + ], + [ + 15, + 4.3 + ], + [ + 17, + 4.3 + ], + [ + 18, + 4.6 + ] + ] + }, + "line-dasharray": [ + 1, + 0.5 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "tunnel" + ], + [ + "==", + "class", + "path" + ] + ] + }, + { + "id": "tunnel_path_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 255, 255, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 2.7 + ], + [ + 14, + 3 + ], + [ + 15, + 3.3 + ], + [ + 17, + 3.3 + ], + [ + 18, + 3.6 + ] + ] + }, + "line-dasharray": [ + 1, + 0 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "tunnel" + ], + [ + "==", + "class", + "path" + ] + ] + }, + { + "id": "tunnel_path_cycleway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "paint": { + "line-color": "#0000ff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 0.8 + ], + [ + 14, + 1 + ], + [ + 15, + 1.3 + ], + [ + 17, + 1.3 + ], + [ + 18, + 1.6 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "path" + ], + [ + "any", + [ + "==", + "subclass", + "cycleway" + ], + [ + "==", + "bicycle", + "designated" + ] + ] + ] + }, + { + "id": "tunnel_path_bridleway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "paint": { + "line-color": "#008000", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 0.8 + ], + [ + 14, + 1 + ], + [ + 15, + 1.3 + ], + [ + 17, + 1.3 + ], + [ + 18, + 1.6 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "path" + ], + [ + "any", + [ + "==", + "subclass", + "bridleway" + ], + [ + "==", + "horse", + "designated" + ] + ], + [ + "!=", + "bicycle", + "designated" + ] + ] + }, + { + "id": "tunnel_path_footway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "paint": { + "line-color": "#fa8072", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 0.8 + ], + [ + 14, + 1 + ], + [ + 15, + 1.3 + ], + [ + 17, + 1.3 + ], + [ + 18, + 1.6 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "path" + ], + [ + "in", + "subclass", + "footway", + "path" + ], + [ + "!=", + "bicycle", + "designated" + ], + [ + "!=", + "horse", + "designated" + ] + ] + }, + { + "id": "tunnel_motorway_link", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 8, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#f1bcc6", + "line-width": { + "base": 1.2, + "stops": [ + [ + 8, + 0.7 + ], + [ + 11, + 0.9 + ], + [ + 12, + 3 + ], + [ + 14, + 6.6 + ], + [ + 16, + 10.4 + ], + [ + 17, + 11.4 + ], + [ + 18, + 14.4 + ], + [ + 19, + 15.4 + ] + ] + }, + "line-opacity": 1, + "line-dasharray": [ + 0.5, + 0.25 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "motorway" + ], + [ + "==", + "ramp", + 1 + ], + [ + "==", + "brunnel", + "tunnel" + ] + ] + }, + { + "id": "tunnel_service_track", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 15, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#f2f2f2", + "line-width": { + "base": 1.2, + "stops": [ + [ + 15, + 0.8 + ], + [ + 16, + 1.9 + ], + [ + 17, + 3.1 + ], + [ + 18, + 3.9 + ], + [ + 19, + 6.9 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "service", + "track" + ] + ] + }, + { + "id": "tunnel_service_track_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 15, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 15, + 0.8 + ], + [ + 16, + 1.9 + ], + [ + 17, + 3.1 + ], + [ + 18, + 3.9 + ], + [ + 19, + 6.9 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "service_construction", + "track_construction" + ] + ] + }, + { + "id": "tunnel_link", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fff4c6", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12.5, + 0 + ], + [ + 13, + 1.5 + ], + [ + 14, + 2.5 + ], + [ + 20, + 11.5 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "ramp", + "1" + ], + [ + "==", + "brunnel", + "tunnel" + ], + [ + ">", + "layer", + 0 + ] + ] + }, + { + "id": "tunnel_minor", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13.5, + 0 + ], + [ + 14, + 2.5 + ], + [ + 20, + 11.5 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "minor" + ] + ] + }, + { + "id": "tunnel_minor_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13.5, + 0 + ], + [ + 14, + 2.5 + ], + [ + 20, + 11.5 + ] + ] + }, + "line-opacity": 1, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "minor_construction" + ] + ] + }, + { + "id": "tunnel_tertiary", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#ffffff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 1.9 + ], + [ + 12, + 3 + ], + [ + 13, + 3.9 + ], + [ + 14, + 7.8 + ], + [ + 15, + 8.8 + ], + [ + 16, + 16.4 + ], + [ + 17, + 19.4 + ], + [ + 18, + 25.4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "tertiary" + ] + ] + }, + { + "id": "tunnel_tertiary_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#ffffff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 1.9 + ], + [ + 12, + 3 + ], + [ + 13, + 3.9 + ], + [ + 14, + 7.8 + ], + [ + 15, + 8.8 + ], + [ + 16, + 16.4 + ], + [ + 17, + 19.4 + ], + [ + 18, + 25.4 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "tertiary_construction" + ] + ] + }, + { + "id": "tunnel_secondary", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 8, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fafcd7", + "line-width": { + "base": 1.2, + "stops": [ + [ + 8, + 1 + ], + [ + 9, + 1.1 + ], + [ + 10, + 1.1 + ], + [ + 11, + 2.9 + ], + [ + 12, + 4.3 + ], + [ + 12, + 4.3 + ], + [ + 14, + 7.6 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "secondary" + ] + ] + }, + { + "id": "tunnel_secondary_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 8, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fafcd7", + "line-width": { + "base": 1.2, + "stops": [ + [ + 8, + 1 + ], + [ + 9, + 1.1 + ], + [ + 10, + 1.1 + ], + [ + 11, + 2.9 + ], + [ + 12, + 4.3 + ], + [ + 12, + 4.3 + ], + [ + 14, + 7.6 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "secondary_construction" + ] + ] + }, + { + "id": "tunnel_primary", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#feecd5", + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0.4 + ], + [ + 6, + 0.6 + ], + [ + 7, + 1 + ], + [ + 8, + 1.4 + ], + [ + 9, + 1.9 + ], + [ + 10, + 1.9 + ], + [ + 11, + 4.5 + ], + [ + 12, + 5 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "primary" + ] + ] + }, + { + "id": "tunnel_primary_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#feecd5", + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0.4 + ], + [ + 6, + 0.6 + ], + [ + 7, + 1 + ], + [ + 8, + 1.4 + ], + [ + 9, + 1.9 + ], + [ + 10, + 1.9 + ], + [ + 11, + 4.5 + ], + [ + 12, + 5 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + }, + "line-opacity": 1, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "primary_construction" + ] + ] + }, + { + "id": "tunnel_trunk", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 5, + "#f5977a" + ], + [ + 11, + "#fcd7cc" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0.4 + ], + [ + 6, + 0.6 + ], + [ + 7, + 1 + ], + [ + 8, + 1.4 + ], + [ + 9, + 1.9 + ], + [ + 10, + 1.9 + ], + [ + 11, + 4.5 + ], + [ + 12, + 5 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "trunk" + ] + ] + }, + { + "id": "tunnel_trunk_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#f9b29c", + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0.4 + ], + [ + 6, + 0.6 + ], + [ + 7, + 1 + ], + [ + 8, + 1.4 + ], + [ + 9, + 1.9 + ], + [ + 10, + 1.9 + ], + [ + 11, + 4.5 + ], + [ + 12, + 5 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + }, + "line-opacity": 1, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "trunk_construction" + ] + ] + }, + { + "id": "tunnel_motorway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 5, + "#e66e89" + ], + [ + 11, + "#f1bcc6" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0 + ], + [ + 7, + 1 + ], + [ + 18, + 25 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "motorway" + ], + [ + "==", + "brunnel", + "tunnel" + ] + ] + }, + { + "id": "tunnel_motorway_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 5, + "#e66e89" + ], + [ + 11, + "#f1bcc6" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0 + ], + [ + 7, + 1 + ], + [ + 18, + 25 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "motorway_construction" + ], + [ + "==", + "brunnel", + "tunnel" + ] + ] + }, + { + "id": "tunnel_major_rail", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(166, 166, 166, 1)", + "line-width": { + "base": 1.4, + "stops": [ + [ + 8, + 0.8 + ], + [ + 15, + 3 + ], + [ + 20, + 5.4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "rail" + ] + ] + }, + { + "id": "tunnel_major_rail_hatching", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 9, + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 8, + "rgba(114, 114, 114, 0.44)" + ], + [ + 10, + "rgba(199, 199, 199, 1)" + ] + ] + }, + "line-width": { + "base": 1.4, + "stops": [ + [ + 8, + 0 + ], + [ + 15, + 2 + ], + [ + 20, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "brunnel", + "tunnel", + "tunnel" + ], + [ + "==", + "class", + "rail" + ] + ] + }, + { + "id": "road_area_pier", + "type": "fill", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "rgba(246, 241, 229, 1)", + "fill-antialias": true + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "class", + "pier" + ] + ] + }, + { + "id": "road_pier", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "rgba(246, 241, 229, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 15, + 1 + ], + [ + 17, + 4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "pier" + ] + ] + }, + { + "id": "road_area_bridge", + "type": "fill", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#b8b8b8", + "fill-antialias": true + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "class", + "bridge" + ] + ] + }, + { + "id": "road_area_platform", + "type": "fill", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#bababa" + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "!has", + "brunnel" + ], + [ + "==", + "class", + "path" + ], + [ + "==", + "subclass", + "platform" + ] + ] + }, + { + "id": "road_area_pedestrian", + "type": "fill", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#dddde8" + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "!has", + "brunnel" + ], + [ + "!in", + "class", + "bridge", + "pier" + ] + ] + }, + { + "id": "road_service_track_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "#bbbbbb", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 2 + ], + [ + 15, + 3.5 + ], + [ + 16, + 7 + ], + [ + 17, + 8.5 + ], + [ + 18, + 11 + ], + [ + 19, + 12 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "service", + "track" + ] + ] + }, + { + "id": "road_primary_link_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-cap": "butt", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 11, + "#c38a27" + ], + [ + 12, + "#a06b00" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 1.5 + ], + [ + 12, + 4 + ], + [ + 13, + 4 + ], + [ + 14, + 7.8 + ], + [ + 16, + 12 + ], + [ + 17, + 13 + ], + [ + 18, + 16 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "ramp", + 1 + ], + [ + "in", + "class", + "primary" + ] + ] + }, + { + "id": "road_trunk_link_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-cap": "butt", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 11, + "#cf6649" + ], + [ + 12, + "#c84e2f" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 1.5 + ], + [ + 12, + 4 + ], + [ + 14, + 7.8 + ], + [ + 16, + 12 + ], + [ + 17, + 13 + ], + [ + 18, + 16 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "ramp", + 1 + ], + [ + "in", + "class", + "trunk" + ] + ] + }, + { + "id": "road_motorway_link_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-cap": "butt", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 11, + "#c24e6b" + ], + [ + 12, + "#dc2a67" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 1.5 + ], + [ + 12, + 4 + ], + [ + 14, + 7.8 + ], + [ + 16, + 12 + ], + [ + 17, + 13 + ], + [ + 18, + 16 + ], + [ + 19, + 17 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "motorway" + ], + [ + "==", + "ramp", + 1 + ] + ] + }, + { + "id": "road_minor_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#bbbbbb", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 3 + ], + [ + 14, + 5 + ], + [ + 15, + 6 + ], + [ + 16, + 12 + ], + [ + 17, + 13 + ], + [ + 18, + 17 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 10, + 0 + ], + [ + 12.5, + 1 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "minor" + ], + [ + "!=", + "ramp", + "1" + ] + ] + }, + { + "id": "road_tertiary_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#8f8f8f", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 2.5 + ], + [ + 12, + 4 + ], + [ + 13, + 5 + ], + [ + 14, + 9 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "tertiary" + ], + [ + "!=", + "ramp", + 1 + ] + ] + }, + { + "id": "road_secondary_link_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 11, + "#9eae23" + ], + [ + 12, + "#707d05" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 3.5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 14, + 9 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "secondary" + ], + [ + "==", + "ramp", + 1 + ] + ] + }, + { + "id": "road_secondary_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 11, + "#9eae23" + ], + [ + 12, + "#707d05" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 3.5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 14, + 9 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "secondary" + ], + [ + "!=", + "ramp", + 1 + ] + ] + }, + { + "id": "road_trunk_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-cap": "butt", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 11, + "rgba(160, 116, 0, 1)" + ], + [ + 12, + "#c84e2f" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 9, + 6 + ], + [ + 11, + 3.5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "!=", + "ramp", + 1 + ], + [ + "in", + "class", + "trunk" + ], + [ + "!=", + "ramp", + 1 + ] + ] + }, + { + "id": "road_primary_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 9, + "layout": { + "line-cap": "butt", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 10.9, + "rgba(255, 250, 234, 0.47)" + ], + [ + 11, + "rgba(160, 116, 0, 1)" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 9, + 6 + ], + [ + 11, + 3.5 + ], + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "!=", + "ramp", + 1 + ], + [ + "in", + "class", + "primary" + ], + [ + "!=", + "ramp", + 1 + ] + ] + }, + { + "id": "road_motorway_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 5, + "layout": { + "line-cap": "butt", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 11, + "#c24e6b" + ], + [ + 12, + "#dc2a67" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0 + ], + [ + 7, + 1.75 + ], + [ + 18, + 27 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "motorway" + ], + [ + "!=", + "ramp", + 1 + ] + ] + }, + { + "id": "road_pedestrian_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "#999999", + "line-width": { + "stops": [ + [ + 13, + 3 + ], + [ + 14, + 5 + ], + [ + 15, + 6 + ], + [ + 16, + 12 + ], + [ + 17, + 13 + ], + [ + 18, + 17 + ] + ] + } + }, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "path" + ], + [ + "==", + "subclass", + "pedestrian" + ], + [ + "!=", + "brunel", + "tunnel" + ] + ] + }, + { + "id": "road_pedestrian", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "#dddde8", + "line-width": { + "stops": [ + [ + 13, + 1.9 + ], + [ + 14, + 3.8 + ], + [ + 15, + 4.8 + ], + [ + 16, + 10.4 + ], + [ + 17, + 11.4 + ], + [ + 18, + 15.4 + ] + ] + } + }, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "path" + ], + [ + "==", + "subclass", + "pedestrian" + ], + [ + "!=", + "brunel", + "tunnel" + ] + ] + }, + { + "id": "road_path_steps_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 15, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(236, 236, 236, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 14, + 4 + ], + [ + 15, + 4.3 + ], + [ + 17, + 4.3 + ], + [ + 18, + 4.6 + ] + ] + }, + "line-opacity": 0.6 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "path" + ], + [ + "==", + "subclass", + "steps" + ] + ] + }, + { + "id": "road_path_bridleway_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 15, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(236, 236, 236, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 14, + 3 + ], + [ + 15, + 3.3 + ], + [ + 17, + 3.3 + ], + [ + 18, + 3.6 + ] + ] + }, + "line-opacity": 0.6 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "path" + ], + [ + "any", + [ + "==", + "subclass", + "bridleway" + ], + [ + "==", + "horse", + "designated" + ] + ], + [ + "!=", + "bicycle", + "designated" + ] + ] + }, + { + "id": "road_path_cycleway_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 15, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(236, 236, 236, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 14, + 3 + ], + [ + 15, + 3.3 + ], + [ + 17, + 3.3 + ], + [ + 18, + 3.6 + ] + ] + }, + "line-opacity": 0.6 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "path" + ], + [ + "any", + [ + "==", + "subclass", + "cycleway" + ], + [ + "==", + "bicycle", + "designated" + ] + ] + ] + }, + { + "id": "road_path_footway_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 15, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(236, 236, 236, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 14, + 2.7 + ], + [ + 15, + 3 + ], + [ + 17, + 3.3 + ], + [ + 18, + 3.6 + ] + ] + }, + "line-opacity": 0.6 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "path" + ], + [ + "in", + "subclass", + "footway", + "path" + ], + [ + "!=", + "bicycle", + "designated" + ], + [ + "!=", + "horse", + "designated" + ] + ] + }, + { + "id": "road_path_cycleway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#0000ff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 0.7 + ], + [ + 14, + 0.9 + ], + [ + 17, + 1 + ], + [ + 18, + 1.3 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "path" + ], + [ + "any", + [ + "==", + "subclass", + "cycleway" + ], + [ + "==", + "bicycle", + "designated" + ] + ] + ] + }, + { + "id": "road_path_steps", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fa8072", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 1.7 + ], + [ + 14, + 1.9 + ], + [ + 17, + 2 + ], + [ + 18, + 2.3 + ] + ] + }, + "line-dasharray": [ + 0.5, + 0.5 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "path" + ], + [ + "==", + "subclass", + "steps" + ] + ] + }, + { + "id": "road_path_bridleway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#008000", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 0.7 + ], + [ + 14, + 0.9 + ], + [ + 17, + 1 + ], + [ + 18, + 1.3 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "path" + ], + [ + "any", + [ + "==", + "subclass", + "bridleway" + ], + [ + "==", + "horse", + "designated" + ] + ], + [ + "!=", + "bicycle", + "designated" + ] + ] + }, + { + "id": "road_path_footway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fa8072", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 0.6 + ], + [ + 14, + 1 + ], + [ + 15, + 1.3 + ], + [ + 17, + 1.3 + ], + [ + 18, + 1.6 + ] + ] + }, + "line-dasharray": [ + 2, + 1 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "path" + ], + [ + "in", + "subclass", + "footway", + "path" + ], + [ + "!=", + "bicycle", + "designated" + ], + [ + "!=", + "horse", + "designated" + ] + ] + }, + { + "id": "road_primary_link", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fcd6a4", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 1.5 + ], + [ + 12, + 3 + ], + [ + 13, + 3 + ], + [ + 14, + 6.6 + ], + [ + 16, + 10.4 + ], + [ + 17, + 11.4 + ], + [ + 18, + 14.4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "ramp", + 1 + ], + [ + "in", + "class", + "primary" + ] + ] + }, + { + "id": "road_trunk_link", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#fdb59e" + ], + [ + 11, + "#f9b29c" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 0.9 + ], + [ + 12, + 3 + ], + [ + 14, + 6.6 + ], + [ + 16, + 10.4 + ], + [ + 17, + 11.4 + ], + [ + 18, + 14.4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "ramp", + 1 + ], + [ + "in", + "class", + "trunk" + ] + ] + }, + { + "id": "road_motorway_link", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 8, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#e66e89" + ], + [ + 10, + "#e892a2" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 8, + 0.7 + ], + [ + 11, + 0.9 + ], + [ + 12, + 3 + ], + [ + 14, + 6.6 + ], + [ + 16, + 10.4 + ], + [ + 17, + 11.4 + ], + [ + 18, + 14.4 + ], + [ + 19, + 15.4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "motorway" + ], + [ + "==", + "ramp", + 1 + ] + ] + }, + { + "id": "road_service_track", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 0.9 + ], + [ + 15, + 2.3 + ], + [ + 15, + 0.5 + ], + [ + 16, + 5.4 + ], + [ + 17, + 6.9 + ], + [ + 18, + 9.4 + ], + [ + 19, + 10.4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "service", + "track" + ] + ] + }, + { + "id": "road_service_track_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 0.9 + ], + [ + 15, + 2.3 + ], + [ + 15, + 0.5 + ], + [ + 16, + 5.4 + ], + [ + 17, + 6.9 + ], + [ + 18, + 9.4 + ], + [ + 19, + 10.4 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "service_construction", + "track_construction" + ] + ] + }, + { + "id": "road_raceway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 9, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(254, 190, 200, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 0.7 + ], + [ + 12, + 1.9 + ], + [ + 13, + 3.9 + ], + [ + 14, + 5.1 + ], + [ + 15, + 5.1 + ], + [ + 16, + 11.5 + ], + [ + 17, + 11.5 + ], + [ + 18, + 12.7 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "raceway" + ] + ] + }, + { + "id": "road_minor", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#d3d3d3" + ], + [ + 13, + "rgba(255, 255, 255, 1)" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 1 + ], + [ + 13, + 1.9 + ], + [ + 14, + 3.8 + ], + [ + 15, + 4.8 + ], + [ + 16, + 10.4 + ], + [ + 17, + 11.4 + ], + [ + 18, + 15.4 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + [ + "all", + [ + "match", + [ + "get", + "brunnel" + ], + [ + "bridge", + "tunnel" + ], + false, + true + ], + [ + "match", + [ + "get", + "class" + ], + [ + "minor" + ], + true, + false + ] + ] + ] + }, + { + "id": "road_minor_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 12, + "#d3d3d3" + ], + [ + 13, + "rgba(255, 255, 255, 1)" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 1 + ], + [ + 13, + 1.9 + ], + [ + 14, + 3.8 + ], + [ + 15, + 4.8 + ], + [ + 16, + 10.4 + ], + [ + 17, + 11.4 + ], + [ + 18, + 15.4 + ] + ] + }, + "line-opacity": 1, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + [ + "all", + [ + "match", + [ + "get", + "brunnel" + ], + [ + "bridge", + "tunnel" + ], + false, + true + ], + [ + "match", + [ + "get", + "class" + ], + [ + "minor_construction" + ], + true, + false + ] + ] + ] + }, + { + "id": "road_secondary", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 8, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 10.5, + "#bbbbbb" + ], + [ + 10.6, + "#f7fabf" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 8, + 1 + ], + [ + 9, + 1.1 + ], + [ + 10, + 1.1 + ], + [ + 11, + 2.9 + ], + [ + 12, + 4.3 + ], + [ + 13, + 4.3 + ], + [ + 14, + 7.6 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "secondary" + ] + ] + }, + { + "id": "road_tertiary", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 9, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 10.5, + "#bbbbbb" + ], + [ + 10.6, + "#FFFFFF" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 9, + 0.7 + ], + [ + 10, + 0.7 + ], + [ + 11, + 1.9 + ], + [ + 12, + 3 + ], + [ + 13, + 3.9 + ], + [ + 14, + 7.8 + ], + [ + 15, + 8.8 + ], + [ + 16, + 16.4 + ], + [ + 17, + 19.4 + ], + [ + 18, + 25.4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "tertiary" + ] + ] + }, + { + "id": "road_tertiary_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 9, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 10.5, + "#bbbbbb" + ], + [ + 10.6, + "#fff" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 9, + 0.7 + ], + [ + 11, + 1.9 + ], + [ + 12, + 3 + ], + [ + 13, + 3.9 + ], + [ + 14, + 7.8 + ], + [ + 15, + 8.8 + ], + [ + 16, + 16.4 + ], + [ + 17, + 19.4 + ], + [ + 18, + 25.4 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "tertiary_construction" + ] + ] + }, + { + "id": "road_secondary_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 8, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 10.5, + "#bbbbbb" + ], + [ + 10.6, + "#f7fabf" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 8, + 1 + ], + [ + 9, + 1.1 + ], + [ + 10, + 1.1 + ], + [ + 11, + 2.9 + ], + [ + 12, + 4.3 + ], + [ + 13, + 4.3 + ], + [ + 14, + 7.6 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "secondary_construction" + ] + ] + }, + { + "id": "road_primary_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 7, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 7, + "#f3c380" + ], + [ + 11, + "#fcd6a4" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 7, + 1 + ], + [ + 8, + 1.4 + ], + [ + 9, + 1.8 + ], + [ + 10, + 1.8 + ], + [ + 11, + 2.5 + ], + [ + 12, + 4 + ], + [ + 13, + 4 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "!=", + "ramp", + 1 + ], + [ + "in", + "class", + "primary_construction" + ] + ] + }, + { + "id": "road_primary", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 7, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 7, + "#f3c380" + ], + [ + 11, + "#fcd6a4" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 7, + 1 + ], + [ + 8, + 1.4 + ], + [ + 9, + 1.8 + ], + [ + 10, + 1.8 + ], + [ + 11, + 2.5 + ], + [ + 12, + 4 + ], + [ + 13, + 4 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "!=", + "ramp", + 1 + ], + [ + "in", + "class", + "primary" + ] + ] + }, + { + "id": "road_trunk", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 7, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 5, + "#fdb59e" + ], + [ + 11, + "#f9b29c" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 7, + 1 + ], + [ + 8, + 1.4 + ], + [ + 9, + 1.8 + ], + [ + 10, + 1.8 + ], + [ + 11, + 2.5 + ], + [ + 12, + 4 + ], + [ + 13, + 4 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "!=", + "ramp", + 1 + ], + [ + "in", + "class", + "trunk" + ] + ] + }, + { + "id": "road_trunk_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 7, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#fdb59e" + ], + [ + 11, + "#f9b29c" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 7, + 1 + ], + [ + 8, + 1.4 + ], + [ + 9, + 1.8 + ], + [ + 10, + 1.8 + ], + [ + 11, + 2.5 + ], + [ + 12, + 4 + ], + [ + 13, + 4 + ], + [ + 15, + 8.6 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "!=", + "ramp", + 1 + ], + [ + "in", + "class", + "trunk_construction" + ] + ] + }, + { + "id": "road_motorway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 5, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#e66e89" + ], + [ + 10, + "#e892a2" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0 + ], + [ + 7, + 1 + ], + [ + 18, + 25 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "motorway" + ], + [ + "!=", + "ramp", + 1 + ] + ] + }, + { + "id": "road_motorway_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 5, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "base": 1, + "stops": [ + [ + 6, + "#e892a2" + ], + [ + 10, + "#e66e89" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0 + ], + [ + 7, + 1 + ], + [ + 20, + 18 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "motorway_construction" + ], + [ + "!=", + "ramp", + 1 + ] + ] + }, + { + "id": "rail_subway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "#81817f", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 18, + 3 + ] + ] + }, + "line-opacity": 1, + "line-dasharray": [ + 1, + 1.2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "transit" + ], + [ + "==", + "subclass", + "subway" + ] + ] + }, + { + "id": "rail_major", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 8, + " #787878" + ], + [ + 14, + "rgba(129, 129, 129, 1)" + ] + ] + }, + "line-width": { + "base": 1.4, + "stops": [ + [ + 8, + 0.8 + ], + [ + 11, + 1.5 + ], + [ + 15, + 3 + ], + [ + 20, + 5.4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "rail" + ] + ] + }, + { + "id": "rail_minor", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(129, 129, 129, 1)", + "line-width": { + "base": 1.4, + "stops": [ + [ + 12, + 0.8 + ], + [ + 15, + 1.2 + ], + [ + 20, + 4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "subclass", + "tram", + "light_rail" + ] + ] + }, + { + "id": "rail_major_hatching", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 8, + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 8, + "rgba(255, 255, 255, 0.44)" + ], + [ + 10, + "rgba(242, 242, 242, 0.44)" + ] + ] + }, + "line-width": { + "base": 1.4, + "stops": [ + [ + 9, + 0 + ], + [ + 15, + 2 + ], + [ + 20, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "rail" + ] + ] + }, + { + "id": "rail_minor_hatching", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "#bbb", + "line-width": { + "base": 1.4, + "stops": [ + [ + 14.5, + 0 + ], + [ + 15, + 2 + ], + [ + 20, + 6 + ] + ] + }, + "line-dasharray": [ + 0.2, + 4 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "subclass", + "tram", + "light_rail" + ] + ] + }, + { + "id": "waterway-bridge-case", + "type": "line", + "source": "openmaptiles", + "source-layer": "waterway", + "layout": { + "line-cap": "butt", + "line-join": "miter" + }, + "paint": { + "line-color": "#bbbbbb", + "line-width": { + "base": 1.6, + "stops": [ + [ + 12, + 0.5 + ], + [ + 20, + 5 + ] + ] + }, + "line-gap-width": { + "base": 1.3, + "stops": [ + [ + 13, + 0.5 + ], + [ + 20, + 6 + ] + ] + } + }, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "bridge" + ] + ] + }, + { + "id": "waterway-bridge", + "type": "line", + "source": "openmaptiles", + "source-layer": "waterway", + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "rgba(134, 204, 250, 1)", + "line-width": { + "base": 1.3, + "stops": [ + [ + 13, + 0.5 + ], + [ + 20, + 6 + ] + ] + } + }, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "bridge" + ] + ] + }, + { + "id": "bridge_motorway_link_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 11, + "#c24e6b" + ], + [ + 12, + "#dc2a67" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 4 + ], + [ + 14, + 7 + ], + [ + 18, + 16 + ], + [ + 19, + 17 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "motorway" + ], + [ + "==", + "ramp", + 1 + ], + [ + "==", + "brunnel", + "bridge" + ] + ] + }, + { + "id": "bridge_service_track_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#cfcdca", + "line-width": { + "base": 1.2, + "stops": [ + [ + 15, + 1 + ], + [ + 16, + 4 + ], + [ + 20, + 11 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "service", + "track" + ] + ] + }, + { + "id": "bridge_link_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#e9ac77", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 1 + ], + [ + 13, + 3 + ], + [ + 14, + 4 + ], + [ + 20, + 15 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "link" + ], + [ + "==", + "brunnel", + "bridge" + ] + ] + }, + { + "id": "bridge_street_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "hsl(36, 6%, 74%)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 0.5 + ], + [ + 13, + 1 + ], + [ + 14, + 4 + ], + [ + 20, + 25 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 12.5, + 1 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "street", + "street_limited" + ] + ] + }, + { + "id": "bridge_path_casing_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "layout": { + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(0, 0, 0, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 3.7 + ], + [ + 14, + 4 + ], + [ + 15, + 4.3 + ], + [ + 17, + 4.3 + ], + [ + 18, + 4.6 + ] + ] + }, + "line-dasharray": [ + 1, + 0 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "path" + ] + ] + }, + { + "id": "bridge_path_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "layout": { + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 255, 255, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 2.7 + ], + [ + 14, + 3 + ], + [ + 15, + 3.3 + ], + [ + 17, + 3.3 + ], + [ + 18, + 3.6 + ] + ] + }, + "line-dasharray": [ + 1, + 0 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "path" + ] + ] + }, + { + "id": "bridge_secondary_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#000000", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 14, + 9 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "secondary", + "tertiary" + ] + ] + }, + { + "id": "bridge_tertiary_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "rgba(195, 189, 187, 1)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 8, + 1.5 + ], + [ + 20, + 17 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "secondary", + "tertiary" + ] + ] + }, + { + "id": "bridge_trunk_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": { + "stops": [ + [ + 11, + "#cf6649" + ], + [ + 12, + "#c84e2f" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 3.5 + ], + [ + 12, + 6 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "trunk" + ] + ] + }, + { + "id": "bridge_primary_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#000000", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 5 + ], + [ + 13, + 5 + ], + [ + 15, + 10 + ], + [ + 16, + 18 + ], + [ + 17, + 21 + ], + [ + 18, + 27 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "primary" + ] + ] + }, + { + "id": "bridge_motorway_casing", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#000000", + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0 + ], + [ + 7, + 1.75 + ], + [ + 18, + 27 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "motorway" + ], + [ + "==", + "brunnel", + "bridge" + ], + [ + "!=", + "ramp", + 1 + ] + ] + }, + { + "id": "bridge_path_cycleway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "paint": { + "line-color": "#0000ff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 0.8 + ], + [ + 14, + 1 + ], + [ + 15, + 1.3 + ], + [ + 17, + 1.3 + ], + [ + 18, + 1.6 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "path" + ], + [ + "any", + [ + "==", + "subclass", + "cycleway" + ], + [ + "==", + "bicycle", + "designated" + ] + ] + ] + }, + { + "id": "bridge_path_bridleway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "paint": { + "line-color": "#008000", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 0.8 + ], + [ + 14, + 1 + ], + [ + 15, + 1.3 + ], + [ + 17, + 1.3 + ], + [ + 18, + 1.6 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "path" + ], + [ + "any", + [ + "==", + "subclass", + "bridleway" + ], + [ + "==", + "horse", + "designated" + ] + ], + [ + "!=", + "bicycle", + "designated" + ] + ] + }, + { + "id": "bridge_path_footway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "paint": { + "line-color": "#fa8072", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 0.8 + ], + [ + 14, + 1 + ], + [ + 15, + 1.3 + ], + [ + 17, + 1.3 + ], + [ + 18, + 1.6 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "path" + ], + [ + "in", + "subclass", + "footway", + "path" + ], + [ + "!=", + "bicycle", + "designated" + ], + [ + "!=", + "horse", + "designated" + ] + ] + }, + { + "id": "bridge_motorway_link", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#e66e89" + ], + [ + 10, + "#e892a2" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 3 + ], + [ + 14, + 6 + ], + [ + 18, + 15 + ], + [ + 19, + 16 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "motorway" + ], + [ + "==", + "ramp", + 1 + ], + [ + "==", + "brunnel", + "bridge" + ] + ] + }, + { + "id": "bridge_service_track", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 15.5, + 0 + ], + [ + 16, + 2 + ], + [ + 20, + 7.5 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "service", + "track" + ] + ] + }, + { + "id": "bridge_service_track_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 15.5, + 0 + ], + [ + 16, + 2 + ], + [ + 20, + 7.5 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "service_construction", + "track_construction" + ] + ] + }, + { + "id": "bridge_link", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fea", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12.5, + 0 + ], + [ + 13, + 1.5 + ], + [ + 14, + 2.5 + ], + [ + 20, + 11.5 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "link" + ], + [ + "==", + "brunnel", + "bridge" + ] + ] + }, + { + "id": "bridge_minor", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13.5, + 0 + ], + [ + 14, + 2.5 + ], + [ + 20, + 18 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "minor" + ] + ] + }, + { + "id": "bridge_minor_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13.5, + 0 + ], + [ + 14, + 2.5 + ], + [ + 20, + 18 + ] + ] + }, + "line-opacity": 1, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "minor_construction" + ] + ] + }, + { + "id": "bridge_tertiary", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 11, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#ffffff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 11, + 2.3 + ], + [ + 12, + 3 + ], + [ + 13, + 4 + ], + [ + 14, + 7.5 + ], + [ + 15, + 8.5 + ], + [ + 16, + 16.4 + ], + [ + 17, + 19.4 + ], + [ + 18, + 25.4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "tertiary" + ] + ] + }, + { + "id": "bridge_secondary", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 7, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#f7fabf", + "line-width": { + "base": 1.2, + "stops": [ + [ + 7, + 1.5 + ], + [ + 11, + 3.3 + ], + [ + 12, + 4 + ], + [ + 13, + 3.8 + ], + [ + 14, + 7.5 + ], + [ + 15, + 8.5 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "secondary" + ] + ] + }, + { + "id": "bridge_secondary_construction-copy", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 6.5, + 0 + ], + [ + 8, + 0.5 + ], + [ + 20, + 13 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "secondary_construction" + ] + ] + }, + { + "id": "bridge_tertiary_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 6.5, + 0 + ], + [ + 8, + 0.5 + ], + [ + 20, + 13 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "tertiary_construction" + ] + ] + }, + { + "id": "bridge_primary", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fcd6a4", + "line-width": { + "base": 1.2, + "stops": [ + [ + 7, + 1.5 + ], + [ + 11, + 3.3 + ], + [ + 12, + 4 + ], + [ + 13, + 4 + ], + [ + 15, + 8.5 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "primary" + ] + ] + }, + { + "id": "bridge_trunk", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#f9b29c", + "line-width": { + "base": 1.2, + "stops": [ + [ + 7, + 1.5 + ], + [ + 11, + 4.5 + ], + [ + 12, + 5 + ], + [ + 15, + 8.5 + ], + [ + 16, + 16 + ], + [ + 17, + 19 + ], + [ + 18, + 25 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "trunk" + ] + ] + }, + { + "id": "bridge_trunk_primary_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fea", + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0 + ], + [ + 7, + 1 + ], + [ + 20, + 18 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "primary_construction", + "trunk_construction" + ] + ] + }, + { + "id": "bridge_motorway", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#e66e89" + ], + [ + 10, + "#e892a2" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0 + ], + [ + 7, + 1 + ], + [ + 18, + 25 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "motorway" + ], + [ + "==", + "brunnel", + "bridge" + ], + [ + "!=", + "ramp", + 1 + ] + ] + }, + { + "id": "bridge_motorway_construction", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": { + "stops": [ + [ + 6, + "#e892a2" + ], + [ + 10, + "#e66e89" + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0 + ], + [ + 7, + 1 + ], + [ + 18, + 25 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "motorway_construction" + ], + [ + "==", + "brunnel", + "bridge" + ], + [ + "!=", + "ramp", + 1 + ] + ] + }, + { + "id": "bridge_major_rail", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 6, + "rgba(147, 147, 147, 1)" + ], + [ + 12, + "rgba(139, 139, 139, 1)" + ], + [ + 14, + "rgba(129, 129, 129, 1)" + ] + ] + }, + "line-width": { + "base": 1.4, + "stops": [ + [ + 8, + 0.5 + ], + [ + 15, + 3 + ], + [ + 20, + 5.4 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "rail" + ] + ] + }, + { + "id": "bridge_major_rail_hatching", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 8, + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": { + "stops": [ + [ + 8, + "rgba(255, 255, 255, 0.44)" + ], + [ + 10, + "rgba(201, 201, 201, 1)" + ] + ] + }, + "line-width": { + "base": 1.4, + "stops": [ + [ + 9, + 0 + ], + [ + 15, + 2 + ], + [ + 20, + 4 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "==", + "class", + "rail" + ] + ] + }, + { + "id": "cablecar", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "layout": { + "line-cap": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#808080", + "line-width": { + "base": 1, + "stops": [ + [ + 11, + 1 + ], + [ + 19, + 2.5 + ] + ] + } + }, + "filter": [ + "==", + "class", + "aerialway" + ] + }, + { + "id": "cablecar-dash", + "type": "line", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "layout": { + "line-cap": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(67, 67, 67, 1)", + "line-width": { + "base": 1, + "stops": [ + [ + 11, + 1 + ], + [ + 19, + 3 + ] + ] + }, + "line-dasharray": [ + 0.5, + 10 + ] + }, + "filter": [ + "==", + "class", + "aerialway" + ] + }, + { + "id": "boundary_3", + "type": "line", + "source": "openmaptiles", + "source-layer": "boundary", + "minzoom": 3, + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#845283", + "line-width": { + "base": 1, + "stops": [ + [ + 4, + 0.4 + ], + [ + 5, + 0.7 + ], + [ + 12, + 1.6 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 3, + 0.5 + ], + [ + 10, + 1 + ] + ] + }, + "line-dasharray": [ + 5, + 3 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "admin_level", + 3, + 4 + ], + [ + "==", + "maritime", + 0 + ] + ] + }, + { + "id": "boundary_2", + "type": "line", + "source": "openmaptiles", + "source-layer": "boundary", + "minzoom": 0, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#a37da1", + "line-width": { + "base": 1, + "stops": [ + [ + 3, + 0.5 + ], + [ + 5, + 1.2 + ], + [ + 12, + 3 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "admin_level", + 2 + ], + [ + "==", + "maritime", + 0 + ], + [ + "==", + "disputed", + 0 + ] + ] + }, + { + "id": "boundary_2_disputed", + "type": "line", + "source": "openmaptiles", + "source-layer": "boundary", + "minzoom": 0, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#a37da1", + "line-width": { + "base": 1, + "stops": [ + [ + 3, + 0.3 + ], + [ + 5, + 1.2 + ], + [ + 12, + 3 + ] + ] + }, + "line-opacity": 1, + "line-dasharray": [ + 4, + 3 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "admin_level", + 2 + ], + [ + "==", + "disputed", + 1 + ], + [ + "==", + "maritime", + 0 + ] + ] + }, + { + "id": "boundary_2_disputed_maritime", + "type": "line", + "source": "openmaptiles", + "source-layer": "boundary", + "minzoom": 0, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(129, 125, 163, 1)", + "line-width": { + "base": 1, + "stops": [ + [ + 3, + 0.5 + ], + [ + 5, + 1.2 + ], + [ + 12, + 3 + ] + ] + }, + "line-opacity": 1, + "line-dasharray": [ + 4, + 3 + ] + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "admin_level", + 2 + ], + [ + "==", + "disputed", + 1 + ], + [ + "==", + "maritime", + 1 + ] + ] + }, + { + "id": "boundary_2_maritime", + "type": "line", + "source": "openmaptiles", + "source-layer": "boundary", + "minzoom": 4, + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#a37da1", + "line-width": { + "base": 1, + "stops": [ + [ + 3, + 0.5 + ], + [ + 5, + 1.2 + ], + [ + 12, + 3 + ] + ] + }, + "line-opacity": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "admin_level", + 2 + ], + [ + "==", + "disputed", + 0 + ], + [ + "==", + "maritime", + 1 + ] + ] + }, + { + "id": "water_way_name", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "waterway", + "minzoom": 0, + "layout": { + "text-font": [ + "Noto Sans Regular", + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 11, + 10 + ], + [ + 13, + 12 + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "symbol-spacing": 400, + "text-max-width": 5, + "symbol-placement": "line" + }, + "paint": { + "text-color": "#4d80b3", + "text-halo-color": "rgba(255, 255, 255, 0.8)", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ] + ] + }, + { + "id": "water_name_line", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "water_name", + "minzoom": 0, + "layout": { + "text-font": [ + "Noto Sans Regular", + "Noto Sans Bold" + ], + "text-size": 12, + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-max-width": 5, + "symbol-placement": "line" + }, + "paint": { + "text-color": "#5d60be", + "text-halo-color": "rgba(255,255,255,0.7)", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ] + ] + }, + { + "id": "water_name_point", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "water_name", + "minzoom": 16, + "maxzoom": 24, + "layout": { + "text-font": [ + "Noto Sans Regular" + ], + "text-size": 11, + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-max-width": 5 + }, + "paint": { + "text-color": "rgba(76, 125, 173, 1)", + "text-halo-color": "rgba(255,255,255,0)", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "!=", + "class", + "ocean" + ] + ] + }, + { + "id": "housenumber", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "housenumber", + "minzoom": 17, + "layout": { + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "stops": [ + [ + 17, + 9 + ], + [ + 22, + 11 + ] + ] + }, + "text-field": "{housenumber}", + "text-padding": 3, + "text-line-height": -0.15, + "symbol-avoid-edges": false, + "text-allow-overlap": false, + "text-ignore-placement": false + }, + "paint": { + "text-color": "rgba(102, 102, 102, 1)", + "text-halo-color": "rgba(255,255,255,0.8)", + "text-halo-width": 1 + } + }, + { + "id": "poi_shop-z17", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 17, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.1 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": true + }, + "paint": { + "text-color": [ + "match", + [ + "get", + "class" + ], + "ice_cream", + "#C77400", + "#939" + ], + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "shop", + "clothing_store", + "library", + "art_gallery", + "music", + "alcohol_shop", + "bakery" + ], + [ + "!in", + "subclass", + "mall", + "library", + "artwork" + ] + ] + }, + { + "id": "poi_shop-z15", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 15, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.1 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": true + }, + "paint": { + "text-color": [ + "match", + [ + "get", + "class" + ], + "ice_cream", + "#C77400", + "#939" + ], + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "subclass", + "supermarket" + ] + ] + }, + { + "id": "poi_waste", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 18, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 0.8 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#734a08", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "recycling", + "waste_basket", + "drinking_water", + "toilets" + ] + ] + }, + { + "id": "poi_cemetery", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 14, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Regular" + ], + "text-size": 11, + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "icon-anchor": "bottom", + "icon-offset": [ + 0, + 0 + ], + "text-anchor": "center", + "text-offset": [ + 0, + 0 + ], + "text-padding": 2, + "icon-text-fit": "none", + "text-max-width": 14, + "icon-allow-overlap": false, + "icon-pitch-alignment": "viewport" + }, + "paint": { + "text-color": "#2d4931", + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 5 + ], + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": 0.8, + "icon-translate-anchor": "map", + "text-translate-anchor": "viewport" + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "cemetery" + ] + ] + }, + { + "id": "poi_school", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Italic", + "Noto Sans Regular" + ], + "text-size": 11, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "icon-anchor": "bottom", + "icon-offset": [ + 0, + 0 + ], + "text-anchor": "center", + "text-offset": [ + 0, + 0 + ], + "text-padding": 2, + "icon-text-fit": "none", + "text-max-width": 9, + "icon-allow-overlap": false, + "icon-pitch-alignment": "viewport" + }, + "paint": { + "text-color": "#4d4d00", + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 5 + ], + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": 0.8, + "icon-translate-anchor": "map", + "text-translate-anchor": "viewport" + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "college", + "school" + ] + ] + }, + { + "id": "poi_outdoor", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.2 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#008c0d", + "icon-opacity": 1, + "text-halo-blur": 0, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "playground", + "stile", + "garden", + "gate" + ] + ] + }, + { + "id": "poi_parking", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 15, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": { + "stops": [ + [ + 15, + "" + ], + [ + 16, + "{name:latin}\n{name:nonlatin}" + ] + ] + }, + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 0.9 + ], + "text-padding": 2, + "text-max-width": 6, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#0066ff", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "parking" + ] + ] + }, + { + "id": "poi_golf", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "golf", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.2 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#008c0d", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "golf" + ] + ] + }, + { + "id": "poi_sport", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "layout": { + "text-font": [ + "Noto Sans Italic" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.2 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#008c0d", + "icon-opacity": 1, + "icon-halo-blur": 0, + "text-halo-blur": 1, + "text-halo-color": "#ffffff", + "text-halo-width": 0.2 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "stadium", + "swimming_pool", + "sports_centre", + "water_park" + ] + ] + }, + { + "id": "poi_ferry", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 15, + "layout": { + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "ferry", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 0.7 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#5e3b9e", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "subclass", + "ferry_terminal" + ], + [ + "==", + "class", + "ferry_terminal" + ] + ] + }, + { + "id": "poi_food", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#C77400", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "ice_cream", + "cafe", + "beer", + "bar", + "fast_food", + "restaurant" + ] + ] + }, + { + "id": "poi_water", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.2 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#4d80b3", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "ice_rink" + ] + ] + }, + { + "id": "poi_public", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 0.8 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#734a08", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "town_hall", + "post", + "library", + "police", + "information", + "cinema", + "theatre", + "fire_station" + ], + [ + "!=", + "subclass", + "books" + ] + ] + }, + { + "id": "poi_cultural", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 15, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 0.8 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#734a08", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "cinema", + "library", + "music", + "museum", + "castle", + "monument", + "art_gallery" + ], + [ + "!in", + "subclass", + "books", + "musical_instrument", + "art", + "gallery" + ] + ] + }, + { + "id": "poi_attraction", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 15, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.2 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#660033", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "attraction" + ] + ] + }, + { + "id": "poi_car", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 17, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": { + "stops": [ + [ + 15, + "" + ], + [ + 16, + "{name:latin}\n{name:nonlatin}" + ] + ] + }, + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.2 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false, + "icon-ignore-placement": false + }, + "paint": { + "text-color": "#0066ff", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "car", + "bicycle_parking", + "fuel" + ] + ] + }, + { + "id": "poi_health", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "layout": { + "text-font": [ + "Noto Sans Regular", + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 14, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.2 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#BF0000", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "pharmacy", + "dentist", + "veterinary" + ] + ] + }, + { + "id": "poi_hospital", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 14, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 14, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": { + "stops": [ + [ + 14, + "" + ], + [ + 16, + "{name:latin}\n{name:nonlatin}" + ] + ] + }, + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.2 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#BF0000", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "hospital" + ] + ] + }, + { + "id": "poi_campsite", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "camping", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.2 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#0066ff", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "campsite" + ] + ] + }, + { + "id": "poi_accommodation", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 17, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": { + "stops": [ + [ + 17, + "" + ], + [ + 18, + "{name:latin}\n{name:nonlatin}" + ] + ] + }, + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 0.6 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#0066ff", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "lodging", + "campsite" + ] + ] + }, + { + "id": "poi_place_of_worship", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 12 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": { + "stops": [ + [ + 15, + "" + ], + [ + 16, + "{name:latin}\n{name:nonlatin}" + ] + ] + }, + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.2 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false, + "text-allow-overlap": false + }, + "paint": { + "text-color": "rgba(56, 56, 71, 1)", + "text-halo-blur": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "place_of_worship" + ] + ] + }, + { + "id": "poi_busstop", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 17, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 11 + ] + ] + }, + "icon-image": "bus_stop.12", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "icon-anchor": "bottom", + "text-anchor": "top", + "text-padding": 2, + "icon-text-fit": "none", + "text-max-width": 14, + "icon-keep-upright": true, + "icon-allow-overlap": false, + "icon-pitch-alignment": "viewport" + }, + "paint": { + "text-color": "#0066ff", + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 4 + ], + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": 0.8, + "icon-translate-anchor": "map", + "text-translate-anchor": "viewport" + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "bus" + ] + ] + }, + { + "id": "poi_bus", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 17, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Bold", + "Noto Sans Regular" + ], + "text-size": 11, + "icon-image": "{subclass}", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "icon-anchor": "bottom", + "icon-offset": [ + 0, + 0 + ], + "text-anchor": "center", + "text-padding": 2, + "icon-text-fit": "none", + "text-max-width": 14, + "icon-keep-upright": true, + "icon-allow-overlap": false, + "icon-pitch-alignment": "viewport" + }, + "paint": { + "text-color": "#0066ff", + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 5 + ], + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": 0.8, + "icon-translate-anchor": "map", + "text-translate-anchor": "viewport" + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "bus" + ], + [ + "!in", + "subclass", + "bus_stop" + ] + ] + }, + { + "id": "poi_harbor", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 14, + 13 + ], + [ + 20, + 16 + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-padding": 2, + "text-max-width": 6, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#576ddf", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.1, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.2, + "text-halo-color": "#ffffff", + "text-halo-width": 0.3 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "harbor" + ] + ] + }, + { + "id": "poi_mall", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 15, + "layout": { + "text-font": [ + "Noto Sans Italic" + ], + "text-size": { + "stops": [ + [ + 15, + 12 + ], + [ + 20, + 16 + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.1 + ], + "text-padding": 2, + "text-max-width": 9, + "icon-allow-overlap": false + }, + "paint": { + "text-color": "#d11700", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "shop" + ], + [ + "==", + "subclass", + "mall" + ] + ] + }, + { + "id": "poi_train", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 10, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Bold", + "Noto Sans Regular" + ], + "text-size": 11, + "icon-image": "square_train", + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "icon-anchor": "bottom", + "icon-offset": [ + 0, + 0 + ], + "text-anchor": "center", + "text-offset": [ + 0, + 0.5 + ], + "text-padding": 2, + "icon-text-fit": "none", + "text-max-width": 12, + "icon-allow-overlap": false, + "text-allow-overlap": false, + "icon-pitch-alignment": "viewport" + }, + "paint": { + "text-color": "#4957ad", + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 1 + ], + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": 0.8, + "icon-translate-anchor": "map", + "text-translate-anchor": "viewport" + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "railway" + ] + ] + }, + { + "id": "road_path_oneway", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 15, + "layout": { + "icon-size": { + "stops": [ + [ + 15, + 0.7 + ], + [ + 20, + 1 + ] + ] + }, + "icon-image": "oneway-path", + "visibility": "visible", + "icon-padding": 2, + "symbol-spacing": 125, + "symbol-placement": "line", + "icon-rotation-alignment": "map" + }, + "paint": { + "icon-opacity": 1 + }, + "filter": [ + "all", + [ + "==", + "oneway", + 1 + ], + [ + "==", + "class", + "path" + ] + ] + }, + { + "id": "road_oneway", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 15, + "layout": { + "icon-size": { + "stops": [ + [ + 15, + 0.8 + ], + [ + 20, + 1 + ] + ] + }, + "icon-image": "oneway", + "visibility": "visible", + "icon-padding": 2, + "symbol-spacing": 95, + "symbol-placement": "line", + "icon-rotation-alignment": "map" + }, + "paint": { + "icon-opacity": 1 + }, + "filter": [ + "all", + [ + "==", + "oneway", + 1 + ], + [ + "in", + "class", + "motorway", + "trunk", + "primary", + "secondary", + "tertiary", + "minor", + "service" + ] + ] + }, + { + "id": "road_oneway_opposite", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 15, + "layout": { + "icon-size": { + "stops": [ + [ + 15, + 0.5 + ], + [ + 19, + 1 + ] + ] + }, + "icon-image": "oneway", + "visibility": "visible", + "icon-rotate": -90, + "icon-padding": 2, + "symbol-spacing": 75, + "symbol-placement": "line", + "icon-rotation-alignment": "map" + }, + "paint": { + "icon-opacity": 0.5 + }, + "filter": [ + "all", + [ + "==", + "oneway", + -1 + ], + [ + "in", + "class", + "motorway", + "trunk", + "primary", + "secondary", + "tertiary", + "minor", + "service" + ] + ] + }, + { + "id": "ferry_label", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation_name", + "minzoom": 14, + "layout": { + "text-font": [ + "Noto Sans Regular" + ], + "text-size": 10, + "text-field": "{name}", + "text-anchor": "center", + "text-offset": [ + 0, + 0 + ], + "symbol-placement": "line" + }, + "paint": { + "text-color": "#6666ff", + "text-halo-blur": 1, + "text-halo-color": "rgba(255, 255, 255, 0.34)", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "subclass", + "ferry" + ] + ] + }, + { + "id": "road_label", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation_name", + "minzoom": 14, + "layout": { + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "base": 1, + "stops": [ + [ + 14, + 9 + ], + [ + 18, + 13 + ] + ] + }, + "text-field": "{name}", + "text-anchor": "center", + "text-offset": [ + 0, + 0 + ], + "symbol-placement": "line" + }, + "paint": { + "text-color": "#000000", + "text-halo-color": "rgba(255, 255, 255, 0.97)", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "!=", + "subclass", + "ferry" + ] + ] + }, + { + "id": "highway-shield-tertiary", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation_name", + "minzoom": 9, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "stops": [ + [ + 9, + 10 + ], + [ + 15, + 11 + ], + [ + 17, + 12 + ] + ] + }, + "icon-image": "road_tertiary", + "text-field": "{ref}", + "visibility": "visible", + "icon-anchor": "center", + "icon-padding": 2, + "icon-text-fit": "both", + "symbol-spacing": 560, + "symbol-placement": { + "base": 1, + "stops": [ + [ + 10, + "point" + ], + [ + 11, + "line" + ] + ] + }, + "symbol-avoid-edges": true, + "icon-text-fit-padding": [ + 3, + 4, + 3, + 4 + ], + "icon-rotation-alignment": "viewport", + "text-rotation-alignment": "viewport" + }, + "paint": { + "text-color": "#3b3b3b" + }, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "tertiary" + ], + [ + "has", + "ref" + ] + ] + }, + { + "id": "highway-shield-secondary", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation_name", + "minzoom": 9, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "stops": [ + [ + 9, + 10 + ], + [ + 15, + 11 + ], + [ + 17, + 12 + ] + ] + }, + "icon-image": "road_secondary", + "text-field": "{ref}", + "visibility": "visible", + "icon-anchor": "center", + "icon-padding": 2, + "icon-text-fit": "both", + "symbol-spacing": 560, + "symbol-placement": { + "base": 1, + "stops": [ + [ + 10, + "point" + ], + [ + 11, + "line" + ] + ] + }, + "symbol-avoid-edges": true, + "icon-text-fit-padding": [ + 3, + 4, + 3, + 4 + ], + "icon-rotation-alignment": "viewport", + "text-rotation-alignment": "viewport" + }, + "paint": { + "text-color": "#323b00" + }, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "secondary" + ], + [ + "has", + "ref" + ] + ] + }, + { + "id": "highway-shield-primary", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation_name", + "minzoom": 9, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "stops": [ + [ + 9, + 10 + ], + [ + 15, + 11 + ], + [ + 17, + 12 + ] + ] + }, + "icon-image": "road_primary", + "text-field": "{ref}", + "visibility": "visible", + "icon-anchor": "center", + "icon-padding": 2, + "icon-text-fit": "both", + "symbol-spacing": 560, + "symbol-placement": { + "base": 1, + "stops": [ + [ + 10, + "point" + ], + [ + 11, + "line" + ] + ] + }, + "symbol-avoid-edges": true, + "icon-text-fit-padding": [ + 3, + 4, + 3, + 4 + ], + "icon-rotation-alignment": "viewport", + "text-rotation-alignment": "viewport" + }, + "paint": { + "text-color": "#4c2e00" + }, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "primary" + ], + [ + "has", + "ref" + ] + ] + }, + { + "id": "highway-shield-motorway", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation_name", + "minzoom": 9, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "stops": [ + [ + 9, + 10 + ], + [ + 15, + 11 + ], + [ + 17, + 12 + ] + ] + }, + "icon-image": "road_motorway", + "text-field": "{ref}", + "visibility": "visible", + "icon-anchor": "center", + "icon-padding": 2, + "icon-text-fit": "both", + "text-optional": false, + "symbol-spacing": 760, + "text-max-width": 10, + "symbol-placement": { + "base": 1, + "stops": [ + [ + 10, + "point" + ], + [ + 11, + "line" + ] + ] + }, + "text-keep-upright": true, + "symbol-avoid-edges": true, + "icon-text-fit-padding": [ + 3, + 4, + 3, + 4 + ], + "icon-rotation-alignment": "viewport", + "text-rotation-alignment": "viewport" + }, + "paint": { + "text-color": "#620728" + }, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "motorway" + ], + [ + "has", + "ref" + ] + ] + }, + { + "id": "airport-label-major", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "aerodrome_label", + "minzoom": 8, + "maxzoom": 17, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Italic" + ], + "text-size": { + "stops": [ + [ + 8, + 10 + ], + [ + 14, + 12 + ] + ] + }, + "icon-image": "aerodrome.12", + "text-field": { + "stops": [ + [ + 8, + " " + ], + [ + 11, + "{name:latin}\n{name:nonlatin}" + ] + ] + }, + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 0.6 + ], + "text-padding": 2, + "text-optional": true, + "symbol-z-order": "auto", + "text-max-width": 9, + "icon-allow-overlap": false, + "text-allow-overlap": false + }, + "paint": { + "text-color": "#5e3b9e", + "text-halo-blur": 0.5, + "text-halo-color": "rgba(255, 255, 255, 0.8)", + "text-halo-width": 1 + }, + "filter": [ + "all", + [ + "has", + "iata" + ] + ] + }, + { + "id": "airport_label", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "aeroway", + "minzoom": 14, + "layout": { + "text-font": [ + "Noto Sans Italic", + "Noto Sans Regular" + ], + "text-size": { + "stops": [ + [ + 15, + 9 + ], + [ + 19, + 15 + ] + ] + }, + "text-field": "{ref}", + "visibility": "visible", + "symbol-placement": "line" + }, + "paint": { + "text-color": "#333333", + "text-halo-color": "rgba(255, 255, 255, 0.8)", + "text-halo-width": 1 + }, + "filter": [ + "all", + [ + "in", + "class", + "runway", + "taxiway" + ] + ] + }, + { + "id": "airport_gate", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "aeroway", + "minzoom": 16.5, + "layout": { + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "stops": [ + [ + 17, + 9 + ], + [ + 19, + 15 + ] + ] + }, + "text-field": "{ref}", + "visibility": "visible" + }, + "paint": { + "text-color": "rgba(135, 135, 135, 1)", + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": 1 + }, + "filter": [ + "all", + [ + "==", + "class", + "gate" + ] + ] + }, + { + "id": "place_other", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "place", + "minzoom": 8, + "layout": { + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "base": 1.2, + "stops": [ + [ + 11, + 10 + ], + [ + 14, + 14 + ], + [ + 18, + 16 + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "symbol-spacing": 150, + "text-max-width": 10, + "text-transform": "none" + }, + "paint": { + "text-color": { + "stops": [ + [ + 12.5, + "#222222" + ], + [ + 12.6, + "#777777" + ] + ] + }, + "text-halo-blur": 0, + "text-halo-color": { + "stops": [ + [ + 11, + "rgba(255,255,255,0.6)" + ], + [ + 13, + "#ffffff" + ] + ] + }, + "text-halo-width": { + "stops": [ + [ + 8, + 0.8 + ], + [ + 13, + 1.5 + ] + ] + } + }, + "metadata": {}, + "filter": [ + "all", + [ + "in", + "class", + "hamlet", + "island", + "islet", + "neighbourhood", + "suburb" + ] + ] + }, + { + "id": "park-local", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 15, + "layout": { + "text-font": [ + "Noto Sans Italic" + ], + "text-size": { + "stops": [ + [ + 15, + 10 + ], + [ + 20, + 13 + ] + ] + }, + "text-field": "{name:latin}{name:nonlatin}", + "visibility": "visible", + "symbol-spacing": 150, + "text-max-width": { + "stops": [ + [ + 12, + 5 + ], + [ + 18, + 8 + ] + ] + }, + "text-allow-overlap": false + }, + "paint": { + "text-color": "#0c8416", + "text-halo-blur": 0.5, + "text-halo-color": "rgba(255, 255, 255, 1)", + "text-halo-width": 1 + }, + "filter": [ + "all", + [ + "==", + "class", + "park" + ], + [ + "==", + "subclass", + "park" + ] + ] + }, + { + "id": "park-national", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "park", + "minzoom": 7, + "maxzoom": 12, + "layout": { + "text-font": [ + "Noto Sans Italic" + ], + "text-size": 12, + "text-field": "{name:latin}{name:nonlatin}", + "visibility": "visible", + "symbol-spacing": 150, + "text-allow-overlap": false + }, + "paint": { + "text-color": { + "stops": [ + [ + 7, + "rgba(70, 164, 70, 1)" + ], + [ + 10, + "#008000" + ] + ] + }, + "text-halo-blur": 0.1, + "text-halo-color": { + "stops": [ + [ + 7, + "rgba(241, 255, 234, 1)" + ], + [ + 10, + "rgba(208, 250, 200, 1)" + ] + ] + }, + "text-halo-width": 0.3 + }, + "filter": [ + "all", + [ + "<=", + "rank", + 2 + ] + ] + }, + { + "id": "poi_zoo", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 11, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 15, + 12 + ], + [ + 20, + 16 + ] + ] + }, + "icon-image": "{subclass}", + "text-field": "{name}", + "visibility": "visible", + "text-anchor": "top", + "text-offset": [ + 0, + 1.2 + ], + "text-padding": 2, + "text-max-width": 6, + "icon-allow-overlap": true + }, + "paint": { + "text-color": "#660033", + "icon-opacity": 1, + "icon-halo-blur": 1, + "text-halo-blur": 0.5, + "icon-halo-color": "rgba(255, 255, 255, 1)", + "icon-halo-width": 0.5, + "text-halo-color": "#ffffff", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "zoo" + ], + [ + "==", + "subclass", + "zoo" + ] + ] + }, + { + "id": "mountain_peak", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "mountain_peak", + "maxzoom": 16, + "layout": { + "text-size": 10, + "icon-image": "peak", + "text-field": { + "stops": [ + [ + 6, + " " + ], + [ + 12, + "{name} {ele}m" + ] + ] + }, + "text-anchor": "top", + "text-offset": [ + 0, + 0.5 + ], + "text-max-width": 6, + "text-line-height": 1.1, + "text-font": [ + "Noto Sans Regular", + "Noto Sans Italic" + ] + }, + "paint": { + "text-color": "#6e441e", + "text-halo-color": "rgba(255, 255, 255, .8)", + "text-halo-width": 1 + }, + "filter": [ + "all", + [ + "!=", + "class", + "cliff" + ] + ] + }, + { + "id": "place_village", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "place", + "minzoom": 8, + "layout": { + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "base": 1.2, + "stops": [ + [ + 10, + 10 + ], + [ + 15, + 16 + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-max-width": 8 + }, + "paint": { + "text-color": "#333", + "text-halo-color": "rgba(255,255,255,0.8)", + "text-halo-width": 1.2 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "village" + ] + ] + }, + { + "id": "place_town", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "place", + "minzoom": 6, + "layout": { + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "base": 1.2, + "stops": [ + [ + 7, + 10 + ], + [ + 11, + 13 + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "text-anchor": "bottom", + "text-offset": [ + 0, + 0 + ], + "text-max-width": 8 + }, + "paint": { + "text-color": "#333", + "text-halo-color": "rgba(255,255,255,0.8)", + "text-halo-width": 1.2 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "town" + ] + ] + }, + { + "id": "place_state", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "place", + "minzoom": 4, + "maxzoom": 12, + "layout": { + "text-font": [ + "Noto Sans Regular", + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 3, + 10 + ], + [ + 6, + 14 + ] + ] + }, + "text-field": "{name:latin}", + "visibility": "visible", + "text-padding": 2, + "text-transform": "none", + "text-letter-spacing": 0 + }, + "paint": { + "text-color": "#7e587d", + "text-halo-color": "rgba(255,255,255,0.7)", + "text-halo-width": 0.8 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "state" + ], + [ + "<", + "rank", + 3 + ] + ] + }, + { + "id": "place_city", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "place", + "minzoom": 4, + "maxzoom": 14, + "layout": { + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "base": 1.2, + "stops": [ + [ + 4, + 12 + ], + [ + 15, + 18 + ] + ] + }, + "icon-image": { + "stops": [ + [ + 4, + "place-6" + ], + [ + 7, + " " + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "icon-offset": [ + 0, + 3 + ], + "text-anchor": "bottom", + "text-offset": [ + 0, + 0 + ], + "icon-optional": false, + "text-max-width": 8, + "icon-allow-overlap": true + }, + "paint": { + "text-color": { + "stops": [ + [ + 6, + "rgba(88, 88, 88, 1)" + ], + [ + 14, + "rgba(32, 32, 32, 1)" + ] + ] + }, + "text-halo-color": "rgba(255,255,255,0.8)", + "text-halo-width": 1 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "city" + ], + [ + "!=", + "rank", + 1 + ] + ] + }, + { + "id": "place_capital", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "place", + "minzoom": 3, + "maxzoom": 15, + "layout": { + "icon-size": 1, + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "base": 1.2, + "stops": [ + [ + 4, + 11 + ], + [ + 12, + 16 + ] + ] + }, + "icon-image": { + "stops": [ + [ + 6, + "place-capital-8" + ], + [ + 8, + "" + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}", + "visibility": "visible", + "icon-offset": [ + 0, + 3 + ], + "text-anchor": "bottom", + "text-offset": [ + 0, + 0 + ], + "icon-optional": false, + "text-max-width": 8, + "icon-allow-overlap": true + }, + "paint": { + "text-color": { + "stops": [ + [ + 6, + "rgba(73, 73, 73, 1)" + ], + [ + 14, + "rgba(32, 32, 32, 1)" + ] + ] + }, + "text-halo-color": "rgba(255,255,255,0.8)", + "text-halo-width": 1.2 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "city" + ], + [ + "in", + "capital", + 1, + 2 + ] + ] + }, + { + "id": "country_other", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "place", + "minzoom": 4, + "maxzoom": 15, + "layout": { + "text-font": [ + "Noto Sans Regular" + ], + "text-size": { + "stops": [ + [ + 3, + 11 + ], + [ + 5, + 13 + ], + [ + 7, + 20 + ] + ] + }, + "text-field": "{name:latin}", + "visibility": "visible", + "text-max-width": 6.25, + "text-transform": "none" + }, + "paint": { + "text-color": "rgba(131, 81, 130, 1)", + "text-halo-blur": 1, + "text-halo-color": "rgba(255,255,255,0.8)", + "text-halo-width": 0.8 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "class", + "country" + ], + [ + "!has", + "iso_a2" + ] + ] + }, + { + "id": "country_3", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "place", + "minzoom": 5, + "maxzoom": 12, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 3, + 11 + ], + [ + 5, + 13 + ], + [ + 7, + 17 + ] + ] + }, + "text-field": "{name:latin}", + "visibility": "visible", + "text-max-width": 6.25, + "text-transform": "none" + }, + "paint": { + "text-color": { + "stops": [ + [ + 3, + "rgba(108, 78, 107, 1)" + ], + [ + 10, + "rgba(57, 37, 73, 1)" + ] + ] + }, + "text-halo-blur": 1, + "text-halo-color": "rgba(255,255,255,0.8)", + "text-halo-width": 0.8 + }, + "metadata": {}, + "filter": [ + "all", + [ + ">=", + "rank", + 3 + ], + [ + "==", + "class", + "country" + ], + [ + "has", + "iso_a2" + ] + ] + }, + { + "id": "country_2", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "place", + "minzoom": 2, + "maxzoom": 12, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 3, + 11 + ], + [ + 5, + 14 + ], + [ + 7, + 19 + ] + ] + }, + "text-field": "{name:latin}", + "visibility": "visible", + "text-max-width": 6.25, + "text-transform": "none" + }, + "paint": { + "text-color": { + "stops": [ + [ + 3, + "rgba(108, 78, 107, 1)" + ], + [ + 10, + "rgba(57, 37, 73, 1)" + ] + ] + }, + "text-halo-blur": 1, + "text-halo-color": "rgba(255,255,255,0.8)", + "text-halo-width": 0.8 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "rank", + 2 + ], + [ + "==", + "class", + "country" + ], + [ + "has", + "iso_a2" + ] + ] + }, + { + "id": "country_1", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "place", + "minzoom": 2, + "maxzoom": 12, + "layout": { + "text-font": [ + "Noto Sans Bold" + ], + "text-size": { + "stops": [ + [ + 3, + 11 + ], + [ + 5, + 14 + ], + [ + 7, + 19 + ] + ] + }, + "text-field": "{name:latin}", + "visibility": "visible", + "text-max-width": 6.25, + "text-transform": "none" + }, + "paint": { + "text-color": { + "stops": [ + [ + 2, + "rgba(108, 78, 107, 1)" + ], + [ + 10, + "rgba(57, 37, 73, 1)" + ] + ] + }, + "text-halo-blur": 1, + "text-halo-color": "rgba(255,255,255,0.8)", + "text-halo-width": 0.8 + }, + "metadata": {}, + "filter": [ + "all", + [ + "==", + "rank", + 1 + ], + [ + "==", + "class", + "country" + ], + [ + "has", + "iso_a2" + ] + ] + }, + { + "id": "overpass-polygons", + "type": "fill", + "source": "OverpassAPI", + "filter": ["all", ["==", ["geometry-type"], "Polygon"]], + "paint": { + "fill-color": "rgba(255, 204, 0, .5)" + } + }, + { + "id": "overpass-polygons-stroke", + "type": "line", + "source": "OverpassAPI", + "filter": ["all", ["==", ["geometry-type"], "Polygon"]], + "paint": { "line-width": 2, "line-color": "rgba(0, 51, 255, 0.6)" } + }, + { + "id": "overpass-lines", + "type": "line", + "source": "OverpassAPI", + "filter": ["all", ["==", ["geometry-type"], "LineString"]], + "paint": { + "line-width": 5, + "line-color": "rgba(0, 51, 255, 0.6)" + }, + "layout": { "line-cap": "round" } + }, + { + "id": "overpass-poi", + "type": "circle", + "source": "OverpassAPI", + "filter": ["all", ["==", ["geometry-type"], "Point"]], + "paint": { + "circle-stroke-width": 2, + "circle-stroke-color": "rgba(0, 51, 255, 0.6)", + "circle-color": "rgba(255, 204, 0, 0.6)" + } + } + ] +} diff --git a/src/layers.ts b/src/layers.ts index be43d9c..2cb50d9 100644 --- a/src/layers.ts +++ b/src/layers.ts @@ -1,5 +1,8 @@ +// TODO: Find the layer of the road labels for the maptiler background +const layerToAddAfter = undefined; + function addLayer( - map: mapboxgl.Map, + map: maplibregl.Map, type: | "Driving" | "Parking" @@ -12,7 +15,7 @@ function addLayer( | "LightRail" | "Footway" | "SharedUse", - paint: mapboxgl.FillPaint | undefined + paint: any // TODO: fix this. used to be maplibregl.FillPaint | undefined ): void { map.addLayer({ id: type, @@ -22,7 +25,7 @@ function addLayer( paint, filter: ["==", "type", type], // filter: ["==", "$type", "Polygon"], - }, 'road-label'); + }, layerToAddAfter); } const colours = { @@ -47,7 +50,7 @@ const colours = { SharedUse: "#E5E1BB", }; -export const mapOnLoad = (map: mapboxgl.Map) => () => { +export const mapOnLoad = (map: maplibregl.Map) => () => { const layers = map.getStyle().layers; // Find the index of the first symbol layer in the map style. let firstSymbolId; @@ -156,7 +159,7 @@ export const mapOnLoad = (map: mapboxgl.Map) => () => { - control": "Signed" | "Signalled" | "Uncontrolled" */ filter: ["==", "type", "intersection"], - }, 'road-label'); + }, layerToAddAfter); // // Currently on the wrong side of ways?? // addLayer(map, "Parking", { @@ -175,7 +178,7 @@ export const mapOnLoad = (map: mapboxgl.Map) => () => { }, filter: ["==", "type", "Biking"], // filter: ["==", "type", "Biking"], - }, 'road-label'); + }, layerToAddAfter); map.addLayer({ id: "intersectionMarkings", @@ -188,7 +191,7 @@ export const mapOnLoad = (map: mapboxgl.Map) => () => { "fill-opacity": 0.8, }, filter: ["==", "$type", "Polygon"], - }, 'road-label'); + }, layerToAddAfter); map.addLayer({ id: "laneMarkings", @@ -201,5 +204,5 @@ export const mapOnLoad = (map: mapboxgl.Map) => () => { "fill-opacity": 1, }, filter: ["==", "$type", "Polygon"], - }, 'road-label'); + }, layerToAddAfter); }; \ No newline at end of file diff --git a/src/map.tsx b/src/map.tsx index 2d20734..3cc5875 100644 --- a/src/map.tsx +++ b/src/map.tsx @@ -1,19 +1,12 @@ -import React, { useRef, useEffect, useState } from "react"; -// @ts-ignore -// eslint-disable-next-line -// import mapboxgl from "!mapbox-gl"; -import mapboxgl from "mapbox-gl"; +import React, { useEffect, useState } from "react"; +import maplibregl from 'maplibre-gl'; import "./App.css"; import { mapOnLoad } from "./layers"; -const MAPBOX_TOKEN = - "pk.eyJ1IjoiamFrZWMiLCJhIjoiY2tkaHplNGhjMDAyMDJybW4ybmRqbTBmMyJ9.AR_fnEuka8-cFb4Snp3upw"; - -mapboxgl.accessToken = MAPBOX_TOKEN; export function Map() { const mapContainer = React.useRef(null); - const mapRef = React.useRef(null); + const mapRef = React.useRef(null); const [lng, setLng] = useState(151.21084276742022); const [lat, setLat] = useState(-33.8720286260115); @@ -28,21 +21,21 @@ export function Map() { return; } - mapRef.current = new mapboxgl.Map({ + mapRef.current = new maplibregl.Map({ container: mapContainer.current, - style: "mapbox://styles/mapbox/streets-v12", - // style: "mapbox://styles/mapbox/dark-v10", center: [lng, lat], zoom: zoom, + style: "./style.json", }); const map = mapRef.current; map.on("load", mapOnLoad(map)); - map.addControl(new mapboxgl.NavigationControl()); - map.addControl(new mapboxgl.FullscreenControl()); + // TO FIX + // map.addControl(new maplibregl.NavigationControl()); + // map.addControl(new maplibregl.FullscreenControl()); map.addControl( - new mapboxgl.GeolocateControl({ + new maplibregl.GeolocateControl({ positionOptions: { enableHighAccuracy: true, },