From 1c73e283bb39123a334edbc75bc6e14dd469ec75 Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Mon, 6 Mar 2023 11:30:17 +0100 Subject: [PATCH 01/12] Custom styles implementation frame --- .../assets/style-mapbox-outdoors-v12.json | 13549 ++++++++++++++++ .../src/main/assets/style-microg-normal.json | 2394 +++ .../main/assets/style-microg-satellite.json | 2361 +++ .../org/microg/gms/maps/mapbox/GoogleMap.kt | 20 +- .../org/microg/gms/maps/mapbox/Styles.kt | 76 + 5 files changed, 18389 insertions(+), 11 deletions(-) create mode 100644 play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json create mode 100644 play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json create mode 100644 play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json create mode 100644 play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt diff --git a/play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json b/play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json new file mode 100644 index 000000000..4924428b8 --- /dev/null +++ b/play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json @@ -0,0 +1,13549 @@ +{ + "name": "Mapbox Outdoors", + "sprite": "mapbox://sprites/mapbox/outdoors-v12", + "glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf", + "center": [ + 9.1, + 42.2 + ], + "zoom": 7.5, + "fog": { + "range": [ + 1, + 20 + ], + "color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 4, + "hsl(200, 100%, 100%)", + 6, + "hsl(200, 50%, 90%)" + ], + "high-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 4, + "hsl(200, 100%, 60%)", + 6, + "hsl(310, 60%, 80%)" + ], + "space-color": [ + "interpolate", + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], + 4, + "hsl(205, 10%, 10%)", + 6, + "hsl(205, 60%, 50%)" + ], + "horizon-blend": [ + "interpolate", + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], + 4, + 0.01, + 6, + 0.1 + ], + "star-intensity": [ + "interpolate", + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], + 4, + 0.1, + 6, + 0 + ] + }, + "projection": { + "name": "globe" + }, + "visibility": "public", + "version": 8, + "layers": [ + { + "id": "land", + "type": "background", + "layout": {}, + "minzoom": 0, + "paint": { + "background-color": "hsl(60, 20%, 85%)" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "landcover", + "type": "fill", + "source": "composite", + "source-layer": "landcover", + "minzoom": 0, + "maxzoom": 12, + "layout": {}, + "paint": { + "fill-color": [ + "match", + [ + "get", + "class" + ], + "wood", + "hsla(103, 50%, 60%, 0.8)", + "scrub", + "hsla(98, 47%, 68%, 0.6)", + "crop", + "hsla(68, 55%, 70%, 0.6)", + "grass", + "hsla(98, 50%, 74%, 0.6)", + "snow", + "hsl(205, 45%, 95%)", + "hsl(98, 48%, 67%)" + ], + "fill-opacity": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 8, + 0.8, + 12, + 0 + ], + "fill-antialias": false + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "national-park", + "type": "fill", + "source": "composite", + "source-layer": "landuse_overlay", + "minzoom": 5, + "filter": [ + "==", + [ + "get", + "class" + ], + "national_park" + ], + "layout": {}, + "paint": { + "fill-color": "hsl(98, 38%, 68%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 5, + 0, + 6, + 0.6, + 12, + 0.2 + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "national-park_tint-band", + "type": "line", + "source": "composite", + "source-layer": "landuse_overlay", + "minzoom": 9, + "filter": [ + "==", + [ + "get", + "class" + ], + "national_park" + ], + "layout": {}, + "paint": { + "line-color": "hsl(98, 38%, 68%)", + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 9, + 1, + 14, + 8 + ], + "line-blur": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 9, + 1, + 14, + 8 + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "landuse", + "type": "fill", + "source": "composite", + "source-layer": "landuse", + "minzoom": 5, + "filter": [ + "all", + [ + ">=", + [ + "to-number", + [ + "get", + "sizerank" + ] + ], + 0 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "agriculture", + "wood", + "grass", + "scrub", + "glacier", + "pitch", + "sand" + ], + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + "residential", + [ + "step", + [ + "zoom" + ], + true, + 10, + false + ], + [ + "park", + "airport" + ], + [ + "step", + [ + "zoom" + ], + false, + 8, + [ + "case", + [ + "==", + [ + "get", + "sizerank" + ], + 1 + ], + true, + false + ], + 10, + true + ], + [ + "facility", + "industrial" + ], + [ + "step", + [ + "zoom" + ], + false, + 12, + true + ], + "rock", + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + "cemetery", + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + "school", + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + "hospital", + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + "commercial_area", + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + false + ], + [ + "<=", + [ + "-", + [ + "to-number", + [ + "get", + "sizerank" + ] + ], + [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0, + 18, + 14 + ] + ], + 14 + ] + ], + "layout": {}, + "paint": { + "fill-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + [ + "match", + [ + "get", + "class" + ], + "wood", + "hsla(103, 50%, 60%, 0.8)", + "scrub", + "hsla(98, 47%, 68%, 0.6)", + "agriculture", + "hsla(98, 50%, 74%, 0.6)", + "park", + [ + "match", + [ + "get", + "type" + ], + [ + "garden", + "playground", + "zoo" + ], + "hsl(98, 38%, 68%)", + "hsl(98, 55%, 70%)" + ], + "grass", + "hsla(98, 50%, 74%, 0.6)", + "airport", + "hsl(230, 40%, 82%)", + "cemetery", + "hsl(98, 45%, 75%)", + "glacier", + "hsl(205, 45%, 95%)", + "hospital", + "hsl(20, 45%, 82%)", + "pitch", + "hsl(88, 65%, 75%)", + "sand", + "hsl(69, 60%, 72%)", + "rock", + "hsl(60, 0%, 85%)", + "school", + "hsl(40, 45%, 78%)", + "commercial_area", + "hsl(55, 45%, 85%)", + "residential", + "hsl(60, 7%, 87%)", + [ + "facility", + "industrial" + ], + "hsl(230, 20%, 85%)", + "hsl(60, 22%, 72%)" + ], + 16, + [ + "match", + [ + "get", + "class" + ], + "wood", + "hsla(103, 50%, 60%, 0.8)", + "scrub", + "hsla(98, 47%, 68%, 0.6)", + "agriculture", + "hsla(98, 50%, 74%, 0.6)", + "park", + [ + "match", + [ + "get", + "type" + ], + [ + "garden", + "playground", + "zoo" + ], + "hsl(98, 38%, 68%)", + "hsl(98, 55%, 70%)" + ], + "grass", + "hsla(98, 50%, 74%, 0.6)", + "airport", + "hsl(230, 40%, 82%)", + "cemetery", + "hsl(98, 45%, 75%)", + "glacier", + "hsl(205, 45%, 95%)", + "hospital", + "hsl(20, 45%, 82%)", + "pitch", + "hsl(88, 65%, 75%)", + "sand", + "hsl(69, 60%, 72%)", + "rock", + "hsla(60, 0%, 85%, 0.5)", + "school", + "hsl(40, 45%, 78%)", + "commercial_area", + "hsla(55, 45%, 85%, 0.5)", + [ + "facility", + "industrial" + ], + "hsl(230, 20%, 85%)", + "hsl(60, 22%, 72%)" + ] + ], + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 8, + [ + "match", + [ + "get", + "class" + ], + "residential", + 0.8, + 0.2 + ], + 10, + [ + "match", + [ + "get", + "class" + ], + "residential", + 0, + 1 + ] + ], + "fill-antialias": false + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "pitch-outline", + "type": "line", + "source": "composite", + "source-layer": "landuse", + "minzoom": 15, + "filter": [ + "==", + [ + "get", + "class" + ], + "pitch" + ], + "layout": {}, + "paint": { + "line-color": "hsl(88, 60%, 65%)" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "waterway-shadow", + "type": "line", + "source": "composite", + "source-layer": "waterway", + "minzoom": 10, + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 11, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 11, + "round" + ] + }, + "paint": { + "line-color": "hsl(224, 79%, 69%)", + "line-width": [ + "interpolate", + [ + "exponential", + 1.3 + ], + [ + "zoom" + ], + 9, + [ + "match", + [ + "get", + "class" + ], + [ + "canal", + "river" + ], + 0.1, + 0 + ], + 20, + [ + "match", + [ + "get", + "class" + ], + [ + "canal", + "river" + ], + 8, + 3 + ] + ], + "line-translate": [ + "interpolate", + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], + 7, + [ + "literal", + [ + 0, + 0 + ] + ], + 16, + [ + "literal", + [ + -1, + -1 + ] + ] + ], + "line-translate-anchor": "viewport", + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 8, + 0, + 8.5, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "water-shadow", + "type": "fill", + "source": "composite", + "source-layer": "water", + "minzoom": 10, + "layout": {}, + "paint": { + "fill-color": "hsl(224, 79%, 69%)", + "fill-translate": [ + "interpolate", + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], + 7, + [ + "literal", + [ + 0, + 0 + ] + ], + 16, + [ + "literal", + [ + -1, + -1 + ] + ] + ], + "fill-translate-anchor": "viewport" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "waterway", + "type": "line", + "source": "composite", + "source-layer": "waterway", + "minzoom": 8, + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 11, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 11, + "round" + ] + }, + "paint": { + "line-color": "hsl(205, 75%, 70%)", + "line-width": [ + "interpolate", + [ + "exponential", + 1.3 + ], + [ + "zoom" + ], + 9, + [ + "match", + [ + "get", + "class" + ], + [ + "canal", + "river" + ], + 0.1, + 0 + ], + 20, + [ + "match", + [ + "get", + "class" + ], + [ + "canal", + "river" + ], + 8, + 3 + ] + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 8, + 0, + 8.5, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "water", + "type": "fill", + "source": "composite", + "source-layer": "water", + "minzoom": 0, + "layout": {}, + "paint": { + "fill-color": "hsl(205, 75%, 70%)" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "water-depth", + "type": "fill", + "source": "composite", + "source-layer": "depth", + "minzoom": 0, + "maxzoom": 8, + "layout": {}, + "paint": { + "fill-antialias": false, + "fill-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 6, + [ + "interpolate", + [ + "linear" + ], + [ + "get", + "min_depth" + ], + 0, + "hsla(205, 75%, 70%, 0.35)", + 200, + "hsla(205, 75%, 63%, 0.35)", + 7000, + "hsla(205, 75%, 56%, 0.35)" + ], + 8, + [ + "interpolate", + [ + "linear" + ], + [ + "get", + "min_depth" + ], + 0, + "hsla(205, 75%, 70%, 0)", + 200, + "hsla(205, 75%, 63%, 0)", + 7000, + "hsla(205, 75%, 53%, 0)" + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "wetland", + "type": "fill", + "source": "composite", + "source-layer": "landuse_overlay", + "minzoom": 5, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "wetland", + "wetland_noveg" + ], + true, + false + ], + "paint": { + "fill-color": "hsl(194, 38%, 74%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + 0.25, + 10.5, + 0.15 + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "wetland-pattern", + "type": "fill", + "source": "composite", + "source-layer": "landuse_overlay", + "minzoom": 5, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "wetland", + "wetland_noveg" + ], + true, + false + ], + "paint": { + "fill-color": "hsl(194, 38%, 74%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + 0, + 10.5, + 1 + ], + "fill-pattern": "wetland", + "fill-translate-anchor": "viewport" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "hillshade", + "type": "fill", + "source": "composite", + "source-layer": "hillshade", + "filter": [ + "all", + [ + "step", + [ + "zoom" + ], + [ + "==", + [ + "get", + "class" + ], + "shadow" + ], + 11, + true + ], + [ + "match", + [ + "get", + "level" + ], + 89, + true, + 78, + [ + "step", + [ + "zoom" + ], + false, + 5, + true + ], + 67, + [ + "step", + [ + "zoom" + ], + false, + 9, + true + ], + 56, + [ + "step", + [ + "zoom" + ], + false, + 6, + true + ], + 94, + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + 90, + [ + "step", + [ + "zoom" + ], + false, + 12, + true + ], + false + ] + ], + "minzoom": 0, + "maxzoom": 16, + "layout": {}, + "paint": { + "fill-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 14, + [ + "match", + [ + "get", + "class" + ], + "shadow", + "hsla(66, 38%, 17%, 0.08)", + "hsla(60, 20%, 95%, 0.14)" + ], + 16, + [ + "match", + [ + "get", + "class" + ], + "shadow", + "hsla(66, 38%, 17%, 0)", + "hsla(60, 20%, 95%, 0)" + ] + ], + "fill-antialias": false + }, + "metadata": { + "mapbox:featureComponent": "terrain", + "mapbox:group": "Terrain, land" + } + }, + { + "id": "contour-line", + "type": "line", + "source": "composite", + "source-layer": "contour", + "minzoom": 11, + "filter": [ + "!=", + [ + "get", + "index" + ], + -1 + ], + "layout": {}, + "paint": { + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 11, + [ + "match", + [ + "get", + "index" + ], + [ + 1, + 2 + ], + 0.15, + 0.3 + ], + 13, + [ + "match", + [ + "get", + "index" + ], + [ + 1, + 2 + ], + 0.3, + 0.5 + ] + ], + "line-color": "hsl(60, 10%, 35%)", + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + [ + "match", + [ + "get", + "index" + ], + [ + 1, + 2 + ], + 0.5, + 0.6 + ], + 16, + [ + "match", + [ + "get", + "index" + ], + [ + 1, + 2 + ], + 0.8, + 1.2 + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "terrain", + "mapbox:group": "Terrain, land" + } + }, + { + "id": "land-structure-polygon", + "type": "fill", + "source": "composite", + "source-layer": "structure", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "land" + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "layout": {}, + "paint": { + "fill-color": "hsl(60, 20%, 85%)" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, built" + } + }, + { + "id": "land-structure-line", + "type": "line", + "source": "composite", + "source-layer": "structure", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "land" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": "square" + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.99 + ], + [ + "zoom" + ], + 14, + 0.75, + 20, + 40 + ], + "line-color": "hsl(60, 20%, 85%)" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, built" + } + }, + { + "id": "aeroway-polygon", + "type": "fill", + "source": "composite", + "source-layer": "aeroway", + "minzoom": 11, + "filter": [ + "all", + [ + "match", + [ + "get", + "type" + ], + [ + "runway", + "taxiway", + "helipad" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "paint": { + "fill-color": "hsl(230, 36%, 74%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, built" + } + }, + { + "id": "aeroway-line", + "type": "line", + "source": "composite", + "source-layer": "aeroway", + "minzoom": 9, + "filter": [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + "paint": { + "line-color": "hsl(230, 36%, 74%)", + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 9, + [ + "match", + [ + "get", + "type" + ], + "runway", + 1, + 0.5 + ], + 18, + [ + "match", + [ + "get", + "type" + ], + "runway", + 80, + 20 + ] + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, built" + } + }, + { + "id": "building", + "type": "fill", + "source": "composite", + "source-layer": "building", + "minzoom": 15, + "filter": [ + "all", + [ + "!=", + [ + "get", + "type" + ], + "building:part" + ], + [ + "==", + [ + "get", + "underground" + ], + "false" + ] + ], + "layout": {}, + "paint": { + "fill-color": "hsl(50, 15%, 75%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + 0, + 16, + 1 + ], + "fill-outline-color": "hsl(60, 10%, 65%)" + }, + "metadata": { + "mapbox:featureComponent": "buildings", + "mapbox:group": "Buildings, built" + } + }, + { + "id": "building-underground", + "type": "fill", + "source": "composite", + "source-layer": "building", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + [ + "get", + "underground" + ], + "true" + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "layout": {}, + "paint": { + "fill-color": "hsl(260, 60%, 85%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + 0, + 16, + 0.5 + ] + }, + "metadata": { + "mapbox:featureComponent": "buildings", + "mapbox:group": "Buildings, built" + } + }, + { + "id": "tunnel-minor-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 3%, 57%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-street-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 3%, 57%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-minor-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-secondary-tertiary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 11, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 3%, 57%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-primary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 3%, 57%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-major-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-motorway-trunk-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-path-trail", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "hiking", + "mountain_bike", + "trail" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(60, 32%, 90%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 5, + 0.5 + ] + ], + 15, + [ + "literal", + [ + 4, + 0.5 + ] + ], + 16, + [ + "literal", + [ + 4, + 0.45 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., tunnels" + } + }, + { + "id": "tunnel-path-cycleway-piste", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "cycleway", + "piste" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(60, 32%, 90%)", + "line-dasharray": [ + 10, + 0 + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., tunnels" + } + }, + { + "id": "tunnel-path", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "!=", + [ + "get", + "type" + ], + "steps" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(60, 32%, 90%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 1 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.75 + ] + ], + 17, + [ + "literal", + [ + 1, + 0.5 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., tunnels" + } + }, + { + "id": "tunnel-steps", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "type" + ], + "steps" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 16, + 1.6, + 18, + 6 + ], + "line-color": "hsl(60, 32%, 90%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 1 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.75 + ] + ], + 17, + [ + "literal", + [ + 0.3, + 0.3 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., tunnels" + } + }, + { + "id": "tunnel-pedestrian", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "pedestrian" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 18, + 12 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.5, + 0.4 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.2 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., tunnels" + } + }, + { + "id": "tunnel-construction", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "construction" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 2, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 0.4, + 0.8 + ] + ], + 15, + [ + "literal", + [ + 0.3, + 0.6 + ] + ], + 16, + [ + "literal", + [ + 0.2, + 0.3 + ] + ], + 17, + [ + "literal", + [ + 0.2, + 0.25 + ] + ], + 18, + [ + "literal", + [ + 0.15, + 0.15 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-minor", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "street_limited", + "hsl(60, 22%, 80%)", + "hsl(0, 0%, 95%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-minor-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-major-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway_link", + "hsl(15, 100%, 85%)", + "hsl(35, 78%, 85%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-street", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "street_limited", + "hsl(60, 22%, 80%)", + "hsl(0, 0%, 95%)" + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-street-low", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-secondary-tertiary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-primary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-motorway-trunk", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway", + "hsl(15, 100%, 85%)", + "hsl(35, 78%, 85%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-oneway-arrow-blue", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "oneway" + ], + "true" + ], + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "street", + "street_limited", + "tertiary" + ], + true, + false + ], + 16, + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "street", + "street_limited", + "primary_link", + "secondary_link", + "tertiary_link", + "service", + "track" + ], + true, + false + ] + ] + ], + "layout": { + "symbol-placement": "line", + "icon-image": [ + "step", + [ + "zoom" + ], + "oneway-small", + 18, + "oneway-large" + ], + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-oneway-arrow-white", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "motorway_link", + "trunk", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "oneway" + ], + "true" + ] + ], + "layout": { + "symbol-placement": "line", + "icon-image": [ + "step", + [ + "zoom" + ], + "oneway-white-small", + 18, + "oneway-white-large" + ], + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "cliff", + "type": "line", + "source": "composite", + "source-layer": "structure", + "minzoom": 15, + "filter": [ + "==", + [ + "get", + "class" + ], + "cliff" + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + 0, + 15.25, + 1 + ], + "line-width": 10, + "line-pattern": "cliff" + }, + "metadata": { + "mapbox:featureComponent": "terrain", + "mapbox:group": "Terrain, surface" + } + }, + { + "id": "ferry", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 8, + "filter": [ + "==", + [ + "get", + "type" + ], + "ferry" + ], + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + "hsl(214, 68%, 63%)", + 17, + "hsl(239, 68%, 63%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 20, + 1 + ], + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 13, + [ + "literal", + [ + 12, + 4 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, ferries" + } + }, + { + "id": "ferry-auto", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 8, + "filter": [ + "==", + [ + "get", + "type" + ], + "ferry_auto" + ], + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + "hsl(214, 68%, 63%)", + 17, + "hsl(239, 68%, 63%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 20, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, ferries" + } + }, + { + "id": "road-pedestrian-polygon-fill", + "type": "fill", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "path", + "pedestrian" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "case", + [ + "has", + "layer" + ], + [ + ">=", + [ + "get", + "layer" + ], + 0 + ], + true + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "paint": { + "fill-color": "hsl(60, 20%, 85%)" + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-pedestrian-polygon-pattern", + "type": "fill", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "path", + "pedestrian" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "case", + [ + "has", + "layer" + ], + [ + ">=", + [ + "get", + "layer" + ], + 0 + ], + true + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "paint": { + "fill-pattern": "pedestrian-polygon", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 16, + 0, + 17, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-path-bg", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "step", + [ + "zoom" + ], + [ + "!", + [ + "match", + [ + "get", + "type" + ], + [ + "steps", + "sidewalk", + "crossing" + ], + true, + false + ] + ], + 16, + [ + "!=", + [ + "get", + "type" + ], + "steps" + ] + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 2, + 18, + 7 + ], + "line-color": [ + "match", + [ + "get", + "type" + ], + "piste", + "hsl(215, 80%, 48%)", + [ + "mountain_bike", + "hiking", + "trail", + "cycleway", + "footway", + "path", + "bridleway" + ], + "hsl(35, 80%, 48%)", + "hsl(60, 1%, 64%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-steps-bg", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "type" + ], + "steps" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 2, + 17, + 4.6, + 18, + 7 + ], + "line-color": "hsl(35, 80%, 48%)", + "line-opacity": 0.75 + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-pedestrian-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "pedestrian" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "case", + [ + "has", + "layer" + ], + [ + ">=", + [ + "get", + "layer" + ], + 0 + ], + true + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 2, + 18, + 14.5 + ], + "line-color": "hsl(60, 10%, 70%)" + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-path-trail", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "hiking", + "mountain_bike", + "trail" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 5, + 0.5 + ] + ], + 15, + [ + "literal", + [ + 4, + 0.5 + ] + ], + 16, + [ + "literal", + [ + 4, + 0.45 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-path-cycleway-piste", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "cycleway", + "piste" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + 10, + 0 + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-path", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "step", + [ + "zoom" + ], + [ + "!", + [ + "match", + [ + "get", + "type" + ], + [ + "steps", + "sidewalk", + "crossing" + ], + true, + false + ] + ], + 16, + [ + "!=", + [ + "get", + "type" + ], + "steps" + ] + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 13, + 0.5, + 14, + 1, + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 4, + 0.3 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 0.3 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.3 + ] + ], + 17, + [ + "literal", + [ + 1, + 0.25 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-steps", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "type" + ], + "steps" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 16, + 1.6, + 18, + 6 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 1 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.75 + ] + ], + 17, + [ + "literal", + [ + 0.3, + 0.3 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-pedestrian", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "pedestrian" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "case", + [ + "has", + "layer" + ], + [ + ">=", + [ + "get", + "layer" + ], + 0 + ], + true + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 18, + 12 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.5, + 0.4 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.2 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "golf-hole-line", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "==", + [ + "get", + "class" + ], + "golf" + ], + "paint": { + "line-color": "hsl(98, 26%, 56%)" + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-polygon", + "type": "fill", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "primary_link", + "secondary_link", + "tertiary_link", + "trunk", + "trunk_link", + "street", + "street_limited", + "track", + "service" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "paint": { + "fill-color": "hsl(0, 0%, 95%)", + "fill-outline-color": "hsl(60, 10%, 70%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "turning-feature-outline", + "type": "circle", + "source": "composite", + "source-layer": "road", + "minzoom": 15, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "turning_circle", + "turning_loop" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ] + ], + "paint": { + "circle-radius": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 4.5, + 16, + 8, + 18, + 20, + 22, + 200 + ], + "circle-color": "hsl(0, 0%, 95%)", + "circle-stroke-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + 0.8, + 16, + 1.2, + 18, + 2 + ], + "circle-stroke-color": "hsl(60, 10%, 70%)", + "circle-pitch-alignment": "map" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-minor-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "track", + "hsl(35, 80%, 48%)", + "hsl(60, 10%, 70%)" + ], + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-street-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-minor-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-secondary-tertiary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 11, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-primary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-major-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-motorway-trunk-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 3, + "filter": [ + "all", + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + 5, + [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ] + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0, + 3.5, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "turning-feature", + "type": "circle", + "source": "composite", + "source-layer": "road", + "minzoom": 15, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "turning_circle", + "turning_loop" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ] + ], + "paint": { + "circle-radius": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 4.5, + 16, + 8, + 18, + 20, + 22, + 200 + ], + "circle-color": "hsl(0, 0%, 95%)", + "circle-pitch-alignment": "map" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-construction", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "construction" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 2, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 0.4, + 0.8 + ] + ], + 15, + [ + "literal", + [ + 0.3, + 0.6 + ] + ], + 16, + [ + "literal", + [ + 0.2, + 0.3 + ] + ], + 17, + [ + "literal", + [ + 0.2, + 0.25 + ] + ], + 18, + [ + "literal", + [ + 0.15, + 0.15 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-minor", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-minor-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-major-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway_link", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-street", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "street_limited", + "hsl(60, 22%, 80%)", + "hsl(0, 0%, 95%)" + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-street-low", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 11, + "maxzoom": 14, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-secondary-tertiary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 9, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-primary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 6, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-motorway-trunk", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 3, + "filter": [ + "all", + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + 5, + [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ] + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-color": [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + "motorway", + "hsl(15, 88%, 69%)", + "trunk", + "hsl(35, 81%, 59%)", + "hsl(60, 18%, 85%)" + ], + 9, + [ + "match", + [ + "get", + "class" + ], + "motorway", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0, + 3.5, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-rail", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "major_rail", + "minor_rail" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ], + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + "hsl(75, 25%, 68%)", + 16, + "hsl(60, 0%, 56%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 20, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, surface" + } + }, + { + "id": "road-rail-tracks", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "major_rail", + "minor_rail" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ], + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + "hsl(75, 25%, 68%)", + 16, + "hsl(60, 0%, 56%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 4, + 20, + 8 + ], + "line-dasharray": [ + 0.1, + 15 + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13.75, + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, surface" + } + }, + { + "id": "level-crossing", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "==", + [ + "get", + "class" + ], + "level_crossing" + ], + "layout": { + "icon-image": "level-crossing", + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface-icons" + } + }, + { + "id": "road-oneway-arrow-blue", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "oneway" + ], + "true" + ], + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "street", + "street_limited" + ], + true, + false + ], + 16, + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "street", + "street_limited", + "primary_link", + "secondary_link", + "tertiary_link", + "service", + "track" + ], + true, + false + ] + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ], + "layout": { + "symbol-placement": "line", + "icon-image": [ + "step", + [ + "zoom" + ], + "oneway-small", + 18, + "oneway-large" + ], + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface-icons" + } + }, + { + "id": "road-oneway-arrow-white", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "oneway" + ], + "true" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ], + "layout": { + "symbol-placement": "line", + "icon-image": [ + "step", + [ + "zoom" + ], + "oneway-white-small", + 18, + "oneway-white-large" + ], + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface-icons" + } + }, + { + "id": "crosswalks", + "type": "symbol", + "source": "composite", + "source-layer": "structure", + "minzoom": 17, + "filter": [ + "all", + [ + "==", + [ + "get", + "type" + ], + "crosswalk" + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ] + ], + "layout": { + "icon-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 16, + 0.1, + 18, + 0.2, + 19, + 0.5, + 22, + 1.5 + ], + "icon-image": [ + "step", + [ + "zoom" + ], + "crosswalk-small", + 18, + "crosswalk-large" + ], + "icon-rotate": [ + "get", + "direction" + ], + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface-icons" + } + }, + { + "id": "gate-fence-hedge", + "type": "line", + "source": "composite", + "source-layer": "structure", + "minzoom": 16, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "gate", + "fence", + "hedge" + ], + true, + false + ], + "layout": {}, + "paint": { + "line-color": [ + "match", + [ + "get", + "class" + ], + "hedge", + "hsl(98, 32%, 56%)", + "hsl(60, 25%, 63%)" + ], + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 16, + 1, + 20, + 3 + ], + "line-opacity": [ + "match", + [ + "get", + "class" + ], + "gate", + 0.5, + 1 + ], + "line-dasharray": [ + 1, + 2, + 5, + 2, + 1, + 2 + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-path-bg", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "step", + [ + "zoom" + ], + [ + "!", + [ + "match", + [ + "get", + "type" + ], + [ + "steps", + "sidewalk", + "crossing" + ], + true, + false + ] + ], + 16, + [ + "!=", + [ + "get", + "type" + ], + "steps" + ] + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 2, + 18, + 7 + ], + "line-color": [ + "match", + [ + "get", + "type" + ], + "piste", + "hsl(215, 80%, 48%)", + [ + "mountain_bike", + "hiking", + "trail", + "cycleway", + "footway", + "path", + "bridleway" + ], + "hsl(35, 80%, 48%)", + "hsl(60, 1%, 64%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-steps-bg", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "type" + ], + "steps" + ], + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 2, + 17, + 4.6, + 18, + 7 + ], + "line-color": "hsl(35, 80%, 48%)", + "line-opacity": 0.75 + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-pedestrian-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "pedestrian" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 2, + 18, + 14.5 + ], + "line-color": "hsl(60, 10%, 70%)" + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-path-trail", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "hiking", + "mountain_bike", + "trail" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 5, + 0.5 + ] + ], + 15, + [ + "literal", + [ + 4, + 0.5 + ] + ], + 16, + [ + "literal", + [ + 4, + 0.45 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-path-cycleway-piste", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "cycleway", + "piste" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + 10, + 0 + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-path", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "!=", + [ + "get", + "type" + ], + "steps" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 4, + 0.3 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 0.3 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.3 + ] + ], + 17, + [ + "literal", + [ + 1, + 0.25 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-steps", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "type" + ], + "steps" + ], + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 16, + 1.6, + 18, + 6 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 1 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.75 + ] + ], + 17, + [ + "literal", + [ + 0.3, + 0.3 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-pedestrian", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "pedestrian" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 18, + 12 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.5, + 0.4 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.2 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "gate-label", + "type": "symbol", + "source": "composite", + "source-layer": "structure", + "minzoom": 16, + "filter": [ + "==", + [ + "get", + "class" + ], + "gate" + ], + "layout": { + "icon-image": [ + "match", + [ + "get", + "type" + ], + "gate", + "gate", + "lift_gate", + "lift-gate", + "" + ] + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-minor-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "track", + "hsl(35, 80%, 48%)", + "hsl(60, 10%, 70%)" + ], + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-street-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "track", + "hsl(35, 80%, 48%)", + "hsl(60, 10%, 70%)" + ], + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-minor-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-secondary-tertiary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 11, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 10, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-primary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 10, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-major-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "<=", + [ + "get", + "layer" + ], + 1 + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-motorway-trunk-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "<=", + [ + "get", + "layer" + ], + 1 + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-construction", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "construction" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 2, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 0.4, + 0.8 + ] + ], + 15, + [ + "literal", + [ + 0.3, + 0.6 + ] + ], + 16, + [ + "literal", + [ + 0.2, + 0.3 + ] + ], + 17, + [ + "literal", + [ + 0.2, + 0.25 + ] + ], + 18, + [ + "literal", + [ + 0.15, + 0.15 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-minor", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-minor-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-major-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "<=", + [ + "get", + "layer" + ], + 1 + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway_link", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-street", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "street_limited", + "hsl(60, 22%, 80%)", + "hsl(0, 0%, 95%)" + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-street-low", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-secondary-tertiary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-primary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-motorway-trunk", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "<=", + [ + "get", + "layer" + ], + 1 + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-major-link-2-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + ">=", + [ + "get", + "layer" + ], + 2 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-motorway-trunk-2-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + ">=", + [ + "get", + "layer" + ], + 2 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-major-link-2", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + ">=", + [ + "get", + "layer" + ], + 2 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway_link", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-motorway-trunk-2", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + ">=", + [ + "get", + "layer" + ], + 2 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-oneway-arrow-blue", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "oneway" + ], + "true" + ], + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "street", + "street_limited" + ], + true, + false + ], + 16, + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "street", + "street_limited", + "primary_link", + "secondary_link", + "tertiary_link", + "service", + "track" + ], + true, + false + ] + ] + ], + "layout": { + "symbol-placement": "line", + "icon-image": [ + "step", + [ + "zoom" + ], + "oneway-small", + 18, + "oneway-large" + ], + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-oneway-arrow-white", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "oneway" + ], + "true" + ] + ], + "layout": { + "symbol-placement": "line", + "icon-image": "oneway-white-small", + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-rail", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "major_rail", + "minor_rail" + ], + true, + false + ] + ], + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + "hsl(75, 25%, 68%)", + 16, + "hsl(60, 0%, 56%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 20, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, bridges" + } + }, + { + "id": "bridge-rail-tracks", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "major_rail", + "minor_rail" + ], + true, + false + ] + ], + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + "hsl(75, 25%, 68%)", + 16, + "hsl(60, 0%, 56%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 4, + 20, + 8 + ], + "line-dasharray": [ + 0.1, + 15 + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13.75, + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, bridges" + } + }, + { + "id": "aerialway", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "==", + [ + "get", + "class" + ], + "aerialway" + ], + "paint": { + "line-color": "hsl(230, 50%, 60%)", + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 20, + 2 + ], + "line-dasharray": [ + 4, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, elevated" + } + }, + { + "id": "admin-1-boundary-bg", + "type": "line", + "source": "composite", + "source-layer": "admin", + "minzoom": 7, + "filter": [ + "all", + [ + "==", + [ + "get", + "admin_level" + ], + 1 + ], + [ + "==", + [ + "get", + "maritime" + ], + "false" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ] + ], + "paint": { + "line-color": "hsl(350, 90%, 88%)", + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 3, + 12, + 6 + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 7, + 0, + 8, + 0.5 + ], + "line-dasharray": [ + 1, + 0 + ], + "line-blur": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0, + 12, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "admin-boundaries", + "mapbox:group": "Administrative boundaries, admin" + } + }, + { + "id": "admin-0-boundary-bg", + "type": "line", + "source": "composite", + "source-layer": "admin", + "minzoom": 1, + "filter": [ + "all", + [ + "==", + [ + "get", + "admin_level" + ], + 0 + ], + [ + "==", + [ + "get", + "maritime" + ], + "false" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 4, + 12, + 8 + ], + "line-color": "hsl(350, 90%, 88%)", + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0, + 4, + 0.5 + ], + "line-blur": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0, + 12, + 2 + ] + }, + "metadata": { + "mapbox:featureComponent": "admin-boundaries", + "mapbox:group": "Administrative boundaries, admin" + } + }, + { + "id": "admin-1-boundary", + "type": "line", + "source": "composite", + "source-layer": "admin", + "minzoom": 2, + "filter": [ + "all", + [ + "==", + [ + "get", + "admin_level" + ], + 1 + ], + [ + "==", + [ + "get", + "maritime" + ], + "false" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ] + ], + "layout": {}, + "paint": { + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 2, + 0 + ] + ], + 7, + [ + "literal", + [ + 2, + 2, + 6, + 2 + ] + ] + ], + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0.3, + 12, + 1.5 + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 2, + 0, + 3, + 1 + ], + "line-color": "hsl(350, 30%, 55%)" + }, + "metadata": { + "mapbox:featureComponent": "admin-boundaries", + "mapbox:group": "Administrative boundaries, admin" + } + }, + { + "id": "admin-0-boundary", + "type": "line", + "source": "composite", + "source-layer": "admin", + "minzoom": 1, + "filter": [ + "all", + [ + "==", + [ + "get", + "admin_level" + ], + 0 + ], + [ + "==", + [ + "get", + "disputed" + ], + "false" + ], + [ + "==", + [ + "get", + "maritime" + ], + "false" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ] + ], + "layout": {}, + "paint": { + "line-color": "hsl(350, 30%, 50%)", + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0.5, + 12, + 2 + ], + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 2, + 0 + ] + ], + 7, + [ + "literal", + [ + 2, + 2, + 6, + 2 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "admin-boundaries", + "mapbox:group": "Administrative boundaries, admin" + } + }, + { + "id": "admin-0-boundary-disputed", + "type": "line", + "source": "composite", + "source-layer": "admin", + "minzoom": 1, + "filter": [ + "all", + [ + "==", + [ + "get", + "disputed" + ], + "true" + ], + [ + "==", + [ + "get", + "admin_level" + ], + 0 + ], + [ + "==", + [ + "get", + "maritime" + ], + "false" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ] + ], + "paint": { + "line-color": "hsl(350, 30%, 50%)", + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0.5, + 12, + 2 + ], + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 3, + 2, + 5 + ] + ], + 7, + [ + "literal", + [ + 2, + 1.5 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "admin-boundaries", + "mapbox:group": "Administrative boundaries, admin" + } + }, + { + "id": "contour-label", + "type": "symbol", + "source": "composite", + "source-layer": "contour", + "minzoom": 11, + "filter": [ + "any", + [ + "==", + [ + "get", + "index" + ], + 10 + ], + [ + "==", + [ + "get", + "index" + ], + 5 + ] + ], + "layout": { + "text-field": [ + "concat", + [ + "get", + "ele" + ], + " m" + ], + "symbol-placement": "line", + "text-pitch-alignment": "viewport", + "text-max-angle": 25, + "text-padding": 5, + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + 9.5, + 20, + 12 + ] + }, + "paint": { + "text-color": "hsl(60, 10%, 35%)", + "text-halo-width": 1, + "text-halo-color": "hsl(60, 10%, 85%)" + }, + "metadata": { + "mapbox:featureComponent": "terrain", + "mapbox:group": "Terrain, terrain-labels" + } + }, + { + "id": "building-entrance", + "type": "symbol", + "source": "composite", + "source-layer": "structure", + "minzoom": 18, + "filter": [ + "==", + [ + "get", + "class" + ], + "entrance" + ], + "layout": { + "icon-image": "marker", + "text-field": [ + "get", + "ref" + ], + "text-size": 10, + "text-offset": [ + 0, + -0.5 + ], + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ] + }, + "paint": { + "text-color": "hsl(60, 8%, 38%)", + "text-halo-color": "hsl(60, 13%, 77%)", + "text-halo-width": 1, + "icon-opacity": 0.4 + }, + "metadata": { + "mapbox:featureComponent": "buildings", + "mapbox:group": "Buildings, building-labels" + } + }, + { + "id": "building-number-label", + "type": "symbol", + "source": "composite", + "source-layer": "housenum_label", + "minzoom": 17, + "layout": { + "text-field": [ + "get", + "house_num" + ], + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ], + "text-padding": 4, + "text-max-width": 7, + "text-size": 10 + }, + "paint": { + "text-color": "hsl(60, 8%, 38%)", + "text-halo-color": "hsl(60, 13%, 77%)", + "text-halo-width": 1 + }, + "metadata": { + "mapbox:featureComponent": "buildings", + "mapbox:group": "Buildings, building-labels" + } + }, + { + "id": "block-number-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "settlement_subdivision" + ], + [ + "==", + [ + "get", + "type" + ], + "block" + ] + ], + "layout": { + "text-field": [ + "get", + "name" + ], + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ], + "text-max-width": 7, + "text-size": 11 + }, + "paint": { + "text-color": "hsl(60, 18%, 44%)", + "text-halo-color": "hsl(60, 17%, 84%)", + "text-halo-width": 0.5, + "text-halo-blur": 0.5 + }, + "metadata": { + "mapbox:featureComponent": "buildings", + "mapbox:group": "Buildings, building-labels" + } + }, + { + "id": "road-label", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 10, + "filter": [ + "all", + [ + "has", + "name" + ], + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "primary", + "secondary", + "tertiary" + ], + true, + false + ], + 12, + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "primary", + "secondary", + "tertiary", + "street", + "street_limited", + "track" + ], + true, + false + ], + 15, + [ + "match", + [ + "get", + "class" + ], + [ + "path", + "pedestrian", + "golf", + "ferry", + "aerialway" + ], + false, + true + ] + ] + ], + "layout": { + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "primary", + "secondary", + "tertiary" + ], + 10, + [ + "motorway_link", + "trunk_link", + "primary_link", + "secondary_link", + "tertiary_link", + "street", + "street_limited", + "track" + ], + 9, + 6.5 + ], + 18, + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "primary", + "secondary", + "tertiary" + ], + 16, + [ + "motorway_link", + "trunk_link", + "primary_link", + "secondary_link", + "tertiary_link", + "street", + "street_limited", + "track" + ], + 14, + 13 + ] + ], + "text-max-angle": 30, + "text-font": [ + "DIN Pro Regular", + "Arial Unicode MS Regular" + ], + "symbol-placement": "line", + "text-padding": 1, + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-letter-spacing": 0.01 + }, + "paint": { + "text-color": "hsl(0,0%, 0%)", + "text-halo-color": [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + "hsla(60, 25%, 100%, 0.75)", + "hsl(60, 25%, 100%)" + ], + "text-halo-width": 1, + "text-halo-blur": 1 + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, road-labels" + } + }, + { + "id": "road-intersection", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "intersection" + ], + [ + "has", + "name" + ] + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "icon-image": "intersection", + "icon-text-fit": "both", + "icon-text-fit-padding": [ + 1, + 2, + 1, + 2 + ], + "text-size": [ + "interpolate", + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], + 15, + 9, + 18, + 12 + ], + "text-font": [ + "DIN Pro Bold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-color": "hsl(230, 36%, 64%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, road-labels" + } + }, + { + "id": "road-number-shield", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 6, + "filter": [ + "all", + [ + "has", + "reflen" + ], + [ + "<=", + [ + "get", + "reflen" + ], + 6 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "pedestrian", + "service" + ], + false, + true + ], + [ + "step", + [ + "zoom" + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ], + 11, + [ + ">", + [ + "get", + "len" + ], + 5000 + ], + 12, + [ + ">", + [ + "get", + "len" + ], + 2500 + ], + 13, + [ + ">", + [ + "get", + "len" + ], + 1000 + ], + 14, + true + ] + ], + "layout": { + "text-size": 9, + "icon-image": [ + "case", + [ + "has", + "shield_beta" + ], + [ + "coalesce", + [ + "image", + [ + "concat", + [ + "get", + "shield_beta" + ], + "-", + [ + "to-string", + [ + "get", + "reflen" + ] + ] + ] + ], + [ + "image", + [ + "concat", + "default-", + [ + "to-string", + [ + "get", + "reflen" + ] + ] + ] + ] + ], + [ + "concat", + [ + "get", + "shield" + ], + "-", + [ + "to-string", + [ + "get", + "reflen" + ] + ] + ] + ], + "icon-rotation-alignment": "viewport", + "text-max-angle": 38, + "symbol-spacing": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 11, + 400, + 14, + 600 + ], + "text-font": [ + "DIN Pro Bold", + "Arial Unicode MS Bold" + ], + "symbol-placement": [ + "step", + [ + "zoom" + ], + "point", + 11, + "line" + ], + "text-rotation-alignment": "viewport", + "text-field": [ + "get", + "ref" + ], + "text-letter-spacing": 0.05 + }, + "paint": { + "text-color": [ + "case", + [ + "all", + [ + "has", + "shield_text_color_beta" + ], + [ + "to-boolean", + [ + "coalesce", + [ + "image", + [ + "concat", + [ + "get", + "shield_beta" + ], + "-", + [ + "to-string", + [ + "get", + "reflen" + ] + ] + ] + ], + "" + ] + ] + ], + [ + "match", + [ + "get", + "shield_text_color_beta" + ], + "white", + "hsl(0, 0%, 100%)", + "yellow", + "hsl(50, 63%, 70%)", + "orange", + "hsl(25, 63%, 75%)", + "blue", + "hsl(230, 36%, 44%)", + "red", + "hsl(0, 54%, 59%)", + "green", + "hsl(140, 46%, 37%)", + "hsl(230, 11%, 13%)" + ], + [ + "match", + [ + "get", + "shield_text_color" + ], + "white", + "hsl(0, 0%, 100%)", + "yellow", + "hsl(50, 63%, 70%)", + "orange", + "hsl(25, 63%, 75%)", + "blue", + "hsl(230, 36%, 44%)", + "red", + "hsl(0, 54%, 59%)", + "green", + "hsl(140, 46%, 37%)", + "hsl(230, 11%, 13%)" + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, road-labels" + } + }, + { + "id": "road-exit-shield", + "type": "symbol", + "source": "composite", + "source-layer": "motorway_junction", + "minzoom": 14, + "filter": [ + "all", + [ + "has", + "reflen" + ], + [ + "<=", + [ + "get", + "reflen" + ], + 9 + ] + ], + "layout": { + "text-field": [ + "get", + "ref" + ], + "text-size": 9, + "icon-image": [ + "concat", + "motorway-exit-", + [ + "to-string", + [ + "get", + "reflen" + ] + ] + ], + "text-font": [ + "DIN Pro Bold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-color": "hsl(0, 0%, 100%)", + "text-translate": [ + 0, + 0 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, road-labels" + } + }, + { + "id": "path-pedestrian-label", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "case", + [ + "has", + "layer" + ], + [ + ">=", + [ + "get", + "layer" + ], + 0 + ], + true + ], + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "pedestrian" + ], + true, + false + ], + 15, + [ + "match", + [ + "get", + "class" + ], + [ + "path", + "pedestrian" + ], + true, + false + ] + ] + ], + "layout": { + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + [ + "match", + [ + "get", + "class" + ], + "pedestrian", + 9, + 6.5 + ], + 18, + [ + "match", + [ + "get", + "class" + ], + "pedestrian", + 14, + 13 + ] + ], + "text-max-angle": 30, + "text-font": [ + "DIN Pro Regular", + "Arial Unicode MS Regular" + ], + "symbol-placement": "line", + "text-padding": 1, + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-letter-spacing": 0.01 + }, + "paint": { + "text-color": "hsl(0,0%, 0%)", + "text-halo-color": "hsl(60, 25%, 100%)", + "text-halo-width": 1, + "text-halo-blur": 1 + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., walking-cycling-labels" + } + }, + { + "id": "golf-hole-label", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "==", + [ + "get", + "class" + ], + "golf" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-size": 12 + }, + "paint": { + "text-halo-color": "hsl(98, 60%, 55%)", + "text-halo-width": 0.5, + "text-halo-blur": 0.5, + "text-color": "hsl(100, 80%, 18%)" + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., walking-cycling-labels" + } + }, + { + "id": "ferry-aerialway-label", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 15, + "filter": [ + "match", + [ + "get", + "class" + ], + "aerialway", + true, + "ferry", + true, + false + ], + "layout": { + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + 6.5, + 18, + 13 + ], + "text-max-angle": 30, + "text-font": [ + "DIN Pro Regular", + "Arial Unicode MS Regular" + ], + "symbol-placement": "line", + "text-padding": 1, + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-letter-spacing": 0.01 + }, + "paint": { + "text-color": [ + "match", + [ + "get", + "class" + ], + "ferry", + "hsl(205, 43%, 100%)", + "hsl(230, 50%, 60%)" + ], + "text-halo-color": [ + "match", + [ + "get", + "class" + ], + "ferry", + "hsl(205, 75%, 70%)", + "hsl(60, 20%, 100%)" + ], + "text-halo-width": 1, + "text-halo-blur": 1 + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, ferry-aerialway-labels" + } + }, + { + "id": "waterway-label", + "type": "symbol", + "source": "composite", + "source-layer": "natural_label", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "canal", + "river", + "stream", + "disputed_canal", + "disputed_river", + "disputed_stream" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ], + "text-max-angle": 30, + "symbol-spacing": [ + "interpolate", + [ + "linear", + 1 + ], + [ + "zoom" + ], + 15, + 250, + 17, + 400 + ], + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + 12, + 18, + 18 + ], + "symbol-placement": "line", + "text-pitch-alignment": "viewport", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + }, + "paint": { + "text-color": "hsl(205, 43%, 90%)", + "text-halo-color": "hsla(60, 17%, 84%, 0.5)" + }, + "metadata": { + "mapbox:featureComponent": "natural-features", + "mapbox:group": "Natural features, natural-labels" + } + }, + { + "id": "natural-line-label", + "type": "symbol", + "metadata": { + "mapbox:featureComponent": "natural-features", + "mapbox:group": "Natural features, natural-labels" + }, + "source": "composite", + "source-layer": "natural_label", + "minzoom": 4, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "glacier", + "landform", + "disputed_glacier", + "disputed_landform" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "<=", + [ + "get", + "filterrank" + ], + 4 + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "text-size": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 5, + 12 + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 13, + 12 + ] + ], + "text-max-angle": 30, + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "symbol-placement": "line-center", + "text-pitch-alignment": "viewport" + }, + "paint": { + "text-halo-width": 0.5, + "text-halo-color": "hsl(60, 17%, 84%)", + "text-halo-blur": 0.5, + "text-color": "hsl(340, 10%, 38%)" + } + }, + { + "id": "natural-point-label", + "type": "symbol", + "source": "composite", + "source-layer": "natural_label", + "minzoom": 4, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "dock", + "glacier", + "landform", + "water_feature", + "wetland", + "disputed_dock", + "disputed_glacier", + "disputed_landform", + "disputed_water_feature", + "disputed_wetland" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "<=", + [ + "get", + "filterrank" + ], + 4 + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ] + ], + "layout": { + "text-size": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 5, + 12 + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 13, + 12 + ] + ], + "icon-image": [ + "get", + "maki" + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-offset": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + [ + "literal", + [ + 0, + 0 + ] + ], + 5, + [ + "literal", + [ + 0, + 0.8 + ] + ] + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + [ + "literal", + [ + 0, + 0 + ] + ], + 13, + [ + "literal", + [ + 0, + 0.8 + ] + ] + ] + ], + "text-anchor": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + "center", + 5, + "top" + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + "center", + 13, + "top" + ] + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + }, + "paint": { + "icon-opacity": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + 0, + 5, + 1 + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + 0, + 13, + 1 + ] + ], + "text-halo-color": "hsl(60, 20%, 100%)", + "text-halo-width": 0.5, + "text-halo-blur": 0.5, + "text-color": "hsl(340, 10%, 38%)" + }, + "metadata": { + "mapbox:featureComponent": "natural-features", + "mapbox:group": "Natural features, natural-labels" + } + }, + { + "id": "water-line-label", + "type": "symbol", + "metadata": { + "mapbox:featureComponent": "natural-features", + "mapbox:group": "Natural features, natural-labels" + }, + "source": "composite", + "source-layer": "natural_label", + "minzoom": 1, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "bay", + "ocean", + "reservoir", + "sea", + "water", + "disputed_bay", + "disputed_ocean", + "disputed_reservoir", + "disputed_sea", + "disputed_water" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + [ + "*", + [ + "-", + 16, + [ + "sqrt", + [ + "get", + "sizerank" + ] + ] + ], + 1 + ], + 22, + [ + "*", + [ + "-", + 22, + [ + "sqrt", + [ + "get", + "sizerank" + ] + ] + ], + 1 + ] + ], + "text-max-angle": 30, + "text-letter-spacing": [ + "match", + [ + "get", + "class" + ], + "ocean", + 0.25, + [ + "sea", + "bay" + ], + 0.15, + 0 + ], + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ], + "symbol-placement": "line-center", + "text-pitch-alignment": "viewport", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + }, + "paint": { + "text-color": [ + "match", + [ + "get", + "class" + ], + [ + "bay", + "ocean", + "sea" + ], + "hsl(205, 71%, 90%)", + "hsl(205, 43%, 90%)" + ], + "text-halo-color": "hsla(60, 17%, 84%, 0.5)" + } + }, + { + "id": "water-point-label", + "type": "symbol", + "source": "composite", + "source-layer": "natural_label", + "minzoom": 1, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "bay", + "ocean", + "reservoir", + "sea", + "water", + "disputed_bay", + "disputed_ocean", + "disputed_reservoir", + "disputed_sea", + "disputed_water" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ] + ], + "layout": { + "text-line-height": 1.3, + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + [ + "*", + [ + "-", + 16, + [ + "sqrt", + [ + "get", + "sizerank" + ] + ] + ], + 1 + ], + 22, + [ + "*", + [ + "-", + 22, + [ + "sqrt", + [ + "get", + "sizerank" + ] + ] + ], + 1 + ] + ], + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-letter-spacing": [ + "match", + [ + "get", + "class" + ], + "ocean", + 0.25, + [ + "bay", + "sea" + ], + 0.15, + 0.01 + ], + "text-max-width": [ + "match", + [ + "get", + "class" + ], + "ocean", + 4, + "sea", + 5, + [ + "bay", + "water" + ], + 7, + 10 + ] + }, + "paint": { + "text-color": [ + "match", + [ + "get", + "class" + ], + [ + "bay", + "ocean", + "sea" + ], + "hsl(205, 71%, 90%)", + "hsl(205, 43%, 90%)" + ], + "text-halo-color": "hsla(60, 17%, 84%, 0.5)" + }, + "metadata": { + "mapbox:featureComponent": "natural-features", + "mapbox:group": "Natural features, natural-labels" + } + }, + { + "id": "poi-label", + "type": "symbol", + "source": "composite", + "source-layer": "poi_label", + "minzoom": 6, + "filter": [ + "<=", + [ + "get", + "filterrank" + ], + [ + "+", + [ + "step", + [ + "zoom" + ], + 0, + 16, + 1, + 17, + 2 + ], + [ + "match", + [ + "get", + "class" + ], + "food_and_drink_stores", + 3, + "historic", + 3, + "landmark", + 3, + "medical", + 3, + "motorist", + 3, + "park_like", + 4, + "sport_and_leisure", + 4, + "visitor_amenities", + 4, + 2 + ] + ] + ], + "layout": { + "text-size": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 5, + 12 + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 13, + 12 + ] + ], + "icon-image": [ + "case", + [ + "has", + "maki_beta" + ], + [ + "coalesce", + [ + "image", + [ + "get", + "maki_beta" + ] + ], + [ + "image", + [ + "get", + "maki" + ] + ] + ], + [ + "image", + [ + "get", + "maki" + ] + ] + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-offset": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + [ + "literal", + [ + 0, + 0 + ] + ], + 5, + [ + "literal", + [ + 0, + 0.8 + ] + ] + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + [ + "literal", + [ + 0, + 0 + ] + ], + 13, + [ + "literal", + [ + 0, + 0.8 + ] + ] + ] + ], + "text-anchor": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + "center", + 5, + "top" + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + "center", + 13, + "top" + ] + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + }, + "paint": { + "icon-opacity": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + 0, + 5, + 1 + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + 0, + 13, + 1 + ] + ], + "text-halo-color": "hsl(60, 20%, 100%)", + "text-halo-width": 0.5, + "text-halo-blur": 0.5, + "text-color": [ + "match", + [ + "get", + "class" + ], + "food_and_drink", + "hsl(35, 80%, 38%)", + "park_like", + "hsl(100, 80%, 18%)", + "education", + "hsl(30, 60%, 28%)", + "medical", + "hsl(10, 60%, 43%)", + "sport_and_leisure", + "hsl(210, 60%, 38%)", + "hsl(340, 10%, 38%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "point-of-interest-labels", + "mapbox:group": "Point of interest labels, poi-labels" + } + }, + { + "id": "transit-label", + "type": "symbol", + "source": "composite", + "source-layer": "transit_stop_label", + "minzoom": 12, + "filter": [ + "step", + [ + "zoom" + ], + [ + "all", + [ + "<=", + [ + "get", + "filterrank" + ], + 4 + ], + [ + "match", + [ + "get", + "mode" + ], + "rail", + true, + "metro_rail", + true, + false + ], + [ + "!=", + [ + "get", + "stop_type" + ], + "entrance" + ] + ], + 14, + [ + "all", + [ + "match", + [ + "get", + "mode" + ], + "rail", + true, + "metro_rail", + true, + false + ], + [ + "!=", + [ + "get", + "stop_type" + ], + "entrance" + ] + ], + 15, + [ + "all", + [ + "match", + [ + "get", + "mode" + ], + "rail", + true, + "metro_rail", + true, + "ferry", + true, + "light_rail", + true, + false + ], + [ + "!=", + [ + "get", + "stop_type" + ], + "entrance" + ] + ], + 16, + [ + "all", + [ + "match", + [ + "get", + "mode" + ], + "bus", + false, + true + ], + [ + "!=", + [ + "get", + "stop_type" + ], + "entrance" + ] + ], + 17, + [ + "!=", + [ + "get", + "stop_type" + ], + "entrance" + ], + 19, + true + ], + "layout": { + "text-size": 12, + "icon-image": [ + "get", + "network" + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-justify": [ + "match", + [ + "get", + "stop_type" + ], + "entrance", + "left", + "center" + ], + "text-offset": [ + "match", + [ + "get", + "stop_type" + ], + "entrance", + [ + "literal", + [ + 1, + 0 + ] + ], + [ + "literal", + [ + 0, + 0.8 + ] + ] + ], + "text-anchor": [ + "match", + [ + "get", + "stop_type" + ], + "entrance", + "left", + "top" + ], + "text-field": [ + "step", + [ + "zoom" + ], + "", + 13, + [ + "match", + [ + "get", + "mode" + ], + [ + "rail", + "metro_rail" + ], + [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "" + ], + 14, + [ + "match", + [ + "get", + "mode" + ], + [ + "bus", + "bicycle" + ], + "", + [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + ], + 18, + [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + ], + "text-letter-spacing": 0.01, + "text-max-width": [ + "match", + [ + "get", + "stop_type" + ], + "entrance", + 15, + 9 + ] + }, + "paint": { + "text-halo-color": "hsl(60, 20%, 100%)", + "text-color": [ + "match", + [ + "get", + "network" + ], + "tokyo-metro", + "hsl(180, 30%, 30%)", + "mexico-city-metro", + "hsl(25, 63%, 63%)", + [ + "barcelona-metro", + "delhi-metro", + "hong-kong-mtr", + "milan-metro", + "osaka-subway" + ], + "hsl(0, 57%, 47%)", + [ + "boston-t", + "washington-metro" + ], + "hsl(230, 11%, 20%)", + [ + "chongqing-rail-transit", + "kiev-metro", + "singapore-mrt", + "taipei-metro" + ], + "hsl(140, 56%, 25%)", + "hsl(230, 50%, 60%)" + ], + "text-halo-blur": 0.5, + "text-halo-width": 0.5 + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, transit-labels" + } + }, + { + "id": "airport-label", + "type": "symbol", + "source": "composite", + "source-layer": "airport_label", + "minzoom": 8, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "military", + "civil", + "disputed_military", + "disputed_civil" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + "layout": { + "text-line-height": 1.1, + "text-size": [ + "step", + [ + "get", + "sizerank" + ], + 18, + 9, + 12 + ], + "icon-image": [ + "get", + "maki" + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-offset": [ + 0, + 0.8 + ], + "text-rotation-alignment": "viewport", + "text-anchor": "top", + "text-field": [ + "step", + [ + "get", + "sizerank" + ], + [ + "case", + [ + "has", + "ref" + ], + [ + "concat", + [ + "get", + "ref" + ], + " -\n", + [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + ], + [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + ], + 15, + [ + "get", + "ref" + ] + ], + "text-letter-spacing": 0.01, + "text-max-width": 9 + }, + "paint": { + "text-color": "hsl(230, 40%, 55%)", + "text-halo-color": "hsl(60, 20%, 100%)", + "text-halo-width": 1 + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, transit-labels" + } + }, + { + "id": "settlement-subdivision-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 10, + "maxzoom": 15, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "settlement_subdivision", + "disputed_settlement_subdivision" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "<=", + [ + "get", + "filterrank" + ], + 3 + ] + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-transform": "uppercase", + "text-font": [ + "DIN Pro Regular", + "Arial Unicode MS Regular" + ], + "text-letter-spacing": [ + "match", + [ + "get", + "type" + ], + "suburb", + 0.15, + 0.05 + ], + "text-max-width": 7, + "text-padding": 3, + "text-size": [ + "interpolate", + [ + "cubic-bezier", + 0.5, + 0, + 1, + 1 + ], + [ + "zoom" + ], + 11, + [ + "match", + [ + "get", + "type" + ], + "suburb", + 11, + 10.5 + ], + 15, + [ + "match", + [ + "get", + "type" + ], + "suburb", + 15, + 14 + ] + ] + }, + "paint": { + "text-halo-color": "hsla(60, 25%, 100%, 0.75)", + "text-halo-width": 1, + "text-color": "hsl(230, 29%, 36%)", + "text-halo-blur": 0.5 + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + }, + { + "id": "settlement-minor-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 2, + "maxzoom": 13, + "filter": [ + "all", + [ + "<=", + [ + "get", + "filterrank" + ], + 3 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "settlement", + "disputed_settlement" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "step", + [ + "zoom" + ], + [ + ">", + [ + "get", + "symbolrank" + ], + 6 + ], + 4, + [ + ">=", + [ + "get", + "symbolrank" + ], + 7 + ], + 6, + [ + ">=", + [ + "get", + "symbolrank" + ], + 8 + ], + 7, + [ + ">=", + [ + "get", + "symbolrank" + ], + 10 + ], + 10, + [ + ">=", + [ + "get", + "symbolrank" + ], + 11 + ], + 11, + [ + ">=", + [ + "get", + "symbolrank" + ], + 13 + ], + 12, + [ + ">=", + [ + "get", + "symbolrank" + ], + 15 + ] + ] + ], + "layout": { + "symbol-sort-key": [ + "get", + "symbolrank" + ], + "icon-image": [ + "step", + [ + "zoom" + ], + [ + "case", + [ + "==", + [ + "get", + "capital" + ], + 2 + ], + "border-dot-13", + [ + "step", + [ + "get", + "symbolrank" + ], + "dot-11", + 9, + "dot-10", + 11, + "dot-9" + ] + ], + 8, + "" + ], + "text-font": [ + "DIN Pro Regular", + "Arial Unicode MS Regular" + ], + "text-radial-offset": [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "capital" + ], + 2, + 0.6, + 0.55 + ], + 8, + 0 + ], + "text-anchor": [ + "step", + [ + "zoom" + ], + [ + "get", + "text_anchor" + ], + 8, + "center" + ], + "text-justify": "auto", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-max-width": 7, + "text-line-height": 1.1, + "text-size": [ + "interpolate", + [ + "cubic-bezier", + 0.2, + 0, + 0.9, + 1 + ], + [ + "zoom" + ], + 3, + [ + "step", + [ + "get", + "symbolrank" + ], + 11, + 9, + 10 + ], + 6, + [ + "step", + [ + "get", + "symbolrank" + ], + 14, + 9, + 12, + 12, + 10 + ], + 8, + [ + "step", + [ + "get", + "symbolrank" + ], + 16, + 9, + 14, + 12, + 12, + 15, + 10 + ], + 13, + [ + "step", + [ + "get", + "symbolrank" + ], + 22, + 9, + 20, + 12, + 16, + 15, + 14 + ] + ] + }, + "paint": { + "text-color": "hsl(230, 29%, 0%)", + "text-halo-color": "hsl(60, 25%, 100%)", + "text-halo-width": 1, + "text-halo-blur": 1 + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + }, + { + "id": "settlement-major-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 2, + "maxzoom": 15, + "filter": [ + "all", + [ + "<=", + [ + "get", + "filterrank" + ], + 3 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "settlement", + "disputed_settlement" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "step", + [ + "zoom" + ], + false, + 2, + [ + "<=", + [ + "get", + "symbolrank" + ], + 6 + ], + 4, + [ + "<", + [ + "get", + "symbolrank" + ], + 7 + ], + 6, + [ + "<", + [ + "get", + "symbolrank" + ], + 8 + ], + 7, + [ + "<", + [ + "get", + "symbolrank" + ], + 10 + ], + 10, + [ + "<", + [ + "get", + "symbolrank" + ], + 11 + ], + 11, + [ + "<", + [ + "get", + "symbolrank" + ], + 13 + ], + 12, + [ + "<", + [ + "get", + "symbolrank" + ], + 15 + ], + 13, + [ + ">=", + [ + "get", + "symbolrank" + ], + 11 + ], + 14, + [ + ">=", + [ + "get", + "symbolrank" + ], + 15 + ] + ] + ], + "layout": { + "symbol-sort-key": [ + "get", + "symbolrank" + ], + "icon-image": [ + "step", + [ + "zoom" + ], + [ + "case", + [ + "==", + [ + "get", + "capital" + ], + 2 + ], + "border-dot-13", + [ + "step", + [ + "get", + "symbolrank" + ], + "dot-11", + 9, + "dot-10", + 11, + "dot-9" + ] + ], + 8, + "" + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-radial-offset": [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "capital" + ], + 2, + 0.6, + 0.55 + ], + 8, + 0 + ], + "text-anchor": [ + "step", + [ + "zoom" + ], + [ + "get", + "text_anchor" + ], + 8, + "center" + ], + "text-justify": [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "text_anchor" + ], + [ + "left", + "bottom-left", + "top-left" + ], + "left", + [ + "right", + "bottom-right", + "top-right" + ], + "right", + "center" + ], + 8, + "center" + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-max-width": 7, + "text-line-height": 1.1, + "text-size": [ + "interpolate", + [ + "cubic-bezier", + 0.2, + 0, + 0.9, + 1 + ], + [ + "zoom" + ], + 3, + [ + "step", + [ + "get", + "symbolrank" + ], + 13, + 6, + 11 + ], + 6, + [ + "step", + [ + "get", + "symbolrank" + ], + 18, + 6, + 16, + 7, + 14 + ], + 8, + [ + "step", + [ + "get", + "symbolrank" + ], + 20, + 9, + 16, + 10, + 14 + ], + 15, + [ + "step", + [ + "get", + "symbolrank" + ], + 24, + 9, + 20, + 12, + 16, + 15, + 14 + ] + ] + }, + "paint": { + "text-color": "hsl(230, 29%, 0%)", + "text-halo-color": "hsl(60, 25%, 100%)", + "text-halo-width": 1, + "text-halo-blur": 1 + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + }, + { + "id": "state-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 3, + "maxzoom": 9, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "state", + "disputed_state" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + "layout": { + "text-size": [ + "interpolate", + [ + "cubic-bezier", + 0.85, + 0.7, + 0.65, + 1 + ], + [ + "zoom" + ], + 4, + [ + "step", + [ + "get", + "symbolrank" + ], + 9, + 6, + 8, + 7, + 7 + ], + 9, + [ + "step", + [ + "get", + "symbolrank" + ], + 21, + 6, + 16, + 7, + 14 + ] + ], + "text-transform": "uppercase", + "text-font": [ + "DIN Pro Bold", + "Arial Unicode MS Bold" + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-letter-spacing": 0.15, + "text-max-width": 6 + }, + "paint": { + "text-color": "hsl(230, 29%, 0%)", + "text-halo-color": "hsl(60, 25%, 100%)", + "text-halo-width": 1, + "text-opacity": 0.5 + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + }, + { + "id": "country-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 1, + "maxzoom": 10, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "country", + "disputed_country" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + "layout": { + "icon-image": "", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-line-height": 1.1, + "text-max-width": 6, + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-radial-offset": [ + "step", + [ + "zoom" + ], + 0.6, + 8, + 0 + ], + "text-justify": [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "text_anchor" + ], + [ + "left", + "bottom-left", + "top-left" + ], + "left", + [ + "right", + "bottom-right", + "top-right" + ], + "right", + "center" + ], + 7, + "auto" + ], + "text-size": [ + "interpolate", + [ + "cubic-bezier", + 0.2, + 0, + 0.7, + 1 + ], + [ + "zoom" + ], + 1, + [ + "step", + [ + "get", + "symbolrank" + ], + 11, + 4, + 9, + 5, + 8 + ], + 9, + [ + "step", + [ + "get", + "symbolrank" + ], + 22, + 4, + 19, + 5, + 17 + ] + ] + }, + "paint": { + "icon-opacity": [ + "step", + [ + "zoom" + ], + [ + "case", + [ + "has", + "text_anchor" + ], + 1, + 0 + ], + 7, + 0 + ], + "text-color": "hsl(230, 29%, 0%)", + "text-halo-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 2, + "hsla(60, 25%, 100%, 0.75)", + 3, + "hsl(60, 25%, 100%)" + ], + "text-halo-width": 1.25 + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + }, + { + "id": "continent-label", + "type": "symbol", + "source": "composite", + "source-layer": "natural_label", + "minzoom": 0.75, + "maxzoom": 3, + "filter": [ + "==", + [ + "get", + "class" + ], + "continent" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-line-height": 1.1, + "text-max-width": 6, + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-size": [ + "interpolate", + [ + "exponential", + 0.5 + ], + [ + "zoom" + ], + 0, + 10, + 2.5, + 15 + ], + "text-transform": "uppercase", + "text-letter-spacing": 0.05 + }, + "paint": { + "text-color": "hsl(230, 29%, 0%)", + "text-halo-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + "hsla(60, 25%, 100%, 0.75)", + 3, + "hsl(60, 25%, 100%)" + ], + "text-halo-width": 1.5, + "text-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + 0.8, + 1.5, + 0.5, + 2.5, + 0 + ] + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + } + ], + "sources": { + "composite": { + "url": "mapbox://mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2,mapbox.mapbox-bathymetry-v2", + "type": "vector" + } + }, + "created": "1970-01-01T00:00:00.000Z", + "modified": "1970-01-01T00:00:00.000Z", + "owner": "mapbox", + "id": "outdoors-v12", + "draft": false +} diff --git a/play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json b/play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json new file mode 100644 index 000000000..ed39d1b6c --- /dev/null +++ b/play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json @@ -0,0 +1,2394 @@ +{ + "version": 8, + "name": "Mountain View Full", + "metadata": { + "mapbox:origin": "basic-template", + "mapbox:autocomposite": true, + "mapbox:type": "template", + "mapbox:sdk-support": { + "js": "0.50.0", + "android": "6.7.0", + "ios": "4.6.0" + }, + "mapbox:trackposition": false, + "mapbox:groups": { + "f51b507d2a17e572c70a5db74b0fec7e": { + "name": "Base", + "collapsed": false + }, + "3f48b8dc54ff2e6544b9ef9cedbf2990": { + "name": "Streets", + "collapsed": true + }, + "29bb589e8d1b9b402583363648b70302": { + "name": "Buildings", + "collapsed": true + }, + "3c26e9cbc75335c6f0ba8de5439cf1fa": { + "name": "Country borders", + "collapsed": true + }, + "7b44201d7f1682d99f7140188aff23ce": { + "name": "Labels", + "collapsed": true + }, + "24306bdccbff03e2ee08d5d1a4ca7312": { + "name": "Street name", + "collapsed": true + }, + "124a9d7a8e5226775d947c592110dfad": { + "name": "POI", + "collapsed": true + } + }, + "mapbox:uiParadigm": "layers" + }, + "center": [12.819420849458652, 50.03325860617235], + "zoom": 3.315829104862067, + "bearing": 0, + "pitch": 1.5, + "light": { + "intensity": 0.5, + "color": "hsl(0, 0%, 100%)", + "anchor": "viewport" + }, + "sources": { + "composite": { + "url": "mapbox://mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2", + "type": "vector" + } + }, + "sprite": "mapbox://sprites/microg/cjui4020201oo1fmca7yuwbor/8fkcj5fgn4mftlzuak3guz1f9", + "glyphs": "mapbox://fonts/microg/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "layout": {}, + "paint": { + "background-color": [ + "interpolate", + ["linear"], + ["zoom"], + 4, + "hsl(43, 30%, 91%)", + 5, + "hsl(0, 0%, 96%)", + 8, + "hsl(0, 0%, 96%)", + 9, + "#efeee8", + 16, + "hsl(0, 0%, 95%)", + 18, + "#f8f9fb" + ] + } + }, + { + "id": "grass", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landcover", + "filter": ["match", ["get", "class"], ["grass"], true, false], + "layout": {}, + "paint": { + "fill-color": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + "hsl(124, 30%, 90%)", + 11, + "hsl(107, 30%, 94%)", + 12.5, + "hsl(107, 30%, 94%)", + 13.5, + "hsl(45, 12%, 93%)" + ] + } + }, + { + "id": "forrest", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landcover", + "filter": [ + "match", + ["get", "class"], + ["wood", "scrub"], + true, + false + ], + "layout": {}, + "paint": { + "fill-color": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + "hsl(124, 42%, 86%)", + 11, + "hsl(107, 47%, 94%)", + 12.5, + "hsl(107, 47%, 94%)", + 13.5, + "hsl(45, 12%, 93%)" + ] + } + }, + { + "id": "national_park", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landuse_overlay", + "filter": [ + "match", + ["get", "class"], + ["national_park"], + true, + false + ], + "layout": {}, + "paint": {"fill-color": "hsl(106, 58%, 85%)"} + }, + { + "id": "snow", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landcover", + "filter": ["match", ["get", "class"], ["snow"], true, false], + "layout": {}, + "paint": {"fill-color": "#f9fafc"} + }, + { + "id": "hillshade", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "hillshade", + "layout": {}, + "paint": { + "fill-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + 0.03, + 13, + 0 + ] + } + }, + { + "id": "park", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landuse", + "filter": [ + "match", + ["get", "class"], + ["park", "scrub"], + true, + false + ], + "layout": {}, + "paint": {"fill-color": "#c1ecaf"} + }, + { + "id": "pitch", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landuse", + "filter": ["match", ["get", "class"], ["pitch"], true, false], + "layout": {}, + "paint": {"fill-color": "#c8efbb"} + }, + { + "id": "landuse", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landuse", + "filter": [ + "match", + ["get", "class"], + ["airport", "school", "hospital"], + true, + false + ], + "layout": {}, + "paint": {"fill-color": "hsl(202, 26%, 94%)"} + }, + { + "id": "river", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "water", + "layout": {}, + "paint": {"fill-color": "hsl(206, 100%, 83%)"} + }, + { + "id": "path", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["match", ["get", "class"], ["path"], true, false], + ["match", ["get", "type"], ["platform", "steps"], false, true] + ], + "layout": {}, + "paint": { + "line-color": "hsl(118, 34%, 66%)", + "line-dasharray": [4, 2] + } + }, + { + "id": "steps", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["match", ["get", "class"], ["path"], true, false], + ["match", ["get", "type"], ["steps"], true, false] + ], + "layout": {}, + "paint": { + "line-color": "hsl(118, 5%, 66%)", + "line-dasharray": [1, 1], + "line-gap-width": 1 + } + }, + { + "id": "platform", + "type": "fill", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["match", ["get", "type"], ["platform"], true, false], + ["match", ["get", "structure"], ["tunnel"], false, true] + ], + "layout": {}, + "paint": { + "fill-color": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + "hsl(2, 20%, 92%)", + 16, + "hsl(2, 95%, 92%)" + ], + "fill-outline-color": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + "hsl(1, 10%, 76%)", + 16, + "hsl(1, 74%, 76%)" + ], + "fill-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 0, + 16, + 1 + ] + } + }, + { + "id": "primary_tunnel_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["tunnel"], true, false] + ], + "layout": {}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 7, + 0, + 8, + 1, + 12, + 4, + 14, + 6, + 16, + 10, + 22, + 64 + ], + "line-color": "#cbcccd" + } + }, + { + "id": "primary_tunnel", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["tunnel"], true, false] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 1, + 12, + 4, + 14, + 6, + 16, + 10, + 22, + 64 + ], + "line-color": "hsl(0, 0%, 89%)" + } + }, + { + "id": "aeroway", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "aeroway", + "layout": {}, + "paint": {"line-color": "hsla(0, 0%, 0%, 0.1)"} + }, + { + "id": "service_road", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": ["match", ["get", "class"], ["service"], true, false], + "layout": {}, + "paint": {"line-color": "hsla(0, 0%, 0%, 0.1)"} + }, + { + "id": "pedestrian_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["match", ["get", "class"], ["pedestrian"], true, false], + ["has", "name"] + ], + "layout": {}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 13, + 1, + 16, + 4, + 22, + 32 + ], + "line-color": "#e3e3e3", + "line-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 12.5, + 0, + 13.5, + 1 + ] + } + }, + { + "id": "street_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": ["match", ["get", "class"], ["street"], true, false], + "layout": {}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 12, + 1, + 16, + 6, + 22, + 40 + ], + "line-color": "#e3e3e3" + } + }, + { + "id": "secondary_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "match", + ["get", "class"], + [ + "secondary", + "secondary_link", + "tertiary_link", + "tertiary", + "trunk_link", + "trunk" + ], + true, + false + ], + "layout": {}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 10, + 1, + 17, + 10, + 22, + 48 + ], + "line-color": "#e3e3e3", + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 16, + 1, + 20, + 2 + ] + } + }, + { + "id": "primary_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["tunnel"], false, true] + ], + "layout": {"line-cap": "round"}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + 1, + 16, + 8, + 22, + 64 + ], + "line-color": "#ecd283" + } + }, + { + "id": "motorway_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": ["match", ["get", "class"], ["motorway"], true, false], + "layout": {}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 1, + 15.5, + 8, + 22, + 78 + ], + "line-color": "#ecd283", + "line-width": ["interpolate", ["linear"], ["zoom"], 8, 1, 15, 2] + } + }, + { + "id": "railway", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["major_rail", "minor_rail", "service_rail"], + true, + false + ], + ["match", ["get", "structure"], ["tunnel"], false, true] + ], + "layout": {}, + "paint": {"line-color": "hsl(220, 4%, 85%)"} + }, + { + "id": "pedestrian", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["match", ["get", "class"], ["pedestrian"], true, false], + ["has", "name"], + ["match", ["get", "type"], ["platform"], false, true] + ], + "layout": {}, + "paint": { + "line-color": "#ffffff", + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 13, + 1, + 16, + 4, + 22, + 32 + ], + "line-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 12.5, + 0, + 13.5, + 1 + ] + } + }, + { + "id": "street", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": ["match", ["get", "class"], ["street"], true, false], + "layout": {}, + "paint": { + "line-color": "#ffffff", + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 12, + 1, + 16, + 6, + 22, + 40 + ] + } + }, + { + "id": "secondary", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "match", + ["get", "class"], + [ + "secondary", + "secondary_link", + "trunk_link", + "tertiary", + "tertiary_link", + "trunk" + ], + true, + false + ], + "layout": {}, + "paint": { + "line-color": "#ffffff", + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 10, + 1, + 17, + 10, + 22, + 48 + ] + } + }, + { + "id": "primary", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["tunnel"], false, true] + ], + "layout": {"line-cap": "round"}, + "paint": { + "line-color": [ + "step", + ["zoom"], + "hsl(50, 100%, 75%)", + 7, + "hsl(50, 100%, 85%)" + ], + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + 1, + 16, + 8, + 22, + 64 + ] + } + }, + { + "id": "motorway", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": ["match", ["get", "class"], ["motorway"], true, false], + "layout": {}, + "paint": { + "line-color": "#ffeba3", + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 1, + 15.5, + 8, + 22, + 78 + ] + } + }, + { + "id": "primary_bridge_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["bridge"], true, false] + ], + "layout": {}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + 1, + 16, + 8, + 22, + 64 + ], + "line-color": "hsl(45, 73%, 72%)" + } + }, + { + "id": "primary_bridge", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["bridge"], true, false] + ], + "layout": {}, + "paint": { + "line-color": [ + "step", + ["zoom"], + "hsl(50, 100%, 75%)", + 7, + "hsl(50, 100%, 85%)" + ], + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + 1, + 16, + 8, + 22, + 64 + ] + } + }, + { + "id": "building", + "type": "fill", + "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "source": "composite", + "source-layer": "building", + "filter": ["match", ["get", "type"], ["roof"], false, true], + "layout": {}, + "paint": { + "fill-color": [ + "match", + ["get", "type"], + [ + "store", + "retail", + "church", + "kiosk", + "civic", + "hotel", + "supermarket", + "pub", + "dormitory" + ], + "hsl(33, 100%, 96%)", + "#ededed" + ], + "fill-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + 0, + 17, + 1 + ] + } + }, + { + "id": "building_border", + "type": "line", + "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "source": "composite", + "source-layer": "building", + "filter": ["match", ["get", "type"], ["roof"], false, true], + "layout": {}, + "paint": { + "line-color": [ + "match", + ["get", "type"], + [ + "store", + "retail", + "church", + "kiosk", + "civic", + "commercial", + "hotel", + "supermarket", + "pub" + ], + "#f8e1c7", + "#dcdcdc" + ], + "line-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + 0, + 17, + 1 + ] + } + }, + { + "id": "building_3d", + "type": "fill-extrusion", + "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "source": "composite", + "source-layer": "building", + "filter": ["match", ["get", "extrude"], ["true"], true, false], + "layout": {}, + "paint": { + "fill-extrusion-height": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + 0, + 16, + ["get", "height"] + ], + "fill-extrusion-opacity": 0.3, + "fill-extrusion-color": "hsl(0, 0%, 93%)" + } + }, + { + "id": "admin_0", + "type": "line", + "metadata": {"mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa"}, + "source": "composite", + "source-layer": "admin", + "filter": [ + "all", + ["match", ["get", "maritime"], ["false"], true, false], + ["match", ["get", "admin_level"], [0], true, false] + ], + "layout": {}, + "paint": { + "line-color": [ + "case", + ["==", ["get", "disputed"], true], + "hsl(0, 24%, 48%)", + "#787a7b" + ] + } + }, + { + "id": "admin_1", + "type": "line", + "metadata": {"mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa"}, + "source": "composite", + "source-layer": "admin", + "filter": [ + "all", + ["match", ["get", "maritime"], ["false"], true, false], + ["match", ["get", "admin_level"], [1], true, false] + ], + "layout": {}, + "paint": { + "line-color": [ + "case", + ["==", ["get", "disputed"], true], + "hsl(0, 24%, 48%)", + "#787a7b" + ], + "line-dasharray": [1, 1] + } + }, + { + "id": "river_name", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "natural_label", + "filter": ["match", ["get", "class"], ["river"], true, false], + "layout": { + "text-field": ["to-string", ["get", "name"]], + "symbol-placement": "line", + "symbol-spacing": 500, + "text-font": ["Roboto Regular"] + }, + "paint": { + "text-color": "#5083c1", + "text-halo-color": "#5083c1", + "text-halo-blur": 1 + } + }, + { + "id": "city_label_right", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "place_label", + "maxzoom": 8, + "filter": [ + "all", + ["<=", ["get", "filterrank"], ["/", ["zoom"], 3]], + [ + "match", + ["get", "class"], + ["settlement", "settlement_subdivision"], + true, + false + ] + ], + "layout": { + "text-optional": true, + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + 22, + ["-", 20, ["/", ["get", "symbolrank"], 4]] + ], + "icon-image": [ + "match", + ["get", "capital"], + [0, 2], + "capital", + "city" + ], + "text-font": [ + "step", + ["get", "symbolrank"], + ["literal", ["Roboto Medium"]], + 10, + ["literal", ["Roboto Regular"]] + ], + "text-justify": "left", + "text-offset": [0.5, 0.1], + "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-anchor": "left", + "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + }, + "paint": { + "text-color": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["*", ["get", "symbolrank"], 2], 5], + "%)" + ], + 22, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["get", "symbolrank"], 25], + "%)" + ] + ], + "text-halo-width": 1, + "text-halo-blur": 1, + "text-halo-color": "hsl(0, 0%, 100%)", + "icon-opacity": 0.8 + } + }, + { + "id": "city_label_left", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "place_label", + "maxzoom": 8, + "filter": [ + "all", + ["<=", ["get", "filterrank"], ["/", ["zoom"], 3]], + [ + "match", + ["get", "class"], + ["settlement", "settlement_subdivision"], + true, + false + ] + ], + "layout": { + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + 22, + ["-", 20, ["/", ["get", "symbolrank"], 4]] + ], + "icon-image": [ + "match", + ["get", "capital"], + [0, 2], + "capital", + "city" + ], + "text-font": [ + "step", + ["get", "symbolrank"], + ["literal", ["Roboto Medium"]], + 10, + ["literal", ["Roboto Regular"]] + ], + "text-justify": "right", + "text-offset": [-0.5, 0.1], + "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-anchor": "right", + "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + }, + "paint": { + "text-color": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["*", ["get", "symbolrank"], 2], 5], + "%)" + ], + 22, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["get", "symbolrank"], 25], + "%)" + ] + ], + "text-halo-width": 1, + "text-halo-blur": 1, + "text-halo-color": "hsl(0, 0%, 100%)", + "icon-opacity": 0.8 + } + }, + { + "id": "city_label_below", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "place_label", + "maxzoom": 8, + "filter": [ + "all", + ["<=", ["get", "filterrank"], ["/", ["zoom"], 3]], + [ + "match", + ["get", "class"], + ["settlement", "settlement_subdivision"], + true, + false + ] + ], + "layout": { + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + 22, + ["-", 20, ["/", ["get", "symbolrank"], 4]] + ], + "icon-image": [ + "match", + ["get", "capital"], + [0, 2], + "capital", + "city" + ], + "text-font": [ + "step", + ["get", "symbolrank"], + ["literal", ["Roboto Medium"]], + 10, + ["literal", ["Roboto Regular"]] + ], + "text-offset": [0, 0.4], + "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-anchor": "top", + "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + }, + "paint": { + "text-color": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["*", ["get", "symbolrank"], 2], 5], + "%)" + ], + 22, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["get", "symbolrank"], 25], + "%)" + ] + ], + "text-halo-width": 1, + "text-halo-blur": 1, + "text-halo-color": "hsl(0, 0%, 100%)", + "icon-opacity": 0.8 + } + }, + { + "id": "city_name", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "place_label", + "filter": [ + "all", + ["<=", ["get", "filterrank"], ["/", ["zoom"], 3]], + [ + "match", + ["get", "class"], + ["settlement", "settlement_subdivision"], + true, + false + ] + ], + "layout": { + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + 22, + ["-", 20, ["/", ["get", "symbolrank"], 4]] + ], + "icon-image": [ + "step", + ["zoom"], + ["match", ["get", "capital"], [0, 2], "capital", "city"], + 8, + "" + ], + "text-transform": [ + "step", + ["get", "symbolrank"], + "none", + 15, + "uppercase" + ], + "text-font": [ + "step", + ["get", "symbolrank"], + ["literal", ["Roboto Medium"]], + 10, + ["literal", ["Roboto Regular"]] + ], + "text-offset": [ + "step", + ["zoom"], + ["literal", [0, -0.2]], + 8, + ["literal", [0, 0]] + ], + "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-anchor": ["step", ["zoom"], "bottom", 8, "center"], + "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]], + "text-letter-spacing": [ + "interpolate", + ["linear"], + ["get", "symbolrank"], + 0, + 0, + 8, + 0, + 12, + 0.1, + 16, + 0.2 + ] + }, + "paint": { + "text-color": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["*", ["get", "symbolrank"], 2], 5], + "%)" + ], + 22, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["get", "symbolrank"], 25], + "%)" + ] + ], + "text-halo-width": 1, + "text-halo-blur": 1, + "text-halo-color": "hsl(0, 0%, 100%)", + "icon-opacity": 0.8 + } + }, + { + "id": "park_name", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "poi_label", + "filter": [ + "all", + ["has", "name"], + ["match", ["get", "maki"], ["park", "cemetery"], true, false], + ["<=", ["get", "sizerank"], 10] + ], + "layout": { + "text-field": ["to-string", ["get", "name"]], + "text-font": ["Roboto Regular"], + "text-size": 14 + }, + "paint": { + "text-color": "#297925", + "text-halo-color": "hsl(0, 0%, 100%)", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "road-number-shield", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "road", + "filter": ["all", ["has", "ref"], ["<=", ["get", "reflen"], 6]], + "layout": { + "text-size": 9, + "icon-image": [ + "case", + [ + "match", + ["get", "shield"], + [ + "de-motorway", + "rectangle-green", + "rectangle-yellow", + "rectangle-white", + "rectangle-blue", + "rectangle-red", + "us-interstate" + ], + true, + false + ], + [ + "concat", + "shield_", + ["get", "shield"], + "_", + ["get", "reflen"] + ], + [ + "match", + ["get", "shield_text_color"], + ["white"], + true, + false + ], + ["concat", "shield_rectangle-blue_", ["get", "reflen"]], + ["concat", "shield_rectangle-white_", ["get", "reflen"]] + ], + "icon-rotation-alignment": "viewport", + "text-font": [ + "match", + ["get", "shield_text_color"], + ["white"], + ["literal", ["Roboto Bold"]], + ["black"], + ["literal", ["Roboto Medium"]], + ["literal", ["Roboto Bold"]] + ], + "symbol-placement": ["step", ["zoom"], "point", 11, "line"], + "text-offset": [0, 0.1], + "text-rotation-alignment": "viewport", + "icon-size": 0.75, + "text-field": ["get", "ref"], + "text-letter-spacing": 0.05 + }, + "paint": { + "text-color": [ + "case", + [ + "match", + ["get", "shield_text_color"], + ["white"], + true, + false + ], + "#ffffff", + [ + "match", + ["get", "shield_text_color"], + ["black"], + true, + false + ], + "hsl(0, 0%, 7%)", + [ + "match", + ["get", "shield_text_color"], + ["yellow"], + true, + false + ], + "hsl(50, 100%, 70%)", + [ + "match", + ["get", "shield_text_color"], + ["orange"], + true, + false + ], + "hsl(25, 100%, 75%)", + [ + "match", + ["get", "shield_text_color"], + ["blue"], + true, + false + ], + "hsl(230, 48%, 34%)", + "#ffffff" + ] + } + }, + { + "id": "country_name", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "place_label", + "filter": ["match", ["get", "class"], ["country"], true, false], + "layout": { + "text-letter-spacing": [ + "interpolate", + ["linear"], + ["zoom"], + 1, + 0, + 3, + 0.15 + ], + "text-font": ["Roboto Medium"], + "text-size": [ + "interpolate", + ["exponential", 1.2], + ["zoom"], + 1, + 12, + 7, + ["/", 100, ["get", "symbolrank"]] + ], + "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + }, + "paint": { + "text-color": "hsl(0, 0%, 10%)", + "text-halo-color": "hsl(0, 0%, 100%)", + "text-halo-width": 1, + "text-halo-blur": 1, + "text-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 6, + 1, + 7, + 0 + ] + } + }, + { + "id": "pedestrian_name", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + ["has", "name"], + ["match", ["get", "class"], ["pedestrian"], true, false], + ["match", ["get", "type"], ["platform"], false, true] + ], + "layout": { + "text-field": ["get", "name"], + "symbol-placement": "line", + "text-font": ["Roboto Regular"], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 17, + 10, + 22, + 14 + ], + "text-padding": 5 + }, + "paint": { + "text-color": "#575757", + "text-halo-color": "#ffffff", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "street_name", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["has", "name"], + ["match", ["get", "class"], ["street"], true, false] + ], + "layout": { + "text-field": ["get", "name"], + "symbol-placement": "line", + "text-font": ["Roboto Regular"], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 6, + 16, + 10 + ], + "text-padding": 5 + }, + "paint": { + "text-color": "#575757", + "text-halo-color": "#ffffff", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "secondary_name", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["has", "name"], + [ + "match", + ["get", "class"], + [ + "secondary", + "secondary_link", + "tertiary_link", + "tertiary", + "trunk_link", + "trunk" + ], + true, + false + ] + ], + "layout": { + "text-field": ["get", "name"], + "symbol-placement": "line", + "text-font": ["Roboto Regular"], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 8, + 16, + 13 + ], + "symbol-spacing": 300, + "text-padding": 25 + }, + "paint": { + "text-color": "hsl(196, 0%, 34%)", + "text-halo-width": 1, + "text-halo-color": "#ffffff", + "text-halo-blur": 1 + } + }, + { + "id": "primary_name", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["has", "name"], + [ + "match", + ["get", "class"], + ["primary", "primary_link"], + true, + false + ] + ], + "layout": { + "text-field": ["get", "name"], + "symbol-placement": "line", + "text-font": ["Roboto Regular"], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 10, + 18, + 14 + ], + "symbol-spacing": 800, + "text-padding": 50 + }, + "paint": { + "text-color": "#6e481d", + "text-halo-width": 1, + "text-halo-color": "#ffffff", + "text-halo-blur": 1 + } + }, + { + "id": "poi_label_below", + "type": "symbol", + "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "source": "composite", + "source-layer": "poi_label", + "filter": [ + "all", + ["has", "name"], + ["<=", ["get", "filterrank"], ["/", ["zoom"], 3.5]], + [ + "!", + [ + "all", + [ + "match", + ["get", "maki"], + ["park", "cemetery"], + true, + false + ], + ["<=", ["get", "sizerank"], 10] + ] + ] + ], + "layout": { + "text-optional": true, + "text-line-height": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 1, + 15, + 1.2 + ], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 13, + 15, + 14 + ], + "icon-offset": [0, -36], + "icon-image": [ + "match", + ["get", "maki"], + ["museum", "lodging", "theatre", "grocery", "restaurant"], + ["concat", "poi_", ["get", "maki"]], + [ + "fitness-centre", + "golf", + "campsite", + "bowling-alley", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "stadium", + "dog-park", + "pitch", + "cemetery" + ], + "poi_generic_green", + ["bank", "parking", "parking-garage"], + "poi_generic_purple", + ["bar", "cafe", "bakery"], + "poi_generic_orange", + [ + "alcohol-shop", + "shop", + "shoe", + "convenience", + "clothing-store", + "jewelry-store" + ], + "poi_generic_blue", + [ + "casino", + "castle", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "poi_generic_teal", + ["hospital", "doctor"], + "poi_generic_red", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant-noodle", + "fast-food", + "ice-cream" + ], + "poi_restaurant", + "poi_generic" + ], + "text-font": ["Roboto Regular"], + "text-offset": [0, 0.5], + "icon-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 0.25, + 15, + 0.32 + ], + "text-anchor": "top", + "text-field": ["to-string", ["get", "name"]] + }, + "paint": { + "text-color": [ + "match", + ["get", "maki"], + [ + "museum", + "casino", + "castle", + "theatre", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "hsl(186, 78%, 44%)", + ["lodging"], + "#df7db1", + [ + "fitness-centre", + "golf", + "campsite", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "dog-park", + "stadium", + "bowling-alley", + "pitch", + "cemetery" + ], + "hsl(117, 53%, 31%)", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant", + "restaurant-noodle", + "bar", + "cafe", + "fast-food", + "bakery", + "ice-cream" + ], + "#c77d57", + [ + "shop", + "shoe", + "alcohol-shop", + "convenience", + "grocery", + "clothing-store", + "jewelry-store" + ], + "hsl(213, 40%, 48%)", + ["bank", "parking", "parking-garage"], + "#737b9b", + ["hospital", "doctor"], + "#a47172", + "#67747b" + ], + "text-halo-color": "#ffffff", + "text-halo-width": 1, + "icon-translate": [0, 0], + "text-translate": [0, 0], + "text-halo-blur": 1 + } + }, + { + "id": "poi_label_above", + "type": "symbol", + "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "source": "composite", + "source-layer": "poi_label", + "filter": [ + "all", + ["has", "name"], + ["<=", ["get", "filterrank"], ["/", ["zoom"], 3.5]], + [ + "!", + [ + "all", + [ + "match", + ["get", "maki"], + ["park", "cemetery"], + true, + false + ], + ["<=", ["get", "sizerank"], 10] + ] + ] + ], + "layout": { + "text-optional": true, + "text-line-height": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 1, + 15, + 1.2 + ], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 13, + 15, + 14 + ], + "icon-offset": [0, -36], + "icon-image": [ + "match", + ["get", "maki"], + ["museum", "lodging", "theatre", "grocery", "restaurant"], + ["concat", "poi_", ["get", "maki"]], + [ + "fitness-centre", + "golf", + "campsite", + "bowling-alley", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "stadium", + "dog-park", + "pitch", + "cemetery" + ], + "poi_generic_green", + ["bank", "parking", "parking-garage"], + "poi_generic_purple", + ["bar", "cafe", "bakery"], + "poi_generic_orange", + [ + "alcohol-shop", + "shop", + "shoe", + "convenience", + "clothing-store", + "jewelry-store" + ], + "poi_generic_blue", + [ + "casino", + "castle", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "poi_generic_teal", + ["hospital", "doctor"], + "poi_generic_red", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant-noodle", + "fast-food", + "ice-cream" + ], + "poi_restaurant", + "poi_generic" + ], + "text-font": ["Roboto Regular"], + "text-offset": [0, -2], + "icon-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 0.25, + 15, + 0.32 + ], + "text-anchor": "bottom", + "text-field": ["to-string", ["get", "name"]] + }, + "paint": { + "text-color": [ + "match", + ["get", "maki"], + [ + "museum", + "casino", + "castle", + "theatre", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "hsl(186, 78%, 44%)", + ["lodging"], + "#df7db1", + [ + "fitness-centre", + "golf", + "campsite", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "dog-park", + "stadium", + "bowling-alley", + "pitch", + "cemetery" + ], + "hsl(117, 53%, 31%)", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant", + "restaurant-noodle", + "bar", + "cafe", + "fast-food", + "bakery", + "ice-cream" + ], + "#c77d57", + [ + "shop", + "shoe", + "alcohol-shop", + "convenience", + "grocery", + "clothing-store", + "jewelry-store" + ], + "hsl(213, 40%, 48%)", + ["bank", "parking", "parking-garage"], + "#737b9b", + ["hospital", "doctor"], + "#a47172", + "#67747b" + ], + "text-halo-color": "#ffffff", + "text-halo-width": 1, + "icon-translate": [0, 0], + "text-translate": [0, 0], + "text-halo-blur": 1 + } + }, + { + "id": "poi_label_left", + "type": "symbol", + "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "source": "composite", + "source-layer": "poi_label", + "filter": [ + "all", + ["has", "name"], + ["<=", ["get", "filterrank"], ["/", ["zoom"], 3.5]], + [ + "!", + [ + "all", + [ + "match", + ["get", "maki"], + ["park", "cemetery"], + true, + false + ], + ["<=", ["get", "sizerank"], 10] + ] + ] + ], + "layout": { + "text-line-height": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 1, + 15, + 1.2 + ], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 13, + 15, + 14 + ], + "icon-offset": [0, -36], + "icon-image": [ + "match", + ["get", "maki"], + ["museum", "lodging", "theatre", "grocery", "restaurant"], + ["concat", "poi_", ["get", "maki"]], + [ + "fitness-centre", + "golf", + "campsite", + "bowling-alley", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "stadium", + "dog-park", + "pitch", + "cemetery" + ], + "poi_generic_green", + ["bank", "parking", "parking-garage"], + "poi_generic_purple", + ["bar", "cafe", "bakery"], + "poi_generic_orange", + [ + "alcohol-shop", + "shop", + "shoe", + "convenience", + "clothing-store", + "jewelry-store" + ], + "poi_generic_blue", + [ + "casino", + "castle", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "poi_generic_teal", + ["hospital", "doctor"], + "poi_generic_red", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant-noodle", + "fast-food", + "ice-cream" + ], + "poi_restaurant", + "poi_generic" + ], + "text-font": ["Roboto Regular"], + "text-justify": "right", + "text-offset": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + ["literal", [-1.1, -0.7]], + 15, + ["literal", [-1.1, -0.9]] + ], + "icon-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 0.25, + 15, + 0.32 + ], + "text-anchor": "right", + "text-field": ["to-string", ["get", "name"]] + }, + "paint": { + "text-color": [ + "match", + ["get", "maki"], + [ + "museum", + "casino", + "castle", + "theatre", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "hsl(186, 78%, 44%)", + ["lodging"], + "#df7db1", + [ + "fitness-centre", + "golf", + "campsite", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "dog-park", + "stadium", + "bowling-alley", + "pitch", + "cemetery" + ], + "hsl(117, 53%, 31%)", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant", + "restaurant-noodle", + "bar", + "cafe", + "fast-food", + "bakery", + "ice-cream" + ], + "#c77d57", + [ + "shop", + "shoe", + "alcohol-shop", + "convenience", + "grocery", + "clothing-store", + "jewelry-store" + ], + "hsl(213, 40%, 48%)", + ["bank", "parking", "parking-garage"], + "#737b9b", + ["hospital", "doctor"], + "#a47172", + "#67747b" + ], + "text-halo-color": "#ffffff", + "text-halo-width": 1, + "icon-translate": [0, 0], + "text-translate": [0, 0], + "text-halo-blur": 1 + } + }, + { + "id": "poi_label_right", + "type": "symbol", + "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "source": "composite", + "source-layer": "poi_label", + "filter": [ + "all", + ["has", "name"], + ["<=", ["get", "filterrank"], ["/", ["zoom"], 3.5]], + [ + "!", + [ + "all", + [ + "match", + ["get", "maki"], + ["park", "cemetery"], + true, + false + ], + ["<=", ["get", "sizerank"], 10] + ] + ] + ], + "layout": { + "text-line-height": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 1, + 15, + 1.2 + ], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 13, + 15, + 14 + ], + "icon-offset": [0, -36], + "icon-image": [ + "match", + ["get", "maki"], + ["museum", "lodging", "theatre", "grocery", "restaurant"], + ["concat", "poi_", ["get", "maki"]], + [ + "fitness-centre", + "golf", + "campsite", + "bowling-alley", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "stadium", + "dog-park", + "pitch", + "cemetery" + ], + "poi_generic_green", + ["bank", "parking", "parking-garage"], + "poi_generic_purple", + ["bar", "cafe", "bakery"], + "poi_generic_orange", + [ + "alcohol-shop", + "shop", + "shoe", + "convenience", + "clothing-store", + "jewelry-store" + ], + "poi_generic_blue", + [ + "casino", + "castle", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "poi_generic_teal", + ["hospital", "doctor"], + "poi_generic_red", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant-noodle", + "fast-food", + "ice-cream" + ], + "poi_restaurant", + "poi_generic" + ], + "text-font": ["Roboto Regular"], + "text-justify": "left", + "text-offset": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + ["literal", [1.1, -0.7]], + 15, + ["literal", [1.1, -0.9]] + ], + "icon-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 0.25, + 15, + 0.32 + ], + "text-anchor": "left", + "text-field": ["to-string", ["get", "name"]] + }, + "paint": { + "text-color": [ + "match", + ["get", "maki"], + [ + "museum", + "casino", + "castle", + "theatre", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "hsl(186, 78%, 44%)", + ["lodging"], + "#df7db1", + [ + "fitness-centre", + "golf", + "campsite", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "dog-park", + "stadium", + "bowling-alley", + "pitch", + "cemetery" + ], + "hsl(117, 53%, 31%)", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant", + "restaurant-noodle", + "bar", + "cafe", + "fast-food", + "bakery", + "ice-cream" + ], + "#c77d57", + [ + "shop", + "shoe", + "alcohol-shop", + "convenience", + "grocery", + "clothing-store", + "jewelry-store" + ], + "hsl(213, 40%, 48%)", + ["bank", "parking", "parking-garage"], + "#737b9b", + ["hospital", "doctor"], + "#a47172", + "#67747b" + ], + "text-halo-color": "#ffffff", + "text-halo-width": 1, + "icon-translate": [0, 0], + "text-translate": [0, 0], + "text-halo-blur": 1 + } + } + ], + "created": "2019-04-15T08:41:40.148Z", + "modified": "2020-09-05T19:42:03.856Z", + "id": "cjui4020201oo1fmca7yuwbor", + "owner": "microg", + "visibility": "public", + "protected": false, + "draft": false +} \ No newline at end of file diff --git a/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json b/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json new file mode 100644 index 000000000..b2a91277e --- /dev/null +++ b/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json @@ -0,0 +1,2361 @@ +{ + "version": 8, + "name": "Mountain View Satellite", + "metadata": { + "mapbox:origin": "basic-template", + "mapbox:autocomposite": true, + "mapbox:type": "template", + "mapbox:sdk-support": { + "js": "0.50.0", + "android": "6.7.0", + "ios": "4.6.0" + }, + "mapbox:trackposition": false, + "mapbox:groups": { + "f51b507d2a17e572c70a5db74b0fec7e": { + "name": "Base", + "collapsed": true + }, + "3f48b8dc54ff2e6544b9ef9cedbf2990": { + "name": "Streets", + "collapsed": false + }, + "29bb589e8d1b9b402583363648b70302": { + "name": "Buildings", + "collapsed": true + }, + "3c26e9cbc75335c6f0ba8de5439cf1fa": { + "name": "Country borders", + "collapsed": true + }, + "7b44201d7f1682d99f7140188aff23ce": { + "name": "Labels", + "collapsed": true + }, + "24306bdccbff03e2ee08d5d1a4ca7312": { + "name": "Street name", + "collapsed": false + }, + "124a9d7a8e5226775d947c592110dfad": { + "name": "POI", + "collapsed": true + } + }, + "mapbox:uiParadigm": "layers" + }, + "center": [12.819420849458652, 50.03325860617235], + "zoom": 3.315829104862067, + "bearing": 0, + "pitch": 1.5, + "light": {"intensity": 0.5, "color": "hsl(0, 0%, 0%)"}, + "sources": { + "mapbox://mapbox.satellite": { + "url": "mapbox://mapbox.satellite", + "type": "raster", + "tileSize": 256 + }, + "composite": { + "url": "mapbox://mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2", + "type": "vector" + } + }, + "sprite": "mapbox://sprites/microg/cjxgloted25ap1ct4uex7m6hi/8fkcj5fgn4mftlzuak3guz1f9", + "glyphs": "mapbox://fonts/microg/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "raster", + "source": "mapbox://mapbox.satellite", + "layout": {}, + "paint": {} + }, + { + "id": "forrest", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landcover", + "filter": [ + "match", + ["get", "class"], + ["wood", "scrub"], + true, + false + ], + "layout": {"visibility": "none"}, + "paint": { + "fill-color": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + "hsl(124, 42%, 86%)", + 11, + "hsl(107, 47%, 94%)", + 12.5, + "hsl(107, 47%, 94%)", + 13.5, + "hsl(45, 12%, 93%)" + ] + } + }, + { + "id": "national_park", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landuse_overlay", + "filter": [ + "match", + ["get", "class"], + ["national_park"], + true, + false + ], + "layout": {"visibility": "none"}, + "paint": {"fill-color": "hsl(106, 58%, 85%)"} + }, + { + "id": "snow", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landcover", + "filter": ["match", ["get", "class"], ["snow"], true, false], + "layout": {"visibility": "none"}, + "paint": {"fill-color": "#f9fafc"} + }, + { + "id": "hillshade", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "hillshade", + "layout": {"visibility": "none"}, + "paint": { + "fill-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + 0.03, + 13, + 0 + ] + } + }, + { + "id": "park", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landuse", + "filter": [ + "match", + ["get", "class"], + ["park", "scrub"], + true, + false + ], + "layout": {"visibility": "none"}, + "paint": {"fill-color": "#c1ecaf"} + }, + { + "id": "pitch", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landuse", + "filter": ["match", ["get", "class"], ["pitch"], true, false], + "layout": {"visibility": "none"}, + "paint": {"fill-color": "#c8efbb"} + }, + { + "id": "landuse", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "landuse", + "filter": [ + "match", + ["get", "class"], + ["airport", "school", "hospital"], + true, + false + ], + "layout": {"visibility": "none"}, + "paint": {"fill-color": "hsl(202, 26%, 94%)"} + }, + { + "id": "river", + "type": "fill", + "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "source": "composite", + "source-layer": "water", + "layout": {"visibility": "none"}, + "paint": {"fill-color": "hsl(206, 100%, 83%)"} + }, + { + "id": "path", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["match", ["get", "class"], ["path"], true, false], + ["match", ["get", "type"], ["platform", "steps"], false, true] + ], + "layout": {}, + "paint": { + "line-color": "hsl(118, 34%, 66%)", + "line-dasharray": [4, 2], + "line-opacity": 0.3 + } + }, + { + "id": "steps", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["match", ["get", "class"], ["path"], true, false], + ["match", ["get", "type"], ["steps"], true, false] + ], + "layout": {}, + "paint": { + "line-color": "hsl(118, 5%, 66%)", + "line-dasharray": [1, 1], + "line-gap-width": 1, + "line-opacity": 0.3 + } + }, + { + "id": "platform", + "type": "fill", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": ["match", ["get", "type"], ["platform"], true, false], + "layout": {}, + "paint": { + "fill-color": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + "hsl(2, 20%, 92%)", + 16, + "hsl(2, 95%, 92%)" + ], + "fill-outline-color": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + "hsl(1, 10%, 76%)", + 16, + "hsl(1, 74%, 76%)" + ], + "fill-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 0, + 16, + 0.3 + ] + } + }, + { + "id": "primary_tunnel_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["tunnel"], true, false] + ], + "layout": {"visibility": "none"}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 7, + 0, + 8, + 1, + 12, + 4, + 14, + 6, + 16, + 10, + 22, + 64 + ], + "line-color": "#cbcccd" + } + }, + { + "id": "primary_tunnel", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["tunnel"], true, false] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 1, + 12, + 4, + 14, + 6, + 16, + 10, + 22, + 64 + ], + "line-color": "hsl(0, 0%, 89%)", + "line-opacity": 0.3 + } + }, + { + "id": "aeroway", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "aeroway", + "layout": {}, + "paint": {"line-color": "hsla(0, 0%, 0%, 0.1)", "line-opacity": 0.3} + }, + { + "id": "service_road", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": ["match", ["get", "class"], ["service"], true, false], + "layout": {}, + "paint": {"line-color": "hsla(0, 0%, 0%, 0.1)", "line-opacity": 0.3} + }, + { + "id": "pedestrian_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["match", ["get", "class"], ["pedestrian"], true, false], + ["has", "name"] + ], + "layout": {"visibility": "none"}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 13, + 1, + 16, + 4, + 22, + 32 + ], + "line-color": "#e3e3e3", + "line-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 12.5, + 0, + 13.5, + 1 + ] + } + }, + { + "id": "street_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": ["match", ["get", "class"], ["street"], true, false], + "layout": {"visibility": "none"}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 12, + 1, + 16, + 6, + 22, + 40 + ], + "line-color": "#e3e3e3" + } + }, + { + "id": "secondary_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "match", + ["get", "class"], + [ + "secondary", + "secondary_link", + "tertiary_link", + "tertiary", + "trunk_link", + "trunk" + ], + true, + false + ], + "layout": {"visibility": "none"}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 10, + 1, + 17, + 10, + 22, + 48 + ], + "line-color": "#e3e3e3", + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 16, + 1, + 20, + 2 + ] + } + }, + { + "id": "primary_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["tunnel"], false, true] + ], + "layout": {"line-cap": "round", "visibility": "none"}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + 1, + 16, + 8, + 22, + 64 + ], + "line-color": "#ecd283" + } + }, + { + "id": "motorway_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": ["match", ["get", "class"], ["motorway"], true, false], + "layout": {"visibility": "none"}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 1, + 15.5, + 8, + 22, + 78 + ], + "line-color": "#ecd283", + "line-width": ["interpolate", ["linear"], ["zoom"], 8, 1, 15, 2] + } + }, + { + "id": "railway", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "match", + ["get", "class"], + ["major_rail", "minor_rail", "service_rail"], + true, + false + ], + "layout": {}, + "paint": {"line-color": "hsl(220, 4%, 85%)", "line-opacity": 0.3} + }, + { + "id": "pedestrian", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["match", ["get", "class"], ["pedestrian"], true, false], + ["has", "name"], + ["match", ["get", "type"], ["platform"], false, true] + ], + "layout": {}, + "paint": { + "line-color": "hsl(0, 0%, 100%)", + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 13, + 1, + 16, + 4, + 22, + 32 + ], + "line-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 12.5, + 0, + 13.5, + 0.3 + ] + } + }, + { + "id": "street", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": ["match", ["get", "class"], ["street"], true, false], + "layout": {}, + "paint": { + "line-color": "hsl(0, 0%, 100%)", + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 12, + 1, + 16, + 6, + 22, + 40 + ], + "line-opacity": 0.3 + } + }, + { + "id": "secondary", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "match", + ["get", "class"], + [ + "secondary", + "secondary_link", + "trunk_link", + "tertiary", + "tertiary_link", + "trunk" + ], + true, + false + ], + "layout": {}, + "paint": { + "line-color": "hsl(0, 0%, 100%)", + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 10, + 1, + 17, + 10, + 22, + 48 + ], + "line-opacity": 0.3 + } + }, + { + "id": "primary", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["tunnel"], false, true] + ], + "layout": {"line-cap": "round"}, + "paint": { + "line-color": [ + "step", + ["zoom"], + "hsl(50, 100%, 75%)", + 7, + "hsl(50, 100%, 85%)" + ], + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + 1, + 16, + 8, + 22, + 64 + ], + "line-opacity": 0.3 + } + }, + { + "id": "motorway", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": ["match", ["get", "class"], ["motorway"], true, false], + "layout": {}, + "paint": { + "line-color": "hsl(47, 100%, 82%)", + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 1, + 15.5, + 8, + 22, + 78 + ], + "line-opacity": 0.3 + } + }, + { + "id": "primary_bridge_border", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["bridge"], true, false] + ], + "layout": {"visibility": "none"}, + "paint": { + "line-gap-width": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + 1, + 16, + 8, + 22, + 64 + ], + "line-color": "hsl(45, 73%, 72%)" + } + }, + { + "id": "primary_bridge", + "type": "line", + "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + [ + "match", + ["get", "class"], + ["primary_link", "primary", "motorway_link"], + true, + false + ], + ["match", ["get", "structure"], ["bridge"], true, false] + ], + "layout": {"visibility": "none"}, + "paint": { + "line-color": [ + "step", + ["zoom"], + "hsl(50, 100%, 75%)", + 7, + "hsl(50, 100%, 85%)" + ], + "line-width": [ + "interpolate", + ["linear"], + ["zoom"], + 9, + 1, + 16, + 8, + 22, + 64 + ] + } + }, + { + "id": "building", + "type": "fill", + "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "source": "composite", + "source-layer": "building", + "filter": ["match", ["get", "type"], ["roof"], false, true], + "layout": {"visibility": "none"}, + "paint": { + "fill-color": [ + "match", + ["get", "type"], + [ + "store", + "retail", + "church", + "kiosk", + "civic", + "hotel", + "supermarket", + "pub", + "dormitory" + ], + "hsl(33, 100%, 96%)", + "#ededed" + ], + "fill-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + 0, + 17, + 1 + ] + } + }, + { + "id": "building_border", + "type": "line", + "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "source": "composite", + "source-layer": "building", + "filter": ["match", ["get", "type"], ["roof"], false, true], + "layout": {"visibility": "none"}, + "paint": { + "line-color": [ + "match", + ["get", "type"], + [ + "store", + "retail", + "church", + "kiosk", + "civic", + "commercial", + "hotel", + "supermarket", + "pub" + ], + "#f8e1c7", + "#dcdcdc" + ], + "line-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + 0, + 17, + 1 + ] + } + }, + { + "id": "building_3d", + "type": "fill-extrusion", + "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "source": "composite", + "source-layer": "building", + "filter": ["match", ["get", "extrude"], ["true"], true, false], + "layout": {"visibility": "none"}, + "paint": { + "fill-extrusion-height": [ + "interpolate", + ["linear"], + ["zoom"], + 15, + 0, + 16, + ["get", "height"] + ], + "fill-extrusion-color": "#ededed", + "fill-extrusion-opacity": 0.3 + } + }, + { + "id": "admin_0", + "type": "line", + "metadata": {"mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa"}, + "source": "composite", + "source-layer": "admin", + "filter": [ + "all", + ["match", ["get", "maritime"], ["false"], true, false], + ["match", ["get", "admin_level"], [0], true, false] + ], + "layout": {}, + "paint": { + "line-color": [ + "case", + ["==", ["get", "disputed"], true], + "hsl(0, 24%, 85%)", + "hsl(200, 1%, 85%)" + ] + } + }, + { + "id": "admin_1", + "type": "line", + "metadata": {"mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa"}, + "source": "composite", + "source-layer": "admin", + "filter": [ + "all", + ["match", ["get", "maritime"], ["false"], true, false], + ["match", ["get", "admin_level"], [1], true, false] + ], + "layout": {}, + "paint": { + "line-color": [ + "case", + ["==", ["get", "disputed"], true], + "hsl(0, 24%, 85%)", + "hsl(200, 1%, 85%)" + ], + "line-dasharray": [1, 1] + } + }, + { + "id": "river_name", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "natural_label", + "filter": ["match", ["get", "class"], ["river"], true, false], + "layout": { + "text-field": ["to-string", ["get", "name"]], + "symbol-placement": "line", + "symbol-spacing": 500, + "text-font": ["Roboto Regular", "Arial Unicode MS Regular"] + }, + "paint": { + "text-color": "#5083c1", + "text-halo-color": "#5083c1", + "text-halo-blur": 1 + } + }, + { + "id": "city_label_right", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "place_label", + "maxzoom": 8, + "filter": [ + "all", + ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "match", + ["get", "class"], + ["settlement", "settlement_subdivision"], + true, + false + ] + ], + "layout": { + "text-optional": true, + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + 22, + ["-", 20, ["/", ["get", "symbolrank"], 4]] + ], + "icon-image": [ + "match", + ["get", "capital"], + [0, 2], + "capital", + "city" + ], + "text-font": [ + "step", + ["get", "symbolrank"], + ["literal", ["Roboto Medium", "Arial Unicode MS Regular"]], + 10, + ["literal", ["Roboto Regular", "Arial Unicode MS Regular"]] + ], + "text-justify": "left", + "text-offset": [0.5, 0.1], + "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-anchor": "left", + "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + }, + "paint": { + "text-color": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + [ + "concat", + "hsl(213, 11%, ", + ["-", 100, ["*", ["get", "symbolrank"], 2]], + "%)" + ], + 22, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["-", 100, ["get", "symbolrank"]], 5], + "%)" + ] + ], + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.8, + "text-halo-color": "hsl(0, 1%, 0%)" + } + }, + { + "id": "city_label_left", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "place_label", + "maxzoom": 8, + "filter": [ + "all", + ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "match", + ["get", "class"], + ["settlement", "settlement_subdivision"], + true, + false + ] + ], + "layout": { + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + 22, + ["-", 20, ["/", ["get", "symbolrank"], 4]] + ], + "icon-image": [ + "match", + ["get", "capital"], + [0, 2], + "capital", + "city" + ], + "text-font": [ + "step", + ["get", "symbolrank"], + ["literal", ["Roboto Medium", "Arial Unicode MS Regular"]], + 10, + ["literal", ["Roboto Regular", "Arial Unicode MS Regular"]] + ], + "text-justify": "right", + "text-offset": [-0.5, 0.1], + "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-anchor": "right", + "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + }, + "paint": { + "text-color": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + [ + "concat", + "hsl(213, 11%, ", + ["-", 100, ["*", ["get", "symbolrank"], 2]], + "%)" + ], + 22, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["-", 100, ["get", "symbolrank"]], 5], + "%)" + ] + ], + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.8, + "text-halo-color": "hsl(0, 1%, 0%)" + } + }, + { + "id": "city_label_below", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "place_label", + "maxzoom": 8, + "filter": [ + "all", + ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "match", + ["get", "class"], + ["settlement", "settlement_subdivision"], + true, + false + ] + ], + "layout": { + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + 22, + ["-", 20, ["/", ["get", "symbolrank"], 4]] + ], + "icon-image": [ + "match", + ["get", "capital"], + [0, 2], + "capital", + "city" + ], + "text-font": [ + "step", + ["get", "symbolrank"], + ["literal", ["Roboto Medium", "Arial Unicode MS Regular"]], + 10, + ["literal", ["Roboto Regular", "Arial Unicode MS Regular"]] + ], + "text-offset": [0, 0.4], + "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-anchor": "top", + "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + }, + "paint": { + "text-color": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + [ + "concat", + "hsl(213, 11%, ", + ["-", 100, ["*", ["get", "symbolrank"], 2]], + "%)" + ], + 22, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["-", 100, ["get", "symbolrank"]], 5], + "%)" + ] + ], + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.8, + "text-halo-color": "hsl(0, 1%, 0%)" + } + }, + { + "id": "city_name", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "place_label", + "filter": [ + "all", + ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "match", + ["get", "class"], + ["settlement", "settlement_subdivision"], + true, + false + ] + ], + "layout": { + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + 22, + ["-", 20, ["/", ["get", "symbolrank"], 4]] + ], + "icon-image": [ + "step", + ["zoom"], + ["match", ["get", "capital"], [0, 2], "capital", "city"], + 8, + "" + ], + "text-transform": [ + "step", + ["get", "symbolrank"], + "none", + 15, + "uppercase" + ], + "text-font": [ + "step", + ["get", "symbolrank"], + ["literal", ["Roboto Medium", "Arial Unicode MS Regular"]], + 10, + ["literal", ["Roboto Regular", "Arial Unicode MS Regular"]] + ], + "text-offset": [ + "step", + ["zoom"], + ["literal", [0, -0.2]], + 8, + ["literal", [0, 0]] + ], + "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-anchor": ["step", ["zoom"], "bottom", 8, "center"], + "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]], + "text-letter-spacing": [ + "interpolate", + ["linear"], + ["get", "symbolrank"], + 0, + 0, + 8, + 0, + 12, + 0.1, + 16, + 0.2 + ] + }, + "paint": { + "text-color": [ + "interpolate", + ["linear"], + ["zoom"], + 0, + [ + "concat", + "hsl(213, 11%, ", + ["-", 100, ["*", ["get", "symbolrank"], 2]], + "%)" + ], + 22, + [ + "concat", + "hsl(213, 11%, ", + ["+", ["-", 100, ["get", "symbolrank"]], 5], + "%)" + ] + ], + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.8, + "text-halo-color": "hsl(0, 1%, 0%)" + } + }, + { + "id": "park_name", + "type": "symbol", + "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "source": "composite", + "source-layer": "poi_label", + "filter": [ + "all", + ["has", "name"], + ["match", ["get", "maki"], ["park", "cemetery"], true, false], + ["<=", ["get", "sizerank"], 10] + ], + "layout": { + "text-field": ["to-string", ["get", "name"]], + "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-size": 14 + }, + "paint": { + "text-color": "#297925", + "text-halo-color": "hsl(0, 0%, 100%)", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "road-number-shield", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "road", + "filter": ["all", ["has", "ref"], ["<=", ["get", "reflen"], 6]], + "layout": { + "text-size": 9, + "icon-image": [ + "case", + [ + "match", + ["get", "shield"], + [ + "de-motorway", + "rectangle-green", + "rectangle-yellow", + "rectangle-white", + "rectangle-blue", + "rectangle-red", + "us-interstate" + ], + true, + false + ], + [ + "concat", + "shield_", + ["get", "shield"], + "_", + ["get", "reflen"] + ], + [ + "match", + ["get", "shield_text_color"], + ["white"], + true, + false + ], + ["concat", "shield_rectangle-blue_", ["get", "reflen"]], + ["concat", "shield_rectangle-white_", ["get", "reflen"]] + ], + "icon-rotation-alignment": "viewport", + "text-font": [ + "match", + ["get", "shield_text_color"], + ["white"], + [ + "literal", + ["DIN Offc Pro Bold", "Arial Unicode MS Regular"] + ], + ["black"], + [ + "literal", + ["DIN Offc Pro Medium", "Arial Unicode MS Regular"] + ], + [ + "literal", + ["DIN Offc Pro Bold", "Arial Unicode MS Regular"] + ] + ], + "symbol-placement": ["step", ["zoom"], "point", 11, "line"], + "text-rotation-alignment": "viewport", + "icon-size": 0.75, + "text-field": ["get", "ref"], + "text-letter-spacing": 0.05 + }, + "paint": { + "text-color": [ + "case", + [ + "match", + ["get", "shield_text_color"], + ["white"], + true, + false + ], + "#ffffff", + [ + "match", + ["get", "shield_text_color"], + ["black"], + true, + false + ], + "hsl(0, 0%, 7%)", + [ + "match", + ["get", "shield_text_color"], + ["yellow"], + true, + false + ], + "hsl(50, 100%, 70%)", + [ + "match", + ["get", "shield_text_color"], + ["orange"], + true, + false + ], + "hsl(25, 100%, 75%)", + [ + "match", + ["get", "shield_text_color"], + ["blue"], + true, + false + ], + "hsl(230, 48%, 34%)", + "#ffffff" + ] + } + }, + { + "id": "country_name", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "place_label", + "filter": ["match", ["get", "class"], ["country"], true, false], + "layout": { + "text-letter-spacing": [ + "interpolate", + ["linear"], + ["zoom"], + 1, + 0, + 3, + 0.15 + ], + "text-font": ["Roboto Medium", "Arial Unicode MS Regular"], + "text-size": [ + "interpolate", + ["exponential", 1.2], + ["zoom"], + 1, + 12, + 7, + ["/", 100, ["get", "symbolrank"]] + ], + "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + }, + "paint": { + "text-opacity": [ + "interpolate", + ["linear"], + ["zoom"], + 6, + 1, + 7, + 0 + ], + "text-color": "hsl(0, 0%, 90%)", + "text-halo-width": 1, + "text-halo-blur": 1, + "text-halo-color": "hsl(0, 1%, 0%)" + } + }, + { + "id": "pedestrian_name", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + ["has", "name"], + ["match", ["get", "class"], ["pedestrian"], true, false], + ["match", ["get", "type"], ["platform"], false, true] + ], + "layout": { + "text-field": ["get", "name"], + "symbol-placement": "line", + "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 17, + 10, + 22, + 14 + ], + "text-padding": 5 + }, + "paint": { + "text-color": "hsl(0, 0%, 86%)", + "text-halo-color": "hsl(0, 1%, 0%)", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "street_name", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["has", "name"], + ["match", ["get", "class"], ["street"], true, false] + ], + "layout": { + "text-field": ["get", "name"], + "symbol-placement": "line", + "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 6, + 16, + 10 + ], + "text-padding": 5 + }, + "paint": { + "text-color": "hsl(0, 0%, 86%)", + "text-halo-color": "hsl(0, 1%, 0%)", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "secondary_name", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["has", "name"], + [ + "match", + ["get", "class"], + [ + "secondary", + "secondary_link", + "tertiary_link", + "tertiary", + "trunk_link", + "trunk" + ], + true, + false + ] + ], + "layout": { + "text-field": ["get", "name"], + "symbol-placement": "line", + "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 8, + 16, + 13 + ], + "symbol-spacing": 300, + "text-padding": 25 + }, + "paint": { + "text-color": "hsl(196, 0%, 86%)", + "text-halo-width": 1, + "text-halo-color": "hsl(0, 1%, 0%)", + "text-halo-blur": 1 + } + }, + { + "id": "primary_name", + "type": "symbol", + "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "source": "composite", + "source-layer": "road", + "filter": [ + "all", + ["has", "name"], + [ + "match", + ["get", "class"], + ["primary", "primary_link"], + true, + false + ] + ], + "layout": { + "text-field": ["get", "name"], + "symbol-placement": "line", + "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 8, + 10, + 18, + 14 + ], + "symbol-spacing": 800, + "text-padding": 50 + }, + "paint": { + "text-color": "hsl(32, 58%, 93%)", + "text-halo-width": 1, + "text-halo-color": "hsl(0, 1%, 0%)", + "text-halo-blur": 1 + } + }, + { + "id": "poi_label_below", + "type": "symbol", + "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "source": "composite", + "source-layer": "poi_label", + "filter": [ + "all", + ["has", "name"], + ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "!", + [ + "all", + [ + "match", + ["get", "maki"], + ["park", "cemetery"], + true, + false + ], + ["<=", ["get", "sizerank"], 10] + ] + ] + ], + "layout": { + "text-optional": true, + "text-line-height": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 1, + 15, + 1.2 + ], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 13, + 15, + 14 + ], + "icon-offset": [0, -36], + "icon-image": [ + "match", + ["get", "maki"], + ["museum", "lodging", "theatre", "grocery", "restaurant"], + ["concat", "poi_", ["get", "maki"]], + [ + "fitness-centre", + "golf", + "campsite", + "bowling-alley", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "stadium", + "dog-park", + "pitch", + "cemetery" + ], + "poi_generic_green", + ["bank", "parking", "parking-garage"], + "poi_generic_purple", + ["bar", "cafe", "bakery"], + "poi_generic_orange", + [ + "alcohol-shop", + "shop", + "shoe", + "convenience", + "clothing-store", + "jewelry-store" + ], + "poi_generic_blue", + [ + "casino", + "castle", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "poi_generic_teal", + ["hospital", "doctor"], + "poi_generic_red", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant-noodle", + "fast-food", + "ice-cream" + ], + "poi_restaurant", + "poi_generic" + ], + "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-offset": [0, 0.5], + "icon-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 0.25, + 15, + 0.32 + ], + "text-anchor": "top", + "text-field": ["to-string", ["get", "name"]] + }, + "paint": { + "text-color": [ + "match", + ["get", "maki"], + [ + "museum", + "casino", + "castle", + "theatre", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "hsl(186, 78%, 65%)", + ["lodging"], + "#df7db1", + [ + "fitness-centre", + "golf", + "campsite", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "dog-park", + "stadium", + "bowling-alley", + "pitch", + "cemetery" + ], + "hsl(117, 53%, 65%)", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant", + "restaurant-noodle", + "bar", + "cafe", + "fast-food", + "bakery", + "ice-cream" + ], + "hsl(20, 50%, 65%)", + [ + "shop", + "shoe", + "alcohol-shop", + "convenience", + "grocery", + "clothing-store", + "jewelry-store" + ], + "hsl(213, 40%, 65%)", + ["bank", "parking", "parking-garage"], + "hsl(228, 17%, 65%)", + ["hospital", "doctor"], + "hsl(359, 22%, 65%)", + "hsl(201, 9%, 80%)" + ], + "text-halo-color": "hsl(0, 1%, 0%)", + "text-halo-width": 1, + "icon-translate": [0, 0], + "text-translate": [0, 0], + "text-halo-blur": 1 + } + }, + { + "id": "poi_label_above", + "type": "symbol", + "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "source": "composite", + "source-layer": "poi_label", + "filter": [ + "all", + ["has", "name"], + ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "!", + [ + "all", + [ + "match", + ["get", "maki"], + ["park", "cemetery"], + true, + false + ], + ["<=", ["get", "sizerank"], 10] + ] + ] + ], + "layout": { + "text-optional": true, + "text-line-height": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 1, + 15, + 1.2 + ], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 13, + 15, + 14 + ], + "icon-offset": [0, -36], + "icon-image": [ + "match", + ["get", "maki"], + ["museum", "lodging", "theatre", "grocery", "restaurant"], + ["concat", "poi_", ["get", "maki"]], + [ + "fitness-centre", + "golf", + "campsite", + "bowling-alley", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "stadium", + "dog-park", + "pitch", + "cemetery" + ], + "poi_generic_green", + ["bank", "parking", "parking-garage"], + "poi_generic_purple", + ["bar", "cafe", "bakery"], + "poi_generic_orange", + [ + "alcohol-shop", + "shop", + "shoe", + "convenience", + "clothing-store", + "jewelry-store" + ], + "poi_generic_blue", + [ + "casino", + "castle", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "poi_generic_teal", + ["hospital", "doctor"], + "poi_generic_red", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant-noodle", + "fast-food", + "ice-cream" + ], + "poi_restaurant", + "poi_generic" + ], + "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-offset": [0, -2], + "icon-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 0.25, + 15, + 0.32 + ], + "text-anchor": "bottom", + "text-field": ["to-string", ["get", "name"]] + }, + "paint": { + "text-color": [ + "match", + ["get", "maki"], + [ + "museum", + "casino", + "castle", + "theatre", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "hsl(186, 78%, 65%)", + ["lodging"], + "#df7db1", + [ + "fitness-centre", + "golf", + "campsite", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "dog-park", + "stadium", + "bowling-alley", + "pitch", + "cemetery" + ], + "hsl(117, 53%, 65%)", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant", + "restaurant-noodle", + "bar", + "cafe", + "fast-food", + "bakery", + "ice-cream" + ], + "hsl(20, 50%, 65%)", + [ + "shop", + "shoe", + "alcohol-shop", + "convenience", + "grocery", + "clothing-store", + "jewelry-store" + ], + "hsl(213, 40%, 65%)", + ["bank", "parking", "parking-garage"], + "hsl(228, 17%, 65%)", + ["hospital", "doctor"], + "hsl(359, 22%, 65%)", + "hsl(201, 9%, 80%)" + ], + "text-halo-color": "hsl(0, 1%, 0%)", + "text-halo-width": 1, + "icon-translate": [0, 0], + "text-translate": [0, 0], + "text-halo-blur": 1 + } + }, + { + "id": "poi_label_left", + "type": "symbol", + "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "source": "composite", + "source-layer": "poi_label", + "filter": [ + "all", + ["has", "name"], + ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "!", + [ + "all", + [ + "match", + ["get", "maki"], + ["park", "cemetery"], + true, + false + ], + ["<=", ["get", "sizerank"], 10] + ] + ] + ], + "layout": { + "text-line-height": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 1, + 15, + 1.2 + ], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 13, + 15, + 14 + ], + "icon-offset": [0, -36], + "icon-image": [ + "match", + ["get", "maki"], + ["museum", "lodging", "theatre", "grocery", "restaurant"], + ["concat", "poi_", ["get", "maki"]], + [ + "fitness-centre", + "golf", + "campsite", + "bowling-alley", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "stadium", + "dog-park", + "pitch", + "cemetery" + ], + "poi_generic_green", + ["bank", "parking", "parking-garage"], + "poi_generic_purple", + ["bar", "cafe", "bakery"], + "poi_generic_orange", + [ + "alcohol-shop", + "shop", + "shoe", + "convenience", + "clothing-store", + "jewelry-store" + ], + "poi_generic_blue", + [ + "casino", + "castle", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "poi_generic_teal", + ["hospital", "doctor"], + "poi_generic_red", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant-noodle", + "fast-food", + "ice-cream" + ], + "poi_restaurant", + "poi_generic" + ], + "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-justify": "right", + "text-offset": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + ["literal", [-1.1, -0.7]], + 15, + ["literal", [-1.1, -0.9]] + ], + "icon-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 0.25, + 15, + 0.32 + ], + "text-anchor": "right", + "text-field": ["to-string", ["get", "name"]] + }, + "paint": { + "text-color": [ + "match", + ["get", "maki"], + [ + "museum", + "casino", + "castle", + "theatre", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "hsl(186, 78%, 65%)", + ["lodging"], + "#df7db1", + [ + "fitness-centre", + "golf", + "campsite", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "dog-park", + "stadium", + "bowling-alley", + "pitch", + "cemetery" + ], + "hsl(117, 53%, 65%)", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant", + "restaurant-noodle", + "bar", + "cafe", + "fast-food", + "bakery", + "ice-cream" + ], + "hsl(20, 50%, 65%)", + [ + "shop", + "shoe", + "alcohol-shop", + "convenience", + "grocery", + "clothing-store", + "jewelry-store" + ], + "hsl(213, 40%, 65%)", + ["bank", "parking", "parking-garage"], + "hsl(228, 17%, 65%)", + ["hospital", "doctor"], + "hsl(359, 22%, 65%)", + "hsl(201, 9%, 80%)" + ], + "text-halo-color": "hsl(0, 1%, 0%)", + "text-halo-width": 1, + "icon-translate": [0, 0], + "text-translate": [0, 0], + "text-halo-blur": 1 + } + }, + { + "id": "poi_label_right", + "type": "symbol", + "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "source": "composite", + "source-layer": "poi_label", + "filter": [ + "all", + ["has", "name"], + ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "!", + [ + "all", + [ + "match", + ["get", "maki"], + ["park", "cemetery"], + true, + false + ], + ["<=", ["get", "sizerank"], 10] + ] + ] + ], + "layout": { + "text-line-height": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 1, + 15, + 1.2 + ], + "text-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 13, + 15, + 14 + ], + "icon-offset": [0, -36], + "icon-image": [ + "match", + ["get", "maki"], + ["museum", "lodging", "theatre", "grocery", "restaurant"], + ["concat", "poi_", ["get", "maki"]], + [ + "fitness-centre", + "golf", + "campsite", + "bowling-alley", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "stadium", + "dog-park", + "pitch", + "cemetery" + ], + "poi_generic_green", + ["bank", "parking", "parking-garage"], + "poi_generic_purple", + ["bar", "cafe", "bakery"], + "poi_generic_orange", + [ + "alcohol-shop", + "shop", + "shoe", + "convenience", + "clothing-store", + "jewelry-store" + ], + "poi_generic_blue", + [ + "casino", + "castle", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "poi_generic_teal", + ["hospital", "doctor"], + "poi_generic_red", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant-noodle", + "fast-food", + "ice-cream" + ], + "poi_restaurant", + "poi_generic" + ], + "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-justify": "left", + "text-offset": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + ["literal", [1.1, -0.7]], + 15, + ["literal", [1.1, -0.9]] + ], + "icon-size": [ + "interpolate", + ["linear"], + ["zoom"], + 14, + 0.25, + 15, + 0.32 + ], + "text-anchor": "left", + "text-field": ["to-string", ["get", "name"]] + }, + "paint": { + "text-color": [ + "match", + ["get", "maki"], + [ + "museum", + "casino", + "castle", + "theatre", + "art-gallery", + "attraction", + "cinema", + "music", + "monument" + ], + "hsl(186, 78%, 65%)", + ["lodging"], + "#df7db1", + [ + "fitness-centre", + "golf", + "campsite", + "park", + "garden", + "farm", + "picnic-site", + "zoo", + "dog-park", + "stadium", + "bowling-alley", + "pitch", + "cemetery" + ], + "hsl(117, 53%, 65%)", + [ + "restaurant-pizza", + "restaurant-seafood", + "restaurant", + "restaurant-noodle", + "bar", + "cafe", + "fast-food", + "bakery", + "ice-cream" + ], + "hsl(20, 50%, 65%)", + [ + "shop", + "shoe", + "alcohol-shop", + "convenience", + "grocery", + "clothing-store", + "jewelry-store" + ], + "hsl(213, 40%, 65%)", + ["bank", "parking", "parking-garage"], + "hsl(228, 17%, 65%)", + ["hospital", "doctor"], + "hsl(359, 22%, 65%)", + "hsl(201, 9%, 80%)" + ], + "text-halo-color": "hsl(0, 1%, 0%)", + "text-halo-width": 1, + "icon-translate": [0, 0], + "text-translate": [0, 0], + "text-halo-blur": 1 + } + } + ], + "created": "2019-06-28T21:20:23.628Z", + "modified": "2020-09-05T20:08:11.990Z", + "id": "cjxgloted25ap1ct4uex7m6hi", + "owner": "microg", + "visibility": "public", + "protected": false, + "draft": false +} \ No newline at end of file diff --git a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/GoogleMap.kt b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/GoogleMap.kt index 297dc873a..ded255746 100644 --- a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/GoogleMap.kt +++ b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/GoogleMap.kt @@ -130,6 +130,7 @@ class GoogleMapImpl(private val context: Context, var options: GoogleMapOptions) var tileId = 0L var storedMapType: Int = options.mapType + var mapStyle: MapStyleOptions? = null val waitingCameraUpdates = mutableListOf() var locationEnabled: Boolean = false @@ -247,6 +248,7 @@ class GoogleMapImpl(private val context: Context, var options: GoogleMapOptions) override fun setMapStyle(options: MapStyleOptions?): Boolean { Log.d(TAG, "setMapStyle options: " + options?.getJson()) + mapStyle = options return true } @@ -359,10 +361,10 @@ class GoogleMapImpl(private val context: Context, var options: GoogleMapOptions) override fun setMapType(type: Int) { storedMapType = type - applyMapType() + applyMapStyle() } - fun applyMapType() { + fun applyMapStyle() { val lines = lineManager?.annotations?.values() val fills = fillManager?.annotations?.values() val symbols = symbolManager?.annotations?.values() @@ -372,14 +374,10 @@ class GoogleMapImpl(private val context: Context, var options: GoogleMapOptions) symbols?.let { runCatching { symbolManager?.update(it) } } } - // TODO: Serve map styles locally - when (storedMapType) { - MAP_TYPE_SATELLITE -> map?.setStyle(Style.Builder().fromUri("mapbox://styles/microg/cjxgloted25ap1ct4uex7m6hi"), update) - MAP_TYPE_TERRAIN -> map?.setStyle(Style.Builder().fromUri("mapbox://styles/mapbox/outdoors-v12"), update) - MAP_TYPE_HYBRID -> map?.setStyle(Style.Builder().fromUri("mapbox://styles/microg/cjxgloted25ap1ct4uex7m6hi"), update) - //MAP_TYPE_NONE, MAP_TYPE_NORMAL, - else -> map?.setStyle(Style.Builder().fromUrl("mapbox://styles/microg/cjui4020201oo1fmca7yuwbor"), update) - } + map?.setStyle( + getStyle(MapContext(context), storedMapType, mapStyle), + update + ) map?.let { BitmapDescriptorFactoryImpl.registerMap(it) } @@ -681,7 +679,7 @@ class GoogleMapImpl(private val context: Context, var options: GoogleMapOptions) false } - applyMapType() + applyMapStyle() options.minZoomPreference?.let { if (it != 0f) map.setMinZoomPreference(it.toDouble()) } options.maxZoomPreference?.let { if (it != 0f) map.setMaxZoomPreference(it.toDouble()) } options.latLngBoundsForCameraTarget?.let { map.setLatLngBoundsForCameraTarget(it.toMapbox()) } diff --git a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt new file mode 100644 index 000000000..6942ef7ef --- /dev/null +++ b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt @@ -0,0 +1,76 @@ +package org.microg.gms.maps.mapbox + +import androidx.annotation.FloatRange +import com.google.android.gms.maps.model.MapStyleOptions +import com.google.gson.Gson +import com.google.gson.JsonSyntaxException +import com.google.gson.annotations.SerializedName +import com.mapbox.mapboxsdk.maps.Style +import org.json.JSONObject +import org.microg.gms.maps.MapsConstants +import org.microg.gms.maps.mapbox.utils.MapContext + +const val TAG = "GmsMapStyles" + + +fun getStyle(context: MapContext, storedMapType: Int, styleOptions: MapStyleOptions?): Style.Builder { + + // TODO: Serve map style resources locally + val styleJson = JSONObject(context.assets.open( + when (storedMapType) { + MapsConstants.MAP_TYPE_SATELLITE, MapsConstants.MAP_TYPE_HYBRID -> "style-microg-satellite.json" + MapsConstants.MAP_TYPE_TERRAIN -> "style-mapbox-outdoors-v12.json" + //MAP_TYPE_NONE, MAP_TYPE_NORMAL, + else -> "style-microg-normal.json" + } + ).bufferedReader().readText()) + + styleOptions?.apply(styleJson) + + return Style.Builder().fromJson(styleJson.toString()) +} + +fun MapStyleOptions.apply(style: JSONObject) { + try { + Gson().fromJson(json, Array::class.java).let { styleOperations -> + + val layerArray = style.getJSONArray("layers") + for (i in 0 until layerArray.length()) { + val layer = layerArray.getJSONObject(i) + if (layer.has("metadata") && layer.getJSONObject("metadata") + .let { it.has("microg:gms-type-feature") && it.has("microg:gms-type-element") } + ) { + val featureType = layer.getJSONObject("metadata").getString("microg:gms-type-feature") + val elementType = layer.getJSONObject("metadata").getString("microg:gms-type-element") + + for (operation in styleOperations) { + if (operation.featureType?.startsWith(featureType) != false && // Todo: "all" here as well? + (operation.elementType?.startsWith(elementType) != false || operation.elementType == "all") + ) { + operation.stylers?.forEach { styler -> styler.apply(layer) } + } + } + } + } + } + + + } catch (e: JsonSyntaxException) { + e.printStackTrace() + } +} + +class StyleOperation(val featureType: String?, val elementType: String?, val stylers: Array?) + +class Styler( + val hue: String?, + @FloatRange(from = -100.0, to = 100.0) val saturation: Float?, + @FloatRange(from = -100.0, to = 100.0) val lightness: Float?, + @FloatRange(from = 0.01, to = 10.0) val gamma: Float?, + @SerializedName("invert_lightness") val invertLightness: Boolean?, + val visibility: String?, + val color: String?, + val weight: Int? +) + +fun Styler.apply(layer: JSONObject) { TODO() } \ No newline at end of file -- GitLab From 00323fd2d72253aa2f8a15caf767146ebbfab63b Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Mon, 6 Mar 2023 12:12:08 +0100 Subject: [PATCH 02/12] Uniform formatting in styles json `jq --indent 4` --- .../assets/style-mapbox-outdoors-v12.json | 26906 ++++++++-------- .../src/main/assets/style-microg-normal.json | 2842 +- .../main/assets/style-microg-satellite.json | 2886 +- 3 files changed, 18225 insertions(+), 14409 deletions(-) diff --git a/play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json b/play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json index 4924428b8..e022a2916 100644 --- a/play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json +++ b/play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json @@ -1,13549 +1,13549 @@ { - "name": "Mapbox Outdoors", - "sprite": "mapbox://sprites/mapbox/outdoors-v12", - "glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf", - "center": [ - 9.1, - 42.2 - ], - "zoom": 7.5, - "fog": { - "range": [ - 1, - 20 + "name": "Mapbox Outdoors", + "sprite": "mapbox://sprites/mapbox/outdoors-v12", + "glyphs": "mapbox://fonts/mapbox/{fontstack}/{range}.pbf", + "center": [ + 9.1, + 42.2 ], - "color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 4, - "hsl(200, 100%, 100%)", - 6, - "hsl(200, 50%, 90%)" - ], - "high-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 4, - "hsl(200, 100%, 60%)", - 6, - "hsl(310, 60%, 80%)" - ], - "space-color": [ - "interpolate", - [ - "exponential", - 1.2 - ], - [ - "zoom" - ], - 4, - "hsl(205, 10%, 10%)", - 6, - "hsl(205, 60%, 50%)" - ], - "horizon-blend": [ - "interpolate", - [ - "exponential", - 1.2 - ], - [ - "zoom" - ], - 4, - 0.01, - 6, - 0.1 - ], - "star-intensity": [ - "interpolate", - [ - "exponential", - 1.2 - ], - [ - "zoom" - ], - 4, - 0.1, - 6, - 0 - ] - }, - "projection": { - "name": "globe" - }, - "visibility": "public", - "version": 8, - "layers": [ - { - "id": "land", - "type": "background", - "layout": {}, - "minzoom": 0, - "paint": { - "background-color": "hsl(60, 20%, 85%)" - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" - } - }, - { - "id": "landcover", - "type": "fill", - "source": "composite", - "source-layer": "landcover", - "minzoom": 0, - "maxzoom": 12, - "layout": {}, - "paint": { - "fill-color": [ - "match", - [ - "get", - "class" - ], - "wood", - "hsla(103, 50%, 60%, 0.8)", - "scrub", - "hsla(98, 47%, 68%, 0.6)", - "crop", - "hsla(68, 55%, 70%, 0.6)", - "grass", - "hsla(98, 50%, 74%, 0.6)", - "snow", - "hsl(205, 45%, 95%)", - "hsl(98, 48%, 67%)" - ], - "fill-opacity": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 8, - 0.8, - 12, - 0 - ], - "fill-antialias": false - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" - } - }, - { - "id": "national-park", - "type": "fill", - "source": "composite", - "source-layer": "landuse_overlay", - "minzoom": 5, - "filter": [ - "==", - [ - "get", - "class" - ], - "national_park" - ], - "layout": {}, - "paint": { - "fill-color": "hsl(98, 38%, 68%)", - "fill-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 5, - 0, - 6, - 0.6, - 12, - 0.2 - ] - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" - } - }, - { - "id": "national-park_tint-band", - "type": "line", - "source": "composite", - "source-layer": "landuse_overlay", - "minzoom": 9, - "filter": [ - "==", - [ - "get", - "class" - ], - "national_park" - ], - "layout": {}, - "paint": { - "line-color": "hsl(98, 38%, 68%)", - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 9, - 1, - 14, - 8 - ], - "line-blur": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 9, - 1, - 14, - 8 - ] - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" - } - }, - { - "id": "landuse", - "type": "fill", - "source": "composite", - "source-layer": "landuse", - "minzoom": 5, - "filter": [ - "all", - [ - ">=", - [ - "to-number", - [ - "get", - "sizerank" - ] - ], - 0 - ], - [ - "match", - [ - "get", - "class" - ], - [ - "agriculture", - "wood", - "grass", - "scrub", - "glacier", - "pitch", - "sand" - ], - [ - "step", - [ - "zoom" - ], - false, - 11, - true - ], - "residential", - [ - "step", - [ - "zoom" - ], - true, - 10, - false - ], - [ - "park", - "airport" - ], - [ - "step", - [ - "zoom" - ], - false, - 8, - [ - "case", - [ - "==", - [ - "get", - "sizerank" - ], - 1 - ], - true, - false - ], - 10, - true - ], - [ - "facility", - "industrial" - ], - [ - "step", - [ - "zoom" - ], - false, - 12, - true - ], - "rock", - [ - "step", - [ - "zoom" - ], - false, - 11, - true - ], - "cemetery", - [ - "step", - [ - "zoom" - ], - false, - 11, - true - ], - "school", - [ - "step", - [ - "zoom" - ], - false, - 11, - true - ], - "hospital", - [ - "step", - [ - "zoom" - ], - false, - 11, - true - ], - "commercial_area", - [ - "step", - [ - "zoom" - ], - false, - 11, - true - ], - false + "zoom": 7.5, + "fog": { + "range": [ + 1, + 20 ], - [ - "<=", - [ - "-", + "color": [ + "interpolate", [ - "to-number", - [ - "get", - "sizerank" - ] + "linear" ], [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ "zoom" - ], - 12, - 0, - 18, - 14 - ] - ], - 14 - ] - ], - "layout": {}, - "paint": { - "fill-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 15, - [ - "match", - [ - "get", - "class" - ], - "wood", - "hsla(103, 50%, 60%, 0.8)", - "scrub", - "hsla(98, 47%, 68%, 0.6)", - "agriculture", - "hsla(98, 50%, 74%, 0.6)", - "park", - [ - "match", - [ - "get", - "type" - ], - [ - "garden", - "playground", - "zoo" - ], - "hsl(98, 38%, 68%)", - "hsl(98, 55%, 70%)" - ], - "grass", - "hsla(98, 50%, 74%, 0.6)", - "airport", - "hsl(230, 40%, 82%)", - "cemetery", - "hsl(98, 45%, 75%)", - "glacier", - "hsl(205, 45%, 95%)", - "hospital", - "hsl(20, 45%, 82%)", - "pitch", - "hsl(88, 65%, 75%)", - "sand", - "hsl(69, 60%, 72%)", - "rock", - "hsl(60, 0%, 85%)", - "school", - "hsl(40, 45%, 78%)", - "commercial_area", - "hsl(55, 45%, 85%)", - "residential", - "hsl(60, 7%, 87%)", - [ - "facility", - "industrial" - ], - "hsl(230, 20%, 85%)", - "hsl(60, 22%, 72%)" - ], - 16, - [ - "match", - [ - "get", - "class" - ], - "wood", - "hsla(103, 50%, 60%, 0.8)", - "scrub", - "hsla(98, 47%, 68%, 0.6)", - "agriculture", - "hsla(98, 50%, 74%, 0.6)", - "park", - [ - "match", - [ - "get", - "type" - ], - [ - "garden", - "playground", - "zoo" - ], - "hsl(98, 38%, 68%)", - "hsl(98, 55%, 70%)" - ], - "grass", - "hsla(98, 50%, 74%, 0.6)", - "airport", - "hsl(230, 40%, 82%)", - "cemetery", - "hsl(98, 45%, 75%)", - "glacier", - "hsl(205, 45%, 95%)", - "hospital", - "hsl(20, 45%, 82%)", - "pitch", - "hsl(88, 65%, 75%)", - "sand", - "hsl(69, 60%, 72%)", - "rock", - "hsla(60, 0%, 85%, 0.5)", - "school", - "hsl(40, 45%, 78%)", - "commercial_area", - "hsla(55, 45%, 85%, 0.5)", - [ - "facility", - "industrial" - ], - "hsl(230, 20%, 85%)", - "hsl(60, 22%, 72%)" - ] - ], - "fill-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 8, - [ - "match", - [ - "get", - "class" - ], - "residential", - 0.8, - 0.2 - ], - 10, - [ - "match", - [ - "get", - "class" - ], - "residential", - 0, - 1 - ] - ], - "fill-antialias": false - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" - } - }, - { - "id": "pitch-outline", - "type": "line", - "source": "composite", - "source-layer": "landuse", - "minzoom": 15, - "filter": [ - "==", - [ - "get", - "class" - ], - "pitch" - ], - "layout": {}, - "paint": { - "line-color": "hsl(88, 60%, 65%)" - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" - } - }, - { - "id": "waterway-shadow", - "type": "line", - "source": "composite", - "source-layer": "waterway", - "minzoom": 10, - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 11, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 11, - "round" - ] - }, - "paint": { - "line-color": "hsl(224, 79%, 69%)", - "line-width": [ - "interpolate", - [ - "exponential", - 1.3 - ], - [ - "zoom" - ], - 9, - [ - "match", - [ - "get", - "class" - ], - [ - "canal", - "river" - ], - 0.1, - 0 - ], - 20, - [ - "match", - [ - "get", - "class" - ], - [ - "canal", - "river" - ], - 8, - 3 - ] - ], - "line-translate": [ - "interpolate", - [ - "exponential", - 1.2 - ], - [ - "zoom" - ], - 7, - [ - "literal", - [ - 0, - 0 - ] - ], - 16, - [ - "literal", - [ - -1, - -1 - ] - ] - ], - "line-translate-anchor": "viewport", - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 8, - 0, - 8.5, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" - } - }, - { - "id": "water-shadow", - "type": "fill", - "source": "composite", - "source-layer": "water", - "minzoom": 10, - "layout": {}, - "paint": { - "fill-color": "hsl(224, 79%, 69%)", - "fill-translate": [ - "interpolate", - [ - "exponential", - 1.2 - ], - [ - "zoom" - ], - 7, - [ - "literal", - [ - 0, - 0 - ] - ], - 16, - [ - "literal", - [ - -1, - -1 - ] - ] - ], - "fill-translate-anchor": "viewport" - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" - } - }, - { - "id": "waterway", - "type": "line", - "source": "composite", - "source-layer": "waterway", - "minzoom": 8, - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 11, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 11, - "round" - ] - }, - "paint": { - "line-color": "hsl(205, 75%, 70%)", - "line-width": [ - "interpolate", - [ - "exponential", - 1.3 - ], - [ - "zoom" - ], - 9, - [ - "match", - [ - "get", - "class" - ], - [ - "canal", - "river" - ], - 0.1, - 0 - ], - 20, - [ - "match", - [ - "get", - "class" - ], - [ - "canal", - "river" ], - 8, - 3 - ] + 4, + "hsl(200, 100%, 100%)", + 6, + "hsl(200, 50%, 90%)" ], - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 8, - 0, - 8.5, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" - } - }, - { - "id": "water", - "type": "fill", - "source": "composite", - "source-layer": "water", - "minzoom": 0, - "layout": {}, - "paint": { - "fill-color": "hsl(205, 75%, 70%)" - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" - } - }, - { - "id": "water-depth", - "type": "fill", - "source": "composite", - "source-layer": "depth", - "minzoom": 0, - "maxzoom": 8, - "layout": {}, - "paint": { - "fill-antialias": false, - "fill-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 6, - [ + "high-color": [ "interpolate", [ - "linear" + "linear" ], [ - "get", - "min_depth" - ], - 0, - "hsla(205, 75%, 70%, 0.35)", - 200, - "hsla(205, 75%, 63%, 0.35)", - 7000, - "hsla(205, 75%, 56%, 0.35)" - ], - 8, - [ - "interpolate", - [ - "linear" + "zoom" ], - [ - "get", - "min_depth" - ], - 0, - "hsla(205, 75%, 70%, 0)", - 200, - "hsla(205, 75%, 63%, 0)", - 7000, - "hsla(205, 75%, 53%, 0)" - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" - } - }, - { - "id": "wetland", - "type": "fill", - "source": "composite", - "source-layer": "landuse_overlay", - "minzoom": 5, - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "wetland", - "wetland_noveg" - ], - true, - false - ], - "paint": { - "fill-color": "hsl(194, 38%, 74%)", - "fill-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 10, - 0.25, - 10.5, - 0.15 - ] - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" - } - }, - { - "id": "wetland-pattern", - "type": "fill", - "source": "composite", - "source-layer": "landuse_overlay", - "minzoom": 5, - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "wetland", - "wetland_noveg" - ], - true, - false - ], - "paint": { - "fill-color": "hsl(194, 38%, 74%)", - "fill-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 10, - 0, - 10.5, - 1 + 4, + "hsl(200, 100%, 60%)", + 6, + "hsl(310, 60%, 80%)" ], - "fill-pattern": "wetland", - "fill-translate-anchor": "viewport" - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" - } - }, - { - "id": "hillshade", - "type": "fill", - "source": "composite", - "source-layer": "hillshade", - "filter": [ - "all", - [ - "step", - [ - "zoom" - ], - [ - "==", + "space-color": [ + "interpolate", [ - "get", - "class" + "exponential", + 1.2 ], - "shadow" - ], - 11, - true - ], - [ - "match", - [ - "get", - "level" - ], - 89, - true, - 78, - [ - "step", - [ - "zoom" - ], - false, - 5, - true - ], - 67, - [ - "step", [ - "zoom" - ], - false, - 9, - true - ], - 56, - [ - "step", - [ - "zoom" + "zoom" ], - false, + 4, + "hsl(205, 10%, 10%)", 6, - true - ], - 94, - [ - "step", - [ - "zoom" - ], - false, - 11, - true - ], - 90, - [ - "step", - [ - "zoom" - ], - false, - 12, - true - ], - false - ] - ], - "minzoom": 0, - "maxzoom": 16, - "layout": {}, - "paint": { - "fill-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 14, - [ - "match", - [ - "get", - "class" - ], - "shadow", - "hsla(66, 38%, 17%, 0.08)", - "hsla(60, 20%, 95%, 0.14)" - ], - 16, - [ - "match", - [ - "get", - "class" - ], - "shadow", - "hsla(66, 38%, 17%, 0)", - "hsla(60, 20%, 95%, 0)" - ] - ], - "fill-antialias": false - }, - "metadata": { - "mapbox:featureComponent": "terrain", - "mapbox:group": "Terrain, land" - } - }, - { - "id": "contour-line", - "type": "line", - "source": "composite", - "source-layer": "contour", - "minzoom": 11, - "filter": [ - "!=", - [ - "get", - "index" + "hsl(205, 60%, 50%)" ], - -1 - ], - "layout": {}, - "paint": { - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 11, - [ - "match", - [ - "get", - "index" - ], - [ - 1, - 2 - ], - 0.15, - 0.3 - ], - 13, - [ - "match", + "horizon-blend": [ + "interpolate", [ - "get", - "index" + "exponential", + 1.2 ], [ - 1, - 2 + "zoom" ], - 0.3, - 0.5 - ] + 4, + 0.01, + 6, + 0.1 ], - "line-color": "hsl(60, 10%, 35%)", - "line-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 13, - [ - "match", - [ - "get", - "index" - ], - [ - 1, - 2 - ], - 0.5, - 0.6 - ], - 16, - [ - "match", + "star-intensity": [ + "interpolate", [ - "get", - "index" + "exponential", + 1.2 ], [ - 1, - 2 + "zoom" ], - 0.8, - 1.2 - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "terrain", - "mapbox:group": "Terrain, land" - } - }, - { - "id": "land-structure-polygon", - "type": "fill", - "source": "composite", - "source-layer": "structure", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "land" - ], - [ - "==", - [ - "geometry-type" - ], - "Polygon" - ] - ], - "layout": {}, - "paint": { - "fill-color": "hsl(60, 20%, 85%)" - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, built" - } - }, - { - "id": "land-structure-line", - "type": "line", - "source": "composite", - "source-layer": "structure", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "land" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": "square" - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.99 - ], - [ - "zoom" - ], - 14, - 0.75, - 20, - 40 - ], - "line-color": "hsl(60, 20%, 85%)" - }, - "metadata": { - "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, built" - } - }, - { - "id": "aeroway-polygon", - "type": "fill", - "source": "composite", - "source-layer": "aeroway", - "minzoom": 11, - "filter": [ - "all", - [ - "match", - [ - "get", - "type" - ], - [ - "runway", - "taxiway", - "helipad" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "Polygon" - ] - ], - "paint": { - "fill-color": "hsl(230, 36%, 74%)", - "fill-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 10, - 0, - 11, - 1 + 4, + 0.1, + 6, + 0 ] - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, built" - } }, - { - "id": "aeroway-line", - "type": "line", - "source": "composite", - "source-layer": "aeroway", - "minzoom": 9, - "filter": [ - "==", - [ - "geometry-type" - ], - "LineString" - ], - "paint": { - "line-color": "hsl(230, 36%, 74%)", - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 9, - [ - "match", - [ - "get", - "type" + "projection": { + "name": "globe" + }, + "visibility": "public", + "version": 8, + "layers": [ + { + "id": "land", + "type": "background", + "layout": {}, + "minzoom": 0, + "paint": { + "background-color": "hsl(60, 20%, 85%)" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "landcover", + "type": "fill", + "source": "composite", + "source-layer": "landcover", + "minzoom": 0, + "maxzoom": 12, + "layout": {}, + "paint": { + "fill-color": [ + "match", + [ + "get", + "class" + ], + "wood", + "hsla(103, 50%, 60%, 0.8)", + "scrub", + "hsla(98, 47%, 68%, 0.6)", + "crop", + "hsla(68, 55%, 70%, 0.6)", + "grass", + "hsla(98, 50%, 74%, 0.6)", + "snow", + "hsl(205, 45%, 95%)", + "hsl(98, 48%, 67%)" + ], + "fill-opacity": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 8, + 0.8, + 12, + 0 + ], + "fill-antialias": false + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "national-park", + "type": "fill", + "source": "composite", + "source-layer": "landuse_overlay", + "minzoom": 5, + "filter": [ + "==", + [ + "get", + "class" + ], + "national_park" ], - "runway", - 1, - 0.5 - ], - 18, - [ - "match", - [ - "get", - "type" + "layout": {}, + "paint": { + "fill-color": "hsl(98, 38%, 68%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 5, + 0, + 6, + 0.6, + 12, + 0.2 + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "national-park_tint-band", + "type": "line", + "source": "composite", + "source-layer": "landuse_overlay", + "minzoom": 9, + "filter": [ + "==", + [ + "get", + "class" + ], + "national_park" ], - "runway", - 80, - 20 - ] - ], - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 10, - 0, - 11, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, built" - } - }, - { - "id": "building", - "type": "fill", - "source": "composite", - "source-layer": "building", - "minzoom": 15, - "filter": [ - "all", - [ - "!=", - [ - "get", - "type" - ], - "building:part" - ], - [ - "==", - [ - "get", - "underground" - ], - "false" - ] - ], - "layout": {}, - "paint": { - "fill-color": "hsl(50, 15%, 75%)", - "fill-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 15, - 0, - 16, - 1 - ], - "fill-outline-color": "hsl(60, 10%, 65%)" - }, - "metadata": { - "mapbox:featureComponent": "buildings", - "mapbox:group": "Buildings, built" - } - }, - { - "id": "building-underground", - "type": "fill", - "source": "composite", - "source-layer": "building", - "minzoom": 15, - "filter": [ - "all", - [ - "==", - [ - "get", - "underground" - ], - "true" - ], - [ - "==", - [ - "geometry-type" - ], - "Polygon" - ] - ], - "layout": {}, - "paint": { - "fill-color": "hsl(260, 60%, 85%)", - "fill-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 15, - 0, - 16, - 0.5 - ] - }, - "metadata": { - "mapbox:featureComponent": "buildings", - "mapbox:group": "Buildings, built" - } - }, - { - "id": "tunnel-minor-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "track" - ], - true, - "service", - [ - "step", - [ - "zoom" + "layout": {}, + "paint": { + "line-color": "hsl(98, 38%, 68%)", + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 9, + 1, + 14, + 8 + ], + "line-blur": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 9, + 1, + 14, + 8 + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "landuse", + "type": "fill", + "source": "composite", + "source-layer": "landuse", + "minzoom": 5, + "filter": [ + "all", + [ + ">=", + [ + "to-number", + [ + "get", + "sizerank" + ] + ], + 0 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "agriculture", + "wood", + "grass", + "scrub", + "glacier", + "pitch", + "sand" + ], + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + "residential", + [ + "step", + [ + "zoom" + ], + true, + 10, + false + ], + [ + "park", + "airport" + ], + [ + "step", + [ + "zoom" + ], + false, + 8, + [ + "case", + [ + "==", + [ + "get", + "sizerank" + ], + 1 + ], + true, + false + ], + 10, + true + ], + [ + "facility", + "industrial" + ], + [ + "step", + [ + "zoom" + ], + false, + 12, + true + ], + "rock", + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + "cemetery", + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + "school", + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + "hospital", + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + "commercial_area", + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + false + ], + [ + "<=", + [ + "-", + [ + "to-number", + [ + "get", + "sizerank" + ] + ], + [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0, + 18, + 14 + ] + ], + 14 + ] ], - false, - 14, - true - ], - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": "hsl(60, 3%, 57%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 18, - 10, - 22, - 100 - ], - "line-dasharray": [ - 3, - 3 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" - } - }, - { - "id": "tunnel-street-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "street", - "street_limited" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": "hsl(60, 3%, 57%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.5, - 18, - 20, - 22, - 200 - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 14, - 1 - ], - "line-dasharray": [ - 3, - 3 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" - } - }, - { - "id": "tunnel-minor-link-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "primary_link", - "secondary_link", - "tertiary_link" - ], - true, - false - ], - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 70%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.4, - 18, - 18, - 22, - 180 - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 11, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" - } - }, - { - "id": "tunnel-secondary-tertiary-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 11, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "secondary", - "tertiary" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 22, - 2 - ], - "line-color": "hsl(60, 3%, 57%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0, - 18, - 26, - 22, - 260 - ], - "line-dasharray": [ - 3, - 3 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" - } - }, - { - "id": "tunnel-primary-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 10, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "==", - [ - "get", - "class" - ], - "primary" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 22, - 2 - ], - "line-color": "hsl(60, 3%, 57%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 28, - 22, - 280 - ], - "line-dasharray": [ - 3, - 3 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" - } - }, - { - "id": "tunnel-major-link-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway_link", - "trunk_link" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.8, - 18, - 20, - 22, - 200 - ], - "line-dasharray": [ - 3, - 3 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" - } - }, - { - "id": "tunnel-motorway-trunk-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "trunk" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 82%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 30, - 22, - 300 - ], - "line-dasharray": [ - 3, - 3 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" - } - }, - { - "id": "tunnel-path-trail", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "==", - [ - "get", - "class" - ], - "path" - ], - [ - "match", - [ - "get", - "type" - ], - [ - "hiking", - "mountain_bike", - "trail" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": {}, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 1, - 18, - 4 - ], - "line-color": "hsl(60, 32%, 90%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 5, - 0.5 - ] - ], - 15, - [ - "literal", - [ - 4, - 0.5 - ] - ], - 16, - [ - "literal", - [ - 4, - 0.45 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., tunnels" - } - }, - { - "id": "tunnel-path-cycleway-piste", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "==", - [ - "get", - "class" - ], - "path" - ], - [ - "match", - [ - "get", - "type" - ], - [ - "cycleway", - "piste" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": {}, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 1, - 18, - 4 - ], - "line-color": "hsl(60, 32%, 90%)", - "line-dasharray": [ - 10, - 0 - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., tunnels" - } - }, - { - "id": "tunnel-path", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "==", - [ - "get", - "class" - ], - "path" - ], - [ - "!=", - [ - "get", - "type" - ], - "steps" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": {}, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 1, - 18, - 4 - ], - "line-color": "hsl(60, 32%, 90%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 1, - 0 - ] - ], - 15, - [ - "literal", - [ - 1.75, - 1 - ] - ], - 16, - [ - "literal", - [ - 1, - 0.75 - ] - ], - 17, - [ - "literal", - [ - 1, - 0.5 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., tunnels" - } - }, - { - "id": "tunnel-steps", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "==", - [ - "get", - "type" - ], - "steps" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 1, - 16, - 1.6, - 18, - 6 - ], - "line-color": "hsl(60, 32%, 90%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 1, - 0 - ] - ], - 15, - [ - "literal", - [ - 1.75, - 1 - ] - ], - 16, - [ - "literal", - [ - 1, - 0.75 - ] - ], - 17, - [ - "literal", - [ - 0.3, - 0.3 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., tunnels" - } - }, - { - "id": "tunnel-pedestrian", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "==", - [ - "get", - "class" - ], - "pedestrian" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.5, - 18, - 12 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 1, - 0 - ] - ], - 15, - [ - "literal", - [ - 1.5, - 0.4 - ] - ], - 16, - [ - "literal", - [ - 1, - 0.2 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., tunnels" - } - }, - { - "id": "tunnel-construction", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "==", - [ - "get", - "class" - ], - "construction" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 2, - 18, - 20, - 22, - 200 - ], - "line-color": "hsl(60, 10%, 70%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 0.4, - 0.8 - ] - ], - 15, - [ - "literal", - [ - 0.3, - 0.6 - ] - ], - 16, - [ - "literal", - [ - 0.2, - 0.3 - ] - ], - 17, - [ - "literal", - [ - 0.2, - 0.25 - ] - ], - 18, - [ - "literal", - [ - 0.15, - 0.15 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" - } - }, - { - "id": "tunnel-minor", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "track" - ], - true, - "service", - [ - "step", - [ - "zoom" + "layout": {}, + "paint": { + "fill-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + [ + "match", + [ + "get", + "class" + ], + "wood", + "hsla(103, 50%, 60%, 0.8)", + "scrub", + "hsla(98, 47%, 68%, 0.6)", + "agriculture", + "hsla(98, 50%, 74%, 0.6)", + "park", + [ + "match", + [ + "get", + "type" + ], + [ + "garden", + "playground", + "zoo" + ], + "hsl(98, 38%, 68%)", + "hsl(98, 55%, 70%)" + ], + "grass", + "hsla(98, 50%, 74%, 0.6)", + "airport", + "hsl(230, 40%, 82%)", + "cemetery", + "hsl(98, 45%, 75%)", + "glacier", + "hsl(205, 45%, 95%)", + "hospital", + "hsl(20, 45%, 82%)", + "pitch", + "hsl(88, 65%, 75%)", + "sand", + "hsl(69, 60%, 72%)", + "rock", + "hsl(60, 0%, 85%)", + "school", + "hsl(40, 45%, 78%)", + "commercial_area", + "hsl(55, 45%, 85%)", + "residential", + "hsl(60, 7%, 87%)", + [ + "facility", + "industrial" + ], + "hsl(230, 20%, 85%)", + "hsl(60, 22%, 72%)" + ], + 16, + [ + "match", + [ + "get", + "class" + ], + "wood", + "hsla(103, 50%, 60%, 0.8)", + "scrub", + "hsla(98, 47%, 68%, 0.6)", + "agriculture", + "hsla(98, 50%, 74%, 0.6)", + "park", + [ + "match", + [ + "get", + "type" + ], + [ + "garden", + "playground", + "zoo" + ], + "hsl(98, 38%, 68%)", + "hsl(98, 55%, 70%)" + ], + "grass", + "hsla(98, 50%, 74%, 0.6)", + "airport", + "hsl(230, 40%, 82%)", + "cemetery", + "hsl(98, 45%, 75%)", + "glacier", + "hsl(205, 45%, 95%)", + "hospital", + "hsl(20, 45%, 82%)", + "pitch", + "hsl(88, 65%, 75%)", + "sand", + "hsl(69, 60%, 72%)", + "rock", + "hsla(60, 0%, 85%, 0.5)", + "school", + "hsl(40, 45%, 78%)", + "commercial_area", + "hsla(55, 45%, 85%, 0.5)", + [ + "facility", + "industrial" + ], + "hsl(230, 20%, 85%)", + "hsl(60, 22%, 72%)" + ] + ], + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 8, + [ + "match", + [ + "get", + "class" + ], + "residential", + 0.8, + 0.2 + ], + 10, + [ + "match", + [ + "get", + "class" + ], + "residential", + 0, + 1 + ] + ], + "fill-antialias": false + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "pitch-outline", + "type": "line", + "source": "composite", + "source-layer": "landuse", + "minzoom": 15, + "filter": [ + "==", + [ + "get", + "class" + ], + "pitch" + ], + "layout": {}, + "paint": { + "line-color": "hsl(88, 60%, 65%)" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, land" + } + }, + { + "id": "waterway-shadow", + "type": "line", + "source": "composite", + "source-layer": "waterway", + "minzoom": 10, + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 11, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 11, + "round" + ] + }, + "paint": { + "line-color": "hsl(224, 79%, 69%)", + "line-width": [ + "interpolate", + [ + "exponential", + 1.3 + ], + [ + "zoom" + ], + 9, + [ + "match", + [ + "get", + "class" + ], + [ + "canal", + "river" + ], + 0.1, + 0 + ], + 20, + [ + "match", + [ + "get", + "class" + ], + [ + "canal", + "river" + ], + 8, + 3 + ] + ], + "line-translate": [ + "interpolate", + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], + 7, + [ + "literal", + [ + 0, + 0 + ] + ], + 16, + [ + "literal", + [ + -1, + -1 + ] + ] + ], + "line-translate-anchor": "viewport", + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 8, + 0, + 8.5, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "water-shadow", + "type": "fill", + "source": "composite", + "source-layer": "water", + "minzoom": 10, + "layout": {}, + "paint": { + "fill-color": "hsl(224, 79%, 69%)", + "fill-translate": [ + "interpolate", + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], + 7, + [ + "literal", + [ + 0, + 0 + ] + ], + 16, + [ + "literal", + [ + -1, + -1 + ] + ] + ], + "fill-translate-anchor": "viewport" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "waterway", + "type": "line", + "source": "composite", + "source-layer": "waterway", + "minzoom": 8, + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 11, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 11, + "round" + ] + }, + "paint": { + "line-color": "hsl(205, 75%, 70%)", + "line-width": [ + "interpolate", + [ + "exponential", + 1.3 + ], + [ + "zoom" + ], + 9, + [ + "match", + [ + "get", + "class" + ], + [ + "canal", + "river" + ], + 0.1, + 0 + ], + 20, + [ + "match", + [ + "get", + "class" + ], + [ + "canal", + "river" + ], + 8, + 3 + ] + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 8, + 0, + 8.5, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "water", + "type": "fill", + "source": "composite", + "source-layer": "water", + "minzoom": 0, + "layout": {}, + "paint": { + "fill-color": "hsl(205, 75%, 70%)" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "water-depth", + "type": "fill", + "source": "composite", + "source-layer": "depth", + "minzoom": 0, + "maxzoom": 8, + "layout": {}, + "paint": { + "fill-antialias": false, + "fill-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 6, + [ + "interpolate", + [ + "linear" + ], + [ + "get", + "min_depth" + ], + 0, + "hsla(205, 75%, 70%, 0.35)", + 200, + "hsla(205, 75%, 63%, 0.35)", + 7000, + "hsla(205, 75%, 56%, 0.35)" + ], + 8, + [ + "interpolate", + [ + "linear" + ], + [ + "get", + "min_depth" + ], + 0, + "hsla(205, 75%, 70%, 0)", + 200, + "hsla(205, 75%, 63%, 0)", + 7000, + "hsla(205, 75%, 53%, 0)" + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "wetland", + "type": "fill", + "source": "composite", + "source-layer": "landuse_overlay", + "minzoom": 5, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "wetland", + "wetland_noveg" + ], + true, + false + ], + "paint": { + "fill-color": "hsl(194, 38%, 74%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + 0.25, + 10.5, + 0.15 + ] + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "wetland-pattern", + "type": "fill", + "source": "composite", + "source-layer": "landuse_overlay", + "minzoom": 5, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "wetland", + "wetland_noveg" + ], + true, + false + ], + "paint": { + "fill-color": "hsl(194, 38%, 74%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + 0, + 10.5, + 1 + ], + "fill-pattern": "wetland", + "fill-translate-anchor": "viewport" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, water" + } + }, + { + "id": "hillshade", + "type": "fill", + "source": "composite", + "source-layer": "hillshade", + "filter": [ + "all", + [ + "step", + [ + "zoom" + ], + [ + "==", + [ + "get", + "class" + ], + "shadow" + ], + 11, + true + ], + [ + "match", + [ + "get", + "level" + ], + 89, + true, + 78, + [ + "step", + [ + "zoom" + ], + false, + 5, + true + ], + 67, + [ + "step", + [ + "zoom" + ], + false, + 9, + true + ], + 56, + [ + "step", + [ + "zoom" + ], + false, + 6, + true + ], + 94, + [ + "step", + [ + "zoom" + ], + false, + 11, + true + ], + 90, + [ + "step", + [ + "zoom" + ], + false, + 12, + true + ], + false + ] + ], + "minzoom": 0, + "maxzoom": 16, + "layout": {}, + "paint": { + "fill-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 14, + [ + "match", + [ + "get", + "class" + ], + "shadow", + "hsla(66, 38%, 17%, 0.08)", + "hsla(60, 20%, 95%, 0.14)" + ], + 16, + [ + "match", + [ + "get", + "class" + ], + "shadow", + "hsla(66, 38%, 17%, 0)", + "hsla(60, 20%, 95%, 0)" + ] + ], + "fill-antialias": false + }, + "metadata": { + "mapbox:featureComponent": "terrain", + "mapbox:group": "Terrain, land" + } + }, + { + "id": "contour-line", + "type": "line", + "source": "composite", + "source-layer": "contour", + "minzoom": 11, + "filter": [ + "!=", + [ + "get", + "index" + ], + -1 + ], + "layout": {}, + "paint": { + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 11, + [ + "match", + [ + "get", + "index" + ], + [ + 1, + 2 + ], + 0.15, + 0.3 + ], + 13, + [ + "match", + [ + "get", + "index" + ], + [ + 1, + 2 + ], + 0.3, + 0.5 + ] + ], + "line-color": "hsl(60, 10%, 35%)", + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + [ + "match", + [ + "get", + "index" + ], + [ + 1, + 2 + ], + 0.5, + 0.6 + ], + 16, + [ + "match", + [ + "get", + "index" + ], + [ + 1, + 2 + ], + 0.8, + 1.2 + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "terrain", + "mapbox:group": "Terrain, land" + } + }, + { + "id": "land-structure-polygon", + "type": "fill", + "source": "composite", + "source-layer": "structure", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "land" + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "layout": {}, + "paint": { + "fill-color": "hsl(60, 20%, 85%)" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, built" + } + }, + { + "id": "land-structure-line", + "type": "line", + "source": "composite", + "source-layer": "structure", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "land" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": "square" + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.99 + ], + [ + "zoom" + ], + 14, + 0.75, + 20, + 40 + ], + "line-color": "hsl(60, 20%, 85%)" + }, + "metadata": { + "mapbox:featureComponent": "land-and-water", + "mapbox:group": "Land & water, built" + } + }, + { + "id": "aeroway-polygon", + "type": "fill", + "source": "composite", + "source-layer": "aeroway", + "minzoom": 11, + "filter": [ + "all", + [ + "match", + [ + "get", + "type" + ], + [ + "runway", + "taxiway", + "helipad" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "paint": { + "fill-color": "hsl(230, 36%, 74%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, built" + } + }, + { + "id": "aeroway-line", + "type": "line", + "source": "composite", + "source-layer": "aeroway", + "minzoom": 9, + "filter": [ + "==", + [ + "geometry-type" + ], + "LineString" + ], + "paint": { + "line-color": "hsl(230, 36%, 74%)", + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 9, + [ + "match", + [ + "get", + "type" + ], + "runway", + 1, + 0.5 + ], + 18, + [ + "match", + [ + "get", + "type" + ], + "runway", + 80, + 20 + ] + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, built" + } + }, + { + "id": "building", + "type": "fill", + "source": "composite", + "source-layer": "building", + "minzoom": 15, + "filter": [ + "all", + [ + "!=", + [ + "get", + "type" + ], + "building:part" + ], + [ + "==", + [ + "get", + "underground" + ], + "false" + ] + ], + "layout": {}, + "paint": { + "fill-color": "hsl(50, 15%, 75%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + 0, + 16, + 1 + ], + "fill-outline-color": "hsl(60, 10%, 65%)" + }, + "metadata": { + "mapbox:featureComponent": "buildings", + "mapbox:group": "Buildings, built" + } + }, + { + "id": "building-underground", + "type": "fill", + "source": "composite", + "source-layer": "building", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + [ + "get", + "underground" + ], + "true" + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "layout": {}, + "paint": { + "fill-color": "hsl(260, 60%, 85%)", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + 0, + 16, + 0.5 + ] + }, + "metadata": { + "mapbox:featureComponent": "buildings", + "mapbox:group": "Buildings, built" + } + }, + { + "id": "tunnel-minor-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 3%, 57%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-street-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 3%, 57%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-minor-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-secondary-tertiary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 11, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 3%, 57%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-primary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 3%, 57%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-major-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-motorway-trunk-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-dasharray": [ + 3, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels-case" + } + }, + { + "id": "tunnel-path-trail", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "hiking", + "mountain_bike", + "trail" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(60, 32%, 90%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 5, + 0.5 + ] + ], + 15, + [ + "literal", + [ + 4, + 0.5 + ] + ], + 16, + [ + "literal", + [ + 4, + 0.45 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., tunnels" + } + }, + { + "id": "tunnel-path-cycleway-piste", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "cycleway", + "piste" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(60, 32%, 90%)", + "line-dasharray": [ + 10, + 0 + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., tunnels" + } + }, + { + "id": "tunnel-path", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "!=", + [ + "get", + "type" + ], + "steps" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(60, 32%, 90%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 1 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.75 + ] + ], + 17, + [ + "literal", + [ + 1, + 0.5 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., tunnels" + } + }, + { + "id": "tunnel-steps", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "type" + ], + "steps" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 16, + 1.6, + 18, + 6 + ], + "line-color": "hsl(60, 32%, 90%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 1 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.75 + ] + ], + 17, + [ + "literal", + [ + 0.3, + 0.3 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., tunnels" + } + }, + { + "id": "tunnel-pedestrian", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "pedestrian" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 18, + 12 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.5, + 0.4 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.2 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., tunnels" + } + }, + { + "id": "tunnel-construction", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "construction" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 2, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 0.4, + 0.8 + ] + ], + 15, + [ + "literal", + [ + 0.3, + 0.6 + ] + ], + 16, + [ + "literal", + [ + 0.2, + 0.3 + ] + ], + 17, + [ + "literal", + [ + 0.2, + 0.25 + ] + ], + 18, + [ + "literal", + [ + 0.15, + 0.15 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-minor", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "street_limited", + "hsl(60, 22%, 80%)", + "hsl(0, 0%, 95%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-minor-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-major-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway_link", + "hsl(15, 100%, 85%)", + "hsl(35, 78%, 85%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-street", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "street_limited", + "hsl(60, 22%, 80%)", + "hsl(0, 0%, 95%)" + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-street-low", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-secondary-tertiary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-primary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-motorway-trunk", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway", + "hsl(15, 100%, 85%)", + "hsl(35, 78%, 85%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-oneway-arrow-blue", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "==", + [ + "get", + "oneway" + ], + "true" + ], + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "street", + "street_limited", + "tertiary" + ], + true, + false + ], + 16, + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "street", + "street_limited", + "primary_link", + "secondary_link", + "tertiary_link", + "service", + "track" + ], + true, + false + ] + ] + ], + "layout": { + "symbol-placement": "line", + "icon-image": [ + "step", + [ + "zoom" + ], + "oneway-small", + 18, + "oneway-large" + ], + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "tunnel-oneway-arrow-white", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "tunnel" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "motorway_link", + "trunk", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "oneway" + ], + "true" + ] + ], + "layout": { + "symbol-placement": "line", + "icon-image": [ + "step", + [ + "zoom" + ], + "oneway-white-small", + 18, + "oneway-white-large" + ], + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, tunnels" + } + }, + { + "id": "cliff", + "type": "line", + "source": "composite", + "source-layer": "structure", + "minzoom": 15, + "filter": [ + "==", + [ + "get", + "class" + ], + "cliff" + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + 0, + 15.25, + 1 + ], + "line-width": 10, + "line-pattern": "cliff" + }, + "metadata": { + "mapbox:featureComponent": "terrain", + "mapbox:group": "Terrain, surface" + } + }, + { + "id": "ferry", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 8, + "filter": [ + "==", + [ + "get", + "type" + ], + "ferry" + ], + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + "hsl(214, 68%, 63%)", + 17, + "hsl(239, 68%, 63%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 20, + 1 + ], + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 13, + [ + "literal", + [ + 12, + 4 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, ferries" + } + }, + { + "id": "ferry-auto", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 8, + "filter": [ + "==", + [ + "get", + "type" + ], + "ferry_auto" + ], + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + "hsl(214, 68%, 63%)", + 17, + "hsl(239, 68%, 63%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 20, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, ferries" + } + }, + { + "id": "road-pedestrian-polygon-fill", + "type": "fill", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "path", + "pedestrian" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "case", + [ + "has", + "layer" + ], + [ + ">=", + [ + "get", + "layer" + ], + 0 + ], + true + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "paint": { + "fill-color": "hsl(60, 20%, 85%)" + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-pedestrian-polygon-pattern", + "type": "fill", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "path", + "pedestrian" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "case", + [ + "has", + "layer" + ], + [ + ">=", + [ + "get", + "layer" + ], + 0 + ], + true + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "paint": { + "fill-pattern": "pedestrian-polygon", + "fill-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 16, + 0, + 17, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-path-bg", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "step", + [ + "zoom" + ], + [ + "!", + [ + "match", + [ + "get", + "type" + ], + [ + "steps", + "sidewalk", + "crossing" + ], + true, + false + ] + ], + 16, + [ + "!=", + [ + "get", + "type" + ], + "steps" + ] + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 2, + 18, + 7 + ], + "line-color": [ + "match", + [ + "get", + "type" + ], + "piste", + "hsl(215, 80%, 48%)", + [ + "mountain_bike", + "hiking", + "trail", + "cycleway", + "footway", + "path", + "bridleway" + ], + "hsl(35, 80%, 48%)", + "hsl(60, 1%, 64%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-steps-bg", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "type" + ], + "steps" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 2, + 17, + 4.6, + 18, + 7 + ], + "line-color": "hsl(35, 80%, 48%)", + "line-opacity": 0.75 + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-pedestrian-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "pedestrian" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "case", + [ + "has", + "layer" + ], + [ + ">=", + [ + "get", + "layer" + ], + 0 + ], + true + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 2, + 18, + 14.5 + ], + "line-color": "hsl(60, 10%, 70%)" + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-path-trail", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "hiking", + "mountain_bike", + "trail" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 5, + 0.5 + ] + ], + 15, + [ + "literal", + [ + 4, + 0.5 + ] + ], + 16, + [ + "literal", + [ + 4, + 0.45 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-path-cycleway-piste", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "cycleway", + "piste" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + 10, + 0 + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-path", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "step", + [ + "zoom" + ], + [ + "!", + [ + "match", + [ + "get", + "type" + ], + [ + "steps", + "sidewalk", + "crossing" + ], + true, + false + ] + ], + 16, + [ + "!=", + [ + "get", + "type" + ], + "steps" + ] + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 13, + 0.5, + 14, + 1, + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 4, + 0.3 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 0.3 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.3 + ] + ], + 17, + [ + "literal", + [ + 1, + 0.25 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-steps", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "type" + ], + "steps" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 16, + 1.6, + 18, + 6 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 1 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.75 + ] + ], + 17, + [ + "literal", + [ + 0.3, + 0.3 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-pedestrian", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "pedestrian" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "case", + [ + "has", + "layer" + ], + [ + ">=", + [ + "get", + "layer" + ], + 0 + ], + true + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 18, + 12 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.5, + 0.4 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.2 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "golf-hole-line", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "==", + [ + "get", + "class" + ], + "golf" + ], + "paint": { + "line-color": "hsl(98, 26%, 56%)" + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., surface" + } + }, + { + "id": "road-polygon", + "type": "fill", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "primary_link", + "secondary_link", + "tertiary_link", + "trunk", + "trunk_link", + "street", + "street_limited", + "track", + "service" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "Polygon" + ] + ], + "paint": { + "fill-color": "hsl(0, 0%, 95%)", + "fill-outline-color": "hsl(60, 10%, 70%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "turning-feature-outline", + "type": "circle", + "source": "composite", + "source-layer": "road", + "minzoom": 15, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "turning_circle", + "turning_loop" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ] + ], + "paint": { + "circle-radius": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 4.5, + 16, + 8, + 18, + 20, + 22, + 200 + ], + "circle-color": "hsl(0, 0%, 95%)", + "circle-stroke-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + 0.8, + 16, + 1.2, + 18, + 2 + ], + "circle-stroke-color": "hsl(60, 10%, 70%)", + "circle-pitch-alignment": "map" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-minor-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "track", + "hsl(35, 80%, 48%)", + "hsl(60, 10%, 70%)" + ], + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-street-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-minor-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-secondary-tertiary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 11, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-primary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-major-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-motorway-trunk-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 3, + "filter": [ + "all", + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + 5, + [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ] + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0, + 3.5, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "turning-feature", + "type": "circle", + "source": "composite", + "source-layer": "road", + "minzoom": 15, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "turning_circle", + "turning_loop" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ] + ], + "paint": { + "circle-radius": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 4.5, + 16, + 8, + 18, + 20, + 22, + 200 + ], + "circle-color": "hsl(0, 0%, 95%)", + "circle-pitch-alignment": "map" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-construction", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "construction" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 2, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 0.4, + 0.8 + ] + ], + 15, + [ + "literal", + [ + 0.3, + 0.6 + ] + ], + 16, + [ + "literal", + [ + 0.2, + 0.3 + ] + ], + 17, + [ + "literal", + [ + 0.2, + 0.25 + ] + ], + 18, + [ + "literal", + [ + 0.15, + 0.15 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-minor", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-minor-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-major-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway_link", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-street", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "street_limited", + "hsl(60, 22%, 80%)", + "hsl(0, 0%, 95%)" + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-street-low", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 11, + "maxzoom": 14, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-secondary-tertiary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 9, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-primary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 6, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-motorway-trunk", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 3, + "filter": [ + "all", + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + 5, + [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ] + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-color": [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + "motorway", + "hsl(15, 88%, 69%)", + "trunk", + "hsl(35, 81%, 59%)", + "hsl(60, 18%, 85%)" + ], + 9, + [ + "match", + [ + "get", + "class" + ], + "motorway", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0, + 3.5, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface" + } + }, + { + "id": "road-rail", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "major_rail", + "minor_rail" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ], + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + "hsl(75, 25%, 68%)", + 16, + "hsl(60, 0%, 56%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 20, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, surface" + } + }, + { + "id": "road-rail-tracks", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "major_rail", + "minor_rail" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ], + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + "hsl(75, 25%, 68%)", + 16, + "hsl(60, 0%, 56%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 4, + 20, + 8 + ], + "line-dasharray": [ + 0.1, + 15 + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13.75, + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, surface" + } + }, + { + "id": "level-crossing", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "==", + [ + "get", + "class" + ], + "level_crossing" + ], + "layout": { + "icon-image": "level-crossing", + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface-icons" + } + }, + { + "id": "road-oneway-arrow-blue", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "oneway" + ], + "true" + ], + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "street", + "street_limited" + ], + true, + false + ], + 16, + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "street", + "street_limited", + "primary_link", + "secondary_link", + "tertiary_link", + "service", + "track" + ], + true, + false + ] + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ], + "layout": { + "symbol-placement": "line", + "icon-image": [ + "step", + [ + "zoom" + ], + "oneway-small", + 18, + "oneway-large" + ], + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface-icons" + } + }, + { + "id": "road-oneway-arrow-white", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "oneway" + ], + "true" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "none", + "ford" + ], + true, + false + ] + ], + "layout": { + "symbol-placement": "line", + "icon-image": [ + "step", + [ + "zoom" + ], + "oneway-white-small", + 18, + "oneway-white-large" + ], + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface-icons" + } + }, + { + "id": "crosswalks", + "type": "symbol", + "source": "composite", + "source-layer": "structure", + "minzoom": 17, + "filter": [ + "all", + [ + "==", + [ + "get", + "type" + ], + "crosswalk" + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ] + ], + "layout": { + "icon-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 16, + 0.1, + 18, + 0.2, + 19, + 0.5, + 22, + 1.5 + ], + "icon-image": [ + "step", + [ + "zoom" + ], + "crosswalk-small", + 18, + "crosswalk-large" + ], + "icon-rotate": [ + "get", + "direction" + ], + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, surface-icons" + } + }, + { + "id": "gate-fence-hedge", + "type": "line", + "source": "composite", + "source-layer": "structure", + "minzoom": 16, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "gate", + "fence", + "hedge" + ], + true, + false + ], + "layout": {}, + "paint": { + "line-color": [ + "match", + [ + "get", + "class" + ], + "hedge", + "hsl(98, 32%, 56%)", + "hsl(60, 25%, 63%)" + ], + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 16, + 1, + 20, + 3 + ], + "line-opacity": [ + "match", + [ + "get", + "class" + ], + "gate", + 0.5, + 1 + ], + "line-dasharray": [ + 1, + 2, + 5, + 2, + 1, + 2 + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-path-bg", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "step", + [ + "zoom" + ], + [ + "!", + [ + "match", + [ + "get", + "type" + ], + [ + "steps", + "sidewalk", + "crossing" + ], + true, + false + ] + ], + 16, + [ + "!=", + [ + "get", + "type" + ], + "steps" + ] + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 2, + 18, + 7 + ], + "line-color": [ + "match", + [ + "get", + "type" + ], + "piste", + "hsl(215, 80%, 48%)", + [ + "mountain_bike", + "hiking", + "trail", + "cycleway", + "footway", + "path", + "bridleway" + ], + "hsl(35, 80%, 48%)", + "hsl(60, 1%, 64%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-steps-bg", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "type" + ], + "steps" + ], + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 2, + 17, + 4.6, + 18, + 7 + ], + "line-color": "hsl(35, 80%, 48%)", + "line-opacity": 0.75 + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-pedestrian-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "pedestrian" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 2, + 18, + 14.5 + ], + "line-color": "hsl(60, 10%, 70%)" + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-path-trail", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "hiking", + "mountain_bike", + "trail" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 5, + 0.5 + ] + ], + 15, + [ + "literal", + [ + 4, + 0.5 + ] + ], + 16, + [ + "literal", + [ + 4, + 0.45 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-path-cycleway-piste", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "cycleway", + "piste" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + 10, + 0 + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-path", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "path" + ], + [ + "!=", + [ + "get", + "type" + ], + "steps" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": {}, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 18, + 4 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 4, + 0.3 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 0.3 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.3 + ] + ], + 17, + [ + "literal", + [ + 1, + 0.25 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-steps", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "type" + ], + "steps" + ], + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 15, + 1, + 16, + 1.6, + 18, + 6 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.75, + 1 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.75 + ] + ], + 17, + [ + "literal", + [ + 0.3, + 0.3 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-pedestrian", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "pedestrian" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 18, + 12 + ], + "line-color": "hsl(0, 0%, 95%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 1, + 0 + ] + ], + 15, + [ + "literal", + [ + 1.5, + 0.4 + ] + ], + 16, + [ + "literal", + [ + 1, + 0.2 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "gate-label", + "type": "symbol", + "source": "composite", + "source-layer": "structure", + "minzoom": 16, + "filter": [ + "==", + [ + "get", + "class" + ], + "gate" + ], + "layout": { + "icon-image": [ + "match", + [ + "get", + "type" + ], + "gate", + "gate", + "lift_gate", + "lift-gate", + "" + ] + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., barriers-bridges" + } + }, + { + "id": "bridge-minor-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "track", + "hsl(35, 80%, 48%)", + "hsl(60, 10%, 70%)" + ], + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-street-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "track", + "hsl(35, 80%, 48%)", + "hsl(60, 10%, 70%)" + ], + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-minor-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 11, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-secondary-tertiary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 11, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 10, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-primary-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 10, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-major-link-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "<=", + [ + "get", + "layer" + ], + 1 + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-motorway-trunk-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "<=", + [ + "get", + "layer" + ], + 1 + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-construction", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "construction" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 2, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(60, 10%, 70%)", + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 0.4, + 0.8 + ] + ], + 15, + [ + "literal", + [ + 0.3, + 0.6 + ] + ], + 16, + [ + "literal", + [ + 0.2, + 0.3 + ] + ], + 17, + [ + "literal", + [ + 0.2, + 0.25 + ] + ], + 18, + [ + "literal", + [ + 0.15, + 0.15 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-minor", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "track" + ], + true, + "service", + [ + "step", + [ + "zoom" + ], + false, + 14, + true + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 18, + 10, + 22, + 100 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-minor-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "primary_link", + "secondary_link", + "tertiary_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - false, - 14, - true - ], - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 18, - 10, - 22, - 100 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "street_limited", - "hsl(60, 22%, 80%)", - "hsl(0, 0%, 95%)" - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" - } - }, - { - "id": "tunnel-minor-link", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "primary_link", - "secondary_link", - "tertiary_link" - ], - true, - false - ], - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 13, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 13, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.4, - 18, - 18, - 22, - 180 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" - } - }, - { - "id": "tunnel-major-link", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway_link", - "trunk_link" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.8, - 18, - 20, - 22, - 200 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "motorway_link", - "hsl(15, 100%, 85%)", - "hsl(35, 78%, 85%)" - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" - } - }, - { - "id": "tunnel-street", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "street", - "street_limited" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.5, - 18, - 20, - 22, - 200 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "street_limited", - "hsl(60, 22%, 80%)", - "hsl(0, 0%, 95%)" - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 14, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" - } - }, - { - "id": "tunnel-street-low", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "maxzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "street", - "street_limited" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.5, - 18, - 20, - 22, - 200 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" - } - }, - { - "id": "tunnel-secondary-tertiary", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "secondary", - "tertiary" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0, - 18, - 26, - 22, - 260 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" - } - }, - { - "id": "tunnel-primary", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "==", - [ - "get", - "class" - ], - "primary" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 28, - 22, - 280 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" - } - }, - { - "id": "tunnel-motorway-trunk", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "trunk" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 30, - 22, - 300 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "motorway", - "hsl(15, 100%, 85%)", - "hsl(35, 78%, 85%)" - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" - } - }, - { - "id": "tunnel-oneway-arrow-blue", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 16, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "==", - [ - "get", - "oneway" - ], - "true" - ], - [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "class" + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.4, + 18, + 18, + 22, + 180 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-major-link", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "<=", + [ + "get", + "layer" + ], + 1 + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - [ - "primary", - "secondary", - "street", - "street_limited", - "tertiary" - ], - true, - false - ], - 16, - [ - "match", - [ - "get", - "class" + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway_link", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-street", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - [ - "primary", - "secondary", - "tertiary", - "street", - "street_limited", - "primary_link", - "secondary_link", - "tertiary_link", - "service", - "track" - ], - true, - false - ] - ] - ], - "layout": { - "symbol-placement": "line", - "icon-image": [ - "step", - [ - "zoom" - ], - "oneway-small", - 18, - "oneway-large" - ], - "symbol-spacing": 200, - "icon-rotation-alignment": "map", - "icon-allow-overlap": true, - "icon-ignore-placement": true - }, - "paint": {}, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" - } - }, - { - "id": "tunnel-oneway-arrow-white", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 16, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "tunnel" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "motorway_link", - "trunk", - "trunk_link" - ], - true, - false - ], - [ - "==", - [ - "get", - "oneway" - ], - "true" - ] - ], - "layout": { - "symbol-placement": "line", - "icon-image": [ - "step", - [ - "zoom" - ], - "oneway-white-small", - 18, - "oneway-white-large" - ], - "symbol-spacing": 200, - "icon-rotation-alignment": "map", - "icon-allow-overlap": true, - "icon-ignore-placement": true - }, - "paint": {}, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" - } - }, - { - "id": "cliff", - "type": "line", - "source": "composite", - "source-layer": "structure", - "minzoom": 15, - "filter": [ - "==", - [ - "get", - "class" - ], - "cliff" - ], - "layout": { - "line-cap": "round", - "line-join": "round" - }, - "paint": { - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 15, - 0, - 15.25, - 1 - ], - "line-width": 10, - "line-pattern": "cliff" - }, - "metadata": { - "mapbox:featureComponent": "terrain", - "mapbox:group": "Terrain, surface" - } - }, - { - "id": "ferry", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 8, - "filter": [ - "==", - [ - "get", - "type" - ], - "ferry" - ], - "paint": { - "line-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 15, - "hsl(214, 68%, 63%)", - 17, - "hsl(239, 68%, 63%)" - ], - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.5, - 20, - 1 - ], - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 1, - 0 - ] - ], - 13, - [ - "literal", - [ - 12, - 4 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, ferries" - } - }, - { - "id": "ferry-auto", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 8, - "filter": [ - "==", - [ - "get", - "type" - ], - "ferry_auto" - ], - "paint": { - "line-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 15, - "hsl(214, 68%, 63%)", - 17, - "hsl(239, 68%, 63%)" - ], - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.5, - 20, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, ferries" - } - }, - { - "id": "road-pedestrian-polygon-fill", - "type": "fill", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "path", - "pedestrian" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "case", - [ - "has", - "layer" - ], - [ - ">=", - [ - "get", - "layer" + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "street_limited", + "hsl(60, 22%, 80%)", + "hsl(0, 0%, 95%)" + ], + "line-opacity": [ + "step", + [ + "zoom" + ], + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-street-low", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street", + "street_limited" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - 0 - ], - true - ], - [ - "==", - [ - "geometry-type" - ], - "Polygon" - ] - ], - "paint": { - "fill-color": "hsl(60, 20%, 85%)" - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" - } - }, - { - "id": "road-pedestrian-polygon-pattern", - "type": "fill", - "source": "composite", - "source-layer": "road", - "minzoom": 16, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "path", - "pedestrian" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "case", - [ - "has", - "layer" - ], - [ - ">=", - [ - "get", - "layer" + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ], + "line-join": [ + "step", + [ + "zoom" + ], + "miter", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.5, + 18, + 20, + 22, + 200 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-secondary-tertiary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "secondary", + "tertiary" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0, + 18, + 26, + 22, + 260 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-primary", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "class" + ], + "primary" + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] + ], + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 28, + 22, + 280 + ], + "line-color": "hsl(0, 0%, 95%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-motorway-trunk", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "<=", + [ + "get", + "layer" + ], + 1 + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - 0 - ], - true - ], - [ - "==", - [ - "geometry-type" - ], - "Polygon" - ] - ], - "paint": { - "fill-pattern": "pedestrian-polygon", - "fill-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 16, - 0, - 17, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" - } - }, - { - "id": "road-path-bg", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "path" - ], - [ - "step", - [ - "zoom" - ], - [ - "!", - [ - "match", - [ - "get", - "type" - ], - [ - "steps", - "sidewalk", - "crossing" - ], - true, - false - ] - ], - 16, - [ - "!=", - [ - "get", - "type" + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-major-link-2-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + ">=", + [ + "get", + "layer" + ], + 2 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - "steps" - ] - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 2, - 18, - 7 - ], - "line-color": [ - "match", - [ - "get", - "type" - ], - "piste", - "hsl(215, 80%, 48%)", - [ - "mountain_bike", - "hiking", - "trail", - "cycleway", - "footway", - "path", - "bridleway" - ], - "hsl(35, 80%, 48%)", - "hsl(60, 1%, 64%)" - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" - } - }, - { - "id": "road-steps-bg", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "type" - ], - "steps" - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-join": "round" - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 2, - 17, - 4.6, - 18, - 7 - ], - "line-color": "hsl(35, 80%, 48%)", - "line-opacity": 0.75 - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" - } - }, - { - "id": "road-pedestrian-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "pedestrian" - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "case", - [ - "has", - "layer" - ], - [ - ">=", - [ - "get", - "layer" + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.8, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-motorway-trunk-2-case", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + ">=", + [ + "get", + "layer" + ], + 2 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - 0 - ], - true - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 2, - 18, - 14.5 - ], - "line-color": "hsl(60, 10%, 70%)" - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" - } - }, - { - "id": "road-path-trail", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "path" - ], - [ - "match", - [ - "get", - "type" - ], - [ - "hiking", - "mountain_bike", - "trail" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 1, - 18, - 4 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 5, - 0.5 - ] - ], - 15, - [ - "literal", - [ - 4, - 0.5 - ] - ], - 16, - [ - "literal", - [ - 4, - 0.45 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" - } - }, - { - "id": "road-path-cycleway-piste", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "path" - ], - [ - "match", - [ - "get", - "type" - ], - [ - "cycleway", - "piste" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 1, - 18, - 4 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - 10, - 0 - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" - } - }, - { - "id": "road-path", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "path" - ], - [ - "step", - [ - "zoom" - ], - [ - "!", - [ - "match", - [ - "get", - "type" - ], - [ - "steps", - "sidewalk", - "crossing" - ], - true, - false - ] - ], - 16, - [ - "!=", - [ - "get", - "type" + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 22, + 2 + ], + "line-color": "hsl(60, 10%, 82%)", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-major-link-2", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + ">=", + [ + "get", + "layer" + ], + 2 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - "steps" - ] - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 13, - 0.5, - 14, - 1, - 15, - 1, - 18, - 4 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 4, - 0.3 - ] - ], - 15, - [ - "literal", - [ - 1.75, - 0.3 - ] - ], - 16, - [ - "literal", - [ - 1, - 0.3 - ] - ], - 17, - [ - "literal", - [ - 1, - 0.25 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" - } - }, - { - "id": "road-steps", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "type" - ], - "steps" - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-join": "round" - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 1, - 16, - 1.6, - 18, - 6 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 1, - 0 - ] - ], - 15, - [ - "literal", - [ - 1.75, - 1 - ] - ], - 16, - [ - "literal", - [ - 1, - 0.75 - ] - ], - 17, - [ - "literal", - [ - 0.3, - 0.3 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" - } - }, - { - "id": "road-pedestrian", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "pedestrian" - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "case", - [ - "has", - "layer" - ], - [ - ">=", - [ - "get", - "layer" + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 13, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 12, + 0.8, + 18, + 20, + 22, + 200 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway_link", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-motorway-trunk-2", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + ">=", + [ + "get", + "layer" + ], + 2 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + true, + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - 0 - ], - true - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.5, - 18, - 12 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 1, - 0 - ] - ], - 15, - [ - "literal", - [ - 1.5, - 0.4 - ] - ], - 16, - [ - "literal", - [ - 1, - 0.2 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" - } - }, - { - "id": "golf-hole-line", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 16, - "filter": [ - "==", - [ - "get", - "class" - ], - "golf" - ], - "paint": { - "line-color": "hsl(98, 26%, 56%)" - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" - } - }, - { - "id": "road-polygon", - "type": "fill", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "primary", - "secondary", - "tertiary", - "primary_link", - "secondary_link", - "tertiary_link", - "trunk", - "trunk_link", - "street", - "street_limited", - "track", - "service" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "Polygon" - ] - ], - "paint": { - "fill-color": "hsl(0, 0%, 95%)", - "fill-outline-color": "hsl(60, 10%, 70%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "turning-feature-outline", - "type": "circle", - "source": "composite", - "source-layer": "road", - "minzoom": 15, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "turning_circle", - "turning_loop" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "Point" - ] - ], - "paint": { - "circle-radius": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 4.5, - 16, - 8, - 18, - 20, - 22, - 200 - ], - "circle-color": "hsl(0, 0%, 95%)", - "circle-stroke-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 15, - 0.8, - 16, - 1.2, - 18, - 2 - ], - "circle-stroke-color": "hsl(60, 10%, 70%)", - "circle-pitch-alignment": "map" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-minor-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "track" - ], - true, - "service", - [ - "step", - [ - "zoom" + "layout": { + "line-cap": [ + "step", + [ + "zoom" + ], + "butt", + 14, + "round" + ] + }, + "paint": { + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 3, + 0.8, + 18, + 30, + 22, + 300 + ], + "line-color": [ + "match", + [ + "get", + "class" + ], + "motorway", + "hsl(15, 100%, 75%)", + "hsl(35, 89%, 75%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-oneway-arrow-blue", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "==", + [ + "get", + "oneway" + ], + "true" + ], + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "street", + "street_limited" + ], + true, + false + ], + 16, + [ + "match", + [ + "get", + "class" + ], + [ + "primary", + "secondary", + "tertiary", + "street", + "street_limited", + "primary_link", + "secondary_link", + "tertiary_link", + "service", + "track" + ], + true, + false + ] + ] ], - false, - 14, - true - ], - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "track", - "hsl(35, 80%, 48%)", - "hsl(60, 10%, 70%)" - ], - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 18, - 10, - 22, - 100 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-street-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "street", - "street_limited" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 70%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.5, - 18, - 20, - 22, - 200 - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 14, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-minor-link-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "primary_link", - "secondary_link", - "tertiary_link" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 70%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.4, - 18, - 18, - 22, - 180 - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 11, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-secondary-tertiary-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 11, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "secondary", - "tertiary" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 70%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0, - 18, - 26, - 22, - 260 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-primary-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 10, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "primary" - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 70%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 28, - 22, - 280 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-major-link-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "motorway_link", - "trunk_link" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 82%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.8, - 18, - 20, - 22, - 200 - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 11, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-motorway-trunk-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 3, - "filter": [ - "all", - [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "class" + "layout": { + "symbol-placement": "line", + "icon-image": [ + "step", + [ + "zoom" + ], + "oneway-small", + 18, + "oneway-large" + ], + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-oneway-arrow-white", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "motorway_link", + "trunk_link" + ], + true, + false + ], + [ + "==", + [ + "get", + "oneway" + ], + "true" + ] ], - [ - "motorway", - "trunk" - ], - true, - false - ], - 5, - [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "trunk" - ], - true, - false + "layout": { + "symbol-placement": "line", + "icon-image": "oneway-white-small", + "symbol-spacing": 200, + "icon-rotation-alignment": "map", + "icon-allow-overlap": true, + "icon-ignore-placement": true + }, + "paint": {}, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, bridges" + } + }, + { + "id": "bridge-rail", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "major_rail", + "minor_rail" + ], + true, + false + ] ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ] - ] - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 82%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 30, - 22, - 300 - ], - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 3, - 0, - 3.5, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "turning-feature", - "type": "circle", - "source": "composite", - "source-layer": "road", - "minzoom": 15, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "turning_circle", - "turning_loop" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "Point" - ] - ], - "paint": { - "circle-radius": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 4.5, - 16, - 8, - 18, - 20, - 22, - 200 - ], - "circle-color": "hsl(0, 0%, 95%)", - "circle-pitch-alignment": "map" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-construction", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "construction" - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 2, - 18, - 20, - 22, - 200 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 0.4, - 0.8 - ] - ], - 15, - [ - "literal", - [ - 0.3, - 0.6 - ] - ], - 16, - [ - "literal", - [ - 0.2, - 0.3 - ] - ], - 17, - [ - "literal", - [ - 0.2, - 0.25 - ] - ], - 18, - [ - "literal", - [ - 0.15, - 0.15 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-minor", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "track" - ], - true, - "service", - [ - "step", - [ - "zoom" + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + "hsl(75, 25%, 68%)", + 16, + "hsl(60, 0%, 56%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 0.5, + 20, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, bridges" + } + }, + { + "id": "bridge-rail-tracks", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + [ + "get", + "structure" + ], + "bridge" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "major_rail", + "minor_rail" + ], + true, + false + ] ], - false, - 14, - true - ], - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 18, - 10, - 22, - 100 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-minor-link", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "primary_link", - "secondary_link", - "tertiary_link" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 13, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 13, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.4, - 18, - 18, - 22, - 180 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-major-link", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "motorway_link", - "trunk_link" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 13, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 13, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.8, - 18, - 20, - 22, - 200 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "motorway_link", - "hsl(15, 100%, 75%)", - "hsl(35, 89%, 75%)" - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-street", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "street", - "street_limited" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.5, - 18, - 20, - 22, - 200 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "street_limited", - "hsl(60, 22%, 80%)", - "hsl(0, 0%, 95%)" - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 14, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-street-low", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 11, - "maxzoom": 14, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "street", - "street_limited" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.5, - 18, - 20, - 22, - 200 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-secondary-tertiary", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 9, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "secondary", - "tertiary" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0, - 18, - 26, - 22, - 260 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-primary", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 6, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "primary" - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 28, - 22, - 280 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-motorway-trunk", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 3, - "filter": [ - "all", - [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "class" + "paint": { + "line-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + "hsl(75, 25%, 68%)", + 16, + "hsl(60, 0%, 56%)" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 4, + 20, + 8 + ], + "line-dasharray": [ + 0.1, + 15 + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13.75, + 0, + 14, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, bridges" + } + }, + { + "id": "aerialway", + "type": "line", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "==", + [ + "get", + "class" + ], + "aerialway" ], - [ - "motorway", - "trunk" - ], - true, - false - ], - 5, - [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "trunk" - ], - true, - false + "paint": { + "line-color": "hsl(230, 50%, 60%)", + "line-width": [ + "interpolate", + [ + "exponential", + 1.5 + ], + [ + "zoom" + ], + 14, + 1, + 20, + 2 + ], + "line-dasharray": [ + 4, + 1 + ] + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, elevated" + } + }, + { + "id": "admin-1-boundary-bg", + "type": "line", + "source": "composite", + "source-layer": "admin", + "minzoom": 7, + "filter": [ + "all", + [ + "==", + [ + "get", + "admin_level" + ], + 1 + ], + [ + "==", + [ + "get", + "maritime" + ], + "false" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ] ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ] - ] - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 13, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 13, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 30, - 22, - 300 - ], - "line-color": [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "class" - ], - "motorway", - "hsl(15, 88%, 69%)", - "trunk", - "hsl(35, 81%, 59%)", - "hsl(60, 18%, 85%)" - ], - 9, - [ - "match", - [ - "get", - "class" + "paint": { + "line-color": "hsl(350, 90%, 88%)", + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 3, + 12, + 6 + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 7, + 0, + 8, + 0.5 + ], + "line-dasharray": [ + 1, + 0 + ], + "line-blur": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0, + 12, + 3 + ] + }, + "metadata": { + "mapbox:featureComponent": "admin-boundaries", + "mapbox:group": "Administrative boundaries, admin" + } + }, + { + "id": "admin-0-boundary-bg", + "type": "line", + "source": "composite", + "source-layer": "admin", + "minzoom": 1, + "filter": [ + "all", + [ + "==", + [ + "get", + "admin_level" + ], + 0 + ], + [ + "==", + [ + "get", + "maritime" + ], + "false" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ] ], - "motorway", - "hsl(15, 100%, 75%)", - "hsl(35, 89%, 75%)" - ] - ], - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 3, - 0, - 3.5, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" - } - }, - { - "id": "road-rail", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "major_rail", - "minor_rail" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ] - ], - "paint": { - "line-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 13, - "hsl(75, 25%, 68%)", - 16, - "hsl(60, 0%, 56%)" - ], - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.5, - 20, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, surface" - } - }, - { - "id": "road-rail-tracks", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "major_rail", - "minor_rail" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ] - ], - "paint": { - "line-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 13, - "hsl(75, 25%, 68%)", - 16, - "hsl(60, 0%, 56%)" - ], - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 4, - 20, - 8 - ], - "line-dasharray": [ - 0.1, - 15 - ], - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 13.75, - 0, - 14, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, surface" - } - }, - { - "id": "level-crossing", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 16, - "filter": [ - "==", - [ - "get", - "class" - ], - "level_crossing" - ], - "layout": { - "icon-image": "level-crossing", - "icon-rotation-alignment": "map", - "icon-allow-overlap": true, - "icon-ignore-placement": true - }, - "paint": {}, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface-icons" - } - }, - { - "id": "road-oneway-arrow-blue", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 16, - "filter": [ - "all", - [ - "==", - [ - "get", - "oneway" - ], - "true" - ], - [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "class" + "paint": { + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 4, + 12, + 8 + ], + "line-color": "hsl(350, 90%, 88%)", + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0, + 4, + 0.5 + ], + "line-blur": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0, + 12, + 2 + ] + }, + "metadata": { + "mapbox:featureComponent": "admin-boundaries", + "mapbox:group": "Administrative boundaries, admin" + } + }, + { + "id": "admin-1-boundary", + "type": "line", + "source": "composite", + "source-layer": "admin", + "minzoom": 2, + "filter": [ + "all", + [ + "==", + [ + "get", + "admin_level" + ], + 1 + ], + [ + "==", + [ + "get", + "maritime" + ], + "false" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ] ], - [ - "primary", - "secondary", - "tertiary", - "street", - "street_limited" - ], - true, - false - ], - 16, - [ - "match", - [ - "get", - "class" + "layout": {}, + "paint": { + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 2, + 0 + ] + ], + 7, + [ + "literal", + [ + 2, + 2, + 6, + 2 + ] + ] + ], + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0.3, + 12, + 1.5 + ], + "line-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 2, + 0, + 3, + 1 + ], + "line-color": "hsl(350, 30%, 55%)" + }, + "metadata": { + "mapbox:featureComponent": "admin-boundaries", + "mapbox:group": "Administrative boundaries, admin" + } + }, + { + "id": "admin-0-boundary", + "type": "line", + "source": "composite", + "source-layer": "admin", + "minzoom": 1, + "filter": [ + "all", + [ + "==", + [ + "get", + "admin_level" + ], + 0 + ], + [ + "==", + [ + "get", + "disputed" + ], + "false" + ], + [ + "==", + [ + "get", + "maritime" + ], + "false" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ] ], - [ - "primary", - "secondary", - "tertiary", - "street", - "street_limited", - "primary_link", - "secondary_link", - "tertiary_link", - "service", - "track" - ], - true, - false - ] - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ] - ], - "layout": { - "symbol-placement": "line", - "icon-image": [ - "step", - [ - "zoom" - ], - "oneway-small", - 18, - "oneway-large" - ], - "symbol-spacing": 200, - "icon-rotation-alignment": "map", - "icon-allow-overlap": true, - "icon-ignore-placement": true - }, - "paint": {}, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface-icons" - } - }, - { - "id": "road-oneway-arrow-white", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 16, - "filter": [ - "all", - [ - "==", - [ - "get", - "oneway" - ], - "true" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "trunk", - "motorway_link", - "trunk_link" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "none", - "ford" - ], - true, - false - ] - ], - "layout": { - "symbol-placement": "line", - "icon-image": [ - "step", - [ - "zoom" - ], - "oneway-white-small", - 18, - "oneway-white-large" - ], - "symbol-spacing": 200, - "icon-rotation-alignment": "map", - "icon-allow-overlap": true, - "icon-ignore-placement": true - }, - "paint": {}, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface-icons" - } - }, - { - "id": "crosswalks", - "type": "symbol", - "source": "composite", - "source-layer": "structure", - "minzoom": 17, - "filter": [ - "all", - [ - "==", - [ - "get", - "type" - ], - "crosswalk" - ], - [ - "==", - [ - "geometry-type" - ], - "Point" - ] - ], - "layout": { - "icon-size": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 16, - 0.1, - 18, - 0.2, - 19, - 0.5, - 22, - 1.5 - ], - "icon-image": [ - "step", - [ - "zoom" - ], - "crosswalk-small", - 18, - "crosswalk-large" - ], - "icon-rotate": [ - "get", - "direction" - ], - "icon-rotation-alignment": "map", - "icon-allow-overlap": true, - "icon-ignore-placement": true - }, - "paint": {}, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface-icons" - } - }, - { - "id": "gate-fence-hedge", - "type": "line", - "source": "composite", - "source-layer": "structure", - "minzoom": 16, - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "gate", - "fence", - "hedge" - ], - true, - false - ], - "layout": {}, - "paint": { - "line-color": [ - "match", - [ - "get", - "class" - ], - "hedge", - "hsl(98, 32%, 56%)", - "hsl(60, 25%, 63%)" - ], - "line-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 16, - 1, - 20, - 3 - ], - "line-opacity": [ - "match", - [ - "get", - "class" - ], - "gate", - 0.5, - 1 - ], - "line-dasharray": [ - 1, - 2, - 5, - 2, - 1, - 2 - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" - } - }, - { - "id": "bridge-path-bg", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "get", - "class" - ], - "path" - ], - [ - "step", - [ - "zoom" - ], - [ - "!", - [ - "match", - [ - "get", - "type" - ], - [ - "steps", - "sidewalk", - "crossing" - ], - true, - false - ] - ], - 16, - [ - "!=", - [ - "get", - "type" + "layout": {}, + "paint": { + "line-color": "hsl(350, 30%, 50%)", + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0.5, + 12, + 2 + ], + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 2, + 0 + ] + ], + 7, + [ + "literal", + [ + 2, + 2, + 6, + 2 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "admin-boundaries", + "mapbox:group": "Administrative boundaries, admin" + } + }, + { + "id": "admin-0-boundary-disputed", + "type": "line", + "source": "composite", + "source-layer": "admin", + "minzoom": 1, + "filter": [ + "all", + [ + "==", + [ + "get", + "disputed" + ], + "true" + ], + [ + "==", + [ + "get", + "admin_level" + ], + 0 + ], + [ + "==", + [ + "get", + "maritime" + ], + "false" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ] ], - "steps" - ] - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 2, - 18, - 7 - ], - "line-color": [ - "match", - [ - "get", - "type" - ], - "piste", - "hsl(215, 80%, 48%)", - [ - "mountain_bike", - "hiking", - "trail", - "cycleway", - "footway", - "path", - "bridleway" - ], - "hsl(35, 80%, 48%)", - "hsl(60, 1%, 64%)" - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" - } - }, - { - "id": "bridge-steps-bg", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "type" - ], - "steps" - ], - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 2, - 17, - 4.6, - 18, - 7 - ], - "line-color": "hsl(35, 80%, 48%)", - "line-opacity": 0.75 - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" - } - }, - { - "id": "bridge-pedestrian-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "get", - "class" - ], - "pedestrian" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 2, - 18, - 14.5 - ], - "line-color": "hsl(60, 10%, 70%)" - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" - } - }, - { - "id": "bridge-path-trail", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "get", - "class" - ], - "path" - ], - [ - "match", - [ - "get", - "type" - ], - [ - "hiking", - "mountain_bike", - "trail" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": {}, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 1, - 18, - 4 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 5, - 0.5 - ] - ], - 15, - [ - "literal", - [ - 4, - 0.5 - ] - ], - 16, - [ - "literal", - [ - 4, - 0.45 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" - } - }, - { - "id": "bridge-path-cycleway-piste", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "get", - "class" - ], - "path" - ], - [ - "match", - [ - "get", - "type" - ], - [ - "cycleway", - "piste" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": {}, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 1, - 18, - 4 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - 10, - 0 - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" - } - }, - { - "id": "bridge-path", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "get", - "class" - ], - "path" - ], - [ - "!=", - [ - "get", - "type" - ], - "steps" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": {}, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 1, - 18, - 4 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 4, - 0.3 - ] - ], - 15, - [ - "literal", - [ - 1.75, - 0.3 - ] - ], - 16, - [ - "literal", - [ - 1, - 0.3 - ] - ], - 17, - [ - "literal", - [ - 1, - 0.25 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" - } - }, - { - "id": "bridge-steps", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "type" - ], - "steps" - ], - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 15, - 1, - 16, - 1.6, - 18, - 6 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 1, - 0 - ] - ], - 15, - [ - "literal", - [ - 1.75, - 1 - ] - ], - 16, - [ - "literal", - [ - 1, - 0.75 - ] - ], - 17, - [ - "literal", - [ - 0.3, - 0.3 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" - } - }, - { - "id": "bridge-pedestrian", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "get", - "class" - ], - "pedestrian" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.5, - 18, - 12 - ], - "line-color": "hsl(0, 0%, 95%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 1, - 0 - ] - ], - 15, - [ - "literal", - [ - 1.5, - 0.4 - ] - ], - 16, - [ - "literal", - [ - 1, - 0.2 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" - } - }, - { - "id": "gate-label", - "type": "symbol", - "source": "composite", - "source-layer": "structure", - "minzoom": 16, - "filter": [ - "==", - [ - "get", - "class" - ], - "gate" - ], - "layout": { - "icon-image": [ - "match", - [ - "get", - "type" - ], - "gate", - "gate", - "lift_gate", - "lift-gate", - "" - ] - }, - "paint": {}, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" - } - }, - { - "id": "bridge-minor-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "track" - ], - true, - "service", - [ - "step", - [ - "zoom" + "paint": { + "line-color": "hsl(350, 30%, 50%)", + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0.5, + 12, + 2 + ], + "line-dasharray": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 3, + 2, + 5 + ] + ], + 7, + [ + "literal", + [ + 2, + 1.5 + ] + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "admin-boundaries", + "mapbox:group": "Administrative boundaries, admin" + } + }, + { + "id": "contour-label", + "type": "symbol", + "source": "composite", + "source-layer": "contour", + "minzoom": 11, + "filter": [ + "any", + [ + "==", + [ + "get", + "index" + ], + 10 + ], + [ + "==", + [ + "get", + "index" + ], + 5 + ] ], - false, - 14, - true - ], - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "track", - "hsl(35, 80%, 48%)", - "hsl(60, 10%, 70%)" - ], - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 18, - 10, - 22, - 100 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-street-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "street", - "street_limited" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "track", - "hsl(35, 80%, 48%)", - "hsl(60, 10%, 70%)" - ], - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.5, - 18, - 20, - 22, - 200 - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 14, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-minor-link-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "primary_link", - "secondary_link", - "tertiary_link" - ], - true, - false - ], - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 70%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.4, - 18, - 18, - 22, - 180 - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 11, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-secondary-tertiary-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 11, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "secondary", - "tertiary" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 70%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0, - 18, - 26, - 22, - 260 - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 10, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-primary-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 10, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "get", - "class" - ], - "primary" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 70%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 28, - 22, - 280 - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 10, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-major-link-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway_link", - "trunk_link" - ], - true, - false - ], - [ - "<=", - [ - "get", - "layer" - ], - 1 - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 82%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.8, - 18, - 20, - 22, - 200 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-motorway-trunk-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "trunk" - ], - true, - false - ], - [ - "<=", - [ - "get", - "layer" - ], - 1 - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 82%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 30, - 22, - 300 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-construction", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "get", - "class" - ], - "construction" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 2, - 18, - 20, - 22, - 200 - ], - "line-color": "hsl(60, 10%, 70%)", - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 0.4, - 0.8 - ] - ], - 15, - [ - "literal", - [ - 0.3, - 0.6 - ] - ], - 16, - [ - "literal", - [ - 0.2, - 0.3 - ] - ], - 17, - [ - "literal", - [ - 0.2, - 0.25 - ] - ], - 18, - [ - "literal", - [ - 0.15, - 0.15 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-minor", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "track" - ], - true, - "service", - [ - "step", - [ - "zoom" + "layout": { + "text-field": [ + "concat", + [ + "get", + "ele" + ], + " m" + ], + "symbol-placement": "line", + "text-pitch-alignment": "viewport", + "text-max-angle": 25, + "text-padding": 5, + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 15, + 9.5, + 20, + 12 + ] + }, + "paint": { + "text-color": "hsl(60, 10%, 35%)", + "text-halo-width": 1, + "text-halo-color": "hsl(60, 10%, 85%)" + }, + "metadata": { + "mapbox:featureComponent": "terrain", + "mapbox:group": "Terrain, terrain-labels" + } + }, + { + "id": "building-entrance", + "type": "symbol", + "source": "composite", + "source-layer": "structure", + "minzoom": 18, + "filter": [ + "==", + [ + "get", + "class" + ], + "entrance" ], - false, - 14, - true - ], - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 18, - 10, - 22, - 100 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-minor-link", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "primary_link", - "secondary_link", - "tertiary_link" - ], - true, - false - ], - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.4, - 18, - 18, - 22, - 180 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-major-link", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway_link", - "trunk_link" - ], - true, - false - ], - [ - "<=", - [ - "get", - "layer" - ], - 1 - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 13, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.8, - 18, - 20, - 22, - 200 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "motorway_link", - "hsl(15, 100%, 75%)", - "hsl(35, 89%, 75%)" - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-street", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "street", - "street_limited" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.5, - 18, - 20, - 22, - 200 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "street_limited", - "hsl(60, 22%, 80%)", - "hsl(0, 0%, 95%)" - ], - "line-opacity": [ - "step", - [ - "zoom" - ], - 0, - 14, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-street-low", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "maxzoom": 14, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "street", - "street_limited" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ], - "line-join": [ - "step", - [ - "zoom" - ], - "miter", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.5, - 18, - 20, - 22, - 200 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-secondary-tertiary", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "secondary", - "tertiary" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0, - 18, - 26, - 22, - 260 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-primary", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "get", - "class" - ], - "primary" - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 28, - 22, - 280 - ], - "line-color": "hsl(0, 0%, 95%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-motorway-trunk", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "trunk" - ], - true, - false - ], - [ - "<=", - [ - "get", - "layer" - ], - 1 - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 30, - 22, - 300 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "motorway", - "hsl(15, 100%, 75%)", - "hsl(35, 89%, 75%)" - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-major-link-2-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - ">=", - [ - "get", - "layer" - ], - 2 - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway_link", - "trunk_link" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.8, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 82%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.8, - 18, - 20, - 22, - 200 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-motorway-trunk-2-case", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - ">=", - [ - "get", - "layer" - ], - 2 - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "trunk" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 22, - 2 - ], - "line-color": "hsl(60, 10%, 82%)", - "line-gap-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 30, - 22, - 300 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-major-link-2", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - ">=", - [ - "get", - "layer" - ], - 2 - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway_link", - "trunk_link" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 13, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 12, - 0.8, - 18, - 20, - 22, - 200 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "motorway_link", - "hsl(15, 100%, 75%)", - "hsl(35, 89%, 75%)" - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-motorway-trunk-2", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - ">=", - [ - "get", - "layer" - ], - 2 - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "trunk" - ], - true, - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "line-cap": [ - "step", - [ - "zoom" - ], - "butt", - 14, - "round" - ] - }, - "paint": { - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 3, - 0.8, - 18, - 30, - 22, - 300 - ], - "line-color": [ - "match", - [ - "get", - "class" - ], - "motorway", - "hsl(15, 100%, 75%)", - "hsl(35, 89%, 75%)" - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-oneway-arrow-blue", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 16, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "==", - [ - "get", - "oneway" - ], - "true" - ], - [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "class" + "layout": { + "icon-image": "marker", + "text-field": [ + "get", + "ref" + ], + "text-size": 10, + "text-offset": [ + 0, + -0.5 + ], + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ] + }, + "paint": { + "text-color": "hsl(60, 8%, 38%)", + "text-halo-color": "hsl(60, 13%, 77%)", + "text-halo-width": 1, + "icon-opacity": 0.4 + }, + "metadata": { + "mapbox:featureComponent": "buildings", + "mapbox:group": "Buildings, building-labels" + } + }, + { + "id": "building-number-label", + "type": "symbol", + "source": "composite", + "source-layer": "housenum_label", + "minzoom": 17, + "layout": { + "text-field": [ + "get", + "house_num" + ], + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ], + "text-padding": 4, + "text-max-width": 7, + "text-size": 10 + }, + "paint": { + "text-color": "hsl(60, 8%, 38%)", + "text-halo-color": "hsl(60, 13%, 77%)", + "text-halo-width": 1 + }, + "metadata": { + "mapbox:featureComponent": "buildings", + "mapbox:group": "Buildings, building-labels" + } + }, + { + "id": "block-number-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "settlement_subdivision" + ], + [ + "==", + [ + "get", + "type" + ], + "block" + ] ], - [ - "primary", - "secondary", - "tertiary", - "street", - "street_limited" - ], - true, - false - ], - 16, - [ - "match", - [ - "get", - "class" + "layout": { + "text-field": [ + "get", + "name" + ], + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ], + "text-max-width": 7, + "text-size": 11 + }, + "paint": { + "text-color": "hsl(60, 18%, 44%)", + "text-halo-color": "hsl(60, 17%, 84%)", + "text-halo-width": 0.5, + "text-halo-blur": 0.5 + }, + "metadata": { + "mapbox:featureComponent": "buildings", + "mapbox:group": "Buildings, building-labels" + } + }, + { + "id": "road-label", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 10, + "filter": [ + "all", + [ + "has", + "name" + ], + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "primary", + "secondary", + "tertiary" + ], + true, + false + ], + 12, + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "primary", + "secondary", + "tertiary", + "street", + "street_limited", + "track" + ], + true, + false + ], + 15, + [ + "match", + [ + "get", + "class" + ], + [ + "path", + "pedestrian", + "golf", + "ferry", + "aerialway" + ], + false, + true + ] + ] + ], + "layout": { + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "primary", + "secondary", + "tertiary" + ], + 10, + [ + "motorway_link", + "trunk_link", + "primary_link", + "secondary_link", + "tertiary_link", + "street", + "street_limited", + "track" + ], + 9, + 6.5 + ], + 18, + [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk", + "primary", + "secondary", + "tertiary" + ], + 16, + [ + "motorway_link", + "trunk_link", + "primary_link", + "secondary_link", + "tertiary_link", + "street", + "street_limited", + "track" + ], + 14, + 13 + ] + ], + "text-max-angle": 30, + "text-font": [ + "DIN Pro Regular", + "Arial Unicode MS Regular" + ], + "symbol-placement": "line", + "text-padding": 1, + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-letter-spacing": 0.01 + }, + "paint": { + "text-color": "hsl(0,0%, 0%)", + "text-halo-color": [ + "match", + [ + "get", + "class" + ], + [ + "motorway", + "trunk" + ], + "hsla(60, 25%, 100%, 0.75)", + "hsl(60, 25%, 100%)" + ], + "text-halo-width": 1, + "text-halo-blur": 1 + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, road-labels" + } + }, + { + "id": "road-intersection", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + [ + "get", + "class" + ], + "intersection" + ], + [ + "has", + "name" + ] + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "icon-image": "intersection", + "icon-text-fit": "both", + "icon-text-fit-padding": [ + 1, + 2, + 1, + 2 + ], + "text-size": [ + "interpolate", + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], + 15, + 9, + 18, + 12 + ], + "text-font": [ + "DIN Pro Bold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-color": "hsl(230, 36%, 64%)" + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, road-labels" + } + }, + { + "id": "road-number-shield", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 6, + "filter": [ + "all", + [ + "has", + "reflen" + ], + [ + "<=", + [ + "get", + "reflen" + ], + 6 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "pedestrian", + "service" + ], + false, + true + ], + [ + "step", + [ + "zoom" + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ], + 11, + [ + ">", + [ + "get", + "len" + ], + 5000 + ], + 12, + [ + ">", + [ + "get", + "len" + ], + 2500 + ], + 13, + [ + ">", + [ + "get", + "len" + ], + 1000 + ], + 14, + true + ] ], - [ - "primary", - "secondary", - "tertiary", - "street", - "street_limited", - "primary_link", - "secondary_link", - "tertiary_link", - "service", - "track" - ], - true, - false - ] - ] - ], - "layout": { - "symbol-placement": "line", - "icon-image": [ - "step", - [ - "zoom" - ], - "oneway-small", - 18, - "oneway-large" - ], - "symbol-spacing": 200, - "icon-rotation-alignment": "map", - "icon-allow-overlap": true, - "icon-ignore-placement": true - }, - "paint": {}, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-oneway-arrow-white", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 16, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "trunk", - "motorway_link", - "trunk_link" - ], - true, - false - ], - [ - "==", - [ - "get", - "oneway" - ], - "true" - ] - ], - "layout": { - "symbol-placement": "line", - "icon-image": "oneway-white-small", - "symbol-spacing": 200, - "icon-rotation-alignment": "map", - "icon-allow-overlap": true, - "icon-ignore-placement": true - }, - "paint": {}, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" - } - }, - { - "id": "bridge-rail", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "major_rail", - "minor_rail" - ], - true, - false - ] - ], - "paint": { - "line-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 13, - "hsl(75, 25%, 68%)", - 16, - "hsl(60, 0%, 56%)" - ], - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 0.5, - 20, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, bridges" - } - }, - { - "id": "bridge-rail-tracks", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 13, - "filter": [ - "all", - [ - "==", - [ - "get", - "structure" - ], - "bridge" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "major_rail", - "minor_rail" - ], - true, - false - ] - ], - "paint": { - "line-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 13, - "hsl(75, 25%, 68%)", - 16, - "hsl(60, 0%, 56%)" - ], - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 4, - 20, - 8 - ], - "line-dasharray": [ - 0.1, - 15 - ], - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 13.75, - 0, - 14, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, bridges" - } - }, - { - "id": "aerialway", - "type": "line", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "==", - [ - "get", - "class" - ], - "aerialway" - ], - "paint": { - "line-color": "hsl(230, 50%, 60%)", - "line-width": [ - "interpolate", - [ - "exponential", - 1.5 - ], - [ - "zoom" - ], - 14, - 1, - 20, - 2 - ], - "line-dasharray": [ - 4, - 1 - ] - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, elevated" - } - }, - { - "id": "admin-1-boundary-bg", - "type": "line", - "source": "composite", - "source-layer": "admin", - "minzoom": 7, - "filter": [ - "all", - [ - "==", - [ - "get", - "admin_level" - ], - 1 - ], - [ - "==", - [ - "get", - "maritime" - ], - "false" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ] - ], - "paint": { - "line-color": "hsl(350, 90%, 88%)", - "line-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 3, - 3, - 12, - 6 - ], - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 7, - 0, - 8, - 0.5 - ], - "line-dasharray": [ - 1, - 0 - ], - "line-blur": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 3, - 0, - 12, - 3 - ] - }, - "metadata": { - "mapbox:featureComponent": "admin-boundaries", - "mapbox:group": "Administrative boundaries, admin" - } - }, - { - "id": "admin-0-boundary-bg", - "type": "line", - "source": "composite", - "source-layer": "admin", - "minzoom": 1, - "filter": [ - "all", - [ - "==", - [ - "get", - "admin_level" - ], - 0 - ], - [ - "==", - [ - "get", - "maritime" - ], - "false" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ] - ], - "paint": { - "line-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 3, - 4, - 12, - 8 - ], - "line-color": "hsl(350, 90%, 88%)", - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 3, - 0, - 4, - 0.5 - ], - "line-blur": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 3, - 0, - 12, - 2 - ] - }, - "metadata": { - "mapbox:featureComponent": "admin-boundaries", - "mapbox:group": "Administrative boundaries, admin" - } - }, - { - "id": "admin-1-boundary", - "type": "line", - "source": "composite", - "source-layer": "admin", - "minzoom": 2, - "filter": [ - "all", - [ - "==", - [ - "get", - "admin_level" - ], - 1 - ], - [ - "==", - [ - "get", - "maritime" - ], - "false" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ] - ], - "layout": {}, - "paint": { - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 2, - 0 - ] - ], - 7, - [ - "literal", - [ - 2, - 2, - 6, - 2 - ] - ] - ], - "line-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 3, - 0.3, - 12, - 1.5 - ], - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 2, - 0, - 3, - 1 - ], - "line-color": "hsl(350, 30%, 55%)" - }, - "metadata": { - "mapbox:featureComponent": "admin-boundaries", - "mapbox:group": "Administrative boundaries, admin" - } - }, - { - "id": "admin-0-boundary", - "type": "line", - "source": "composite", - "source-layer": "admin", - "minzoom": 1, - "filter": [ - "all", - [ - "==", - [ - "get", - "admin_level" - ], - 0 - ], - [ - "==", - [ - "get", - "disputed" - ], - "false" - ], - [ - "==", - [ - "get", - "maritime" - ], - "false" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ] - ], - "layout": {}, - "paint": { - "line-color": "hsl(350, 30%, 50%)", - "line-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 3, - 0.5, - 12, - 2 - ], - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 2, - 0 - ] - ], - 7, - [ - "literal", - [ - 2, - 2, - 6, - 2 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "admin-boundaries", - "mapbox:group": "Administrative boundaries, admin" - } - }, - { - "id": "admin-0-boundary-disputed", - "type": "line", - "source": "composite", - "source-layer": "admin", - "minzoom": 1, - "filter": [ - "all", - [ - "==", - [ - "get", - "disputed" - ], - "true" - ], - [ - "==", - [ - "get", - "admin_level" - ], - 0 - ], - [ - "==", - [ - "get", - "maritime" - ], - "false" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ] - ], - "paint": { - "line-color": "hsl(350, 30%, 50%)", - "line-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 3, - 0.5, - 12, - 2 - ], - "line-dasharray": [ - "step", - [ - "zoom" - ], - [ - "literal", - [ - 3, - 2, - 5 - ] - ], - 7, - [ - "literal", - [ - 2, - 1.5 - ] - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "admin-boundaries", - "mapbox:group": "Administrative boundaries, admin" - } - }, - { - "id": "contour-label", - "type": "symbol", - "source": "composite", - "source-layer": "contour", - "minzoom": 11, - "filter": [ - "any", - [ - "==", - [ - "get", - "index" - ], - 10 - ], - [ - "==", - [ - "get", - "index" - ], - 5 - ] - ], - "layout": { - "text-field": [ - "concat", - [ - "get", - "ele" - ], - " m" - ], - "symbol-placement": "line", - "text-pitch-alignment": "viewport", - "text-max-angle": 25, - "text-padding": 5, - "text-font": [ - "DIN Pro Medium", - "Arial Unicode MS Regular" - ], - "text-size": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 15, - 9.5, - 20, - 12 - ] - }, - "paint": { - "text-color": "hsl(60, 10%, 35%)", - "text-halo-width": 1, - "text-halo-color": "hsl(60, 10%, 85%)" - }, - "metadata": { - "mapbox:featureComponent": "terrain", - "mapbox:group": "Terrain, terrain-labels" - } - }, - { - "id": "building-entrance", - "type": "symbol", - "source": "composite", - "source-layer": "structure", - "minzoom": 18, - "filter": [ - "==", - [ - "get", - "class" - ], - "entrance" - ], - "layout": { - "icon-image": "marker", - "text-field": [ - "get", - "ref" - ], - "text-size": 10, - "text-offset": [ - 0, - -0.5 - ], - "text-font": [ - "DIN Pro Italic", - "Arial Unicode MS Regular" - ] - }, - "paint": { - "text-color": "hsl(60, 8%, 38%)", - "text-halo-color": "hsl(60, 13%, 77%)", - "text-halo-width": 1, - "icon-opacity": 0.4 - }, - "metadata": { - "mapbox:featureComponent": "buildings", - "mapbox:group": "Buildings, building-labels" - } - }, - { - "id": "building-number-label", - "type": "symbol", - "source": "composite", - "source-layer": "housenum_label", - "minzoom": 17, - "layout": { - "text-field": [ - "get", - "house_num" - ], - "text-font": [ - "DIN Pro Italic", - "Arial Unicode MS Regular" - ], - "text-padding": 4, - "text-max-width": 7, - "text-size": 10 - }, - "paint": { - "text-color": "hsl(60, 8%, 38%)", - "text-halo-color": "hsl(60, 13%, 77%)", - "text-halo-width": 1 - }, - "metadata": { - "mapbox:featureComponent": "buildings", - "mapbox:group": "Buildings, building-labels" - } - }, - { - "id": "block-number-label", - "type": "symbol", - "source": "composite", - "source-layer": "place_label", - "minzoom": 16, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "settlement_subdivision" - ], - [ - "==", - [ - "get", - "type" - ], - "block" - ] - ], - "layout": { - "text-field": [ - "get", - "name" - ], - "text-font": [ - "DIN Pro Italic", - "Arial Unicode MS Regular" - ], - "text-max-width": 7, - "text-size": 11 - }, - "paint": { - "text-color": "hsl(60, 18%, 44%)", - "text-halo-color": "hsl(60, 17%, 84%)", - "text-halo-width": 0.5, - "text-halo-blur": 0.5 - }, - "metadata": { - "mapbox:featureComponent": "buildings", - "mapbox:group": "Buildings, building-labels" - } - }, - { - "id": "road-label", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 10, - "filter": [ - "all", - [ - "has", - "name" - ], - [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "class" + "layout": { + "text-size": 9, + "icon-image": [ + "case", + [ + "has", + "shield_beta" + ], + [ + "coalesce", + [ + "image", + [ + "concat", + [ + "get", + "shield_beta" + ], + "-", + [ + "to-string", + [ + "get", + "reflen" + ] + ] + ] + ], + [ + "image", + [ + "concat", + "default-", + [ + "to-string", + [ + "get", + "reflen" + ] + ] + ] + ] + ], + [ + "concat", + [ + "get", + "shield" + ], + "-", + [ + "to-string", + [ + "get", + "reflen" + ] + ] + ] + ], + "icon-rotation-alignment": "viewport", + "text-max-angle": 38, + "symbol-spacing": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 11, + 400, + 14, + 600 + ], + "text-font": [ + "DIN Pro Bold", + "Arial Unicode MS Bold" + ], + "symbol-placement": [ + "step", + [ + "zoom" + ], + "point", + 11, + "line" + ], + "text-rotation-alignment": "viewport", + "text-field": [ + "get", + "ref" + ], + "text-letter-spacing": 0.05 + }, + "paint": { + "text-color": [ + "case", + [ + "all", + [ + "has", + "shield_text_color_beta" + ], + [ + "to-boolean", + [ + "coalesce", + [ + "image", + [ + "concat", + [ + "get", + "shield_beta" + ], + "-", + [ + "to-string", + [ + "get", + "reflen" + ] + ] + ] + ], + "" + ] + ] + ], + [ + "match", + [ + "get", + "shield_text_color_beta" + ], + "white", + "hsl(0, 0%, 100%)", + "yellow", + "hsl(50, 63%, 70%)", + "orange", + "hsl(25, 63%, 75%)", + "blue", + "hsl(230, 36%, 44%)", + "red", + "hsl(0, 54%, 59%)", + "green", + "hsl(140, 46%, 37%)", + "hsl(230, 11%, 13%)" + ], + [ + "match", + [ + "get", + "shield_text_color" + ], + "white", + "hsl(0, 0%, 100%)", + "yellow", + "hsl(50, 63%, 70%)", + "orange", + "hsl(25, 63%, 75%)", + "blue", + "hsl(230, 36%, 44%)", + "red", + "hsl(0, 54%, 59%)", + "green", + "hsl(140, 46%, 37%)", + "hsl(230, 11%, 13%)" + ] + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, road-labels" + } + }, + { + "id": "road-exit-shield", + "type": "symbol", + "source": "composite", + "source-layer": "motorway_junction", + "minzoom": 14, + "filter": [ + "all", + [ + "has", + "reflen" + ], + [ + "<=", + [ + "get", + "reflen" + ], + 9 + ] ], - [ - "motorway", - "trunk", - "primary", - "secondary", - "tertiary" - ], - true, - false - ], - 12, - [ - "match", - [ - "get", - "class" + "layout": { + "text-field": [ + "get", + "ref" + ], + "text-size": 9, + "icon-image": [ + "concat", + "motorway-exit-", + [ + "to-string", + [ + "get", + "reflen" + ] + ] + ], + "text-font": [ + "DIN Pro Bold", + "Arial Unicode MS Bold" + ] + }, + "paint": { + "text-color": "hsl(0, 0%, 100%)", + "text-translate": [ + 0, + 0 + ] + }, + "metadata": { + "mapbox:featureComponent": "road-network", + "mapbox:group": "Road network, road-labels" + } + }, + { + "id": "path-pedestrian-label", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 12, + "filter": [ + "all", + [ + "case", + [ + "has", + "layer" + ], + [ + ">=", + [ + "get", + "layer" + ], + 0 + ], + true + ], + [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "pedestrian" + ], + true, + false + ], + 15, + [ + "match", + [ + "get", + "class" + ], + [ + "path", + "pedestrian" + ], + true, + false + ] + ] ], - [ - "motorway", - "trunk", - "primary", - "secondary", - "tertiary", - "street", - "street_limited", - "track" - ], - true, - false - ], - 15, - [ - "match", - [ - "get", - "class" + "layout": { + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + [ + "match", + [ + "get", + "class" + ], + "pedestrian", + 9, + 6.5 + ], + 18, + [ + "match", + [ + "get", + "class" + ], + "pedestrian", + 14, + 13 + ] + ], + "text-max-angle": 30, + "text-font": [ + "DIN Pro Regular", + "Arial Unicode MS Regular" + ], + "symbol-placement": "line", + "text-padding": 1, + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-letter-spacing": 0.01 + }, + "paint": { + "text-color": "hsl(0,0%, 0%)", + "text-halo-color": "hsl(60, 25%, 100%)", + "text-halo-width": 1, + "text-halo-blur": 1 + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., walking-cycling-labels" + } + }, + { + "id": "golf-hole-label", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 16, + "filter": [ + "==", + [ + "get", + "class" + ], + "golf" ], - [ - "path", - "pedestrian", - "golf", - "ferry", - "aerialway" - ], - false, - true - ] - ] - ], - "layout": { - "text-size": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 10, - [ - "match", - [ - "get", - "class" + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-size": 12 + }, + "paint": { + "text-halo-color": "hsl(98, 60%, 55%)", + "text-halo-width": 0.5, + "text-halo-blur": 0.5, + "text-color": "hsl(100, 80%, 18%)" + }, + "metadata": { + "mapbox:featureComponent": "walking-cycling", + "mapbox:group": "Walking, cycling, etc., walking-cycling-labels" + } + }, + { + "id": "ferry-aerialway-label", + "type": "symbol", + "source": "composite", + "source-layer": "road", + "minzoom": 15, + "filter": [ + "match", + [ + "get", + "class" + ], + "aerialway", + true, + "ferry", + true, + false + ], + "layout": { + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + 6.5, + 18, + 13 + ], + "text-max-angle": 30, + "text-font": [ + "DIN Pro Regular", + "Arial Unicode MS Regular" + ], + "symbol-placement": "line", + "text-padding": 1, + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-letter-spacing": 0.01 + }, + "paint": { + "text-color": [ + "match", + [ + "get", + "class" + ], + "ferry", + "hsl(205, 43%, 100%)", + "hsl(230, 50%, 60%)" + ], + "text-halo-color": [ + "match", + [ + "get", + "class" + ], + "ferry", + "hsl(205, 75%, 70%)", + "hsl(60, 20%, 100%)" + ], + "text-halo-width": 1, + "text-halo-blur": 1 + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, ferry-aerialway-labels" + } + }, + { + "id": "waterway-label", + "type": "symbol", + "source": "composite", + "source-layer": "natural_label", + "minzoom": 13, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "canal", + "river", + "stream", + "disputed_canal", + "disputed_river", + "disputed_stream" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - [ - "motorway", - "trunk", - "primary", - "secondary", - "tertiary" + "layout": { + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ], + "text-max-angle": 30, + "symbol-spacing": [ + "interpolate", + [ + "linear", + 1 + ], + [ + "zoom" + ], + 15, + 250, + 17, + 400 + ], + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 13, + 12, + 18, + 18 + ], + "symbol-placement": "line", + "text-pitch-alignment": "viewport", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + }, + "paint": { + "text-color": "hsl(205, 43%, 90%)", + "text-halo-color": "hsla(60, 17%, 84%, 0.5)" + }, + "metadata": { + "mapbox:featureComponent": "natural-features", + "mapbox:group": "Natural features, natural-labels" + } + }, + { + "id": "natural-line-label", + "type": "symbol", + "metadata": { + "mapbox:featureComponent": "natural-features", + "mapbox:group": "Natural features, natural-labels" + }, + "source": "composite", + "source-layer": "natural_label", + "minzoom": 4, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "glacier", + "landform", + "disputed_glacier", + "disputed_landform" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "<=", + [ + "get", + "filterrank" + ], + 4 + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - 10, - [ - "motorway_link", - "trunk_link", - "primary_link", - "secondary_link", - "tertiary_link", - "street", - "street_limited", - "track" - ], - 9, - 6.5 - ], - 18, - [ - "match", - [ - "get", - "class" + "layout": { + "text-size": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 5, + 12 + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 13, + 12 + ] + ], + "text-max-angle": 30, + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "symbol-placement": "line-center", + "text-pitch-alignment": "viewport" + }, + "paint": { + "text-halo-width": 0.5, + "text-halo-color": "hsl(60, 17%, 84%)", + "text-halo-blur": 0.5, + "text-color": "hsl(340, 10%, 38%)" + } + }, + { + "id": "natural-point-label", + "type": "symbol", + "source": "composite", + "source-layer": "natural_label", + "minzoom": 4, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "dock", + "glacier", + "landform", + "water_feature", + "wetland", + "disputed_dock", + "disputed_glacier", + "disputed_landform", + "disputed_water_feature", + "disputed_wetland" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "<=", + [ + "get", + "filterrank" + ], + 4 + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ] ], - [ - "motorway", - "trunk", - "primary", - "secondary", - "tertiary" + "layout": { + "text-size": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 5, + 12 + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 13, + 12 + ] + ], + "icon-image": [ + "get", + "maki" + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-offset": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + [ + "literal", + [ + 0, + 0 + ] + ], + 5, + [ + "literal", + [ + 0, + 0.8 + ] + ] + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + [ + "literal", + [ + 0, + 0 + ] + ], + 13, + [ + "literal", + [ + 0, + 0.8 + ] + ] + ] + ], + "text-anchor": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + "center", + 5, + "top" + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + "center", + 13, + "top" + ] + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + }, + "paint": { + "icon-opacity": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + 0, + 5, + 1 + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + 0, + 13, + 1 + ] + ], + "text-halo-color": "hsl(60, 20%, 100%)", + "text-halo-width": 0.5, + "text-halo-blur": 0.5, + "text-color": "hsl(340, 10%, 38%)" + }, + "metadata": { + "mapbox:featureComponent": "natural-features", + "mapbox:group": "Natural features, natural-labels" + } + }, + { + "id": "water-line-label", + "type": "symbol", + "metadata": { + "mapbox:featureComponent": "natural-features", + "mapbox:group": "Natural features, natural-labels" + }, + "source": "composite", + "source-layer": "natural_label", + "minzoom": 1, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "bay", + "ocean", + "reservoir", + "sea", + "water", + "disputed_bay", + "disputed_ocean", + "disputed_reservoir", + "disputed_sea", + "disputed_water" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "LineString" + ] ], - 16, - [ - "motorway_link", - "trunk_link", - "primary_link", - "secondary_link", - "tertiary_link", - "street", - "street_limited", - "track" - ], - 14, - 13 - ] - ], - "text-max-angle": 30, - "text-font": [ - "DIN Pro Regular", - "Arial Unicode MS Regular" - ], - "symbol-placement": "line", - "text-padding": 1, - "text-rotation-alignment": "map", - "text-pitch-alignment": "viewport", - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-letter-spacing": 0.01 - }, - "paint": { - "text-color": "hsl(0,0%, 0%)", - "text-halo-color": [ - "match", - [ - "get", - "class" - ], - [ - "motorway", - "trunk" - ], - "hsla(60, 25%, 100%, 0.75)", - "hsl(60, 25%, 100%)" - ], - "text-halo-width": 1, - "text-halo-blur": 1 - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, road-labels" - } - }, - { - "id": "road-intersection", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 15, - "filter": [ - "all", - [ - "==", - [ - "get", - "class" - ], - "intersection" - ], - [ - "has", - "name" - ] - ], - "layout": { - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "icon-image": "intersection", - "icon-text-fit": "both", - "icon-text-fit-padding": [ - 1, - 2, - 1, - 2 - ], - "text-size": [ - "interpolate", - [ - "exponential", - 1.2 - ], - [ - "zoom" - ], - 15, - 9, - 18, - 12 - ], - "text-font": [ - "DIN Pro Bold", - "Arial Unicode MS Bold" - ] - }, - "paint": { - "text-color": "hsl(230, 36%, 64%)" - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, road-labels" - } - }, - { - "id": "road-number-shield", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 6, - "filter": [ - "all", - [ - "has", - "reflen" - ], - [ - "<=", - [ - "get", - "reflen" - ], - 6 - ], - [ - "match", - [ - "get", - "class" - ], - [ - "pedestrian", - "service" - ], - false, - true - ], - [ - "step", - [ - "zoom" - ], - [ - "==", - [ - "geometry-type" + "layout": { + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + [ + "*", + [ + "-", + 16, + [ + "sqrt", + [ + "get", + "sizerank" + ] + ] + ], + 1 + ], + 22, + [ + "*", + [ + "-", + 22, + [ + "sqrt", + [ + "get", + "sizerank" + ] + ] + ], + 1 + ] + ], + "text-max-angle": 30, + "text-letter-spacing": [ + "match", + [ + "get", + "class" + ], + "ocean", + 0.25, + [ + "sea", + "bay" + ], + 0.15, + 0 + ], + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ], + "symbol-placement": "line-center", + "text-pitch-alignment": "viewport", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + }, + "paint": { + "text-color": [ + "match", + [ + "get", + "class" + ], + [ + "bay", + "ocean", + "sea" + ], + "hsl(205, 71%, 90%)", + "hsl(205, 43%, 90%)" + ], + "text-halo-color": "hsla(60, 17%, 84%, 0.5)" + } + }, + { + "id": "water-point-label", + "type": "symbol", + "source": "composite", + "source-layer": "natural_label", + "minzoom": 1, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "bay", + "ocean", + "reservoir", + "sea", + "water", + "disputed_bay", + "disputed_ocean", + "disputed_reservoir", + "disputed_sea", + "disputed_water" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "==", + [ + "geometry-type" + ], + "Point" + ] ], - "Point" - ], - 11, - [ - ">", - [ - "get", - "len" - ], - 5000 - ], - 12, - [ - ">", - [ - "get", - "len" - ], - 2500 - ], - 13, - [ - ">", - [ - "get", - "len" + "layout": { + "text-line-height": 1.3, + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + [ + "*", + [ + "-", + 16, + [ + "sqrt", + [ + "get", + "sizerank" + ] + ] + ], + 1 + ], + 22, + [ + "*", + [ + "-", + 22, + [ + "sqrt", + [ + "get", + "sizerank" + ] + ] + ], + 1 + ] + ], + "text-font": [ + "DIN Pro Italic", + "Arial Unicode MS Regular" + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-letter-spacing": [ + "match", + [ + "get", + "class" + ], + "ocean", + 0.25, + [ + "bay", + "sea" + ], + 0.15, + 0.01 + ], + "text-max-width": [ + "match", + [ + "get", + "class" + ], + "ocean", + 4, + "sea", + 5, + [ + "bay", + "water" + ], + 7, + 10 + ] + }, + "paint": { + "text-color": [ + "match", + [ + "get", + "class" + ], + [ + "bay", + "ocean", + "sea" + ], + "hsl(205, 71%, 90%)", + "hsl(205, 43%, 90%)" + ], + "text-halo-color": "hsla(60, 17%, 84%, 0.5)" + }, + "metadata": { + "mapbox:featureComponent": "natural-features", + "mapbox:group": "Natural features, natural-labels" + } + }, + { + "id": "poi-label", + "type": "symbol", + "source": "composite", + "source-layer": "poi_label", + "minzoom": 6, + "filter": [ + "<=", + [ + "get", + "filterrank" + ], + [ + "+", + [ + "step", + [ + "zoom" + ], + 0, + 16, + 1, + 17, + 2 + ], + [ + "match", + [ + "get", + "class" + ], + "food_and_drink_stores", + 3, + "historic", + 3, + "landmark", + 3, + "medical", + 3, + "motorist", + 3, + "park_like", + 4, + "sport_and_leisure", + 4, + "visitor_amenities", + 4, + 2 + ] + ] ], - 1000 - ], - 14, - true - ] - ], - "layout": { - "text-size": 9, - "icon-image": [ - "case", - [ - "has", - "shield_beta" - ], - [ - "coalesce", - [ - "image", - [ - "concat", + "layout": { + "text-size": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 5, + 12 + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + 18, + 13, + 12 + ] + ], + "icon-image": [ + "case", + [ + "has", + "maki_beta" + ], + [ + "coalesce", + [ + "image", + [ + "get", + "maki_beta" + ] + ], + [ + "image", + [ + "get", + "maki" + ] + ] + ], + [ + "image", + [ + "get", + "maki" + ] + ] + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-offset": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + [ + "literal", + [ + 0, + 0 + ] + ], + 5, + [ + "literal", + [ + 0, + 0.8 + ] + ] + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + [ + "literal", + [ + 0, + 0 + ] + ], + 13, + [ + "literal", + [ + 0, + 0.8 + ] + ] + ] + ], + "text-anchor": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + "center", + 5, + "top" + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + "center", + 13, + "top" + ] + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + }, + "paint": { + "icon-opacity": [ + "step", + [ + "zoom" + ], + [ + "step", + [ + "get", + "sizerank" + ], + 0, + 5, + 1 + ], + 17, + [ + "step", + [ + "get", + "sizerank" + ], + 0, + 13, + 1 + ] + ], + "text-halo-color": "hsl(60, 20%, 100%)", + "text-halo-width": 0.5, + "text-halo-blur": 0.5, + "text-color": [ + "match", + [ + "get", + "class" + ], + "food_and_drink", + "hsl(35, 80%, 38%)", + "park_like", + "hsl(100, 80%, 18%)", + "education", + "hsl(30, 60%, 28%)", + "medical", + "hsl(10, 60%, 43%)", + "sport_and_leisure", + "hsl(210, 60%, 38%)", + "hsl(340, 10%, 38%)" + ] + }, + "metadata": { + "mapbox:featureComponent": "point-of-interest-labels", + "mapbox:group": "Point of interest labels, poi-labels" + } + }, + { + "id": "transit-label", + "type": "symbol", + "source": "composite", + "source-layer": "transit_stop_label", + "minzoom": 12, + "filter": [ + "step", + [ + "zoom" + ], + [ + "all", + [ + "<=", + [ + "get", + "filterrank" + ], + 4 + ], + [ + "match", + [ + "get", + "mode" + ], + "rail", + true, + "metro_rail", + true, + false + ], + [ + "!=", + [ + "get", + "stop_type" + ], + "entrance" + ] + ], + 14, + [ + "all", + [ + "match", + [ + "get", + "mode" + ], + "rail", + true, + "metro_rail", + true, + false + ], + [ + "!=", + [ + "get", + "stop_type" + ], + "entrance" + ] + ], + 15, + [ + "all", + [ + "match", + [ + "get", + "mode" + ], + "rail", + true, + "metro_rail", + true, + "ferry", + true, + "light_rail", + true, + false + ], + [ + "!=", + [ + "get", + "stop_type" + ], + "entrance" + ] + ], + 16, [ - "get", - "shield_beta" + "all", + [ + "match", + [ + "get", + "mode" + ], + "bus", + false, + true + ], + [ + "!=", + [ + "get", + "stop_type" + ], + "entrance" + ] ], - "-", + 17, [ - "to-string", - [ + "!=", + [ + "get", + "stop_type" + ], + "entrance" + ], + 19, + true + ], + "layout": { + "text-size": 12, + "icon-image": [ "get", - "reflen" - ] + "network" + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-justify": [ + "match", + [ + "get", + "stop_type" + ], + "entrance", + "left", + "center" + ], + "text-offset": [ + "match", + [ + "get", + "stop_type" + ], + "entrance", + [ + "literal", + [ + 1, + 0 + ] + ], + [ + "literal", + [ + 0, + 0.8 + ] + ] + ], + "text-anchor": [ + "match", + [ + "get", + "stop_type" + ], + "entrance", + "left", + "top" + ], + "text-field": [ + "step", + [ + "zoom" + ], + "", + 13, + [ + "match", + [ + "get", + "mode" + ], + [ + "rail", + "metro_rail" + ], + [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "" + ], + 14, + [ + "match", + [ + "get", + "mode" + ], + [ + "bus", + "bicycle" + ], + "", + [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + ], + 18, + [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + ], + "text-letter-spacing": 0.01, + "text-max-width": [ + "match", + [ + "get", + "stop_type" + ], + "entrance", + 15, + 9 ] - ] - ], - [ - "image", - [ - "concat", - "default-", + }, + "paint": { + "text-halo-color": "hsl(60, 20%, 100%)", + "text-color": [ + "match", + [ + "get", + "network" + ], + "tokyo-metro", + "hsl(180, 30%, 30%)", + "mexico-city-metro", + "hsl(25, 63%, 63%)", + [ + "barcelona-metro", + "delhi-metro", + "hong-kong-mtr", + "milan-metro", + "osaka-subway" + ], + "hsl(0, 57%, 47%)", + [ + "boston-t", + "washington-metro" + ], + "hsl(230, 11%, 20%)", + [ + "chongqing-rail-transit", + "kiev-metro", + "singapore-mrt", + "taipei-metro" + ], + "hsl(140, 56%, 25%)", + "hsl(230, 50%, 60%)" + ], + "text-halo-blur": 0.5, + "text-halo-width": 0.5 + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, transit-labels" + } + }, + { + "id": "airport-label", + "type": "symbol", + "source": "composite", + "source-layer": "airport_label", + "minzoom": 8, + "filter": [ + "match", [ - "to-string", - [ "get", - "reflen" - ] - ] - ] - ] - ], - [ - "concat", - [ - "get", - "shield" - ], - "-", - [ - "to-string", - [ - "get", - "reflen" - ] - ] - ] - ], - "icon-rotation-alignment": "viewport", - "text-max-angle": 38, - "symbol-spacing": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 11, - 400, - 14, - 600 - ], - "text-font": [ - "DIN Pro Bold", - "Arial Unicode MS Bold" - ], - "symbol-placement": [ - "step", - [ - "zoom" - ], - "point", - 11, - "line" - ], - "text-rotation-alignment": "viewport", - "text-field": [ - "get", - "ref" - ], - "text-letter-spacing": 0.05 - }, - "paint": { - "text-color": [ - "case", - [ - "all", - [ - "has", - "shield_text_color_beta" - ], - [ - "to-boolean", - [ - "coalesce", + "class" + ], [ - "image", - [ - "concat", + "military", + "civil", + "disputed_military", + "disputed_civil" + ], + [ + "match", + [ + "get", + "worldview" + ], [ - "get", - "shield_beta" + "all", + "US" ], - "-", + true, + false + ], + false + ], + "layout": { + "text-line-height": 1.1, + "text-size": [ + "step", [ - "to-string", - [ "get", - "reflen" - ] + "sizerank" + ], + 18, + 9, + 12 + ], + "icon-image": [ + "get", + "maki" + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-offset": [ + 0, + 0.8 + ], + "text-rotation-alignment": "viewport", + "text-anchor": "top", + "text-field": [ + "step", + [ + "get", + "sizerank" + ], + [ + "case", + [ + "has", + "ref" + ], + [ + "concat", + [ + "get", + "ref" + ], + " -\n", + [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + ], + [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] + ], + 15, + [ + "get", + "ref" ] - ] - ], - "" - ] - ] - ], - [ - "match", - [ - "get", - "shield_text_color_beta" - ], - "white", - "hsl(0, 0%, 100%)", - "yellow", - "hsl(50, 63%, 70%)", - "orange", - "hsl(25, 63%, 75%)", - "blue", - "hsl(230, 36%, 44%)", - "red", - "hsl(0, 54%, 59%)", - "green", - "hsl(140, 46%, 37%)", - "hsl(230, 11%, 13%)" - ], - [ - "match", - [ - "get", - "shield_text_color" - ], - "white", - "hsl(0, 0%, 100%)", - "yellow", - "hsl(50, 63%, 70%)", - "orange", - "hsl(25, 63%, 75%)", - "blue", - "hsl(230, 36%, 44%)", - "red", - "hsl(0, 54%, 59%)", - "green", - "hsl(140, 46%, 37%)", - "hsl(230, 11%, 13%)" - ] - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, road-labels" - } - }, - { - "id": "road-exit-shield", - "type": "symbol", - "source": "composite", - "source-layer": "motorway_junction", - "minzoom": 14, - "filter": [ - "all", - [ - "has", - "reflen" - ], - [ - "<=", - [ - "get", - "reflen" - ], - 9 - ] - ], - "layout": { - "text-field": [ - "get", - "ref" - ], - "text-size": 9, - "icon-image": [ - "concat", - "motorway-exit-", - [ - "to-string", - [ - "get", - "reflen" - ] - ] - ], - "text-font": [ - "DIN Pro Bold", - "Arial Unicode MS Bold" - ] - }, - "paint": { - "text-color": "hsl(0, 0%, 100%)", - "text-translate": [ - 0, - 0 - ] - }, - "metadata": { - "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, road-labels" - } - }, - { - "id": "path-pedestrian-label", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 12, - "filter": [ - "all", - [ - "case", - [ - "has", - "layer" - ], - [ - ">=", - [ - "get", - "layer" - ], - 0 - ], - true - ], - [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "class" - ], - [ - "pedestrian" - ], - true, - false - ], - 15, - [ - "match", - [ - "get", - "class" - ], - [ - "path", - "pedestrian" - ], - true, - false - ] - ] - ], - "layout": { - "text-size": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 10, - [ - "match", - [ - "get", - "class" - ], - "pedestrian", - 9, - 6.5 - ], - 18, - [ - "match", - [ - "get", - "class" - ], - "pedestrian", - 14, - 13 - ] - ], - "text-max-angle": 30, - "text-font": [ - "DIN Pro Regular", - "Arial Unicode MS Regular" - ], - "symbol-placement": "line", - "text-padding": 1, - "text-rotation-alignment": "map", - "text-pitch-alignment": "viewport", - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-letter-spacing": 0.01 - }, - "paint": { - "text-color": "hsl(0,0%, 0%)", - "text-halo-color": "hsl(60, 25%, 100%)", - "text-halo-width": 1, - "text-halo-blur": 1 - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., walking-cycling-labels" - } - }, - { - "id": "golf-hole-label", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 16, - "filter": [ - "==", - [ - "get", - "class" - ], - "golf" - ], - "layout": { - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-font": [ - "DIN Pro Medium", - "Arial Unicode MS Regular" - ], - "text-size": 12 - }, - "paint": { - "text-halo-color": "hsl(98, 60%, 55%)", - "text-halo-width": 0.5, - "text-halo-blur": 0.5, - "text-color": "hsl(100, 80%, 18%)" - }, - "metadata": { - "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., walking-cycling-labels" - } - }, - { - "id": "ferry-aerialway-label", - "type": "symbol", - "source": "composite", - "source-layer": "road", - "minzoom": 15, - "filter": [ - "match", - [ - "get", - "class" - ], - "aerialway", - true, - "ferry", - true, - false - ], - "layout": { - "text-size": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 10, - 6.5, - 18, - 13 - ], - "text-max-angle": 30, - "text-font": [ - "DIN Pro Regular", - "Arial Unicode MS Regular" - ], - "symbol-placement": "line", - "text-padding": 1, - "text-rotation-alignment": "map", - "text-pitch-alignment": "viewport", - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-letter-spacing": 0.01 - }, - "paint": { - "text-color": [ - "match", - [ - "get", - "class" - ], - "ferry", - "hsl(205, 43%, 100%)", - "hsl(230, 50%, 60%)" - ], - "text-halo-color": [ - "match", - [ - "get", - "class" - ], - "ferry", - "hsl(205, 75%, 70%)", - "hsl(60, 20%, 100%)" - ], - "text-halo-width": 1, - "text-halo-blur": 1 - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, ferry-aerialway-labels" - } - }, - { - "id": "waterway-label", - "type": "symbol", - "source": "composite", - "source-layer": "natural_label", - "minzoom": 13, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "canal", - "river", - "stream", - "disputed_canal", - "disputed_river", - "disputed_stream" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ], - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "text-font": [ - "DIN Pro Italic", - "Arial Unicode MS Regular" - ], - "text-max-angle": 30, - "symbol-spacing": [ - "interpolate", - [ - "linear", - 1 - ], - [ - "zoom" - ], - 15, - 250, - 17, - 400 - ], - "text-size": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 13, - 12, - 18, - 18 - ], - "symbol-placement": "line", - "text-pitch-alignment": "viewport", - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ] - }, - "paint": { - "text-color": "hsl(205, 43%, 90%)", - "text-halo-color": "hsla(60, 17%, 84%, 0.5)" - }, - "metadata": { - "mapbox:featureComponent": "natural-features", - "mapbox:group": "Natural features, natural-labels" - } - }, - { - "id": "natural-line-label", - "type": "symbol", - "metadata": { - "mapbox:featureComponent": "natural-features", - "mapbox:group": "Natural features, natural-labels" - }, - "source": "composite", - "source-layer": "natural_label", - "minzoom": 4, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "glacier", - "landform", - "disputed_glacier", - "disputed_landform" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ], - false - ], - [ - "<=", - [ - "get", - "filterrank" - ], - 4 - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "text-size": [ - "step", - [ - "zoom" - ], - [ - "step", - [ - "get", - "sizerank" - ], - 18, - 5, - 12 - ], - 17, - [ - "step", - [ - "get", - "sizerank" - ], - 18, - 13, - 12 - ] - ], - "text-max-angle": 30, - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-font": [ - "DIN Pro Medium", - "Arial Unicode MS Regular" - ], - "symbol-placement": "line-center", - "text-pitch-alignment": "viewport" - }, - "paint": { - "text-halo-width": 0.5, - "text-halo-color": "hsl(60, 17%, 84%)", - "text-halo-blur": 0.5, - "text-color": "hsl(340, 10%, 38%)" - } - }, - { - "id": "natural-point-label", - "type": "symbol", - "source": "composite", - "source-layer": "natural_label", - "minzoom": 4, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "dock", - "glacier", - "landform", - "water_feature", - "wetland", - "disputed_dock", - "disputed_glacier", - "disputed_landform", - "disputed_water_feature", - "disputed_wetland" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ], - false - ], - [ - "<=", - [ - "get", - "filterrank" - ], - 4 - ], - [ - "==", - [ - "geometry-type" - ], - "Point" - ] - ], - "layout": { - "text-size": [ - "step", - [ - "zoom" - ], - [ - "step", - [ - "get", - "sizerank" - ], - 18, - 5, - 12 - ], - 17, - [ - "step", - [ - "get", - "sizerank" - ], - 18, - 13, - 12 - ] - ], - "icon-image": [ - "get", - "maki" - ], - "text-font": [ - "DIN Pro Medium", - "Arial Unicode MS Regular" - ], - "text-offset": [ - "step", - [ - "zoom" - ], - [ - "step", - [ - "get", - "sizerank" - ], - [ - "literal", - [ - 0, - 0 - ] - ], - 5, - [ - "literal", - [ - 0, - 0.8 - ] - ] - ], - 17, - [ - "step", - [ - "get", - "sizerank" - ], - [ - "literal", - [ - 0, - 0 - ] - ], - 13, - [ - "literal", - [ - 0, - 0.8 - ] - ] - ] - ], - "text-anchor": [ - "step", - [ - "zoom" - ], - [ - "step", - [ - "get", - "sizerank" - ], - "center", - 5, - "top" - ], - 17, - [ - "step", - [ - "get", - "sizerank" - ], - "center", - 13, - "top" - ] - ], - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ] - }, - "paint": { - "icon-opacity": [ - "step", - [ - "zoom" - ], - [ - "step", - [ - "get", - "sizerank" - ], - 0, - 5, - 1 - ], - 17, - [ - "step", - [ - "get", - "sizerank" - ], - 0, - 13, - 1 - ] - ], - "text-halo-color": "hsl(60, 20%, 100%)", - "text-halo-width": 0.5, - "text-halo-blur": 0.5, - "text-color": "hsl(340, 10%, 38%)" - }, - "metadata": { - "mapbox:featureComponent": "natural-features", - "mapbox:group": "Natural features, natural-labels" - } - }, - { - "id": "water-line-label", - "type": "symbol", - "metadata": { - "mapbox:featureComponent": "natural-features", - "mapbox:group": "Natural features, natural-labels" - }, - "source": "composite", - "source-layer": "natural_label", - "minzoom": 1, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "bay", - "ocean", - "reservoir", - "sea", - "water", - "disputed_bay", - "disputed_ocean", - "disputed_reservoir", - "disputed_sea", - "disputed_water" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ], - false - ], - [ - "==", - [ - "geometry-type" - ], - "LineString" - ] - ], - "layout": { - "text-size": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 0, - [ - "*", - [ - "-", - 16, - [ - "sqrt", + ], + "text-letter-spacing": 0.01, + "text-max-width": 9 + }, + "paint": { + "text-color": "hsl(230, 40%, 55%)", + "text-halo-color": "hsl(60, 20%, 100%)", + "text-halo-width": 1 + }, + "metadata": { + "mapbox:featureComponent": "transit", + "mapbox:group": "Transit, transit-labels" + } + }, + { + "id": "settlement-subdivision-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 10, + "maxzoom": 15, + "filter": [ + "all", + [ + "match", + [ + "get", + "class" + ], + [ + "settlement_subdivision", + "disputed_settlement_subdivision" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], [ - "get", - "sizerank" + "<=", + [ + "get", + "filterrank" + ], + 3 + ] + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-transform": "uppercase", + "text-font": [ + "DIN Pro Regular", + "Arial Unicode MS Regular" + ], + "text-letter-spacing": [ + "match", + [ + "get", + "type" + ], + "suburb", + 0.15, + 0.05 + ], + "text-max-width": 7, + "text-padding": 3, + "text-size": [ + "interpolate", + [ + "cubic-bezier", + 0.5, + 0, + 1, + 1 + ], + [ + "zoom" + ], + 11, + [ + "match", + [ + "get", + "type" + ], + "suburb", + 11, + 10.5 + ], + 15, + [ + "match", + [ + "get", + "type" + ], + "suburb", + 15, + 14 + ] ] - ] - ], - 1 - ], - 22, - [ - "*", - [ - "-", - 22, - [ - "sqrt", + }, + "paint": { + "text-halo-color": "hsla(60, 25%, 100%, 0.75)", + "text-halo-width": 1, + "text-color": "hsl(230, 29%, 36%)", + "text-halo-blur": 0.5 + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + }, + { + "id": "settlement-minor-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 2, + "maxzoom": 13, + "filter": [ + "all", [ - "get", - "sizerank" - ] - ] - ], - 1 - ] - ], - "text-max-angle": 30, - "text-letter-spacing": [ - "match", - [ - "get", - "class" - ], - "ocean", - 0.25, - [ - "sea", - "bay" - ], - 0.15, - 0 - ], - "text-font": [ - "DIN Pro Italic", - "Arial Unicode MS Regular" - ], - "symbol-placement": "line-center", - "text-pitch-alignment": "viewport", - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ] - }, - "paint": { - "text-color": [ - "match", - [ - "get", - "class" - ], - [ - "bay", - "ocean", - "sea" - ], - "hsl(205, 71%, 90%)", - "hsl(205, 43%, 90%)" - ], - "text-halo-color": "hsla(60, 17%, 84%, 0.5)" - } - }, - { - "id": "water-point-label", - "type": "symbol", - "source": "composite", - "source-layer": "natural_label", - "minzoom": 1, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "bay", - "ocean", - "reservoir", - "sea", - "water", - "disputed_bay", - "disputed_ocean", - "disputed_reservoir", - "disputed_sea", - "disputed_water" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ], - false - ], - [ - "==", - [ - "geometry-type" - ], - "Point" - ] - ], - "layout": { - "text-line-height": 1.3, - "text-size": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 0, - [ - "*", - [ - "-", - 16, - [ - "sqrt", + "<=", + [ + "get", + "filterrank" + ], + 3 + ], [ - "get", - "sizerank" + "match", + [ + "get", + "class" + ], + [ + "settlement", + "disputed_settlement" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], + [ + "step", + [ + "zoom" + ], + [ + ">", + [ + "get", + "symbolrank" + ], + 6 + ], + 4, + [ + ">=", + [ + "get", + "symbolrank" + ], + 7 + ], + 6, + [ + ">=", + [ + "get", + "symbolrank" + ], + 8 + ], + 7, + [ + ">=", + [ + "get", + "symbolrank" + ], + 10 + ], + 10, + [ + ">=", + [ + "get", + "symbolrank" + ], + 11 + ], + 11, + [ + ">=", + [ + "get", + "symbolrank" + ], + 13 + ], + 12, + [ + ">=", + [ + "get", + "symbolrank" + ], + 15 + ] ] - ] ], - 1 - ], - 22, - [ - "*", - [ - "-", - 22, - [ - "sqrt", + "layout": { + "symbol-sort-key": [ + "get", + "symbolrank" + ], + "icon-image": [ + "step", + [ + "zoom" + ], + [ + "case", + [ + "==", + [ + "get", + "capital" + ], + 2 + ], + "border-dot-13", + [ + "step", + [ + "get", + "symbolrank" + ], + "dot-11", + 9, + "dot-10", + 11, + "dot-9" + ] + ], + 8, + "" + ], + "text-font": [ + "DIN Pro Regular", + "Arial Unicode MS Regular" + ], + "text-radial-offset": [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "capital" + ], + 2, + 0.6, + 0.55 + ], + 8, + 0 + ], + "text-anchor": [ + "step", + [ + "zoom" + ], + [ + "get", + "text_anchor" + ], + 8, + "center" + ], + "text-justify": "auto", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-max-width": 7, + "text-line-height": 1.1, + "text-size": [ + "interpolate", + [ + "cubic-bezier", + 0.2, + 0, + 0.9, + 1 + ], + [ + "zoom" + ], + 3, + [ + "step", + [ + "get", + "symbolrank" + ], + 11, + 9, + 10 + ], + 6, + [ + "step", + [ + "get", + "symbolrank" + ], + 14, + 9, + 12, + 12, + 10 + ], + 8, + [ + "step", + [ + "get", + "symbolrank" + ], + 16, + 9, + 14, + 12, + 12, + 15, + 10 + ], + 13, + [ + "step", + [ + "get", + "symbolrank" + ], + 22, + 9, + 20, + 12, + 16, + 15, + 14 + ] + ] + }, + "paint": { + "text-color": "hsl(230, 29%, 0%)", + "text-halo-color": "hsl(60, 25%, 100%)", + "text-halo-width": 1, + "text-halo-blur": 1 + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + }, + { + "id": "settlement-major-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 2, + "maxzoom": 15, + "filter": [ + "all", + [ + "<=", + [ + "get", + "filterrank" + ], + 3 + ], + [ + "match", + [ + "get", + "class" + ], + [ + "settlement", + "disputed_settlement" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false + ], [ - "get", - "sizerank" + "step", + [ + "zoom" + ], + false, + 2, + [ + "<=", + [ + "get", + "symbolrank" + ], + 6 + ], + 4, + [ + "<", + [ + "get", + "symbolrank" + ], + 7 + ], + 6, + [ + "<", + [ + "get", + "symbolrank" + ], + 8 + ], + 7, + [ + "<", + [ + "get", + "symbolrank" + ], + 10 + ], + 10, + [ + "<", + [ + "get", + "symbolrank" + ], + 11 + ], + 11, + [ + "<", + [ + "get", + "symbolrank" + ], + 13 + ], + 12, + [ + "<", + [ + "get", + "symbolrank" + ], + 15 + ], + 13, + [ + ">=", + [ + "get", + "symbolrank" + ], + 11 + ], + 14, + [ + ">=", + [ + "get", + "symbolrank" + ], + 15 + ] ] - ] - ], - 1 - ] - ], - "text-font": [ - "DIN Pro Italic", - "Arial Unicode MS Regular" - ], - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-letter-spacing": [ - "match", - [ - "get", - "class" - ], - "ocean", - 0.25, - [ - "bay", - "sea" - ], - 0.15, - 0.01 - ], - "text-max-width": [ - "match", - [ - "get", - "class" - ], - "ocean", - 4, - "sea", - 5, - [ - "bay", - "water" - ], - 7, - 10 - ] - }, - "paint": { - "text-color": [ - "match", - [ - "get", - "class" - ], - [ - "bay", - "ocean", - "sea" - ], - "hsl(205, 71%, 90%)", - "hsl(205, 43%, 90%)" - ], - "text-halo-color": "hsla(60, 17%, 84%, 0.5)" - }, - "metadata": { - "mapbox:featureComponent": "natural-features", - "mapbox:group": "Natural features, natural-labels" - } - }, - { - "id": "poi-label", - "type": "symbol", - "source": "composite", - "source-layer": "poi_label", - "minzoom": 6, - "filter": [ - "<=", - [ - "get", - "filterrank" - ], - [ - "+", - [ - "step", - [ - "zoom" - ], - 0, - 16, - 1, - 17, - 2 - ], - [ - "match", - [ - "get", - "class" - ], - "food_and_drink_stores", - 3, - "historic", - 3, - "landmark", - 3, - "medical", - 3, - "motorist", - 3, - "park_like", - 4, - "sport_and_leisure", - 4, - "visitor_amenities", - 4, - 2 - ] - ] - ], - "layout": { - "text-size": [ - "step", - [ - "zoom" - ], - [ - "step", - [ - "get", - "sizerank" - ], - 18, - 5, - 12 - ], - 17, - [ - "step", - [ - "get", - "sizerank" - ], - 18, - 13, - 12 - ] - ], - "icon-image": [ - "case", - [ - "has", - "maki_beta" - ], - [ - "coalesce", - [ - "image", - [ - "get", - "maki_beta" - ] - ], - [ - "image", - [ - "get", - "maki" - ] - ] - ], - [ - "image", - [ - "get", - "maki" - ] - ] - ], - "text-font": [ - "DIN Pro Medium", - "Arial Unicode MS Regular" - ], - "text-offset": [ - "step", - [ - "zoom" - ], - [ - "step", - [ - "get", - "sizerank" - ], - [ - "literal", - [ - 0, - 0 - ] - ], - 5, - [ - "literal", - [ - 0, - 0.8 - ] - ] - ], - 17, - [ - "step", - [ - "get", - "sizerank" - ], - [ - "literal", - [ - 0, - 0 - ] - ], - 13, - [ - "literal", - [ - 0, - 0.8 - ] - ] - ] - ], - "text-anchor": [ - "step", - [ - "zoom" - ], - [ - "step", - [ - "get", - "sizerank" - ], - "center", - 5, - "top" - ], - 17, - [ - "step", - [ - "get", - "sizerank" - ], - "center", - 13, - "top" - ] - ], - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ] - }, - "paint": { - "icon-opacity": [ - "step", - [ - "zoom" - ], - [ - "step", - [ - "get", - "sizerank" - ], - 0, - 5, - 1 - ], - 17, - [ - "step", - [ - "get", - "sizerank" - ], - 0, - 13, - 1 - ] - ], - "text-halo-color": "hsl(60, 20%, 100%)", - "text-halo-width": 0.5, - "text-halo-blur": 0.5, - "text-color": [ - "match", - [ - "get", - "class" - ], - "food_and_drink", - "hsl(35, 80%, 38%)", - "park_like", - "hsl(100, 80%, 18%)", - "education", - "hsl(30, 60%, 28%)", - "medical", - "hsl(10, 60%, 43%)", - "sport_and_leisure", - "hsl(210, 60%, 38%)", - "hsl(340, 10%, 38%)" - ] - }, - "metadata": { - "mapbox:featureComponent": "point-of-interest-labels", - "mapbox:group": "Point of interest labels, poi-labels" - } - }, - { - "id": "transit-label", - "type": "symbol", - "source": "composite", - "source-layer": "transit_stop_label", - "minzoom": 12, - "filter": [ - "step", - [ - "zoom" - ], - [ - "all", - [ - "<=", - [ - "get", - "filterrank" - ], - 4 - ], - [ - "match", - [ - "get", - "mode" - ], - "rail", - true, - "metro_rail", - true, - false - ], - [ - "!=", - [ - "get", - "stop_type" - ], - "entrance" - ] - ], - 14, - [ - "all", - [ - "match", - [ - "get", - "mode" - ], - "rail", - true, - "metro_rail", - true, - false - ], - [ - "!=", - [ - "get", - "stop_type" - ], - "entrance" - ] - ], - 15, - [ - "all", - [ - "match", - [ - "get", - "mode" - ], - "rail", - true, - "metro_rail", - true, - "ferry", - true, - "light_rail", - true, - false - ], - [ - "!=", - [ - "get", - "stop_type" - ], - "entrance" - ] - ], - 16, - [ - "all", - [ - "match", - [ - "get", - "mode" - ], - "bus", - false, - true - ], - [ - "!=", - [ - "get", - "stop_type" - ], - "entrance" - ] - ], - 17, - [ - "!=", - [ - "get", - "stop_type" - ], - "entrance" - ], - 19, - true - ], - "layout": { - "text-size": 12, - "icon-image": [ - "get", - "network" - ], - "text-font": [ - "DIN Pro Medium", - "Arial Unicode MS Regular" - ], - "text-justify": [ - "match", - [ - "get", - "stop_type" - ], - "entrance", - "left", - "center" - ], - "text-offset": [ - "match", - [ - "get", - "stop_type" - ], - "entrance", - [ - "literal", - [ - 1, - 0 - ] - ], - [ - "literal", - [ - 0, - 0.8 - ] - ] - ], - "text-anchor": [ - "match", - [ - "get", - "stop_type" - ], - "entrance", - "left", - "top" - ], - "text-field": [ - "step", - [ - "zoom" - ], - "", - 13, - [ - "match", - [ - "get", - "mode" - ], - [ - "rail", - "metro_rail" - ], - [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "" - ], - 14, - [ - "match", - [ - "get", - "mode" - ], - [ - "bus", - "bicycle" - ], - "", - [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ] - ], - 18, - [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ] - ], - "text-letter-spacing": 0.01, - "text-max-width": [ - "match", - [ - "get", - "stop_type" - ], - "entrance", - 15, - 9 - ] - }, - "paint": { - "text-halo-color": "hsl(60, 20%, 100%)", - "text-color": [ - "match", - [ - "get", - "network" - ], - "tokyo-metro", - "hsl(180, 30%, 30%)", - "mexico-city-metro", - "hsl(25, 63%, 63%)", - [ - "barcelona-metro", - "delhi-metro", - "hong-kong-mtr", - "milan-metro", - "osaka-subway" - ], - "hsl(0, 57%, 47%)", - [ - "boston-t", - "washington-metro" - ], - "hsl(230, 11%, 20%)", - [ - "chongqing-rail-transit", - "kiev-metro", - "singapore-mrt", - "taipei-metro" - ], - "hsl(140, 56%, 25%)", - "hsl(230, 50%, 60%)" - ], - "text-halo-blur": 0.5, - "text-halo-width": 0.5 - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, transit-labels" - } - }, - { - "id": "airport-label", - "type": "symbol", - "source": "composite", - "source-layer": "airport_label", - "minzoom": 8, - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "military", - "civil", - "disputed_military", - "disputed_civil" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ], - false - ], - "layout": { - "text-line-height": 1.1, - "text-size": [ - "step", - [ - "get", - "sizerank" - ], - 18, - 9, - 12 - ], - "icon-image": [ - "get", - "maki" - ], - "text-font": [ - "DIN Pro Medium", - "Arial Unicode MS Regular" - ], - "text-offset": [ - 0, - 0.8 - ], - "text-rotation-alignment": "viewport", - "text-anchor": "top", - "text-field": [ - "step", - [ - "get", - "sizerank" - ], - [ - "case", - [ - "has", - "ref" ], - [ - "concat", - [ - "get", - "ref" - ], - " -\n", - [ - "coalesce", + "layout": { + "symbol-sort-key": [ + "get", + "symbolrank" + ], + "icon-image": [ + "step", + [ + "zoom" + ], + [ + "case", + [ + "==", + [ + "get", + "capital" + ], + 2 + ], + "border-dot-13", + [ + "step", + [ + "get", + "symbolrank" + ], + "dot-11", + 9, + "dot-10", + 11, + "dot-9" + ] + ], + 8, + "" + ], + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-radial-offset": [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "capital" + ], + 2, + 0.6, + 0.55 + ], + 8, + 0 + ], + "text-anchor": [ + "step", + [ + "zoom" + ], + [ + "get", + "text_anchor" + ], + 8, + "center" + ], + "text-justify": [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "text_anchor" + ], + [ + "left", + "bottom-left", + "top-left" + ], + "left", + [ + "right", + "bottom-right", + "top-right" + ], + "right", + "center" + ], + 8, + "center" + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-max-width": 7, + "text-line-height": 1.1, + "text-size": [ + "interpolate", + [ + "cubic-bezier", + 0.2, + 0, + 0.9, + 1 + ], + [ + "zoom" + ], + 3, + [ + "step", + [ + "get", + "symbolrank" + ], + 13, + 6, + 11 + ], + 6, + [ + "step", + [ + "get", + "symbolrank" + ], + 18, + 6, + 16, + 7, + 14 + ], + 8, + [ + "step", + [ + "get", + "symbolrank" + ], + 20, + 9, + 16, + 10, + 14 + ], + 15, + [ + "step", + [ + "get", + "symbolrank" + ], + 24, + 9, + 20, + 12, + 16, + 15, + 14 + ] + ] + }, + "paint": { + "text-color": "hsl(230, 29%, 0%)", + "text-halo-color": "hsl(60, 25%, 100%)", + "text-halo-width": 1, + "text-halo-blur": 1 + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + }, + { + "id": "state-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 3, + "maxzoom": 9, + "filter": [ + "match", [ - "get", - "name_en" + "get", + "class" ], [ - "get", - "name" - ] - ] - ], - [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ] - ], - 15, - [ - "get", - "ref" - ] - ], - "text-letter-spacing": 0.01, - "text-max-width": 9 - }, - "paint": { - "text-color": "hsl(230, 40%, 55%)", - "text-halo-color": "hsl(60, 20%, 100%)", - "text-halo-width": 1 - }, - "metadata": { - "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, transit-labels" - } - }, - { - "id": "settlement-subdivision-label", - "type": "symbol", - "source": "composite", - "source-layer": "place_label", - "minzoom": 10, - "maxzoom": 15, - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "settlement_subdivision", - "disputed_settlement_subdivision" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ], - false - ], - [ - "<=", - [ - "get", - "filterrank" - ], - 3 - ] - ], - "layout": { - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-transform": "uppercase", - "text-font": [ - "DIN Pro Regular", - "Arial Unicode MS Regular" - ], - "text-letter-spacing": [ - "match", - [ - "get", - "type" - ], - "suburb", - 0.15, - 0.05 - ], - "text-max-width": 7, - "text-padding": 3, - "text-size": [ - "interpolate", - [ - "cubic-bezier", - 0.5, - 0, - 1, - 1 - ], - [ - "zoom" - ], - 11, - [ - "match", - [ - "get", - "type" - ], - "suburb", - 11, - 10.5 - ], - 15, - [ - "match", - [ - "get", - "type" - ], - "suburb", - 15, - 14 - ] - ] - }, - "paint": { - "text-halo-color": "hsla(60, 25%, 100%, 0.75)", - "text-halo-width": 1, - "text-color": "hsl(230, 29%, 36%)", - "text-halo-blur": 0.5 - }, - "metadata": { - "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" - } - }, - { - "id": "settlement-minor-label", - "type": "symbol", - "source": "composite", - "source-layer": "place_label", - "minzoom": 2, - "maxzoom": 13, - "filter": [ - "all", - [ - "<=", - [ - "get", - "filterrank" - ], - 3 - ], - [ - "match", - [ - "get", - "class" - ], - [ - "settlement", - "disputed_settlement" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ], - false - ], - [ - "step", - [ - "zoom" - ], - [ - ">", - [ - "get", - "symbolrank" - ], - 6 - ], - 4, - [ - ">=", - [ - "get", - "symbolrank" - ], - 7 - ], - 6, - [ - ">=", - [ - "get", - "symbolrank" - ], - 8 - ], - 7, - [ - ">=", - [ - "get", - "symbolrank" - ], - 10 - ], - 10, - [ - ">=", - [ - "get", - "symbolrank" - ], - 11 - ], - 11, - [ - ">=", - [ - "get", - "symbolrank" - ], - 13 - ], - 12, - [ - ">=", - [ - "get", - "symbolrank" - ], - 15 - ] - ] - ], - "layout": { - "symbol-sort-key": [ - "get", - "symbolrank" - ], - "icon-image": [ - "step", - [ - "zoom" - ], - [ - "case", - [ - "==", - [ - "get", - "capital" - ], - 2 - ], - "border-dot-13", - [ - "step", - [ - "get", - "symbolrank" - ], - "dot-11", - 9, - "dot-10", - 11, - "dot-9" - ] - ], - 8, - "" - ], - "text-font": [ - "DIN Pro Regular", - "Arial Unicode MS Regular" - ], - "text-radial-offset": [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "capital" - ], - 2, - 0.6, - 0.55 - ], - 8, - 0 - ], - "text-anchor": [ - "step", - [ - "zoom" - ], - [ - "get", - "text_anchor" - ], - 8, - "center" - ], - "text-justify": "auto", - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-max-width": 7, - "text-line-height": 1.1, - "text-size": [ - "interpolate", - [ - "cubic-bezier", - 0.2, - 0, - 0.9, - 1 - ], - [ - "zoom" - ], - 3, - [ - "step", - [ - "get", - "symbolrank" - ], - 11, - 9, - 10 - ], - 6, - [ - "step", - [ - "get", - "symbolrank" - ], - 14, - 9, - 12, - 12, - 10 - ], - 8, - [ - "step", - [ - "get", - "symbolrank" - ], - 16, - 9, - 14, - 12, - 12, - 15, - 10 - ], - 13, - [ - "step", - [ - "get", - "symbolrank" - ], - 22, - 9, - 20, - 12, - 16, - 15, - 14 - ] - ] - }, - "paint": { - "text-color": "hsl(230, 29%, 0%)", - "text-halo-color": "hsl(60, 25%, 100%)", - "text-halo-width": 1, - "text-halo-blur": 1 - }, - "metadata": { - "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" - } - }, - { - "id": "settlement-major-label", - "type": "symbol", - "source": "composite", - "source-layer": "place_label", - "minzoom": 2, - "maxzoom": 15, - "filter": [ - "all", - [ - "<=", - [ - "get", - "filterrank" - ], - 3 - ], - [ - "match", - [ - "get", - "class" - ], - [ - "settlement", - "disputed_settlement" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ], - false - ], - [ - "step", - [ - "zoom" - ], - false, - 2, - [ - "<=", - [ - "get", - "symbolrank" - ], - 6 - ], - 4, - [ - "<", - [ - "get", - "symbolrank" - ], - 7 - ], - 6, - [ - "<", - [ - "get", - "symbolrank" - ], - 8 - ], - 7, - [ - "<", - [ - "get", - "symbolrank" - ], - 10 - ], - 10, - [ - "<", - [ - "get", - "symbolrank" - ], - 11 - ], - 11, - [ - "<", - [ - "get", - "symbolrank" - ], - 13 - ], - 12, - [ - "<", - [ - "get", - "symbolrank" - ], - 15 - ], - 13, - [ - ">=", - [ - "get", - "symbolrank" - ], - 11 - ], - 14, - [ - ">=", - [ - "get", - "symbolrank" - ], - 15 - ] - ] - ], - "layout": { - "symbol-sort-key": [ - "get", - "symbolrank" - ], - "icon-image": [ - "step", - [ - "zoom" - ], - [ - "case", - [ - "==", - [ - "get", - "capital" - ], - 2 - ], - "border-dot-13", - [ - "step", - [ - "get", - "symbolrank" - ], - "dot-11", - 9, - "dot-10", - 11, - "dot-9" - ] - ], - 8, - "" - ], - "text-font": [ - "DIN Pro Medium", - "Arial Unicode MS Regular" - ], - "text-radial-offset": [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "capital" - ], - 2, - 0.6, - 0.55 - ], - 8, - 0 - ], - "text-anchor": [ - "step", - [ - "zoom" - ], - [ - "get", - "text_anchor" - ], - 8, - "center" - ], - "text-justify": [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "text_anchor" - ], - [ - "left", - "bottom-left", - "top-left" - ], - "left", - [ - "right", - "bottom-right", - "top-right" - ], - "right", - "center" - ], - 8, - "center" - ], - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-max-width": 7, - "text-line-height": 1.1, - "text-size": [ - "interpolate", - [ - "cubic-bezier", - 0.2, - 0, - 0.9, - 1 - ], - [ - "zoom" - ], - 3, - [ - "step", - [ - "get", - "symbolrank" - ], - 13, - 6, - 11 - ], - 6, - [ - "step", - [ - "get", - "symbolrank" - ], - 18, - 6, - 16, - 7, - 14 - ], - 8, - [ - "step", - [ - "get", - "symbolrank" - ], - 20, - 9, - 16, - 10, - 14 - ], - 15, - [ - "step", - [ - "get", - "symbolrank" - ], - 24, - 9, - 20, - 12, - 16, - 15, - 14 - ] - ] - }, - "paint": { - "text-color": "hsl(230, 29%, 0%)", - "text-halo-color": "hsl(60, 25%, 100%)", - "text-halo-width": 1, - "text-halo-blur": 1 - }, - "metadata": { - "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" - } - }, - { - "id": "state-label", - "type": "symbol", - "source": "composite", - "source-layer": "place_label", - "minzoom": 3, - "maxzoom": 9, - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "state", - "disputed_state" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ], - false - ], - "layout": { - "text-size": [ - "interpolate", - [ - "cubic-bezier", - 0.85, - 0.7, - 0.65, - 1 - ], - [ - "zoom" - ], - 4, - [ - "step", - [ - "get", - "symbolrank" - ], - 9, - 6, - 8, - 7, - 7 - ], - 9, - [ - "step", - [ - "get", - "symbolrank" - ], - 21, - 6, - 16, - 7, - 14 - ] - ], - "text-transform": "uppercase", - "text-font": [ - "DIN Pro Bold", - "Arial Unicode MS Bold" - ], - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-letter-spacing": 0.15, - "text-max-width": 6 - }, - "paint": { - "text-color": "hsl(230, 29%, 0%)", - "text-halo-color": "hsl(60, 25%, 100%)", - "text-halo-width": 1, - "text-opacity": 0.5 - }, - "metadata": { - "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" - } - }, - { - "id": "country-label", - "type": "symbol", - "source": "composite", - "source-layer": "place_label", - "minzoom": 1, - "maxzoom": 10, - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "country", - "disputed_country" - ], - [ - "match", - [ - "get", - "worldview" - ], - [ - "all", - "US" - ], - true, - false - ], - false - ], - "layout": { - "icon-image": "", - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-line-height": 1.1, - "text-max-width": 6, - "text-font": [ - "DIN Pro Medium", - "Arial Unicode MS Regular" - ], - "text-radial-offset": [ - "step", - [ - "zoom" - ], - 0.6, - 8, - 0 - ], - "text-justify": [ - "step", - [ - "zoom" - ], - [ - "match", - [ - "get", - "text_anchor" - ], - [ - "left", - "bottom-left", - "top-left" - ], - "left", - [ - "right", - "bottom-right", - "top-right" - ], - "right", - "center" - ], - 7, - "auto" - ], - "text-size": [ - "interpolate", - [ - "cubic-bezier", - 0.2, - 0, - 0.7, - 1 - ], - [ - "zoom" - ], - 1, - [ - "step", - [ - "get", - "symbolrank" + "state", + "disputed_state" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false ], - 11, - 4, - 9, - 5, - 8 - ], - 9, - [ - "step", - [ - "get", - "symbolrank" + "layout": { + "text-size": [ + "interpolate", + [ + "cubic-bezier", + 0.85, + 0.7, + 0.65, + 1 + ], + [ + "zoom" + ], + 4, + [ + "step", + [ + "get", + "symbolrank" + ], + 9, + 6, + 8, + 7, + 7 + ], + 9, + [ + "step", + [ + "get", + "symbolrank" + ], + 21, + 6, + 16, + 7, + 14 + ] + ], + "text-transform": "uppercase", + "text-font": [ + "DIN Pro Bold", + "Arial Unicode MS Bold" + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-letter-spacing": 0.15, + "text-max-width": 6 + }, + "paint": { + "text-color": "hsl(230, 29%, 0%)", + "text-halo-color": "hsl(60, 25%, 100%)", + "text-halo-width": 1, + "text-opacity": 0.5 + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + }, + { + "id": "country-label", + "type": "symbol", + "source": "composite", + "source-layer": "place_label", + "minzoom": 1, + "maxzoom": 10, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "country", + "disputed_country" + ], + [ + "match", + [ + "get", + "worldview" + ], + [ + "all", + "US" + ], + true, + false + ], + false ], - 22, - 4, - 19, - 5, - 17 - ] - ] - }, - "paint": { - "icon-opacity": [ - "step", - [ - "zoom" - ], - [ - "case", - [ - "has", - "text_anchor" + "layout": { + "icon-image": "", + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-line-height": 1.1, + "text-max-width": 6, + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-radial-offset": [ + "step", + [ + "zoom" + ], + 0.6, + 8, + 0 + ], + "text-justify": [ + "step", + [ + "zoom" + ], + [ + "match", + [ + "get", + "text_anchor" + ], + [ + "left", + "bottom-left", + "top-left" + ], + "left", + [ + "right", + "bottom-right", + "top-right" + ], + "right", + "center" + ], + 7, + "auto" + ], + "text-size": [ + "interpolate", + [ + "cubic-bezier", + 0.2, + 0, + 0.7, + 1 + ], + [ + "zoom" + ], + 1, + [ + "step", + [ + "get", + "symbolrank" + ], + 11, + 4, + 9, + 5, + 8 + ], + 9, + [ + "step", + [ + "get", + "symbolrank" + ], + 22, + 4, + 19, + 5, + 17 + ] + ] + }, + "paint": { + "icon-opacity": [ + "step", + [ + "zoom" + ], + [ + "case", + [ + "has", + "text_anchor" + ], + 1, + 0 + ], + 7, + 0 + ], + "text-color": "hsl(230, 29%, 0%)", + "text-halo-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 2, + "hsla(60, 25%, 100%, 0.75)", + 3, + "hsl(60, 25%, 100%)" + ], + "text-halo-width": 1.25 + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + }, + { + "id": "continent-label", + "type": "symbol", + "source": "composite", + "source-layer": "natural_label", + "minzoom": 0.75, + "maxzoom": 3, + "filter": [ + "==", + [ + "get", + "class" + ], + "continent" ], - 1, - 0 - ], - 7, - 0 - ], - "text-color": "hsl(230, 29%, 0%)", - "text-halo-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 2, - "hsla(60, 25%, 100%, 0.75)", - 3, - "hsl(60, 25%, 100%)" - ], - "text-halo-width": 1.25 - }, - "metadata": { - "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" - } - }, - { - "id": "continent-label", - "type": "symbol", - "source": "composite", - "source-layer": "natural_label", - "minzoom": 0.75, - "maxzoom": 3, - "filter": [ - "==", - [ - "get", - "class" - ], - "continent" - ], - "layout": { - "text-field": [ - "coalesce", - [ - "get", - "name_en" - ], - [ - "get", - "name" - ] - ], - "text-line-height": 1.1, - "text-max-width": 6, - "text-font": [ - "DIN Pro Medium", - "Arial Unicode MS Regular" - ], - "text-size": [ - "interpolate", - [ - "exponential", - 0.5 - ], - [ - "zoom" - ], - 0, - 10, - 2.5, - 15 - ], - "text-transform": "uppercase", - "text-letter-spacing": 0.05 - }, - "paint": { - "text-color": "hsl(230, 29%, 0%)", - "text-halo-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 0, - "hsla(60, 25%, 100%, 0.75)", - 3, - "hsl(60, 25%, 100%)" - ], - "text-halo-width": 1.5, - "text-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 0, - 0.8, - 1.5, - 0.5, - 2.5, - 0 - ] - }, - "metadata": { - "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" - } - } - ], - "sources": { - "composite": { - "url": "mapbox://mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2,mapbox.mapbox-bathymetry-v2", - "type": "vector" - } - }, - "created": "1970-01-01T00:00:00.000Z", - "modified": "1970-01-01T00:00:00.000Z", - "owner": "mapbox", - "id": "outdoors-v12", - "draft": false + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ], + "text-line-height": 1.1, + "text-max-width": 6, + "text-font": [ + "DIN Pro Medium", + "Arial Unicode MS Regular" + ], + "text-size": [ + "interpolate", + [ + "exponential", + 0.5 + ], + [ + "zoom" + ], + 0, + 10, + 2.5, + 15 + ], + "text-transform": "uppercase", + "text-letter-spacing": 0.05 + }, + "paint": { + "text-color": "hsl(230, 29%, 0%)", + "text-halo-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + "hsla(60, 25%, 100%, 0.75)", + 3, + "hsl(60, 25%, 100%)" + ], + "text-halo-width": 1.5, + "text-opacity": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + 0.8, + 1.5, + 0.5, + 2.5, + 0 + ] + }, + "metadata": { + "mapbox:featureComponent": "place-labels", + "mapbox:group": "Place labels, place-labels" + } + } + ], + "sources": { + "composite": { + "url": "mapbox://mapbox.mapbox-streets-v8,mapbox.mapbox-terrain-v2,mapbox.mapbox-bathymetry-v2", + "type": "vector" + } + }, + "created": "1970-01-01T00:00:00.000Z", + "modified": "1970-01-01T00:00:00.000Z", + "owner": "mapbox", + "id": "outdoors-v12", + "draft": false } diff --git a/play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json b/play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json index ed39d1b6c..9490b1108 100644 --- a/play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json +++ b/play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json @@ -43,7 +43,10 @@ }, "mapbox:uiParadigm": "layers" }, - "center": [12.819420849458652, 50.03325860617235], + "center": [ + 12.819420849458652, + 50.03325860617235 + ], "zoom": 3.315829104862067, "bearing": 0, "pitch": 1.5, @@ -68,8 +71,12 @@ "paint": { "background-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 4, "hsl(43, 30%, 91%)", 5, @@ -88,16 +95,33 @@ { "id": "grass", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landcover", - "filter": ["match", ["get", "class"], ["grass"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "grass" + ], + true, + false + ], "layout": {}, "paint": { "fill-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, "hsl(124, 30%, 90%)", 11, @@ -112,13 +136,21 @@ { "id": "forrest", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landcover", "filter": [ "match", - ["get", "class"], - ["wood", "scrub"], + [ + "get", + "class" + ], + [ + "wood", + "scrub" + ], true, false ], @@ -126,8 +158,12 @@ "paint": { "fill-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, "hsl(124, 42%, 86%)", 11, @@ -142,41 +178,71 @@ { "id": "national_park", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landuse_overlay", "filter": [ "match", - ["get", "class"], - ["national_park"], + [ + "get", + "class" + ], + [ + "national_park" + ], true, false ], "layout": {}, - "paint": {"fill-color": "hsl(106, 58%, 85%)"} + "paint": { + "fill-color": "hsl(106, 58%, 85%)" + } }, { "id": "snow", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landcover", - "filter": ["match", ["get", "class"], ["snow"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "snow" + ], + true, + false + ], "layout": {}, - "paint": {"fill-color": "#f9fafc"} + "paint": { + "fill-color": "#f9fafc" + } }, { "id": "hillshade", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "hillshade", "layout": {}, "paint": { "fill-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, 0.03, 13, @@ -187,106 +253,229 @@ { "id": "park", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landuse", "filter": [ "match", - ["get", "class"], - ["park", "scrub"], + [ + "get", + "class" + ], + [ + "park", + "scrub" + ], true, false ], "layout": {}, - "paint": {"fill-color": "#c1ecaf"} + "paint": { + "fill-color": "#c1ecaf" + } }, { "id": "pitch", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landuse", - "filter": ["match", ["get", "class"], ["pitch"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "pitch" + ], + true, + false + ], "layout": {}, - "paint": {"fill-color": "#c8efbb"} + "paint": { + "fill-color": "#c8efbb" + } }, { "id": "landuse", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landuse", "filter": [ "match", - ["get", "class"], - ["airport", "school", "hospital"], + [ + "get", + "class" + ], + [ + "airport", + "school", + "hospital" + ], true, false ], "layout": {}, - "paint": {"fill-color": "hsl(202, 26%, 94%)"} + "paint": { + "fill-color": "hsl(202, 26%, 94%)" + } }, { "id": "river", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "water", "layout": {}, - "paint": {"fill-color": "hsl(206, 100%, 83%)"} + "paint": { + "fill-color": "hsl(206, 100%, 83%)" + } }, { "id": "path", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["match", ["get", "class"], ["path"], true, false], - ["match", ["get", "type"], ["platform", "steps"], false, true] + [ + "match", + [ + "get", + "class" + ], + [ + "path" + ], + true, + false + ], + [ + "match", + [ + "get", + "type" + ], + [ + "platform", + "steps" + ], + false, + true + ] ], "layout": {}, "paint": { "line-color": "hsl(118, 34%, 66%)", - "line-dasharray": [4, 2] + "line-dasharray": [ + 4, + 2 + ] } }, { "id": "steps", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["match", ["get", "class"], ["path"], true, false], - ["match", ["get", "type"], ["steps"], true, false] + [ + "match", + [ + "get", + "class" + ], + [ + "path" + ], + true, + false + ], + [ + "match", + [ + "get", + "type" + ], + [ + "steps" + ], + true, + false + ] ], "layout": {}, "paint": { "line-color": "hsl(118, 5%, 66%)", - "line-dasharray": [1, 1], + "line-dasharray": [ + 1, + 1 + ], "line-gap-width": 1 } }, { "id": "platform", "type": "fill", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["match", ["get", "type"], ["platform"], true, false], - ["match", ["get", "structure"], ["tunnel"], false, true] + [ + "match", + [ + "get", + "type" + ], + [ + "platform" + ], + true, + false + ], + [ + "match", + [ + "get", + "structure" + ], + [ + "tunnel" + ], + false, + true + ] ], "layout": {}, "paint": { "fill-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 15, "hsl(2, 20%, 92%)", 16, @@ -294,8 +483,12 @@ ], "fill-outline-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 15, "hsl(1, 10%, 76%)", 16, @@ -303,8 +496,12 @@ ], "fill-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 0, 16, @@ -315,26 +512,50 @@ { "id": "primary_tunnel_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["tunnel"], true, false] + [ + "match", + [ + "get", + "structure" + ], + [ + "tunnel" + ], + true, + false + ] ], "layout": {}, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 7, 0, 8, @@ -354,26 +575,50 @@ { "id": "primary_tunnel", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["tunnel"], true, false] + [ + "match", + [ + "get", + "structure" + ], + [ + "tunnel" + ], + true, + false + ] ], "layout": {}, "paint": { "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 1, 12, @@ -391,39 +636,78 @@ { "id": "aeroway", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "aeroway", "layout": {}, - "paint": {"line-color": "hsla(0, 0%, 0%, 0.1)"} + "paint": { + "line-color": "hsla(0, 0%, 0%, 0.1)" + } }, { "id": "service_road", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", - "filter": ["match", ["get", "class"], ["service"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "service" + ], + true, + false + ], "layout": {}, - "paint": {"line-color": "hsla(0, 0%, 0%, 0.1)"} + "paint": { + "line-color": "hsla(0, 0%, 0%, 0.1)" + } }, { "id": "pedestrian_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["match", ["get", "class"], ["pedestrian"], true, false], - ["has", "name"] + [ + "match", + [ + "get", + "class" + ], + [ + "pedestrian" + ], + true, + false + ], + [ + "has", + "name" + ] ], "layout": {}, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 13, 1, 16, @@ -434,8 +718,12 @@ "line-color": "#e3e3e3", "line-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 12.5, 0, 13.5, @@ -446,16 +734,33 @@ { "id": "street_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", - "filter": ["match", ["get", "class"], ["street"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "street" + ], + true, + false + ], "layout": {}, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 12, 1, 16, @@ -469,12 +774,17 @@ { "id": "secondary_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "match", - ["get", "class"], + [ + "get", + "class" + ], [ "secondary", "secondary_link", @@ -490,8 +800,12 @@ "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 10, 1, 17, @@ -502,8 +816,12 @@ "line-color": "#e3e3e3", "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 16, 1, 20, @@ -514,26 +832,52 @@ { "id": "primary_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["tunnel"], false, true] - ], - "layout": {"line-cap": "round"}, - "paint": { - "line-gap-width": [ + [ + "match", + [ + "get", + "structure" + ], + [ + "tunnel" + ], + false, + true + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, 1, 16, @@ -547,16 +891,33 @@ { "id": "motorway_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", - "filter": ["match", ["get", "class"], ["motorway"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "motorway" + ], + true, + false + ], "layout": {}, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 1, 15.5, @@ -565,48 +926,113 @@ 78 ], "line-color": "#ecd283", - "line-width": ["interpolate", ["linear"], ["zoom"], 8, 1, 15, 2] + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 8, + 1, + 15, + 2 + ] } }, { "id": "railway", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["major_rail", "minor_rail", "service_rail"], + [ + "get", + "class" + ], + [ + "major_rail", + "minor_rail", + "service_rail" + ], true, false ], - ["match", ["get", "structure"], ["tunnel"], false, true] + [ + "match", + [ + "get", + "structure" + ], + [ + "tunnel" + ], + false, + true + ] ], "layout": {}, - "paint": {"line-color": "hsl(220, 4%, 85%)"} + "paint": { + "line-color": "hsl(220, 4%, 85%)" + } }, { "id": "pedestrian", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["match", ["get", "class"], ["pedestrian"], true, false], - ["has", "name"], - ["match", ["get", "type"], ["platform"], false, true] + [ + "match", + [ + "get", + "class" + ], + [ + "pedestrian" + ], + true, + false + ], + [ + "has", + "name" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "platform" + ], + false, + true + ] ], "layout": {}, "paint": { "line-color": "#ffffff", "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 13, 1, 16, @@ -616,8 +1042,12 @@ ], "line-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 12.5, 0, 13.5, @@ -628,17 +1058,34 @@ { "id": "street", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", - "filter": ["match", ["get", "class"], ["street"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "street" + ], + true, + false + ], "layout": {}, "paint": { "line-color": "#ffffff", "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 12, 1, 16, @@ -651,12 +1098,17 @@ { "id": "secondary", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "match", - ["get", "class"], + [ + "get", + "class" + ], [ "secondary", "secondary_link", @@ -673,8 +1125,12 @@ "line-color": "#ffffff", "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 10, 1, 17, @@ -687,33 +1143,61 @@ { "id": "primary", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["tunnel"], false, true] + [ + "match", + [ + "get", + "structure" + ], + [ + "tunnel" + ], + false, + true + ] ], - "layout": {"line-cap": "round"}, + "layout": { + "line-cap": "round" + }, "paint": { "line-color": [ "step", - ["zoom"], + [ + "zoom" + ], "hsl(50, 100%, 75%)", 7, "hsl(50, 100%, 85%)" ], "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, 1, 16, @@ -726,17 +1210,34 @@ { "id": "motorway", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", - "filter": ["match", ["get", "class"], ["motorway"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "motorway" + ], + true, + false + ], "layout": {}, "paint": { "line-color": "#ffeba3", "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 1, 15.5, @@ -749,26 +1250,50 @@ { "id": "primary_bridge_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["bridge"], true, false] + [ + "match", + [ + "get", + "structure" + ], + [ + "bridge" + ], + true, + false + ] ], "layout": {}, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, 1, 16, @@ -782,33 +1307,59 @@ { "id": "primary_bridge", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["bridge"], true, false] + [ + "match", + [ + "get", + "structure" + ], + [ + "bridge" + ], + true, + false + ] ], "layout": {}, "paint": { "line-color": [ "step", - ["zoom"], + [ + "zoom" + ], "hsl(50, 100%, 75%)", 7, "hsl(50, 100%, 85%)" ], "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, 1, 16, @@ -821,15 +1372,31 @@ { "id": "building", "type": "fill", - "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "metadata": { + "mapbox:group": "29bb589e8d1b9b402583363648b70302" + }, "source": "composite", "source-layer": "building", - "filter": ["match", ["get", "type"], ["roof"], false, true], + "filter": [ + "match", + [ + "get", + "type" + ], + [ + "roof" + ], + false, + true + ], "layout": {}, "paint": { "fill-color": [ "match", - ["get", "type"], + [ + "get", + "type" + ], [ "store", "retail", @@ -846,8 +1413,12 @@ ], "fill-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 15, 0, 17, @@ -858,15 +1429,31 @@ { "id": "building_border", "type": "line", - "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "metadata": { + "mapbox:group": "29bb589e8d1b9b402583363648b70302" + }, "source": "composite", "source-layer": "building", - "filter": ["match", ["get", "type"], ["roof"], false, true], + "filter": [ + "match", + [ + "get", + "type" + ], + [ + "roof" + ], + false, + true + ], "layout": {}, "paint": { "line-color": [ "match", - ["get", "type"], + [ + "get", + "type" + ], [ "store", "retail", @@ -883,8 +1470,12 @@ ], "line-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 15, 0, 17, @@ -895,20 +1486,40 @@ { "id": "building_3d", "type": "fill-extrusion", - "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "metadata": { + "mapbox:group": "29bb589e8d1b9b402583363648b70302" + }, "source": "composite", "source-layer": "building", - "filter": ["match", ["get", "extrude"], ["true"], true, false], + "filter": [ + "match", + [ + "get", + "extrude" + ], + [ + "true" + ], + true, + false + ], "layout": {}, "paint": { "fill-extrusion-height": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 15, 0, 16, - ["get", "height"] + [ + "get", + "height" + ] ], "fill-extrusion-opacity": 0.3, "fill-extrusion-color": "hsl(0, 0%, 93%)" @@ -917,19 +1528,50 @@ { "id": "admin_0", "type": "line", - "metadata": {"mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa"}, + "metadata": { + "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa" + }, "source": "composite", "source-layer": "admin", "filter": [ "all", - ["match", ["get", "maritime"], ["false"], true, false], - ["match", ["get", "admin_level"], [0], true, false] + [ + "match", + [ + "get", + "maritime" + ], + [ + "false" + ], + true, + false + ], + [ + "match", + [ + "get", + "admin_level" + ], + [ + 0 + ], + true, + false + ] ], "layout": {}, "paint": { "line-color": [ "case", - ["==", ["get", "disputed"], true], + [ + "==", + [ + "get", + "disputed" + ], + true + ], "hsl(0, 24%, 48%)", "#787a7b" ] @@ -938,37 +1580,92 @@ { "id": "admin_1", "type": "line", - "metadata": {"mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa"}, + "metadata": { + "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa" + }, "source": "composite", "source-layer": "admin", "filter": [ "all", - ["match", ["get", "maritime"], ["false"], true, false], - ["match", ["get", "admin_level"], [1], true, false] - ], - "layout": {}, - "paint": { - "line-color": [ - "case", - ["==", ["get", "disputed"], true], - "hsl(0, 24%, 48%)", - "#787a7b" - ], - "line-dasharray": [1, 1] - } - }, - { - "id": "river_name", - "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + [ + "match", + [ + "get", + "maritime" + ], + [ + "false" + ], + true, + false + ], + [ + "match", + [ + "get", + "admin_level" + ], + [ + 1 + ], + true, + false + ] + ], + "layout": {}, + "paint": { + "line-color": [ + "case", + [ + "==", + [ + "get", + "disputed" + ], + true + ], + "hsl(0, 24%, 48%)", + "#787a7b" + ], + "line-dasharray": [ + 1, + 1 + ] + } + }, + { + "id": "river_name", + "type": "symbol", + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + }, "source": "composite", "source-layer": "natural_label", - "filter": ["match", ["get", "class"], ["river"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "river" + ], + true, + false + ], "layout": { - "text-field": ["to-string", ["get", "name"]], + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ], "symbol-placement": "line", "symbol-spacing": 500, - "text-font": ["Roboto Regular"] + "text-font": [ + "Roboto Regular" + ] }, "paint": { "text-color": "#5083c1", @@ -979,17 +1676,38 @@ { "id": "city_label_right", "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + }, "source": "composite", "source-layer": "place_label", "maxzoom": 8, "filter": [ "all", - ["<=", ["get", "filterrank"], ["/", ["zoom"], 3]], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 3 + ] + ], [ "match", - ["get", "class"], - ["settlement", "settlement_subdivision"], + [ + "get", + "class" + ], + [ + "settlement", + "settlement_subdivision" + ], true, false ] @@ -998,50 +1716,141 @@ "text-optional": true, "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, - ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + [ + "-", + 14, + [ + "max", + 0, + [ + "-", + [ + "get", + "symbolrank" + ], + 8 + ] + ] + ], 22, - ["-", 20, ["/", ["get", "symbolrank"], 4]] + [ + "-", + 20, + [ + "/", + [ + "get", + "symbolrank" + ], + 4 + ] + ] ], "icon-image": [ "match", - ["get", "capital"], - [0, 2], + [ + "get", + "capital" + ], + [ + 0, + 2 + ], "capital", "city" ], "text-font": [ "step", - ["get", "symbolrank"], - ["literal", ["Roboto Medium"]], + [ + "get", + "symbolrank" + ], + [ + "literal", + [ + "Roboto Medium" + ] + ], 10, - ["literal", ["Roboto Regular"]] + [ + "literal", + [ + "Roboto Regular" + ] + ] ], "text-justify": "left", - "text-offset": [0.5, 0.1], - "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-offset": [ + 0.5, + 0.1 + ], + "icon-size": [ + "/", + 5, + [ + "get", + "symbolrank" + ] + ], "text-anchor": "left", - "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, [ "concat", "hsl(213, 11%, ", - ["+", ["*", ["get", "symbolrank"], 2], 5], + [ + "+", + [ + "*", + [ + "get", + "symbolrank" + ], + 2 + ], + 5 + ], "%)" ], 22, [ "concat", "hsl(213, 11%, ", - ["+", ["get", "symbolrank"], 25], + [ + "+", + [ + "get", + "symbolrank" + ], + 25 + ], "%)" ] ], @@ -1054,17 +1863,38 @@ { "id": "city_label_left", "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + }, "source": "composite", "source-layer": "place_label", "maxzoom": 8, "filter": [ "all", - ["<=", ["get", "filterrank"], ["/", ["zoom"], 3]], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 3 + ] + ], [ "match", - ["get", "class"], - ["settlement", "settlement_subdivision"], + [ + "get", + "class" + ], + [ + "settlement", + "settlement_subdivision" + ], true, false ] @@ -1072,50 +1902,141 @@ "layout": { "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, - ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + [ + "-", + 14, + [ + "max", + 0, + [ + "-", + [ + "get", + "symbolrank" + ], + 8 + ] + ] + ], 22, - ["-", 20, ["/", ["get", "symbolrank"], 4]] + [ + "-", + 20, + [ + "/", + [ + "get", + "symbolrank" + ], + 4 + ] + ] ], "icon-image": [ "match", - ["get", "capital"], - [0, 2], + [ + "get", + "capital" + ], + [ + 0, + 2 + ], "capital", "city" ], "text-font": [ "step", - ["get", "symbolrank"], - ["literal", ["Roboto Medium"]], + [ + "get", + "symbolrank" + ], + [ + "literal", + [ + "Roboto Medium" + ] + ], 10, - ["literal", ["Roboto Regular"]] + [ + "literal", + [ + "Roboto Regular" + ] + ] ], "text-justify": "right", - "text-offset": [-0.5, 0.1], - "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-offset": [ + -0.5, + 0.1 + ], + "icon-size": [ + "/", + 5, + [ + "get", + "symbolrank" + ] + ], "text-anchor": "right", - "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, [ "concat", "hsl(213, 11%, ", - ["+", ["*", ["get", "symbolrank"], 2], 5], + [ + "+", + [ + "*", + [ + "get", + "symbolrank" + ], + 2 + ], + 5 + ], "%)" ], 22, [ "concat", "hsl(213, 11%, ", - ["+", ["get", "symbolrank"], 25], + [ + "+", + [ + "get", + "symbolrank" + ], + 25 + ], "%)" ] ], @@ -1128,17 +2049,38 @@ { "id": "city_label_below", "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + }, "source": "composite", "source-layer": "place_label", "maxzoom": 8, "filter": [ "all", - ["<=", ["get", "filterrank"], ["/", ["zoom"], 3]], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 3 + ] + ], [ "match", - ["get", "class"], - ["settlement", "settlement_subdivision"], + [ + "get", + "class" + ], + [ + "settlement", + "settlement_subdivision" + ], true, false ] @@ -1146,49 +2088,140 @@ "layout": { "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, - ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + [ + "-", + 14, + [ + "max", + 0, + [ + "-", + [ + "get", + "symbolrank" + ], + 8 + ] + ] + ], 22, - ["-", 20, ["/", ["get", "symbolrank"], 4]] + [ + "-", + 20, + [ + "/", + [ + "get", + "symbolrank" + ], + 4 + ] + ] ], "icon-image": [ "match", - ["get", "capital"], - [0, 2], + [ + "get", + "capital" + ], + [ + 0, + 2 + ], "capital", "city" ], "text-font": [ "step", - ["get", "symbolrank"], - ["literal", ["Roboto Medium"]], + [ + "get", + "symbolrank" + ], + [ + "literal", + [ + "Roboto Medium" + ] + ], 10, - ["literal", ["Roboto Regular"]] + [ + "literal", + [ + "Roboto Regular" + ] + ] + ], + "text-offset": [ + 0, + 0.4 + ], + "icon-size": [ + "/", + 5, + [ + "get", + "symbolrank" + ] ], - "text-offset": [0, 0.4], - "icon-size": ["/", 5, ["get", "symbolrank"]], "text-anchor": "top", - "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, [ "concat", "hsl(213, 11%, ", - ["+", ["*", ["get", "symbolrank"], 2], 5], + [ + "+", + [ + "*", + [ + "get", + "symbolrank" + ], + 2 + ], + 5 + ], "%)" ], 22, [ "concat", "hsl(213, 11%, ", - ["+", ["get", "symbolrank"], 25], + [ + "+", + [ + "get", + "symbolrank" + ], + 25 + ], "%)" ] ], @@ -1201,16 +2234,37 @@ { "id": "city_name", "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + }, "source": "composite", "source-layer": "place_label", "filter": [ "all", - ["<=", ["get", "filterrank"], ["/", ["zoom"], 3]], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 3 + ] + ], [ "match", - ["get", "class"], - ["settlement", "settlement_subdivision"], + [ + "get", + "class" + ], + [ + "settlement", + "settlement_subdivision" + ], true, false ] @@ -1218,48 +2272,152 @@ "layout": { "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, - ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + [ + "-", + 14, + [ + "max", + 0, + [ + "-", + [ + "get", + "symbolrank" + ], + 8 + ] + ] + ], 22, - ["-", 20, ["/", ["get", "symbolrank"], 4]] + [ + "-", + 20, + [ + "/", + [ + "get", + "symbolrank" + ], + 4 + ] + ] ], "icon-image": [ "step", - ["zoom"], - ["match", ["get", "capital"], [0, 2], "capital", "city"], + [ + "zoom" + ], + [ + "match", + [ + "get", + "capital" + ], + [ + 0, + 2 + ], + "capital", + "city" + ], 8, "" ], "text-transform": [ "step", - ["get", "symbolrank"], + [ + "get", + "symbolrank" + ], "none", 15, "uppercase" ], - "text-font": [ - "step", - ["get", "symbolrank"], - ["literal", ["Roboto Medium"]], - 10, - ["literal", ["Roboto Regular"]] + "text-font": [ + "step", + [ + "get", + "symbolrank" + ], + [ + "literal", + [ + "Roboto Medium" + ] + ], + 10, + [ + "literal", + [ + "Roboto Regular" + ] + ] + ], + "text-offset": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 0, + -0.2 + ] + ], + 8, + [ + "literal", + [ + 0, + 0 + ] + ] + ], + "icon-size": [ + "/", + 5, + [ + "get", + "symbolrank" + ] ], - "text-offset": [ + "text-anchor": [ "step", - ["zoom"], - ["literal", [0, -0.2]], + [ + "zoom" + ], + "bottom", 8, - ["literal", [0, 0]] + "center" + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] ], - "icon-size": ["/", 5, ["get", "symbolrank"]], - "text-anchor": ["step", ["zoom"], "bottom", 8, "center"], - "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]], "text-letter-spacing": [ "interpolate", - ["linear"], - ["get", "symbolrank"], + [ + "linear" + ], + [ + "get", + "symbolrank" + ], 0, 0, 8, @@ -1273,20 +2431,42 @@ "paint": { "text-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, [ "concat", "hsl(213, 11%, ", - ["+", ["*", ["get", "symbolrank"], 2], 5], + [ + "+", + [ + "*", + [ + "get", + "symbolrank" + ], + 2 + ], + 5 + ], "%)" ], 22, [ "concat", "hsl(213, 11%, ", - ["+", ["get", "symbolrank"], 25], + [ + "+", + [ + "get", + "symbolrank" + ], + 25 + ], "%)" ] ], @@ -1299,18 +2479,52 @@ { "id": "park_name", "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "poi", + "microg:gms-type-element": "label" + }, "source": "composite", "source-layer": "poi_label", "filter": [ "all", - ["has", "name"], - ["match", ["get", "maki"], ["park", "cemetery"], true, false], - ["<=", ["get", "sizerank"], 10] + [ + "has", + "name" + ], + [ + "match", + [ + "get", + "maki" + ], + [ + "park", + "cemetery" + ], + true, + false + ], + [ + "<=", + [ + "get", + "sizerank" + ], + 10 + ] ], "layout": { - "text-field": ["to-string", ["get", "name"]], - "text-font": ["Roboto Regular"], + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ], + "text-font": [ + "Roboto Regular" + ], "text-size": 14 }, "paint": { @@ -1323,17 +2537,36 @@ { "id": "road-number-shield", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "road", - "filter": ["all", ["has", "ref"], ["<=", ["get", "reflen"], 6]], + "filter": [ + "all", + [ + "has", + "ref" + ], + [ + "<=", + [ + "get", + "reflen" + ], + 6 + ] + ], "layout": { "text-size": 9, "icon-image": [ "case", [ "match", - ["get", "shield"], + [ + "get", + "shield" + ], [ "de-motorway", "rectangle-green", @@ -1349,35 +2582,96 @@ [ "concat", "shield_", - ["get", "shield"], + [ + "get", + "shield" + ], "_", - ["get", "reflen"] + [ + "get", + "reflen" + ] ], [ "match", - ["get", "shield_text_color"], - ["white"], + [ + "get", + "shield_text_color" + ], + [ + "white" + ], true, false ], - ["concat", "shield_rectangle-blue_", ["get", "reflen"]], - ["concat", "shield_rectangle-white_", ["get", "reflen"]] + [ + "concat", + "shield_rectangle-blue_", + [ + "get", + "reflen" + ] + ], + [ + "concat", + "shield_rectangle-white_", + [ + "get", + "reflen" + ] + ] ], "icon-rotation-alignment": "viewport", "text-font": [ "match", - ["get", "shield_text_color"], - ["white"], - ["literal", ["Roboto Bold"]], - ["black"], - ["literal", ["Roboto Medium"]], - ["literal", ["Roboto Bold"]] - ], - "symbol-placement": ["step", ["zoom"], "point", 11, "line"], - "text-offset": [0, 0.1], + [ + "get", + "shield_text_color" + ], + [ + "white" + ], + [ + "literal", + [ + "Roboto Bold" + ] + ], + [ + "black" + ], + [ + "literal", + [ + "Roboto Medium" + ] + ], + [ + "literal", + [ + "Roboto Bold" + ] + ] + ], + "symbol-placement": [ + "step", + [ + "zoom" + ], + "point", + 11, + "line" + ], + "text-offset": [ + 0, + 0.1 + ], "text-rotation-alignment": "viewport", "icon-size": 0.75, - "text-field": ["get", "ref"], + "text-field": [ + "get", + "ref" + ], "text-letter-spacing": 0.05 }, "paint": { @@ -1385,40 +2679,65 @@ "case", [ "match", - ["get", "shield_text_color"], - ["white"], + [ + "get", + "shield_text_color" + ], + [ + "white" + ], true, false ], "#ffffff", [ "match", - ["get", "shield_text_color"], - ["black"], + [ + "get", + "shield_text_color" + ], + [ + "black" + ], true, false ], "hsl(0, 0%, 7%)", [ "match", - ["get", "shield_text_color"], - ["yellow"], + [ + "get", + "shield_text_color" + ], + [ + "yellow" + ], true, false ], "hsl(50, 100%, 70%)", [ "match", - ["get", "shield_text_color"], - ["orange"], + [ + "get", + "shield_text_color" + ], + [ + "orange" + ], true, false ], "hsl(25, 100%, 75%)", [ "match", - ["get", "shield_text_color"], - ["blue"], + [ + "get", + "shield_text_color" + ], + [ + "blue" + ], true, false ], @@ -1430,31 +2749,72 @@ { "id": "country_name", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "place_label", - "filter": ["match", ["get", "class"], ["country"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "country" + ], + true, + false + ], "layout": { "text-letter-spacing": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 1, 0, 3, 0.15 ], - "text-font": ["Roboto Medium"], + "text-font": [ + "Roboto Medium" + ], "text-size": [ "interpolate", - ["exponential", 1.2], - ["zoom"], + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], 1, 12, 7, - ["/", 100, ["get", "symbolrank"]] + [ + "/", + 100, + [ + "get", + "symbolrank" + ] + ] ], - "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] }, "paint": { "text-color": "hsl(0, 0%, 10%)", @@ -1463,8 +2823,12 @@ "text-halo-blur": 1, "text-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 6, 1, 7, @@ -1475,24 +2839,60 @@ { "id": "pedestrian_name", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "road", "minzoom": 16, "filter": [ "all", - ["has", "name"], - ["match", ["get", "class"], ["pedestrian"], true, false], - ["match", ["get", "type"], ["platform"], false, true] + [ + "has", + "name" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "pedestrian" + ], + true, + false + ], + [ + "match", + [ + "get", + "type" + ], + [ + "platform" + ], + false, + true + ] ], "layout": { - "text-field": ["get", "name"], + "text-field": [ + "get", + "name" + ], "symbol-placement": "line", - "text-font": ["Roboto Regular"], + "text-font": [ + "Roboto Regular" + ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 17, 10, 22, @@ -1510,22 +2910,47 @@ { "id": "street_name", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["has", "name"], - ["match", ["get", "class"], ["street"], true, false] + [ + "has", + "name" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street" + ], + true, + false + ] ], "layout": { - "text-field": ["get", "name"], + "text-field": [ + "get", + "name" + ], "symbol-placement": "line", - "text-font": ["Roboto Regular"], + "text-font": [ + "Roboto Regular" + ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 6, 16, @@ -1543,15 +2968,23 @@ { "id": "secondary_name", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["has", "name"], + [ + "has", + "name" + ], [ "match", - ["get", "class"], + [ + "get", + "class" + ], [ "secondary", "secondary_link", @@ -1565,13 +2998,22 @@ ] ], "layout": { - "text-field": ["get", "name"], + "text-field": [ + "get", + "name" + ], "symbol-placement": "line", - "text-font": ["Roboto Regular"], + "text-font": [ + "Roboto Regular" + ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 8, 16, @@ -1590,28 +3032,48 @@ { "id": "primary_name", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["has", "name"], + [ + "has", + "name" + ], [ "match", - ["get", "class"], - ["primary", "primary_link"], + [ + "get", + "class" + ], + [ + "primary", + "primary_link" + ], true, false ] ], "layout": { - "text-field": ["get", "name"], + "text-field": [ + "get", + "name" + ], "symbol-placement": "line", - "text-font": ["Roboto Regular"], + "text-font": [ + "Roboto Regular" + ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 10, 18, @@ -1630,25 +3092,56 @@ { "id": "poi_label_below", "type": "symbol", - "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "metadata": { + "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + }, "source": "composite", "source-layer": "poi_label", "filter": [ "all", - ["has", "name"], - ["<=", ["get", "filterrank"], ["/", ["zoom"], 3.5]], + [ + "has", + "name" + ], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 3.5 + ] + ], [ "!", [ "all", [ "match", - ["get", "maki"], - ["park", "cemetery"], + [ + "get", + "maki" + ], + [ + "park", + "cemetery" + ], true, false ], - ["<=", ["get", "sizerank"], 10] + [ + "<=", + [ + "get", + "sizerank" + ], + 10 + ] ] ] ], @@ -1656,8 +3149,12 @@ "text-optional": true, "text-line-height": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 1, 15, @@ -1665,19 +3162,42 @@ ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 13, 15, 14 ], - "icon-offset": [0, -36], + "icon-offset": [ + 0, + -36 + ], "icon-image": [ "match", - ["get", "maki"], - ["museum", "lodging", "theatre", "grocery", "restaurant"], - ["concat", "poi_", ["get", "maki"]], + [ + "get", + "maki" + ], + [ + "museum", + "lodging", + "theatre", + "grocery", + "restaurant" + ], + [ + "concat", + "poi_", + [ + "get", + "maki" + ] + ], [ "fitness-centre", "golf", @@ -1694,9 +3214,17 @@ "cemetery" ], "poi_generic_green", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "poi_generic_purple", - ["bar", "cafe", "bakery"], + [ + "bar", + "cafe", + "bakery" + ], "poi_generic_orange", [ "alcohol-shop", @@ -1717,7 +3245,10 @@ "monument" ], "poi_generic_teal", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "poi_generic_red", [ "restaurant-pizza", @@ -1729,24 +3260,42 @@ "poi_restaurant", "poi_generic" ], - "text-font": ["Roboto Regular"], - "text-offset": [0, 0.5], + "text-font": [ + "Roboto Regular" + ], + "text-offset": [ + 0, + 0.5 + ], "icon-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 0.25, 15, 0.32 ], "text-anchor": "top", - "text-field": ["to-string", ["get", "name"]] + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "match", - ["get", "maki"], + [ + "get", + "maki" + ], [ "museum", "casino", @@ -1759,7 +3308,9 @@ "monument" ], "hsl(186, 78%, 44%)", - ["lodging"], + [ + "lodging" + ], "#df7db1", [ "fitness-centre", @@ -1799,41 +3350,85 @@ "jewelry-store" ], "hsl(213, 40%, 48%)", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "#737b9b", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "#a47172", "#67747b" ], "text-halo-color": "#ffffff", "text-halo-width": 1, - "icon-translate": [0, 0], - "text-translate": [0, 0], + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 0 + ], "text-halo-blur": 1 } }, { "id": "poi_label_above", "type": "symbol", - "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "metadata": { + "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + }, "source": "composite", "source-layer": "poi_label", "filter": [ "all", - ["has", "name"], - ["<=", ["get", "filterrank"], ["/", ["zoom"], 3.5]], + [ + "has", + "name" + ], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 3.5 + ] + ], [ "!", [ "all", [ "match", - ["get", "maki"], - ["park", "cemetery"], + [ + "get", + "maki" + ], + [ + "park", + "cemetery" + ], true, false ], - ["<=", ["get", "sizerank"], 10] + [ + "<=", + [ + "get", + "sizerank" + ], + 10 + ] ] ] ], @@ -1841,8 +3436,12 @@ "text-optional": true, "text-line-height": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 1, 15, @@ -1850,19 +3449,42 @@ ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 13, 15, 14 ], - "icon-offset": [0, -36], + "icon-offset": [ + 0, + -36 + ], "icon-image": [ "match", - ["get", "maki"], - ["museum", "lodging", "theatre", "grocery", "restaurant"], - ["concat", "poi_", ["get", "maki"]], + [ + "get", + "maki" + ], + [ + "museum", + "lodging", + "theatre", + "grocery", + "restaurant" + ], + [ + "concat", + "poi_", + [ + "get", + "maki" + ] + ], [ "fitness-centre", "golf", @@ -1879,9 +3501,17 @@ "cemetery" ], "poi_generic_green", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "poi_generic_purple", - ["bar", "cafe", "bakery"], + [ + "bar", + "cafe", + "bakery" + ], "poi_generic_orange", [ "alcohol-shop", @@ -1902,7 +3532,10 @@ "monument" ], "poi_generic_teal", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "poi_generic_red", [ "restaurant-pizza", @@ -1914,24 +3547,42 @@ "poi_restaurant", "poi_generic" ], - "text-font": ["Roboto Regular"], - "text-offset": [0, -2], + "text-font": [ + "Roboto Regular" + ], + "text-offset": [ + 0, + -2 + ], "icon-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 0.25, 15, 0.32 ], "text-anchor": "bottom", - "text-field": ["to-string", ["get", "name"]] + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "match", - ["get", "maki"], + [ + "get", + "maki" + ], [ "museum", "casino", @@ -1944,7 +3595,9 @@ "monument" ], "hsl(186, 78%, 44%)", - ["lodging"], + [ + "lodging" + ], "#df7db1", [ "fitness-centre", @@ -1984,49 +3637,97 @@ "jewelry-store" ], "hsl(213, 40%, 48%)", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "#737b9b", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "#a47172", "#67747b" ], "text-halo-color": "#ffffff", "text-halo-width": 1, - "icon-translate": [0, 0], - "text-translate": [0, 0], + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 0 + ], "text-halo-blur": 1 } }, { "id": "poi_label_left", "type": "symbol", - "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "metadata": { + "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + }, "source": "composite", "source-layer": "poi_label", "filter": [ "all", - ["has", "name"], - ["<=", ["get", "filterrank"], ["/", ["zoom"], 3.5]], + [ + "has", + "name" + ], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 3.5 + ] + ], [ "!", [ "all", [ "match", - ["get", "maki"], - ["park", "cemetery"], + [ + "get", + "maki" + ], + [ + "park", + "cemetery" + ], true, false ], - ["<=", ["get", "sizerank"], 10] + [ + "<=", + [ + "get", + "sizerank" + ], + 10 + ] ] ] ], "layout": { "text-line-height": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 1, 15, @@ -2034,19 +3735,42 @@ ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 13, 15, 14 ], - "icon-offset": [0, -36], + "icon-offset": [ + 0, + -36 + ], "icon-image": [ "match", - ["get", "maki"], - ["museum", "lodging", "theatre", "grocery", "restaurant"], - ["concat", "poi_", ["get", "maki"]], + [ + "get", + "maki" + ], + [ + "museum", + "lodging", + "theatre", + "grocery", + "restaurant" + ], + [ + "concat", + "poi_", + [ + "get", + "maki" + ] + ], [ "fitness-centre", "golf", @@ -2063,9 +3787,17 @@ "cemetery" ], "poi_generic_green", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "poi_generic_purple", - ["bar", "cafe", "bakery"], + [ + "bar", + "cafe", + "bakery" + ], "poi_generic_orange", [ "alcohol-shop", @@ -2086,7 +3818,10 @@ "monument" ], "poi_generic_teal", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "poi_generic_red", [ "restaurant-pizza", @@ -2098,33 +3833,64 @@ "poi_restaurant", "poi_generic" ], - "text-font": ["Roboto Regular"], + "text-font": [ + "Roboto Regular" + ], "text-justify": "right", "text-offset": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, - ["literal", [-1.1, -0.7]], + [ + "literal", + [ + -1.1, + -0.7 + ] + ], 15, - ["literal", [-1.1, -0.9]] + [ + "literal", + [ + -1.1, + -0.9 + ] + ] ], "icon-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 0.25, 15, 0.32 ], "text-anchor": "right", - "text-field": ["to-string", ["get", "name"]] + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "match", - ["get", "maki"], + [ + "get", + "maki" + ], [ "museum", "casino", @@ -2137,7 +3903,9 @@ "monument" ], "hsl(186, 78%, 44%)", - ["lodging"], + [ + "lodging" + ], "#df7db1", [ "fitness-centre", @@ -2177,49 +3945,97 @@ "jewelry-store" ], "hsl(213, 40%, 48%)", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "#737b9b", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "#a47172", "#67747b" ], "text-halo-color": "#ffffff", "text-halo-width": 1, - "icon-translate": [0, 0], - "text-translate": [0, 0], + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 0 + ], "text-halo-blur": 1 } }, { "id": "poi_label_right", "type": "symbol", - "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "metadata": { + "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + }, "source": "composite", "source-layer": "poi_label", "filter": [ "all", - ["has", "name"], - ["<=", ["get", "filterrank"], ["/", ["zoom"], 3.5]], + [ + "has", + "name" + ], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 3.5 + ] + ], [ "!", [ "all", [ "match", - ["get", "maki"], - ["park", "cemetery"], + [ + "get", + "maki" + ], + [ + "park", + "cemetery" + ], true, false ], - ["<=", ["get", "sizerank"], 10] + [ + "<=", + [ + "get", + "sizerank" + ], + 10 + ] ] ] ], "layout": { "text-line-height": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 1, 15, @@ -2227,19 +4043,42 @@ ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 13, 15, 14 ], - "icon-offset": [0, -36], + "icon-offset": [ + 0, + -36 + ], "icon-image": [ "match", - ["get", "maki"], - ["museum", "lodging", "theatre", "grocery", "restaurant"], - ["concat", "poi_", ["get", "maki"]], + [ + "get", + "maki" + ], + [ + "museum", + "lodging", + "theatre", + "grocery", + "restaurant" + ], + [ + "concat", + "poi_", + [ + "get", + "maki" + ] + ], [ "fitness-centre", "golf", @@ -2256,9 +4095,17 @@ "cemetery" ], "poi_generic_green", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "poi_generic_purple", - ["bar", "cafe", "bakery"], + [ + "bar", + "cafe", + "bakery" + ], "poi_generic_orange", [ "alcohol-shop", @@ -2279,7 +4126,10 @@ "monument" ], "poi_generic_teal", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "poi_generic_red", [ "restaurant-pizza", @@ -2291,33 +4141,64 @@ "poi_restaurant", "poi_generic" ], - "text-font": ["Roboto Regular"], + "text-font": [ + "Roboto Regular" + ], "text-justify": "left", "text-offset": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, - ["literal", [1.1, -0.7]], + [ + "literal", + [ + 1.1, + -0.7 + ] + ], 15, - ["literal", [1.1, -0.9]] + [ + "literal", + [ + 1.1, + -0.9 + ] + ] ], "icon-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 0.25, 15, 0.32 ], "text-anchor": "left", - "text-field": ["to-string", ["get", "name"]] + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "match", - ["get", "maki"], + [ + "get", + "maki" + ], [ "museum", "casino", @@ -2330,7 +4211,9 @@ "monument" ], "hsl(186, 78%, 44%)", - ["lodging"], + [ + "lodging" + ], "#df7db1", [ "fitness-centre", @@ -2370,16 +4253,29 @@ "jewelry-store" ], "hsl(213, 40%, 48%)", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "#737b9b", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "#a47172", "#67747b" ], "text-halo-color": "#ffffff", "text-halo-width": 1, - "icon-translate": [0, 0], - "text-translate": [0, 0], + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 0 + ], "text-halo-blur": 1 } } @@ -2391,4 +4287,4 @@ "visibility": "public", "protected": false, "draft": false -} \ No newline at end of file +} diff --git a/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json b/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json index b2a91277e..1a6e2e974 100644 --- a/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json +++ b/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json @@ -43,11 +43,17 @@ }, "mapbox:uiParadigm": "layers" }, - "center": [12.819420849458652, 50.03325860617235], + "center": [ + 12.819420849458652, + 50.03325860617235 + ], "zoom": 3.315829104862067, "bearing": 0, "pitch": 1.5, - "light": {"intensity": 0.5, "color": "hsl(0, 0%, 0%)"}, + "light": { + "intensity": 0.5, + "color": "hsl(0, 0%, 0%)" + }, "sources": { "mapbox://mapbox.satellite": { "url": "mapbox://mapbox.satellite", @@ -72,22 +78,36 @@ { "id": "forrest", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landcover", "filter": [ "match", - ["get", "class"], - ["wood", "scrub"], + [ + "get", + "class" + ], + [ + "wood", + "scrub" + ], true, false ], - "layout": {"visibility": "none"}, + "layout": { + "visibility": "none" + }, "paint": { "fill-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, "hsl(124, 42%, 86%)", 11, @@ -102,41 +122,77 @@ { "id": "national_park", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landuse_overlay", "filter": [ "match", - ["get", "class"], - ["national_park"], + [ + "get", + "class" + ], + [ + "national_park" + ], true, false ], - "layout": {"visibility": "none"}, - "paint": {"fill-color": "hsl(106, 58%, 85%)"} + "layout": { + "visibility": "none" + }, + "paint": { + "fill-color": "hsl(106, 58%, 85%)" + } }, { "id": "snow", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landcover", - "filter": ["match", ["get", "class"], ["snow"], true, false], - "layout": {"visibility": "none"}, - "paint": {"fill-color": "#f9fafc"} + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "snow" + ], + true, + false + ], + "layout": { + "visibility": "none" + }, + "paint": { + "fill-color": "#f9fafc" + } }, { "id": "hillshade", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "hillshade", - "layout": {"visibility": "none"}, + "layout": { + "visibility": "none" + }, "paint": { "fill-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, 0.03, 13, @@ -147,87 +203,190 @@ { "id": "park", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landuse", "filter": [ "match", - ["get", "class"], - ["park", "scrub"], + [ + "get", + "class" + ], + [ + "park", + "scrub" + ], true, false ], - "layout": {"visibility": "none"}, - "paint": {"fill-color": "#c1ecaf"} + "layout": { + "visibility": "none" + }, + "paint": { + "fill-color": "#c1ecaf" + } }, { "id": "pitch", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landuse", - "filter": ["match", ["get", "class"], ["pitch"], true, false], - "layout": {"visibility": "none"}, - "paint": {"fill-color": "#c8efbb"} + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "pitch" + ], + true, + false + ], + "layout": { + "visibility": "none" + }, + "paint": { + "fill-color": "#c8efbb" + } }, { "id": "landuse", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "landuse", "filter": [ "match", - ["get", "class"], - ["airport", "school", "hospital"], + [ + "get", + "class" + ], + [ + "airport", + "school", + "hospital" + ], true, false ], - "layout": {"visibility": "none"}, - "paint": {"fill-color": "hsl(202, 26%, 94%)"} + "layout": { + "visibility": "none" + }, + "paint": { + "fill-color": "hsl(202, 26%, 94%)" + } }, { "id": "river", "type": "fill", - "metadata": {"mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e"}, + "metadata": { + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + }, "source": "composite", "source-layer": "water", - "layout": {"visibility": "none"}, - "paint": {"fill-color": "hsl(206, 100%, 83%)"} + "layout": { + "visibility": "none" + }, + "paint": { + "fill-color": "hsl(206, 100%, 83%)" + } }, { "id": "path", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["match", ["get", "class"], ["path"], true, false], - ["match", ["get", "type"], ["platform", "steps"], false, true] + [ + "match", + [ + "get", + "class" + ], + [ + "path" + ], + true, + false + ], + [ + "match", + [ + "get", + "type" + ], + [ + "platform", + "steps" + ], + false, + true + ] ], "layout": {}, "paint": { "line-color": "hsl(118, 34%, 66%)", - "line-dasharray": [4, 2], + "line-dasharray": [ + 4, + 2 + ], "line-opacity": 0.3 } }, { "id": "steps", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["match", ["get", "class"], ["path"], true, false], - ["match", ["get", "type"], ["steps"], true, false] + [ + "match", + [ + "get", + "class" + ], + [ + "path" + ], + true, + false + ], + [ + "match", + [ + "get", + "type" + ], + [ + "steps" + ], + true, + false + ] ], "layout": {}, "paint": { "line-color": "hsl(118, 5%, 66%)", - "line-dasharray": [1, 1], + "line-dasharray": [ + 1, + 1 + ], "line-gap-width": 1, "line-opacity": 0.3 } @@ -235,16 +394,33 @@ { "id": "platform", "type": "fill", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", - "filter": ["match", ["get", "type"], ["platform"], true, false], + "filter": [ + "match", + [ + "get", + "type" + ], + [ + "platform" + ], + true, + false + ], "layout": {}, "paint": { "fill-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 15, "hsl(2, 20%, 92%)", 16, @@ -252,8 +428,12 @@ ], "fill-outline-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 15, "hsl(1, 10%, 76%)", 16, @@ -261,8 +441,12 @@ ], "fill-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 0, 16, @@ -273,26 +457,52 @@ { "id": "primary_tunnel_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["tunnel"], true, false] + [ + "match", + [ + "get", + "structure" + ], + [ + "tunnel" + ], + true, + false + ] ], - "layout": {"visibility": "none"}, + "layout": { + "visibility": "none" + }, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 7, 0, 8, @@ -312,26 +522,50 @@ { "id": "primary_tunnel", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["tunnel"], true, false] + [ + "match", + [ + "get", + "structure" + ], + [ + "tunnel" + ], + true, + false + ] ], "layout": {}, "paint": { "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 1, 12, @@ -350,39 +584,82 @@ { "id": "aeroway", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "aeroway", "layout": {}, - "paint": {"line-color": "hsla(0, 0%, 0%, 0.1)", "line-opacity": 0.3} + "paint": { + "line-color": "hsla(0, 0%, 0%, 0.1)", + "line-opacity": 0.3 + } }, { "id": "service_road", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", - "filter": ["match", ["get", "class"], ["service"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "service" + ], + true, + false + ], "layout": {}, - "paint": {"line-color": "hsla(0, 0%, 0%, 0.1)", "line-opacity": 0.3} + "paint": { + "line-color": "hsla(0, 0%, 0%, 0.1)", + "line-opacity": 0.3 + } }, { "id": "pedestrian_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["match", ["get", "class"], ["pedestrian"], true, false], - ["has", "name"] + [ + "match", + [ + "get", + "class" + ], + [ + "pedestrian" + ], + true, + false + ], + [ + "has", + "name" + ] ], - "layout": {"visibility": "none"}, + "layout": { + "visibility": "none" + }, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 13, 1, 16, @@ -393,8 +670,12 @@ "line-color": "#e3e3e3", "line-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 12.5, 0, 13.5, @@ -405,16 +686,35 @@ { "id": "street_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", - "filter": ["match", ["get", "class"], ["street"], true, false], - "layout": {"visibility": "none"}, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "street" + ], + true, + false + ], + "layout": { + "visibility": "none" + }, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 12, 1, 16, @@ -428,12 +728,17 @@ { "id": "secondary_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "match", - ["get", "class"], + [ + "get", + "class" + ], [ "secondary", "secondary_link", @@ -445,12 +750,18 @@ true, false ], - "layout": {"visibility": "none"}, + "layout": { + "visibility": "none" + }, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 10, 1, 17, @@ -461,8 +772,12 @@ "line-color": "#e3e3e3", "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 16, 1, 20, @@ -473,26 +788,53 @@ { "id": "primary_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["tunnel"], false, true] - ], - "layout": {"line-cap": "round", "visibility": "none"}, + [ + "match", + [ + "get", + "structure" + ], + [ + "tunnel" + ], + false, + true + ] + ], + "layout": { + "line-cap": "round", + "visibility": "none" + }, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, 1, 16, @@ -506,16 +848,35 @@ { "id": "motorway_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", - "filter": ["match", ["get", "class"], ["motorway"], true, false], - "layout": {"visibility": "none"}, + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "motorway" + ], + true, + false + ], + "layout": { + "visibility": "none" + }, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 1, 15.5, @@ -524,44 +885,99 @@ 78 ], "line-color": "#ecd283", - "line-width": ["interpolate", ["linear"], ["zoom"], 8, 1, 15, 2] + "line-width": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 8, + 1, + 15, + 2 + ] } }, { "id": "railway", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "match", - ["get", "class"], - ["major_rail", "minor_rail", "service_rail"], + [ + "get", + "class" + ], + [ + "major_rail", + "minor_rail", + "service_rail" + ], true, false ], "layout": {}, - "paint": {"line-color": "hsl(220, 4%, 85%)", "line-opacity": 0.3} + "paint": { + "line-color": "hsl(220, 4%, 85%)", + "line-opacity": 0.3 + } }, { "id": "pedestrian", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["match", ["get", "class"], ["pedestrian"], true, false], - ["has", "name"], - ["match", ["get", "type"], ["platform"], false, true] + [ + "match", + [ + "get", + "class" + ], + [ + "pedestrian" + ], + true, + false + ], + [ + "has", + "name" + ], + [ + "match", + [ + "get", + "type" + ], + [ + "platform" + ], + false, + true + ] ], "layout": {}, "paint": { "line-color": "hsl(0, 0%, 100%)", "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 13, 1, 16, @@ -571,8 +987,12 @@ ], "line-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 12.5, 0, 13.5, @@ -583,17 +1003,34 @@ { "id": "street", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", - "filter": ["match", ["get", "class"], ["street"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "street" + ], + true, + false + ], "layout": {}, "paint": { "line-color": "hsl(0, 0%, 100%)", "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 12, 1, 16, @@ -607,12 +1044,17 @@ { "id": "secondary", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "match", - ["get", "class"], + [ + "get", + "class" + ], [ "secondary", "secondary_link", @@ -629,8 +1071,12 @@ "line-color": "hsl(0, 0%, 100%)", "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 10, 1, 17, @@ -644,33 +1090,61 @@ { "id": "primary", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["tunnel"], false, true] + [ + "match", + [ + "get", + "structure" + ], + [ + "tunnel" + ], + false, + true + ] ], - "layout": {"line-cap": "round"}, + "layout": { + "line-cap": "round" + }, "paint": { "line-color": [ "step", - ["zoom"], + [ + "zoom" + ], "hsl(50, 100%, 75%)", 7, "hsl(50, 100%, 85%)" ], "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, 1, 16, @@ -684,17 +1158,34 @@ { "id": "motorway", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", - "filter": ["match", ["get", "class"], ["motorway"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "motorway" + ], + true, + false + ], "layout": {}, "paint": { "line-color": "hsl(47, 100%, 82%)", "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 1, 15.5, @@ -708,26 +1199,52 @@ { "id": "primary_bridge_border", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["bridge"], true, false] + [ + "match", + [ + "get", + "structure" + ], + [ + "bridge" + ], + true, + false + ] ], - "layout": {"visibility": "none"}, + "layout": { + "visibility": "none" + }, "paint": { "line-gap-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, 1, 16, @@ -741,33 +1258,61 @@ { "id": "primary_bridge", "type": "line", - "metadata": {"mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990"}, + "metadata": { + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + }, "source": "composite", "source-layer": "road", "filter": [ "all", [ "match", - ["get", "class"], - ["primary_link", "primary", "motorway_link"], + [ + "get", + "class" + ], + [ + "primary_link", + "primary", + "motorway_link" + ], true, false ], - ["match", ["get", "structure"], ["bridge"], true, false] + [ + "match", + [ + "get", + "structure" + ], + [ + "bridge" + ], + true, + false + ] ], - "layout": {"visibility": "none"}, + "layout": { + "visibility": "none" + }, "paint": { "line-color": [ "step", - ["zoom"], + [ + "zoom" + ], "hsl(50, 100%, 75%)", 7, "hsl(50, 100%, 85%)" ], "line-width": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 9, 1, 16, @@ -780,15 +1325,33 @@ { "id": "building", "type": "fill", - "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "metadata": { + "mapbox:group": "29bb589e8d1b9b402583363648b70302" + }, "source": "composite", "source-layer": "building", - "filter": ["match", ["get", "type"], ["roof"], false, true], - "layout": {"visibility": "none"}, + "filter": [ + "match", + [ + "get", + "type" + ], + [ + "roof" + ], + false, + true + ], + "layout": { + "visibility": "none" + }, "paint": { "fill-color": [ "match", - ["get", "type"], + [ + "get", + "type" + ], [ "store", "retail", @@ -805,8 +1368,12 @@ ], "fill-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 15, 0, 17, @@ -817,15 +1384,33 @@ { "id": "building_border", "type": "line", - "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "metadata": { + "mapbox:group": "29bb589e8d1b9b402583363648b70302" + }, "source": "composite", "source-layer": "building", - "filter": ["match", ["get", "type"], ["roof"], false, true], - "layout": {"visibility": "none"}, + "filter": [ + "match", + [ + "get", + "type" + ], + [ + "roof" + ], + false, + true + ], + "layout": { + "visibility": "none" + }, "paint": { "line-color": [ "match", - ["get", "type"], + [ + "get", + "type" + ], [ "store", "retail", @@ -842,8 +1427,12 @@ ], "line-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 15, 0, 17, @@ -854,20 +1443,42 @@ { "id": "building_3d", "type": "fill-extrusion", - "metadata": {"mapbox:group": "29bb589e8d1b9b402583363648b70302"}, + "metadata": { + "mapbox:group": "29bb589e8d1b9b402583363648b70302" + }, "source": "composite", "source-layer": "building", - "filter": ["match", ["get", "extrude"], ["true"], true, false], - "layout": {"visibility": "none"}, + "filter": [ + "match", + [ + "get", + "extrude" + ], + [ + "true" + ], + true, + false + ], + "layout": { + "visibility": "none" + }, "paint": { "fill-extrusion-height": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 15, 0, 16, - ["get", "height"] + [ + "get", + "height" + ] ], "fill-extrusion-color": "#ededed", "fill-extrusion-opacity": 0.3 @@ -876,19 +1487,50 @@ { "id": "admin_0", "type": "line", - "metadata": {"mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa"}, + "metadata": { + "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa" + }, "source": "composite", "source-layer": "admin", "filter": [ "all", - ["match", ["get", "maritime"], ["false"], true, false], - ["match", ["get", "admin_level"], [0], true, false] + [ + "match", + [ + "get", + "maritime" + ], + [ + "false" + ], + true, + false + ], + [ + "match", + [ + "get", + "admin_level" + ], + [ + 0 + ], + true, + false + ] ], "layout": {}, "paint": { "line-color": [ "case", - ["==", ["get", "disputed"], true], + [ + "==", + [ + "get", + "disputed" + ], + true + ], "hsl(0, 24%, 85%)", "hsl(200, 1%, 85%)" ] @@ -897,37 +1539,93 @@ { "id": "admin_1", "type": "line", - "metadata": {"mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa"}, + "metadata": { + "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa" + }, "source": "composite", "source-layer": "admin", "filter": [ "all", - ["match", ["get", "maritime"], ["false"], true, false], - ["match", ["get", "admin_level"], [1], true, false] - ], - "layout": {}, - "paint": { - "line-color": [ - "case", - ["==", ["get", "disputed"], true], - "hsl(0, 24%, 85%)", - "hsl(200, 1%, 85%)" - ], - "line-dasharray": [1, 1] - } + [ + "match", + [ + "get", + "maritime" + ], + [ + "false" + ], + true, + false + ], + [ + "match", + [ + "get", + "admin_level" + ], + [ + 1 + ], + true, + false + ] + ], + "layout": {}, + "paint": { + "line-color": [ + "case", + [ + "==", + [ + "get", + "disputed" + ], + true + ], + "hsl(0, 24%, 85%)", + "hsl(200, 1%, 85%)" + ], + "line-dasharray": [ + 1, + 1 + ] + } }, { "id": "river_name", "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + }, "source": "composite", "source-layer": "natural_label", - "filter": ["match", ["get", "class"], ["river"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "river" + ], + true, + false + ], "layout": { - "text-field": ["to-string", ["get", "name"]], + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ], "symbol-placement": "line", "symbol-spacing": 500, - "text-font": ["Roboto Regular", "Arial Unicode MS Regular"] + "text-font": [ + "Roboto Regular", + "Arial Unicode MS Regular" + ] }, "paint": { "text-color": "#5083c1", @@ -938,17 +1636,38 @@ { "id": "city_label_right", "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + }, "source": "composite", "source-layer": "place_label", "maxzoom": 8, "filter": [ "all", - ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 4 + ] + ], [ "match", - ["get", "class"], - ["settlement", "settlement_subdivision"], + [ + "get", + "class" + ], + [ + "settlement", + "settlement_subdivision" + ], true, false ] @@ -957,50 +1676,147 @@ "text-optional": true, "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, - ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + [ + "-", + 14, + [ + "max", + 0, + [ + "-", + [ + "get", + "symbolrank" + ], + 8 + ] + ] + ], 22, - ["-", 20, ["/", ["get", "symbolrank"], 4]] + [ + "-", + 20, + [ + "/", + [ + "get", + "symbolrank" + ], + 4 + ] + ] ], "icon-image": [ "match", - ["get", "capital"], - [0, 2], + [ + "get", + "capital" + ], + [ + 0, + 2 + ], "capital", "city" ], "text-font": [ "step", - ["get", "symbolrank"], - ["literal", ["Roboto Medium", "Arial Unicode MS Regular"]], + [ + "get", + "symbolrank" + ], + [ + "literal", + [ + "Roboto Medium", + "Arial Unicode MS Regular" + ] + ], 10, - ["literal", ["Roboto Regular", "Arial Unicode MS Regular"]] + [ + "literal", + [ + "Roboto Regular", + "Arial Unicode MS Regular" + ] + ] ], "text-justify": "left", - "text-offset": [0.5, 0.1], - "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-offset": [ + 0.5, + 0.1 + ], + "icon-size": [ + "/", + 5, + [ + "get", + "symbolrank" + ] + ], "text-anchor": "left", - "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, [ "concat", "hsl(213, 11%, ", - ["-", 100, ["*", ["get", "symbolrank"], 2]], + [ + "-", + 100, + [ + "*", + [ + "get", + "symbolrank" + ], + 2 + ] + ], "%)" ], 22, [ "concat", "hsl(213, 11%, ", - ["+", ["-", 100, ["get", "symbolrank"]], 5], + [ + "+", + [ + "-", + 100, + [ + "get", + "symbolrank" + ] + ], + 5 + ], "%)" ] ], @@ -1013,17 +1829,38 @@ { "id": "city_label_left", "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + }, "source": "composite", "source-layer": "place_label", "maxzoom": 8, "filter": [ "all", - ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 4 + ] + ], [ "match", - ["get", "class"], - ["settlement", "settlement_subdivision"], + [ + "get", + "class" + ], + [ + "settlement", + "settlement_subdivision" + ], true, false ] @@ -1031,50 +1868,147 @@ "layout": { "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, - ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + [ + "-", + 14, + [ + "max", + 0, + [ + "-", + [ + "get", + "symbolrank" + ], + 8 + ] + ] + ], 22, - ["-", 20, ["/", ["get", "symbolrank"], 4]] + [ + "-", + 20, + [ + "/", + [ + "get", + "symbolrank" + ], + 4 + ] + ] ], "icon-image": [ "match", - ["get", "capital"], - [0, 2], + [ + "get", + "capital" + ], + [ + 0, + 2 + ], "capital", "city" ], "text-font": [ "step", - ["get", "symbolrank"], - ["literal", ["Roboto Medium", "Arial Unicode MS Regular"]], + [ + "get", + "symbolrank" + ], + [ + "literal", + [ + "Roboto Medium", + "Arial Unicode MS Regular" + ] + ], 10, - ["literal", ["Roboto Regular", "Arial Unicode MS Regular"]] + [ + "literal", + [ + "Roboto Regular", + "Arial Unicode MS Regular" + ] + ] ], "text-justify": "right", - "text-offset": [-0.5, 0.1], - "icon-size": ["/", 5, ["get", "symbolrank"]], + "text-offset": [ + -0.5, + 0.1 + ], + "icon-size": [ + "/", + 5, + [ + "get", + "symbolrank" + ] + ], "text-anchor": "right", - "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, [ "concat", "hsl(213, 11%, ", - ["-", 100, ["*", ["get", "symbolrank"], 2]], + [ + "-", + 100, + [ + "*", + [ + "get", + "symbolrank" + ], + 2 + ] + ], "%)" ], 22, [ "concat", "hsl(213, 11%, ", - ["+", ["-", 100, ["get", "symbolrank"]], 5], + [ + "+", + [ + "-", + 100, + [ + "get", + "symbolrank" + ] + ], + 5 + ], "%)" ] ], @@ -1087,17 +2021,38 @@ { "id": "city_label_below", "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + }, "source": "composite", "source-layer": "place_label", "maxzoom": 8, "filter": [ "all", - ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 4 + ] + ], [ "match", - ["get", "class"], - ["settlement", "settlement_subdivision"], + [ + "get", + "class" + ], + [ + "settlement", + "settlement_subdivision" + ], true, false ] @@ -1105,49 +2060,146 @@ "layout": { "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, - ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + [ + "-", + 14, + [ + "max", + 0, + [ + "-", + [ + "get", + "symbolrank" + ], + 8 + ] + ] + ], 22, - ["-", 20, ["/", ["get", "symbolrank"], 4]] + [ + "-", + 20, + [ + "/", + [ + "get", + "symbolrank" + ], + 4 + ] + ] ], "icon-image": [ "match", - ["get", "capital"], - [0, 2], + [ + "get", + "capital" + ], + [ + 0, + 2 + ], "capital", "city" ], "text-font": [ "step", - ["get", "symbolrank"], - ["literal", ["Roboto Medium", "Arial Unicode MS Regular"]], + [ + "get", + "symbolrank" + ], + [ + "literal", + [ + "Roboto Medium", + "Arial Unicode MS Regular" + ] + ], 10, - ["literal", ["Roboto Regular", "Arial Unicode MS Regular"]] + [ + "literal", + [ + "Roboto Regular", + "Arial Unicode MS Regular" + ] + ] + ], + "text-offset": [ + 0, + 0.4 + ], + "icon-size": [ + "/", + 5, + [ + "get", + "symbolrank" + ] ], - "text-offset": [0, 0.4], - "icon-size": ["/", 5, ["get", "symbolrank"]], "text-anchor": "top", - "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, [ "concat", "hsl(213, 11%, ", - ["-", 100, ["*", ["get", "symbolrank"], 2]], + [ + "-", + 100, + [ + "*", + [ + "get", + "symbolrank" + ], + 2 + ] + ], "%)" ], 22, [ "concat", "hsl(213, 11%, ", - ["+", ["-", 100, ["get", "symbolrank"]], 5], + [ + "+", + [ + "-", + 100, + [ + "get", + "symbolrank" + ] + ], + 5 + ], "%)" ] ], @@ -1160,16 +2212,37 @@ { "id": "city_name", "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + }, "source": "composite", "source-layer": "place_label", "filter": [ "all", - ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 4 + ] + ], [ "match", - ["get", "class"], - ["settlement", "settlement_subdivision"], + [ + "get", + "class" + ], + [ + "settlement", + "settlement_subdivision" + ], true, false ] @@ -1177,48 +2250,154 @@ "layout": { "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, - ["-", 14, ["max", 0, ["-", ["get", "symbolrank"], 8]]], + [ + "-", + 14, + [ + "max", + 0, + [ + "-", + [ + "get", + "symbolrank" + ], + 8 + ] + ] + ], 22, - ["-", 20, ["/", ["get", "symbolrank"], 4]] + [ + "-", + 20, + [ + "/", + [ + "get", + "symbolrank" + ], + 4 + ] + ] ], "icon-image": [ "step", - ["zoom"], - ["match", ["get", "capital"], [0, 2], "capital", "city"], + [ + "zoom" + ], + [ + "match", + [ + "get", + "capital" + ], + [ + 0, + 2 + ], + "capital", + "city" + ], + 8, + "" + ], + "text-transform": [ + "step", + [ + "get", + "symbolrank" + ], + "none", + 15, + "uppercase" + ], + "text-font": [ + "step", + [ + "get", + "symbolrank" + ], + [ + "literal", + [ + "Roboto Medium", + "Arial Unicode MS Regular" + ] + ], + 10, + [ + "literal", + [ + "Roboto Regular", + "Arial Unicode MS Regular" + ] + ] + ], + "text-offset": [ + "step", + [ + "zoom" + ], + [ + "literal", + [ + 0, + -0.2 + ] + ], 8, - "" - ], - "text-transform": [ - "step", - ["get", "symbolrank"], - "none", - 15, - "uppercase" + [ + "literal", + [ + 0, + 0 + ] + ] ], - "text-font": [ - "step", - ["get", "symbolrank"], - ["literal", ["Roboto Medium", "Arial Unicode MS Regular"]], - 10, - ["literal", ["Roboto Regular", "Arial Unicode MS Regular"]] + "icon-size": [ + "/", + 5, + [ + "get", + "symbolrank" + ] ], - "text-offset": [ + "text-anchor": [ "step", - ["zoom"], - ["literal", [0, -0.2]], + [ + "zoom" + ], + "bottom", 8, - ["literal", [0, 0]] + "center" + ], + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] ], - "icon-size": ["/", 5, ["get", "symbolrank"]], - "text-anchor": ["step", ["zoom"], "bottom", 8, "center"], - "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]], "text-letter-spacing": [ "interpolate", - ["linear"], - ["get", "symbolrank"], + [ + "linear" + ], + [ + "get", + "symbolrank" + ], 0, 0, 8, @@ -1232,20 +2411,46 @@ "paint": { "text-color": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 0, [ "concat", "hsl(213, 11%, ", - ["-", 100, ["*", ["get", "symbolrank"], 2]], + [ + "-", + 100, + [ + "*", + [ + "get", + "symbolrank" + ], + 2 + ] + ], "%)" ], 22, [ "concat", "hsl(213, 11%, ", - ["+", ["-", 100, ["get", "symbolrank"]], 5], + [ + "+", + [ + "-", + 100, + [ + "get", + "symbolrank" + ] + ], + 5 + ], "%)" ] ], @@ -1258,18 +2463,51 @@ { "id": "park_name", "type": "symbol", - "metadata": {"mapbox:group": "7b44201d7f1682d99f7140188aff23ce"}, + "metadata": { + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + }, "source": "composite", "source-layer": "poi_label", "filter": [ "all", - ["has", "name"], - ["match", ["get", "maki"], ["park", "cemetery"], true, false], - ["<=", ["get", "sizerank"], 10] + [ + "has", + "name" + ], + [ + "match", + [ + "get", + "maki" + ], + [ + "park", + "cemetery" + ], + true, + false + ], + [ + "<=", + [ + "get", + "sizerank" + ], + 10 + ] ], "layout": { - "text-field": ["to-string", ["get", "name"]], - "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ], + "text-font": [ + "Roboto Regular", + "Arial Unicode MS Regular" + ], "text-size": 14 }, "paint": { @@ -1282,17 +2520,36 @@ { "id": "road-number-shield", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "road", - "filter": ["all", ["has", "ref"], ["<=", ["get", "reflen"], 6]], + "filter": [ + "all", + [ + "has", + "ref" + ], + [ + "<=", + [ + "get", + "reflen" + ], + 6 + ] + ], "layout": { "text-size": 9, "icon-image": [ "case", [ "match", - ["get", "shield"], + [ + "get", + "shield" + ], [ "de-motorway", "rectangle-green", @@ -1308,43 +2565,95 @@ [ "concat", "shield_", - ["get", "shield"], + [ + "get", + "shield" + ], "_", - ["get", "reflen"] + [ + "get", + "reflen" + ] ], [ "match", - ["get", "shield_text_color"], - ["white"], + [ + "get", + "shield_text_color" + ], + [ + "white" + ], true, false ], - ["concat", "shield_rectangle-blue_", ["get", "reflen"]], - ["concat", "shield_rectangle-white_", ["get", "reflen"]] + [ + "concat", + "shield_rectangle-blue_", + [ + "get", + "reflen" + ] + ], + [ + "concat", + "shield_rectangle-white_", + [ + "get", + "reflen" + ] + ] ], "icon-rotation-alignment": "viewport", "text-font": [ "match", - ["get", "shield_text_color"], - ["white"], + [ + "get", + "shield_text_color" + ], + [ + "white" + ], [ "literal", - ["DIN Offc Pro Bold", "Arial Unicode MS Regular"] + [ + "DIN Offc Pro Bold", + "Arial Unicode MS Regular" + ] + ], + [ + "black" ], - ["black"], [ "literal", - ["DIN Offc Pro Medium", "Arial Unicode MS Regular"] + [ + "DIN Offc Pro Medium", + "Arial Unicode MS Regular" + ] ], [ "literal", - ["DIN Offc Pro Bold", "Arial Unicode MS Regular"] + [ + "DIN Offc Pro Bold", + "Arial Unicode MS Regular" + ] ] ], - "symbol-placement": ["step", ["zoom"], "point", 11, "line"], + "symbol-placement": [ + "step", + [ + "zoom" + ], + "point", + 11, + "line" + ], "text-rotation-alignment": "viewport", "icon-size": 0.75, - "text-field": ["get", "ref"], + "text-field": [ + "get", + "ref" + ], "text-letter-spacing": 0.05 }, "paint": { @@ -1352,40 +2661,65 @@ "case", [ "match", - ["get", "shield_text_color"], - ["white"], + [ + "get", + "shield_text_color" + ], + [ + "white" + ], true, false ], "#ffffff", [ "match", - ["get", "shield_text_color"], - ["black"], + [ + "get", + "shield_text_color" + ], + [ + "black" + ], true, false ], "hsl(0, 0%, 7%)", [ "match", - ["get", "shield_text_color"], - ["yellow"], + [ + "get", + "shield_text_color" + ], + [ + "yellow" + ], true, false ], "hsl(50, 100%, 70%)", [ "match", - ["get", "shield_text_color"], - ["orange"], + [ + "get", + "shield_text_color" + ], + [ + "orange" + ], true, false ], "hsl(25, 100%, 75%)", [ "match", - ["get", "shield_text_color"], - ["blue"], + [ + "get", + "shield_text_color" + ], + [ + "blue" + ], true, false ], @@ -1397,37 +2731,83 @@ { "id": "country_name", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "place_label", - "filter": ["match", ["get", "class"], ["country"], true, false], + "filter": [ + "match", + [ + "get", + "class" + ], + [ + "country" + ], + true, + false + ], "layout": { "text-letter-spacing": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 1, 0, 3, 0.15 ], - "text-font": ["Roboto Medium", "Arial Unicode MS Regular"], + "text-font": [ + "Roboto Medium", + "Arial Unicode MS Regular" + ], "text-size": [ "interpolate", - ["exponential", 1.2], - ["zoom"], + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], 1, 12, 7, - ["/", 100, ["get", "symbolrank"]] + [ + "/", + 100, + [ + "get", + "symbolrank" + ] + ] ], - "text-field": ["coalesce", ["get", "name_en"], ["get", "name"]] + "text-field": [ + "coalesce", + [ + "get", + "name_en" + ], + [ + "get", + "name" + ] + ] }, "paint": { "text-opacity": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 6, 1, 7, @@ -1442,24 +2822,61 @@ { "id": "pedestrian_name", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "road", "minzoom": 16, "filter": [ "all", - ["has", "name"], - ["match", ["get", "class"], ["pedestrian"], true, false], - ["match", ["get", "type"], ["platform"], false, true] + [ + "has", + "name" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "pedestrian" + ], + true, + false + ], + [ + "match", + [ + "get", + "type" + ], + [ + "platform" + ], + false, + true + ] ], "layout": { - "text-field": ["get", "name"], + "text-field": [ + "get", + "name" + ], "symbol-placement": "line", - "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-font": [ + "Roboto Regular", + "Arial Unicode MS Regular" + ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 17, 10, 22, @@ -1477,22 +2894,48 @@ { "id": "street_name", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["has", "name"], - ["match", ["get", "class"], ["street"], true, false] + [ + "has", + "name" + ], + [ + "match", + [ + "get", + "class" + ], + [ + "street" + ], + true, + false + ] ], "layout": { - "text-field": ["get", "name"], + "text-field": [ + "get", + "name" + ], "symbol-placement": "line", - "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-font": [ + "Roboto Regular", + "Arial Unicode MS Regular" + ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 6, 16, @@ -1510,15 +2953,23 @@ { "id": "secondary_name", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["has", "name"], + [ + "has", + "name" + ], [ "match", - ["get", "class"], + [ + "get", + "class" + ], [ "secondary", "secondary_link", @@ -1532,13 +2983,23 @@ ] ], "layout": { - "text-field": ["get", "name"], + "text-field": [ + "get", + "name" + ], "symbol-placement": "line", - "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-font": [ + "Roboto Regular", + "Arial Unicode MS Regular" + ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 8, 16, @@ -1557,28 +3018,49 @@ { "id": "primary_name", "type": "symbol", - "metadata": {"mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312"}, + "metadata": { + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + }, "source": "composite", "source-layer": "road", "filter": [ "all", - ["has", "name"], + [ + "has", + "name" + ], [ "match", - ["get", "class"], - ["primary", "primary_link"], + [ + "get", + "class" + ], + [ + "primary", + "primary_link" + ], true, false ] ], "layout": { - "text-field": ["get", "name"], + "text-field": [ + "get", + "name" + ], "symbol-placement": "line", - "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-font": [ + "Roboto Regular", + "Arial Unicode MS Regular" + ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 8, 10, 18, @@ -1597,25 +3079,56 @@ { "id": "poi_label_below", "type": "symbol", - "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "metadata": { + "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + }, "source": "composite", "source-layer": "poi_label", "filter": [ "all", - ["has", "name"], - ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "has", + "name" + ], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 4 + ] + ], [ "!", [ "all", [ "match", - ["get", "maki"], - ["park", "cemetery"], + [ + "get", + "maki" + ], + [ + "park", + "cemetery" + ], true, false ], - ["<=", ["get", "sizerank"], 10] + [ + "<=", + [ + "get", + "sizerank" + ], + 10 + ] ] ] ], @@ -1623,8 +3136,12 @@ "text-optional": true, "text-line-height": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 1, 15, @@ -1632,19 +3149,42 @@ ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 13, 15, 14 ], - "icon-offset": [0, -36], + "icon-offset": [ + 0, + -36 + ], "icon-image": [ "match", - ["get", "maki"], - ["museum", "lodging", "theatre", "grocery", "restaurant"], - ["concat", "poi_", ["get", "maki"]], + [ + "get", + "maki" + ], + [ + "museum", + "lodging", + "theatre", + "grocery", + "restaurant" + ], + [ + "concat", + "poi_", + [ + "get", + "maki" + ] + ], [ "fitness-centre", "golf", @@ -1661,9 +3201,17 @@ "cemetery" ], "poi_generic_green", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "poi_generic_purple", - ["bar", "cafe", "bakery"], + [ + "bar", + "cafe", + "bakery" + ], "poi_generic_orange", [ "alcohol-shop", @@ -1684,7 +3232,10 @@ "monument" ], "poi_generic_teal", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "poi_generic_red", [ "restaurant-pizza", @@ -1696,24 +3247,43 @@ "poi_restaurant", "poi_generic" ], - "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], - "text-offset": [0, 0.5], + "text-font": [ + "Roboto Regular", + "Arial Unicode MS Regular" + ], + "text-offset": [ + 0, + 0.5 + ], "icon-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 0.25, 15, 0.32 ], "text-anchor": "top", - "text-field": ["to-string", ["get", "name"]] + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "match", - ["get", "maki"], + [ + "get", + "maki" + ], [ "museum", "casino", @@ -1726,7 +3296,9 @@ "monument" ], "hsl(186, 78%, 65%)", - ["lodging"], + [ + "lodging" + ], "#df7db1", [ "fitness-centre", @@ -1766,41 +3338,85 @@ "jewelry-store" ], "hsl(213, 40%, 65%)", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "hsl(228, 17%, 65%)", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "hsl(359, 22%, 65%)", "hsl(201, 9%, 80%)" ], "text-halo-color": "hsl(0, 1%, 0%)", "text-halo-width": 1, - "icon-translate": [0, 0], - "text-translate": [0, 0], + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 0 + ], "text-halo-blur": 1 } }, { "id": "poi_label_above", "type": "symbol", - "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "metadata": { + "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + }, "source": "composite", "source-layer": "poi_label", "filter": [ "all", - ["has", "name"], - ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "has", + "name" + ], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 4 + ] + ], [ "!", [ "all", [ "match", - ["get", "maki"], - ["park", "cemetery"], + [ + "get", + "maki" + ], + [ + "park", + "cemetery" + ], true, false ], - ["<=", ["get", "sizerank"], 10] + [ + "<=", + [ + "get", + "sizerank" + ], + 10 + ] ] ] ], @@ -1808,8 +3424,12 @@ "text-optional": true, "text-line-height": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 1, 15, @@ -1817,19 +3437,42 @@ ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 13, 15, 14 ], - "icon-offset": [0, -36], + "icon-offset": [ + 0, + -36 + ], "icon-image": [ "match", - ["get", "maki"], - ["museum", "lodging", "theatre", "grocery", "restaurant"], - ["concat", "poi_", ["get", "maki"]], + [ + "get", + "maki" + ], + [ + "museum", + "lodging", + "theatre", + "grocery", + "restaurant" + ], + [ + "concat", + "poi_", + [ + "get", + "maki" + ] + ], [ "fitness-centre", "golf", @@ -1846,9 +3489,17 @@ "cemetery" ], "poi_generic_green", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "poi_generic_purple", - ["bar", "cafe", "bakery"], + [ + "bar", + "cafe", + "bakery" + ], "poi_generic_orange", [ "alcohol-shop", @@ -1869,7 +3520,10 @@ "monument" ], "poi_generic_teal", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "poi_generic_red", [ "restaurant-pizza", @@ -1881,24 +3535,43 @@ "poi_restaurant", "poi_generic" ], - "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], - "text-offset": [0, -2], + "text-font": [ + "Roboto Regular", + "Arial Unicode MS Regular" + ], + "text-offset": [ + 0, + -2 + ], "icon-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 0.25, 15, 0.32 ], "text-anchor": "bottom", - "text-field": ["to-string", ["get", "name"]] + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "match", - ["get", "maki"], + [ + "get", + "maki" + ], [ "museum", "casino", @@ -1911,7 +3584,9 @@ "monument" ], "hsl(186, 78%, 65%)", - ["lodging"], + [ + "lodging" + ], "#df7db1", [ "fitness-centre", @@ -1951,49 +3626,97 @@ "jewelry-store" ], "hsl(213, 40%, 65%)", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "hsl(228, 17%, 65%)", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "hsl(359, 22%, 65%)", "hsl(201, 9%, 80%)" ], "text-halo-color": "hsl(0, 1%, 0%)", "text-halo-width": 1, - "icon-translate": [0, 0], - "text-translate": [0, 0], + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 0 + ], "text-halo-blur": 1 } }, { "id": "poi_label_left", "type": "symbol", - "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "metadata": { + "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + }, "source": "composite", "source-layer": "poi_label", "filter": [ "all", - ["has", "name"], - ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "has", + "name" + ], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 4 + ] + ], [ "!", [ "all", [ "match", - ["get", "maki"], - ["park", "cemetery"], + [ + "get", + "maki" + ], + [ + "park", + "cemetery" + ], true, false ], - ["<=", ["get", "sizerank"], 10] + [ + "<=", + [ + "get", + "sizerank" + ], + 10 + ] ] ] ], "layout": { "text-line-height": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 1, 15, @@ -2001,19 +3724,42 @@ ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 13, 15, 14 ], - "icon-offset": [0, -36], + "icon-offset": [ + 0, + -36 + ], "icon-image": [ "match", - ["get", "maki"], - ["museum", "lodging", "theatre", "grocery", "restaurant"], - ["concat", "poi_", ["get", "maki"]], + [ + "get", + "maki" + ], + [ + "museum", + "lodging", + "theatre", + "grocery", + "restaurant" + ], + [ + "concat", + "poi_", + [ + "get", + "maki" + ] + ], [ "fitness-centre", "golf", @@ -2030,9 +3776,17 @@ "cemetery" ], "poi_generic_green", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "poi_generic_purple", - ["bar", "cafe", "bakery"], + [ + "bar", + "cafe", + "bakery" + ], "poi_generic_orange", [ "alcohol-shop", @@ -2053,7 +3807,10 @@ "monument" ], "poi_generic_teal", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "poi_generic_red", [ "restaurant-pizza", @@ -2065,33 +3822,65 @@ "poi_restaurant", "poi_generic" ], - "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-font": [ + "Roboto Regular", + "Arial Unicode MS Regular" + ], "text-justify": "right", "text-offset": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, - ["literal", [-1.1, -0.7]], + [ + "literal", + [ + -1.1, + -0.7 + ] + ], 15, - ["literal", [-1.1, -0.9]] + [ + "literal", + [ + -1.1, + -0.9 + ] + ] ], "icon-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 0.25, 15, 0.32 ], "text-anchor": "right", - "text-field": ["to-string", ["get", "name"]] + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "match", - ["get", "maki"], + [ + "get", + "maki" + ], [ "museum", "casino", @@ -2104,7 +3893,9 @@ "monument" ], "hsl(186, 78%, 65%)", - ["lodging"], + [ + "lodging" + ], "#df7db1", [ "fitness-centre", @@ -2144,49 +3935,97 @@ "jewelry-store" ], "hsl(213, 40%, 65%)", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "hsl(228, 17%, 65%)", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "hsl(359, 22%, 65%)", "hsl(201, 9%, 80%)" ], "text-halo-color": "hsl(0, 1%, 0%)", "text-halo-width": 1, - "icon-translate": [0, 0], - "text-translate": [0, 0], + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 0 + ], "text-halo-blur": 1 } }, { "id": "poi_label_right", "type": "symbol", - "metadata": {"mapbox:group": "124a9d7a8e5226775d947c592110dfad"}, + "metadata": { + "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + }, "source": "composite", "source-layer": "poi_label", "filter": [ "all", - ["has", "name"], - ["<=", ["get", "filterrank"], ["/", ["zoom"], 4]], + [ + "has", + "name" + ], + [ + "<=", + [ + "get", + "filterrank" + ], + [ + "/", + [ + "zoom" + ], + 4 + ] + ], [ "!", [ "all", [ "match", - ["get", "maki"], - ["park", "cemetery"], + [ + "get", + "maki" + ], + [ + "park", + "cemetery" + ], true, false ], - ["<=", ["get", "sizerank"], 10] + [ + "<=", + [ + "get", + "sizerank" + ], + 10 + ] ] ] ], "layout": { "text-line-height": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 1, 15, @@ -2194,19 +4033,42 @@ ], "text-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 13, 15, 14 ], - "icon-offset": [0, -36], + "icon-offset": [ + 0, + -36 + ], "icon-image": [ "match", - ["get", "maki"], - ["museum", "lodging", "theatre", "grocery", "restaurant"], - ["concat", "poi_", ["get", "maki"]], + [ + "get", + "maki" + ], + [ + "museum", + "lodging", + "theatre", + "grocery", + "restaurant" + ], + [ + "concat", + "poi_", + [ + "get", + "maki" + ] + ], [ "fitness-centre", "golf", @@ -2223,9 +4085,17 @@ "cemetery" ], "poi_generic_green", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "poi_generic_purple", - ["bar", "cafe", "bakery"], + [ + "bar", + "cafe", + "bakery" + ], "poi_generic_orange", [ "alcohol-shop", @@ -2246,7 +4116,10 @@ "monument" ], "poi_generic_teal", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "poi_generic_red", [ "restaurant-pizza", @@ -2258,33 +4131,65 @@ "poi_restaurant", "poi_generic" ], - "text-font": ["Roboto Regular", "Arial Unicode MS Regular"], + "text-font": [ + "Roboto Regular", + "Arial Unicode MS Regular" + ], "text-justify": "left", "text-offset": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, - ["literal", [1.1, -0.7]], + [ + "literal", + [ + 1.1, + -0.7 + ] + ], 15, - ["literal", [1.1, -0.9]] + [ + "literal", + [ + 1.1, + -0.9 + ] + ] ], "icon-size": [ "interpolate", - ["linear"], - ["zoom"], + [ + "linear" + ], + [ + "zoom" + ], 14, 0.25, 15, 0.32 ], "text-anchor": "left", - "text-field": ["to-string", ["get", "name"]] + "text-field": [ + "to-string", + [ + "get", + "name" + ] + ] }, "paint": { "text-color": [ "match", - ["get", "maki"], + [ + "get", + "maki" + ], [ "museum", "casino", @@ -2297,7 +4202,9 @@ "monument" ], "hsl(186, 78%, 65%)", - ["lodging"], + [ + "lodging" + ], "#df7db1", [ "fitness-centre", @@ -2337,16 +4244,29 @@ "jewelry-store" ], "hsl(213, 40%, 65%)", - ["bank", "parking", "parking-garage"], + [ + "bank", + "parking", + "parking-garage" + ], "hsl(228, 17%, 65%)", - ["hospital", "doctor"], + [ + "hospital", + "doctor" + ], "hsl(359, 22%, 65%)", "hsl(201, 9%, 80%)" ], "text-halo-color": "hsl(0, 1%, 0%)", "text-halo-width": 1, - "icon-translate": [0, 0], - "text-translate": [0, 0], + "icon-translate": [ + 0, + 0 + ], + "text-translate": [ + 0, + 0 + ], "text-halo-blur": 1 } } @@ -2358,4 +4278,4 @@ "visibility": "public", "protected": false, "draft": false -} \ No newline at end of file +} -- GitLab From f5c8e84d7c147144f171158245e4c1b8c110766d Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Wed, 8 Mar 2023 16:44:29 +0100 Subject: [PATCH 03/12] Custom styles implementation --- .../org/microg/gms/maps/mapbox/Styles.kt | 276 ++++++++++++++++-- 1 file changed, 255 insertions(+), 21 deletions(-) diff --git a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt index 6942ef7ef..233efc77d 100644 --- a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt +++ b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt @@ -1,14 +1,21 @@ package org.microg.gms.maps.mapbox +import android.graphics.Color +import android.util.Log +import androidx.annotation.ColorInt import androidx.annotation.FloatRange +import androidx.core.graphics.ColorUtils import com.google.android.gms.maps.model.MapStyleOptions import com.google.gson.Gson import com.google.gson.JsonSyntaxException import com.google.gson.annotations.SerializedName import com.mapbox.mapboxsdk.maps.Style +import org.json.JSONArray import org.json.JSONObject import org.microg.gms.maps.MapsConstants import org.microg.gms.maps.mapbox.utils.MapContext +import java.lang.NumberFormatException +import kotlin.math.pow const val TAG = "GmsMapStyles" @@ -16,14 +23,16 @@ const val TAG = "GmsMapStyles" fun getStyle(context: MapContext, storedMapType: Int, styleOptions: MapStyleOptions?): Style.Builder { // TODO: Serve map style resources locally - val styleJson = JSONObject(context.assets.open( - when (storedMapType) { - MapsConstants.MAP_TYPE_SATELLITE, MapsConstants.MAP_TYPE_HYBRID -> "style-microg-satellite.json" - MapsConstants.MAP_TYPE_TERRAIN -> "style-mapbox-outdoors-v12.json" - //MAP_TYPE_NONE, MAP_TYPE_NORMAL, - else -> "style-microg-normal.json" - } - ).bufferedReader().readText()) + val styleJson = JSONObject( + context.assets.open( + when (storedMapType) { + MapsConstants.MAP_TYPE_SATELLITE, MapsConstants.MAP_TYPE_HYBRID -> "style-microg-satellite.json" + MapsConstants.MAP_TYPE_TERRAIN -> "style-mapbox-outdoors-v12.json" + //MAP_TYPE_NONE, MAP_TYPE_NORMAL, + else -> "style-microg-normal.json" + } + ).bufferedReader().readText() + ) styleOptions?.apply(styleJson) @@ -35,19 +44,61 @@ fun MapStyleOptions.apply(style: JSONObject) { Gson().fromJson(json, Array::class.java).let { styleOperations -> val layerArray = style.getJSONArray("layers") - for (i in 0 until layerArray.length()) { - val layer = layerArray.getJSONObject(i) - if (layer.has("metadata") && layer.getJSONObject("metadata") - .let { it.has("microg:gms-type-feature") && it.has("microg:gms-type-element") } - ) { - val featureType = layer.getJSONObject("metadata").getString("microg:gms-type-feature") - val elementType = layer.getJSONObject("metadata").getString("microg:gms-type-element") - - for (operation in styleOperations) { - if (operation.featureType?.startsWith(featureType) != false && // Todo: "all" here as well? - (operation.elementType?.startsWith(elementType) != false || operation.elementType == "all") + + // Apply operations in order + operations@ for (operation in styleOperations.map { + // Fill in default values for optional fields + NonNullStyleOperation(it.featureType ?: "all", it.elementType ?: "all", it.stylers ?: emptyArray()) + }) { + + // Reverse direction allows removing hidden layers + layers@ for (i in layerArray.length() - 1 downTo 0) { + + // Test if layer has required fields (metadata and paint) + val layer = layerArray.getJSONObject(i) + if (layer.has("paint") && layer.has("metadata") && layer.getJSONObject("metadata") + .let { it.has("microg:gms-type-feature") && it.has("microg:gms-type-element") } + ) { + val layerFeatureType = layer.getJSONObject("metadata").getString("microg:gms-type-feature") + val layerElementType = layer.getJSONObject("metadata").getString("microg:gms-type-element") + + if (operation.featureType.startsWith("administrative") + && operation.elementType.startsWith("geometry") + ) { + /* Per docs: + * `administrative` selects all administrative areas. Styling affects only + * the labels of administrative areas, not the geographical borders or fill. + */ + continue@operations + } + + // Layer metadata always has the most concrete category; operation applies to all subcategories as well. + if ((layerFeatureType.startsWith(operation.featureType) || operation.featureType == "all") && + (layerElementType.startsWith(operation.elementType) || operation.elementType == "all") ) { - operation.stylers?.forEach { styler -> styler.apply(layer) } + // Here, operation should be applied to this layer. + + Log.v(TAG, "applying ${Gson().toJson(operation)} to $layer") + + // Interpretation of visibility "simplified": hide labels, display geometry + if ( + // A styler sets the layer to be invisible + operation.stylers.any { it.visibility == "off" } || + // A styler sets the layer to simplified and we are working with a label + (layerElementType.startsWith("labels") && operation.stylers.any { it.visibility == "simplified" }) + ) { + layerArray.remove(i) + Log.v(TAG, "removing $layer") + continue@layers + } + + operation.stylers.forEach { styler -> + when (operation.elementType) { + "labels.text.fill" -> styler.applyTextFill(layer.getJSONObject("paint")) + "labels.text.outline" -> styler.applyTextOutline(layer.getJSONObject("paint")) + else -> styler.traverseApply(layer.getJSONObject("paint")) + } + } } } } @@ -62,6 +113,8 @@ fun MapStyleOptions.apply(style: JSONObject) { class StyleOperation(val featureType: String?, val elementType: String?, val stylers: Array?) +class NonNullStyleOperation(val featureType: String, val elementType: String, val stylers: Array) + class Styler( val hue: String?, @FloatRange(from = -100.0, to = 100.0) val saturation: Float?, @@ -73,4 +126,185 @@ class Styler( val weight: Int? ) -fun Styler.apply(layer: JSONObject) { TODO() } \ No newline at end of file +/** + * Returns true if string is likely to contain a color. + */ +fun String.isColor() = startsWith("hsl(") || startsWith("#") || startsWith("rgba(") + +/** + * Can parse colors in the format '#rrggbb', '#aarrggbb', 'hsl(h, s, l)', and 'rgba(r, g, b, a)' + * Returns 0 and prints to log if an invalid color is provided. + */ +@ColorInt +fun String.parseColor(): Int { + if (startsWith("#") && length in listOf(7, 9)) { + return Color.parseColor(this) + } else if (startsWith("hsl(")) { + val hsvArray = replace("hsl(", "").replace(")", "").split(", ") + if (hsvArray.size != 3) { + Log.w(TAG, "Invalid color `$this`") + return 0 + } + + return try { + Color.HSVToColor( + floatArrayOf( + hsvArray[0].toFloat(), + hsvArray[1].parseFloat(), + hsvArray[2].parseFloat() + ) + ) + } catch (e: NumberFormatException) { + Log.w(TAG, "Invalid color `$this`") + 0 + } + } else if (startsWith("rgba(")) { + return com.mapbox.mapboxsdk.utils.ColorUtils.rgbaToColor(this) + } + + Log.w(TAG, "Invalid color `$this`") + return 0 +} + +/** + * Formats color int in such a format that it MapLibre's rendering engine understands it. + */ +fun Int.colorToString() = com.mapbox.mapboxsdk.utils.ColorUtils.colorToRgbaString(this) + +/** + * Can parse string values that contain '%'. + */ +fun String.parseFloat(): Float { + return if (contains("%")) { + replace("%", "").toFloat() + } else { + toFloat() + } +} + +/** + * Applies operation specified by styler to the provided color int, and returns + * a new, corresponding color int. + */ +@ColorInt +fun Styler.applyColorChanges(color: Int): Int { + // There may only be one operation per styler per docs. + + hue?.let { hue -> + // Extract hue from input color + val hslResult = FloatArray(3) + ColorUtils.colorToHSL(hue.parseColor(), hslResult) + + val hueDegree = hslResult[0] + + // Apply hue to layer color + ColorUtils.colorToHSL(color, hslResult) + hslResult[0] = hueDegree + return ColorUtils.HSLToColor(hslResult) + } + + lightness?.let { lightness -> + // Apply lightness to layer color + val hsl = FloatArray(3) + ColorUtils.colorToHSL(color, hsl) + hsl[2] = if (lightness < 0) { + // Increase darkness. Percentage amount = relative reduction of is-lightness. + (lightness / 100 + 1) * hsl[2] + } else { + // Increase brightness. Percentage amount = relative reduction of difference between is-lightness and 1.0. + hsl[2] + (lightness / 100) * (1 - hsl[2]) + } + return ColorUtils.HSLToColor(hsl) + } + + saturation?.let { saturation -> + // Apply saturation to layer color + val hsl = FloatArray(3) + ColorUtils.colorToHSL(color, hsl) + hsl[1] = if (saturation < 0) { + // Reduce intensity. Percentage amount = relative reduction of is-saturation. + (saturation / 100 + 1) * hsl[1] + } else { + // Increase intensity. Percentage amount = relative reduction of difference between is-saturation and 1.0. + hsl[1] + (saturation / 100) * (1 - hsl[1]) + } + + return ColorUtils.HSLToColor(hsl) + } + + gamma?.let { gamma -> + // Apply gamma to layer color + val hsl = FloatArray(3) + ColorUtils.colorToHSL(color, hsl) + hsl[2] = hsl[2].toDouble().pow(gamma.toDouble()).toFloat() + + return ColorUtils.HSLToColor(hsl) + } + + if (invertLightness == true) { + // Invert layer color's lightness + val hsl = FloatArray(3) + ColorUtils.colorToHSL(color, hsl) + hsl[2] = 1 - hsl[2] + + return ColorUtils.HSLToColor(hsl) + } + + this.color?.let { + return it.parseColor() + } + + Log.w(TAG, "No applicable operation") + return color +} + +/** + * Traverse JSON object and replace any color strings according to styler + */ +fun Styler.traverseApply(json: JSONObject) { + // Traverse layer and replace any color strings + json.keys().forEach { key -> + json.get(key).let { + when (it) { + is JSONObject -> traverseApply(it) + is JSONArray -> traverseApply(it) + is String -> if (it.isColor()) { + json.put(key, applyColorChanges(it.parseColor()).colorToString()) + } + } + } + } +} + +/** + * Traverse array and replace any color strings according to styler + */ +fun Styler.traverseApply(array: JSONArray) { + for (i in 0 until array.length()) { + array.get(i).let { + when (it) { + is JSONObject -> traverseApply(it) + is JSONArray -> traverseApply(it) + is String -> if (it.isColor()) { + array.put(i, applyColorChanges(it.parseColor()).colorToString()) + } + } + } + } +} + +fun Styler.applyTextFill(paint: JSONObject) { + if (paint.has("text-color")) when (val textColor = paint.get("text-color")) { + is JSONObject -> traverseApply(textColor) + is JSONArray -> traverseApply(textColor) + is String -> paint.put("text-color", applyColorChanges(textColor.parseColor()).colorToString()) + } +} + +fun Styler.applyTextOutline(paint: JSONObject) { + if (paint.has("text-halo-color")) when (val textOutline = paint.get("text-halo-color")) { + is JSONObject -> traverseApply(textOutline) + is JSONArray -> traverseApply(textOutline) + is String -> paint.put("text-halo-color", applyColorChanges(textOutline.parseColor()).colorToString()) + } +} -- GitLab From 30369062fae7707377e4be5ab77d381dc2da7f37 Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Wed, 8 Mar 2023 16:44:47 +0100 Subject: [PATCH 04/12] Custom styles metadata in normal style --- .../src/main/assets/style-microg-normal.json | 204 +++++++++++++----- 1 file changed, 153 insertions(+), 51 deletions(-) diff --git a/play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json b/play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json index 9490b1108..295ffad44 100644 --- a/play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json +++ b/play-services-maps-core-mapbox/src/main/assets/style-microg-normal.json @@ -90,13 +90,19 @@ 18, "#f8f9fb" ] + }, + "metadata": { + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "geometry.fill" } }, { "id": "grass", "type": "fill", "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e", + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "landcover", @@ -137,7 +143,9 @@ "id": "forrest", "type": "fill", "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e", + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "landcover", @@ -179,7 +187,9 @@ "id": "national_park", "type": "fill", "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e", + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "landuse_overlay", @@ -204,7 +214,9 @@ "id": "snow", "type": "fill", "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e", + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "landcover", @@ -229,7 +241,9 @@ "id": "hillshade", "type": "fill", "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e", + "microg:gms-type-feature": "landscape.natural.terrain", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "hillshade", @@ -254,7 +268,9 @@ "id": "park", "type": "fill", "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e", + "microg:gms-type-feature": "poi.park", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "landuse", @@ -280,7 +296,9 @@ "id": "pitch", "type": "fill", "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e", + "microg:gms-type-feature": "landscape.natural.terrain", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "landuse", @@ -305,7 +323,9 @@ "id": "landuse", "type": "fill", "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e", + "microg:gms-type-feature": "landscape.man_made", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "landuse", @@ -332,7 +352,9 @@ "id": "river", "type": "fill", "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" + "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "water", @@ -345,7 +367,9 @@ "id": "path", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -390,7 +414,9 @@ "id": "steps", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -435,7 +461,9 @@ "id": "platform", "type": "fill", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "transit.station.rail", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -513,7 +541,9 @@ "id": "primary_tunnel_border", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "road", @@ -576,7 +606,9 @@ "id": "primary_tunnel", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -637,7 +669,9 @@ "id": "aeroway", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "transit.station.airport", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "aeroway", @@ -650,7 +684,9 @@ "id": "service_road", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -675,7 +711,9 @@ "id": "pedestrian_border", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "road", @@ -735,7 +773,9 @@ "id": "street_border", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "road", @@ -775,7 +815,9 @@ "id": "secondary_border", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "road", @@ -833,7 +875,9 @@ "id": "primary_border", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "road", @@ -892,7 +936,9 @@ "id": "motorway_border", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "road", @@ -945,7 +991,9 @@ "id": "railway", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "transit.line", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -987,7 +1035,9 @@ "id": "pedestrian", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -1059,7 +1109,9 @@ "id": "street", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -1099,7 +1151,9 @@ "id": "secondary", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -1144,7 +1198,9 @@ "id": "primary", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -1211,7 +1267,9 @@ "id": "motorway", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -1251,7 +1309,9 @@ "id": "primary_bridge_border", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "road", @@ -1308,7 +1368,9 @@ "id": "primary_bridge", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -1373,7 +1435,9 @@ "id": "building", "type": "fill", "metadata": { - "mapbox:group": "29bb589e8d1b9b402583363648b70302" + "mapbox:group": "29bb589e8d1b9b402583363648b70302", + "microg:gms-type-feature": "landscape.man_made", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "building", @@ -1430,7 +1494,9 @@ "id": "building_border", "type": "line", "metadata": { - "mapbox:group": "29bb589e8d1b9b402583363648b70302" + "mapbox:group": "29bb589e8d1b9b402583363648b70302", + "microg:gms-type-feature": "landscape.man_made", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "building", @@ -1487,7 +1553,9 @@ "id": "building_3d", "type": "fill-extrusion", "metadata": { - "mapbox:group": "29bb589e8d1b9b402583363648b70302" + "mapbox:group": "29bb589e8d1b9b402583363648b70302", + "microg:gms-type-feature": "landscape.man_made", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "building", @@ -1529,7 +1597,9 @@ "id": "admin_0", "type": "line", "metadata": { - "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa" + "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa", + "microg:gms-type-feature": "administrative.country", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "admin", @@ -1581,7 +1651,9 @@ "id": "admin_1", "type": "line", "metadata": { - "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa" + "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa", + "microg:gms-type-feature": "administrative.province", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "admin", @@ -1637,7 +1709,9 @@ "id": "river_name", "type": "symbol", "metadata": { - "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "natural_label", @@ -1677,7 +1751,9 @@ "id": "city_label_right", "type": "symbol", "metadata": { - "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "administrative.locality", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "place_label", @@ -1864,7 +1940,9 @@ "id": "city_label_left", "type": "symbol", "metadata": { - "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "administrative.locality", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "place_label", @@ -2050,7 +2128,9 @@ "id": "city_label_below", "type": "symbol", "metadata": { - "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "administrative.locality", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "place_label", @@ -2235,7 +2315,9 @@ "id": "city_name", "type": "symbol", "metadata": { - "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "administrative.locality", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "place_label", @@ -2481,8 +2563,8 @@ "type": "symbol", "metadata": { "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", - "microg:gms-type-feature": "poi", - "microg:gms-type-element": "label" + "microg:gms-type-feature": "poi.park", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "poi_label", @@ -2538,7 +2620,9 @@ "id": "road-number-shield", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "labels.icon" }, "source": "composite", "source-layer": "road", @@ -2750,7 +2834,9 @@ "id": "country_name", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "administrative.country", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "place_label", @@ -2840,7 +2926,9 @@ "id": "pedestrian_name", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "road", @@ -2911,7 +2999,9 @@ "id": "street_name", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "road", @@ -2969,7 +3059,9 @@ "id": "secondary_name", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "road", @@ -3033,7 +3125,9 @@ "id": "primary_name", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "road", @@ -3093,7 +3187,9 @@ "id": "poi_label_below", "type": "symbol", "metadata": { - "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + "mapbox:group": "124a9d7a8e5226775d947c592110dfad", + "microg:gms-type-element": "labels.text", + "microg:gms-type-feature": "poi" }, "source": "composite", "source-layer": "poi_label", @@ -3380,7 +3476,9 @@ "id": "poi_label_above", "type": "symbol", "metadata": { - "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + "mapbox:group": "124a9d7a8e5226775d947c592110dfad", + "microg:gms-type-element": "labels.text", + "microg:gms-type-feature": "poi" }, "source": "composite", "source-layer": "poi_label", @@ -3667,7 +3765,9 @@ "id": "poi_label_left", "type": "symbol", "metadata": { - "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + "mapbox:group": "124a9d7a8e5226775d947c592110dfad", + "microg:gms-type-element": "labels.text", + "microg:gms-type-feature": "poi" }, "source": "composite", "source-layer": "poi_label", @@ -3975,7 +4075,9 @@ "id": "poi_label_right", "type": "symbol", "metadata": { - "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + "mapbox:group": "124a9d7a8e5226775d947c592110dfad", + "microg:gms-type-element": "labels.text", + "microg:gms-type-feature": "poi" }, "source": "composite", "source-layer": "poi_label", -- GitLab From 1b54cce1521ff2b64251ec01871f20a6e14925e8 Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Wed, 8 Mar 2023 16:50:53 +0100 Subject: [PATCH 05/12] Constantize metadata field keys --- .../src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt index 233efc77d..46e8db176 100644 --- a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt +++ b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt @@ -18,7 +18,8 @@ import java.lang.NumberFormatException import kotlin.math.pow const val TAG = "GmsMapStyles" - +const val KEY_METADATA_FEATURE_TYPE = "microg:gms-type-feature" +const val KEY_METADATA_ELEMENT_TYPE = "microg:gms-type-element" fun getStyle(context: MapContext, storedMapType: Int, styleOptions: MapStyleOptions?): Style.Builder { @@ -57,10 +58,10 @@ fun MapStyleOptions.apply(style: JSONObject) { // Test if layer has required fields (metadata and paint) val layer = layerArray.getJSONObject(i) if (layer.has("paint") && layer.has("metadata") && layer.getJSONObject("metadata") - .let { it.has("microg:gms-type-feature") && it.has("microg:gms-type-element") } + .let { it.has(KEY_METADATA_FEATURE_TYPE) && it.has(KEY_METADATA_ELEMENT_TYPE) } ) { - val layerFeatureType = layer.getJSONObject("metadata").getString("microg:gms-type-feature") - val layerElementType = layer.getJSONObject("metadata").getString("microg:gms-type-element") + val layerFeatureType = layer.getJSONObject("metadata").getString(KEY_METADATA_FEATURE_TYPE) + val layerElementType = layer.getJSONObject("metadata").getString(KEY_METADATA_ELEMENT_TYPE) if (operation.featureType.startsWith("administrative") && operation.elementType.startsWith("geometry") -- GitLab From 682ee3dca46146d2d160497bf09e6e7920a45d93 Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Thu, 9 Mar 2023 16:26:20 +0100 Subject: [PATCH 06/12] Remove hidden layers from satellite style --- .../main/assets/style-microg-satellite.json | 876 +----------------- 1 file changed, 10 insertions(+), 866 deletions(-) diff --git a/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json b/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json index 1a6e2e974..51dc9a3fd 100644 --- a/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json +++ b/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json @@ -75,230 +75,6 @@ "layout": {}, "paint": {} }, - { - "id": "forrest", - "type": "fill", - "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" - }, - "source": "composite", - "source-layer": "landcover", - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "wood", - "scrub" - ], - true, - false - ], - "layout": { - "visibility": "none" - }, - "paint": { - "fill-color": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 9, - "hsl(124, 42%, 86%)", - 11, - "hsl(107, 47%, 94%)", - 12.5, - "hsl(107, 47%, 94%)", - 13.5, - "hsl(45, 12%, 93%)" - ] - } - }, - { - "id": "national_park", - "type": "fill", - "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" - }, - "source": "composite", - "source-layer": "landuse_overlay", - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "national_park" - ], - true, - false - ], - "layout": { - "visibility": "none" - }, - "paint": { - "fill-color": "hsl(106, 58%, 85%)" - } - }, - { - "id": "snow", - "type": "fill", - "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" - }, - "source": "composite", - "source-layer": "landcover", - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "snow" - ], - true, - false - ], - "layout": { - "visibility": "none" - }, - "paint": { - "fill-color": "#f9fafc" - } - }, - { - "id": "hillshade", - "type": "fill", - "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" - }, - "source": "composite", - "source-layer": "hillshade", - "layout": { - "visibility": "none" - }, - "paint": { - "fill-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 9, - 0.03, - 13, - 0 - ] - } - }, - { - "id": "park", - "type": "fill", - "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" - }, - "source": "composite", - "source-layer": "landuse", - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "park", - "scrub" - ], - true, - false - ], - "layout": { - "visibility": "none" - }, - "paint": { - "fill-color": "#c1ecaf" - } - }, - { - "id": "pitch", - "type": "fill", - "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" - }, - "source": "composite", - "source-layer": "landuse", - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "pitch" - ], - true, - false - ], - "layout": { - "visibility": "none" - }, - "paint": { - "fill-color": "#c8efbb" - } - }, - { - "id": "landuse", - "type": "fill", - "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" - }, - "source": "composite", - "source-layer": "landuse", - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "airport", - "school", - "hospital" - ], - true, - false - ], - "layout": { - "visibility": "none" - }, - "paint": { - "fill-color": "hsl(202, 26%, 94%)" - } - }, - { - "id": "river", - "type": "fill", - "metadata": { - "mapbox:group": "f51b507d2a17e572c70a5db74b0fec7e" - }, - "source": "composite", - "source-layer": "water", - "layout": { - "visibility": "none" - }, - "paint": { - "fill-color": "hsl(206, 100%, 83%)" - } - }, { "id": "path", "type": "line", @@ -454,71 +230,6 @@ ] } }, - { - "id": "primary_tunnel_border", - "type": "line", - "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" - }, - "source": "composite", - "source-layer": "road", - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "primary_link", - "primary", - "motorway_link" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "tunnel" - ], - true, - false - ] - ], - "layout": { - "visibility": "none" - }, - "paint": { - "line-gap-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 7, - 0, - 8, - 1, - 12, - 4, - 14, - 6, - 16, - 10, - 22, - 64 - ], - "line-color": "#cbcccd" - } - }, { "id": "primary_tunnel", "type": "line", @@ -609,295 +320,16 @@ "get", "class" ], - [ - "service" - ], - true, - false - ], - "layout": {}, - "paint": { - "line-color": "hsla(0, 0%, 0%, 0.1)", - "line-opacity": 0.3 - } - }, - { - "id": "pedestrian_border", - "type": "line", - "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" - }, - "source": "composite", - "source-layer": "road", - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "pedestrian" - ], - true, - false - ], - [ - "has", - "name" - ] - ], - "layout": { - "visibility": "none" - }, - "paint": { - "line-gap-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 13, - 1, - 16, - 4, - 22, - 32 - ], - "line-color": "#e3e3e3", - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 12.5, - 0, - 13.5, - 1 - ] - } - }, - { - "id": "street_border", - "type": "line", - "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" - }, - "source": "composite", - "source-layer": "road", - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "street" - ], - true, - false - ], - "layout": { - "visibility": "none" - }, - "paint": { - "line-gap-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 12, - 1, - 16, - 6, - 22, - 40 - ], - "line-color": "#e3e3e3" - } - }, - { - "id": "secondary_border", - "type": "line", - "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" - }, - "source": "composite", - "source-layer": "road", - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "secondary", - "secondary_link", - "tertiary_link", - "tertiary", - "trunk_link", - "trunk" - ], - true, - false - ], - "layout": { - "visibility": "none" - }, - "paint": { - "line-gap-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 10, - 1, - 17, - 10, - 22, - 48 - ], - "line-color": "#e3e3e3", - "line-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 16, - 1, - 20, - 2 - ] - } - }, - { - "id": "primary_border", - "type": "line", - "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" - }, - "source": "composite", - "source-layer": "road", - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "primary_link", - "primary", - "motorway_link" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "tunnel" - ], - false, - true - ] - ], - "layout": { - "line-cap": "round", - "visibility": "none" - }, - "paint": { - "line-gap-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 9, - 1, - 16, - 8, - 22, - 64 - ], - "line-color": "#ecd283" - } - }, - { - "id": "motorway_border", - "type": "line", - "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" - }, - "source": "composite", - "source-layer": "road", - "filter": [ - "match", - [ - "get", - "class" - ], - [ - "motorway" - ], - true, - false - ], - "layout": { - "visibility": "none" - }, - "paint": { - "line-gap-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 8, - 1, - 15.5, - 8, - 22, - 78 - ], - "line-color": "#ecd283", - "line-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 8, - 1, - 15, - 2 - ] + [ + "service" + ], + true, + false + ], + "layout": {}, + "paint": { + "line-color": "hsla(0, 0%, 0%, 0.1)", + "line-opacity": 0.3 } }, { @@ -1196,294 +628,6 @@ "line-opacity": 0.3 } }, - { - "id": "primary_bridge_border", - "type": "line", - "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" - }, - "source": "composite", - "source-layer": "road", - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "primary_link", - "primary", - "motorway_link" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "bridge" - ], - true, - false - ] - ], - "layout": { - "visibility": "none" - }, - "paint": { - "line-gap-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 9, - 1, - 16, - 8, - 22, - 64 - ], - "line-color": "hsl(45, 73%, 72%)" - } - }, - { - "id": "primary_bridge", - "type": "line", - "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" - }, - "source": "composite", - "source-layer": "road", - "filter": [ - "all", - [ - "match", - [ - "get", - "class" - ], - [ - "primary_link", - "primary", - "motorway_link" - ], - true, - false - ], - [ - "match", - [ - "get", - "structure" - ], - [ - "bridge" - ], - true, - false - ] - ], - "layout": { - "visibility": "none" - }, - "paint": { - "line-color": [ - "step", - [ - "zoom" - ], - "hsl(50, 100%, 75%)", - 7, - "hsl(50, 100%, 85%)" - ], - "line-width": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 9, - 1, - 16, - 8, - 22, - 64 - ] - } - }, - { - "id": "building", - "type": "fill", - "metadata": { - "mapbox:group": "29bb589e8d1b9b402583363648b70302" - }, - "source": "composite", - "source-layer": "building", - "filter": [ - "match", - [ - "get", - "type" - ], - [ - "roof" - ], - false, - true - ], - "layout": { - "visibility": "none" - }, - "paint": { - "fill-color": [ - "match", - [ - "get", - "type" - ], - [ - "store", - "retail", - "church", - "kiosk", - "civic", - "hotel", - "supermarket", - "pub", - "dormitory" - ], - "hsl(33, 100%, 96%)", - "#ededed" - ], - "fill-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 15, - 0, - 17, - 1 - ] - } - }, - { - "id": "building_border", - "type": "line", - "metadata": { - "mapbox:group": "29bb589e8d1b9b402583363648b70302" - }, - "source": "composite", - "source-layer": "building", - "filter": [ - "match", - [ - "get", - "type" - ], - [ - "roof" - ], - false, - true - ], - "layout": { - "visibility": "none" - }, - "paint": { - "line-color": [ - "match", - [ - "get", - "type" - ], - [ - "store", - "retail", - "church", - "kiosk", - "civic", - "commercial", - "hotel", - "supermarket", - "pub" - ], - "#f8e1c7", - "#dcdcdc" - ], - "line-opacity": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 15, - 0, - 17, - 1 - ] - } - }, - { - "id": "building_3d", - "type": "fill-extrusion", - "metadata": { - "mapbox:group": "29bb589e8d1b9b402583363648b70302" - }, - "source": "composite", - "source-layer": "building", - "filter": [ - "match", - [ - "get", - "extrude" - ], - [ - "true" - ], - true, - false - ], - "layout": { - "visibility": "none" - }, - "paint": { - "fill-extrusion-height": [ - "interpolate", - [ - "linear" - ], - [ - "zoom" - ], - 15, - 0, - 16, - [ - "get", - "height" - ] - ], - "fill-extrusion-color": "#ededed", - "fill-extrusion-opacity": 0.3 - } - }, { "id": "admin_0", "type": "line", -- GitLab From 0fbe623338f485e84e3c86e1607efbc1e3de9d1a Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Thu, 9 Mar 2023 16:29:16 +0100 Subject: [PATCH 07/12] Prepare satellite style for use with custom colors --- .../main/assets/style-microg-satellite.json | 126 +++++++++++++----- 1 file changed, 95 insertions(+), 31 deletions(-) diff --git a/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json b/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json index 51dc9a3fd..accb62735 100644 --- a/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json +++ b/play-services-maps-core-mapbox/src/main/assets/style-microg-satellite.json @@ -73,13 +73,19 @@ "type": "raster", "source": "mapbox://mapbox.satellite", "layout": {}, - "paint": {} + "paint": {}, + "metadata": { + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "geometry.fill" + } }, { "id": "path", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -125,7 +131,9 @@ "id": "steps", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -171,7 +179,9 @@ "id": "platform", "type": "fill", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "transit.station.rail", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -234,7 +244,9 @@ "id": "primary_tunnel", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -296,7 +308,9 @@ "id": "aeroway", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "transit.station.airport", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "aeroway", @@ -310,7 +324,9 @@ "id": "service_road", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -336,7 +352,9 @@ "id": "railway", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "transit.line", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -364,7 +382,9 @@ "id": "pedestrian", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -436,7 +456,9 @@ "id": "street", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -477,7 +499,9 @@ "id": "secondary", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -523,7 +547,9 @@ "id": "primary", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -591,7 +617,9 @@ "id": "motorway", "type": "line", "metadata": { - "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990" + "mapbox:group": "3f48b8dc54ff2e6544b9ef9cedbf2990", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "geometry.fill" }, "source": "composite", "source-layer": "road", @@ -632,7 +660,9 @@ "id": "admin_0", "type": "line", "metadata": { - "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa" + "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa", + "microg:gms-type-feature": "administrative.country", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "admin", @@ -684,7 +714,9 @@ "id": "admin_1", "type": "line", "metadata": { - "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa" + "mapbox:group": "3c26e9cbc75335c6f0ba8de5439cf1fa", + "microg:gms-type-feature": "administrative.province", + "microg:gms-type-element": "geometry.stroke" }, "source": "composite", "source-layer": "admin", @@ -740,7 +772,9 @@ "id": "river_name", "type": "symbol", "metadata": { - "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "natural_label", @@ -781,7 +815,9 @@ "id": "city_label_right", "type": "symbol", "metadata": { - "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "administrative.locality", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "place_label", @@ -974,7 +1010,9 @@ "id": "city_label_left", "type": "symbol", "metadata": { - "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "administrative.locality", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "place_label", @@ -1166,7 +1204,9 @@ "id": "city_label_below", "type": "symbol", "metadata": { - "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "administrative.locality", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "place_label", @@ -1357,7 +1397,9 @@ "id": "city_name", "type": "symbol", "metadata": { - "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "administrative.locality", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "place_label", @@ -1608,7 +1650,9 @@ "id": "park_name", "type": "symbol", "metadata": { - "mapbox:group": "7b44201d7f1682d99f7140188aff23ce" + "mapbox:group": "7b44201d7f1682d99f7140188aff23ce", + "microg:gms-type-feature": "poi.park", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "poi_label", @@ -1665,7 +1709,9 @@ "id": "road-number-shield", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "labels.icon" }, "source": "composite", "source-layer": "road", @@ -1876,7 +1922,9 @@ "id": "country_name", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "administrative.country", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "place_label", @@ -1967,7 +2015,9 @@ "id": "pedestrian_name", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "road", @@ -2039,7 +2089,9 @@ "id": "street_name", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "road", @@ -2098,7 +2150,9 @@ "id": "secondary_name", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "road", @@ -2163,7 +2217,9 @@ "id": "primary_name", "type": "symbol", "metadata": { - "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312" + "mapbox:group": "24306bdccbff03e2ee08d5d1a4ca7312", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "road", @@ -2224,7 +2280,9 @@ "id": "poi_label_below", "type": "symbol", "metadata": { - "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + "mapbox:group": "124a9d7a8e5226775d947c592110dfad", + "microg:gms-type-feature": "poi", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "poi_label", @@ -2512,7 +2570,9 @@ "id": "poi_label_above", "type": "symbol", "metadata": { - "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + "mapbox:group": "124a9d7a8e5226775d947c592110dfad", + "microg:gms-type-feature": "poi", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "poi_label", @@ -2800,7 +2860,9 @@ "id": "poi_label_left", "type": "symbol", "metadata": { - "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + "mapbox:group": "124a9d7a8e5226775d947c592110dfad", + "microg:gms-type-feature": "poi", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "poi_label", @@ -3109,7 +3171,9 @@ "id": "poi_label_right", "type": "symbol", "metadata": { - "mapbox:group": "124a9d7a8e5226775d947c592110dfad" + "mapbox:group": "124a9d7a8e5226775d947c592110dfad", + "microg:gms-type-feature": "poi", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "poi_label", -- GitLab From af3e452c9c44deacf71ccfb83904e9985a40c68e Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Thu, 9 Mar 2023 17:01:51 +0100 Subject: [PATCH 08/12] Fix important bugs --- .../kotlin/org/microg/gms/maps/mapbox/Styles.kt | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt index 46e8db176..d2a1aef44 100644 --- a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt +++ b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt @@ -141,18 +141,18 @@ fun String.parseColor(): Int { if (startsWith("#") && length in listOf(7, 9)) { return Color.parseColor(this) } else if (startsWith("hsl(")) { - val hsvArray = replace("hsl(", "").replace(")", "").split(", ") - if (hsvArray.size != 3) { + val hslArray = replace("hsl(", "").replace(")", "").split(", ") + if (hslArray.size != 3) { Log.w(TAG, "Invalid color `$this`") return 0 } return try { - Color.HSVToColor( + ColorUtils.HSLToColor( floatArrayOf( - hsvArray[0].toFloat(), - hsvArray[1].parseFloat(), - hsvArray[2].parseFloat() + hslArray[0].toFloat(), + hslArray[1].parseFloat(), + hslArray[2].parseFloat() ) ) } catch (e: NumberFormatException) { @@ -177,7 +177,7 @@ fun Int.colorToString() = com.mapbox.mapboxsdk.utils.ColorUtils.colorToRgbaStrin */ fun String.parseFloat(): Float { return if (contains("%")) { - replace("%", "").toFloat() + replace("%", "").toFloat() / 100f } else { toFloat() } -- GitLab From a5685a0f529b33951af330f2f1dacf90c225c0ac Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Sun, 12 Mar 2023 18:04:05 +0100 Subject: [PATCH 09/12] Prepare outdoor style for custom colors --- .../assets/style-mapbox-outdoors-v12.json | 592 +++++++++++++----- 1 file changed, 444 insertions(+), 148 deletions(-) diff --git a/play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json b/play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json index e022a2916..21c4d40f5 100644 --- a/play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json +++ b/play-services-maps-core-mapbox/src/main/assets/style-mapbox-outdoors-v12.json @@ -97,7 +97,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" + "mapbox:group": "Land & water, land", + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "geometry.fill" } }, { @@ -145,7 +147,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" + "mapbox:group": "Land & water, land", + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "geometry.fill" } }, { @@ -183,7 +187,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" + "mapbox:group": "Land & water, land", + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "geometry.fill" } }, { @@ -234,7 +240,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" + "mapbox:group": "Land & water, land", + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -569,7 +577,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" + "mapbox:group": "Land & water, land", + "microg:gms-type-feature": "landscape.man_made", + "microg:gms-type-element": "geometry.fill" } }, { @@ -592,7 +602,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, land" + "mapbox:group": "Land & water, land", + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -704,7 +716,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" + "mapbox:group": "Land & water, water", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -746,7 +760,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" + "mapbox:group": "Land & water, water", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -831,7 +847,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" + "mapbox:group": "Land & water, water", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -846,7 +864,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" + "mapbox:group": "Land & water, water", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "geometry.fill" } }, { @@ -905,7 +925,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" + "mapbox:group": "Land & water, water", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "geometry.fill" } }, { @@ -945,7 +967,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" + "mapbox:group": "Land & water, water", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "geometry.fill" } }, { @@ -987,7 +1011,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, water" + "mapbox:group": "Land & water, water", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "geometry.fill" } }, { @@ -1113,7 +1139,9 @@ }, "metadata": { "mapbox:featureComponent": "terrain", - "mapbox:group": "Terrain, land" + "mapbox:group": "Terrain, land", + "microg:gms-type-feature": "landscape.natural.terrain", + "microg:gms-type-element": "geometry.fill" } }, { @@ -1210,7 +1238,9 @@ }, "metadata": { "mapbox:featureComponent": "terrain", - "mapbox:group": "Terrain, land" + "mapbox:group": "Terrain, land", + "microg:gms-type-feature": "landscape.natural.terrain", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -1243,7 +1273,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, built" + "mapbox:group": "Land & water, built", + "microg:gms-type-feature": "landscape.natural.terrain", + "microg:gms-type-element": "geometry.fill" } }, { @@ -1292,7 +1324,9 @@ }, "metadata": { "mapbox:featureComponent": "land-and-water", - "mapbox:group": "Land & water, built" + "mapbox:group": "Land & water, built", + "microg:gms-type-feature": "landscape.natural.terrain", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -1343,7 +1377,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, built" + "mapbox:group": "Transit, built", + "microg:gms-type-feature": "transit.station.airport", + "microg:gms-type-element": "geometry.fill" } }, { @@ -1409,7 +1445,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, built" + "mapbox:group": "Transit, built", + "microg:gms-type-feature": "transit.station.airport", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -1457,7 +1495,9 @@ }, "metadata": { "mapbox:featureComponent": "buildings", - "mapbox:group": "Buildings, built" + "mapbox:group": "Buildings, built", + "microg:gms-type-feature": "landscape.man_made", + "microg:gms-type-element": "geometry.fill" } }, { @@ -1503,7 +1543,9 @@ }, "metadata": { "mapbox:featureComponent": "buildings", - "mapbox:group": "Buildings, built" + "mapbox:group": "Buildings, built", + "microg:gms-type-feature": "landscape.man_made", + "microg:gms-type-element": "geometry.fill" } }, { @@ -1591,7 +1633,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" + "mapbox:group": "Road network, tunnels-case", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -1679,7 +1723,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" + "mapbox:group": "Road network, tunnels-case", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -1784,7 +1830,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" + "mapbox:group": "Road network, tunnels-case", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -1863,7 +1911,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" + "mapbox:group": "Road network, tunnels-case", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -1937,7 +1987,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" + "mapbox:group": "Road network, tunnels-case", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -2016,7 +2068,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" + "mapbox:group": "Road network, tunnels-case", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -2095,7 +2149,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels-case" + "mapbox:group": "Road network, tunnels-case", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -2193,7 +2249,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., tunnels" + "mapbox:group": "Walking, cycling, etc., tunnels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -2265,7 +2323,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., tunnels" + "mapbox:group": "Walking, cycling, etc., tunnels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -2365,7 +2425,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., tunnels" + "mapbox:group": "Walking, cycling, etc., tunnels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -2458,7 +2520,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., tunnels" + "mapbox:group": "Walking, cycling, etc., tunnels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -2541,7 +2605,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., tunnels" + "mapbox:group": "Walking, cycling, etc., tunnels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -2642,7 +2708,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" + "mapbox:group": "Road network, tunnels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -2721,7 +2789,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" + "mapbox:group": "Road network, tunnels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -2803,7 +2873,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" + "mapbox:group": "Road network, tunnels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -2873,7 +2945,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" + "mapbox:group": "Road network, tunnels", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.fill" } }, { @@ -2952,7 +3026,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" + "mapbox:group": "Road network, tunnels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -3034,7 +3110,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" + "mapbox:group": "Road network, tunnels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -3095,7 +3173,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" + "mapbox:group": "Road network, tunnels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -3151,7 +3231,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" + "mapbox:group": "Road network, tunnels", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.fill" } }, { @@ -3221,7 +3303,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" + "mapbox:group": "Road network, tunnels", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "geometry.fill" } }, { @@ -3312,7 +3396,9 @@ "paint": {}, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" + "mapbox:group": "Road network, tunnels", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "labels.icon" } }, { @@ -3374,7 +3460,9 @@ "paint": {}, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, tunnels" + "mapbox:group": "Road network, tunnels", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "labels.icon" } }, { @@ -3414,7 +3502,9 @@ }, "metadata": { "mapbox:featureComponent": "terrain", - "mapbox:group": "Terrain, surface" + "mapbox:group": "Terrain, surface", + "microg:gms-type-feature": "landscape.natural.terrain", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -3483,7 +3573,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, ferries" + "mapbox:group": "Transit, ferries", + "microg:gms-type-feature": "transit.line", + "microg:gms-type-element": "geometry.fill" } }, { @@ -3531,7 +3623,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, ferries" + "mapbox:group": "Transit, ferries", + "microg:gms-type-feature": "transit.line", + "microg:gms-type-element": "geometry.fill" } }, { @@ -3597,7 +3691,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" + "mapbox:group": "Walking, cycling, etc., surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -3676,7 +3772,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" + "mapbox:group": "Walking, cycling, etc., surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -3797,7 +3895,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" + "mapbox:group": "Walking, cycling, etc., surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -3862,7 +3962,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" + "mapbox:group": "Walking, cycling, etc., surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -3948,7 +4050,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" + "mapbox:group": "Walking, cycling, etc., surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -4061,7 +4165,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" + "mapbox:group": "Walking, cycling, etc., surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -4148,7 +4254,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" + "mapbox:group": "Walking, cycling, etc., surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -4291,7 +4399,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" + "mapbox:group": "Walking, cycling, etc., surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -4392,7 +4502,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" + "mapbox:group": "Walking, cycling, etc., surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -4507,7 +4619,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" + "mapbox:group": "Walking, cycling, etc., surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -4529,7 +4643,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., surface" + "mapbox:group": "Walking, cycling, etc., surface", + "microg:gms-type-feature": "poi.attraction", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -4590,7 +4706,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "geometry.fill" } }, { @@ -4662,7 +4780,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -4780,7 +4900,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -4889,7 +5011,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -4999,7 +5123,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -5099,7 +5225,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -5194,7 +5322,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -5303,7 +5433,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -5439,7 +5571,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -5495,7 +5629,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "geometry.fill" } }, { @@ -5601,7 +5737,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -5696,7 +5834,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -5783,7 +5923,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -5878,7 +6020,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -5982,7 +6126,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -6069,7 +6215,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -6155,7 +6303,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -6236,7 +6386,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.fill" } }, { @@ -6386,7 +6538,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface" + "mapbox:group": "Road network, surface", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "geometry.fill" } }, { @@ -6455,7 +6609,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, surface" + "mapbox:group": "Transit, surface", + "microg:gms-type-feature": "transit.line", + "microg:gms-type-element": "geometry.fill" } }, { @@ -6541,7 +6697,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, surface" + "mapbox:group": "Transit, surface", + "microg:gms-type-feature": "transit.line", + "microg:gms-type-element": "geometry.fill" } }, { @@ -6567,7 +6725,9 @@ "paint": {}, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface-icons" + "mapbox:group": "Road network, surface-icons", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "labels.icon" } }, { @@ -6663,7 +6823,9 @@ "paint": {}, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface-icons" + "mapbox:group": "Road network, surface-icons", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "labels.icon" } }, { @@ -6730,7 +6892,9 @@ "paint": {}, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface-icons" + "mapbox:group": "Road network, surface-icons", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "labels.icon" } }, { @@ -6795,7 +6959,9 @@ "paint": {}, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, surface-icons" + "mapbox:group": "Road network, surface-icons", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "labels.icon" } }, { @@ -6864,7 +7030,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" + "mapbox:group": "Walking, cycling, etc., barriers-bridges", + "microg:gms-type-feature": "landscape.man_made", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -6980,7 +7148,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" + "mapbox:group": "Walking, cycling, etc., barriers-bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -7037,7 +7207,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" + "mapbox:group": "Walking, cycling, etc., barriers-bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -7091,7 +7263,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" + "mapbox:group": "Walking, cycling, etc., barriers-bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -7189,7 +7363,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" + "mapbox:group": "Walking, cycling, etc., barriers-bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -7261,7 +7437,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" + "mapbox:group": "Walking, cycling, etc., barriers-bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -7361,7 +7539,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" + "mapbox:group": "Walking, cycling, etc., barriers-bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -7454,7 +7634,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" + "mapbox:group": "Walking, cycling, etc., barriers-bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -7537,7 +7719,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" + "mapbox:group": "Walking, cycling, etc., barriers-bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -7571,7 +7755,9 @@ "paint": {}, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., barriers-bridges" + "mapbox:group": "Walking, cycling, etc., barriers-bridges", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "labels.icon" } }, { @@ -7664,7 +7850,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -7757,7 +7945,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -7853,7 +8043,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -7937,7 +8129,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -8016,7 +8210,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -8099,7 +8295,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -8182,7 +8380,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -8283,7 +8483,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -8364,7 +8566,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -8437,7 +8641,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -8526,7 +8732,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -8616,7 +8824,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -8698,7 +8908,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -8770,7 +8982,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "geometry.fill" } }, { @@ -8837,7 +9051,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.fill" } }, { @@ -8926,7 +9142,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "geometry.fill" } }, { @@ -9009,7 +9227,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -9092,7 +9312,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -9181,7 +9403,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.highway", + "microg:gms-type-element": "geometry.fill" } }, { @@ -9270,7 +9494,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "geometry.fill" } }, { @@ -9361,7 +9587,9 @@ "paint": {}, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "labels.icon" } }, { @@ -9415,7 +9643,9 @@ "paint": {}, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, bridges" + "mapbox:group": "Road network, bridges", + "microg:gms-type-feature": "road.arterial", + "microg:gms-type-element": "labels.icon" } }, { @@ -9479,7 +9709,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, bridges" + "mapbox:group": "Transit, bridges", + "microg:gms-type-feature": "transit.line", + "microg:gms-type-element": "geometry.fill" } }, { @@ -9560,7 +9792,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, bridges" + "mapbox:group": "Transit, bridges", + "microg:gms-type-feature": "transit.line", + "microg:gms-type-element": "geometry.fill" } }, { @@ -9600,7 +9834,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, elevated" + "mapbox:group": "Transit, elevated", + "microg:gms-type-feature": "transit.line", + "microg:gms-type-element": "geometry.fill" } }, { @@ -9689,7 +9925,9 @@ }, "metadata": { "mapbox:featureComponent": "admin-boundaries", - "mapbox:group": "Administrative boundaries, admin" + "mapbox:group": "Administrative boundaries, admin", + "microg:gms-type-feature": "administrative.province", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -9774,7 +10012,9 @@ }, "metadata": { "mapbox:featureComponent": "admin-boundaries", - "mapbox:group": "Administrative boundaries, admin" + "mapbox:group": "Administrative boundaries, admin", + "microg:gms-type-feature": "administrative.country", + "microg:gms-type-element": "geometry.stroke" } }, { @@ -9870,7 +10110,9 @@ }, "metadata": { "mapbox:featureComponent": "admin-boundaries", - "mapbox:group": "Administrative boundaries, admin" + "mapbox:group": "Administrative boundaries, admin", + "microg:gms-type-feature": "administrative.province", + "microg:gms-type-element": "geometry.fill" } }, { @@ -9961,7 +10203,9 @@ }, "metadata": { "mapbox:featureComponent": "admin-boundaries", - "mapbox:group": "Administrative boundaries, admin" + "mapbox:group": "Administrative boundaries, admin", + "microg:gms-type-feature": "administrative.country", + "microg:gms-type-element": "geometry.fill" } }, { @@ -10050,7 +10294,9 @@ }, "metadata": { "mapbox:featureComponent": "admin-boundaries", - "mapbox:group": "Administrative boundaries, admin" + "mapbox:group": "Administrative boundaries, admin", + "microg:gms-type-feature": "administrative.country", + "microg:gms-type-element": "geometry.fill" } }, { @@ -10116,7 +10362,9 @@ }, "metadata": { "mapbox:featureComponent": "terrain", - "mapbox:group": "Terrain, terrain-labels" + "mapbox:group": "Terrain, terrain-labels", + "microg:gms-type-feature": "landscape.natural.terrain", + "microg:gms-type-element": "labels.text" } }, { @@ -10157,7 +10405,9 @@ }, "metadata": { "mapbox:featureComponent": "buildings", - "mapbox:group": "Buildings, building-labels" + "mapbox:group": "Buildings, building-labels", + "microg:gms-type-feature": "poi", + "microg:gms-type-element": "labels.icon" } }, { @@ -10186,7 +10436,9 @@ }, "metadata": { "mapbox:featureComponent": "buildings", - "mapbox:group": "Buildings, building-labels" + "mapbox:group": "Buildings, building-labels", + "microg:gms-type-feature": "landscape.man_made", + "microg:gms-type-element": "labels.text" } }, { @@ -10234,7 +10486,9 @@ }, "metadata": { "mapbox:featureComponent": "buildings", - "mapbox:group": "Buildings, building-labels" + "mapbox:group": "Buildings, building-labels", + "microg:gms-type-feature": "landscape.man_made", + "microg:gms-type-element": "labels.text" } }, { @@ -10417,7 +10671,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, road-labels" + "mapbox:group": "Road network, road-labels", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "labels.text" } }, { @@ -10485,7 +10741,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, road-labels" + "mapbox:group": "Road network, road-labels", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "labels.text" } }, { @@ -10737,7 +10995,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, road-labels" + "mapbox:group": "Road network, road-labels", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "labels.icon" } }, { @@ -10792,7 +11052,9 @@ }, "metadata": { "mapbox:featureComponent": "road-network", - "mapbox:group": "Road network, road-labels" + "mapbox:group": "Road network, road-labels", + "microg:gms-type-feature": "road", + "microg:gms-type-element": "labels.icon" } }, { @@ -10914,7 +11176,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., walking-cycling-labels" + "mapbox:group": "Walking, cycling, etc., walking-cycling-labels", + "microg:gms-type-feature": "road.local", + "microg:gms-type-element": "labels.text" } }, { @@ -10957,7 +11221,9 @@ }, "metadata": { "mapbox:featureComponent": "walking-cycling", - "mapbox:group": "Walking, cycling, etc., walking-cycling-labels" + "mapbox:group": "Walking, cycling, etc., walking-cycling-labels", + "microg:gms-type-feature": "poi.attraction", + "microg:gms-type-element": "labels.text" } }, { @@ -11040,7 +11306,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, ferry-aerialway-labels" + "mapbox:group": "Transit, ferry-aerialway-labels", + "microg:gms-type-feature": "transit.line", + "microg:gms-type-element": "labels.text" } }, { @@ -11141,7 +11409,9 @@ }, "metadata": { "mapbox:featureComponent": "natural-features", - "mapbox:group": "Natural features, natural-labels" + "mapbox:group": "Natural features, natural-labels", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "labels.text" } }, { @@ -11149,7 +11419,9 @@ "type": "symbol", "metadata": { "mapbox:featureComponent": "natural-features", - "mapbox:group": "Natural features, natural-labels" + "mapbox:group": "Natural features, natural-labels", + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "natural_label", @@ -11471,7 +11743,9 @@ }, "metadata": { "mapbox:featureComponent": "natural-features", - "mapbox:group": "Natural features, natural-labels" + "mapbox:group": "Natural features, natural-labels", + "microg:gms-type-feature": "landscape.natural.landcover", + "microg:gms-type-element": "labels.text" } }, { @@ -11479,7 +11753,9 @@ "type": "symbol", "metadata": { "mapbox:featureComponent": "natural-features", - "mapbox:group": "Natural features, natural-labels" + "mapbox:group": "Natural features, natural-labels", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "labels.text" }, "source": "composite", "source-layer": "natural_label", @@ -11780,7 +12056,9 @@ }, "metadata": { "mapbox:featureComponent": "natural-features", - "mapbox:group": "Natural features, natural-labels" + "mapbox:group": "Natural features, natural-labels", + "microg:gms-type-feature": "water", + "microg:gms-type-element": "labels.text" } }, { @@ -12039,7 +12317,9 @@ }, "metadata": { "mapbox:featureComponent": "point-of-interest-labels", - "mapbox:group": "Point of interest labels, poi-labels" + "mapbox:group": "Point of interest labels, poi-labels", + "microg:gms-type-feature": "poi", + "microg:gms-type-element": "labels.text" } }, { @@ -12340,7 +12620,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, transit-labels" + "mapbox:group": "Transit, transit-labels", + "microg:gms-type-feature": "transit.station.bus", + "microg:gms-type-element": "labels.text" } }, { @@ -12461,7 +12743,9 @@ }, "metadata": { "mapbox:featureComponent": "transit", - "mapbox:group": "Transit, transit-labels" + "mapbox:group": "Transit, transit-labels", + "microg:gms-type-feature": "transit.station.airport", + "microg:gms-type-element": "labels.text" } }, { @@ -12580,7 +12864,9 @@ }, "metadata": { "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" + "mapbox:group": "Place labels, place-labels", + "microg:gms-type-feature": "administrative.neighborhood", + "microg:gms-type-element": "labels.text" } }, { @@ -12855,7 +13141,9 @@ }, "metadata": { "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" + "mapbox:group": "Place labels, place-labels", + "microg:gms-type-feature": "administrative.locality", + "microg:gms-type-element": "labels.text" } }, { @@ -13175,7 +13463,9 @@ }, "metadata": { "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" + "mapbox:group": "Place labels, place-labels", + "microg:gms-type-feature": "administrative.land_parcel", + "microg:gms-type-element": "labels.text" } }, { @@ -13277,7 +13567,9 @@ }, "metadata": { "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" + "mapbox:group": "Place labels, place-labels", + "microg:gms-type-feature": "administrative.province", + "microg:gms-type-element": "labels.text" } }, { @@ -13444,7 +13736,9 @@ }, "metadata": { "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" + "mapbox:group": "Place labels, place-labels", + "microg:gms-type-feature": "administrative.country", + "microg:gms-type-element": "labels.text" } }, { @@ -13531,7 +13825,9 @@ }, "metadata": { "mapbox:featureComponent": "place-labels", - "mapbox:group": "Place labels, place-labels" + "mapbox:group": "Place labels, place-labels", + "microg:gms-type-feature": "administrative.country", + "microg:gms-type-element": "labels.text" } } ], -- GitLab From 5c2f1e536c3e761dbfe427610ccf884cd129611b Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Sun, 12 Mar 2023 18:13:39 +0100 Subject: [PATCH 10/12] Parse hsla values --- .../org/microg/gms/maps/mapbox/Styles.kt | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt index d2a1aef44..c8070673b 100644 --- a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt +++ b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt @@ -16,6 +16,7 @@ import org.microg.gms.maps.MapsConstants import org.microg.gms.maps.mapbox.utils.MapContext import java.lang.NumberFormatException import kotlin.math.pow +import kotlin.math.roundToInt const val TAG = "GmsMapStyles" const val KEY_METADATA_FEATURE_TYPE = "microg:gms-type-feature" @@ -130,7 +131,7 @@ class Styler( /** * Returns true if string is likely to contain a color. */ -fun String.isColor() = startsWith("hsl(") || startsWith("#") || startsWith("rgba(") +fun String.isColor() = startsWith("hsl(") || startsWith("hsla(") || startsWith("#") || startsWith("rgba(") /** * Can parse colors in the format '#rrggbb', '#aarrggbb', 'hsl(h, s, l)', and 'rgba(r, g, b, a)' @@ -159,6 +160,26 @@ fun String.parseColor(): Int { Log.w(TAG, "Invalid color `$this`") 0 } + } else if (startsWith("hsla(")) { + val hslArray = replace("hsla(", "").replace(")", "").split(", ") + if (hslArray.size != 4) { + Log.w(TAG, "Invalid color `$this`") + return 0 + } + + return try { + ColorUtils.setAlphaComponent( + ColorUtils.HSLToColor( + floatArrayOf( + hslArray[0].toFloat(), hslArray[1].parseFloat(), hslArray[2].parseFloat() + ) + ), (hslArray[3].parseFloat() * 255).roundToInt() + ) + } catch (e: NumberFormatException) { + Log.w(TAG, "Invalid color `$this`") + 0 + } + } else if (startsWith("rgba(")) { return com.mapbox.mapboxsdk.utils.ColorUtils.rgbaToColor(this) } -- GitLab From 26c990afa718bd6e907ccaa68a2412bf630d286a Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Mon, 13 Mar 2023 10:28:16 +0100 Subject: [PATCH 11/12] Apply review --- .../org/microg/gms/maps/mapbox/Styles.kt | 138 +++++++++++------- 1 file changed, 85 insertions(+), 53 deletions(-) diff --git a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt index c8070673b..a6def5d55 100644 --- a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt +++ b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt @@ -22,6 +22,14 @@ const val TAG = "GmsMapStyles" const val KEY_METADATA_FEATURE_TYPE = "microg:gms-type-feature" const val KEY_METADATA_ELEMENT_TYPE = "microg:gms-type-element" +const val SELECTOR_ALL = "all" +const val SELECTOR_ELEMENT_LABEL_TEXT_FILL = "labels.text.fill" +const val SELECTOR_ELEMENT_LABEL_TEXT_OUTLINE = "labels.text.outline" +const val KEY_LAYER_METADATA = "metadata" +const val KEY_LAYER_PAINT = "paint" + + + fun getStyle(context: MapContext, storedMapType: Int, styleOptions: MapStyleOptions?): Style.Builder { // TODO: Serve map style resources locally @@ -48,58 +56,22 @@ fun MapStyleOptions.apply(style: JSONObject) { val layerArray = style.getJSONArray("layers") // Apply operations in order - operations@ for (operation in styleOperations.map { - // Fill in default values for optional fields - NonNullStyleOperation(it.featureType ?: "all", it.elementType ?: "all", it.stylers ?: emptyArray()) - }) { + operations@ for (operation in styleOperations.map { it.toNonNull() }) { // Reverse direction allows removing hidden layers layers@ for (i in layerArray.length() - 1 downTo 0) { - // Test if layer has required fields (metadata and paint) val layer = layerArray.getJSONObject(i) - if (layer.has("paint") && layer.has("metadata") && layer.getJSONObject("metadata") - .let { it.has(KEY_METADATA_FEATURE_TYPE) && it.has(KEY_METADATA_ELEMENT_TYPE) } - ) { - val layerFeatureType = layer.getJSONObject("metadata").getString(KEY_METADATA_FEATURE_TYPE) - val layerElementType = layer.getJSONObject("metadata").getString(KEY_METADATA_ELEMENT_TYPE) - - if (operation.featureType.startsWith("administrative") - && operation.elementType.startsWith("geometry") - ) { - /* Per docs: - * `administrative` selects all administrative areas. Styling affects only - * the labels of administrative areas, not the geographical borders or fill. - */ - continue@operations - } - - // Layer metadata always has the most concrete category; operation applies to all subcategories as well. - if ((layerFeatureType.startsWith(operation.featureType) || operation.featureType == "all") && - (layerElementType.startsWith(operation.elementType) || operation.elementType == "all") - ) { - // Here, operation should be applied to this layer. + if (layer.layerHasRequiredFields()) { + if (operation.isValid() && layer.matchesOperation(operation)) { Log.v(TAG, "applying ${Gson().toJson(operation)} to $layer") - // Interpretation of visibility "simplified": hide labels, display geometry - if ( - // A styler sets the layer to be invisible - operation.stylers.any { it.visibility == "off" } || - // A styler sets the layer to simplified and we are working with a label - (layerElementType.startsWith("labels") && operation.stylers.any { it.visibility == "simplified" }) - ) { - layerArray.remove(i) + if (layer.layerShouldBeRemoved(operation)) { Log.v(TAG, "removing $layer") - continue@layers - } - - operation.stylers.forEach { styler -> - when (operation.elementType) { - "labels.text.fill" -> styler.applyTextFill(layer.getJSONObject("paint")) - "labels.text.outline" -> styler.applyTextOutline(layer.getJSONObject("paint")) - else -> styler.traverseApply(layer.getJSONObject("paint")) - } + layerArray.remove(i) + } else { + layer.applyOperation(operation) } } } @@ -128,6 +100,66 @@ class Styler( val weight: Int? ) +/** + * Constructs a `NonNullStyleOperation` out of the `StyleOperation` while filling null fields with + * default values. + */ +fun StyleOperation.toNonNull() = + NonNullStyleOperation(featureType ?: SELECTOR_ALL, elementType ?: SELECTOR_ALL, stylers ?: emptyArray()) + +/** + * Returns false iff the operation is invalid. + * + * There is one invalid selector that is tested for – per docs: + * "`administrative` selects all administrative areas. Styling affects only + * the labels of administrative areas, not the geographical borders or fill." + */ +fun NonNullStyleOperation.isValid() = !(featureType.startsWith("administrative") && + elementType.startsWith("geometry")) + +/** + * True iff the layer represented by the JSON object should be modified according to the stylers in the operation. + * + * Layer metadata always has the most concrete category, while operation applies to all subcategories as well. + * Therefore, we test if the operation is a substring of the layer's metadata – i.e. the layer's metadata contains + * (more concretely: starts with) the operation's selector. + */ +fun JSONObject.matchesOperation(operation: NonNullStyleOperation) = + (getJSONObject(KEY_LAYER_METADATA).getString(KEY_METADATA_FEATURE_TYPE).startsWith(operation.featureType) + || operation.featureType == "all") + && (getJSONObject(KEY_LAYER_METADATA).getString(KEY_METADATA_ELEMENT_TYPE).startsWith(operation.elementType) + || operation.elementType == "all") + + +/** + * Layer has fields that allow applying style operations. + */ +fun JSONObject.layerHasRequiredFields() = has(KEY_LAYER_PAINT) && has(KEY_LAYER_METADATA) && + getJSONObject(KEY_LAYER_METADATA).let { it.has(KEY_METADATA_FEATURE_TYPE) && it.has(KEY_METADATA_ELEMENT_TYPE) } + +/** + * True iff the layer represented by the JSON object should be removed according to the provided style operation. + * + * Interpretation of visibility "simplified": hide labels, display geometry. + */ +fun JSONObject.layerShouldBeRemoved(operation: NonNullStyleOperation) = + // A styler sets the layer to be invisible + operation.stylers.any { it.visibility == "off" } || + // A styler sets the layer to simplified and we are working with a label + (getJSONObject("metadata").getString(KEY_METADATA_ELEMENT_TYPE) + .startsWith("labels") && operation.stylers.any { it.visibility == "simplified" }) + +/** + * Applies the provided style operation to the layer represented by the JSON object. + */ +fun JSONObject.applyOperation(operation: NonNullStyleOperation) = operation.stylers.forEach { styler -> + when (operation.elementType) { + SELECTOR_ELEMENT_LABEL_TEXT_FILL -> styler.applyTextFill(getJSONObject(KEY_LAYER_PAINT)) + SELECTOR_ELEMENT_LABEL_TEXT_OUTLINE -> styler.applyTextOutline(getJSONObject(KEY_LAYER_PAINT)) + else -> styler.traverse(getJSONObject(KEY_LAYER_PAINT)) + } +} + /** * Returns true if string is likely to contain a color. */ @@ -283,13 +315,13 @@ fun Styler.applyColorChanges(color: Int): Int { /** * Traverse JSON object and replace any color strings according to styler */ -fun Styler.traverseApply(json: JSONObject) { +fun Styler.traverse(json: JSONObject) { // Traverse layer and replace any color strings json.keys().forEach { key -> json.get(key).let { when (it) { - is JSONObject -> traverseApply(it) - is JSONArray -> traverseApply(it) + is JSONObject -> traverse(it) + is JSONArray -> traverse(it) is String -> if (it.isColor()) { json.put(key, applyColorChanges(it.parseColor()).colorToString()) } @@ -301,12 +333,12 @@ fun Styler.traverseApply(json: JSONObject) { /** * Traverse array and replace any color strings according to styler */ -fun Styler.traverseApply(array: JSONArray) { +fun Styler.traverse(array: JSONArray) { for (i in 0 until array.length()) { array.get(i).let { when (it) { - is JSONObject -> traverseApply(it) - is JSONArray -> traverseApply(it) + is JSONObject -> traverse(it) + is JSONArray -> traverse(it) is String -> if (it.isColor()) { array.put(i, applyColorChanges(it.parseColor()).colorToString()) } @@ -317,16 +349,16 @@ fun Styler.traverseApply(array: JSONArray) { fun Styler.applyTextFill(paint: JSONObject) { if (paint.has("text-color")) when (val textColor = paint.get("text-color")) { - is JSONObject -> traverseApply(textColor) - is JSONArray -> traverseApply(textColor) + is JSONObject -> traverse(textColor) + is JSONArray -> traverse(textColor) is String -> paint.put("text-color", applyColorChanges(textColor.parseColor()).colorToString()) } } fun Styler.applyTextOutline(paint: JSONObject) { if (paint.has("text-halo-color")) when (val textOutline = paint.get("text-halo-color")) { - is JSONObject -> traverseApply(textOutline) - is JSONArray -> traverseApply(textOutline) + is JSONObject -> traverse(textOutline) + is JSONArray -> traverse(textOutline) is String -> paint.put("text-halo-color", applyColorChanges(textOutline.parseColor()).colorToString()) } } -- GitLab From 86bb4be972341ec33401de15816f09621a9119f9 Mon Sep 17 00:00:00 2001 From: Fynn Godau Date: Mon, 13 Mar 2023 11:14:20 +0100 Subject: [PATCH 12/12] Apply review (2) --- .../src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt index a6def5d55..5cd4f8d47 100644 --- a/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt +++ b/play-services-maps-core-mapbox/src/main/kotlin/org/microg/gms/maps/mapbox/Styles.kt @@ -85,9 +85,9 @@ fun MapStyleOptions.apply(style: JSONObject) { } } -class StyleOperation(val featureType: String?, val elementType: String?, val stylers: Array?) +data class StyleOperation(val featureType: String?, val elementType: String?, val stylers: Array?) -class NonNullStyleOperation(val featureType: String, val elementType: String, val stylers: Array) +data class NonNullStyleOperation(val featureType: String, val elementType: String, val stylers: Array) class Styler( val hue: String?, -- GitLab