diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -46,7 +46,7 @@ android:label="@string/app_name" android:networkSecurityConfig="@xml/networks_security_config" android:roundIcon="@mipmap/ic_launcher_round" - android:theme="@style/AppTheme.NoActionBar"> + android:theme="@style/AppThemeDayNight.NoActionBar"> + android:theme="@style/AppThemeDayNight.NoActionBar"> diff --git a/app/src/main/assets/versatiles_eclipse_neutral_to90.json b/app/src/main/assets/versatiles_eclipse_neutral_to90.json new file mode 100644 --- /dev/null +++ b/app/src/main/assets/versatiles_eclipse_neutral_to90.json @@ -0,0 +1,18184 @@ +{ + "version": 8, + "name": "versatiles-eclipse", + "metadata": { + "license": "https://creativecommons.org/publicdomain/zero/1.0/", + "maputnik:renderer": "mlgljs" + }, + "sources": { + "versatiles-shortbread": { + "attribution": "© OpenStreetMap contributors", + "tiles": [ + "https://tiles.versatiles.org/tiles/osm/{z}/{x}/{y}" + ], + "type": "vector", + "scheme": "xyz", + "bounds": [ + -180, + -85.0511287798066, + 180, + 85.0511287798066 + ], + "minzoom": 0, + "maxzoom": 14 + } + }, + "sprite": [ + { + "id": "basics", + "url": "https://tiles.versatiles.org/assets/sprites/basics/sprites" + } + ], + "glyphs": "https://tiles.versatiles.org/assets/glyphs/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "hsl(33,43.2%,4.8%)" + } + }, + { + "id": "water-ocean", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "ocean", + "paint": { + "fill-color": "hsl(205,69%,15%)" + } + }, + { + "id": "land-glacier", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "water_polygons", + "filter": [ + "all", + [ + "==", + "kind", + "glacier" + ] + ], + "paint": { + "fill-color": "hsl(0,0%,0%)" + } + }, + { + "id": "land-commercial", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "commercial", + "retail" + ] + ], + "paint": { + "fill-color": "hsla(324,61%,8%,0.251)", + "fill-opacity": { + "stops": [ + [ + 10, + 0 + ], + [ + 11, + 1 + ] + ] + } + } + }, + { + "id": "land-industrial", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "industrial", + "quarry", + "railway" + ] + ], + "paint": { + "fill-color": "hsla(49,90.0%,11.4%,0.333)", + "fill-opacity": { + "stops": [ + [ + 10, + 0 + ], + [ + 11, + 1 + ] + ] + } + } + }, + { + "id": "land-residential", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "garages", + "residential" + ] + ], + "paint": { + "fill-color": "hsla(33,16.2%,9.5%,0.2)", + "fill-opacity": { + "stops": [ + [ + 10, + 0 + ], + [ + 11, + 1 + ] + ] + } + } + }, + { + "id": "land-agriculture", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "brownfield", + "farmland", + "farmyard", + "greenfield", + "greenhouse_horticulture", + "orchard", + "plant_nursery", + "vineyard" + ] + ], + "paint": { + "fill-color": "hsl(43,45.9%,11.4%)", + "fill-opacity": { + "stops": [ + [ + 10, + 0 + ], + [ + 11, + 1 + ] + ] + } + } + }, + { + "id": "land-waste", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "landfill" + ] + ], + "paint": { + "fill-color": "hsl(50,26.1%,19.0%)", + "fill-opacity": { + "stops": [ + [ + 10, + 0 + ], + [ + 11, + 1 + ] + ] + } + } + }, + { + "id": "land-park", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "park", + "village_green", + "recreation_ground" + ] + ], + "paint": { + "fill-color": "hsl(60,36.9%,23.8%)", + "fill-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "land-garden", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "allotments", + "garden" + ] + ], + "paint": { + "fill-color": "hsl(60,36.9%,23.8%)", + "fill-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "land-burial", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "cemetery", + "grave_yard" + ] + ], + "paint": { + "fill-color": "hsl(54,19.8%,16.1%)", + "fill-opacity": { + "stops": [ + [ + 13, + 0 + ], + [ + 14, + 1 + ] + ] + } + } + }, + { + "id": "land-leisure", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "miniature_golf", + "playground", + "golf_course" + ] + ], + "paint": { + "fill-color": "hsl(84,29%,10%)" + } + }, + { + "id": "land-rock", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "bare_rock", + "scree", + "shingle" + ] + ], + "paint": { + "fill-color": "hsl(192,9%,11%)" + } + }, + { + "id": "land-forest", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "forest" + ] + ], + "paint": { + "fill-color": "hsl(100,43%,53%)", + "fill-opacity": { + "stops": [ + [ + 7, + 0 + ], + [ + 8, + 0.1 + ] + ] + } + } + }, + { + "id": "land-grass", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "grass", + "grassland", + "meadow", + "wet_meadow" + ] + ], + "paint": { + "fill-color": "hsl(90,41%,15%)", + "fill-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "land-vegetation", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "heath", + "scrub" + ] + ], + "paint": { + "fill-color": "hsl(60,36.9%,23.8%)", + "fill-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "land-sand", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "beach", + "sand" + ] + ], + "paint": { + "fill-color": "hsl(60,51.3%,4.8%)" + } + }, + { + "id": "land-wetland", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "land", + "filter": [ + "all", + [ + "in", + "kind", + "bog", + "marsh", + "string_bog", + "swamp" + ] + ], + "paint": { + "fill-color": "hsl(145,28%,14%)" + } + }, + { + "id": "water-river", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "water_lines", + "filter": [ + "all", + [ + "in", + "kind", + "river" + ], + [ + "!=", + "tunnel", + true + ], + [ + "!=", + "bridge", + true + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "hsl(205,69%,15%)", + "line-width": { + "stops": [ + [ + 9, + 0 + ], + [ + 10, + 3 + ], + [ + 15, + 5 + ], + [ + 17, + 9 + ], + [ + 18, + 20 + ], + [ + 20, + 60 + ] + ] + } + } + }, + { + "id": "water-canal", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "water_lines", + "filter": [ + "all", + [ + "in", + "kind", + "canal" + ], + [ + "!=", + "tunnel", + true + ], + [ + "!=", + "bridge", + true + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "hsl(205,69%,15%)", + "line-width": { + "stops": [ + [ + 9, + 0 + ], + [ + 10, + 2 + ], + [ + 15, + 4 + ], + [ + 17, + 8 + ], + [ + 18, + 17 + ], + [ + 20, + 50 + ] + ] + } + } + }, + { + "id": "water-stream", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "water_lines", + "filter": [ + "all", + [ + "in", + "kind", + "stream" + ], + [ + "!=", + "tunnel", + true + ], + [ + "!=", + "bridge", + true + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "hsl(205,69%,15%)", + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 14, + 1 + ], + [ + 15, + 2 + ], + [ + 17, + 6 + ], + [ + 18, + 12 + ], + [ + 20, + 30 + ] + ] + } + } + }, + { + "id": "water-ditch", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "water_lines", + "filter": [ + "all", + [ + "in", + "kind", + "ditch" + ], + [ + "!=", + "tunnel", + true + ], + [ + "!=", + "bridge", + true + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "hsl(205,69%,15%)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 17, + 4 + ], + [ + 18, + 8 + ], + [ + 20, + 20 + ] + ] + } + } + }, + { + "id": "water-area", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "water_polygons", + "filter": [ + "==", + "kind", + "water" + ], + "paint": { + "fill-color": "hsl(205,69%,15%)", + "fill-opacity": { + "stops": [ + [ + 4, + 0 + ], + [ + 6, + 1 + ] + ] + } + } + }, + { + "id": "water-area-river", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "water_polygons", + "filter": [ + "==", + "kind", + "river" + ], + "paint": { + "fill-color": "hsl(205,69%,15%)", + "fill-opacity": { + "stops": [ + [ + 4, + 0 + ], + [ + 6, + 1 + ] + ] + } + } + }, + { + "id": "water-area-small", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "water_polygons", + "filter": [ + "in", + "kind", + "reservoir", + "basin", + "dock" + ], + "paint": { + "fill-color": "hsl(205,69%,15%)", + "fill-opacity": { + "stops": [ + [ + 4, + 0 + ], + [ + 6, + 1 + ] + ] + } + } + }, + { + "id": "water-dam-area", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "dam_polygons", + "filter": [ + "==", + "kind", + "dam" + ], + "paint": { + "fill-color": "hsl(33,43.2%,4.8%)", + "fill-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "water-dam", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "dam_lines", + "filter": [ + "==", + "kind", + "dam" + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "hsl(205,69%,15%)" + } + }, + { + "id": "water-pier-area", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "pier_polygons", + "filter": [ + "in", + "kind", + "pier", + "breakwater", + "groyne" + ], + "paint": { + "fill-color": "hsl(33,43.2%,4.8%)", + "fill-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "water-pier", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "pier_lines", + "filter": [ + "in", + "kind", + "pier", + "breakwater", + "groyne" + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "hsl(33,43.2%,4.8%)" + } + }, + { + "id": "site-dangerarea", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "sites", + "filter": [ + "in", + "kind", + "danger_area" + ], + "paint": { + "fill-color": "hsl(0,100%,50%)", + "fill-outline-color": "hsl(0,100%,50%)", + "fill-opacity": 0.3, + "fill-pattern": "basics:pattern-warning" + } + }, + { + "id": "site-university", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "sites", + "filter": [ + "in", + "kind", + "university" + ], + "paint": { + "fill-color": "hsl(60,90.0%,23.8%)", + "fill-opacity": 0.1 + } + }, + { + "id": "site-college", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "sites", + "filter": [ + "in", + "kind", + "college" + ], + "paint": { + "fill-color": "hsl(60,90.0%,23.8%)", + "fill-opacity": 0.1 + } + }, + { + "id": "site-school", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "sites", + "filter": [ + "in", + "kind", + "school" + ], + "paint": { + "fill-color": "hsl(60,90.0%,23.8%)", + "fill-opacity": 0.1 + } + }, + { + "id": "site-hospital", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "sites", + "filter": [ + "in", + "kind", + "hospital" + ], + "paint": { + "fill-color": "hsl(0,100%,30%)", + "fill-opacity": 0.1 + } + }, + { + "id": "site-prison", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "sites", + "filter": [ + "in", + "kind", + "prison" + ], + "paint": { + "fill-color": "hsl(305,73%,3%)", + "fill-pattern": "basics:pattern-striped", + "fill-opacity": 0.1 + } + }, + { + "id": "site-parking", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "sites", + "filter": [ + "in", + "kind", + "parking" + ], + "paint": { + "fill-color": "hsl(24,9.9%,8.5%)" + } + }, + { + "id": "site-bicycleparking", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "sites", + "filter": [ + "in", + "kind", + "bicycle_parking" + ], + "paint": { + "fill-color": "hsl(24,9.9%,8.5%)" + } + }, + { + "id": "site-construction", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "sites", + "filter": [ + "in", + "kind", + "construction" + ], + "paint": { + "fill-color": "hsl(0,0%,34%)", + "fill-pattern": "basics:pattern-hatched_thin", + "fill-opacity": 0.1 + } + }, + { + "id": "airport-area", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "street_polygons", + "filter": [ + "in", + "kind", + "runway", + "taxiway" + ], + "paint": { + "fill-color": "hsl(0,0%,0%)", + "fill-opacity": 0.5 + } + }, + { + "id": "airport-taxiway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "==", + "kind", + "taxiway" + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "hsl(36,5%,20%)", + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 14, + 2 + ], + [ + 15, + 10 + ], + [ + 16, + 14 + ], + [ + 18, + 20 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "airport-runway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "==", + "kind", + "runway" + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "hsl(36,5%,20%)", + "line-width": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 6 + ], + [ + 13, + 9 + ], + [ + 14, + 16 + ], + [ + 15, + 24 + ], + [ + 16, + 40 + ], + [ + 17, + 100 + ], + [ + 18, + 160 + ], + [ + 20, + 300 + ] + ] + } + } + }, + { + "id": "airport-taxiway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "==", + "kind", + "taxiway" + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 14, + 1 + ], + [ + 15, + 8 + ], + [ + 16, + 12 + ], + [ + 18, + 18 + ], + [ + 20, + 36 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 13, + 0 + ], + [ + 14, + 1 + ] + ] + } + } + }, + { + "id": "airport-runway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "==", + "kind", + "runway" + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 5 + ], + [ + 13, + 8 + ], + [ + 14, + 14 + ], + [ + 15, + 22 + ], + [ + 16, + 38 + ], + [ + 17, + 98 + ], + [ + 18, + 158 + ], + [ + 20, + 298 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "building:outline", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "buildings", + "paint": { + "fill-color": "hsl(30,9.9%,13.3%)", + "fill-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "building", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "buildings", + "paint": { + "fill-color": "hsl(30,34.2%,7.6%)", + "fill-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + }, + "fill-translate": [ + -2, + -2 + ] + } + }, + { + "id": "tunnel-street-pedestrian-zone", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "street_polygons", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "==", + "kind", + "pedestrian" + ] + ], + "paint": { + "fill-color": "rgb(8,8,8)", + "fill-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-way-footway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "footway" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "hsl(288,13%,14%)" + } + }, + { + "id": "tunnel-way-steps:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "steps" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "hsl(288,13%,14%)" + } + }, + { + "id": "tunnel-way-path:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "path" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "hsl(288,13%,14%)" + } + }, + { + "id": "tunnel-way-cycleway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "cycleway" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "hsl(203,11%,13%)" + } + }, + { + "id": "tunnel-street-track:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "track" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(33,33,33)", + "line-width": { + "stops": [ + [ + 14, + 2 + ], + [ + 16, + 4 + ], + [ + 18, + 18 + ], + [ + 19, + 48 + ], + [ + 20, + 96 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-pedestrian:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "pedestrian" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(33,33,33)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-service:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(37,36,34)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 12 + ], + [ + 19, + 32 + ], + [ + 20, + 48 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-livingstreet:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "living_street" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(33,33,33)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-residential:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "residential" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(33,33,33)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-unclassified:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "unclassified" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(33,33,33)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-busway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "busway" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(37,36,34)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 12 + ], + [ + 19, + 32 + ], + [ + 20, + 48 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-busguideway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "bus_guideway" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(37,36,34)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 12 + ], + [ + 19, + 32 + ], + [ + 20, + 48 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-tertiary-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(33,33,33)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-secondary-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(117,68,25)", + "line-dasharray": [ + 1, + 0.3 + ], + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "tunnel-street-primary-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(117,68,25)", + "line-dasharray": [ + 1, + 0.3 + ], + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "tunnel-street-trunk-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(117,68,25)", + "line-dasharray": [ + 1, + 0.3 + ], + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "tunnel-street-motorway-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(117,68,25)", + "line-dasharray": [ + 1, + 0.3 + ], + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "tunnel-street-tertiary:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(33,33,33)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-secondary:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(117,68,25)", + "line-dasharray": [ + 1, + 0.3 + ], + "line-width": { + "stops": [ + [ + 11, + 2 + ], + [ + 14, + 5 + ], + [ + 16, + 8 + ], + [ + 18, + 30 + ], + [ + 19, + 68 + ], + [ + 20, + 138 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-primary:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(117,68,25)", + "line-dasharray": [ + 1, + 0.3 + ], + "line-width": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 1 + ], + [ + 10, + 4 + ], + [ + 14, + 6 + ], + [ + 16, + 12 + ], + [ + 18, + 36 + ], + [ + 19, + 74 + ], + [ + 20, + 144 + ] + ] + } + } + }, + { + "id": "tunnel-street-trunk:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(117,68,25)", + "line-dasharray": [ + 1, + 0.3 + ], + "line-width": { + "stops": [ + [ + 6, + 0 + ], + [ + 7, + 2 + ], + [ + 10, + 4 + ], + [ + 14, + 6 + ], + [ + 16, + 12 + ], + [ + 18, + 36 + ], + [ + 19, + 74 + ], + [ + 20, + 144 + ] + ] + } + } + }, + { + "id": "tunnel-street-motorway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(117,68,25)", + "line-dasharray": [ + 1, + 0.3 + ], + "line-width": { + "stops": [ + [ + 5, + 0 + ], + [ + 6, + 2 + ], + [ + 10, + 5 + ], + [ + 14, + 5 + ], + [ + 16, + 14 + ], + [ + 18, + 38 + ], + [ + 19, + 84 + ], + [ + 20, + 168 + ] + ] + } + } + }, + { + "id": "tunnel-way-footway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "footway" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "hsl(288,33%,6%)", + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "tunnel-way-steps", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "steps" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "hsl(288,33%,6%)", + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "tunnel-way-path", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "path" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "hsl(288,33%,6%)", + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "tunnel-way-cycleway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "cycleway" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "hsl(203,30%,5%)", + "line-dasharray": [ + 1, + 0.2 + ] + } + }, + { + "id": "tunnel-street-track", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "track" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 16 + ], + [ + 19, + 44 + ], + [ + 20, + 88 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-pedestrian", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "pedestrian" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-service", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 2 + ], + [ + 18, + 10 + ], + [ + 19, + 28 + ], + [ + 20, + 40 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-livingstreet", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "living_street" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-residential", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "residential" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-unclassified", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "unclassified" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-busway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "busway" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 2 + ], + [ + 18, + 10 + ], + [ + 19, + 28 + ], + [ + 20, + 40 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-busguideway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "bus_guideway" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 2 + ], + [ + 18, + 10 + ], + [ + 19, + 28 + ], + [ + 20, + 40 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-track-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "track" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)" + } + }, + { + "id": "tunnel-street-pedestrian-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "pedestrian" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-service-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "service" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)" + } + }, + { + "id": "tunnel-street-livingstreet-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "living_street" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-residential-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "residential" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-unclassified-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "unclassified" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-tertiary-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-secondary-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(69,56,4)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "tunnel-street-primary-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(69,56,4)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "tunnel-street-trunk-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(69,56,4)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "tunnel-street-motorway-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(97,57,5)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "tunnel-street-tertiary", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-secondary", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(69,56,4)", + "line-width": { + "stops": [ + [ + 11, + 1 + ], + [ + 14, + 4 + ], + [ + 16, + 6 + ], + [ + 18, + 28 + ], + [ + 19, + 64 + ], + [ + 20, + 130 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-primary", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(69,56,4)", + "line-width": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 2 + ], + [ + 10, + 3 + ], + [ + 14, + 5 + ], + [ + 16, + 10 + ], + [ + 18, + 34 + ], + [ + 19, + 70 + ], + [ + 20, + 140 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-trunk", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(69,56,4)", + "line-width": { + "stops": [ + [ + 6, + 0 + ], + [ + 7, + 1 + ], + [ + 10, + 3 + ], + [ + 14, + 5 + ], + [ + 16, + 10 + ], + [ + 18, + 34 + ], + [ + 19, + 70 + ], + [ + 20, + 140 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 6, + 0 + ], + [ + 7, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-street-motorway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "tunnel", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(97,57,5)", + "line-width": { + "stops": [ + [ + 5, + 0 + ], + [ + 6, + 1 + ], + [ + 10, + 4 + ], + [ + 14, + 4 + ], + [ + 16, + 12 + ], + [ + 18, + 36 + ], + [ + 19, + 80 + ], + [ + 20, + 160 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 5, + 0 + ], + [ + 6, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-transport-tram:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "tram" + ], + [ + "!has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "tunnel-transport-narrowgauge:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "narrow_gauge" + ], + [ + "!has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "tunnel-transport-subway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "in", + "kind", + "subway" + ], + [ + "!has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(207,23%,28%)", + "line-width": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ], + [ + 15, + 3 + ], + [ + 16, + 3 + ], + [ + 18, + 6 + ], + [ + 19, + 8 + ], + [ + 20, + 10 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 0.5 + ] + ] + } + } + }, + { + "id": "tunnel-transport-lightrail:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 8, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "!has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 8, + 1 + ], + [ + 13, + 1 + ], + [ + 15, + 1 + ], + [ + 20, + 14 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 0.5 + ] + ] + } + } + }, + { + "id": "tunnel-transport-lightrail-service:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 16, + 1 + ], + [ + 20, + 14 + ] + ] + } + } + }, + { + "id": "tunnel-transport-rail:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 8, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "!has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 8, + 1 + ], + [ + 13, + 1 + ], + [ + 15, + 1 + ], + [ + 20, + 14 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 0.3 + ] + ] + } + } + }, + { + "id": "tunnel-transport-rail-service:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 16, + 1 + ], + [ + 20, + 14 + ] + ] + } + } + }, + { + "id": "tunnel-transport-monorail:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "monorail" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "tunnel-transport-funicular:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "funicular" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "tunnel-transport-tram", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "tram" + ], + [ + "!has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "tunnel-transport-narrowgauge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "narrow_gauge" + ], + [ + "!has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "tunnel-transport-subway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "in", + "kind", + "subway" + ], + [ + "!has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "rgb(42,55,67)", + "line-width": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ], + [ + 15, + 2 + ], + [ + 16, + 2 + ], + [ + 18, + 5 + ], + [ + 19, + 6 + ], + [ + 20, + 8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ], + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-transport-lightrail", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "!has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ], + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-transport-lightrail-service", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "tunnel-transport-rail", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "!has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ], + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 0.3 + ] + ] + } + } + }, + { + "id": "tunnel-transport-rail-service", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "has", + "service" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "tunnel-transport-monorail", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "monorail" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "tunnel-transport-funicular", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "funicular" + ], + [ + "==", + "tunnel", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "bridge", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "bridges", + "paint": { + "fill-color": "rgb(20,16,11)", + "fill-antialias": true, + "fill-opacity": 0.8 + } + }, + { + "id": "street-pedestrian-zone", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "street_polygons", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "==", + "kind", + "pedestrian" + ] + ], + "paint": { + "fill-color": "rgba(16,0,20,0.25)", + "fill-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ], + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "way-footway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "footway" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "rgb(40,26,44)" + } + }, + { + "id": "way-steps:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "steps" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "rgb(40,26,44)" + } + }, + { + "id": "way-path:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "path" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "rgb(40,26,44)" + } + }, + { + "id": "way-cycleway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "cycleway" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "rgb(26,34,40)" + } + }, + { + "id": "street-track:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "track" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(36,5%,20%)", + "line-width": { + "stops": [ + [ + 14, + 2 + ], + [ + 16, + 4 + ], + [ + 18, + 18 + ], + [ + 19, + 48 + ], + [ + 20, + 96 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "street-pedestrian:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "pedestrian" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(36,5%,20%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-service:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(37,36,34)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 12 + ], + [ + 19, + 32 + ], + [ + 20, + 48 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "street-livingstreet:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "living_street" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(36,5%,20%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-residential:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "residential" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(36,5%,20%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-unclassified:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "unclassified" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(36,5%,20%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-busway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "busway" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(37,36,34)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 12 + ], + [ + 19, + 32 + ], + [ + 20, + 48 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "street-busguideway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "bus_guideway" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(37,36,34)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 12 + ], + [ + 19, + 32 + ], + [ + 20, + 48 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "street-tertiary-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(36,5%,20%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-secondary-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "street-primary-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "street-trunk-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "street-motorway-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 12, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "street-tertiary:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(36,5%,20%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-secondary:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 11, + 2 + ], + [ + 14, + 5 + ], + [ + 16, + 8 + ], + [ + 18, + 30 + ], + [ + 19, + 68 + ], + [ + 20, + 138 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "street-primary:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 1 + ], + [ + 10, + 4 + ], + [ + 14, + 6 + ], + [ + 16, + 12 + ], + [ + 18, + 36 + ], + [ + 19, + 74 + ], + [ + 20, + 144 + ] + ] + } + } + }, + { + "id": "street-trunk:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 6, + 0 + ], + [ + 7, + 2 + ], + [ + 10, + 4 + ], + [ + 14, + 6 + ], + [ + 16, + 12 + ], + [ + 18, + 36 + ], + [ + 19, + 74 + ], + [ + 20, + 144 + ] + ] + } + } + }, + { + "id": "street-motorway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 5, + 0 + ], + [ + 6, + 2 + ], + [ + 10, + 5 + ], + [ + 14, + 5 + ], + [ + 16, + 14 + ], + [ + 18, + 38 + ], + [ + 19, + 84 + ], + [ + 20, + 168 + ] + ] + } + } + }, + { + "id": "way-footway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "footway" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "rgb(16,0,20)" + } + }, + { + "id": "way-steps", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "steps" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "rgb(16,0,20)" + } + }, + { + "id": "way-path", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "path" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "rgb(16,0,20)" + } + }, + { + "id": "way-cycleway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "cycleway" + ] + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "hsl(203,100%,3%)" + } + }, + { + "id": "street-track", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "track" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 16 + ], + [ + 19, + 44 + ], + [ + 20, + 88 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "street-pedestrian", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "pedestrian" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(288,100%,4%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 0 + ], + [ + 14, + 1 + ] + ] + } + } + }, + { + "id": "street-service", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 2 + ], + [ + 18, + 10 + ], + [ + 19, + 28 + ], + [ + 20, + 40 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "street-livingstreet", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "living_street" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-residential", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "residential" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-unclassified", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "unclassified" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-busway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "busway" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 2 + ], + [ + 18, + 10 + ], + [ + 19, + 28 + ], + [ + 20, + 40 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "street-busguideway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "bus_guideway" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 2 + ], + [ + 18, + 10 + ], + [ + 19, + 28 + ], + [ + 20, + 40 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "street-track-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "track" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(0,0%,0%)" + } + }, + { + "id": "street-pedestrian-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "pedestrian" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-service-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "service" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(0,0%,0%)" + } + }, + { + "id": "street-livingstreet-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "living_street" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-residential-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "residential" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-unclassified-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "unclassified" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-tertiary-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-secondary-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "street-primary-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "street-trunk-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "street-motorway-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 12, + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(34,90.0%,21.8%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "street-tertiary", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "street-secondary", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 11, + 1 + ], + [ + 14, + 4 + ], + [ + 16, + 6 + ], + [ + 18, + 28 + ], + [ + 19, + 64 + ], + [ + 20, + 130 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "street-primary", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 2 + ], + [ + 10, + 3 + ], + [ + 14, + 5 + ], + [ + 16, + 10 + ], + [ + 18, + 34 + ], + [ + 19, + 70 + ], + [ + 20, + 140 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 1 + ] + ] + } + } + }, + { + "id": "street-trunk", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 6, + 0 + ], + [ + 7, + 1 + ], + [ + 10, + 3 + ], + [ + 14, + 5 + ], + [ + 16, + 10 + ], + [ + 18, + 34 + ], + [ + 19, + 70 + ], + [ + 20, + 140 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 6, + 0 + ], + [ + 7, + 1 + ] + ] + } + } + }, + { + "id": "street-motorway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(34,90.0%,21.8%)", + "line-width": { + "stops": [ + [ + 5, + 0 + ], + [ + 6, + 1 + ], + [ + 10, + 4 + ], + [ + 14, + 4 + ], + [ + 16, + 12 + ], + [ + 18, + 36 + ], + [ + 19, + 80 + ], + [ + 20, + 160 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 5, + 0 + ], + [ + 6, + 1 + ] + ] + } + } + }, + { + "id": "transport-tram:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "tram" + ], + [ + "!has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "transport-narrowgauge:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "narrow_gauge" + ], + [ + "!has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "transport-subway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "in", + "kind", + "subway" + ], + [ + "!has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(207,23%,28%)", + "line-width": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ], + [ + 15, + 3 + ], + [ + 16, + 3 + ], + [ + 18, + 6 + ], + [ + 19, + 8 + ], + [ + 20, + 10 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "transport-lightrail:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 8, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "!has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 8, + 1 + ], + [ + 13, + 1 + ], + [ + 15, + 1 + ], + [ + 20, + 14 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "transport-lightrail-service:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 16, + 1 + ], + [ + 20, + 14 + ] + ] + } + } + }, + { + "id": "transport-rail:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 8, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "!has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 8, + 1 + ], + [ + 13, + 1 + ], + [ + 15, + 1 + ], + [ + 20, + 14 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 1 + ] + ] + } + } + }, + { + "id": "transport-rail-service:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 16, + 1 + ], + [ + 20, + 14 + ] + ] + } + } + }, + { + "id": "transport-monorail:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "monorail" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "transport-funicular:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "funicular" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "transport-tram", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "tram" + ], + [ + "!has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "transport-narrowgauge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "narrow_gauge" + ], + [ + "!has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "transport-subway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "in", + "kind", + "subway" + ], + [ + "!has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "rgb(42,55,67)", + "line-width": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ], + [ + 15, + 2 + ], + [ + 16, + 2 + ], + [ + 18, + 5 + ], + [ + 19, + 6 + ], + [ + 20, + 8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ], + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "transport-lightrail", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "!has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ], + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "transport-lightrail-service", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "transport-rail", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "!has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ], + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "transport-rail-service", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "has", + "service" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "transport-monorail", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "monorail" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "transport-funicular", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "funicular" + ], + [ + "!=", + "bridge", + true + ], + [ + "!=", + "tunnel", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "transport-ferry", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "ferries", + "minzoom": 10, + "paint": { + "line-color": "rgb(36,64,84)", + "line-width": { + "stops": [ + [ + 10, + 1 + ], + [ + 13, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 4 + ], + [ + 17, + 6 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 10, + 0 + ], + [ + 11, + 1 + ] + ] + }, + "line-dasharray": [ + 1, + 1 + ] + } + }, + { + "id": "bridge-way-footway:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "footway" + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5, + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 7 + ], + [ + 18, + 10 + ], + [ + 19, + 17 + ], + [ + 20, + 31 + ] + ] + } + } + }, + { + "id": "bridge-way-steps:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "steps" + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5, + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 7 + ], + [ + 18, + 10 + ], + [ + 19, + 17 + ], + [ + 20, + 31 + ] + ] + } + } + }, + { + "id": "bridge-way-path:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "path" + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5, + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 7 + ], + [ + 18, + 10 + ], + [ + 19, + 17 + ], + [ + 20, + 31 + ] + ] + } + } + }, + { + "id": "bridge-way-cycleway:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "cycleway" + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5, + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 7 + ], + [ + 18, + 10 + ], + [ + 19, + 17 + ], + [ + 20, + 31 + ] + ] + } + } + }, + { + "id": "bridge-street-track:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "track" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 25 + ], + [ + 19, + 67 + ], + [ + 20, + 134 + ] + ] + } + } + }, + { + "id": "bridge-street-pedestrian:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "pedestrian" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 3 + ], + [ + 14, + 4 + ], + [ + 16, + 8 + ], + [ + 18, + 36 + ], + [ + 19, + 90 + ], + [ + 20, + 179 + ] + ] + } + } + }, + { + "id": "bridge-street-service:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + }, + "line-width": { + "stops": [ + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 25 + ], + [ + 19, + 67 + ], + [ + 20, + 134 + ] + ] + } + } + }, + { + "id": "bridge-street-livingstreet:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "living_street" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 3 + ], + [ + 14, + 4 + ], + [ + 16, + 8 + ], + [ + 18, + 36 + ], + [ + 19, + 90 + ], + [ + 20, + 179 + ] + ] + } + } + }, + { + "id": "bridge-street-residential:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "residential" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 3 + ], + [ + 14, + 4 + ], + [ + 16, + 8 + ], + [ + 18, + 36 + ], + [ + 19, + 90 + ], + [ + 20, + 179 + ] + ] + } + } + }, + { + "id": "bridge-street-unclassified:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "unclassified" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 3 + ], + [ + 14, + 4 + ], + [ + 16, + 8 + ], + [ + 18, + 36 + ], + [ + 19, + 90 + ], + [ + 20, + 179 + ] + ] + } + } + }, + { + "id": "bridge-street-busway:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "busway" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5 + } + }, + { + "id": "bridge-street-busguideway:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "bus_guideway" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5 + } + }, + { + "id": "bridge-street-tertiary-link:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 3 + ], + [ + 14, + 4 + ], + [ + 16, + 8 + ], + [ + 18, + 36 + ], + [ + 19, + 90 + ], + [ + 20, + 179 + ] + ] + } + } + }, + { + "id": "bridge-street-secondary-link:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5, + "line-width": { + "stops": [ + [ + 12, + 3 + ], + [ + 14, + 4 + ], + [ + 16, + 10 + ], + [ + 18, + 20 + ], + [ + 20, + 56 + ] + ] + } + } + }, + { + "id": "bridge-street-primary-link:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5, + "line-width": { + "stops": [ + [ + 12, + 3 + ], + [ + 14, + 4 + ], + [ + 16, + 10 + ], + [ + 18, + 20 + ], + [ + 20, + 56 + ] + ] + } + } + }, + { + "id": "bridge-street-trunk-link:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5, + "line-width": { + "stops": [ + [ + 12, + 3 + ], + [ + 14, + 4 + ], + [ + 16, + 10 + ], + [ + 18, + 20 + ], + [ + 20, + 56 + ] + ] + } + } + }, + { + "id": "bridge-street-motorway-link:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5, + "line-width": { + "stops": [ + [ + 12, + 3 + ], + [ + 14, + 4 + ], + [ + 16, + 10 + ], + [ + 18, + 20 + ], + [ + 20, + 56 + ] + ] + } + } + }, + { + "id": "bridge-street-tertiary:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + }, + "line-width": { + "stops": [ + [ + 12, + 3 + ], + [ + 14, + 4 + ], + [ + 16, + 8 + ], + [ + 18, + 36 + ], + [ + 19, + 90 + ], + [ + 20, + 179 + ] + ] + } + } + }, + { + "id": "bridge-street-secondary:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + }, + "line-width": { + "stops": [ + [ + 11, + 3 + ], + [ + 14, + 7 + ], + [ + 16, + 11 + ], + [ + 18, + 42 + ], + [ + 19, + 95 + ], + [ + 20, + 193 + ] + ] + } + } + }, + { + "id": "bridge-street-primary:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5, + "line-width": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 1 + ], + [ + 10, + 6 + ], + [ + 14, + 8 + ], + [ + 16, + 17 + ], + [ + 18, + 50 + ], + [ + 19, + 104 + ], + [ + 20, + 202 + ] + ] + } + } + }, + { + "id": "bridge-street-trunk:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5, + "line-width": { + "stops": [ + [ + 7, + 0 + ], + [ + 8, + 3 + ], + [ + 10, + 6 + ], + [ + 14, + 8 + ], + [ + 16, + 17 + ], + [ + 18, + 50 + ], + [ + 19, + 104 + ], + [ + 20, + 202 + ] + ] + } + } + }, + { + "id": "bridge-street-motorway:bridge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(20,16,11)", + "line-opacity": 0.5, + "line-width": { + "stops": [ + [ + 5, + 0 + ], + [ + 6, + 3 + ], + [ + 10, + 7 + ], + [ + 14, + 7 + ], + [ + 16, + 20 + ], + [ + 18, + 53 + ], + [ + 19, + 118 + ], + [ + 20, + 235 + ] + ] + } + } + }, + { + "id": "bridge-street-pedestrian-zone", + "type": "fill", + "source": "versatiles-shortbread", + "source-layer": "street_polygons", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "==", + "kind", + "pedestrian" + ] + ], + "paint": { + "fill-color": "hsl(0,0%,0%)", + "fill-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-way-footway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "footway" + ] + ], + "layout": { + "line-cap": "butt" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "rgb(40,26,44)" + } + }, + { + "id": "bridge-way-steps:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "steps" + ] + ], + "layout": { + "line-cap": "butt" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "rgb(40,26,44)" + } + }, + { + "id": "bridge-way-path:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "path" + ] + ], + "layout": { + "line-cap": "butt" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "rgb(40,26,44)" + } + }, + { + "id": "bridge-way-cycleway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "cycleway" + ] + ], + "layout": { + "line-cap": "butt" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 19, + 12 + ], + [ + 20, + 22 + ] + ] + }, + "line-color": "rgb(26,34,40)" + } + }, + { + "id": "bridge-street-track:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "track" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(38,38,38)", + "line-width": { + "stops": [ + [ + 14, + 2 + ], + [ + 16, + 4 + ], + [ + 18, + 18 + ], + [ + 19, + 48 + ], + [ + 20, + 96 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-pedestrian:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "pedestrian" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(38,38,38)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-service:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(37,36,34)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 12 + ], + [ + 19, + 32 + ], + [ + 20, + 48 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-livingstreet:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "living_street" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(38,38,38)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-residential:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "residential" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(38,38,38)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-unclassified:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "unclassified" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(38,38,38)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-busway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "busway" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(37,36,34)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 12 + ], + [ + 19, + 32 + ], + [ + 20, + 48 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-busguideway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "bus_guideway" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(37,36,34)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 12 + ], + [ + 19, + 32 + ], + [ + 20, + 48 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-tertiary-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(38,38,38)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-secondary-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "bridge-street-primary-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "bridge-street-trunk-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "bridge-street-motorway-link:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 7 + ], + [ + 18, + 14 + ], + [ + 20, + 40 + ] + ] + } + } + }, + { + "id": "bridge-street-tertiary:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(38,38,38)", + "line-width": { + "stops": [ + [ + 12, + 2 + ], + [ + 14, + 3 + ], + [ + 16, + 6 + ], + [ + 18, + 26 + ], + [ + 19, + 64 + ], + [ + 20, + 128 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-secondary:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 11, + 2 + ], + [ + 14, + 5 + ], + [ + 16, + 8 + ], + [ + 18, + 30 + ], + [ + 19, + 68 + ], + [ + 20, + 138 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-primary:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 1 + ], + [ + 10, + 4 + ], + [ + 14, + 6 + ], + [ + 16, + 12 + ], + [ + 18, + 36 + ], + [ + 19, + 74 + ], + [ + 20, + 144 + ] + ] + } + } + }, + { + "id": "bridge-street-trunk:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 6, + 0 + ], + [ + 7, + 2 + ], + [ + 10, + 4 + ], + [ + 14, + 6 + ], + [ + 16, + 12 + ], + [ + 18, + 36 + ], + [ + 19, + 74 + ], + [ + 20, + 144 + ] + ] + } + } + }, + { + "id": "bridge-street-motorway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(28,64.8%,29.4%)", + "line-width": { + "stops": [ + [ + 5, + 0 + ], + [ + 6, + 2 + ], + [ + 10, + 5 + ], + [ + 14, + 5 + ], + [ + 16, + 14 + ], + [ + 18, + 38 + ], + [ + 19, + 84 + ], + [ + 20, + 168 + ] + ] + } + } + }, + { + "id": "bridge-way-footway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "footway" + ] + ], + "layout": { + "line-cap": "butt" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "rgb(16,0,20)" + } + }, + { + "id": "bridge-way-steps", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "steps" + ] + ], + "layout": { + "line-cap": "butt" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "rgb(16,0,20)" + } + }, + { + "id": "bridge-way-path", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "path" + ] + ], + "layout": { + "line-cap": "butt" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "rgb(16,0,20)" + } + }, + { + "id": "bridge-way-cycleway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "cycleway" + ] + ], + "layout": { + "line-cap": "butt" + }, + "paint": { + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 4 + ], + [ + 18, + 6 + ], + [ + 19, + 10 + ], + [ + 20, + 20 + ] + ] + }, + "line-color": "hsl(203,100%,3%)" + } + }, + { + "id": "bridge-street-track", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "track" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 3 + ], + [ + 18, + 16 + ], + [ + 19, + 44 + ], + [ + 20, + 88 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-pedestrian", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "pedestrian" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-service", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 2 + ], + [ + 18, + 10 + ], + [ + 19, + 28 + ], + [ + 20, + 40 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-livingstreet", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "living_street" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-residential", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "residential" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-unclassified", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "unclassified" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-busway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "busway" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 2 + ], + [ + 18, + 10 + ], + [ + 19, + 28 + ], + [ + 20, + 40 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-busguideway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "bus_guideway" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "rgb(8,8,8)", + "line-width": { + "stops": [ + [ + 14, + 1 + ], + [ + 16, + 2 + ], + [ + 18, + 10 + ], + [ + 19, + 28 + ], + [ + 20, + 40 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-track-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "track" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(0,0%,0%)" + } + }, + { + "id": "bridge-street-pedestrian-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "pedestrian" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-service-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "service" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(0,0%,0%)" + } + }, + { + "id": "bridge-street-livingstreet-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "living_street" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-residential-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "residential" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-unclassified-bicycle", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "kind", + "unclassified" + ], + [ + "==", + "bicycle", + "designated" + ], + [ + "==", + "bridge", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "round" + }, + "paint": { + "line-color": "hsl(203,100%,3%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-tertiary-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-secondary-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "bridge-street-primary-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "bridge-street-trunk-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "bridge-street-motorway-link", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "==", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(34,90.0%,21.8%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 12 + ], + [ + 20, + 38 + ] + ] + } + } + }, + { + "id": "bridge-street-tertiary", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "tertiary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(0,0%,0%)", + "line-width": { + "stops": [ + [ + 12, + 1 + ], + [ + 14, + 2 + ], + [ + 16, + 5 + ], + [ + 18, + 24 + ], + [ + 19, + 60 + ], + [ + 20, + 120 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 13, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-secondary", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "secondary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 11, + 1 + ], + [ + 14, + 4 + ], + [ + 16, + 6 + ], + [ + 18, + 28 + ], + [ + 19, + 64 + ], + [ + 20, + 130 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-primary", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "primary" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 2 + ], + [ + 10, + 3 + ], + [ + 14, + 5 + ], + [ + 16, + 10 + ], + [ + 18, + 34 + ], + [ + 19, + 70 + ], + [ + 20, + 140 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-trunk", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "trunk" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(48,90.0%,16.1%)", + "line-width": { + "stops": [ + [ + 6, + 0 + ], + [ + 7, + 1 + ], + [ + 10, + 3 + ], + [ + 14, + 5 + ], + [ + 16, + 10 + ], + [ + 18, + 34 + ], + [ + 19, + 70 + ], + [ + 20, + 140 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 6, + 0 + ], + [ + 7, + 1 + ] + ] + } + } + }, + { + "id": "bridge-street-motorway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "==", + "bridge", + true + ], + [ + "in", + "kind", + "motorway" + ], + [ + "!=", + "link", + true + ] + ], + "layout": { + "line-join": "round", + "line-cap": "butt" + }, + "paint": { + "line-color": "hsl(34,90.0%,21.8%)", + "line-width": { + "stops": [ + [ + 5, + 0 + ], + [ + 6, + 1 + ], + [ + 10, + 4 + ], + [ + 14, + 4 + ], + [ + 16, + 12 + ], + [ + 18, + 36 + ], + [ + 19, + 80 + ], + [ + 20, + 160 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 5, + 0 + ], + [ + 6, + 1 + ] + ] + } + } + }, + { + "id": "bridge-transport-tram:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "tram" + ], + [ + "!has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "bridge-transport-narrowgauge:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "narrow_gauge" + ], + [ + "!has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "bridge-transport-subway:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "in", + "kind", + "subway" + ], + [ + "!has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "hsl(207,23%,28%)", + "line-width": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ], + [ + 15, + 3 + ], + [ + 16, + 3 + ], + [ + 18, + 6 + ], + [ + 19, + 8 + ], + [ + 20, + 10 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "bridge-transport-lightrail:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 8, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "!has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 8, + 1 + ], + [ + 13, + 1 + ], + [ + 15, + 1 + ], + [ + 20, + 14 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "bridge-transport-lightrail-service:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 16, + 1 + ], + [ + 20, + 14 + ] + ] + } + } + }, + { + "id": "bridge-transport-rail:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 8, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "!has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 8, + 1 + ], + [ + 13, + 1 + ], + [ + 15, + 1 + ], + [ + 20, + 14 + ] + ] + }, + "line-opacity": { + "stops": [ + [ + 8, + 0 + ], + [ + 9, + 1 + ] + ] + } + } + }, + { + "id": "bridge-transport-rail-service:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 16, + 1 + ], + [ + 20, + 14 + ] + ] + } + } + }, + { + "id": "bridge-transport-monorail:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "monorail" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "bridge-transport-funicular:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "funicular" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "hsl(208,14%,27%)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 5 + ], + [ + 18, + 7 + ], + [ + 20, + 20 + ] + ] + }, + "line-dasharray": [ + 0.1, + 0.5 + ] + } + }, + { + "id": "bridge-transport-tram", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "tram" + ], + [ + "!has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "bridge-transport-narrowgauge", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "narrow_gauge" + ], + [ + "!has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "bridge-transport-subway", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "filter": [ + "all", + [ + "in", + "kind", + "subway" + ], + [ + "!has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "rgb(42,55,67)", + "line-width": { + "stops": [ + [ + 11, + 0 + ], + [ + 12, + 1 + ], + [ + 15, + 2 + ], + [ + 16, + 2 + ], + [ + 18, + 5 + ], + [ + 19, + 6 + ], + [ + 20, + 8 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ], + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "bridge-transport-lightrail", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "!has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ], + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "bridge-transport-lightrail-service", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "light_rail" + ], + [ + "has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "bridge-transport-rail", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "!has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ], + "line-opacity": { + "stops": [ + [ + 14, + 0 + ], + [ + 15, + 1 + ] + ] + } + } + }, + { + "id": "bridge-transport-rail-service", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 15, + "filter": [ + "all", + [ + "in", + "kind", + "rail" + ], + [ + "has", + "service" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-color": "rgb(44,52,59)", + "line-width": { + "stops": [ + [ + 15, + 0 + ], + [ + 16, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "bridge-transport-monorail", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "monorail" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "bridge-transport-funicular", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "funicular" + ], + [ + "==", + "bridge", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ], + [ + 17, + 2 + ], + [ + 18, + 3 + ], + [ + 20, + 5 + ] + ] + }, + "line-color": "hsl(208,14%,27%)" + } + }, + { + "id": "poi-amenity", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "pois", + "minzoom": 16, + "filter": [ + "to-boolean", + [ + "get", + "amenity" + ] + ], + "layout": { + "icon-size": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 19, + 0.5 + ], + [ + 20, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-optional": true, + "text-font": [ + "noto_sans_regular" + ], + "icon-image": [ + "match", + [ + "get", + "amenity" + ], + "arts_centre", + "basics:icon-art_gallery", + "atm", + "basics:icon-atm", + "bank", + "basics:icon-bank", + "bar", + "basics:icon-bar", + "bench", + "basics:icon-bench", + "bicycle_rental", + "basics:icon-bicycle_share", + "biergarten", + "basics:icon-beergarden", + "cafe", + "basics:icon-cafe", + "car_rental", + "basics:icon-car_rental", + "car_sharing", + "basics:icon-car_rental", + "car_wash", + "basics:icon-car_wash", + "cinema", + "basics:icon-cinema", + "college", + "basics:icon-college", + "community_centre", + "basics:icon-community", + "dentist", + "basics:icon-dentist", + "doctors", + "basics:icon-doctor", + "dog_park", + "basics:icon-dog_park", + "drinking_water", + "basics:icon-drinking_water", + "embassy", + "basics:icon-embassy", + "fast_food", + "basics:icon-fast_food", + "fire_station", + "basics:icon-fire_station", + "fountain", + "basics:icon-fountain", + "grave_yard", + "basics:icon-cemetery", + "hospital", + "basics:icon-hospital", + "hunting_stand", + "basics:icon-huntingstand", + "library", + "basics:icon-library", + "marketplace", + "basics:icon-marketplace", + "nightclub", + "basics:icon-nightclub", + "nursing_home", + "basics:icon-nursinghome", + "pharmacy", + "basics:icon-pharmacy", + "place_of_worship", + "basics:icon-place_of_worship", + "playground", + "basics:icon-playground", + "police", + "basics:icon-police", + "post_box", + "basics:icon-postbox", + "post_office", + "basics:icon-post", + "prison", + "basics:icon-prison", + "pub", + "basics:icon-beer", + "recycling", + "basics:icon-recycling", + "restaurant", + "basics:icon-restaurant", + "school", + "basics:icon-school", + "shelter", + "basics:icon-shelter", + "telephone", + "basics:icon-telephone", + "theatre", + "basics:icon-theatre", + "toilets", + "basics:icon-toilet", + "townhall", + "basics:icon-town_hall", + "vending_machine", + "basics:icon-vendingmachine", + "veterinary", + "basics:icon-veterinary", + "waste_basket", + "basics:icon-waste_basket", + "" + ] + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "text-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "icon-color": "hsl(0,0%,67%)", + "text-color": "hsl(0,0%,67%)" + } + }, + { + "id": "poi-leisure", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "pois", + "minzoom": 16, + "filter": [ + "to-boolean", + [ + "get", + "leisure" + ] + ], + "layout": { + "icon-size": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 19, + 0.5 + ], + [ + 20, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-optional": true, + "text-font": [ + "noto_sans_regular" + ], + "icon-image": [ + "match", + [ + "get", + "leisure" + ], + "golf_course", + "basics:icon-golf", + "ice_rink", + "basics:icon-icerink", + "pitch", + "basics:icon-pitch", + "stadium", + "basics:icon-stadium", + "swimming_pool", + "basics:icon-swimming", + "water_park", + "basics:icon-waterpark", + "basics:icon-sports" + ] + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "text-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "icon-color": "hsl(0,0%,67%)", + "text-color": "hsl(0,0%,67%)" + } + }, + { + "id": "poi-tourism", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "pois", + "minzoom": 16, + "filter": [ + "to-boolean", + [ + "get", + "tourism" + ] + ], + "layout": { + "icon-size": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 19, + 0.5 + ], + [ + 20, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-optional": true, + "text-font": [ + "noto_sans_regular" + ], + "icon-image": [ + "match", + [ + "get", + "tourism" + ], + "chalet", + "basics:icon-chalet", + "information", + "basics:transport-information", + "picnic_site", + "basics:icon-picnic_site", + "viewpoint", + "basics:icon-viewpoint", + "zoo", + "basics:icon-zoo", + "" + ] + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "text-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "icon-color": "hsl(0,0%,67%)", + "text-color": "hsl(0,0%,67%)" + } + }, + { + "id": "poi-shop", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "pois", + "minzoom": 16, + "filter": [ + "to-boolean", + [ + "get", + "shop" + ] + ], + "layout": { + "icon-size": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 19, + 0.5 + ], + [ + 20, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-optional": true, + "text-font": [ + "noto_sans_regular" + ], + "icon-image": [ + "match", + [ + "get", + "shop" + ], + "alcohol", + "basics:icon-alcohol_shop", + "bakery", + "basics:icon-bakery", + "beauty", + "basics:icon-beauty", + "beverages", + "basics:icon-beverages", + "books", + "basics:icon-books", + "butcher", + "basics:icon-butcher", + "chemist", + "basics:icon-chemist", + "clothes", + "basics:icon-clothes", + "doityourself", + "basics:icon-doityourself", + "dry_cleaning", + "basics:icon-drycleaning", + "florist", + "basics:icon-florist", + "furniture", + "basics:icon-furniture", + "garden_centre", + "basics:icon-garden_centre", + "general", + "basics:icon-shop", + "gift", + "basics:icon-gift", + "greengrocer", + "basics:icon-greengrocer", + "hairdresser", + "basics:icon-hairdresser", + "hardware", + "basics:icon-hardware", + "jewelry", + "basics:icon-jewelry_store", + "kiosk", + "basics:icon-kiosk", + "laundry", + "basics:icon-laundry", + "newsagent", + "basics:icon-newsagent", + "optican", + "basics:icon-optician", + "outdoor", + "basics:icon-outdoor", + "shoes", + "basics:icon-shoes", + "sports", + "basics:icon-sports", + "stationery", + "basics:icon-stationery", + "toys", + "basics:icon-toys", + "travel_agency", + "basics:icon-travel_agent", + "video", + "basics:icon-video", + "basics:icon-shop" + ] + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "text-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "icon-color": "hsl(0,0%,67%)", + "text-color": "hsl(0,0%,67%)" + } + }, + { + "id": "poi-man_made", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "pois", + "minzoom": 16, + "filter": [ + "to-boolean", + [ + "get", + "man_made" + ] + ], + "layout": { + "icon-size": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 19, + 0.5 + ], + [ + 20, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-optional": true, + "text-font": [ + "noto_sans_regular" + ], + "icon-image": [ + "match", + [ + "get", + "man_made" + ], + "lighthouse", + "basics:icon-lighthouse", + "surveillance", + "basics:icon-surveillance", + "tower", + "basics:icon-observation_tower", + "watermill", + "basics:icon-watermill", + "windmill", + "basics:icon-windmill", + "" + ] + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "text-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "icon-color": "hsl(0,0%,67%)", + "text-color": "hsl(0,0%,67%)" + } + }, + { + "id": "poi-historic", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "pois", + "minzoom": 16, + "filter": [ + "to-boolean", + [ + "get", + "historic" + ] + ], + "layout": { + "icon-size": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 19, + 0.5 + ], + [ + 20, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-optional": true, + "text-font": [ + "noto_sans_regular" + ], + "icon-image": [ + "match", + [ + "get", + "historic" + ], + "artwork", + "basics:icon-artwork", + "castle", + "basics:icon-castle", + "monument", + "basics:icon-monument", + "wayside_shrine", + "basics:icon-shrine", + "basics:icon-historic" + ] + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "text-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "icon-color": "hsl(0,0%,67%)", + "text-color": "hsl(0,0%,67%)" + } + }, + { + "id": "poi-emergency", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "pois", + "minzoom": 16, + "filter": [ + "to-boolean", + [ + "get", + "emergency" + ] + ], + "layout": { + "icon-size": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 19, + 0.5 + ], + [ + 20, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-optional": true, + "text-font": [ + "noto_sans_regular" + ], + "icon-image": [ + "match", + [ + "get", + "emergency" + ], + "defibrillator", + "basics:icon-defibrillator", + "fire_hydrant", + "basics:icon-hydrant", + "phone", + "basics:icon-emergency_phone", + "" + ] + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "text-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "icon-color": "hsl(0,0%,67%)", + "text-color": "hsl(0,0%,67%)" + } + }, + { + "id": "poi-highway", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "pois", + "minzoom": 16, + "filter": [ + "to-boolean", + [ + "get", + "highway" + ] + ], + "layout": { + "icon-size": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 19, + 0.5 + ], + [ + 20, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-optional": true, + "text-font": [ + "noto_sans_regular" + ] + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "text-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "icon-color": "hsl(0,0%,67%)", + "text-color": "hsl(0,0%,67%)" + } + }, + { + "id": "poi-office", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "pois", + "minzoom": 16, + "filter": [ + "to-boolean", + [ + "get", + "office" + ] + ], + "layout": { + "icon-size": { + "stops": [ + [ + 16, + 0.5 + ], + [ + 19, + 0.5 + ], + [ + 20, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-optional": true, + "text-font": [ + "noto_sans_regular" + ] + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "text-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ] + ] + }, + "icon-color": "hsl(0,0%,67%)", + "text-color": "hsl(0,0%,67%)" + } + }, + { + "id": "boundary-country:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "boundaries", + "filter": [ + "all", + [ + "==", + "admin_level", + 2 + ], + [ + "!=", + "maritime", + true + ], + [ + "!=", + "disputed", + true + ], + [ + "!=", + "coastline", + true + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(15,10,6)", + "line-blur": 1, + "line-width": { + "stops": [ + [ + 2, + 0 + ], + [ + 3, + 2 + ], + [ + 10, + 8 + ] + ] + }, + "line-opacity": 0.75 + } + }, + { + "id": "boundary-country-disputed:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "boundaries", + "filter": [ + "all", + [ + "==", + "admin_level", + 2 + ], + [ + "==", + "disputed", + true + ], + [ + "!=", + "maritime", + true + ], + [ + "!=", + "coastline", + true + ] + ], + "paint": { + "line-width": { + "stops": [ + [ + 2, + 0 + ], + [ + 3, + 2 + ], + [ + 10, + 8 + ] + ] + }, + "line-opacity": 0.75, + "line-color": "rgb(15,10,6)" + } + }, + { + "id": "boundary-state:outline", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "boundaries", + "filter": [ + "all", + [ + "==", + "admin_level", + 4 + ], + [ + "!=", + "maritime", + true + ], + [ + "!=", + "disputed", + true + ], + [ + "!=", + "coastline", + true + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(14,10,5)", + "line-blur": 1, + "line-width": { + "stops": [ + [ + 7, + 0 + ], + [ + 8, + 2 + ], + [ + 10, + 4 + ] + ] + }, + "line-opacity": 0.75 + } + }, + { + "id": "boundary-country", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "boundaries", + "filter": [ + "all", + [ + "==", + "admin_level", + 2 + ], + [ + "!=", + "maritime", + true + ], + [ + "!=", + "disputed", + true + ], + [ + "!=", + "coastline", + true + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "hsl(240,24%,28%)", + "line-width": { + "stops": [ + [ + 2, + 0 + ], + [ + 3, + 1 + ], + [ + 10, + 4 + ] + ] + } + } + }, + { + "id": "boundary-country-disputed", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "boundaries", + "filter": [ + "all", + [ + "==", + "admin_level", + 2 + ], + [ + "==", + "disputed", + true + ], + [ + "!=", + "maritime", + true + ], + [ + "!=", + "coastline", + true + ] + ], + "layout": { + "line-cap": "square" + }, + "paint": { + "line-width": { + "stops": [ + [ + 2, + 0 + ], + [ + 3, + 1 + ], + [ + 10, + 4 + ] + ] + }, + "line-color": "hsl(246,17%,23%)", + "line-dasharray": [ + 2, + 1 + ] + } + }, + { + "id": "boundary-state", + "type": "line", + "source": "versatiles-shortbread", + "source-layer": "boundaries", + "filter": [ + "all", + [ + "==", + "admin_level", + 4 + ], + [ + "!=", + "maritime", + true + ], + [ + "!=", + "disputed", + true + ], + [ + "!=", + "coastline", + true + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "hsl(240,24%,28%)", + "line-width": { + "stops": [ + [ + 7, + 0 + ], + [ + 8, + 1 + ], + [ + 10, + 2 + ] + ] + } + } + }, + { + "id": "label-address-housenumber", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "addresses", + "minzoom": 17, + "filter": [ + "has", + "housenumber" + ], + "layout": { + "text-field": "{housenumber}", + "text-font": [ + "noto_sans_regular" + ], + "symbol-placement": "point", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 17, + 8 + ], + [ + 19, + 10 + ] + ] + } + }, + "paint": { + "icon-color": "rgb(90,84,78)", + "text-color": "rgb(90,84,78)", + "text-halo-color": "rgb(21,16,10)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-motorway-shield", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "street_labels", + "minzoom": 14, + "filter": [ + "==", + "kind", + "motorway" + ], + "layout": { + "text-field": "{ref}", + "text-font": [ + "noto_sans_bold" + ], + "symbol-placement": "line", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 14, + 10 + ], + [ + 18, + 12 + ], + [ + 20, + 16 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(0,0%,0%)", + "text-color": "hsl(0,0%,0%)", + "text-halo-color": "hsl(34,90.0%,21.8%)", + "text-halo-width": 0.1, + "text-halo-blur": 1 + } + }, + { + "id": "label-street-pedestrian", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "street_labels", + "minzoom": 12, + "filter": [ + "==", + "kind", + "pedestrian" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "symbol-placement": "line", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 15, + 13 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-street-livingstreet", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "street_labels", + "minzoom": 12, + "filter": [ + "==", + "kind", + "living_street" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "symbol-placement": "line", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 15, + 13 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-street-residential", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "street_labels", + "minzoom": 12, + "filter": [ + "==", + "kind", + "residential" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "symbol-placement": "line", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 15, + 13 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-street-unclassified", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "street_labels", + "minzoom": 12, + "filter": [ + "==", + "kind", + "unclassified" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "symbol-placement": "line", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 15, + 13 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-street-tertiary", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "street_labels", + "minzoom": 12, + "filter": [ + "==", + "kind", + "tertiary" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "symbol-placement": "line", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 15, + 13 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-street-secondary", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "street_labels", + "minzoom": 12, + "filter": [ + "==", + "kind", + "secondary" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "symbol-placement": "line", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 15, + 13 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-street-primary", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "street_labels", + "minzoom": 12, + "filter": [ + "==", + "kind", + "primary" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "symbol-placement": "line", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 15, + 13 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-street-trunk", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "street_labels", + "minzoom": 12, + "filter": [ + "==", + "kind", + "trunk" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "symbol-placement": "line", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 15, + 13 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-street-track", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "street_labels", + "minzoom": 12, + "filter": [ + "==", + "kind", + "track" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "symbol-placement": "line", + "text-anchor": "center", + "text-size": { + "stops": [ + [ + 12, + 10 + ], + [ + 15, + 13 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-place-neighbourhood", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "place_labels", + "minzoom": 14, + "filter": [ + "==", + "kind", + "neighbourhood" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "symbol-sort-key": [ + "-", + [ + "to-number", + [ + "get", + "population" + ], + 0 + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-size": { + "stops": [ + [ + 14, + 12 + ] + ] + }, + "text-transform": "uppercase" + }, + "paint": { + "icon-color": "rgb(182,209,215)", + "text-color": "rgb(182,209,215)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-place-quarter", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "place_labels", + "minzoom": 13, + "filter": [ + "==", + "kind", + "quarter" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "symbol-sort-key": [ + "-", + [ + "to-number", + [ + "get", + "population" + ], + 0 + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-size": { + "stops": [ + [ + 13, + 13 + ] + ] + }, + "text-transform": "uppercase" + }, + "paint": { + "icon-color": "rgb(182,204,215)", + "text-color": "rgb(182,204,215)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-place-suburb", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "place_labels", + "minzoom": 11, + "filter": [ + "==", + "kind", + "suburb" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "symbol-sort-key": [ + "-", + [ + "to-number", + [ + "get", + "population" + ], + 0 + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-size": { + "stops": [ + [ + 11, + 11 + ], + [ + 13, + 14 + ] + ] + }, + "text-transform": "uppercase" + }, + "paint": { + "icon-color": "rgb(182,198,215)", + "text-color": "rgb(182,198,215)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-place-hamlet", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "place_labels", + "minzoom": 13, + "filter": [ + "==", + "kind", + "hamlet" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "symbol-sort-key": [ + "-", + [ + "to-number", + [ + "get", + "population" + ], + 0 + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-size": { + "stops": [ + [ + 10, + 11 + ], + [ + 12, + 14 + ] + ] + } + }, + "paint": { + "icon-color": "rgb(182,190,215)", + "text-color": "rgb(182,190,215)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-place-village", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "place_labels", + "minzoom": 11, + "filter": [ + "==", + "kind", + "village" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "symbol-sort-key": [ + "-", + [ + "to-number", + [ + "get", + "population" + ], + 0 + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-size": { + "stops": [ + [ + 9, + 11 + ], + [ + 12, + 14 + ] + ] + } + }, + "paint": { + "icon-color": "rgb(182,190,215)", + "text-color": "rgb(182,190,215)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-place-town", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "place_labels", + "minzoom": 9, + "filter": [ + "==", + "kind", + "town" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "symbol-sort-key": [ + "-", + [ + "to-number", + [ + "get", + "population" + ], + 0 + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-size": { + "stops": [ + [ + 8, + 11 + ], + [ + 12, + 14 + ] + ] + } + }, + "paint": { + "icon-color": "rgb(182,190,215)", + "text-color": "rgb(182,190,215)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-boundary-state", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "boundary_labels", + "minzoom": 5, + "filter": [ + "in", + "admin_level", + 4, + "4" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-transform": "uppercase", + "text-anchor": "top", + "text-offset": [ + 0, + 0.2 + ], + "text-padding": 0, + "text-optional": true, + "text-size": { + "stops": [ + [ + 5, + 8 + ], + [ + 8, + 12 + ] + ] + } + }, + "paint": { + "icon-color": "rgb(178,178,194)", + "text-color": "rgb(178,178,194)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-place-city", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "place_labels", + "minzoom": 7, + "filter": [ + "==", + "kind", + "city" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "symbol-sort-key": [ + "-", + [ + "to-number", + [ + "get", + "population" + ], + 0 + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-size": { + "stops": [ + [ + 7, + 11 + ], + [ + 10, + 14 + ] + ] + } + }, + "paint": { + "icon-color": "rgb(182,190,215)", + "text-color": "rgb(182,190,215)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-place-statecapital", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "place_labels", + "minzoom": 6, + "filter": [ + "==", + "kind", + "state_capital" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "symbol-sort-key": [ + "-", + [ + "to-number", + [ + "get", + "population" + ], + 0 + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-size": { + "stops": [ + [ + 6, + 11 + ], + [ + 10, + 15 + ] + ] + } + }, + "paint": { + "icon-color": "rgb(182,190,215)", + "text-color": "rgb(182,190,215)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-place-capital", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "place_labels", + "minzoom": 5, + "filter": [ + "==", + "kind", + "capital" + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "symbol-sort-key": [ + "-", + [ + "to-number", + [ + "get", + "population" + ], + 0 + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-size": { + "stops": [ + [ + 5, + 12 + ], + [ + 10, + 16 + ] + ] + } + }, + "paint": { + "icon-color": "rgb(182,190,215)", + "text-color": "rgb(182,190,215)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-boundary-country-small", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "boundary_labels", + "minzoom": 4, + "filter": [ + "all", + [ + "in", + "admin_level", + 2, + "2" + ], + [ + "<=", + "way_area", + 10000000 + ] + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-transform": "uppercase", + "text-anchor": "top", + "text-offset": [ + 0, + 0.2 + ], + "text-padding": 0, + "text-optional": true, + "text-size": { + "stops": [ + [ + 4, + 8 + ], + [ + 5, + 11 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-boundary-country-medium", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "boundary_labels", + "minzoom": 3, + "filter": [ + "all", + [ + "in", + "admin_level", + 2, + "2" + ], + [ + "<", + "way_area", + 90000000 + ], + [ + ">", + "way_area", + 10000000 + ] + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-transform": "uppercase", + "text-anchor": "top", + "text-offset": [ + 0, + 0.2 + ], + "text-padding": 0, + "text-optional": true, + "text-size": { + "stops": [ + [ + 3, + 8 + ], + [ + 5, + 12 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "label-boundary-country-large", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "boundary_labels", + "minzoom": 2, + "filter": [ + "all", + [ + "in", + "admin_level", + 2, + "2" + ], + [ + ">=", + "way_area", + 90000000 + ] + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "text-font": [ + "noto_sans_regular" + ], + "text-transform": "uppercase", + "text-anchor": "top", + "text-offset": [ + 0, + 0.2 + ], + "text-padding": 0, + "text-optional": true, + "text-size": { + "stops": [ + [ + 2, + 8 + ], + [ + 5, + 13 + ] + ] + } + }, + "paint": { + "icon-color": "hsl(240,14%,77%)", + "text-color": "hsl(240,14%,77%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "marking-oneway", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "oneway", + true + ], + [ + "in", + "kind", + "trunk", + "primary", + "secondary", + "tertiary", + "unclassified", + "residential", + "living_street" + ] + ], + "layout": { + "symbol-placement": "line", + "symbol-spacing": 175, + "icon-rotate": 90, + "icon-rotation-alignment": "map", + "icon-padding": 5, + "symbol-avoid-edges": true, + "icon-image": "basics:marking-arrow", + "text-font": [ + "noto_sans_regular" + ] + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ], + [ + 20, + 0.4 + ] + ] + }, + "text-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ], + [ + 20, + 0.4 + ] + ] + } + } + }, + { + "id": "marking-oneway-reverse", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "streets", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "oneway_reverse", + true + ], + [ + "in", + "kind", + "trunk", + "primary", + "secondary", + "tertiary", + "unclassified", + "residential", + "living_street" + ] + ], + "layout": { + "symbol-placement": "line", + "symbol-spacing": 75, + "icon-rotate": -90, + "icon-rotation-alignment": "map", + "icon-padding": 5, + "symbol-avoid-edges": true, + "icon-image": "basics:marking-arrow", + "text-font": [ + "noto_sans_regular" + ] + }, + "paint": { + "icon-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ], + [ + 20, + 0.4 + ] + ] + }, + "text-opacity": { + "stops": [ + [ + 16, + 0 + ], + [ + 17, + 0.4 + ], + [ + 20, + 0.4 + ] + ] + } + } + }, + { + "id": "symbol-transit-station", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "public_transport", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "kind", + "station", + "halt" + ], + [ + "!in", + "station", + "light_rail", + "subway" + ] + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "icon-size": { + "stops": [ + [ + 13, + 0.5 + ], + [ + 15, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-keep-upright": true, + "text-font": [ + "noto_sans_regular" + ], + "text-size": 10, + "icon-anchor": "bottom", + "text-anchor": "top", + "icon-image": "basics:icon-rail" + }, + "paint": { + "icon-opacity": 0.7, + "icon-color": "hsl(270,4%,60%)", + "text-color": "hsl(270,4%,60%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "symbol-transit-airfield", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "public_transport", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "kind", + "aerodrome" + ], + [ + "!has", + "iata" + ] + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "icon-size": { + "stops": [ + [ + 13, + 0.5 + ], + [ + 15, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-keep-upright": true, + "text-font": [ + "noto_sans_regular" + ], + "text-size": 10, + "icon-anchor": "bottom", + "text-anchor": "top", + "icon-image": "basics:icon-airfield" + }, + "paint": { + "icon-opacity": 0.7, + "icon-color": "hsl(270,4%,60%)", + "text-color": "hsl(270,4%,60%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "symbol-transit-airport", + "type": "symbol", + "source": "versatiles-shortbread", + "source-layer": "public_transport", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + "kind", + "aerodrome" + ], + [ + "has", + "iata" + ] + ], + "layout": { + "text-field": [ + "coalesce", + [ + "get", + "name" + ], + [ + "get", + "name_en" + ], + [ + "get", + "name_de" + ] + ], + "icon-size": { + "stops": [ + [ + 12, + 0.5 + ], + [ + 14, + 1 + ] + ] + }, + "symbol-placement": "point", + "icon-keep-upright": true, + "text-font": [ + "noto_sans_regular" + ], + "text-size": 10, + "icon-anchor": "bottom", + "text-anchor": "top", + "icon-image": "basics:icon-airport" + }, + "paint": { + "icon-opacity": 0.7, + "icon-color": "hsl(270,4%,60%)", + "text-color": "hsl(270,4%,60%)", + "text-halo-color": "hsla(0,0%,0%,0.8)", + "text-halo-width": 2, + "text-halo-blur": 1 + } + } + ], + "id": "80klscq" +} \ No newline at end of file diff --git a/app/src/main/java/it/reyboz/bustorino/ActivityIntro.kt b/app/src/main/java/it/reyboz/bustorino/ActivityIntro.kt --- a/app/src/main/java/it/reyboz/bustorino/ActivityIntro.kt +++ b/app/src/main/java/it/reyboz/bustorino/ActivityIntro.kt @@ -32,8 +32,6 @@ override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_intro) - //check default settings and apply them - checkApplyDefaultSettingsValues() viewPager = findViewById(R.id.viewPager) btnBackward = findViewById(R.id.btnPrevious) btnForward = findViewById(R.id.btnNext) diff --git a/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java b/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java --- a/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java +++ b/app/src/main/java/it/reyboz/bustorino/ActivityPrincipal.java @@ -282,8 +282,8 @@ } //boolean onCreateComplete = true; - //last but not least, set the good default values - checkApplyDefaultSettingsValues(); + //default values are set in the BustoApp + //checkApplyDefaultSettingsValues(); // handle the device "insets" /* ViewCompat.setOnApplyWindowInsetsListener(findViewById(R.id.rootRelativeLayout), (v, windowInsets) -> { diff --git a/app/src/main/java/it/reyboz/bustorino/BustoApp.java b/app/src/main/java/it/reyboz/bustorino/BustoApp.java --- a/app/src/main/java/it/reyboz/bustorino/BustoApp.java +++ b/app/src/main/java/it/reyboz/bustorino/BustoApp.java @@ -19,7 +19,13 @@ import android.content.Context; +import android.content.SharedPreferences; +import androidx.appcompat.app.AppCompatDelegate; import androidx.multidex.MultiDexApplication; +import androidx.preference.PreferenceManager; +import it.reyboz.bustorino.backend.utils; +import it.reyboz.bustorino.data.PreferencesHolder; +import it.reyboz.bustorino.fragments.SettingsFragment; import org.acra.ACRA; import org.acra.BuildConfig; import org.acra.ReportField; @@ -30,7 +36,9 @@ import java.lang.reflect.Array; import java.util.ArrayList; +import java.util.HashSet; import java.util.List; +import java.util.Set; import static org.acra.ReportField.*; @@ -72,4 +80,60 @@ } + @Override + public void onCreate() { + super.onCreate(); + checkApplyDefaultSettingsValues(); + var dayorNight = PreferencesHolder.getAppThemeDayNight(this); + AppCompatDelegate.setDefaultNightMode(dayorNight); + } + + /** + * Adjust setting to match the default ones + */ + protected void checkApplyDefaultSettingsValues(){ + SharedPreferences mainSharedPref = PreferenceManager.getDefaultSharedPreferences(this); + SharedPreferences.Editor editor = mainSharedPref.edit(); + boolean edit = false; + + //Day or night theme + var str = mainSharedPref.getString(PreferencesHolder.PREF_THEME_DAY_NIGHT, ""); + if(str.isEmpty()){ + editor.putString(PreferencesHolder.PREF_THEME_DAY_NIGHT, "system"); + edit = true; + } + + //Main fragment to show + String screen = mainSharedPref.getString(SettingsFragment.PREF_KEY_STARTUP_SCREEN, ""); + if (screen.isEmpty()){ + editor.putString(SettingsFragment.PREF_KEY_STARTUP_SCREEN, "arrivals"); + edit=true; + } + //Fetchers + final Set setSelected = mainSharedPref.getStringSet(SettingsFragment.KEY_ARRIVALS_FETCHERS_USE, new HashSet<>()); + if (setSelected.isEmpty()){ + String[] defaultVals = getResources().getStringArray(R.array.arrivals_sources_values_default); + editor.putStringSet(SettingsFragment.KEY_ARRIVALS_FETCHERS_USE, utils.convertArrayToSet(defaultVals)); + edit=true; + } + //Live bus positions + final String keySourcePositions=getString(R.string.pref_positions_source); + final String positionsSource = mainSharedPref.getString(keySourcePositions, ""); + if(positionsSource.isEmpty()){ + String[] defaultVals = getResources().getStringArray(R.array.positions_source_values); + editor.putString(keySourcePositions, defaultVals[0]); + edit=true; + } + //Map style + final String mapStylePref = mainSharedPref.getString(SettingsFragment.LIBREMAP_STYLE_PREF_KEY, ""); + if(mapStylePref.isEmpty()){ + final String[] defaultVals = getResources().getStringArray(R.array.map_style_pref_values); + editor.putString(SettingsFragment.LIBREMAP_STYLE_PREF_KEY, defaultVals[0]); + edit=true; + } + if (edit){ + editor.apply(); + } + + } } diff --git a/app/src/main/java/it/reyboz/bustorino/adapters/PalinaAdapter.java b/app/src/main/java/it/reyboz/bustorino/adapters/PalinaAdapter.java --- a/app/src/main/java/it/reyboz/bustorino/adapters/PalinaAdapter.java +++ b/app/src/main/java/it/reyboz/bustorino/adapters/PalinaAdapter.java @@ -19,6 +19,8 @@ import android.content.Context; import android.content.res.Resources; +import android.graphics.drawable.Drawable; +import android.widget.ImageView; import androidx.annotation.NonNull; import androidx.cardview.widget.CardView; import androidx.core.content.res.ResourcesCompat; @@ -63,9 +65,9 @@ private static final int busBg = R.drawable.route_background_bus; private static final int extraurbanoBg = R.drawable.route_background_bus_long_distance; - private static final int busIcon = R.drawable.bus; + private static final int busIcon = R.drawable.ic_bus_small; private static final int trainIcon = R.drawable.subway; - private static final int tramIcon = R.drawable.tram; + private static final int tramIcon = R.drawable.ic_tram_24; private final String KEY_CAPITALIZE; private Capitalize capit; @@ -123,7 +125,8 @@ } vh.rowRouteDestination.setText(dest); } - + Drawable drawable = null; + final var resources = con.getResources(); switch (route.type) { //UNKNOWN = BUS for the moment case UNKNOWN: @@ -131,28 +134,36 @@ default: // convertView could contain another background, reset it //vh.rowStopIcon.setBackgroundResource(busBg); - - vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0); + //drawable = ResourcesCompat.getDrawable(con.getResources(), busIcon, con.getTheme()); + //vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0); + vh.busIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, busIcon, con.getTheme())); break; case LONG_DISTANCE_BUS: //vh.rowStopIcon.setBackgroundResource(extraurbanoBg); vh.routeCard.setCardBackgroundColor(ResourcesCompat.getColor(res, R.color.extraurban_bus_bg, null)); - vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0); + vh.busIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, extraurbanoBg, con.getTheme())); break; case METRO: //vh.rowStopIcon.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14); //vh.rowStopIcon.setBackgroundResource(metroBg); vh.routeIDTextView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 14); vh.routeCard.setCardBackgroundColor(ResourcesCompat.getColor(res, R.color.metro_bg, null)); - vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(trainIcon, 0, 0, 0); + // vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(trainIcon, 0, 0, 0); + vh.busIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, trainIcon, con.getTheme())); break; case RAILWAY: //vh.rowStopIcon.setBackgroundResource(busBg); - vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(trainIcon, 0, 0, 0); + //vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(trainIcon, 0, 0, 0); + vh.busIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, trainIcon, con.getTheme())); break; case TRAM: // never used but whatever. //vh.rowStopIcon.setBackgroundResource(busBg); - vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(tramIcon, 0, 0, 0); + drawable = ResourcesCompat.getDrawable(resources, trainIcon, con.getTheme()); + assert drawable != null; + drawable.setTint(resources.getColor(R.color.black_icon_text, con.getTheme()) ); + //vh.rowRouteDestination.setCompoundDrawablesWithIntrinsicBounds(tramIcon, 0, 0, 0); + vh.busIcon.setImageDrawable(ResourcesCompat.getDrawable(resources, tramIcon, con.getTheme())); + break; } @@ -181,19 +192,15 @@ final CardView routeCard; final TextView rowRouteDestination; final TextView rowRouteTimetable; + final ImageView busIcon; public PalinaViewHolder(@NonNull @NotNull View view) { super(view); - /* - convertView.findViewById(R.id.routeID); - vh.rowRouteDestination = (TextView) convertView.findViewById(R.id.routeDestination); - vh.rowRouteTimetable = (TextView) convertView.findViewById(R.id.routesThatStopHere); - */ - //rowStopIcon = view.findViewById(R.id.routeID); routeIDTextView = view.findViewById(R.id.routeNameTextView); routeCard = view.findViewById(R.id.routeCard); rowRouteDestination = view.findViewById(R.id.routeDestination); rowRouteTimetable = view.findViewById(R.id.routesThatStopHere); + busIcon = view.findViewById(R.id.arrivalsBusIcon); } } private static Capitalize getCapitalize(SharedPreferences shPr, String key){ diff --git a/app/src/main/java/it/reyboz/bustorino/adapters/SquareStopAdapter.java b/app/src/main/java/it/reyboz/bustorino/adapters/SquareStopAdapter.java --- a/app/src/main/java/it/reyboz/bustorino/adapters/SquareStopAdapter.java +++ b/app/src/main/java/it/reyboz/bustorino/adapters/SquareStopAdapter.java @@ -17,7 +17,6 @@ */ package it.reyboz.bustorino.adapters; -import android.location.Location; import androidx.annotation.Nullable; import androidx.recyclerview.widget.DiffUtil; import androidx.recyclerview.widget.RecyclerView; @@ -28,7 +27,6 @@ import android.widget.TextView; import it.reyboz.bustorino.R; import it.reyboz.bustorino.backend.GPSPoint; -import it.reyboz.bustorino.backend.RouteWithStop; import it.reyboz.bustorino.backend.Stop; import it.reyboz.bustorino.util.StopSorterByDistance; import it.reyboz.bustorino.fragments.FragmentListenerMain; @@ -37,7 +35,7 @@ import java.util.List; public class SquareStopAdapter extends RecyclerView.Adapter { - private final static int layoutRes = R.layout.stop_card; + private final static int layoutRes = R.layout.item_stop_nearby_card; //private List stops; private @Nullable GPSPoint userPosition; private FragmentListenerMain listener; diff --git a/app/src/main/java/it/reyboz/bustorino/adapters/StopAdapter.java b/app/src/main/java/it/reyboz/bustorino/adapters/StopAdapter.java --- a/app/src/main/java/it/reyboz/bustorino/adapters/StopAdapter.java +++ b/app/src/main/java/it/reyboz/bustorino/adapters/StopAdapter.java @@ -18,6 +18,7 @@ package it.reyboz.bustorino.adapters; import android.content.Context; +import android.widget.ImageView; import androidx.annotation.NonNull; import android.view.LayoutInflater; import android.view.View; @@ -36,18 +37,25 @@ public class StopAdapter extends ArrayAdapter { private LayoutInflater li; private static final int row_layout = R.layout.entry_bus_stop; - private static final int busIcon = R.drawable.bus; + private static final int busIcon = R.drawable.ic_bus; private static final int trainIcon = R.drawable.subway; private static final int tramIcon = R.drawable.tram; private static final int cityIcon = R.drawable.city; private static class ViewHolder { - TextView busStopIDTextView; - TextView busStopNameTextView; + final TextView busStopIDTextView; + final TextView busStopNameTextView; //TextView busLineVehicleIcon; - TextView busStopLinesTextView; - TextView busStopLocaLityTextView; + final TextView busStopLinesTextView; + final TextView busStopLocaLityTextView; + + ViewHolder(View view) { + busStopIDTextView = view.findViewById(R.id.busStopID); + busStopNameTextView = view.findViewById(R.id.busStopName); + busStopLinesTextView = view.findViewById(R.id.routesThatStopHere); + busStopLocaLityTextView = view.findViewById(R.id.busStopLocality); + } } public StopAdapter(Context context, List stops) { @@ -62,11 +70,7 @@ if(convertView == null) { convertView = li.inflate(row_layout, null); - vh = new ViewHolder(); - vh.busStopIDTextView = (TextView) convertView.findViewById(R.id.busStopID); - vh.busStopNameTextView = (TextView) convertView.findViewById(R.id.busStopName); - vh.busStopLinesTextView = (TextView) convertView.findViewById(R.id.routesThatStopHere); - vh.busStopLocaLityTextView = (TextView) convertView.findViewById(R.id.busStopLocality); + vh = new ViewHolder(convertView); convertView.setTag(vh); } else { vh = (ViewHolder) convertView.getTag(); @@ -85,8 +89,10 @@ vh.busStopLinesTextView.setVisibility(View.VISIBLE); // might be GONE due to View Holder Pattern } + /* + // DEPRECATED CODE: ALWAYS USE BUS STOP ICON if(stop.type == null) { - vh.busStopLinesTextView.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0); + //vh.busStopLinesTextView.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0); } else { switch(stop.type) { case BUS: @@ -106,6 +112,8 @@ } } + */ + if (stop.location == null) { vh.busStopLocaLityTextView.setVisibility(View.GONE); } else { diff --git a/app/src/main/java/it/reyboz/bustorino/adapters/StopRecyclerAdapter.java b/app/src/main/java/it/reyboz/bustorino/adapters/StopRecyclerAdapter.java --- a/app/src/main/java/it/reyboz/bustorino/adapters/StopRecyclerAdapter.java +++ b/app/src/main/java/it/reyboz/bustorino/adapters/StopRecyclerAdapter.java @@ -37,7 +37,7 @@ private List stops; private static final int ITEM_LAYOUT_FAVORITES = R.layout.entry_bus_stop; private static final int ITEM_LAYOUT_LINES = R.layout.stop_line_element; - private static final int busIcon = R.drawable.bus; + private static final int busIcon = R.drawable.ic_bus; private static final int trainIcon = R.drawable.subway; private static final int tramIcon = R.drawable.tram; private static final int cityIcon = R.drawable.city; @@ -174,6 +174,8 @@ vh.busStopLinesTextView.setText(whatStopsHere); vh.busStopLinesTextView.setVisibility(View.VISIBLE); // might be GONE due to View Holder Pattern } + /* + //This is deprecated, always showing a bus if(stop.type == null) { vh.busStopLinesTextView.setCompoundDrawablesWithIntrinsicBounds(busIcon, 0, 0, 0); @@ -196,6 +198,8 @@ } } + */ + if (stop.location == null || stop.location.toLowerCase(Locale.ROOT).equals("null")) { vh.busStopLocaLityTextView.setVisibility(View.GONE); } else { diff --git a/app/src/main/java/it/reyboz/bustorino/backend/KotlinUtils.kt b/app/src/main/java/it/reyboz/bustorino/backend/KotlinUtils.kt new file mode 100644 --- /dev/null +++ b/app/src/main/java/it/reyboz/bustorino/backend/KotlinUtils.kt @@ -0,0 +1,13 @@ +package it.reyboz.bustorino.backend + +import android.content.Context +import android.content.res.Configuration + +object KotlinUtils { + + @JvmStatic + fun isDarkTheme(context: Context): Boolean { + val uiMode = context.resources.configuration.uiMode and Configuration.UI_MODE_NIGHT_MASK + return uiMode == Configuration.UI_MODE_NIGHT_YES + } +} \ No newline at end of file diff --git a/app/src/main/java/it/reyboz/bustorino/data/GtfsMaintenanceWorker.kt b/app/src/main/java/it/reyboz/bustorino/data/GtfsMaintenanceWorker.kt --- a/app/src/main/java/it/reyboz/bustorino/data/GtfsMaintenanceWorker.kt +++ b/app/src/main/java/it/reyboz/bustorino/data/GtfsMaintenanceWorker.kt @@ -32,7 +32,7 @@ val notification = NotificationCompat.Builder(context, Notifications.DB_UPDATE_CHANNELS_ID) //.setContentIntent(PendingIntent.getActivity(context, 0, Intent(context, MainActivity::class.java), Constants.PENDING_INTENT_FLAG_IMMUTABLE)) - .setSmallIcon(R.drawable.bus) + .setSmallIcon(R.drawable.ic_bus) .setOngoing(true) .setAutoCancel(true) .setOnlyAlertOnce(true) diff --git a/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java b/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java --- a/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java +++ b/app/src/main/java/it/reyboz/bustorino/data/PreferencesHolder.java @@ -20,11 +20,13 @@ import android.content.Context; import android.content.SharedPreferences; import androidx.annotation.NonNull; +import androidx.appcompat.app.AppCompatDelegate; import it.reyboz.bustorino.R; import static android.content.Context.MODE_PRIVATE; import androidx.preference.PreferenceManager; +import it.reyboz.bustorino.backend.KotlinUtils; import it.reyboz.bustorino.fragments.SettingsFragment; import it.reyboz.bustorino.map.MapLibreUtils; @@ -42,6 +44,9 @@ public static final String DB_LAST_UPDATE_KEY = "NextGenDB.LastDBUpdate"; public static final String PREF_FAVORITE_LINES = "pref_favorite_lines"; + // match the one in preferences.xml + public static final String PREF_THEME_DAY_NIGHT = "app_theme_day_night"; + public static final Set KEYS_MERGE_SET = Set.of(PREF_FAVORITE_LINES); public static final Set IGNORE_KEYS_LOAD_MAIN = Set.of(PREF_GTFS_DB_VERSION, PREF_INTRO_ACTIVITY_RUN, DB_GTT_VERSION_KEY, DB_LAST_UPDATE_KEY); @@ -98,11 +103,28 @@ public static String getMapLibreStyleFile(Context con){ final SharedPreferences pref = getAppPreferences(con); final String mapStyle_val = pref.getString(SettingsFragment.LIBREMAP_STYLE_PREF_KEY, ""); - return switch (mapStyle_val) { + final boolean isNightMode = KotlinUtils.isDarkTheme(con); + String styleFile; + switch (mapStyle_val) { //MUST MATCH IN keys.xml -> map_style_pref_values - case "versatiles_c" -> MapLibreUtils.STYLE_VERSATILES_COLORFUL_JSON; - case "osm_legacy" -> MapLibreUtils.STYLE_OSM_RASTER; - default -> MapLibreUtils.getDefaultStyleJson(); + case "osm_legacy": + styleFile = MapLibreUtils.STYLE_OSM_RASTER; + break; + case "versatiles_c": + default: + styleFile = (isNightMode) ? MapLibreUtils.STYLE_VERSATILES_ECLIPSE_JSON : MapLibreUtils.STYLE_VERSATILES_COLORFUL_JSON; + } + return styleFile; + } + + public static Integer getAppThemeDayNight(Context context){ + final SharedPreferences pref = getAppPreferences(context); + final var value = pref.getString(PREF_THEME_DAY_NIGHT, ""); + return switch (value){ + case "day" -> AppCompatDelegate.MODE_NIGHT_NO; + case "night" -> AppCompatDelegate.MODE_NIGHT_YES; + case "system" -> AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM; + default -> AppCompatDelegate.MODE_NIGHT_FOLLOW_SYSTEM; }; } } diff --git a/app/src/main/java/it/reyboz/bustorino/fragments/GeneralMapLibreFragment.kt b/app/src/main/java/it/reyboz/bustorino/fragments/GeneralMapLibreFragment.kt --- a/app/src/main/java/it/reyboz/bustorino/fragments/GeneralMapLibreFragment.kt +++ b/app/src/main/java/it/reyboz/bustorino/fragments/GeneralMapLibreFragment.kt @@ -673,7 +673,7 @@ ResourcesCompat.getDrawable(resources, R.drawable.ic_magnifying_glass, activity?.theme) ) // if you change this, remember to change the color of the vehicleIcon - val colorBlue = ResourcesCompat.getColor(resources, R.color.blue_500, activity?.theme) + val colorBlue = ResourcesCompat.getColor(resources, R.color.bus_marker_color_selected, activity?.theme) ViewCompat.setBackgroundTintList(directionsCard, ColorStateList.valueOf(colorBlue)) linesPassingTextView.text = getString(R.string.vehicle_fill, data.posUpdate.vehicle) arrivalsCard.visibility = View.GONE @@ -846,7 +846,7 @@ ViewUtils.openStopInOutsideApp(stop, context) } context?.let { - val colorIcon = ViewUtils.getColorFromTheme(it, android.R.attr.colorAccent)//ResourcesCompat.getColor(resources,R.attr.colorAccent,activity?.theme) + val colorIcon = ViewUtils.getColorFromTheme(it, R.attr.colorAccent)//ResourcesCompat.getColor(resources,R.attr.colorAccent,activity?.theme) ViewCompat.setBackgroundTintList(directionsCard, ColorStateList.valueOf(colorIcon)) } @@ -905,12 +905,17 @@ protected fun initStopsLayer(style: Style, stopsFeatures: FeatureCollection?){ //determine default layer - var layerAbove = "" - if (lastMapStyle == MapLibreUtils.STYLE_OSM_RASTER){ - layerAbove = "osm-raster" - } else if (lastMapStyle == MapLibreUtils.STYLE_VECTOR){ - layerAbove = "symbol-transit-airfield" + + val layerAbove = if (lastMapStyle == MapLibreUtils.STYLE_OSM_RASTER){ + "osm-raster" + } else// if (lastMapStyle == MapLibreUtils.STYLE_VERSATILES_ECLIPSE_JSON){ + "symbol-transit-airfield" + /*} else { + // + "poi_park" } + + */ initStopsLayer(style, stopsFeatures, layerAbove) } diff --git a/app/src/main/java/it/reyboz/bustorino/map/MapLibreUtils.kt b/app/src/main/java/it/reyboz/bustorino/map/MapLibreUtils.kt --- a/app/src/main/java/it/reyboz/bustorino/map/MapLibreUtils.kt +++ b/app/src/main/java/it/reyboz/bustorino/map/MapLibreUtils.kt @@ -18,13 +18,21 @@ companion object{ //const val STYLE_BRIGHT_DEFAULT_JSON = "map_style_good_noshops.json" const val STYLE_VERSATILES_COLORFUL_JSON = "versatiles_colorful_light.json" + const val STYLE_VERSATILES_ECLIPSE_JSON = "versatiles_eclipse_neutral_to90.json" //"versatiles_eclipse.json" const val STYLE_OSM_RASTER="openstreetmap_raster.json" - const val STYLE_VECTOR = STYLE_VERSATILES_COLORFUL_JSON private const val DEBUG_TAG ="BusTO-MapLibreUtils" @JvmStatic - fun getDefaultStyleJson() = STYLE_VECTOR + fun isStyleVector(styleFile: String): Boolean { + return when(styleFile){ + //be careful to include all the style cases + STYLE_OSM_RASTER -> false + STYLE_VERSATILES_COLORFUL_JSON -> true + STYLE_VERSATILES_ECLIPSE_JSON -> true + else -> true + } + } @JvmStatic fun shortestRotation(from: Float, to: Float): Float { diff --git a/app/src/main/java/it/reyboz/bustorino/middleware/GeneralActivity.java b/app/src/main/java/it/reyboz/bustorino/middleware/GeneralActivity.java --- a/app/src/main/java/it/reyboz/bustorino/middleware/GeneralActivity.java +++ b/app/src/main/java/it/reyboz/bustorino/middleware/GeneralActivity.java @@ -231,44 +231,4 @@ return WindowInsetsCompat.CONSUMED; }; - /** - * Adjust setting to match the default ones - */ - protected void checkApplyDefaultSettingsValues(){ - SharedPreferences mainSharedPref = PreferenceManager.getDefaultSharedPreferences(this); - SharedPreferences.Editor editor = mainSharedPref.edit(); - //Main fragment to show - String screen = mainSharedPref.getString(SettingsFragment.PREF_KEY_STARTUP_SCREEN, ""); - boolean edit = false; - if (screen.isEmpty()){ - editor.putString(SettingsFragment.PREF_KEY_STARTUP_SCREEN, "arrivals"); - edit=true; - } - //Fetchers - final Set setSelected = mainSharedPref.getStringSet(SettingsFragment.KEY_ARRIVALS_FETCHERS_USE, new HashSet<>()); - if (setSelected.isEmpty()){ - String[] defaultVals = getResources().getStringArray(R.array.arrivals_sources_values_default); - editor.putStringSet(SettingsFragment.KEY_ARRIVALS_FETCHERS_USE, utils.convertArrayToSet(defaultVals)); - edit=true; - } - //Live bus positions - final String keySourcePositions=getString(R.string.pref_positions_source); - final String positionsSource = mainSharedPref.getString(keySourcePositions, ""); - if(positionsSource.isEmpty()){ - String[] defaultVals = getResources().getStringArray(R.array.positions_source_values); - editor.putString(keySourcePositions, defaultVals[0]); - edit=true; - } - //Map style - final String mapStylePref = mainSharedPref.getString(SettingsFragment.LIBREMAP_STYLE_PREF_KEY, ""); - if(mapStylePref.isEmpty()){ - final String[] defaultVals = getResources().getStringArray(R.array.map_style_pref_values); - editor.putString(SettingsFragment.LIBREMAP_STYLE_PREF_KEY, defaultVals[0]); - edit=true; - } - if (edit){ - editor.commit(); - } - - } } diff --git a/app/src/main/res/drawable/bottom_sheet_background.xml b/app/src/main/res/drawable/bottom_sheet_background.xml --- a/app/src/main/res/drawable/bottom_sheet_background.xml +++ b/app/src/main/res/drawable/bottom_sheet_background.xml @@ -1,7 +1,7 @@ - + \ No newline at end of file diff --git a/app/src/main/res/drawable/bus_stop_new.xml b/app/src/main/res/drawable/bus_stop_new.xml --- a/app/src/main/res/drawable/bus_stop_new.xml +++ b/app/src/main/res/drawable/bus_stop_new.xml @@ -12,10 +12,10 @@ + android:fillColor="@color/white"/> diff --git a/app/src/main/res/drawable/bus_stop_new_highlight.xml b/app/src/main/res/drawable/bus_stop_new_highlight.xml --- a/app/src/main/res/drawable/bus_stop_new_highlight.xml +++ b/app/src/main/res/drawable/bus_stop_new_highlight.xml @@ -9,13 +9,14 @@ android:strokeWidth="0.0936408" android:fillColor="?colorAccent" android:strokeColor="#00000000"/> + + android:fillColor="@color/white"/> diff --git a/app/src/main/res/drawable/ic_bus.xml b/app/src/main/res/drawable/ic_bus.xml new file mode 100644 --- /dev/null +++ b/app/src/main/res/drawable/ic_bus.xml @@ -0,0 +1,11 @@ + + + + + diff --git a/app/src/main/res/drawable/ic_bus_stilized.xml b/app/src/main/res/drawable/ic_bus_stilized.xml --- a/app/src/main/res/drawable/ic_bus_stilized.xml +++ b/app/src/main/res/drawable/ic_bus_stilized.xml @@ -4,6 +4,6 @@ android:viewportWidth="48" android:viewportHeight="48"> diff --git a/app/src/main/res/drawable/magnifying_glass_larger.xml b/app/src/main/res/drawable/magnifying_glass_larger.xml --- a/app/src/main/res/drawable/magnifying_glass_larger.xml +++ b/app/src/main/res/drawable/magnifying_glass_larger.xml @@ -6,5 +6,5 @@ + android:fillColor="@color/white"/> diff --git a/app/src/main/res/drawable/map_bus_position_icon_sel.xml b/app/src/main/res/drawable/map_bus_position_icon_sel.xml --- a/app/src/main/res/drawable/map_bus_position_icon_sel.xml +++ b/app/src/main/res/drawable/map_bus_position_icon_sel.xml @@ -1,7 +1,7 @@ - diff --git a/app/src/main/res/layout/activity_principal.xml b/app/src/main/res/layout/activity_principal.xml --- a/app/src/main/res/layout/activity_principal.xml +++ b/app/src/main/res/layout/activity_principal.xml @@ -41,15 +41,14 @@ android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_gravity="start" - android:background="@color/grey_050" - android:theme="@style/ThemeOverlay.AppCompat.Light" + android:theme="@style/ThemeOverlay.AppCompat.DayNight" app:headerLayout="@layout/nav_header" app:itemIconTint="@color/teal_500" app:itemTextAppearance="?android:attr/textAppearanceMedium" - app:itemTextColor="@color/black_900" + app:itemTextColor="@color/black_icon_text" android:fitsSystemWindows="true" app:menu="@menu/drawer_main" /> \ No newline at end of file diff --git a/app/src/main/res/layout/entry_alert_line_adapter.xml b/app/src/main/res/layout/entry_alert_line_adapter.xml --- a/app/src/main/res/layout/entry_alert_line_adapter.xml +++ b/app/src/main/res/layout/entry_alert_line_adapter.xml @@ -22,7 +22,7 @@ android:textStyle="bold" android:textSize="17sp" android:fontFamily="@font/lato_bold" - android:textColor="@color/black_900" + android:textColor="?android:textColorPrimary" android:text="Alerts for line" android:layout_alignParentTop="true" android:layout_marginBottom="5dp" @@ -35,10 +35,10 @@ android:id="@+id/messageBodyTextView" android:textSize="16sp" android:fontFamily="@font/lato_regular" - android:textColor="@color/black_900" + android:textColor="?android:textColorPrimary" android:text="Alert text" android:layout_below="@id/messageTitleTextView" /> \ No newline at end of file diff --git a/app/src/main/res/layout/entry_bus_line_passage.xml b/app/src/main/res/layout/entry_bus_line_passage.xml --- a/app/src/main/res/layout/entry_bus_line_passage.xml +++ b/app/src/main/res/layout/entry_bus_line_passage.xml @@ -50,6 +50,17 @@ + + #0b6fc1 + #bfbfbf + + #1a4db2 + + #1d56c8 + + #c34322 + + #861313 + + #3657b0 + #2270c3 + + + \ No newline at end of file diff --git a/app/src/main/res/values-night/themes.xml b/app/src/main/res/values-night/themes.xml new file mode 100644 --- /dev/null +++ b/app/src/main/res/values-night/themes.xml @@ -0,0 +1,11 @@ + + + + \ No newline at end of file diff --git a/app/src/main/res/values/colors.xml b/app/src/main/res/values/colors.xml --- a/app/src/main/res/values/colors.xml +++ b/app/src/main/res/values/colors.xml @@ -14,6 +14,12 @@ #8A4247 #FFF3E0 + + #e08700 + + + #d16900 + #2378e8 #0079f5 #2a968b @@ -25,7 +31,10 @@ #228b22 #0ABA34 - #009688 + #009688 + #00a38d + #009480 + #00a887 #4DB6AC #80cbc4 #008175 @@ -59,11 +68,14 @@ @color/red_dark @color/blue_extra + #3089e8 #FF039BE5 #FF01579B #FF40C4FF #FF00B0FF #66000000 + #666666 + #cccccc #00000000 @@ -74,4 +86,6 @@ @color/orange_icons_10light @color/grey_400 @color/orange_750_l45 + + @color/blue_700 \ No newline at end of file diff --git a/app/src/main/res/values/keys.xml b/app/src/main/res/values/keys.xml --- a/app/src/main/res/values/keys.xml +++ b/app/src/main/res/values/keys.xml @@ -40,4 +40,17 @@ osm_legacy + + + day + night + system + + + + @string/day_night_theme_set_light + @string/day_night_theme_set_dark + @string/day_night_theme_keep_system + + \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -299,6 +299,14 @@ @string/nav_map_text @string/lines + + + Light + Dark + Follow system + + + Choose theme to use (requires restart) Source of real time positions for buses and trams MaTO (updated more frequently, might have errors) GTFS RT (less frequently updated, more accurate) diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -71,7 +71,23 @@ + - -