diff --git a/ohmg/frontend/static/aerialiberty/LICENSE.md b/ohmg/frontend/static/aerialiberty/LICENSE.md
new file mode 100644
index 00000000..b862282f
--- /dev/null
+++ b/ohmg/frontend/static/aerialiberty/LICENSE.md
@@ -0,0 +1,38 @@
+## Code License
+
+The Mapbox GL Style JSON file is originally derived from [OSM Bright from Mapbox Open Styles](https://github.com/mapbox/mapbox-gl-styles/blob/master/LICENSE.md). The modified Mapbox GL Style JSON retains the same BSD license.
+
+> Redistribution and use in source and binary forms, with or without modification,
+are permitted provided that the following conditions are met:
+
+> * Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer.
+* Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution.
+* Neither the name of Mapbox nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.
+
+> THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+## Design License
+
+The look and feel of the OSM liberty map design is also derived (although heavily altered) from [OSM Bright from Mapbox Open Styles](https://github.com/mapbox/mapbox-gl-styles/blob/master/LICENSE.md) which is licensed under the Creative Commons Attribution 3.0 license.
+
+The map is displaying and styling the data from [OpenMapTiles](https://openmaptiles.org/) with [CC-BY 4.0 design license](https://github.com/openmaptiles/openmaptiles/blob/master/LICENSE.md).
+
+The products or services using this map style need to visibly credit "OpenMapTiles.org" or reference "OpenMapTiles" with a link to http://openmaptiles.org/. For a browsable electronic map based on OpenMapTiles and OpenStreetMap data, the credit should appear in the corner of the map. For example:
+
+[© OpenMapTiles](https://openmaptiles.org/)
+[© OpenStreetMap contributors](https://www.openstreetmap.org/copyright)
+
+For printed and static maps a similar attribution should be made in a textual description near the image, in the same fashion as if you cite a photograph.
+
+## Icons
+
+OSM Liberty is using the [Maki POI icon set](https://github.com/mapbox/maki/blob/master/LICENSE.txt) which is licensed under CC0 1.0 Universal.
+
+The right arrow was derived from [Wikipedia][wiki_arrow] which is in the public domain.
+
+[wiki_arrow]: https://commons.wikimedia.org/wiki/File:Arrowright.svg
+
+## Fonts
+
+OSM Liberty is using the Roboto font family (Copyright 2011 Google).
+Roboto is licensed under the [Apache License, Version 2.0](https://github.com/google/roboto/blob/master/LICENSE).
diff --git a/ohmg/frontend/static/aerialiberty/README.md b/ohmg/frontend/static/aerialiberty/README.md
new file mode 100644
index 00000000..62e45d31
--- /dev/null
+++ b/ohmg/frontend/static/aerialiberty/README.md
@@ -0,0 +1,121 @@
+# OSM Liberty [](https://github.com/maputnik/osm-liberty/blob/gh-pages/LICENSE.md) [](https://github.com/maputnik/osm-liberty/actions?query=workflow%3ACI)
+
+
+
+A free Maplibre and Mapbox GL basemap style for everyone with complete liberty to use and self host. OSM Liberty is a fork of OSM Bright based on free data sources with a mission for a clear good looking design for the everyday user. It is based on the vector tile schema of [OpenMapTiles](https://github.com/openmaptiles/openmaptiles).
+
+**[Preview OSM Liberty with Maputnik](https://maputnik.github.io/editor/?style=https://maputnik.github.io/osm-liberty/style.json)**
+
+## Usage
+
+You can use the style in your Maplibre and Mapbox GL maps.
+
+By default, the vector tiles are served from [Maptiler Cloud](https://www.maptiler.com/cloud/) and the relief shading, glyphs and sprites directly from GitHub.
+You would need to create a [MapTiler](https://www.maptiler.com) account to get an access key and replace the placeholder {key} for the [vector source](https://github.com/maputnik/osm-liberty/blob/gh-pages/style.json#L11) with your own key.
+
+Other options are:
+- Create your own vector tiles with [OpenMapTiles](https://github.com/openmaptiles/openmaptiles) and host the tiles yourself for complete liberty.
+- Use another vector tile source that is based on the vector tile schema of [OpenMapTiles](https://github.com/openmaptiles/openmaptiles)
+
+```html
+
+
+
+
+ OSM Liberty
+
+
+
+
+
+
+
+
+
+
+```
+
+## Data Sources
+
+- [OpenMapTiles](http://openmaptiles.org/) as vector data source
+- [Natural Earth Tiles](https://klokantech.github.io/naturalearthtiles/) for relief shading
+- [Maki](https://www.mapbox.com/maki-icons/) as icon set
+- [Orange Mug](https://github.com/orangemug/font-glyphs) as font glyphs
+
+## Map Design
+
+The map design originates from OSM Bright but strives to reach a unobtrusive and clean design for everyday use.
+Colored relief shading from Natural Earth make the low zoom levels look good.
+
+[](https://maputnik.github.io/osm-liberty/)
+
+## Edit the Style
+
+You can [edit the style directly online in Maputnik](https://maputnik.github.io/editor?style=https://maputnik.github.io/osm-liberty/style.json).
+
+This style actually triggered the need for the development of [Maputnik](https://github.com/maputnik/editor/).
+
+A pre-commit hook is included to validate and format the JSON styles using
+[`mapbox-gl-style-spec`](https://www.npmjs.com/package/@mapbox/mapbox-gl-style-spec).
+To use, just install the NPM dev dependencies:
+```
+npm install
+```
+and then validate or format the style with
+```
+npm run validate
+npm run format
+```
+
+Validation and reformatting will happen automatically on commit if you have the
+dependencies installed.
+
+## Icon Design
+
+A [Maki](https://github.com/mapbox/maki) icon set using colors to distinguish between icon categories.
+
+Maki is a living project and adds new icons over time, which means that there
+could be new icons that OSM Liberty could use for POIs. `sources_list.py` is a
+simple script to list both the names in OSM Liberty's iconset that don't map to
+any valid Maki name, and the Maki names that are not currently used in OSM
+Liberty's iconset. You can run the script with `python3 sources_list.py`.
+
+**Color Palette**
+
+Color Name | Hex Value
+-------------|----------
+Blue | `#5d60be`
+Light Blue | `#4898ff`
+Orange | `#d97200`
+Red | `#ba3827`
+Brown | `#725a50`
+Green | `#76a723`
+
+**Modify Icons**
+
+_When submitting a PR, no need to include the sprites. They will be automatically created when merging a PR.
+The size 11 icons are included in the sprites for backward compatability. Please don't include new size 11 icons._
+
+1. Take the `iconset.json` and import it to the [Maki Editor](https://www.mapbox.com/maki-icons/editor/).
+2. Apply your changes and download the icons in SVG format and the iconset in JSON format.
+Save the downloaded SVGs from Maki Editor to the folder [svgs_iconset](https://github.com/maputnik/osm-liberty/tree/gh-pages/svgs/svgs_iconset).
+3. Mandatory if the updated `iconset.json` should become part of this repo: Format the JSON with `cat iconset.json | jq -MS '.'` for better legibility.
+4. There are also SVGs in the folder [svgs_not_in_iconset](https://github.com/maputnik/osm-liberty/tree/gh-pages/svgs/svgs_not_in_iconset).
+These are the SVGs for road shields, the dot used for city and town layers and the road area pattern which could not be modified using the Maki Editor. To modify these you could use e.g. [Inkscape](https://inkscape.org).
+5. Install the NPM dev dependencies: `npm install` to have [spritezero-cli](https://gitlab.com/beyondtracks/spritezero-cli) available (we're using a fork of https://github.com/mapbox/spritezero-cli ).
+6. Generate the low and high resolution sprites: `npm run build_sprites`
+
+## Have a look at ...
+
+- [OSM Liberty Topo](https://github.com/nst-guide/osm-liberty-topo) - a topographic fork of OSM Liberty
diff --git a/ohmg/frontend/static/aerialiberty/maputnik_orig_linted.json b/ohmg/frontend/static/aerialiberty/maputnik_orig_linted.json
new file mode 100644
index 00000000..f0c188a1
--- /dev/null
+++ b/ohmg/frontend/static/aerialiberty/maputnik_orig_linted.json
@@ -0,0 +1,2537 @@
+{
+ "version": 8,
+ "name": "OSM Liberty",
+ "metadata": {
+ "maputnik:license": "https://github.com/maputnik/osm-liberty/blob/gh-pages/LICENSE.md",
+ "maputnik:renderer": "mbgljs",
+ "openmaptiles:version": "3.x"
+ },
+ "sources": {
+ "natural_earth_shaded_relief": {
+ "maxzoom": 6,
+ "tileSize": 256,
+ "tiles": [
+ "https://klokantech.github.io/naturalearthtiles/tiles/natural_earth_2_shaded_relief.raster/{z}/{x}/{y}.png"
+ ],
+ "type": "raster"
+ },
+ "openmaptiles": {
+ "type": "vector",
+ "url": "https://api.maptiler.com/tiles/v3/tiles.json?key={key}"
+ }
+ },
+ "sprite": "https://maputnik.github.io/osm-liberty/sprites/osm-liberty",
+ "glyphs": "https://orangemug.github.io/font-glyphs/glyphs/{fontstack}/{range}.pbf",
+ "layers": [
+ {
+ "id": "background",
+ "type": "background",
+ "paint": {"background-color": "rgb(239,239,239)"}
+ },
+ {
+ "id": "natural_earth",
+ "type": "raster",
+ "source": "natural_earth_shaded_relief",
+ "maxzoom": 6,
+ "paint": {
+ "raster-opacity": [
+ "interpolate",
+ ["exponential", 1.5],
+ ["zoom"],
+ 0,
+ 0.6,
+ 6,
+ 0.1
+ ]
+ }
+ },
+ {
+ "id": "park",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "park",
+ "paint": {
+ "fill-color": "#d8e8c8",
+ "fill-opacity": 0.7,
+ "fill-outline-color": "rgba(95, 208, 100, 1)"
+ }
+ },
+ {
+ "id": "park_outline",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "park",
+ "paint": {
+ "line-color": "rgba(228, 241, 215, 1)",
+ "line-dasharray": [1, 1.5]
+ }
+ },
+ {
+ "id": "landuse_residential",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "maxzoom": 8,
+ "filter": ["==", ["get", "class"], "residential"],
+ "paint": {
+ "fill-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 9,
+ "hsla(0,3%,85%,0.84)",
+ 12,
+ "hsla(35,57%,88%,0.49)"
+ ]
+ }
+ },
+ {
+ "id": "landcover_wood",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "filter": ["==", ["get", "class"], "wood"],
+ "paint": {
+ "fill-antialias": false,
+ "fill-color": "hsla(98,61%,72%,0.7)",
+ "fill-opacity": 0.4
+ }
+ },
+ {
+ "id": "landcover_grass",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "filter": ["==", ["get", "class"], "grass"],
+ "paint": {
+ "fill-antialias": false,
+ "fill-color": "rgba(176, 213, 154, 1)",
+ "fill-opacity": 0.3
+ }
+ },
+ {
+ "id": "landcover_ice",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "filter": ["==", ["get", "class"], "ice"],
+ "paint": {
+ "fill-antialias": false,
+ "fill-color": "rgba(224, 236, 236, 1)",
+ "fill-opacity": 0.8
+ }
+ },
+ {
+ "id": "landcover_wetland",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "minzoom": 12,
+ "filter": ["==", ["get", "class"], "wetland"],
+ "paint": {
+ "fill-antialias": true,
+ "fill-opacity": 0.8,
+ "fill-pattern": "wetland_bg_11",
+ "fill-translate-anchor": "map"
+ }
+ },
+ {
+ "id": "landuse_pitch",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": ["==", ["get", "class"], "pitch"],
+ "paint": {"fill-color": "#DEE3CD"}
+ },
+ {
+ "id": "landuse_track",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": ["==", ["get", "class"], "track"],
+ "paint": {"fill-color": "#DEE3CD"}
+ },
+ {
+ "id": "landuse_cemetery",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": ["==", ["get", "class"], "cemetery"],
+ "paint": {"fill-color": "hsl(75,37%,81%)"}
+ },
+ {
+ "id": "landuse_hospital",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": ["==", ["get", "class"], "hospital"],
+ "paint": {"fill-color": "#fde"}
+ },
+ {
+ "id": "landuse_school",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landuse",
+ "filter": ["==", ["get", "class"], "school"],
+ "paint": {"fill-color": "rgb(236,238,204)"}
+ },
+ {
+ "id": "waterway_tunnel",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": ["==", ["get", "brunnel"], "tunnel"],
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-dasharray": [3, 3],
+ "line-gap-width": ["interpolate", ["linear"], ["zoom"], 12, 0, 20, 6],
+ "line-opacity": 1,
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 8,
+ 1,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "waterway_river",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "river"],
+ ["!=", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-cap": "round"},
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 11,
+ 0.5,
+ 20,
+ 6
+ ]
+ }
+ },
+ {
+ "id": "waterway_other",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "all",
+ ["!=", ["get", "class"], "river"],
+ ["!=", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-cap": "round"},
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.3],
+ ["zoom"],
+ 13,
+ 0.5,
+ 20,
+ 6
+ ]
+ }
+ },
+ {
+ "id": "water",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "water",
+ "filter": ["!=", ["get", "brunnel"], "tunnel"],
+ "paint": {"fill-color": "rgb(158,189,255)"}
+ },
+ {
+ "id": "landcover_sand",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "landcover",
+ "filter": ["==", ["get", "class"], "sand"],
+ "paint": {"fill-color": "rgba(247, 239, 195, 1)"}
+ },
+ {
+ "id": "aeroway_fill",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 11,
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["MultiPolygon", "Polygon"],
+ true,
+ false
+ ],
+ "paint": {"fill-color": "rgba(229, 228, 224, 1)", "fill-opacity": 0.7}
+ },
+ {
+ "id": "aeroway_runway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "class"], "runway"]
+ ],
+ "paint": {
+ "line-color": "#f0ede9",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 11,
+ 3,
+ 20,
+ 16
+ ]
+ }
+ },
+ {
+ "id": "aeroway_taxiway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "class"], "taxiway"]
+ ],
+ "paint": {
+ "line-color": "#f0ede9",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 11,
+ 0.5,
+ 20,
+ 6
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-dasharray": [0.5, 0.25],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "tunnel_service_track_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-dasharray": [0.5, 0.25],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15,
+ 1,
+ 16,
+ 4,
+ 20,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "tunnel_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "tunnel_street_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 12, 0, 12.5, 1],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 0.5,
+ 13,
+ 1,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "tunnel_secondary_tertiary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 8,
+ 1.5,
+ 20,
+ 17
+ ]
+ }
+ },
+ {
+ "id": "tunnel_trunk_primary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-dasharray": [0.5, 0.25],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "tunnel_path_pedestrian",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["path", "pedestrian"], true, false]
+ ],
+ "paint": {
+ "line-color": "hsl(0,0%,100%)",
+ "line-dasharray": [1, 0.75],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 14,
+ 0.5,
+ 20,
+ 10
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_service_track",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15.5,
+ 0,
+ 16,
+ 2,
+ 20,
+ 7.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff4c6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_minor",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["minor"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 13.5,
+ 0,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_secondary_tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff4c6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 6.5,
+ 0,
+ 7,
+ 0.5,
+ 20,
+ 10
+ ]
+ }
+ },
+ {
+ "id": "tunnel_trunk_primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff4c6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#ffdaa6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "tunnel_major_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["rail"], true, false]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "tunnel_major_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["==", ["get", "class"], "rail"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "tunnel_transit_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["transit"], true, false]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "tunnel_transit_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["==", ["get", "class"], "transit"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "road_area_pattern",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["MultiPolygon", "Polygon"],
+ true,
+ false
+ ],
+ "paint": {"fill-pattern": "pedestrian_polygon"}
+ },
+ {
+ "id": "road_motorway_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "road_service_track_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15,
+ 1,
+ 16,
+ 4,
+ 20,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "road_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ [
+ "match",
+ ["get", "class"],
+ ["motorway", "path", "pedestrian", "service", "track"],
+ false,
+ true
+ ],
+ ["==", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "road_minor_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["minor"], true, false],
+ ["!=", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 12, 0, 12.5, 1],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 0.5,
+ 13,
+ 1,
+ 14,
+ 4,
+ 20,
+ 20
+ ]
+ }
+ },
+ {
+ "id": "road_secondary_tertiary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["!=", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 8,
+ 1.5,
+ 20,
+ 17
+ ]
+ }
+ },
+ {
+ "id": "road_trunk_primary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "road_motorway_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 5,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "road_path_pedestrian",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["path", "pedestrian"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "hsl(0,0%,100%)",
+ "line-dasharray": [1, 0.7],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 14,
+ 1,
+ 20,
+ 10
+ ]
+ }
+ },
+ {
+ "id": "road_motorway_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "road_service_track",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15.5,
+ 0,
+ 16,
+ 2,
+ 20,
+ 7.5
+ ]
+ }
+ },
+ {
+ "id": "road_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "ramp"], 1],
+ [
+ "match",
+ ["get", "class"],
+ ["motorway", "path", "pedestrian", "service", "track"],
+ false,
+ true
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "road_minor",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["minor"], true, false]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 13.5,
+ 0,
+ 14,
+ 2.5,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "road_secondary_tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 6.5,
+ 0,
+ 8,
+ 0.5,
+ 20,
+ 13
+ ]
+ }
+ },
+ {
+ "id": "road_trunk_primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "road_motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 5,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 5,
+ "hsl(26,87%,62%)",
+ 6,
+ "#fc8"
+ ],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "road_major_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "rail"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "road_major_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "rail"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "road_transit_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "transit"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "road_transit_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "transit"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "road_one_way_arrow",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 16,
+ "filter": ["==", ["get", "oneway"], 1],
+ "layout": {"icon-image": "arrow", "symbol-placement": "line"}
+ },
+ {
+ "id": "road_one_way_arrow_opposite",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 16,
+ "filter": ["==", ["get", "oneway"], -1],
+ "layout": {
+ "icon-image": "arrow",
+ "icon-rotate": 180,
+ "symbol-placement": "line"
+ }
+ },
+ {
+ "id": "bridge_motorway_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "bridge_service_track_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15,
+ 1,
+ 16,
+ 4,
+ 20,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "bridge_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "link"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "bridge_street_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "hsl(36,6%,74%)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 12, 0, 12.5, 1],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 0.5,
+ 13,
+ 1,
+ 14,
+ 4,
+ 20,
+ 25
+ ]
+ }
+ },
+ {
+ "id": "bridge_path_pedestrian_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["path", "pedestrian"], true, false]
+ ],
+ "paint": {
+ "line-color": "hsl(35,6%,80%)",
+ "line-dasharray": [1, 0],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 14,
+ 1.5,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "bridge_secondary_tertiary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 8,
+ 1.5,
+ 20,
+ 17
+ ]
+ }
+ },
+ {
+ "id": "bridge_trunk_primary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "bridge_motorway_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "bridge_path_pedestrian",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["path", "pedestrian"], true, false]
+ ],
+ "paint": {
+ "line-color": "hsl(0,0%,100%)",
+ "line-dasharray": [1, 0.3],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 14,
+ 0.5,
+ 20,
+ 10
+ ]
+ }
+ },
+ {
+ "id": "bridge_motorway_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "bridge_service_track",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15.5,
+ 0,
+ 16,
+ 2,
+ 20,
+ 7.5
+ ]
+ }
+ },
+ {
+ "id": "bridge_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "link"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "bridge_street",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["minor"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 13.5,
+ 0,
+ 14,
+ 2.5,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "bridge_secondary_tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 6.5,
+ 0,
+ 7,
+ 0.5,
+ 20,
+ 10
+ ]
+ }
+ },
+ {
+ "id": "bridge_trunk_primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "bridge_motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "bridge_major_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "rail"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "bridge_major_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "rail"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "bridge_transit_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "transit"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "bridge_transit_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "transit"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "building",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "building",
+ "minzoom": 13,
+ "maxzoom": 14,
+ "paint": {
+ "fill-color": "hsl(35,8%,85%)",
+ "fill-outline-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 13,
+ "hsla(35,6%,79%,0.32)",
+ 14,
+ "hsl(35,6%,79%)"
+ ]
+ }
+ },
+ {
+ "id": "building-3d",
+ "type": "fill-extrusion",
+ "source": "openmaptiles",
+ "source-layer": "building",
+ "minzoom": 14,
+ "paint": {
+ "fill-extrusion-base": ["get", "render_min_height"],
+ "fill-extrusion-color": "hsl(35,8%,85%)",
+ "fill-extrusion-height": ["get", "render_height"],
+ "fill-extrusion-opacity": 0.8
+ }
+ },
+ {
+ "id": "boundary_3",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "minzoom": 8,
+ "filter": ["match", ["get", "admin_level"], [3, 4], true, false],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#9e9cab",
+ "line-dasharray": [5, 1],
+ "line-width": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 4,
+ 0.4,
+ 5,
+ 1,
+ 12,
+ 1.8
+ ]
+ }
+ },
+ {
+ "id": "boundary_2_z0-4",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "maxzoom": 5,
+ "filter": [
+ "all",
+ ["==", ["get", "admin_level"], 2],
+ ["!", ["has", "claimed_by"]]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "hsl(248,1%,41%)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 0, 0.4, 4, 1],
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 1, 5, 1.2, 12, 3]
+ }
+ },
+ {
+ "id": "boundary_2_z5-",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "minzoom": 5,
+ "filter": ["==", ["get", "admin_level"], 2],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "hsl(248,1%,41%)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 0, 0.4, 4, 1],
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 1, 5, 1.2, 12, 3]
+ }
+ },
+ {
+ "id": "water_name_line",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": ["to-string", ["get", "name"]],
+ "text-font": ["Roboto Regular"],
+ "text-max-width": 5,
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#5d60be",
+ "text-halo-color": "rgba(255,255,255,0.7)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "water_name_point",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "water_name",
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["MultiPoint", "Point"],
+ true,
+ false
+ ],
+ "layout": {
+ "text-field": ["to-string", ["get", "name"]],
+ "text-font": ["Roboto Regular"],
+ "text-max-width": 5,
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#5d60be",
+ "text-halo-color": "rgba(255,255,255,0.7)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "poi_z16",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
+ [">=", ["get", "rank"], 20]
+ ],
+ "layout": {
+ "icon-image": [
+ "match",
+ ["get", "subclass"],
+ ["florist", "furniture"],
+ ["get", "subclass"],
+ ["get", "class"]
+ ],
+ "text-anchor": "top",
+ "text-field": ["to-string", ["get", "name"]],
+ "text-font": ["Roboto Condensed Italic"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#666",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#ffffff",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "poi_z15",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
+ [">=", ["get", "rank"], 7],
+ ["<", ["get", "rank"], 20]
+ ],
+ "layout": {
+ "icon-image": [
+ "match",
+ ["get", "subclass"],
+ ["florist", "furniture"],
+ ["get", "subclass"],
+ ["get", "class"]
+ ],
+ "text-anchor": "top",
+ "text-field": ["to-string", ["get", "name"]],
+ "text-font": ["Roboto Condensed Italic"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#666",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#ffffff",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "poi_z14",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
+ [">=", ["get", "rank"], 1],
+ ["<", ["get", "rank"], 7]
+ ],
+ "layout": {
+ "icon-image": [
+ "match",
+ ["get", "subclass"],
+ ["florist", "furniture"],
+ ["get", "subclass"],
+ ["get", "class"]
+ ],
+ "text-anchor": "top",
+ "text-field": ["to-string", ["get", "name"]],
+ "text-font": ["Roboto Condensed Italic"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#666",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#ffffff",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "poi_transit",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "filter": [
+ "match",
+ ["get", "class"],
+ ["airport", "bus", "rail"],
+ true,
+ false
+ ],
+ "layout": {
+ "icon-image": ["to-string", ["get", "class"]],
+ "text-anchor": "left",
+ "text-field": ["to-string", ["get", "name_en"]],
+ "text-font": ["Roboto Condensed Italic"],
+ "text-max-width": 9,
+ "text-offset": [0.9, 0],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#4898ff",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#ffffff",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "road_label",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "filter": ["all"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-anchor": "center",
+ "text-field": ["to-string", ["get", "name"]],
+ "text-font": ["Roboto Regular"],
+ "text-offset": [0, 0.15],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 14, 13]
+ },
+ "paint": {
+ "text-color": "#765",
+ "text-halo-blur": 0.5,
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "road_shield",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 7,
+ "filter": ["<=", ["get", "ref_length"], 6],
+ "layout": {
+ "icon-image": ["concat", "default_", ["get", "ref_length"]],
+ "icon-rotation-alignment": "viewport",
+ "icon-size": 0.8,
+ "symbol-placement": ["step", ["zoom"], "point", 11, "line"],
+ "symbol-spacing": 500,
+ "text-field": ["to-string", ["get", "ref"]],
+ "text-font": ["Roboto Regular"],
+ "text-offset": [0, 0.1],
+ "text-rotation-alignment": "viewport",
+ "text-size": 10
+ }
+ },
+ {
+ "id": "place_other",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": [
+ "match",
+ ["get", "class"],
+ ["hamlet", "island", "islet", "neighbourhood", "quarter", "suburb"],
+ true,
+ false
+ ],
+ "layout": {
+ "text-field": ["to-string", ["get", "name_en"]],
+ "text-font": ["Roboto Condensed Italic"],
+ "text-letter-spacing": 0.1,
+ "text-max-width": 9,
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 10,
+ 15,
+ 14
+ ],
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "text-color": "#633",
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1.2
+ }
+ },
+ {
+ "id": "place_village",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": ["==", ["get", "class"], "village"],
+ "layout": {
+ "text-field": ["to-string", ["get", "name_en"]],
+ "text-font": ["Roboto Regular"],
+ "text-max-width": 8,
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 10,
+ 12,
+ 15,
+ 22
+ ]
+ },
+ "paint": {
+ "text-color": "#333",
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1.2
+ }
+ },
+ {
+ "id": "place_town",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": ["==", ["get", "class"], "town"],
+ "layout": {
+ "icon-image": ["step", ["zoom"], "dot_9", 8, ""],
+ "text-anchor": "bottom",
+ "text-field": ["to-string", ["get", "name_en"]],
+ "text-font": ["Roboto Regular"],
+ "text-max-width": 8,
+ "text-offset": [0, 0],
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 7,
+ 12,
+ 11,
+ 16
+ ]
+ },
+ "paint": {
+ "text-color": "#333",
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1.2
+ }
+ },
+ {
+ "id": "place_city",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 5,
+ "filter": ["==", ["get", "class"], "city"],
+ "layout": {
+ "icon-allow-overlap": true,
+ "icon-image": ["step", ["zoom"], "dot_9", 8, ""],
+ "icon-optional": false,
+ "text-anchor": "bottom",
+ "text-field": ["to-string", ["get", "name_en"]],
+ "text-font": ["Roboto Medium"],
+ "text-max-width": 8,
+ "text-offset": [0, 0],
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 7,
+ 14,
+ 11,
+ 24
+ ]
+ },
+ "paint": {
+ "text-color": "#333",
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1.2
+ }
+ },
+ {
+ "id": "state",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 6,
+ "filter": ["==", ["get", "class"], "state"],
+ "layout": {
+ "text-field": ["to-string", ["get", "name_en"]],
+ "text-font": ["Roboto Condensed Italic"],
+ "text-size": ["interpolate", ["linear"], ["zoom"], 4, 11, 6, 15],
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "text-color": "#633",
+ "text-halo-color": "rgba(255,255,255,0.7)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "country_3",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": [
+ "all",
+ [">=", ["get", "rank"], 3],
+ ["==", ["get", "class"], "country"]
+ ],
+ "layout": {
+ "text-field": ["to-string", ["get", "name_en"]],
+ "text-font": ["Roboto Condensed Italic"],
+ "text-max-width": 6.25,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 3, 11, 7, 17],
+ "text-transform": "none"
+ },
+ "paint": {
+ "text-color": "#334",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "country_2",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": [
+ "all",
+ ["==", ["get", "rank"], 2],
+ ["==", ["get", "class"], "country"]
+ ],
+ "layout": {
+ "text-field": ["to-string", ["get", "name_en"]],
+ "text-font": ["Roboto Condensed Italic"],
+ "text-max-width": 6.25,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 2, 11, 5, 17],
+ "text-transform": "none"
+ },
+ "paint": {
+ "text-color": "#334",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "country_1",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "filter": [
+ "all",
+ ["==", ["get", "rank"], 1],
+ ["==", ["get", "class"], "country"]
+ ],
+ "layout": {
+ "text-field": ["to-string", ["get", "name_en"]],
+ "text-font": ["Roboto Condensed Italic"],
+ "text-max-width": 6.25,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 1, 11, 4, 17],
+ "text-transform": "none"
+ },
+ "paint": {
+ "text-color": "#334",
+ "text-halo-blur": 1,
+ "text-halo-color": "rgba(255,255,255,0.8)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "continent",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 1,
+ "filter": ["==", ["get", "class"], "continent"],
+ "layout": {
+ "text-field": ["to-string", ["get", "name_en"]],
+ "text-font": ["Roboto Condensed Italic"],
+ "text-justify": "center",
+ "text-size": 13,
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "text-color": "#633",
+ "text-halo-color": "rgba(255,255,255,0.7)",
+ "text-halo-width": 1
+ }
+ }
+ ]
+}
diff --git a/ohmg/frontend/static/aerialiberty/style-no-non-us-shield.json b/ohmg/frontend/static/aerialiberty/style-no-non-us-shield.json
new file mode 100644
index 00000000..b2885160
--- /dev/null
+++ b/ohmg/frontend/static/aerialiberty/style-no-non-us-shield.json
@@ -0,0 +1,2329 @@
+{
+ "version": 8,
+ "metadata": {"maputnik:renderer": "mlgljs"},
+ "sources": {
+ "openmaptiles": {
+ "type": "vector",
+ "url": "https://tiles.openfreemap.org/planet"
+ }
+ },
+ "sprite": "https://tiles.openfreemap.org/sprites/ofm_f384/ofm",
+ "glyphs": "https://tiles.openfreemap.org/fonts/{fontstack}/{range}.pbf",
+ "layers": [
+ {
+ "id": "waterway_tunnel",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": ["==", ["get", "brunnel"], "tunnel"],
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-dasharray": [3, 3],
+ "line-gap-width": ["interpolate", ["linear"], ["zoom"], 12, 0, 20, 6],
+ "line-opacity": 1,
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 8,
+ 1,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "waterway_other",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "all",
+ ["!=", ["get", "class"], "river"],
+ ["!=", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-cap": "round"},
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.3],
+ ["zoom"],
+ 13,
+ 0.5,
+ 20,
+ 6
+ ]
+ }
+ },
+ {
+ "id": "aeroway_taxiway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "class"], "taxiway"]
+ ],
+ "paint": {
+ "line-color": "#f0ede9",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 11,
+ 0.5,
+ 20,
+ 6
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-dasharray": [0.5, 0.25],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "tunnel_service_track_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-dasharray": [0.5, 0.25],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15,
+ 1,
+ 16,
+ 4,
+ 20,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "tunnel_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "tunnel_street_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 12, 0, 12.5, 1],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 0.5,
+ 13,
+ 1,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "tunnel_secondary_tertiary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 8,
+ 1.5,
+ 20,
+ 17
+ ]
+ }
+ },
+ {
+ "id": "tunnel_trunk_primary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-dasharray": [0.5, 0.25],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "tunnel_path_pedestrian",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["path", "pedestrian"], true, false]
+ ],
+ "paint": {
+ "line-color": "hsl(0,0%,100%)",
+ "line-dasharray": [1, 0.75],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 14,
+ 0.5,
+ 20,
+ 10
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_service_track",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15.5,
+ 0,
+ 16,
+ 2,
+ 20,
+ 7.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff4c6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_minor",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["minor"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 13.5,
+ 0,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_secondary_tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff4c6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 6.5,
+ 0,
+ 7,
+ 0.5,
+ 20,
+ 10
+ ]
+ }
+ },
+ {
+ "id": "tunnel_trunk_primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff4c6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#ffdaa6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "tunnel_major_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["rail"], true, false]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "tunnel_major_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["==", ["get", "class"], "rail"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "tunnel_transit_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["transit"], true, false]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "tunnel_transit_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["==", ["get", "class"], "transit"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "road_area_pattern",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["MultiPolygon", "Polygon"],
+ true,
+ false
+ ],
+ "paint": {
+ "fill-pattern": "pedestrian_polygon",
+ "fill-antialias": ["literal", true],
+ "fill-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_motorway_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 12,
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_secondary_tertiary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["!=", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 8,
+ 1.5,
+ 20,
+ 17
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_trunk_primary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ],
+ "line-opacity": {"stops": [[1, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_motorway_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 5,
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_motorway_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 12,
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_secondary_tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 6.5,
+ 0,
+ 8,
+ 0.5,
+ 20,
+ 13
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_trunk_primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ],
+ "line-opacity": {"stops": [[1, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 5,
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 5,
+ "hsl(26,87%,62%)",
+ 6,
+ "#fc8"
+ ],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_major_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "rail"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "road_major_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "rail"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "road_transit_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "transit"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "road_transit_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "transit"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "bridge_motorway_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 0
+ ],
+ "line-opacity": {"stops": [[1, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_service_track_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15,
+ 1,
+ 16,
+ 4,
+ 20,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "bridge_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "link"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "bridge_street_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "hsl(36,6%,74%)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 12, 0, 12.5, 1],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 0.5,
+ 13,
+ 1,
+ 14,
+ 4,
+ 20,
+ 25
+ ]
+ }
+ },
+ {
+ "id": "bridge_path_pedestrian_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["path", "pedestrian"], true, false]
+ ],
+ "paint": {
+ "line-color": "hsl(35,6%,80%)",
+ "line-dasharray": [1, 0],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 14,
+ 1.5,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "bridge_secondary_tertiary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 8,
+ 1.5,
+ 20,
+ 17
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_trunk_primary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_motorway_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_path_pedestrian",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["path", "pedestrian"], true, false]
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "line-color": "hsl(0,0%,100%)",
+ "line-dasharray": [1, 0.3],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 14,
+ 0.5,
+ 20,
+ 10
+ ]
+ }
+ },
+ {
+ "id": "bridge_motorway_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_service_track",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15.5,
+ 0,
+ 16,
+ 2,
+ 20,
+ 7.5
+ ]
+ }
+ },
+ {
+ "id": "bridge_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "link"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "bridge_street",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["minor"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 13.5,
+ 0,
+ 14,
+ 2.5,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "bridge_secondary_tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 6.5,
+ 0,
+ 7,
+ 0.5,
+ 20,
+ 10
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_trunk_primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ],
+ "line-opacity": {"stops": [[1, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_major_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "rail"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "bridge_major_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "rail"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "bridge_transit_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "transit"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "bridge_transit_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "transit"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "boundary_3",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "minzoom": 5,
+ "filter": [
+ "all",
+ [">=", ["get", "admin_level"], 3],
+ ["<=", ["get", "admin_level"], 6],
+ ["!=", ["get", "maritime"], 1],
+ ["!=", ["get", "disputed"], 1],
+ ["!", ["has", "claimed_by"]]
+ ],
+ "paint": {
+ "line-color": "hsl(0,0%,70%)",
+ "line-dasharray": [1, 1],
+ "line-width": ["interpolate", ["linear", 1], ["zoom"], 7, 1, 11, 2]
+ }
+ },
+ {
+ "id": "boundary_2",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "filter": [
+ "all",
+ ["==", ["get", "admin_level"], 2],
+ ["!=", ["get", "maritime"], 1],
+ ["!=", ["get", "disputed"], 1],
+ ["!", ["has", "claimed_by"]]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "hsl(248,1%,41%)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 0, 0.4, 4, 1],
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 1, 5, 1.2, 12, 3]
+ }
+ },
+ {
+ "id": "boundary_disputed",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "filter": [
+ "all",
+ ["!=", ["get", "maritime"], 1],
+ ["==", ["get", "disputed"], 1]
+ ],
+ "paint": {
+ "line-color": "hsl(248,1%,41%)",
+ "line-dasharray": [1, 2],
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 1, 5, 1.2, 12, 3]
+ }
+ },
+ {
+ "id": "waterway_line_label",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "symbol-spacing": 350,
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 5,
+ "text-size": 14
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "water_name_point_label",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "water_name",
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["MultiPoint", "Point"],
+ true,
+ false
+ ],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 5,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 0, 10, 8, 14]
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "water_name_line_label",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "water_name",
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "symbol-spacing": 350,
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 5,
+ "text-size": 14
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "poi_r20",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "minzoom": 17,
+ "filter": [
+ "all",
+ ["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
+ [">=", ["get", "rank"], 20]
+ ],
+ "layout": {
+ "icon-image": [
+ "match",
+ ["get", "subclass"],
+ ["florist", "furniture"],
+ ["get", "subclass"],
+ ["get", "class"]
+ ],
+ "text-anchor": "top",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-size": 12
+ },
+ "paint": {
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#3E3E3E",
+ "text-halo-width": 1,
+ "text-color": "#ffffff"
+ }
+ },
+ {
+ "id": "poi_r7",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
+ [">=", ["get", "rank"], 7],
+ ["<", ["get", "rank"], 20]
+ ],
+ "layout": {
+ "icon-image": [
+ "match",
+ ["get", "subclass"],
+ ["florist", "furniture"],
+ ["get", "subclass"],
+ ["get", "class"]
+ ],
+ "text-anchor": "top",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "poi_r1",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
+ [">=", ["get", "rank"], 1],
+ ["<", ["get", "rank"], 7]
+ ],
+ "layout": {
+ "icon-image": [
+ "match",
+ ["get", "subclass"],
+ ["florist", "furniture"],
+ ["get", "subclass"],
+ ["get", "class"]
+ ],
+ "text-anchor": "top",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "highway-name-major",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["get", "class"],
+ ["primary", "secondary", "tertiary", "trunk"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "map",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 14, 13]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 0.5,
+ "text-halo-width": 1,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "poi_transit",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "filter": [
+ "match",
+ ["get", "class"],
+ ["airport", "bus", "rail"],
+ true,
+ false
+ ],
+ "layout": {
+ "icon-image": ["to-string", ["get", "class"]],
+ "icon-size": 0.7,
+ "text-anchor": "left",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-max-width": 9,
+ "text-offset": [0.9, 0],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-blur": 0.5,
+ "text-halo-width": 1,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "highway-name-path",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 15.5,
+ "filter": ["==", ["get", "class"], "path"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "map",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 14, 13]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-width": 0.5,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "highway-name-minor",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["match", ["get", "class"], ["minor", "service", "track"], true, false]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "map",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 14, 13]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 0.5,
+ "text-halo-width": 1,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "highway-shield-us-interstate",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 7,
+ "filter": [
+ "all",
+ ["<=", ["get", "ref_length"], 6],
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["match", ["get", "network"], ["us-interstate"], true, false]
+ ],
+ "layout": {
+ "icon-image": [
+ "concat",
+ ["get", "network"],
+ "_",
+ ["get", "ref_length"]
+ ],
+ "icon-rotation-alignment": "viewport",
+ "icon-size": 1,
+ "symbol-placement": ["step", ["zoom"], "point", 7, "line", 8, "line"],
+ "symbol-spacing": 200,
+ "text-field": ["to-string", ["get", "ref"]],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "viewport",
+ "text-size": 10
+ },
+ "paint": {"text-color": "#000"}
+ },
+ {
+ "id": "airport",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "aerodrome_label",
+ "minzoom": 10,
+ "filter": ["all", ["has", "iata"]],
+ "layout": {
+ "icon-image": "airport_11",
+ "icon-size": 1,
+ "text-anchor": "top",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-optional": true,
+ "text-padding": 2,
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "label_other",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "class"],
+ ["city", "continent", "country", "state", "town", "village"],
+ false,
+ true
+ ],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.1,
+ "text-max-width": 9,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 8, 9, 12, 10],
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "label_village",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 9,
+ "filter": ["==", ["get", "class"], "village"],
+ "layout": {
+ "icon-allow-overlap": true,
+ "icon-image": ["step", ["zoom"], "circle_11_black", 10, ""],
+ "icon-optional": false,
+ "icon-size": 0.2,
+ "text-anchor": "bottom",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 8,
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 7,
+ 10,
+ 11,
+ 12
+ ]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "label_town",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 6,
+ "filter": ["==", ["get", "class"], "town"],
+ "layout": {
+ "icon-allow-overlap": true,
+ "icon-image": ["step", ["zoom"], "circle_11_black", 10, ""],
+ "icon-optional": false,
+ "icon-size": 0.2,
+ "text-anchor": "bottom",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 8,
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 7,
+ 12,
+ 11,
+ 14
+ ]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "label_state",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 5,
+ "maxzoom": 8,
+ "filter": ["==", ["get", "class"], "state"],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 9,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 5, 10, 8, 14],
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "label_city",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 3,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "city"],
+ ["!=", ["get", "capital"], 2]
+ ],
+ "layout": {
+ "icon-allow-overlap": true,
+ "icon-image": ["step", ["zoom"], "circle_11_black", 9, ""],
+ "icon-optional": false,
+ "icon-size": 0.4,
+ "text-anchor": "bottom",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 8,
+ "text-offset": [0, -0.1],
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 4,
+ 11,
+ 7,
+ 13,
+ 11,
+ 18
+ ]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-width": 1,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "label_city_capital",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 3,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "city"],
+ ["==", ["get", "capital"], 2]
+ ],
+ "layout": {
+ "icon-allow-overlap": true,
+ "icon-image": ["step", ["zoom"], "circle_11_black", 9, ""],
+ "icon-optional": false,
+ "icon-size": 0.5,
+ "text-anchor": "bottom",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 8,
+ "text-offset": [0, -0.2],
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 4,
+ 12,
+ 7,
+ 14,
+ 11,
+ 20
+ ]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-width": 1,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "label_country_3",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 2,
+ "maxzoom": 9,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "country"],
+ [">=", ["get", "rank"], 3]
+ ],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 6.25,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 3, 9, 7, 17]
+ },
+ "paint": {
+ "text-halo-blur": 1,
+ "text-halo-width": 1,
+ "text-color": "#fff",
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "label_country_2",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 9,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "country"],
+ ["==", ["get", "rank"], 2]
+ ],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 6.25,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 2, 9, 5, 17]
+ },
+ "paint": {
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1,
+ "text-color": "#fff"
+ }
+ },
+ {
+ "id": "label_country_1",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 9,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "country"],
+ ["==", ["get", "rank"], 1]
+ ],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 6.25,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 1, 9, 4, 17]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ }
+ ],
+ "id": "di9wvc0"
+}
\ No newline at end of file
diff --git a/ohmg/frontend/static/aerialiberty/style-shield-and-name.json b/ohmg/frontend/static/aerialiberty/style-shield-and-name.json
new file mode 100644
index 00000000..2d44de46
--- /dev/null
+++ b/ohmg/frontend/static/aerialiberty/style-shield-and-name.json
@@ -0,0 +1,93 @@
+{
+ "version": 8,
+ "sources": {
+ "openmaptiles": {
+ "type": "vector",
+ "url": "https://tiles.openfreemap.org/planet"
+ }
+ },
+ "sprite": "https://tiles.openfreemap.org/sprites/ofm_f384/ofm",
+ "glyphs": "https://tiles.openfreemap.org/fonts/{fontstack}/{range}.pbf",
+ "layers": [
+ {
+ "id": "background",
+ "type": "background",
+ "paint": {
+ "background-color": "rgba(13, 81, 30, 1)",
+ "background-opacity": 1
+ }
+ },
+ {
+ "id": "highway-shield-non-us",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ ["<=", ["get", "ref_length"], 6],
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ [
+ "match",
+ ["get", "network"],
+ ["us-highway", "us-interstate", "us-state"],
+ false,
+ true
+ ]
+ ],
+ "layout": {
+ "icon-image": ["concat", "road_", ["get", "ref_length"]],
+ "icon-rotation-alignment": "viewport",
+ "icon-size": 1,
+ "symbol-placement": ["step", ["zoom"], "point", 11, "line"],
+ "symbol-spacing": 200,
+ "text-field": ["to-string", ["get", "ref"]],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "viewport",
+ "text-size": 10,
+ "visibility": "visible"
+ },
+ "paint": {"text-color": "#F00"}
+ },
+ {
+ "id": "highway-name-major",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "class"],
+ ["primary", "secondary", "tertiary", "trunk"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "map",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 14, 13],
+ "visibility": "visible"
+ },
+ "paint": {
+ "text-color": "#00F",
+ "text-halo-blur": 0.5,
+ "text-halo-width": 1,
+ "text-halo-color": "#3e3e3e"
+ }
+ }
+ ],
+ "id": "di9wvc0-shield-and-name"
+}
\ No newline at end of file
diff --git a/ohmg/frontend/static/aerialiberty/style-shield-only.json b/ohmg/frontend/static/aerialiberty/style-shield-only.json
new file mode 100644
index 00000000..98ad95c8
--- /dev/null
+++ b/ohmg/frontend/static/aerialiberty/style-shield-only.json
@@ -0,0 +1,52 @@
+{
+ "version": 8,
+ "metadata": {"maputnik:renderer": "mlgljs"},
+ "sources": {
+ "openmaptiles": {
+ "type": "vector",
+ "url": "https://tiles.openfreemap.org/planet"
+ }
+ },
+ "sprite": "https://tiles.openfreemap.org/sprites/ofm_f384/ofm",
+ "glyphs": "https://tiles.openfreemap.org/fonts/{fontstack}/{range}.pbf",
+ "layers": [
+ {
+ "id": "highway-shield-non-us",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ ["<=", ["get", "ref_length"], 6],
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ [
+ "match",
+ ["get", "network"],
+ ["us-highway", "us-interstate", "us-state"],
+ false,
+ true
+ ]
+ ],
+ "layout": {
+ "icon-image": ["concat", "road_", ["get", "ref_length"]],
+ "icon-rotation-alignment": "viewport",
+ "icon-size": 1,
+ "symbol-placement": ["step", ["zoom"], "point", 11, "line"],
+ "symbol-spacing": 200,
+ "text-field": ["to-string", ["get", "ref"]],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "viewport",
+ "text-size": 10
+ },
+ "paint": {"text-color": "#000", "text-halo-color": "#3e3e3e"}
+ }
+ ],
+ "id": "di9wvc0-shieldlayer"
+}
\ No newline at end of file
diff --git a/ohmg/frontend/static/aerialiberty/style.json b/ohmg/frontend/static/aerialiberty/style.json
new file mode 100644
index 00000000..eab437bf
--- /dev/null
+++ b/ohmg/frontend/static/aerialiberty/style.json
@@ -0,0 +1,2367 @@
+{
+ "version": 8,
+ "metadata": {"maputnik:renderer": "mlgljs"},
+ "sources": {
+ "openmaptiles": {
+ "type": "vector",
+ "url": "https://tiles.openfreemap.org/planet"
+ }
+ },
+ "sprite": "https://tiles.openfreemap.org/sprites/ofm_f384/ofm",
+ "glyphs": "https://tiles.openfreemap.org/fonts/{fontstack}/{range}.pbf",
+ "layers": [
+ {
+ "id": "waterway_tunnel",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": ["==", ["get", "brunnel"], "tunnel"],
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-dasharray": [3, 3],
+ "line-gap-width": ["interpolate", ["linear"], ["zoom"], 12, 0, 20, 6],
+ "line-opacity": 1,
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 8,
+ 1,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "waterway_other",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "filter": [
+ "all",
+ ["!=", ["get", "class"], "river"],
+ ["!=", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-cap": "round"},
+ "paint": {
+ "line-color": "#a0c8f0",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.3],
+ ["zoom"],
+ 13,
+ 0.5,
+ 20,
+ 6
+ ]
+ }
+ },
+ {
+ "id": "aeroway_taxiway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "aeroway",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "class"], "taxiway"]
+ ],
+ "paint": {
+ "line-color": "#f0ede9",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 11,
+ 0.5,
+ 20,
+ 6
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-dasharray": [0.5, 0.25],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "tunnel_service_track_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-dasharray": [0.5, 0.25],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15,
+ 1,
+ 16,
+ 4,
+ 20,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "tunnel_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "tunnel_street_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 12, 0, 12.5, 1],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 0.5,
+ 13,
+ 1,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "tunnel_secondary_tertiary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 8,
+ 1.5,
+ 20,
+ 17
+ ]
+ }
+ },
+ {
+ "id": "tunnel_trunk_primary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-dasharray": [0.5, 0.25],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ]
+ }
+ },
+ {
+ "id": "tunnel_path_pedestrian",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["path", "pedestrian"], true, false]
+ ],
+ "paint": {
+ "line-color": "hsl(0,0%,100%)",
+ "line-dasharray": [1, 0.75],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 14,
+ 0.5,
+ 20,
+ 10
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_service_track",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15.5,
+ 0,
+ 16,
+ 2,
+ 20,
+ 7.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff4c6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_minor",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["minor"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 13.5,
+ 0,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "tunnel_secondary_tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff4c6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 6.5,
+ 0,
+ 7,
+ 0.5,
+ 20,
+ 10
+ ]
+ }
+ },
+ {
+ "id": "tunnel_trunk_primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff4c6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "tunnel_motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "tunnel"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#ffdaa6",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "tunnel_major_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["rail"], true, false]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "tunnel_major_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["==", ["get", "class"], "rail"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "tunnel_transit_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["match", ["get", "class"], ["transit"], true, false]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "tunnel_transit_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "tunnel"],
+ ["==", ["get", "class"], "transit"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "road_area_pattern",
+ "type": "fill",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["MultiPolygon", "Polygon"],
+ true,
+ false
+ ],
+ "paint": {
+ "fill-pattern": "pedestrian_polygon",
+ "fill-antialias": ["literal", true],
+ "fill-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_motorway_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 12,
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_secondary_tertiary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false],
+ ["!=", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 8,
+ 1.5,
+ 20,
+ 17
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_trunk_primary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ],
+ "line-opacity": {"stops": [[1, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_motorway_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 5,
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_motorway_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 12,
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_secondary_tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 6.5,
+ 0,
+ 8,
+ 0.5,
+ 20,
+ 13
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_trunk_primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ],
+ "line-opacity": {"stops": [[1, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "minzoom": 5,
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": [
+ "interpolate",
+ ["linear"],
+ ["zoom"],
+ 5,
+ "hsl(26,87%,62%)",
+ 6,
+ "#fc8"
+ ],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "road_major_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "rail"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "road_major_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "rail"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "road_transit_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "transit"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "road_transit_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
+ ["==", ["get", "class"], "transit"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "bridge_motorway_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 0
+ ],
+ "line-opacity": {"stops": [[1, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_service_track_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#cfcdca",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15,
+ 1,
+ 16,
+ 4,
+ 20,
+ 11
+ ]
+ }
+ },
+ {
+ "id": "bridge_link_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "link"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 1,
+ 13,
+ 3,
+ 14,
+ 4,
+ 20,
+ 15
+ ]
+ }
+ },
+ {
+ "id": "bridge_street_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["street", "street_limited"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "hsl(36,6%,74%)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 12, 0, 12.5, 1],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12,
+ 0.5,
+ 13,
+ 1,
+ 14,
+ 4,
+ 20,
+ 25
+ ]
+ }
+ },
+ {
+ "id": "bridge_path_pedestrian_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["path", "pedestrian"], true, false]
+ ],
+ "paint": {
+ "line-color": "hsl(35,6%,80%)",
+ "line-dasharray": [1, 0],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 14,
+ 1.5,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "bridge_secondary_tertiary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 8,
+ 1.5,
+ 20,
+ 17
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_trunk_primary_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_motorway_casing",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round", "visibility": "visible"},
+ "paint": {
+ "line-color": "#e9ac77",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0.4,
+ 6,
+ 0.7,
+ 7,
+ 1.75,
+ 20,
+ 22
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_path_pedestrian",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["path", "pedestrian"], true, false]
+ ],
+ "layout": {"visibility": "visible"},
+ "paint": {
+ "line-color": "hsl(0,0%,100%)",
+ "line-dasharray": [1, 0.3],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 14,
+ 0.5,
+ 20,
+ 10
+ ]
+ }
+ },
+ {
+ "id": "bridge_motorway_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["==", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_service_track",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["service", "track"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 15.5,
+ 0,
+ 16,
+ 2,
+ 20,
+ 7.5
+ ]
+ }
+ },
+ {
+ "id": "bridge_link",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "link"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 12.5,
+ 0,
+ 13,
+ 1.5,
+ 14,
+ 2.5,
+ 20,
+ 11.5
+ ]
+ }
+ },
+ {
+ "id": "bridge_street",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["minor"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fff",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 13.5,
+ 0,
+ 14,
+ 2.5,
+ 20,
+ 18
+ ]
+ }
+ },
+ {
+ "id": "bridge_secondary_tertiary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["secondary", "tertiary"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 6.5,
+ 0,
+ 7,
+ 0.5,
+ 20,
+ 10
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_trunk_primary",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "brunnel"], "bridge"],
+ ["match", ["get", "class"], ["primary", "trunk"], true, false]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fea",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ],
+ "line-opacity": {"stops": [[1, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_motorway",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "motorway"],
+ ["!=", ["get", "ramp"], 1],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "#fc8",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 5,
+ 0,
+ 7,
+ 1,
+ 20,
+ 18
+ ],
+ "line-opacity": {"stops": [[6, 1], [15, 0]]}
+ }
+ },
+ {
+ "id": "bridge_major_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "rail"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "bridge_major_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "rail"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "bridge_transit_rail",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "transit"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14,
+ 0.4,
+ 15,
+ 0.75,
+ 20,
+ 2
+ ]
+ }
+ },
+ {
+ "id": "bridge_transit_rail_hatching",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "transportation",
+ "maxzoom": 24,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "transit"],
+ ["==", ["get", "brunnel"], "bridge"]
+ ],
+ "paint": {
+ "line-color": "#bbb",
+ "line-dasharray": [0.2, 8],
+ "line-width": [
+ "interpolate",
+ ["exponential", 1.4],
+ ["zoom"],
+ 14.5,
+ 0,
+ 15,
+ 3,
+ 20,
+ 8
+ ]
+ }
+ },
+ {
+ "id": "boundary_3",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "minzoom": 5,
+ "filter": [
+ "all",
+ [">=", ["get", "admin_level"], 3],
+ ["<=", ["get", "admin_level"], 6],
+ ["!=", ["get", "maritime"], 1],
+ ["!=", ["get", "disputed"], 1],
+ ["!", ["has", "claimed_by"]]
+ ],
+ "paint": {
+ "line-color": "hsl(0,0%,70%)",
+ "line-dasharray": [1, 1],
+ "line-width": ["interpolate", ["linear", 1], ["zoom"], 7, 1, 11, 2]
+ }
+ },
+ {
+ "id": "boundary_2",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "filter": [
+ "all",
+ ["==", ["get", "admin_level"], 2],
+ ["!=", ["get", "maritime"], 1],
+ ["!=", ["get", "disputed"], 1],
+ ["!", ["has", "claimed_by"]]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-color": "hsl(248,1%,41%)",
+ "line-opacity": ["interpolate", ["linear"], ["zoom"], 0, 0.4, 4, 1],
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 1, 5, 1.2, 12, 3]
+ }
+ },
+ {
+ "id": "boundary_disputed",
+ "type": "line",
+ "source": "openmaptiles",
+ "source-layer": "boundary",
+ "filter": [
+ "all",
+ ["!=", ["get", "maritime"], 1],
+ ["==", ["get", "disputed"], 1]
+ ],
+ "paint": {
+ "line-color": "hsl(248,1%,41%)",
+ "line-dasharray": [1, 2],
+ "line-width": ["interpolate", ["linear"], ["zoom"], 3, 1, 5, 1.2, 12, 3]
+ }
+ },
+ {
+ "id": "waterway_line_label",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "waterway",
+ "minzoom": 10,
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "symbol-spacing": 350,
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 5,
+ "text-size": 14
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "water_name_point_label",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "water_name",
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["MultiPoint", "Point"],
+ true,
+ false
+ ],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 5,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 0, 10, 8, 14]
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "water_name_line_label",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "water_name",
+ "filter": [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "symbol-spacing": 350,
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 5,
+ "text-size": 14
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1.5
+ }
+ },
+ {
+ "id": "poi_r20",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "minzoom": 17,
+ "filter": [
+ "all",
+ ["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
+ [">=", ["get", "rank"], 20]
+ ],
+ "layout": {
+ "icon-image": [
+ "match",
+ ["get", "subclass"],
+ ["florist", "furniture"],
+ ["get", "subclass"],
+ ["get", "class"]
+ ],
+ "text-anchor": "top",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-size": 12
+ },
+ "paint": {
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#3E3E3E",
+ "text-halo-width": 1,
+ "text-color": "#ffffff"
+ }
+ },
+ {
+ "id": "poi_r7",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
+ [">=", ["get", "rank"], 7],
+ ["<", ["get", "rank"], 20]
+ ],
+ "layout": {
+ "icon-image": [
+ "match",
+ ["get", "subclass"],
+ ["florist", "furniture"],
+ ["get", "subclass"],
+ ["get", "class"]
+ ],
+ "text-anchor": "top",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "poi_r1",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
+ [">=", ["get", "rank"], 1],
+ ["<", ["get", "rank"], 7]
+ ],
+ "layout": {
+ "icon-image": [
+ "match",
+ ["get", "subclass"],
+ ["florist", "furniture"],
+ ["get", "subclass"],
+ ["get", "class"]
+ ],
+ "text-anchor": "top",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+
+ {
+ "id": "highway-name-major",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 12.2,
+ "filter": [
+ "match",
+ ["get", "class"],
+ ["primary", "secondary", "tertiary", "trunk"],
+ true,
+ false
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "map",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 14, 13]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 0.5,
+ "text-halo-width": 1,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "poi_transit",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "poi",
+ "filter": [
+ "match",
+ ["get", "class"],
+ ["airport", "bus", "rail"],
+ true,
+ false
+ ],
+ "layout": {
+ "icon-image": ["to-string", ["get", "class"]],
+ "icon-size": 0.7,
+ "text-anchor": "left",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-max-width": 9,
+ "text-offset": [0.9, 0],
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#ffffff",
+ "text-halo-blur": 0.5,
+ "text-halo-width": 1,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "highway-name-path",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 15.5,
+ "filter": ["==", ["get", "class"], "path"],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "map",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 14, 13]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-width": 0.5,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "highway-name-minor",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["match", ["get", "class"], ["minor", "service", "track"], true, false]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "map",
+ "text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 14, 13]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 0.5,
+ "text-halo-width": 1,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "highway-shield-non-us",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 8,
+ "filter": [
+ "all",
+ ["<=", ["get", "ref_length"], 6],
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ [
+ "match",
+ ["get", "network"],
+ ["us-highway", "us-interstate", "us-state"],
+ false,
+ true
+ ]
+ ],
+ "layout": {
+ "icon-image": ["concat", "road_", ["get", "ref_length"]],
+ "icon-rotation-alignment": "viewport",
+ "icon-size": 1,
+ "symbol-placement": ["step", ["zoom"], "point", 11, "line"],
+ "symbol-spacing": 200,
+ "text-field": ["to-string", ["get", "ref"]],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "viewport",
+ "text-size": 10
+ },
+ "paint": {"text-color": "#000", "text-halo-color": "#3e3e3e"}
+ },
+ {
+ "id": "highway-shield-us-interstate",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "transportation_name",
+ "minzoom": 7,
+ "filter": [
+ "all",
+ ["<=", ["get", "ref_length"], 6],
+ [
+ "match",
+ ["geometry-type"],
+ ["LineString", "MultiLineString"],
+ true,
+ false
+ ],
+ ["match", ["get", "network"], ["us-interstate"], true, false]
+ ],
+ "layout": {
+ "icon-image": [
+ "concat",
+ ["get", "network"],
+ "_",
+ ["get", "ref_length"]
+ ],
+ "icon-rotation-alignment": "viewport",
+ "icon-size": 1,
+ "symbol-placement": ["step", ["zoom"], "point", 7, "line", 8, "line"],
+ "symbol-spacing": 200,
+ "text-field": ["to-string", ["get", "ref"]],
+ "text-font": ["Noto Sans Regular"],
+ "text-rotation-alignment": "viewport",
+ "text-size": 10
+ },
+ "paint": {"text-color": "#000"}
+ },
+ {
+ "id": "airport",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "aerodrome_label",
+ "minzoom": 10,
+ "filter": ["all", ["has", "iata"]],
+ "layout": {
+ "icon-image": "airport_11",
+ "icon-size": 1,
+ "text-anchor": "top",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 9,
+ "text-offset": [0, 0.6],
+ "text-optional": true,
+ "text-padding": 2,
+ "text-size": 12
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 0.5,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "label_other",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 8,
+ "filter": [
+ "match",
+ ["get", "class"],
+ ["city", "continent", "country", "state", "town", "village"],
+ false,
+ true
+ ],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.1,
+ "text-max-width": 9,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 8, 9, 12, 10],
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "label_village",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 9,
+ "filter": ["==", ["get", "class"], "village"],
+ "layout": {
+ "icon-allow-overlap": true,
+ "icon-image": ["step", ["zoom"], "circle_11_black", 10, ""],
+ "icon-optional": false,
+ "icon-size": 0.2,
+ "text-anchor": "bottom",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 8,
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 7,
+ 10,
+ 11,
+ 12
+ ]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "label_town",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 6,
+ "filter": ["==", ["get", "class"], "town"],
+ "layout": {
+ "icon-allow-overlap": true,
+ "icon-image": ["step", ["zoom"], "circle_11_black", 10, ""],
+ "icon-optional": false,
+ "icon-size": 0.2,
+ "text-anchor": "bottom",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 8,
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 7,
+ 12,
+ 11,
+ 14
+ ]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "label_state",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 5,
+ "maxzoom": 8,
+ "filter": ["==", ["get", "class"], "state"],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Italic"],
+ "text-letter-spacing": 0.2,
+ "text-max-width": 9,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 5, 10, 8, 14],
+ "text-transform": "uppercase"
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "label_city",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 3,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "city"],
+ ["!=", ["get", "capital"], 2]
+ ],
+ "layout": {
+ "icon-allow-overlap": true,
+ "icon-image": ["step", ["zoom"], "circle_11_black", 9, ""],
+ "icon-optional": false,
+ "icon-size": 0.4,
+ "text-anchor": "bottom",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Regular"],
+ "text-max-width": 8,
+ "text-offset": [0, -0.1],
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 4,
+ 11,
+ 7,
+ 13,
+ 11,
+ 18
+ ]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-width": 1,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "label_city_capital",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 3,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "city"],
+ ["==", ["get", "capital"], 2]
+ ],
+ "layout": {
+ "icon-allow-overlap": true,
+ "icon-image": ["step", ["zoom"], "circle_11_black", 9, ""],
+ "icon-optional": false,
+ "icon-size": 0.5,
+ "text-anchor": "bottom",
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 8,
+ "text-offset": [0, -0.2],
+ "text-size": [
+ "interpolate",
+ ["exponential", 1.2],
+ ["zoom"],
+ 4,
+ 12,
+ 7,
+ 14,
+ 11,
+ 20
+ ]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-width": 1,
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "label_country_3",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "minzoom": 2,
+ "maxzoom": 9,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "country"],
+ [">=", ["get", "rank"], 3]
+ ],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 6.25,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 3, 9, 7, 17]
+ },
+ "paint": {
+ "text-halo-blur": 1,
+ "text-halo-width": 1,
+ "text-color": "#fff",
+ "text-halo-color": "#3e3e3e"
+ }
+ },
+ {
+ "id": "label_country_2",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 9,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "country"],
+ ["==", ["get", "rank"], 2]
+ ],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 6.25,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 2, 9, 5, 17]
+ },
+ "paint": {
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1,
+ "text-color": "#fff"
+ }
+ },
+ {
+ "id": "label_country_1",
+ "type": "symbol",
+ "source": "openmaptiles",
+ "source-layer": "place",
+ "maxzoom": 9,
+ "filter": [
+ "all",
+ ["==", ["get", "class"], "country"],
+ ["==", ["get", "rank"], 1]
+ ],
+ "layout": {
+ "text-field": [
+ "case",
+ ["has", "name:nonlatin"],
+ ["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
+ ["coalesce", ["get", "name_en"], ["get", "name"]]
+ ],
+ "text-font": ["Noto Sans Bold"],
+ "text-max-width": 6.25,
+ "text-size": ["interpolate", ["linear"], ["zoom"], 1, 9, 4, 17]
+ },
+ "paint": {
+ "text-color": "#fff",
+ "text-halo-blur": 1,
+ "text-halo-color": "#3e3e3e",
+ "text-halo-width": 1
+ }
+ }
+ ],
+ "id": "di9wvc0"
+}
\ No newline at end of file
diff --git a/ohmg/frontend/svelte_components/src/lib/utils.js b/ohmg/frontend/svelte_components/src/lib/utils.js
index c116b523..81591c76 100644
--- a/ohmg/frontend/svelte_components/src/lib/utils.js
+++ b/ohmg/frontend/svelte_components/src/lib/utils.js
@@ -107,30 +107,29 @@ export function copyToClipboard(elementId) {
alert('Copied the text: ' + copyText.value);
}
-export function makeSatelliteLayer(apiKey) {
- return new TileLayer({
+export function makeOFMLayer() {
+ const openfreemap = new LayerGroup();
+ apply(openfreemap, 'https://tiles.openfreemap.org/styles/liberty');
+ return openfreemap;
+}
+
+export function makeOFMSatelliteLayer(apiKey) {
+
+ // first make the XYZ tile layer with satellite imagery in it (mapbox raster tiles)
+ const mapboxSatellite = new TileLayer({
source: new XYZ({
- url: 'https://api.mapbox.com/styles/v1/mapbox/satellite-streets-v10/tiles/{z}/{x}/{y}?access_token=' + apiKey,
+ url: 'https://api.mapbox.com/v4/mapbox.satellite/{z}/{x}/{y}.jpg?access_token=' + apiKey,
tileSize: 512,
attributions: [
`© Mapbox © OpenStreetMap Improve this map`,
],
}),
- });
-}
-
-export function makeOSMLayer() {
- return new TileLayer({
- source: new OSM({
- attributions: [`© OpenStreetMap contributors.`],
- }),
- });
-}
+ })
-export function makeOFMLayer() {
- const openfreemap = new LayerGroup();
- apply(openfreemap, 'https://tiles.openfreemap.org/styles/liberty');
- return openfreemap;
+ // now create a layer group with this layer in it
+ const openfreemap = new LayerGroup({ layers: [mapboxSatellite]});
+ apply(openfreemap, "/static/aerialiberty/style-no-non-us-shield.json")
+ return openfreemap
}
export function makeBasemaps(mapboxKey) {
@@ -142,7 +141,7 @@ export function makeBasemaps(mapboxKey) {
},
{
id: 'satellite',
- layer: makeSatelliteLayer(mapboxKey),
+ layer: makeOFMSatelliteLayer(mapboxKey),
label: 'Streets+Satellite',
},
];
@@ -262,10 +261,3 @@ export function removeRotateCenter(layer) {
layer.setVisible(false);
}
}
-
-export function setMapExtent(map, extent4326) {
- if (map) {
- const extent3857 = transformExtent(extent4326, 'EPSG:4326', 'EPSG:3857');
- map.getView().fit(extent3857);
- }
-}