summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortobrun <tobrun.van.nuland@gmail.com>2019-03-13 09:31:26 +0100
committertobrun <tobrun.van.nuland@gmail.com>2019-03-20 16:39:09 +0100
commit058db8b1092717c8184e58cfaa9d508428589561 (patch)
tree4bd3f3c0132b6d577097c826c6eb63311b48cb4d
parentf86cc81680dd64f135f4f7b813c6cbb1e7e822d8 (diff)
downloadqtlocation-mapboxgl-upstream/tvn-fix-tests.tar.gz
[android] - introduce Pixel dimension instrumentation testupstream/tvn-fix-tests
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/assets/streets.json5331
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt76
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ImageTest.java44
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ImageTest.kt75
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml3
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/espresso/PixelTestActivity.kt66
-rw-r--r--platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_pixel_test.xml16
7 files changed, 5535 insertions, 76 deletions
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/assets/streets.json b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/assets/streets.json
new file mode 100644
index 0000000000..5ab289344a
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/assets/streets.json
@@ -0,0 +1,5331 @@
+{
+ "version": 8,
+ "name": "mapbox-gl-native-test-style",
+ "metadata": {
+ "mapbox:autocomposite": true,
+ "mapbox:type": "default",
+ "mapbox:origin": "streets-v10",
+ "mapbox:groups": {
+ "1444934828655.3389": {"name": "Aeroways", "collapsed": true},
+ "1444933322393.2852": {
+ "name": "POI labels (scalerank 1)",
+ "collapsed": true
+ },
+ "1444855786460.0557": {"name": "Roads", "collapsed": true},
+ "1444933575858.6992": {
+ "name": "Highway shields",
+ "collapsed": true
+ },
+ "1444934295202.7542": {
+ "name": "Admin boundaries",
+ "collapsed": true
+ },
+ "1444856151690.9143": {"name": "State labels", "collapsed": true},
+ "1444933721429.3076": {"name": "Road labels", "collapsed": true},
+ "1444933358918.2366": {
+ "name": "POI labels (scalerank 2)",
+ "collapsed": true
+ },
+ "1444933808272.805": {"name": "Water labels", "collapsed": true},
+ "1444933372896.5967": {
+ "name": "POI labels (scalerank 3)",
+ "collapsed": true
+ },
+ "1444855799204.86": {"name": "Bridges", "collapsed": true},
+ "1444856087950.3635": {"name": "Marine labels", "collapsed": true},
+ "1456969573402.7817": {"name": "Hillshading", "collapsed": true},
+ "1444862510685.128": {"name": "City labels", "collapsed": true},
+ "1444855769305.6016": {"name": "Tunnels", "collapsed": true},
+ "1456970288113.8113": {"name": "Landcover", "collapsed": true},
+ "1444856144497.7825": {"name": "Country labels", "collapsed": true},
+ "1444933456003.5437": {
+ "name": "POI labels (scalerank 4)",
+ "collapsed": true
+ }
+ },
+ "mapbox:sdk-support": {
+ "js": "0.49.0",
+ "android": "6.5.0",
+ "ios": "4.4.0"
+ }
+ },
+ "center": [0.0, 0.0],
+ "zoom": 0,
+ "bearing": 0,
+ "pitch": 0,
+ "sources": {
+ "composite": {
+ "url": "mapbox://mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7",
+ "type": "vector"
+ }
+ },
+ "sprite": "mapbox://sprites/lukaspaczos/cjnkdt02b0b2p2ss40skwpvs1",
+ "glyphs": "mapbox://fonts/lukaspaczos/{fontstack}/{range}.pbf",
+ "layers": [
+ {
+ "id": "background",
+ "type": "background",
+ "layout": {},
+ "paint": {
+ "background-color": {
+ "base": 1,
+ "stops": [
+ [11, "hsl(35, 32%, 91%)"],
+ [13, "hsl(35, 12%, 89%)"]
+ ]
+ }
+ }
+ },
+ {
+ "id": "landcover_snow",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1456970288113.8113"},
+ "source": "composite",
+ "source-layer": "landcover",
+ "filter": ["==", "class", "snow"],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(0, 0%, 100%)",
+ "fill-opacity": 0.2,
+ "fill-antialias": false
+ }
+ },
+ {
+ "id": "landcover_wood",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1456970288113.8113"},
+ "source": "composite",
+ "source-layer": "landcover",
+ "maxzoom": 14,
+ "filter": ["==", "class", "wood"],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(75, 62%, 81%)",
+ "fill-opacity": {"base": 1.5, "stops": [[2, 0.3], [7, 0]]},
+ "fill-antialias": false
+ }
+ },
+ {
+ "id": "landcover_scrub",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1456970288113.8113"},
+ "source": "composite",
+ "source-layer": "landcover",
+ "maxzoom": 14,
+ "filter": ["==", "class", "scrub"],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(75, 62%, 81%)",
+ "fill-opacity": {"base": 1.5, "stops": [[2, 0.3], [7, 0]]},
+ "fill-antialias": false
+ }
+ },
+ {
+ "id": "landcover_grass",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1456970288113.8113"},
+ "source": "composite",
+ "source-layer": "landcover",
+ "maxzoom": 14,
+ "filter": ["==", "class", "grass"],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(75, 62%, 81%)",
+ "fill-opacity": {"base": 1.5, "stops": [[2, 0.3], [7, 0]]},
+ "fill-antialias": false
+ }
+ },
+ {
+ "id": "landcover_crop",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1456970288113.8113"},
+ "source": "composite",
+ "source-layer": "landcover",
+ "maxzoom": 14,
+ "filter": ["==", "class", "crop"],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(75, 62%, 81%)",
+ "fill-opacity": {"base": 1.5, "stops": [[2, 0.3], [7, 0]]},
+ "fill-antialias": false
+ }
+ },
+ {
+ "id": "national_park",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "landuse_overlay",
+ "filter": ["==", "class", "national_park"],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(100, 58%, 76%)",
+ "fill-opacity": {"base": 1, "stops": [[5, 0], [6, 0.5]]}
+ }
+ },
+ {
+ "id": "hospital",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "hospital"],
+ "layout": {},
+ "paint": {
+ "fill-color": {
+ "base": 1,
+ "stops": [
+ [15.5, "hsl(340, 37%, 87%)"],
+ [16, "hsl(340, 63%, 89%)"]
+ ]
+ }
+ }
+ },
+ {
+ "id": "school",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "school"],
+ "layout": {},
+ "paint": {
+ "fill-color": {
+ "base": 1,
+ "stops": [
+ [15.5, "hsl(50, 47%, 81%)"],
+ [16, "hsl(50, 63%, 84%)"]
+ ]
+ }
+ }
+ },
+ {
+ "id": "park",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "park"],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(100, 58%, 76%)",
+ "fill-opacity": {"base": 1, "stops": [[5, 0], [6, 1]]}
+ }
+ },
+ {
+ "id": "pitch",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "pitch"],
+ "layout": {},
+ "paint": {"fill-color": "hsl(100, 57%, 72%)"}
+ },
+ {
+ "id": "pitch-line",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "landuse",
+ "minzoom": 15,
+ "filter": ["==", "class", "pitch"],
+ "layout": {"line-join": "miter"},
+ "paint": {"line-color": "hsl(75, 57%, 84%)"}
+ },
+ {
+ "id": "cemetery",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "cemetery"],
+ "layout": {},
+ "paint": {"fill-color": "hsl(75, 37%, 81%)"}
+ },
+ {
+ "id": "industrial",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "industrial"],
+ "layout": {},
+ "paint": {
+ "fill-color": {
+ "base": 1,
+ "stops": [
+ [15.5, "hsl(230, 15%, 86%)"],
+ [16, "hsl(230, 29%, 89%)"]
+ ]
+ }
+ }
+ },
+ {
+ "id": "sand",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "landuse",
+ "filter": ["==", "class", "sand"],
+ "layout": {},
+ "paint": {"fill-color": "hsl(60, 46%, 87%)"}
+ },
+ {
+ "id": "hillshade_highlight_bright",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1456969573402.7817"},
+ "source": "composite",
+ "source-layer": "hillshade",
+ "maxzoom": 16,
+ "filter": ["==", "level", 94],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(0, 0%, 100%)",
+ "fill-opacity": {"stops": [[14, 0.12], [16, 0]]},
+ "fill-antialias": false
+ }
+ },
+ {
+ "id": "hillshade_highlight_med",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1456969573402.7817"},
+ "source": "composite",
+ "source-layer": "hillshade",
+ "maxzoom": 16,
+ "filter": ["==", "level", 90],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(0, 0%, 100%)",
+ "fill-opacity": {"stops": [[14, 0.12], [16, 0]]},
+ "fill-antialias": false
+ }
+ },
+ {
+ "id": "hillshade_shadow_faint",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1456969573402.7817"},
+ "source": "composite",
+ "source-layer": "hillshade",
+ "maxzoom": 16,
+ "filter": ["==", "level", 89],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(56, 59%, 22%)",
+ "fill-opacity": {"stops": [[14, 0.05], [16, 0]]},
+ "fill-antialias": false
+ }
+ },
+ {
+ "id": "hillshade_shadow_med",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1456969573402.7817"},
+ "source": "composite",
+ "source-layer": "hillshade",
+ "maxzoom": 16,
+ "filter": ["==", "level", 78],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(56, 59%, 22%)",
+ "fill-opacity": {"stops": [[14, 0.05], [16, 0]]},
+ "fill-antialias": false
+ }
+ },
+ {
+ "id": "hillshade_shadow_dark",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1456969573402.7817"},
+ "source": "composite",
+ "source-layer": "hillshade",
+ "maxzoom": 16,
+ "filter": ["==", "level", 67],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(56, 59%, 22%)",
+ "fill-opacity": {"stops": [[14, 0.06], [16, 0]]},
+ "fill-antialias": false
+ }
+ },
+ {
+ "id": "hillshade_shadow_extreme",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1456969573402.7817"},
+ "source": "composite",
+ "source-layer": "hillshade",
+ "maxzoom": 16,
+ "filter": ["==", "level", 56],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(56, 59%, 22%)",
+ "fill-opacity": {"stops": [[14, 0.06], [16, 0]]},
+ "fill-antialias": false
+ }
+ },
+ {
+ "id": "waterway-river-canal",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "waterway",
+ "minzoom": 8,
+ "filter": ["in", "class", "canal", "river"],
+ "layout": {
+ "line-cap": {"base": 1, "stops": [[0, "butt"], [11, "round"]]},
+ "line-join": "round"
+ },
+ "paint": {
+ "line-color": "hsl(205, 87%, 76%)",
+ "line-width": {"base": 1.3, "stops": [[8.5, 0.1], [20, 8]]},
+ "line-opacity": {"base": 1, "stops": [[8, 0], [8.5, 1]]}
+ }
+ },
+ {
+ "id": "waterway-small",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "waterway",
+ "minzoom": 13,
+ "filter": ["!in", "class", "canal", "river"],
+ "layout": {"line-join": "round", "line-cap": "round"},
+ "paint": {
+ "line-color": "hsl(205, 87%, 76%)",
+ "line-width": {"base": 1.35, "stops": [[13.5, 0.1], [20, 3]]},
+ "line-opacity": {"base": 1, "stops": [[13, 0], [13.5, 1]]}
+ }
+ },
+ {
+ "id": "water-shadow",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "water",
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(215, 84%, 69%)",
+ "fill-translate": {
+ "base": 1.2,
+ "stops": [[7, [0, 0]], [16, [-1, -1]]]
+ },
+ "fill-translate-anchor": "viewport",
+ "fill-opacity": 1
+ }
+ },
+ {
+ "id": "water",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "water",
+ "layout": {},
+ "paint": {"fill-color": "hsl(196, 80%, 70%)"}
+ },
+ {
+ "id": "barrier_line-land-polygon",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "barrier_line",
+ "filter": [
+ "all",
+ ["==", "$type", "Polygon"],
+ ["==", "class", "land"]
+ ],
+ "layout": {},
+ "paint": {"fill-color": "hsl(35, 12%, 89%)"}
+ },
+ {
+ "id": "barrier_line-land-line",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "barrier_line",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["==", "class", "land"]
+ ],
+ "layout": {"line-cap": "round"},
+ "paint": {
+ "line-width": {"base": 1.99, "stops": [[14, 0.75], [20, 40]]},
+ "line-color": "hsl(35, 12%, 89%)"
+ }
+ },
+ {
+ "id": "aeroway-polygon",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1444934828655.3389"},
+ "source": "composite",
+ "source-layer": "aeroway",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["!=", "type", "apron"],
+ ["==", "$type", "Polygon"]
+ ],
+ "layout": {},
+ "paint": {
+ "fill-color": {
+ "base": 1,
+ "stops": [
+ [15, "hsl(230, 23%, 82%)"],
+ [16, "hsl(230, 37%, 84%)"]
+ ]
+ },
+ "fill-opacity": {"base": 1, "stops": [[11, 0], [11.5, 1]]}
+ }
+ },
+ {
+ "id": "aeroway-runway",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444934828655.3389"},
+ "source": "composite",
+ "source-layer": "aeroway",
+ "minzoom": 9,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["==", "type", "runway"]
+ ],
+ "layout": {},
+ "paint": {
+ "line-color": {
+ "base": 1,
+ "stops": [
+ [15, "hsl(230, 23%, 82%)"],
+ [16, "hsl(230, 37%, 84%)"]
+ ]
+ },
+ "line-width": {"base": 1.5, "stops": [[9, 1], [18, 80]]}
+ }
+ },
+ {
+ "id": "aeroway-taxiway",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444934828655.3389"},
+ "source": "composite",
+ "source-layer": "aeroway",
+ "minzoom": 9,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["==", "type", "taxiway"]
+ ],
+ "layout": {},
+ "paint": {
+ "line-color": {
+ "base": 1,
+ "stops": [
+ [15, "hsl(230, 23%, 82%)"],
+ [16, "hsl(230, 37%, 84%)"]
+ ]
+ },
+ "line-width": {"base": 1.5, "stops": [[10, 0.5], [18, 20]]}
+ }
+ },
+ {
+ "id": "building-line",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "building",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["!=", "type", "building:part"],
+ ["==", "underground", "false"]
+ ],
+ "layout": {},
+ "paint": {
+ "line-color": "hsl(35, 6%, 79%)",
+ "line-width": {"base": 1.5, "stops": [[15, 0.75], [20, 3]]},
+ "line-opacity": {"base": 1, "stops": [[15.5, 0], [16, 1]]}
+ }
+ },
+ {
+ "id": "building",
+ "type": "fill",
+ "source": "composite",
+ "source-layer": "building",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["!=", "type", "building:part"],
+ ["==", "underground", "false"]
+ ],
+ "layout": {},
+ "paint": {
+ "fill-color": {
+ "base": 1,
+ "stops": [
+ [15, "hsl(35, 11%, 88%)"],
+ [16, "hsl(35, 8%, 85%)"]
+ ]
+ },
+ "fill-opacity": {"base": 1, "stops": [[15.5, 0], [16, 1]]},
+ "fill-outline-color": "hsl(35, 6%, 79%)"
+ }
+ },
+ {
+ "id": "tunnel-street-low",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": {
+ "stops": [[11.5, 0], [12, 1], [14, 1], [14.01, 0]]
+ }
+ }
+ },
+ {
+ "id": "tunnel-street_limited-low",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street_limited"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": {
+ "stops": [[11.5, 0], [12, 1], [14, 1], [14.01, 0]]
+ }
+ }
+ },
+ {
+ "id": "tunnel-service-link-track-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "trunk_link"],
+ ["==", "structure", "tunnel"],
+ ["in", "class", "link", "service", "track"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(230, 19%, 75%)",
+ "line-gap-width": {"base": 1.5, "stops": [[14, 0.5], [18, 12]]},
+ "line-dasharray": [3, 3]
+ }
+ },
+ {
+ "id": "tunnel-street_limited-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street_limited"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(230, 19%, 75%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[13, 0], [14, 2], [18, 18]]
+ },
+ "line-dasharray": [3, 3],
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "tunnel-street-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(230, 19%, 75%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[13, 0], [14, 2], [18, 18]]
+ },
+ "line-dasharray": [3, 3],
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "tunnel-secondary-tertiary-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "structure", "tunnel"],
+ ["in", "class", "secondary", "tertiary"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.2, "stops": [[10, 0.75], [18, 2]]},
+ "line-dasharray": [3, 3],
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[8.5, 0.5], [10, 0.75], [18, 26]]
+ },
+ "line-color": "hsl(230, 19%, 75%)"
+ }
+ },
+ {
+ "id": "tunnel-primary-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "primary"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[10, 1], [16, 2]]},
+ "line-dasharray": [3, 3],
+ "line-gap-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-color": "hsl(230, 19%, 75%)"
+ }
+ },
+ {
+ "id": "tunnel-trunk_link-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "structure", "tunnel"],
+ ["==", "type", "trunk_link"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-dasharray": [3, 3]
+ }
+ },
+ {
+ "id": "tunnel-motorway_link-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "motorway_link"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-dasharray": [3, 3]
+ }
+ },
+ {
+ "id": "tunnel-trunk-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "structure", "tunnel"], ["==", "type", "trunk"]]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[10, 1], [16, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-opacity": 1,
+ "line-dasharray": [3, 3]
+ }
+ },
+ {
+ "id": "tunnel-motorway-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "motorway"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[10, 1], [16, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-opacity": 1,
+ "line-dasharray": [3, 3]
+ }
+ },
+ {
+ "id": "tunnel-construction",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "construction"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-join": "miter"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]},
+ "line-dasharray": {
+ "base": 1,
+ "stops": [
+ [14, [0.4, 0.8]],
+ [15, [0.3, 0.6]],
+ [16, [0.2, 0.3]],
+ [17, [0.2, 0.25]],
+ [18, [0.15, 0.15]]
+ ]
+ }
+ }
+ },
+ {
+ "id": "tunnel-path",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "steps"],
+ ["==", "class", "path"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[15, 1], [18, 4]]},
+ "line-dasharray": {
+ "base": 1,
+ "stops": [
+ [14, [1, 0]],
+ [15, [1.75, 1]],
+ [16, [1, 0.75]],
+ [17, [1, 0.5]]
+ ]
+ },
+ "line-color": "hsl(35, 26%, 95%)",
+ "line-opacity": {"base": 1, "stops": [[14, 0], [14.25, 1]]}
+ }
+ },
+ {
+ "id": "tunnel-steps",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "structure", "tunnel"], ["==", "type", "steps"]]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[15, 1], [16, 1.6], [18, 6]]
+ },
+ "line-color": "hsl(35, 26%, 95%)",
+ "line-dasharray": {
+ "base": 1,
+ "stops": [
+ [14, [1, 0]],
+ [15, [1.75, 1]],
+ [16, [1, 0.75]],
+ [17, [0.3, 0.3]]
+ ]
+ },
+ "line-opacity": {"base": 1, "stops": [[14, 0], [14.25, 1]]}
+ }
+ },
+ {
+ "id": "tunnel-trunk_link",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "structure", "tunnel"],
+ ["==", "type", "trunk_link"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(46, 77%, 78%)",
+ "line-opacity": 1,
+ "line-dasharray": [1, 0]
+ }
+ },
+ {
+ "id": "tunnel-motorway_link",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "motorway_link"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(26, 100%, 78%)",
+ "line-opacity": 1,
+ "line-dasharray": [1, 0]
+ }
+ },
+ {
+ "id": "tunnel-pedestrian",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "pedestrian"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[14, 0.5], [18, 12]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": 1,
+ "line-dasharray": {
+ "base": 1,
+ "stops": [[14, [1, 0]], [15, [1.5, 0.4]], [16, [1, 0.2]]]
+ }
+ }
+ },
+ {
+ "id": "tunnel-service-link-track",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "trunk_link"],
+ ["==", "structure", "tunnel"],
+ ["in", "class", "link", "service", "track"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[14, 0.5], [18, 12]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-dasharray": [1, 0]
+ }
+ },
+ {
+ "id": "tunnel-street_limited",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street_limited"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(35, 14%, 93%)",
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "tunnel-street",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "tunnel-secondary-tertiary",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "structure", "tunnel"],
+ ["in", "class", "secondary", "tertiary"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[8.5, 0.5], [10, 0.75], [18, 26]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": 1,
+ "line-dasharray": [1, 0],
+ "line-blur": 0
+ }
+ },
+ {
+ "id": "tunnel-primary",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "primary"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": 1,
+ "line-dasharray": [1, 0],
+ "line-blur": 0
+ }
+ },
+ {
+ "id": "tunnel-oneway-arrows-blue-minor",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "trunk_link"],
+ ["==", "oneway", "true"],
+ ["==", "structure", "tunnel"],
+ [
+ "in",
+ "class",
+ "link",
+ "path",
+ "pedestrian",
+ "service",
+ "track"
+ ]
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": {
+ "base": 1,
+ "stops": [[17, "oneway-small"], [18, "oneway-large"]]
+ },
+ "symbol-spacing": 200,
+ "icon-padding": 2
+ },
+ "paint": {}
+ },
+ {
+ "id": "tunnel-oneway-arrows-blue-major",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "trunk_link"],
+ ["==", "oneway", "true"],
+ ["==", "structure", "tunnel"],
+ [
+ "in",
+ "class",
+ "primary",
+ "secondary",
+ "street",
+ "street_limited",
+ "tertiary"
+ ]
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": {
+ "base": 1,
+ "stops": [[16, "oneway-small"], [17, "oneway-large"]]
+ },
+ "symbol-spacing": 200,
+ "icon-padding": 2
+ },
+ "paint": {}
+ },
+ {
+ "id": "tunnel-trunk",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "class", "trunk"], ["==", "structure", "tunnel"]]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-color": "hsl(46, 77%, 78%)"
+ }
+ },
+ {
+ "id": "tunnel-motorway",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "motorway"],
+ ["==", "structure", "tunnel"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-dasharray": [1, 0],
+ "line-opacity": 1,
+ "line-color": "hsl(26, 100%, 78%)",
+ "line-blur": 0
+ }
+ },
+ {
+ "id": "tunnel-oneway-arrows-white",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855769305.6016"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ [
+ "!in",
+ "type",
+ "primary_link",
+ "secondary_link",
+ "tertiary_link"
+ ],
+ ["==", "oneway", "true"],
+ ["==", "structure", "tunnel"],
+ [
+ "in",
+ "class",
+ "link",
+ "motorway",
+ "motorway_link",
+ "trunk"
+ ]
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": {
+ "base": 1,
+ "stops": [
+ [16, "oneway-white-small"],
+ [17, "oneway-white-large"]
+ ]
+ },
+ "symbol-spacing": 200,
+ "icon-padding": 2
+ },
+ "paint": {}
+ },
+ {
+ "id": "ferry",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["==", "type", "ferry"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": {
+ "base": 1,
+ "stops": [
+ [15, "hsl(205, 73%, 63%)"],
+ [17, "hsl(230, 73%, 63%)"]
+ ]
+ },
+ "line-opacity": 1,
+ "line-width": {"base": 1.5, "stops": [[14, 0.5], [20, 1]]},
+ "line-dasharray": {
+ "base": 1,
+ "stops": [[12, [1, 0]], [13, [12, 4]]]
+ }
+ }
+ },
+ {
+ "id": "ferry_auto",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["==", "type", "ferry_auto"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": {
+ "base": 1,
+ "stops": [
+ [15, "hsl(205, 73%, 63%)"],
+ [17, "hsl(230, 73%, 63%)"]
+ ]
+ },
+ "line-opacity": 1,
+ "line-width": {"base": 1.5, "stops": [[14, 0.5], [20, 1]]}
+ }
+ },
+ {
+ "id": "road-path-bg",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["!in", "type", "crossing", "sidewalk", "steps"],
+ ["==", "class", "path"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[15, 2], [18, 7]]},
+ "line-dasharray": [1, 0],
+ "line-color": "hsl(230, 17%, 82%)",
+ "line-blur": 0,
+ "line-opacity": {"base": 1, "stops": [[14, 0], [14.25, 0.75]]}
+ }
+ },
+ {
+ "id": "road-steps-bg",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "type", "steps"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[15, 2], [17, 4.6], [18, 7]]
+ },
+ "line-color": "hsl(230, 17%, 82%)",
+ "line-dasharray": [1, 0],
+ "line-opacity": {"base": 1, "stops": [[14, 0], [14.25, 0.75]]}
+ }
+ },
+ {
+ "id": "road-sidewalk-bg",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["in", "type", "crossing", "sidewalk"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[15, 2], [18, 7]]},
+ "line-dasharray": [1, 0],
+ "line-color": "hsl(230, 17%, 82%)",
+ "line-blur": 0,
+ "line-opacity": {"base": 1, "stops": [[16, 0], [16.25, 0.75]]}
+ }
+ },
+ {
+ "id": "turning-features-outline",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["==", "$type", "Point"],
+ ["in", "class", "turning_circle", "turning_loop"]
+ ],
+ "layout": {
+ "icon-image": "turning-circle-outline",
+ "icon-size": {
+ "base": 1.5,
+ "stops": [[14, 0.122], [18, 0.969], [20, 1]]
+ },
+ "icon-allow-overlap": true,
+ "icon-ignore-placement": true,
+ "icon-padding": 0,
+ "icon-rotation-alignment": "map"
+ },
+ "paint": {}
+ },
+ {
+ "id": "road-pedestrian-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "pedestrian"],
+ ["==", "structure", "none"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[14, 2], [18, 14.5]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-gap-width": 0,
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "road-street-low",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "class", "street"], ["==", "structure", "none"]]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": {
+ "stops": [[11, 0], [11.25, 1], [14, 1], [14.01, 0]]
+ }
+ }
+ },
+ {
+ "id": "road-street_limited-low",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street_limited"],
+ ["==", "structure", "none"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": {
+ "stops": [[11, 0], [11.25, 1], [14, 1], [14.01, 0]]
+ }
+ }
+ },
+ {
+ "id": "road-service-link-track-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "trunk_link"],
+ ["!in", "structure", "bridge", "tunnel"],
+ ["in", "class", "link", "service", "track"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-gap-width": {"base": 1.5, "stops": [[14, 0.5], [18, 12]]}
+ }
+ },
+ {
+ "id": "road-street_limited-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street_limited"],
+ ["==", "structure", "none"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[13, 0], [14, 2], [18, 18]]
+ },
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "road-street-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "class", "street"], ["==", "structure", "none"]]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[13, 0], [14, 2], [18, 18]]
+ },
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "road-secondary-tertiary-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["in", "class", "secondary", "tertiary"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.2, "stops": [[10, 0.75], [18, 2]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[8.5, 0.5], [10, 0.75], [18, 26]]
+ },
+ "line-opacity": {"base": 1, "stops": [[9.99, 0], [10, 1]]}
+ }
+ },
+ {
+ "id": "road-primary-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "class", "primary"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[10, 1], [16, 2]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-gap-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-opacity": {"base": 1, "stops": [[9.99, 0], [10, 1]]}
+ }
+ },
+ {
+ "id": "road-motorway_link-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 10,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "class", "motorway_link"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-opacity": {"base": 1, "stops": [[10.99, 0], [11, 1]]}
+ }
+ },
+ {
+ "id": "road-trunk_link-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "type", "trunk_link"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-opacity": {"base": 1, "stops": [[10.99, 0], [11, 1]]}
+ }
+ },
+ {
+ "id": "road-trunk-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "class", "trunk"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[10, 1], [16, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-opacity": {"base": 1, "stops": [[6, 0], [6.1, 1]]}
+ }
+ },
+ {
+ "id": "road-motorway-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "class", "motorway"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[10, 1], [16, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]}
+ }
+ },
+ {
+ "id": "road-construction",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "construction"],
+ ["==", "structure", "none"]
+ ]
+ ],
+ "layout": {"line-join": "miter"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]},
+ "line-dasharray": {
+ "base": 1,
+ "stops": [
+ [14, [0.4, 0.8]],
+ [15, [0.3, 0.6]],
+ [16, [0.2, 0.3]],
+ [17, [0.2, 0.25]],
+ [18, [0.15, 0.15]]
+ ]
+ }
+ }
+ },
+ {
+ "id": "road-sidewalks",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["in", "type", "crossing", "sidewalk"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[15, 1], [18, 4]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-dasharray": {
+ "base": 1,
+ "stops": [
+ [14, [1, 0]],
+ [15, [1.75, 1]],
+ [16, [1, 0.75]],
+ [17, [1, 0.5]]
+ ]
+ },
+ "line-opacity": {"base": 1, "stops": [[16, 0], [16.25, 1]]}
+ }
+ },
+ {
+ "id": "road-path",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["!in", "type", "crossing", "sidewalk", "steps"],
+ ["==", "class", "path"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[15, 1], [18, 4]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-dasharray": {
+ "base": 1,
+ "stops": [
+ [14, [1, 0]],
+ [15, [1.75, 1]],
+ [16, [1, 0.75]],
+ [17, [1, 0.5]]
+ ]
+ },
+ "line-opacity": {"base": 1, "stops": [[14, 0], [14.25, 1]]}
+ }
+ },
+ {
+ "id": "road-steps",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "type", "steps"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[15, 1], [16, 1.6], [18, 6]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-dasharray": {
+ "base": 1,
+ "stops": [
+ [14, [1, 0]],
+ [15, [1.75, 1]],
+ [16, [1, 0.75]],
+ [17, [0.3, 0.3]]
+ ]
+ },
+ "line-opacity": {"base": 1, "stops": [[14, 0], [14.25, 1]]}
+ }
+ },
+ {
+ "id": "road-trunk_link",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "type", "trunk_link"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(46, 85%, 67%)",
+ "line-opacity": 1
+ }
+ },
+ {
+ "id": "road-motorway_link",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 10,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "class", "motorway_link"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(26, 100%, 68%)",
+ "line-opacity": 1
+ }
+ },
+ {
+ "id": "road-pedestrian",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "pedestrian"],
+ ["==", "structure", "none"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[14, 0.5], [18, 12]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": 1,
+ "line-dasharray": {
+ "base": 1,
+ "stops": [[14, [1, 0]], [15, [1.5, 0.4]], [16, [1, 0.2]]]
+ }
+ }
+ },
+ {
+ "id": "road-pedestrian-polygon-fill",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", "$type", "Polygon"],
+ [
+ "all",
+ ["==", "structure", "none"],
+ ["in", "class", "path", "pedestrian"]
+ ]
+ ],
+ "layout": {},
+ "paint": {
+ "fill-color": {
+ "base": 1,
+ "stops": [
+ [16, "hsl(230, 16%, 94%)"],
+ [16.25, "hsl(230, 50%, 98%)"]
+ ]
+ },
+ "fill-outline-color": "hsl(230, 26%, 88%)",
+ "fill-opacity": 1
+ }
+ },
+ {
+ "id": "road-pedestrian-polygon-pattern",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", "$type", "Polygon"],
+ [
+ "all",
+ ["==", "structure", "none"],
+ ["in", "class", "path", "pedestrian"]
+ ]
+ ],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(0, 0%, 100%)",
+ "fill-outline-color": "hsl(35, 10%, 83%)",
+ "fill-pattern": "pedestrian-polygon",
+ "fill-opacity": {"base": 1, "stops": [[16, 0], [16.25, 1]]}
+ }
+ },
+ {
+ "id": "road-polygon",
+ "type": "fill",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 12,
+ "filter": [
+ "all",
+ ["==", "$type", "Polygon"],
+ [
+ "all",
+ ["!in", "class", "motorway", "path", "pedestrian", "trunk"],
+ ["!in", "structure", "bridge", "tunnel"]
+ ]
+ ],
+ "layout": {},
+ "paint": {
+ "fill-color": "hsl(0, 0%, 100%)",
+ "fill-outline-color": "#d6d9e6"
+ }
+ },
+ {
+ "id": "road-service-link-track",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "trunk_link"],
+ ["!in", "structure", "bridge", "tunnel"],
+ ["in", "class", "link", "service", "track"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[14, 0.5], [18, 12]]},
+ "line-color": "hsl(0, 0%, 100%)"
+ }
+ },
+ {
+ "id": "road-street_limited",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street_limited"],
+ ["==", "structure", "none"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(35, 14%, 93%)",
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "road-street",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "class", "street"], ["==", "structure", "none"]]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "road-secondary-tertiary",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["in", "class", "secondary", "tertiary"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[8.5, 0.5], [10, 0.75], [18, 26]]
+ },
+ "line-color": {
+ "base": 1,
+ "stops": [[5, "hsl(35, 32%, 91%)"], [8, "hsl(0, 0%, 100%)"]]
+ },
+ "line-opacity": {"base": 1.2, "stops": [[5, 0], [5.5, 1]]}
+ }
+ },
+ {
+ "id": "road-primary",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "class", "primary"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-color": {
+ "base": 1,
+ "stops": [[5, "hsl(35, 32%, 91%)"], [7, "hsl(0, 0%, 100%)"]]
+ },
+ "line-opacity": 1
+ }
+ },
+ {
+ "id": "road-oneway-arrows-blue-minor",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "trunk_link"],
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "oneway", "true"],
+ [
+ "in",
+ "class",
+ "link",
+ "path",
+ "pedestrian",
+ "service",
+ "track"
+ ]
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": {
+ "base": 1,
+ "stops": [[17, "oneway-small"], [18, "oneway-large"]]
+ },
+ "icon-rotation-alignment": "map",
+ "icon-padding": 2,
+ "symbol-spacing": 200
+ },
+ "paint": {}
+ },
+ {
+ "id": "road-oneway-arrows-blue-major",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "trunk_link"],
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "oneway", "true"],
+ [
+ "in",
+ "class",
+ "primary",
+ "secondary",
+ "street",
+ "street_limited",
+ "tertiary"
+ ]
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": {
+ "base": 1,
+ "stops": [[16, "oneway-small"], [17, "oneway-large"]]
+ },
+ "icon-rotation-alignment": "map",
+ "icon-padding": 2,
+ "symbol-spacing": 200
+ },
+ "paint": {}
+ },
+ {
+ "id": "road-trunk",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "class", "trunk"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-color": {
+ "base": 1,
+ "stops": [
+ [6, "hsl(0, 0%, 100%)"],
+ [6.1, "hsl(46, 80%, 60%)"],
+ [9, "hsl(46, 85%, 67%)"]
+ ]
+ }
+ }
+ },
+ {
+ "id": "road-motorway",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["==", "class", "motorway"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-color": {
+ "base": 1,
+ "stops": [
+ [8, "hsl(26, 87%, 62%)"],
+ [9, "hsl(26, 100%, 68%)"]
+ ]
+ }
+ }
+ },
+ {
+ "id": "road-rail",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["in", "class", "major_rail", "minor_rail"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": {
+ "stops": [
+ [13, "hsl(50, 17%, 82%)"],
+ [16, "hsl(230, 10%, 74%)"]
+ ]
+ },
+ "line-width": {"base": 1.5, "stops": [[14, 0.5], [20, 1]]}
+ }
+ },
+ {
+ "id": "road-rail-tracks",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ ["in", "class", "major_rail", "minor_rail"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": {
+ "stops": [
+ [13, "hsl(50, 17%, 82%)"],
+ [16, "hsl(230, 10%, 74%)"]
+ ]
+ },
+ "line-width": {"base": 1.5, "stops": [[14, 4], [20, 8]]},
+ "line-dasharray": [0.1, 15],
+ "line-opacity": {"base": 1, "stops": [[13.75, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "level-crossings",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["==", "$type", "Point"],
+ ["==", "class", "level_crossing"]
+ ],
+ "layout": {
+ "icon-size": 1,
+ "icon-image": "level-crossing",
+ "icon-allow-overlap": true
+ },
+ "paint": {}
+ },
+ {
+ "id": "road-oneway-arrows-white",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "structure", "bridge", "tunnel"],
+ [
+ "!in",
+ "type",
+ "primary_link",
+ "secondary_link",
+ "tertiary_link"
+ ],
+ ["==", "oneway", "true"],
+ [
+ "in",
+ "class",
+ "link",
+ "motorway",
+ "motorway_link",
+ "trunk"
+ ]
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": {
+ "base": 1,
+ "stops": [
+ [16, "oneway-white-small"],
+ [17, "oneway-white-large"]
+ ]
+ },
+ "icon-padding": 2,
+ "symbol-spacing": 200
+ },
+ "paint": {}
+ },
+ {
+ "id": "turning-features",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855786460.0557"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["==", "$type", "Point"],
+ ["in", "class", "turning_circle", "turning_loop"]
+ ],
+ "layout": {
+ "icon-image": "turning-circle",
+ "icon-size": {"base": 1.5, "stops": [[14, 0.095], [18, 1]]},
+ "icon-allow-overlap": true,
+ "icon-ignore-placement": true,
+ "icon-padding": 0,
+ "icon-rotation-alignment": "map"
+ },
+ "paint": {}
+ },
+ {
+ "id": "bridge-path-bg",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "steps"],
+ ["==", "class", "path"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[15, 2], [18, 7]]},
+ "line-dasharray": [1, 0],
+ "line-color": "hsl(230, 17%, 82%)",
+ "line-blur": 0,
+ "line-opacity": {"base": 1, "stops": [[15, 0], [15.25, 1]]}
+ }
+ },
+ {
+ "id": "bridge-steps-bg",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "structure", "bridge"], ["==", "type", "steps"]]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[15, 2], [17, 4.6], [18, 7]]
+ },
+ "line-color": "hsl(230, 17%, 82%)",
+ "line-dasharray": [1, 0],
+ "line-opacity": {"base": 1, "stops": [[14, 0], [14.25, 0.75]]}
+ }
+ },
+ {
+ "id": "bridge-pedestrian-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "pedestrian"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[14, 2], [18, 14.5]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-gap-width": 0,
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "bridge-street-low",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": {
+ "stops": [[11.5, 0], [12, 1], [14, 1], [14.01, 0]]
+ }
+ }
+ },
+ {
+ "id": "bridge-street_limited-low",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street_limited"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": {
+ "stops": [[11.5, 0], [12, 1], [14, 1], [14.01, 0]]
+ }
+ }
+ },
+ {
+ "id": "bridge-service-link-track-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "trunk_link"],
+ ["==", "structure", "bridge"],
+ ["in", "class", "link", "service", "track"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-gap-width": {"base": 1.5, "stops": [[14, 0.5], [18, 12]]}
+ }
+ },
+ {
+ "id": "bridge-street_limited-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street_limited"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[13, 0], [14, 2], [18, 18]]
+ }
+ }
+ },
+ {
+ "id": "bridge-street-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]},
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[13, 0], [14, 2], [18, 18]]
+ }
+ }
+ },
+ {
+ "id": "bridge-secondary-tertiary-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "structure", "bridge"],
+ ["in", "class", "secondary", "tertiary"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.2, "stops": [[10, 0.75], [18, 2]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[8.5, 0.5], [10, 0.75], [18, 26]]
+ },
+ "line-translate": [0, 0]
+ }
+ },
+ {
+ "id": "bridge-primary-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "primary"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[10, 1], [16, 2]]},
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-gap-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-translate": [0, 0]
+ }
+ },
+ {
+ "id": "bridge-trunk_link-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "layer", 2, 3, 4, 5],
+ ["==", "structure", "bridge"],
+ ["==", "type", "trunk_link"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-opacity": {"base": 1, "stops": [[10.99, 0], [11, 1]]}
+ }
+ },
+ {
+ "id": "bridge-motorway_link-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "layer", 2, 3, 4, 5],
+ ["==", "class", "motorway_link"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-opacity": 1
+ }
+ },
+ {
+ "id": "bridge-trunk-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "layer", 2, 3, 4, 5],
+ ["==", "class", "trunk"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[10, 1], [16, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]}
+ }
+ },
+ {
+ "id": "bridge-motorway-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "layer", 2, 3, 4, 5],
+ ["==", "class", "motorway"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[10, 1], [16, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]}
+ }
+ },
+ {
+ "id": "bridge-construction",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "construction"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-join": "miter"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(230, 24%, 87%)",
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]},
+ "line-dasharray": {
+ "base": 1,
+ "stops": [
+ [14, [0.4, 0.8]],
+ [15, [0.3, 0.6]],
+ [16, [0.2, 0.3]],
+ [17, [0.2, 0.25]],
+ [18, [0.15, 0.15]]
+ ]
+ }
+ }
+ },
+ {
+ "id": "bridge-path",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "steps"],
+ ["==", "class", "path"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[15, 1], [18, 4]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-dasharray": {
+ "base": 1,
+ "stops": [
+ [14, [1, 0]],
+ [15, [1.75, 1]],
+ [16, [1, 0.75]],
+ [17, [1, 0.5]]
+ ]
+ },
+ "line-opacity": {"base": 1, "stops": [[14, 0], [14.25, 1]]}
+ }
+ },
+ {
+ "id": "bridge-steps",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["all", ["==", "structure", "bridge"], ["==", "type", "steps"]]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[15, 1], [16, 1.6], [18, 6]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-dasharray": {
+ "base": 1,
+ "stops": [
+ [14, [1, 0]],
+ [15, [1.75, 1]],
+ [16, [1, 0.75]],
+ [17, [0.3, 0.3]]
+ ]
+ },
+ "line-opacity": {"base": 1, "stops": [[14, 0], [14.25, 1]]}
+ }
+ },
+ {
+ "id": "bridge-trunk_link",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "layer", 2, 3, 4, 5],
+ ["==", "structure", "bridge"],
+ ["==", "type", "trunk_link"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(46, 85%, 67%)"
+ }
+ },
+ {
+ "id": "bridge-motorway_link",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "layer", 2, 3, 4, 5],
+ ["==", "class", "motorway_link"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(26, 100%, 68%)"
+ }
+ },
+ {
+ "id": "bridge-pedestrian",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "pedestrian"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[14, 0.5], [18, 12]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": 1,
+ "line-dasharray": {
+ "base": 1,
+ "stops": [[14, [1, 0]], [15, [1.5, 0.4]], [16, [1, 0.2]]]
+ }
+ }
+ },
+ {
+ "id": "bridge-service-link-track",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 14,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!=", "type", "trunk_link"],
+ ["==", "structure", "bridge"],
+ ["in", "class", "link", "service", "track"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[14, 0.5], [18, 12]]},
+ "line-color": "hsl(0, 0%, 100%)"
+ }
+ },
+ {
+ "id": "bridge-street_limited",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street_limited"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(35, 14%, 93%)",
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "bridge-street",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "street"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12.5, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]}
+ }
+ },
+ {
+ "id": "bridge-secondary-tertiary",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "structure", "bridge"],
+ ["in", "type", "secondary", "tertiary"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[8.5, 0.5], [10, 0.75], [18, 26]]
+ },
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": {"base": 1.2, "stops": [[5, 0], [5.5, 1]]}
+ }
+ },
+ {
+ "id": "bridge-primary",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "structure", "bridge"],
+ ["==", "type", "primary"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-opacity": 1
+ }
+ },
+ {
+ "id": "bridge-oneway-arrows-blue-minor",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "oneway", "true"],
+ ["==", "structure", "bridge"],
+ [
+ "in",
+ "class",
+ "link",
+ "path",
+ "pedestrian",
+ "service",
+ "track"
+ ]
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": {
+ "base": 1,
+ "stops": [[17, "oneway-small"], [18, "oneway-large"]]
+ },
+ "symbol-spacing": 200,
+ "icon-rotation-alignment": "map",
+ "icon-padding": 2
+ },
+ "paint": {}
+ },
+ {
+ "id": "bridge-oneway-arrows-blue-major",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "oneway", "true"],
+ ["==", "structure", "bridge"],
+ [
+ "in",
+ "class",
+ "primary",
+ "secondary",
+ "street",
+ "street_limited",
+ "tertiary"
+ ]
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": {
+ "base": 1,
+ "stops": [[16, "oneway-small"], [17, "oneway-large"]]
+ },
+ "symbol-spacing": 200,
+ "icon-rotation-alignment": "map",
+ "icon-padding": 2
+ },
+ "paint": {}
+ },
+ {
+ "id": "bridge-trunk",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "layer", 2, 3, 4, 5],
+ ["==", "class", "trunk"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-color": "hsl(46, 85%, 67%)"
+ }
+ },
+ {
+ "id": "bridge-motorway",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["!in", "layer", 2, 3, 4, 5],
+ ["==", "class", "motorway"],
+ ["==", "structure", "bridge"]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-color": "hsl(26, 100%, 68%)"
+ }
+ },
+ {
+ "id": "bridge-rail",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "structure", "bridge"],
+ ["in", "class", "major_rail", "minor_rail"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": {
+ "stops": [
+ [13, "hsl(50, 17%, 82%)"],
+ [16, "hsl(230, 10%, 74%)"]
+ ]
+ },
+ "line-width": {"base": 1.5, "stops": [[14, 0.5], [20, 1]]}
+ }
+ },
+ {
+ "id": "bridge-rail-tracks",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "structure", "bridge"],
+ ["in", "class", "major_rail", "minor_rail"]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": {
+ "stops": [
+ [13, "hsl(50, 17%, 82%)"],
+ [16, "hsl(230, 10%, 74%)"]
+ ]
+ },
+ "line-width": {"base": 1.5, "stops": [[14, 4], [20, 8]]},
+ "line-dasharray": [0.1, 15],
+ "line-opacity": {"base": 1, "stops": [[13.75, 0], [20, 1]]}
+ }
+ },
+ {
+ "id": "bridge-trunk_link-2-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "structure", "bridge"],
+ ["==", "type", "trunk_link"],
+ [">=", "layer", 2]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-opacity": {"base": 1, "stops": [[10.99, 0], [11, 1]]}
+ }
+ },
+ {
+ "id": "bridge-motorway_link-2-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "motorway_link"],
+ ["==", "structure", "bridge"],
+ [">=", "layer", 2]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[12, 0.75], [20, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-opacity": 1
+ }
+ },
+ {
+ "id": "bridge-trunk-2-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "trunk"],
+ ["==", "structure", "bridge"],
+ [">=", "layer", 2]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[10, 1], [16, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]}
+ }
+ },
+ {
+ "id": "bridge-motorway-2-case",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "motorway"],
+ ["==", "structure", "bridge"],
+ [">=", "layer", 2]
+ ]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[10, 1], [16, 2]]},
+ "line-color": "hsl(0, 0%, 100%)",
+ "line-gap-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]}
+ }
+ },
+ {
+ "id": "bridge-trunk_link-2",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "structure", "bridge"],
+ ["==", "type", "trunk_link"],
+ [">=", "layer", 2]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(46, 85%, 67%)"
+ }
+ },
+ {
+ "id": "bridge-motorway_link-2",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "motorway_link"],
+ ["==", "structure", "bridge"],
+ [">=", "layer", 2]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {
+ "base": 1.5,
+ "stops": [[12, 0.5], [14, 2], [18, 18]]
+ },
+ "line-color": "hsl(26, 100%, 68%)"
+ }
+ },
+ {
+ "id": "bridge-trunk-2",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "trunk"],
+ ["==", "structure", "bridge"],
+ [">=", "layer", 2]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-color": "hsl(46, 85%, 67%)"
+ }
+ },
+ {
+ "id": "bridge-motorway-2",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ ["==", "class", "motorway"],
+ ["==", "structure", "bridge"],
+ [">=", "layer", 2]
+ ]
+ ],
+ "layout": {"line-cap": "round", "line-join": "round"},
+ "paint": {
+ "line-width": {"base": 1.5, "stops": [[5, 0.75], [18, 32]]},
+ "line-color": "hsl(26, 100%, 68%)"
+ }
+ },
+ {
+ "id": "bridge-oneway-arrows-white",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444855799204.86"},
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 16,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "all",
+ [
+ "!in",
+ "type",
+ "primary_link",
+ "secondary_link",
+ "tertiary_link"
+ ],
+ ["==", "oneway", "true"],
+ ["==", "structure", "bridge"],
+ [
+ "in",
+ "class",
+ "link",
+ "motorway",
+ "motorway_link",
+ "trunk"
+ ]
+ ]
+ ],
+ "layout": {
+ "symbol-placement": "line",
+ "icon-image": {
+ "base": 1,
+ "stops": [
+ [16, "oneway-white-small"],
+ [17, "oneway-white-large"]
+ ]
+ },
+ "symbol-spacing": 200,
+ "icon-padding": 2
+ },
+ "paint": {}
+ },
+ {
+ "id": "aerialway",
+ "type": "line",
+ "source": "composite",
+ "source-layer": "road",
+ "minzoom": 13,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["==", "class", "aerialway"]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-color": "hsl(230, 10%, 74%)",
+ "line-width": {"base": 1.5, "stops": [[14, 0.5], [20, 1]]}
+ }
+ },
+ {
+ "id": "admin-3-4-boundaries-bg",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444934295202.7542"},
+ "source": "composite",
+ "source-layer": "admin",
+ "filter": ["all", ["==", "maritime", 0], [">=", "admin_level", 3]],
+ "layout": {"line-join": "bevel"},
+ "paint": {
+ "line-color": {
+ "base": 1,
+ "stops": [
+ [8, "hsl(35, 12%, 89%)"],
+ [16, "hsl(230, 49%, 90%)"]
+ ]
+ },
+ "line-width": {"base": 1, "stops": [[7, 3.75], [12, 5.5]]},
+ "line-opacity": {"base": 1, "stops": [[7, 0], [8, 0.75]]},
+ "line-dasharray": [1, 0],
+ "line-translate": [0, 0],
+ "line-blur": {"base": 1, "stops": [[3, 0], [8, 3]]}
+ }
+ },
+ {
+ "id": "admin-2-boundaries-bg",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444934295202.7542"},
+ "source": "composite",
+ "source-layer": "admin",
+ "minzoom": 1,
+ "filter": ["all", ["==", "admin_level", 2], ["==", "maritime", 0]],
+ "layout": {"line-join": "miter"},
+ "paint": {
+ "line-width": {"base": 1, "stops": [[3, 3.5], [10, 8]]},
+ "line-color": {
+ "base": 1,
+ "stops": [
+ [6, "hsl(35, 12%, 89%)"],
+ [8, "hsl(230, 49%, 90%)"]
+ ]
+ },
+ "line-opacity": {"base": 1, "stops": [[3, 0], [4, 0.5]]},
+ "line-translate": [0, 0],
+ "line-blur": {"base": 1, "stops": [[3, 0], [10, 2]]}
+ }
+ },
+ {
+ "id": "admin-3-4-boundaries",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444934295202.7542"},
+ "source": "composite",
+ "source-layer": "admin",
+ "filter": ["all", ["==", "maritime", 0], [">=", "admin_level", 3]],
+ "layout": {"line-join": "round", "line-cap": "round"},
+ "paint": {
+ "line-dasharray": {
+ "base": 1,
+ "stops": [[6, [2, 0]], [7, [2, 2, 6, 2]]]
+ },
+ "line-width": {"base": 1, "stops": [[7, 0.75], [12, 1.5]]},
+ "line-opacity": {"base": 1, "stops": [[2, 0], [3, 1]]},
+ "line-color": {
+ "base": 1,
+ "stops": [
+ [3, "hsl(230, 14%, 77%)"],
+ [7, "hsl(230, 8%, 62%)"]
+ ]
+ }
+ }
+ },
+ {
+ "id": "admin-2-boundaries",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444934295202.7542"},
+ "source": "composite",
+ "source-layer": "admin",
+ "minzoom": 1,
+ "filter": [
+ "all",
+ ["==", "admin_level", 2],
+ ["==", "disputed", 0],
+ ["==", "maritime", 0]
+ ],
+ "layout": {"line-join": "round", "line-cap": "round"},
+ "paint": {
+ "line-color": "hsl(230, 8%, 51%)",
+ "line-width": {"base": 1, "stops": [[3, 0.5], [10, 2]]}
+ }
+ },
+ {
+ "id": "admin-2-boundaries-dispute",
+ "type": "line",
+ "metadata": {"mapbox:group": "1444934295202.7542"},
+ "source": "composite",
+ "source-layer": "admin",
+ "minzoom": 1,
+ "filter": [
+ "all",
+ ["==", "admin_level", 2],
+ ["==", "disputed", 1],
+ ["==", "maritime", 0]
+ ],
+ "layout": {"line-join": "round"},
+ "paint": {
+ "line-dasharray": [1.5, 1.5],
+ "line-color": "hsl(230, 8%, 51%)",
+ "line-width": {"base": 1, "stops": [[3, 0.5], [10, 2]]}
+ }
+ },
+ {
+ "id": "housenum-label",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "housenum_label",
+ "minzoom": 17,
+ "layout": {
+ "text-field": "{house_num}",
+ "text-font": [
+ "DIN Offc Pro Italic",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 4,
+ "text-max-width": 7,
+ "text-size": 9.5
+ },
+ "paint": {
+ "text-color": "hsl(35, 2%, 69%)",
+ "text-halo-color": "hsl(35, 8%, 85%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0
+ }
+ },
+ {
+ "id": "waterway-label",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "waterway_label",
+ "minzoom": 12,
+ "filter": ["in", "class", "canal", "river"],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-font": [
+ "DIN Offc Pro Italic",
+ "Arial Unicode MS Regular"
+ ],
+ "symbol-placement": "line",
+ "text-pitch-alignment": "viewport",
+ "text-max-angle": 30,
+ "text-size": {"base": 1, "stops": [[13, 12], [18, 16]]}
+ },
+ "paint": {
+ "text-halo-width": 0.5,
+ "text-halo-color": "hsl(196, 80%, 70%)",
+ "text-color": "hsl(230, 48%, 44%)",
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "poi-scalerank4-l15",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933456003.5437"},
+ "source": "composite",
+ "source-layer": "poi_label",
+ "minzoom": 17,
+ "filter": [
+ "all",
+ [
+ "!in",
+ "maki",
+ "campsite",
+ "cemetery",
+ "dog-park",
+ "garden",
+ "golf",
+ "park",
+ "picnic-site",
+ "playground",
+ "zoo"
+ ],
+ ["==", "scalerank", 4],
+ [">=", "localrank", 15]
+ ],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[16, 11], [20, 13]]},
+ "icon-image": "{maki}-11",
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 2,
+ "text-offset": [0, 0.65],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01,
+ "text-max-width": 8
+ },
+ "paint": {
+ "text-color": "hsl(26, 25%, 32%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "poi-scalerank4-l1",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933456003.5437"},
+ "source": "composite",
+ "source-layer": "poi_label",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "!in",
+ "maki",
+ "campsite",
+ "cemetery",
+ "dog-park",
+ "garden",
+ "golf",
+ "park",
+ "picnic-site",
+ "playground",
+ "zoo"
+ ],
+ ["<=", "localrank", 14],
+ ["==", "scalerank", 4]
+ ],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[16, 11], [20, 13]]},
+ "icon-image": "{maki}-11",
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 1,
+ "text-offset": [0, 0.65],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01,
+ "text-max-width": 8
+ },
+ "paint": {
+ "text-color": "hsl(26, 25%, 32%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "poi-parks_scalerank4",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933456003.5437"},
+ "source": "composite",
+ "source-layer": "poi_label",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ ["==", "scalerank", 4],
+ [
+ "in",
+ "maki",
+ "campsite",
+ "cemetery",
+ "dog-park",
+ "garden",
+ "golf",
+ "park",
+ "picnic-site",
+ "playground",
+ "zoo"
+ ]
+ ],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[16, 11], [20, 13]]},
+ "icon-image": "{maki}-11",
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 1,
+ "text-offset": [0, 0.65],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01,
+ "text-max-width": 8
+ },
+ "paint": {
+ "text-color": "hsl(100, 100%, 20%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "poi-scalerank3",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933372896.5967"},
+ "source": "composite",
+ "source-layer": "poi_label",
+ "filter": [
+ "all",
+ [
+ "!in",
+ "maki",
+ "campsite",
+ "cemetery",
+ "dog-park",
+ "garden",
+ "golf",
+ "park",
+ "picnic-site",
+ "playground",
+ "zoo"
+ ],
+ ["==", "scalerank", 3]
+ ],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[16, 11], [20, 13]]},
+ "icon-image": "{maki}-11",
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 1,
+ "text-offset": [0, 0.65],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01,
+ "text-max-width": 8
+ },
+ "paint": {
+ "text-color": "hsl(26, 25%, 32%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "poi-parks-scalerank3",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933372896.5967"},
+ "source": "composite",
+ "source-layer": "poi_label",
+ "filter": [
+ "all",
+ ["==", "scalerank", 3],
+ [
+ "in",
+ "maki",
+ "campsite",
+ "cemetery",
+ "dog-park",
+ "garden",
+ "golf",
+ "park",
+ "picnic-site",
+ "playground",
+ "zoo"
+ ]
+ ],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[16, 11], [20, 13]]},
+ "icon-image": "{maki}-11",
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 2,
+ "text-offset": [0, 0.65],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01,
+ "text-max-width": 8
+ },
+ "paint": {
+ "text-color": "hsl(100, 100%, 20%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "road-label-small",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933721429.3076"},
+ "source": "composite",
+ "source-layer": "road_label",
+ "minzoom": 15,
+ "filter": [
+ "all",
+ [
+ "!in",
+ "class",
+ "golf",
+ "link",
+ "motorway",
+ "pedestrian",
+ "primary",
+ "secondary",
+ "street",
+ "street_limited",
+ "tertiary",
+ "trunk"
+ ],
+ ["==", "$type", "LineString"]
+ ],
+ "layout": {
+ "text-size": {"base": 1, "stops": [[15, 10], [20, 13]]},
+ "text-max-angle": 30,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Regular",
+ "Arial Unicode MS Regular"
+ ],
+ "symbol-placement": "line",
+ "text-padding": 1,
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1.25,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "road-label-medium",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933721429.3076"},
+ "source": "composite",
+ "source-layer": "road_label",
+ "minzoom": 11,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [
+ "in",
+ "class",
+ "link",
+ "pedestrian",
+ "street",
+ "street_limited"
+ ]
+ ],
+ "layout": {
+ "text-size": {"base": 1, "stops": [[11, 10], [20, 14]]},
+ "text-max-angle": 30,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Regular",
+ "Arial Unicode MS Regular"
+ ],
+ "symbol-placement": "line",
+ "text-padding": 1,
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "road-label-large",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933721429.3076"},
+ "source": "composite",
+ "source-layer": "road_label",
+ "filter": [
+ "in",
+ "class",
+ "motorway",
+ "primary",
+ "secondary",
+ "tertiary",
+ "trunk"
+ ],
+ "layout": {
+ "text-size": {"base": 1, "stops": [[9, 10], [20, 16]]},
+ "text-max-angle": 30,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Regular",
+ "Arial Unicode MS Regular"
+ ],
+ "symbol-placement": "line",
+ "text-padding": 1,
+ "text-rotation-alignment": "map",
+ "text-pitch-alignment": "viewport",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": "hsla(0, 0%, 100%, 0.75)",
+ "text-halo-width": 1,
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "road-shields-black",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933575858.6992"},
+ "source": "composite",
+ "source-layer": "road_label",
+ "filter": [
+ "all",
+ [
+ "!in",
+ "shield",
+ "at-expressway",
+ "at-motorway",
+ "at-state-b",
+ "bg-motorway",
+ "bg-national",
+ "ch-main",
+ "ch-motorway",
+ "cz-motorway",
+ "cz-road",
+ "de-motorway",
+ "e-road",
+ "fi-main",
+ "gr-motorway",
+ "gr-national",
+ "hr-motorway",
+ "hr-state",
+ "hu-main",
+ "hu-motorway",
+ "nz-state",
+ "pl-expressway",
+ "pl-motorway",
+ "pl-national",
+ "ro-county",
+ "ro-motorway",
+ "ro-national",
+ "rs-motorway",
+ "rs-state-1b",
+ "se-main",
+ "si-expressway",
+ "si-motorway",
+ "sk-highway",
+ "sk-road",
+ "us-interstate",
+ "us-interstate-business",
+ "us-interstate-duplex",
+ "us-interstate-truck",
+ "za-metropolitan",
+ "za-national",
+ "za-provincial",
+ "za-regional"
+ ],
+ ["<=", "reflen", 6]
+ ],
+ "layout": {
+ "text-size": 9,
+ "icon-image": "{shield}-{reflen}",
+ "icon-rotation-alignment": "viewport",
+ "text-max-angle": 38,
+ "symbol-spacing": {"base": 1, "stops": [[11, 150], [14, 200]]},
+ "text-font": ["DIN Offc Pro Bold", "Arial Unicode MS Bold"],
+ "symbol-placement": {
+ "base": 1,
+ "stops": [[10, "point"], [11, "line"]]
+ },
+ "text-padding": 2,
+ "text-rotation-alignment": "viewport",
+ "text-field": "{ref}",
+ "text-letter-spacing": 0.05,
+ "icon-padding": 2
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 7%)",
+ "icon-halo-color": "rgba(0, 0, 0, 1)",
+ "icon-halo-width": 1,
+ "text-opacity": 1,
+ "icon-color": "white",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0
+ }
+ },
+ {
+ "id": "road-shields-white",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933575858.6992"},
+ "source": "composite",
+ "source-layer": "road_label",
+ "filter": [
+ "all",
+ ["<=", "reflen", 6],
+ [
+ "in",
+ "shield",
+ "at-expressway",
+ "at-motorway",
+ "at-state-b",
+ "bg-motorway",
+ "bg-national",
+ "ch-main",
+ "ch-motorway",
+ "cz-motorway",
+ "cz-road",
+ "de-motorway",
+ "e-road",
+ "fi-main",
+ "gr-motorway",
+ "gr-national",
+ "hr-motorway",
+ "hr-state",
+ "hu-main",
+ "hu-motorway",
+ "nz-state",
+ "pl-expressway",
+ "pl-motorway",
+ "pl-national",
+ "ro-county",
+ "ro-motorway",
+ "ro-national",
+ "rs-motorway",
+ "rs-state-1b",
+ "se-main",
+ "si-expressway",
+ "si-motorway",
+ "sk-highway",
+ "sk-road",
+ "us-interstate",
+ "us-interstate-business",
+ "us-interstate-duplex",
+ "us-interstate-truck",
+ "za-metropolitan",
+ "za-national",
+ "za-provincial",
+ "za-regional"
+ ]
+ ],
+ "layout": {
+ "text-size": 9,
+ "icon-image": "{shield}-{reflen}",
+ "icon-rotation-alignment": "viewport",
+ "text-max-angle": 38,
+ "symbol-spacing": {"base": 1, "stops": [[11, 150], [14, 200]]},
+ "text-font": ["DIN Offc Pro Bold", "Arial Unicode MS Bold"],
+ "symbol-placement": {
+ "base": 1,
+ "stops": [[10, "point"], [11, "line"]]
+ },
+ "text-padding": 2,
+ "text-rotation-alignment": "viewport",
+ "text-field": "{ref}",
+ "text-letter-spacing": 0.05,
+ "icon-padding": 2
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 100%)",
+ "icon-halo-color": "rgba(0, 0, 0, 1)",
+ "icon-halo-width": 1,
+ "text-opacity": 1,
+ "icon-color": "white",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0
+ }
+ },
+ {
+ "id": "motorway-junction",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933575858.6992"},
+ "source": "composite",
+ "source-layer": "motorway_junction",
+ "minzoom": 14,
+ "filter": ["all", ["<=", "reflen", 9], [">", "reflen", 0]],
+ "layout": {
+ "text-field": "{ref}",
+ "text-size": 9,
+ "icon-image": "motorway-exit-{reflen}",
+ "text-font": ["DIN Offc Pro Bold", "Arial Unicode MS Bold"]
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 100%)",
+ "text-translate": [0, 0]
+ }
+ },
+ {
+ "id": "poi-scalerank2",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933358918.2366"},
+ "source": "composite",
+ "source-layer": "poi_label",
+ "filter": [
+ "all",
+ [
+ "!in",
+ "maki",
+ "campsite",
+ "cemetery",
+ "dog-park",
+ "garden",
+ "golf",
+ "park",
+ "picnic-site",
+ "playground",
+ "zoo"
+ ],
+ ["==", "scalerank", 2]
+ ],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[14, 11], [20, 14]]},
+ "icon-image": {"stops": [[14, "{maki}-11"], [15, "{maki}-15"]]},
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 2,
+ "text-offset": [0, 0.65],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01,
+ "text-max-width": 8
+ },
+ "paint": {
+ "text-color": "hsl(26, 25%, 32%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "poi-parks-scalerank2",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933358918.2366"},
+ "source": "composite",
+ "source-layer": "poi_label",
+ "filter": [
+ "all",
+ ["==", "scalerank", 2],
+ [
+ "in",
+ "maki",
+ "campsite",
+ "cemetery",
+ "dog-park",
+ "garden",
+ "golf",
+ "park",
+ "picnic-site",
+ "playground",
+ "zoo"
+ ]
+ ],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[14, 11], [20, 14]]},
+ "icon-image": {"stops": [[14, "{maki}-11"], [15, "{maki}-15"]]},
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 2,
+ "text-offset": [0, 0.65],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01,
+ "text-max-width": 8
+ },
+ "paint": {
+ "text-color": "hsl(100, 100%, 20%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "rail-label",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "rail_station_label",
+ "minzoom": 12,
+ "filter": ["!=", "maki", "entrance"],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[16, 11], [20, 13]]},
+ "icon-image": "{network}",
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-offset": [0, 0.85],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": {
+ "base": 1,
+ "stops": [[0, ""], [13, "{name_en}"]]
+ },
+ "text-letter-spacing": 0.01,
+ "icon-padding": 0,
+ "text-max-width": 7
+ },
+ "paint": {
+ "text-color": "hsl(230, 48%, 44%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0.5,
+ "icon-halo-width": 4,
+ "icon-halo-color": "#fff",
+ "text-opacity": {"base": 1, "stops": [[13.99, 0], [14, 1]]},
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "water-label-sm",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933808272.805"},
+ "source": "composite",
+ "source-layer": "water_label",
+ "minzoom": 15,
+ "filter": ["<=", "area", 10000],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-font": [
+ "DIN Offc Pro Italic",
+ "Arial Unicode MS Regular"
+ ],
+ "text-max-width": 7,
+ "text-size": {"base": 1, "stops": [[16, 13], [20, 16]]}
+ },
+ "paint": {"text-color": "hsl(230, 48%, 44%)"}
+ },
+ {
+ "id": "water-label",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933808272.805"},
+ "source": "composite",
+ "source-layer": "water_label",
+ "minzoom": 5,
+ "filter": [">", "area", 10000],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-font": [
+ "DIN Offc Pro Italic",
+ "Arial Unicode MS Regular"
+ ],
+ "text-max-width": 7,
+ "text-size": {"base": 1, "stops": [[13, 13], [18, 18]]}
+ },
+ "paint": {"text-color": "hsl(230, 48%, 44%)"}
+ },
+ {
+ "id": "place-residential",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "place_label",
+ "maxzoom": 18,
+ "filter": [
+ "all",
+ ["all", ["<=", "localrank", 10], ["==", "type", "residential"]],
+ ["in", "$type", "LineString", "Point", "Polygon"]
+ ],
+ "layout": {
+ "text-line-height": 1.2,
+ "text-size": {"base": 1, "stops": [[10, 11], [18, 14]]},
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Regular",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 2,
+ "text-offset": [0, 0],
+ "text-rotation-alignment": "viewport",
+ "text-field": "{name_en}",
+ "text-max-width": 7
+ },
+ "paint": {
+ "text-color": "hsl(26, 25%, 32%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "poi-parks-scalerank1",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933322393.2852"},
+ "source": "composite",
+ "source-layer": "poi_label",
+ "filter": [
+ "all",
+ ["<=", "scalerank", 1],
+ [
+ "in",
+ "maki",
+ "campsite",
+ "cemetery",
+ "dog-park",
+ "garden",
+ "golf",
+ "park",
+ "picnic-site",
+ "playground",
+ "zoo"
+ ]
+ ],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[10, 11], [18, 14]]},
+ "icon-image": {"stops": [[13, "{maki}-11"], [14, "{maki}-15"]]},
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 2,
+ "text-offset": [0, 0.65],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01,
+ "text-max-width": 8
+ },
+ "paint": {
+ "text-color": "hsl(100, 100%, 20%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "poi-scalerank1",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444933322393.2852"},
+ "source": "composite",
+ "source-layer": "poi_label",
+ "filter": [
+ "all",
+ [
+ "!in",
+ "maki",
+ "campsite",
+ "cemetery",
+ "dog-park",
+ "garden",
+ "golf",
+ "park",
+ "picnic-site",
+ "playground",
+ "zoo"
+ ],
+ ["<=", "scalerank", 1]
+ ],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[10, 11], [18, 14]]},
+ "icon-image": {"stops": [[13, "{maki}-11"], [14, "{maki}-15"]]},
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 2,
+ "text-offset": [0, 0.65],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01,
+ "text-max-width": 8
+ },
+ "paint": {
+ "text-color": "hsl(26, 25%, 32%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "airport-label",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "airport_label",
+ "minzoom": 9,
+ "filter": ["<=", "scalerank", 2],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[10, 12], [18, 18]]},
+ "icon-image": {"stops": [[12, "{maki}-11"], [13, "{maki}-15"]]},
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 2,
+ "text-offset": [0, 0.75],
+ "text-rotation-alignment": "viewport",
+ "text-anchor": "top",
+ "text-field": {"stops": [[11, "{ref}"], [12, "{name_en}"]]},
+ "text-letter-spacing": 0.01,
+ "text-max-width": 9
+ },
+ "paint": {
+ "text-color": "hsl(230, 48%, 44%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 0.5,
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "place-islet-archipelago-aboriginal",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "place_label",
+ "maxzoom": 16,
+ "filter": [
+ "in",
+ "type",
+ "aboriginal_lands",
+ "archipelago",
+ "islet"
+ ],
+ "layout": {
+ "text-line-height": 1.2,
+ "text-size": {"base": 1, "stops": [[10, 11], [18, 16]]},
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Regular",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 2,
+ "text-offset": [0, 0],
+ "text-rotation-alignment": "viewport",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01,
+ "text-max-width": 8
+ },
+ "paint": {
+ "text-color": "hsl(230, 29%, 35%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "place-neighbourhood",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "place_label",
+ "minzoom": 10,
+ "maxzoom": 16,
+ "filter": ["==", "type", "neighbourhood"],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-transform": "uppercase",
+ "text-letter-spacing": 0.1,
+ "text-max-width": 7,
+ "text-font": [
+ "DIN Offc Pro Regular",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 3,
+ "text-size": {"base": 1, "stops": [[12, 11], [16, 16]]}
+ },
+ "paint": {
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1,
+ "text-color": "hsl(230, 29%, 35%)",
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "place-suburb",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "place_label",
+ "minzoom": 10,
+ "maxzoom": 16,
+ "filter": ["==", "type", "suburb"],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-transform": "uppercase",
+ "text-font": [
+ "DIN Offc Pro Regular",
+ "Arial Unicode MS Regular"
+ ],
+ "text-letter-spacing": 0.15,
+ "text-max-width": 7,
+ "text-padding": 3,
+ "text-size": {"base": 1, "stops": [[11, 11], [15, 18]]}
+ },
+ "paint": {
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1,
+ "text-color": "hsl(230, 29%, 35%)",
+ "text-halo-blur": 0.5
+ }
+ },
+ {
+ "id": "place-hamlet",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "place_label",
+ "minzoom": 10,
+ "maxzoom": 16,
+ "filter": ["==", "type", "hamlet"],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-font": [
+ "DIN Offc Pro Regular",
+ "Arial Unicode MS Regular"
+ ],
+ "text-size": {"base": 1, "stops": [[12, 11.5], [15, 16]]}
+ },
+ "paint": {
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1.25,
+ "text-color": "hsl(0, 0%, 0%)"
+ }
+ },
+ {
+ "id": "place-village",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "place_label",
+ "minzoom": 8,
+ "maxzoom": 15,
+ "filter": ["==", "type", "village"],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-font": [
+ "DIN Offc Pro Regular",
+ "Arial Unicode MS Regular"
+ ],
+ "text-max-width": 7,
+ "text-size": {"base": 1, "stops": [[10, 11.5], [16, 18]]}
+ },
+ "paint": {
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1.25,
+ "text-color": "hsl(0, 0%, 0%)"
+ }
+ },
+ {
+ "id": "place-town",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "place_label",
+ "minzoom": 6,
+ "maxzoom": 15,
+ "filter": ["==", "type", "town"],
+ "layout": {
+ "icon-image": "dot-9",
+ "text-font": {
+ "base": 1,
+ "stops": [
+ [
+ 11,
+ ["DIN Offc Pro Regular", "Arial Unicode MS Regular"]
+ ],
+ [
+ 12,
+ ["DIN Offc Pro Medium", "Arial Unicode MS Regular"]
+ ]
+ ]
+ },
+ "text-offset": {
+ "base": 1,
+ "stops": [[7, [0, -0.15]], [8, [0, 0]]]
+ },
+ "text-anchor": {
+ "base": 1,
+ "stops": [[7, "bottom"], [8, "center"]]
+ },
+ "text-field": "{name_en}",
+ "text-max-width": 7,
+ "text-size": {"base": 1, "stops": [[7, 11.5], [15, 20]]}
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1.25,
+ "icon-opacity": {"base": 1, "stops": [[7.99, 1], [8, 0]]}
+ }
+ },
+ {
+ "id": "place-island",
+ "type": "symbol",
+ "source": "composite",
+ "source-layer": "place_label",
+ "maxzoom": 16,
+ "filter": ["==", "type", "island"],
+ "layout": {
+ "text-line-height": 1.2,
+ "text-size": {"base": 1, "stops": [[10, 11], [18, 16]]},
+ "text-max-angle": 38,
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Regular",
+ "Arial Unicode MS Regular"
+ ],
+ "text-padding": 2,
+ "text-offset": [0, 0],
+ "text-rotation-alignment": "viewport",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.01,
+ "text-max-width": 7
+ },
+ "paint": {
+ "text-color": "hsl(230, 29%, 35%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "place-city-sm",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444862510685.128"},
+ "source": "composite",
+ "source-layer": "place_label",
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ ["!in", "scalerank", 0, 1, 2, 3, 4, 5],
+ ["==", "type", "city"]
+ ],
+ "layout": {
+ "text-size": {"base": 1, "stops": [[6, 12], [14, 22]]},
+ "icon-image": "dot-9",
+ "text-font": {
+ "base": 1,
+ "stops": [
+ [
+ 7,
+ ["DIN Offc Pro Regular", "Arial Unicode MS Regular"]
+ ],
+ [8, ["DIN Offc Pro Medium", "Arial Unicode MS Regular"]]
+ ]
+ },
+ "text-offset": {
+ "base": 1,
+ "stops": [[7.99, [0, -0.2]], [8, [0, 0]]]
+ },
+ "text-anchor": {
+ "base": 1,
+ "stops": [[7, "bottom"], [8, "center"]]
+ },
+ "text-field": "{name_en}",
+ "text-max-width": 7
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1.25,
+ "icon-opacity": {"base": 1, "stops": [[7.99, 1], [8, 0]]}
+ }
+ },
+ {
+ "id": "place-city-md-s",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444862510685.128"},
+ "source": "composite",
+ "source-layer": "place_label",
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ ["==", "type", "city"],
+ ["in", "ldir", "E", "S", "SE", "SW"],
+ ["in", "scalerank", 3, 4, 5]
+ ],
+ "layout": {
+ "text-field": "{name_en}",
+ "icon-image": "dot-10",
+ "text-anchor": {
+ "base": 1,
+ "stops": [[7, "top"], [8, "center"]]
+ },
+ "text-offset": {
+ "base": 1,
+ "stops": [[7.99, [0, 0.1]], [8, [0, 0]]]
+ },
+ "text-font": {
+ "base": 1,
+ "stops": [
+ [
+ 7,
+ ["DIN Offc Pro Regular", "Arial Unicode MS Regular"]
+ ],
+ [8, ["DIN Offc Pro Medium", "Arial Unicode MS Regular"]]
+ ]
+ },
+ "text-size": {"base": 0.9, "stops": [[5, 12], [12, 22]]}
+ },
+ "paint": {
+ "text-halo-width": 1,
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-blur": 1,
+ "icon-opacity": {"base": 1, "stops": [[7.99, 1], [8, 0]]}
+ }
+ },
+ {
+ "id": "place-city-md-n",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444862510685.128"},
+ "source": "composite",
+ "source-layer": "place_label",
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ ["==", "type", "city"],
+ ["in", "ldir", "N", "NE", "NW", "W"],
+ ["in", "scalerank", 3, 4, 5]
+ ],
+ "layout": {
+ "icon-image": "dot-10",
+ "text-font": {
+ "base": 1,
+ "stops": [
+ [
+ 7,
+ ["DIN Offc Pro Regular", "Arial Unicode MS Regular"]
+ ],
+ [8, ["DIN Offc Pro Medium", "Arial Unicode MS Regular"]]
+ ]
+ },
+ "text-offset": {
+ "base": 1,
+ "stops": [[7.99, [0, -0.25]], [8, [0, 0]]]
+ },
+ "text-anchor": {
+ "base": 1,
+ "stops": [[7, "bottom"], [8, "center"]]
+ },
+ "text-field": "{name_en}",
+ "text-max-width": 7,
+ "text-size": {"base": 0.9, "stops": [[5, 12], [12, 22]]}
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1,
+ "icon-opacity": {"base": 1, "stops": [[7.99, 1], [8, 0]]},
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "place-city-lg-s",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444862510685.128"},
+ "source": "composite",
+ "source-layer": "place_label",
+ "minzoom": 1,
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ ["<=", "scalerank", 2],
+ ["==", "type", "city"],
+ ["in", "ldir", "E", "S", "SE", "SW"]
+ ],
+ "layout": {
+ "icon-image": "dot-11",
+ "text-font": {
+ "base": 1,
+ "stops": [
+ [
+ 7,
+ ["DIN Offc Pro Regular", "Arial Unicode MS Regular"]
+ ],
+ [8, ["DIN Offc Pro Medium", "Arial Unicode MS Regular"]]
+ ]
+ },
+ "text-offset": {
+ "base": 1,
+ "stops": [[7.99, [0, 0.15]], [8, [0, 0]]]
+ },
+ "text-anchor": {
+ "base": 1,
+ "stops": [[7, "top"], [8, "center"]]
+ },
+ "text-field": "{name_en}",
+ "text-max-width": 7,
+ "text-size": {"base": 0.9, "stops": [[4, 12], [10, 22]]}
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1,
+ "icon-opacity": {"base": 1, "stops": [[7.99, 1], [8, 0]]},
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "place-city-lg-n",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444862510685.128"},
+ "source": "composite",
+ "source-layer": "place_label",
+ "minzoom": 1,
+ "maxzoom": 14,
+ "filter": [
+ "all",
+ ["<=", "scalerank", 2],
+ ["==", "type", "city"],
+ ["in", "ldir", "N", "NE", "NW", "W"]
+ ],
+ "layout": {
+ "icon-image": "dot-11",
+ "text-font": {
+ "base": 1,
+ "stops": [
+ [
+ 7,
+ ["DIN Offc Pro Regular", "Arial Unicode MS Regular"]
+ ],
+ [8, ["DIN Offc Pro Medium", "Arial Unicode MS Regular"]]
+ ]
+ },
+ "text-offset": {
+ "base": 1,
+ "stops": [[7.99, [0, -0.25]], [8, [0, 0]]]
+ },
+ "text-anchor": {
+ "base": 1,
+ "stops": [[7, "bottom"], [8, "center"]]
+ },
+ "text-field": "{name_en}",
+ "text-max-width": 7,
+ "text-size": {"base": 0.9, "stops": [[4, 12], [10, 22]]}
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-opacity": 1,
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1,
+ "icon-opacity": {"base": 1, "stops": [[7.99, 1], [8, 0]]},
+ "text-halo-blur": 1
+ }
+ },
+ {
+ "id": "marine-label-sm-ln",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856087950.3635"},
+ "source": "composite",
+ "source-layer": "marine_label",
+ "minzoom": 3,
+ "maxzoom": 10,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ [">=", "labelrank", 4]
+ ],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1, "stops": [[3, 12], [6, 16]]},
+ "symbol-spacing": {"base": 1, "stops": [[4, 100], [6, 400]]},
+ "text-font": [
+ "DIN Offc Pro Italic",
+ "Arial Unicode MS Regular"
+ ],
+ "symbol-placement": "line",
+ "text-pitch-alignment": "viewport",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.1,
+ "text-max-width": 5
+ },
+ "paint": {"text-color": "hsl(205, 83%, 88%)"}
+ },
+ {
+ "id": "marine-label-sm-pt",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856087950.3635"},
+ "source": "composite",
+ "source-layer": "marine_label",
+ "minzoom": 3,
+ "maxzoom": 10,
+ "filter": ["all", ["==", "$type", "Point"], [">=", "labelrank", 4]],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-max-width": 5,
+ "text-letter-spacing": 0.1,
+ "text-line-height": 1.5,
+ "text-font": [
+ "DIN Offc Pro Italic",
+ "Arial Unicode MS Regular"
+ ],
+ "text-size": {"base": 1, "stops": [[3, 12], [6, 16]]}
+ },
+ "paint": {"text-color": "hsl(205, 83%, 88%)"}
+ },
+ {
+ "id": "marine-label-md-ln",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856087950.3635"},
+ "source": "composite",
+ "source-layer": "marine_label",
+ "minzoom": 2,
+ "maxzoom": 8,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["in", "labelrank", 2, 3]
+ ],
+ "layout": {
+ "text-line-height": 1.1,
+ "text-size": {"base": 1.1, "stops": [[2, 12], [5, 20]]},
+ "symbol-spacing": 250,
+ "text-font": [
+ "DIN Offc Pro Italic",
+ "Arial Unicode MS Regular"
+ ],
+ "symbol-placement": "line",
+ "text-pitch-alignment": "viewport",
+ "text-field": "{name_en}",
+ "text-letter-spacing": 0.15,
+ "text-max-width": 5
+ },
+ "paint": {"text-color": "hsl(205, 83%, 88%)"}
+ },
+ {
+ "id": "marine-label-md-pt",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856087950.3635"},
+ "source": "composite",
+ "source-layer": "marine_label",
+ "minzoom": 2,
+ "maxzoom": 8,
+ "filter": [
+ "all",
+ ["==", "$type", "Point"],
+ ["in", "labelrank", 2, 3]
+ ],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-max-width": 5,
+ "text-letter-spacing": 0.15,
+ "text-line-height": 1.5,
+ "text-font": [
+ "DIN Offc Pro Italic",
+ "Arial Unicode MS Regular"
+ ],
+ "text-size": {"base": 1.1, "stops": [[2, 14], [5, 20]]}
+ },
+ "paint": {"text-color": "hsl(205, 83%, 88%)"}
+ },
+ {
+ "id": "marine-label-lg-ln",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856087950.3635"},
+ "source": "composite",
+ "source-layer": "marine_label",
+ "minzoom": 1,
+ "maxzoom": 4,
+ "filter": [
+ "all",
+ ["==", "$type", "LineString"],
+ ["==", "labelrank", 1]
+ ],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-max-width": 4,
+ "text-letter-spacing": 0.25,
+ "text-line-height": 1.1,
+ "symbol-placement": "line",
+ "text-pitch-alignment": "viewport",
+ "text-font": [
+ "DIN Offc Pro Italic",
+ "Arial Unicode MS Regular"
+ ],
+ "text-size": {"base": 1, "stops": [[1, 14], [4, 30]]}
+ },
+ "paint": {"text-color": "hsl(205, 83%, 88%)"}
+ },
+ {
+ "id": "marine-label-lg-pt",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856087950.3635"},
+ "source": "composite",
+ "source-layer": "marine_label",
+ "minzoom": 1,
+ "maxzoom": 4,
+ "filter": ["all", ["==", "$type", "Point"], ["==", "labelrank", 1]],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-max-width": 4,
+ "text-letter-spacing": 0.25,
+ "text-line-height": 1.5,
+ "text-font": [
+ "DIN Offc Pro Italic",
+ "Arial Unicode MS Regular"
+ ],
+ "text-size": {"base": 1, "stops": [[1, 14], [4, 30]]}
+ },
+ "paint": {"text-color": "hsl(205, 83%, 88%)"}
+ },
+ {
+ "id": "state-label-sm",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856151690.9143"},
+ "source": "composite",
+ "source-layer": "state_label",
+ "minzoom": 3,
+ "maxzoom": 9,
+ "filter": ["<", "area", 20000],
+ "layout": {
+ "text-size": {"base": 1, "stops": [[6, 10], [9, 14]]},
+ "text-transform": "uppercase",
+ "text-font": ["DIN Offc Pro Bold", "Arial Unicode MS Bold"],
+ "text-field": {
+ "base": 1,
+ "stops": [[0, "{abbr}"], [6, "{name_en}"]]
+ },
+ "text-letter-spacing": 0.15,
+ "text-max-width": 5
+ },
+ "paint": {
+ "text-opacity": 1,
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "state-label-md",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856151690.9143"},
+ "source": "composite",
+ "source-layer": "state_label",
+ "minzoom": 3,
+ "maxzoom": 8,
+ "filter": ["all", ["<", "area", 80000], [">=", "area", 20000]],
+ "layout": {
+ "text-size": {"base": 1, "stops": [[5, 10], [8, 16]]},
+ "text-transform": "uppercase",
+ "text-font": ["DIN Offc Pro Bold", "Arial Unicode MS Bold"],
+ "text-field": {
+ "base": 1,
+ "stops": [[0, "{abbr}"], [5, "{name_en}"]]
+ },
+ "text-letter-spacing": 0.15,
+ "text-max-width": 6
+ },
+ "paint": {
+ "text-opacity": 1,
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "state-label-lg",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856151690.9143"},
+ "source": "composite",
+ "source-layer": "state_label",
+ "minzoom": 3,
+ "maxzoom": 7,
+ "filter": [">=", "area", 80000],
+ "layout": {
+ "text-size": {"base": 1, "stops": [[4, 10], [7, 18]]},
+ "text-transform": "uppercase",
+ "text-font": ["DIN Offc Pro Bold", "Arial Unicode MS Bold"],
+ "text-padding": 1,
+ "text-field": {
+ "base": 1,
+ "stops": [[0, "{abbr}"], [4, "{name_en}"]]
+ },
+ "text-letter-spacing": 0.15,
+ "text-max-width": 6
+ },
+ "paint": {
+ "text-opacity": 1,
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": "hsl(0, 0%, 100%)",
+ "text-halo-width": 1
+ }
+ },
+ {
+ "id": "country-label-sm",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856144497.7825"},
+ "source": "composite",
+ "source-layer": "country_label",
+ "minzoom": 1,
+ "maxzoom": 10,
+ "filter": [">=", "scalerank", 5],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-max-width": 6,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-size": {"base": 0.9, "stops": [[5, 14], [9, 22]]}
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": {
+ "base": 1,
+ "stops": [
+ [2, "rgba(255,255,255,0.75)"],
+ [3, "hsl(0, 0%, 100%)"]
+ ]
+ },
+ "text-halo-width": 1.25
+ }
+ },
+ {
+ "id": "country-label-md",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856144497.7825"},
+ "source": "composite",
+ "source-layer": "country_label",
+ "minzoom": 1,
+ "maxzoom": 8,
+ "filter": ["in", "scalerank", 3, 4],
+ "layout": {
+ "text-field": {
+ "base": 1,
+ "stops": [[0, "{code}"], [2, "{name_en}"]]
+ },
+ "text-max-width": 6,
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-size": {"base": 1, "stops": [[3, 10], [8, 24]]}
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": {
+ "base": 1,
+ "stops": [
+ [2, "rgba(255,255,255,0.75)"],
+ [3, "hsl(0, 0%, 100%)"]
+ ]
+ },
+ "text-halo-width": 1.25
+ }
+ },
+ {
+ "id": "country-label-lg",
+ "type": "symbol",
+ "metadata": {"mapbox:group": "1444856144497.7825"},
+ "source": "composite",
+ "source-layer": "country_label",
+ "minzoom": 1,
+ "maxzoom": 7,
+ "filter": ["in", "scalerank", 1, 2],
+ "layout": {
+ "text-field": "{name_en}",
+ "text-max-width": {"base": 1, "stops": [[0, 5], [3, 6]]},
+ "text-font": [
+ "DIN Offc Pro Medium",
+ "Arial Unicode MS Regular"
+ ],
+ "text-size": {"base": 1, "stops": [[1, 10], [6, 24]]}
+ },
+ "paint": {
+ "text-color": "hsl(0, 0%, 0%)",
+ "text-halo-color": {
+ "base": 1,
+ "stops": [
+ [2, "rgba(255,255,255,0.75)"],
+ [3, "hsl(0, 0%, 100%)"]
+ ]
+ },
+ "text-halo-width": 1.25
+ }
+ }
+ ],
+ "created": "2018-10-22T14:13:43.210Z",
+ "id": "cjnkdt02b0b2p2ss40skwpvs1",
+ "modified": "2018-10-22T14:14:35.211Z",
+ "owner": "lukaspaczos",
+ "visibility": "public",
+ "draft": false
+} \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt
index 2e8cb27292..139695461d 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/maps/VisibleRegionTest.kt
@@ -5,12 +5,24 @@ import android.support.test.espresso.UiController
import com.mapbox.mapboxsdk.camera.CameraUpdateFactory
import com.mapbox.mapboxsdk.geometry.LatLng
import com.mapbox.mapboxsdk.testapp.action.MapboxMapAction.invoke
-import com.mapbox.mapboxsdk.testapp.activity.EspressoTest
+
+import com.mapbox.mapboxsdk.testapp.activity.BaseTest
+import com.mapbox.mapboxsdk.testapp.activity.espresso.PixelTestActivity
import org.junit.Assert.assertFalse
import org.junit.Assert.assertTrue
import org.junit.Test
-class VisibleRegionTest : EspressoTest() {
+class VisibleRegionTest : BaseTest() {
+
+ override fun getActivityClass(): Class<*> {
+ return PixelTestActivity::class.java
+ }
+
+ override
+ fun beforeTest() {
+ super.beforeTest()
+ mapView = (rule.activity as PixelTestActivity).mapView
+ }
@Test
fun visibleRegionTest() {
@@ -253,9 +265,9 @@ class VisibleRegionTest : EspressoTest() {
@Test
fun paddedTopVisibleRegionOverDatelineTest() {
validateTestSetup()
- invoke(mapboxMap) { _: UiController, mapboxMap: MapboxMap ->
+ invoke(mapboxMap) { ui: UiController, mapboxMap: MapboxMap ->
mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(0.0, 180.0), 8.0))
-
+ ui.loopMainThreadForAtLeast(5000)
val latLngs = listOf(
mapboxMap.getLatLngFromScreenCoords(0f, 0f),
mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, 0f),
@@ -289,7 +301,7 @@ class VisibleRegionTest : EspressoTest() {
mapboxMap.getLatLngFromScreenCoords(0f, 0f),
mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, 0f),
mapboxMap.getLatLngFromScreenCoords(mapView.width.toFloat(), 0f)
- .also { it.longitude += 360 },
+ .also { it.longitude += 360 },
mapboxMap.getLatLngFromScreenCoords(mapView.width.toFloat(), mapView.height / 2f)
.also { it.longitude += 360 },
mapboxMap.getLatLngFromScreenCoords(mapView.width.toFloat(), mapView.height.toFloat())
@@ -345,11 +357,11 @@ class VisibleRegionTest : EspressoTest() {
mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(0.0, 0.0), 8.0))
val d = Math.min(mapboxMap.width, mapboxMap.height) / 4;
val latLngs = listOf(
- mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f),
- mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f - d / 2f, mapView.height / 2f),
- mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f + d / 2f, mapView.height / 2f),
- mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f - d / 2f),
- mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f + d / 2f)
+ mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f),
+ mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f - d / 2f, mapView.height / 2f),
+ mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f + d / 2f, mapView.height / 2f),
+ mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f - d / 2f),
+ mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f + d / 2f)
)
@@ -361,29 +373,29 @@ class VisibleRegionTest : EspressoTest() {
}
}
- @Test
- fun visibleRotatedRegionOverDatelineTest() {
- validateTestSetup()
- invoke(mapboxMap) { _: UiController, mapboxMap: MapboxMap ->
- mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(0.0, 180.0), 8.0))
- val d = Math.min(mapboxMap.width, mapboxMap.height) / 4;
- val latLngs = listOf(
- mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f),
- mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f - d / 2f, mapView.height / 2f),
- mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f + d / 2f, mapView.height / 2f)
- .also { it.longitude += 360 },
- mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f - d / 2f),
- mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f + d / 2f)
- )
-
-
- for (bearing in 45 until 360 step 45) {
- mapboxMap.moveCamera(CameraUpdateFactory.bearingTo(bearing.toDouble()));
- val visibleRegion = mapboxMap.projection.visibleRegion
- assertTrue(latLngs.all { visibleRegion.latLngBounds.contains(it) })
- }
- }
+ @Test
+ fun visibleRotatedRegionOverDatelineTest() {
+ validateTestSetup()
+ invoke(mapboxMap) { _: UiController, mapboxMap: MapboxMap ->
+ mapboxMap.moveCamera(CameraUpdateFactory.newLatLngZoom(LatLng(0.0, 180.0), 8.0))
+ val d = Math.min(mapboxMap.width, mapboxMap.height) / 4;
+ val latLngs = listOf(
+ mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f),
+ mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f - d / 2f, mapView.height / 2f),
+ mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f + d / 2f, mapView.height / 2f)
+ .also { it.longitude += 360 },
+ mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f - d / 2f),
+ mapboxMap.getLatLngFromScreenCoords(mapView.width / 2f, mapView.height / 2f + d / 2f)
+ )
+
+
+ for (bearing in 45 until 360 step 45) {
+ mapboxMap.moveCamera(CameraUpdateFactory.bearingTo(bearing.toDouble()));
+ val visibleRegion = mapboxMap.projection.visibleRegion
+ assertTrue(latLngs.all { visibleRegion.latLngBounds.contains(it) })
+ }
}
+ }
private fun MapboxMap.getLatLngFromScreenCoords(x: Float, y: Float): LatLng {
return this.projection.fromScreenLocation(PointF(x, y))
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ImageTest.java b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ImageTest.java
deleted file mode 100644
index 1c49801e05..0000000000
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ImageTest.java
+++ /dev/null
@@ -1,44 +0,0 @@
-package com.mapbox.mapboxsdk.testapp.style;
-
-import android.graphics.Bitmap;
-import android.graphics.drawable.BitmapDrawable;
-import android.graphics.drawable.Drawable;
-import android.support.test.runner.AndroidJUnit4;
-import com.mapbox.mapboxsdk.testapp.R;
-import com.mapbox.mapboxsdk.testapp.action.MapboxMapAction;
-import com.mapbox.mapboxsdk.testapp.activity.EspressoTest;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-
-import static org.junit.Assert.assertNull;
-import static org.junit.Assert.assertTrue;
-
-/**
- * CRUD tests around Image
- */
-@RunWith(AndroidJUnit4.class)
-public class ImageTest extends EspressoTest {
-
- private static final String IMAGE_ID = "test.image";
-
- @Test
- public void testAddGetImage() {
- validateTestSetup();
- MapboxMapAction.invoke(mapboxMap, (uiController, mapboxMap) -> {
- Drawable drawable = rule.getActivity().getResources().getDrawable(R.drawable.ic_launcher_round);
- assertTrue(drawable instanceof BitmapDrawable);
-
- Bitmap bitmapSet = ((BitmapDrawable) drawable).getBitmap();
- mapboxMap.getStyle().addImage(IMAGE_ID, bitmapSet);
-
- // adding an image requires converting the image with an asynctask
- uiController.loopMainThreadForAtLeast(200);
-
- Bitmap bitmapGet = mapboxMap.getStyle().getImage(IMAGE_ID);
- assertTrue(bitmapGet.sameAs(bitmapSet));
-
- mapboxMap.getStyle().removeImage(IMAGE_ID);
- assertNull(mapboxMap.getStyle().getImage(IMAGE_ID));
- });
- }
-}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ImageTest.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ImageTest.kt
new file mode 100644
index 0000000000..9cef677e7c
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/androidTest/java/com/mapbox/mapboxsdk/testapp/style/ImageTest.kt
@@ -0,0 +1,75 @@
+package com.mapbox.mapboxsdk.testapp.style
+
+import android.graphics.Bitmap
+import android.graphics.drawable.BitmapDrawable
+import android.support.test.runner.AndroidJUnit4
+import com.mapbox.mapboxsdk.testapp.R
+import com.mapbox.mapboxsdk.testapp.action.MapboxMapAction
+import com.mapbox.mapboxsdk.testapp.activity.EspressoTest
+import org.junit.Assert.assertNull
+import org.junit.Assert.assertTrue
+import org.junit.Test
+import org.junit.runner.RunWith
+import java.util.*
+
+/**
+ * CRUD tests around Image
+ */
+@RunWith(AndroidJUnit4::class)
+class ImageTest : EspressoTest() {
+
+ companion object {
+ private const val IMAGE_ID = "test.image"
+ }
+
+ @Test
+ fun testAddGetImage() {
+ validateTestSetup()
+ MapboxMapAction.invoke(mapboxMap) { uiController, mapboxMap ->
+ val drawable = rule.activity.resources.getDrawable(R.drawable.ic_launcher_round)
+ assertTrue(drawable is BitmapDrawable)
+
+ val bitmapSet = (drawable as BitmapDrawable).bitmap
+ mapboxMap.style!!.addImage(IMAGE_ID, bitmapSet)
+
+ // adding an image requires converting the image with an asynctask
+ uiController.loopMainThreadForAtLeast(200)
+
+ val bitmapGet = mapboxMap.style!!.getImage(IMAGE_ID)
+ assertTrue(bitmapGet!!.similarTo(bitmapSet))
+
+ mapboxMap.style!!.removeImage(IMAGE_ID)
+ assertNull(mapboxMap.style!!.getImage(IMAGE_ID))
+ }
+ }
+}
+
+/**
+ * Alternative implementation of Bitmap.sameAs #14060
+ */
+fun Bitmap.similarTo(other: Bitmap): Boolean {
+ if (invalidConfig(other)) {
+ return false
+ }
+
+ // Allocate arrays
+ val argb = IntArray(width * height)
+ val argbOther = IntArray(other.width * other.height)
+ getPixels(argb, 0, width, 0, 0, width, height)
+ other.getPixels(argbOther, 0, width, 0, 0, width, height)
+
+ // Alpha channel special check
+ if (config == Bitmap.Config.ALPHA_8) {
+ // in this case we have to manually compare the alpha channel as the rest is garbage.
+ val length = width * height
+ for (i in 0 until length) {
+ if (argb[i] and -0x1000000 != argbOther[i] and -0x1000000) {
+ return false
+ }
+ }
+ return true
+ }
+ return Arrays.equals(argb, argbOther)
+}
+
+fun Bitmap.invalidConfig(other: Bitmap): Boolean = this.config != other.config || this.width != other.width || this.height != other.height \ No newline at end of file
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
index 2fa26f822a..d8eb81a972 100644
--- a/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/AndroidManifest.xml
@@ -924,6 +924,9 @@
android:name=".activity.espresso.EspressoTestActivity"
android:screenOrientation="portrait" />
<activity
+ android:name=".activity.espresso.PixelTestActivity"
+ android:screenOrientation="portrait" />
+ <activity
android:name=".activity.espresso.DeviceIndependentTestActivity"
android:screenOrientation="portrait" />
<activity
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/espresso/PixelTestActivity.kt b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/espresso/PixelTestActivity.kt
new file mode 100644
index 0000000000..b69d1ee5ed
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/java/com/mapbox/mapboxsdk/testapp/activity/espresso/PixelTestActivity.kt
@@ -0,0 +1,66 @@
+package com.mapbox.mapboxsdk.testapp.activity.espresso
+
+import android.os.Bundle
+import android.support.v7.app.AppCompatActivity
+import com.mapbox.mapboxsdk.maps.MapView
+import com.mapbox.mapboxsdk.maps.MapboxMap
+import com.mapbox.mapboxsdk.maps.OnMapReadyCallback
+import com.mapbox.mapboxsdk.maps.Style
+import com.mapbox.mapboxsdk.testapp.R
+
+/**
+ * Test activity used for instrumentation tests that require a specific device size.
+ */
+class PixelTestActivity : AppCompatActivity(), OnMapReadyCallback {
+
+ lateinit var mapView: MapView
+ lateinit var mapboxMap: MapboxMap
+
+ override fun onCreate(savedInstanceState: Bundle?) {
+ super.onCreate(savedInstanceState)
+ setContentView(R.layout.activity_pixel_test)
+ mapView = findViewById(R.id.mapView)
+ mapView.onCreate(savedInstanceState)
+ mapView.getMapAsync(this)
+ }
+
+ override fun onMapReady(map: MapboxMap) {
+ mapboxMap = map
+ mapboxMap.setStyle(Style.MAPBOX_STREETS)
+ }
+
+ public override fun onResume() {
+ super.onResume()
+ mapView.onResume()
+ }
+
+ override fun onStart() {
+ super.onStart()
+ mapView.onStart()
+ }
+
+ public override fun onPause() {
+ super.onPause()
+ mapView.onPause()
+ }
+
+ override fun onStop() {
+ super.onStop()
+ mapView.onStop()
+ }
+
+ override fun onSaveInstanceState(outState: Bundle) {
+ super.onSaveInstanceState(outState)
+ mapView.onSaveInstanceState(outState)
+ }
+
+ override fun onDestroy() {
+ super.onDestroy()
+ mapView.onDestroy()
+ }
+
+ override fun onLowMemory() {
+ super.onLowMemory()
+ mapView.onLowMemory()
+ }
+}
diff --git a/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_pixel_test.xml b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_pixel_test.xml
new file mode 100644
index 0000000000..4c88a87703
--- /dev/null
+++ b/platform/android/MapboxGLAndroidSDKTestApp/src/main/res/layout/activity_pixel_test.xml
@@ -0,0 +1,16 @@
+<?xml version="1.0" encoding="utf-8"?>
+<FrameLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:layout_width="match_parent"
+ android:layout_height="match_parent">
+
+ <com.mapbox.mapboxsdk.maps.MapView
+ android:layout_gravity="center"
+ android:id="@id/mapView"
+ app:mapbox_cameraZoom="1"
+ android:layout_width="1080px"
+ android:layout_height="1920px"
+ app:mapbox_pixelRatio="1"/>
+
+</FrameLayout>