aboutsummaryrefslogtreecommitdiffstats
path: root/examples/Styles
diff options
context:
space:
mode:
Diffstat (limited to 'examples/Styles')
-rw-r--r--examples/Styles/Dark.elm2888
-rw-r--r--examples/Styles/Light.elm2906
-rw-r--r--examples/Styles/Outdoors.elm4267
-rw-r--r--examples/Styles/Satellite.elm24
-rw-r--r--examples/Styles/SatelliteStreets.elm2939
-rw-r--r--examples/Styles/Streets.elm3737
6 files changed, 16761 insertions, 0 deletions
diff --git a/examples/Styles/Dark.elm b/examples/Styles/Dark.elm
new file mode 100644
index 0000000..d6d339b
--- /dev/null
+++ b/examples/Styles/Dark.elm
@@ -0,0 +1,2888 @@
+module Styles.Dark exposing (style)
+
+import Mapbox.Expression as E exposing (false, float, str, true)
+import Mapbox.Layer as Layer
+import Mapbox.Source as Source
+import Mapbox.Style as Style exposing (Style(..))
+
+
+style : Style
+style =
+ Style
+ { transition = Style.defaultTransition
+ , light = Style.defaultLight
+ , layers =
+ [ Layer.background "background" [ Layer.backgroundColor (E.rgba 51 51 50 1) ]
+ , Layer.fill "landcover_wood"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "wood"))
+ , Layer.fillColor (E.rgba 51 51 50 1)
+ , Layer.fillOpacity (float 0.1)
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_scrub"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "scrub"))
+ , Layer.fillColor (E.rgba 51 51 50 1)
+ , Layer.fillOpacity (float 0.1)
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_grass"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "grass"))
+ , Layer.fillColor (E.rgba 51 51 50 1)
+ , Layer.fillOpacity (float 0.1)
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_crop"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "crop"))
+ , Layer.fillColor (E.rgba 51 51 50 1)
+ , Layer.fillOpacity (float 0.1)
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "national_park"
+ "composite"
+ [ Layer.sourceLayer "landuse_overlay"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "national_park"))
+ , Layer.fillColor (E.rgba 49 52 50 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 0 ), ( 6, float 0.5 ) ])
+ ]
+ , Layer.fill "parks"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "park"))
+ , Layer.fillColor (E.rgba 49 52 50 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 0 ), ( 6, float 0.75 ) ])
+ ]
+ , Layer.fill "pitch"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "pitch"))
+ , Layer.fillColor (E.rgba 49 52 50 1)
+ ]
+ , Layer.fill "industrial"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "industrial"))
+ , Layer.fillColor (E.rgba 51 51 51 1)
+ ]
+ , Layer.fill "sand"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "sand"))
+ , Layer.fillColor (E.rgba 49 52 50 1)
+ ]
+ , Layer.fill "hillshade_highlight_bright"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 94))
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.04 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_highlight_med"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 90))
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.04 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_faint"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 89))
+ , Layer.fillColor (E.rgba 89 89 89 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.033 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_med"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 78))
+ , Layer.fillColor (E.rgba 89 89 89 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.033 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_dark"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 67))
+ , Layer.fillColor (E.rgba 89 89 89 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.06 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_extreme"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 56))
+ , Layer.fillColor (E.rgba 89 89 89 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.06 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.line "waterway-river-canal"
+ "composite"
+ [ Layer.sourceLayer "waterway"
+ , Layer.minzoom 8
+ , Layer.filter
+ (E.any
+ [ E.conditionally
+ [ ( E.typeof (E.getProperty (str "class")) |> E.isEqual (str "string")
+ , E.getProperty (str "class") |> E.isEqual (str "canal")
+ )
+ ]
+ false
+ , E.conditionally
+ [ ( E.typeof (E.getProperty (str "class")) |> E.isEqual (str "string")
+ , E.getProperty (str "class") |> E.isEqual (str "river")
+ )
+ ]
+ false
+ ]
+ )
+ , Layer.lineColor (E.rgba 24 25 26 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.3) [ ( 8.5, float 0.1 ), ( 20, float 8 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, float 0 ), ( 8.5, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapButt [ ( 11, E.lineCapRound ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.fill "water shadow"
+ "composite"
+ [ Layer.sourceLayer "water"
+ , Layer.fillColor (E.rgba 12 13 13 1)
+ , Layer.fillTranslate (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 7, E.floats [ 0, 0 ] ), ( 16, E.floats [ -1, -1 ] ) ])
+ , Layer.fillTranslateAnchor E.anchorViewport
+ , Layer.fillOpacity (float 1)
+ ]
+ , Layer.fill "water" "composite" [ Layer.sourceLayer "water", Layer.fillColor (E.rgba 24 25 26 1) ]
+ , Layer.fill "barrier_line-land-polygon"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Polygon"), E.getProperty (str "class") |> E.isEqual (str "land") ])
+ , Layer.fillColor (E.rgba 51 51 50 1)
+ , Layer.fillOutlineColor (E.rgba 51 51 50 1)
+ ]
+ , Layer.line "barrier_line-land-line"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "class") |> E.isEqual (str "land") ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.99) [ ( 14, float 0.75 ), ( 20, float 40 ) ])
+ , Layer.lineColor (E.rgba 51 51 50 1)
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.fill "aeroway-polygon"
+ "composite"
+ [ Layer.sourceLayer "aeroway"
+ , Layer.minzoom 11
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Polygon"), E.getProperty (str "type") |> E.notEqual (str "apron") ])
+ , Layer.fillColor (E.rgba 68 68 68 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.5, float 1 ) ])
+ ]
+ , Layer.line "aeroway-runway"
+ "composite"
+ [ Layer.sourceLayer "aeroway"
+ , Layer.minzoom 9
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "type") |> E.isEqual (str "runway") ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 9, float 1 ), ( 18, float 80 ) ])
+ ]
+ , Layer.line "aeroway-taxiway"
+ "composite"
+ [ Layer.sourceLayer "aeroway"
+ , Layer.minzoom 9
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "type") |> E.isEqual (str "taxiway")
+ ]
+ )
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 0.5 ), ( 18, float 20 ) ])
+ ]
+ , Layer.fill "building"
+ "composite"
+ [ Layer.sourceLayer "building"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "building:part")
+ , E.getProperty (str "underground") |> E.isEqual (str "false")
+ ]
+ )
+ , Layer.fillColor (E.rgba 43 43 42 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15.5, float 0 ), ( 16, float 1 ) ])
+ , Layer.fillOutlineColor (E.rgba 38 38 37 1)
+ ]
+ , Layer.line "tunnel-street-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-service-link-track-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 72 75 75 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 72 75 75 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 72 75 75 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-secondary-tertiary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 72 75 75 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 72 75 75 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 72 75 75 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 72 75 75 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 72 75 75 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 72 75 75 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-construction"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "tunnel-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-pedestrian"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-service-link-track"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineColor (E.rgba 37 38 39 1)
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-pedestrian-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 2 ), ( 18, float 14.5 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.9, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.25, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.25, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-service-link-track-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.9, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.9, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.9, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-main-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 5
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 7, float 0.5 ), ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.5 ), ( 9, float 1.4 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 6.1, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 7, float 0.5 ), ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-construction"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "road-sidewalks"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.matchesStr [ ( "crossing", true ), ( "sidewalk", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 0 ), ( 16.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "crossing", false ), ( "sidewalk", false ), ( "steps", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-pedestrian"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-service-link-track"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 5
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.5 ), ( 9, float 1.4 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-rail"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-pedestrian-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 2 ), ( 18, float 14.5 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-service-link-track-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-secondary-tertiary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer") |> E.lessThanOrEqual (float 1)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 7, float 0.5 ), ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-construction"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "bridge-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.notEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-pedestrian"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-service-link-track"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "primary")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-rail"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 7, float 0.5 ), ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 43 43 43 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 68 68 68 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "admin-3-4-boundaries-bg"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.greaterThanOrEqual (float 3)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor (E.rgba 25 25 25 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 3.5 ), ( 10, float 8 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 0 ), ( 6, float 0.75 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 8, float 3 ) ])
+ , Layer.lineJoin E.lineJoinBevel
+ ]
+ , Layer.line "admin-2-boundaries-bg"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 3.5 ), ( 10, float 10 ) ])
+ , Layer.lineColor (E.rgba 25 25 25 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 4, float 0.5 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "admin-3-4-boundaries"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.greaterThanOrEqual (float 3)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 2, 0 ]) [ ( 7, E.floats [ 2, 2, 6, 2 ] ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 0.75 ), ( 12, float 1.5 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 2, float 0 ), ( 3, float 1 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, E.rgba 68 68 68 1 ), ( 5, E.rgba 89 89 89 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.line "admin-2-boundaries"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "disputed") |> E.isEqual (float 0)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor (E.rgba 109 109 109 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0.5 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.line "admin-2-boundaries-dispute"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "disputed") |> E.isEqual (float 1)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineDasharray (E.floats [ 1.5, 1.5 ])
+ , Layer.lineColor (E.rgba 35 35 35 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0.5 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "waterway-label"
+ "composite"
+ [ Layer.sourceLayer "waterway_label"
+ , Layer.minzoom 12
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "canal", true ), ( "river", true ) ] false)
+ , Layer.textHaloWidth (float 0)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textColor (E.rgba 81 81 81 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textMaxAngle (float 30)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 12 ), ( 18, float 16 ) ])
+ ]
+ , Layer.symbol "poi-scalerank3"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 3)
+ ]
+ )
+ , Layer.textColor (E.rgba 153 153 153 1)
+ , Layer.textHaloColor (E.rgba 33 33 33 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 1)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks-scalerank3"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 3)
+ ]
+ )
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.rgba 33 33 33 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.rgba 119 119 119 1 ), ( 9, E.rgba 186 186 186 1 ) ])
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 12 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "road-label-small"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "ferry", false )
+ , ( "golf", false )
+ , ( "link", false )
+ , ( "motorway", false )
+ , ( "path", false )
+ , ( "pedestrian", false )
+ , ( "primary", false )
+ , ( "secondary", false )
+ , ( "street", false )
+ , ( "street_limited", false )
+ , ( "tertiary", false )
+ , ( "track", false )
+ , ( "trunk", false )
+ ]
+ true
+ ]
+ )
+ , Layer.textColor (E.rgba 198 198 198 1)
+ , Layer.textHaloColor (E.rgba 33 33 33 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 10 ), ( 20, float 13 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 500)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "road-label-medium"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "pedestrian", true ), ( "street", true ), ( "street_limited", true ) ] false
+ ]
+ )
+ , Layer.textColor (E.rgba 198 198 198 1)
+ , Layer.textHaloColor (E.rgba 33 33 33 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 10 ), ( 20, float 14 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 500)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "road-label-large"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.getProperty (str "class")
+ |> E.matchesStr [ ( "motorway", true ), ( "primary", true ), ( "secondary", true ), ( "tertiary", true ), ( "trunk", true ) ] false
+ )
+ , Layer.textColor (E.rgba 198 198 198 1)
+ , Layer.textHaloColor (E.rgba 33 33 33 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 10 ), ( 20, float 16 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 400)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "poi-scalerank2"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 2)
+ ]
+ )
+ , Layer.textColor (E.rgba 153 153 153 1)
+ , Layer.textHaloColor (E.rgba 33 33 33 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 12 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks-scalerank2"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 2)
+ ]
+ )
+ , Layer.textColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.rgba 119 119 119 1 ), ( 9, E.rgba 186 186 186 1 ) ])
+ , Layer.textHaloColor (E.rgba 33 33 33 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 12 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "water-label"
+ "composite"
+ [ Layer.sourceLayer "water_label"
+ , Layer.minzoom 5
+ , Layer.filter (E.getProperty (str "area") |> E.greaterThan (float 10000))
+ , Layer.textColor (E.rgba 81 81 81 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 13 ), ( 18, float 18 ) ])
+ ]
+ , Layer.symbol "poi-parks-scalerank1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 1)
+ ]
+ )
+ , Layer.textColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.rgba 119 119 119 1 ), ( 9, E.rgba 186 186 186 1 ) ])
+ , Layer.textHaloColor (E.rgba 33 33 33 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 12 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-scalerank1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 1)
+ ]
+ )
+ , Layer.textColor (E.rgba 153 153 153 1)
+ , Layer.textHaloColor (E.rgba 33 33 33 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 12 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "airport-label"
+ "composite"
+ [ Layer.sourceLayer "airport_label"
+ , Layer.minzoom 10
+ , Layer.filter (E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2))
+ , Layer.textColor (E.rgba 216 216 216 1)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 12 ), ( 18, float 18 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 13, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.75 ])
+ , Layer.textAnchor E.positionTop
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "ref"))) [ ( 14, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 9)
+ ]
+ , Layer.symbol "place-islets-archipelago-aboriginal"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 16
+ , Layer.filter
+ (E.getProperty (str "type")
+ |> E.matchesStr [ ( "aboriginal_lands", true ), ( "archipelago", true ), ( "islet", true ) ] false
+ )
+ , Layer.textColor (E.rgba 216 216 216 1)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 16 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "place-neighbourhood"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 12
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "neighbourhood"))
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textColor (E.rgba 178 178 178 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textMaxWidth (float 7)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 3)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 11 ), ( 16, float 16 ) ])
+ ]
+ , Layer.symbol "place-suburb"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 11
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "suburb"))
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textColor (E.rgba 178 178 178 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 7)
+ , Layer.textPadding (float 3)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 11 ), ( 15, float 18 ) ])
+ ]
+ , Layer.symbol "place-hamlet"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 10
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "hamlet"))
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textColor (E.rgba 216 216 216 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 11.5 ), ( 15, float 16 ) ])
+ ]
+ , Layer.symbol "place-village"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 11
+ , Layer.maxzoom 15
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "village"))
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, E.rgba 191 191 191 1 ), ( 11, E.rgba 216 216 216 1 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11.5 ), ( 16, float 18 ) ])
+ ]
+ , Layer.symbol "place-town"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 7
+ , Layer.maxzoom 15
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "town"))
+ , Layer.textColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, E.rgba 191 191 191 1 ), ( 11, E.rgba 216 216 216 1 ) ])
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 11.5 ), ( 15, float 20 ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 12, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-islands"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "island"))
+ , Layer.textColor (E.rgba 216 216 216 1)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 16 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-sm"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "scalerank")
+ |> E.matchesFloat [ ( 0, false ), ( 1, false ), ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 229 229 229 1)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 12 ), ( 14, float 22 ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-md-s"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "E", true ), ( "S", true ), ( "SE", true ), ( "SW", true ) ] false
+ , E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ), ( 5, true ) ] false
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textColor (E.rgba 229 229 229 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 12 ), ( 12, float 22 ) ])
+ , Layer.textAnchor E.positionTop
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, 0.1 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.iconImage (str "dot-10")
+ ]
+ , Layer.symbol "place-city-md-n"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "N", true ), ( "NE", true ), ( "NW", true ), ( "W", true ) ] false
+ , E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ), ( 5, true ) ] false
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 229 229 229 1)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 12 ), ( 12, float 22 ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.25 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor E.positionBottom
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.iconImage (str "dot-10")
+ ]
+ , Layer.symbol "place-city-lg-s"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "E", true ), ( "S", true ), ( "SE", true ), ( "SW", true ) ] false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2)
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.rgba 242 242 242 1 ), ( 9, E.rgba 229 229 229 1 ) ])
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.iconImage (str "dot-11")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, 0.15 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionTop [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 4, float 12 ), ( 10, float 22 ) ])
+ ]
+ , Layer.symbol "place-city-lg-n"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "N", true ), ( "NE", true ), ( "NW", true ), ( "W", true ) ] false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2)
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.rgba 242 242 242 1 ), ( 9, E.rgba 229 229 229 1 ) ])
+ , Layer.textOpacity (float 1)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.iconImage (str "dot-11")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.25 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 4, float 12 ), ( 10, float 22 ) ])
+ ]
+ , Layer.symbol "marine-label-sm-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "labelrank") |> E.greaterThanOrEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 81 81 81 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 12 ), ( 6, float 16 ) ])
+ , Layer.symbolSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 100 ), ( 6, float 400 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "marine-label-sm-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "labelrank") |> E.greaterThanOrEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 81 81 81 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 5)
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 12 ), ( 6, float 16 ) ])
+ ]
+ , Layer.symbol "marine-label-md-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 2
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "labelrank") |> E.matchesFloat [ ( 2, true ), ( 3, true ) ] false
+ ]
+ )
+ , Layer.textColor (E.rgba 81 81 81 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1.1) [ ( 2, float 12 ), ( 5, float 20 ) ])
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "marine-label-md-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 2
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "labelrank") |> E.matchesFloat [ ( 2, true ), ( 3, true ) ] false
+ ]
+ )
+ , Layer.textColor (E.rgba 81 81 81 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 5)
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1.1) [ ( 2, float 14 ), ( 5, float 20 ) ])
+ ]
+ , Layer.symbol "marine-label-lg-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 4
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "labelrank") |> E.isEqual (float 1) ])
+ , Layer.textColor (E.rgba 81 81 81 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 4)
+ , Layer.textLetterSpacing (float 0.25)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 14 ), ( 4, float 30 ) ])
+ ]
+ , Layer.symbol "marine-label-lg-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 4
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Point"), E.getProperty (str "labelrank") |> E.isEqual (float 1) ])
+ , Layer.textColor (E.rgba 81 81 81 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 4)
+ , Layer.textLetterSpacing (float 0.25)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 14 ), ( 4, float 30 ) ])
+ ]
+ , Layer.symbol "state-label-sm"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 9
+ , Layer.filter (E.getProperty (str "area") |> E.lessThan (float 20000))
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 127 127 127 1)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 10 ), ( 9, float 14 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 6, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "state-label-md"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "area") |> E.lessThan (float 80000)
+ , E.getProperty (str "area") |> E.greaterThanOrEqual (float 20000)
+ ]
+ )
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 127 127 127 1)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 10 ), ( 8, float 16 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 5, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 6)
+ ]
+ , Layer.symbol "state-label-lg"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 7
+ , Layer.filter (E.getProperty (str "area") |> E.greaterThanOrEqual (float 80000))
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 127 127 127 1)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 10 ), ( 7, float 18 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textPadding (float 1)
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 4, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 6)
+ ]
+ , Layer.symbol "country-label-sm"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 10
+ , Layer.filter (E.getProperty (str "scalerank") |> E.greaterThanOrEqual (float 5))
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textColor (E.rgba 114 114 114 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 6)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 14 ), ( 9, float 22 ) ])
+ ]
+ , Layer.symbol "country-label-md"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 8
+ , Layer.filter (E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ) ] false)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textColor (E.rgba 114 114 114 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "code"))) [ ( 2, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textMaxWidth (float 6)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 10 ), ( 8, float 24 ) ])
+ ]
+ , Layer.symbol "country-label-lg"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 7
+ , Layer.filter (E.getProperty (str "scalerank") |> E.matchesFloat [ ( 1, true ), ( 2, true ) ] false)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textHaloColor (E.rgba 25 25 25 0.75)
+ , Layer.textColor (E.rgba 114 114 114 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 0, float 5 ), ( 3, float 6 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 10 ), ( 6, float 24 ) ])
+ ]
+ ]
+ , sources = [ Source.vectorFromUrl "composite" "mapbox://mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7" ]
+ , misc =
+ [ Style.sprite "mapbox://sprites/mapbox/dark-v9"
+ , Style.glyphs "mapbox://fonts/mapbox/{fontstack}/{range}.pbf"
+ , Style.name "Mapbox Dark"
+ ]
+ }
diff --git a/examples/Styles/Light.elm b/examples/Styles/Light.elm
new file mode 100644
index 0000000..e487f36
--- /dev/null
+++ b/examples/Styles/Light.elm
@@ -0,0 +1,2906 @@
+module Styles.Light exposing (style)
+
+import Mapbox.Expression as E exposing (false, float, str, true)
+import Mapbox.Layer as Layer
+import Mapbox.Source as Source
+import Mapbox.Style as Style exposing (Style(..))
+
+
+style : Style
+style =
+ Style
+ { transition = Style.defaultTransition
+ , light = Style.defaultLight
+ , layers =
+ [ Layer.background "background" [ Layer.backgroundColor (E.rgba 245 245 243 1) ]
+ , Layer.fill "landcover_wood"
+ "composite"
+ [ Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "wood"))
+ , Layer.sourceLayer "landcover"
+ , Layer.fillColor (E.rgba 226 226 226 1)
+ , Layer.fillOpacity (float 0.1)
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_scrub"
+ "composite"
+ [ Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "scrub"))
+ , Layer.sourceLayer "landcover"
+ , Layer.fillColor (E.rgba 226 226 226 1)
+ , Layer.fillOpacity (float 0.1)
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_grass"
+ "composite"
+ [ Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "grass"))
+ , Layer.sourceLayer "landcover"
+ , Layer.fillColor (E.rgba 226 226 226 1)
+ , Layer.fillOpacity (float 0.1)
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_crop"
+ "composite"
+ [ Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "crop"))
+ , Layer.sourceLayer "landcover"
+ , Layer.fillColor (E.rgba 226 226 226 1)
+ , Layer.fillOpacity (float 0.1)
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "national_park"
+ "composite"
+ [ Layer.sourceLayer "landuse_overlay"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "national_park"))
+ , Layer.fillColor (E.rgba 236 238 237 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 0 ), ( 6, float 0.5 ) ])
+ ]
+ , Layer.fill "parks"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "park"))
+ , Layer.fillColor (E.rgba 236 238 237 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 0 ), ( 6, float 0.75 ) ])
+ ]
+ , Layer.fill "pitch"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "pitch"))
+ , Layer.fillColor (E.rgba 236 238 237 1)
+ ]
+ , Layer.fill "industrial"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "industrial"))
+ , Layer.fillColor (E.rgba 236 238 237 1)
+ ]
+ , Layer.fill "sand"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "sand"))
+ , Layer.fillColor (E.rgba 236 238 237 1)
+ ]
+ , Layer.fill "hillshade_highlight_bright"
+ "composite"
+ [ Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 94))
+ , Layer.sourceLayer "hillshade"
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.08 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_highlight_med"
+ "composite"
+ [ Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 90))
+ , Layer.sourceLayer "hillshade"
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.08 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_faint"
+ "composite"
+ [ Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 89))
+ , Layer.sourceLayer "hillshade"
+ , Layer.fillColor (E.rgba 89 89 89 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.033 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_med"
+ "composite"
+ [ Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 78))
+ , Layer.sourceLayer "hillshade"
+ , Layer.fillColor (E.rgba 89 89 89 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.033 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_dark"
+ "composite"
+ [ Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 67))
+ , Layer.sourceLayer "hillshade"
+ , Layer.fillColor (E.rgba 89 89 89 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.06 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_extreme"
+ "composite"
+ [ Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 56))
+ , Layer.sourceLayer "hillshade"
+ , Layer.fillColor (E.rgba 89 89 89 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.06 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.line "waterway-river-canal"
+ "composite"
+ [ Layer.minzoom 8
+ , Layer.filter
+ (E.any
+ [ E.conditionally
+ [ ( E.typeof (E.getProperty (str "class")) |> E.isEqual (str "string")
+ , E.getProperty (str "class") |> E.isEqual (str "canal")
+ )
+ ]
+ false
+ , E.conditionally
+ [ ( E.typeof (E.getProperty (str "class")) |> E.isEqual (str "string")
+ , E.getProperty (str "class") |> E.isEqual (str "river")
+ )
+ ]
+ false
+ ]
+ )
+ , Layer.sourceLayer "waterway"
+ , Layer.lineColor (E.rgba 203 211 212 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.3) [ ( 8.5, float 0.1 ), ( 20, float 8 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, float 0 ), ( 8.5, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapButt [ ( 11, E.lineCapRound ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.fill "water shadow"
+ "composite"
+ [ Layer.sourceLayer "water"
+ , Layer.fillColor (E.rgba 181 190 190 1)
+ , Layer.fillTranslate (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 7, E.floats [ 0, 0 ] ), ( 16, E.floats [ -1, -1 ] ) ])
+ , Layer.fillTranslateAnchor E.anchorViewport
+ , Layer.fillOpacity (float 1)
+ ]
+ , Layer.fill "water" "composite" [ Layer.sourceLayer "water", Layer.fillColor (E.rgba 202 210 210 1) ]
+ , Layer.fill "barrier_line-land-polygon"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Polygon"), E.getProperty (str "class") |> E.isEqual (str "land") ])
+ , Layer.fillColor (E.rgba 240 245 243 1)
+ ]
+ , Layer.line "barrier_line-land-line"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "class") |> E.isEqual (str "land") ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.99) [ ( 14, float 0.75 ), ( 20, float 40 ) ])
+ , Layer.lineColor (E.rgba 240 245 243 1)
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.fill "aeroway-polygon"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter (E.all [ E.getProperty (str "type") |> E.notEqual (str "apron"), E.geometryType |> E.isEqual (str "Polygon") ])
+ , Layer.sourceLayer "aeroway"
+ , Layer.fillColor (E.rgba 247 247 247 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.5, float 1 ) ])
+ ]
+ , Layer.line "aeroway-runway"
+ "composite"
+ [ Layer.minzoom 9
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "type") |> E.isEqual (str "runway") ])
+ , Layer.sourceLayer "aeroway"
+ , Layer.lineColor (E.rgba 242 242 242 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 9, float 1 ), ( 18, float 80 ) ])
+ ]
+ , Layer.line "aeroway-taxiway"
+ "composite"
+ [ Layer.minzoom 9
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "type") |> E.isEqual (str "taxiway")
+ ]
+ )
+ , Layer.sourceLayer "aeroway"
+ , Layer.lineColor (E.rgba 242 242 242 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 0.5 ), ( 18, float 20 ) ])
+ ]
+ , Layer.fill "building"
+ "composite"
+ [ Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "building:part")
+ , E.getProperty (str "underground") |> E.isEqual (str "false")
+ ]
+ )
+ , Layer.sourceLayer "building"
+ , Layer.fillColor (E.rgba 233 233 230 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15.5, float 0 ), ( 16, float 1 ) ])
+ , Layer.fillOutlineColor (E.rgba 222 222 220 1)
+ ]
+ , Layer.line "tunnel-street-low"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited-low"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-service-link-track-case"
+ "composite"
+ [ Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 223 229 230 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited-case"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 223 229 230 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street-case"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 223 229 230 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-secondary-tertiary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 223 229 230 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 223 229 230 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk_link-case"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 223 229 230 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway_link-case"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 223 229 230 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 223 229 230 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 223 229 230 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-construction"
+ "composite"
+ [ Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "tunnel-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "steps")
+ , E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineColor (E.rgba 216 216 216 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 216 216 216 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk_link"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway_link"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-pedestrian"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-service-link-track"
+ "composite"
+ [ Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-secondary-tertiary"
+ "composite"
+ [ Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-primary"
+ "composite"
+ [ Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway"
+ "composite"
+ [ Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineColor (E.rgba 222 226 226 1)
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-pedestrian-case"
+ "composite"
+ [ Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 2 ), ( 18, float 14.5 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 219 224 222 1 ), ( 11, E.rgba 232 237 235 1 ) ])
+ , Layer.lineGapWidth (float 0)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street-low"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.25, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited-low"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.25, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-service-link-track-case"
+ "composite"
+ [ Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 219 224 222 1 ), ( 11, E.rgba 232 237 235 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited-case"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 219 224 222 1 ), ( 11, E.rgba 232 237 235 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street-case"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 219 224 222 1 ), ( 11, E.rgba 232 237 235 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-main-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 219 224 222 1 ), ( 11, E.rgba 232 237 235 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "primary")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 219 224 222 1 ), ( 11, E.rgba 232 237 235 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway_link-case"
+ "composite"
+ [ Layer.minzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 219 224 222 1 ), ( 11, E.rgba 232 237 235 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk_link-case"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 219 224 222 1 ), ( 11, E.rgba 232 237 235 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 7, float 0.4 ), ( 9, float 0.5 ), ( 10, float 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk-case"
+ "composite"
+ [ Layer.minzoom 5
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "trunk")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 7, float 0.5 ), ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 219 224 222 1 ), ( 11, E.rgba 232 237 235 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.5 ), ( 9, float 1.4 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 6.1, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "motorway")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 7, float 0.5 ), ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 219 224 222 1 ), ( 11, E.rgba 232 237 235 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-construction"
+ "composite"
+ [ Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "road-sidewalks"
+ "composite"
+ [ Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.matchesStr [ ( "crossing", true ), ( "sidewalk", true ) ] false
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 0 ), ( 16.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "crossing", false ), ( "sidewalk", false ), ( "steps", false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "path")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk_link"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway_link"
+ "composite"
+ [ Layer.minzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-pedestrian"
+ "composite"
+ [ Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-service-link-track"
+ "composite"
+ [ Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-secondary-tertiary"
+ "composite"
+ [ Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-primary"
+ "composite"
+ [ Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "primary")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk"
+ "composite"
+ [ Layer.minzoom 5
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "trunk")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.5 ), ( 9, float 1.4 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway"
+ "composite"
+ [ Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "motorway")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-rail"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-pedestrian-case"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 2 ), ( 18, float 14.5 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street-low"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited-low"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-service-link-track-case"
+ "composite"
+ [ Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited-case"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street-case"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-secondary-tertiary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-case"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-case"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer") |> E.lessThanOrEqual (float 1)
+ , E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 7, float 0.5 ), ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-construction"
+ "composite"
+ [ Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "bridge-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "steps")
+ , E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-pedestrian"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-service-link-track"
+ "composite"
+ [ Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "primary")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-rail"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-2-case"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-2-case copy"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 7, float 0.5 ), ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 232 237 235 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-2"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-2"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ ]
+ ]
+ )
+ , Layer.sourceLayer "road"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "admin-3-4-boundaries-bg"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maritime") |> E.isEqual (float 0)
+ , E.getProperty (str "admin_level") |> E.greaterThanOrEqual (float 3)
+ ]
+ )
+ , Layer.lineColor (E.rgba 214 214 214 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 3.5 ), ( 10, float 8 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 0 ), ( 7, float 0.5 ), ( 8, float 0.75 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 8, float 3 ) ])
+ , Layer.lineJoin E.lineJoinBevel
+ ]
+ , Layer.line "admin-2-boundaries-bg"
+ "composite"
+ [ Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.sourceLayer "admin"
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 3.5 ), ( 10, float 10 ) ])
+ , Layer.lineColor (E.rgba 214 214 214 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 4, float 0.5 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "admin-3-4-boundaries"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maritime") |> E.isEqual (float 0)
+ , E.getProperty (str "admin_level") |> E.greaterThanOrEqual (float 3)
+ ]
+ )
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 2, 0 ]) [ ( 7, E.floats [ 2, 2, 6, 2 ] ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 0.75 ), ( 12, float 1.5 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 2, float 0 ), ( 3, float 1 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, E.rgba 204 204 204 1 ), ( 5, E.rgba 178 178 178 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.line "admin-2-boundaries"
+ "composite"
+ [ Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "disputed") |> E.isEqual (float 0)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.sourceLayer "admin"
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, E.rgba 178 178 178 1 ), ( 4, E.rgba 158 158 158 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0.5 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.line "admin-2-boundaries-dispute"
+ "composite"
+ [ Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "disputed") |> E.isEqual (float 1)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.sourceLayer "admin"
+ , Layer.lineDasharray (E.floats [ 1.5, 1.5 ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, E.rgba 178 178 178 1 ), ( 4, E.rgba 158 158 158 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0.5 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "waterway-label"
+ "composite"
+ [ Layer.minzoom 12
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "canal", true ), ( "river", true ) ] false)
+ , Layer.sourceLayer "waterway_label"
+ , Layer.textHaloWidth (float 0)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textColor (E.rgba 120 136 138 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textMaxAngle (float 30)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 12 ), ( 18, float 16 ) ])
+ ]
+ , Layer.symbol "poi-scalerank3"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 3)
+ ]
+ )
+ , Layer.textColor (E.rgba 148 148 148 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 1)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks-scalerank3"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "scalerank") |> E.isEqual (float 3)
+ , E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ ]
+ )
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textColor (E.rgba 148 148 148 1)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 12 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "road-label-small"
+ "composite"
+ [ Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "ferry", false )
+ , ( "golf", false )
+ , ( "link", false )
+ , ( "motorway", false )
+ , ( "path", false )
+ , ( "pedestrian", false )
+ , ( "primary", false )
+ , ( "secondary", false )
+ , ( "street", false )
+ , ( "street_limited", false )
+ , ( "tertiary", false )
+ , ( "track", false )
+ , ( "trunk", false )
+ ]
+ true
+ , E.geometryType |> E.isEqual (str "LineString")
+ ]
+ )
+ , Layer.sourceLayer "road_label"
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 10 ), ( 20, float 13 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 500)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "road-label-medium"
+ "composite"
+ [ Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "pedestrian", true ), ( "street", true ), ( "street_limited", true ) ] false
+ ]
+ )
+ , Layer.sourceLayer "road_label"
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 10 ), ( 20, float 14 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 500)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "road-label-large"
+ "composite"
+ [ Layer.minzoom 12
+ , Layer.filter
+ (E.getProperty (str "class")
+ |> E.matchesStr [ ( "motorway", true ), ( "primary", true ), ( "secondary", true ), ( "tertiary", true ), ( "trunk", true ) ] false
+ )
+ , Layer.sourceLayer "road_label"
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 10 ), ( 20, float 16 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 400)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "poi-scalerank2"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 2)
+ ]
+ )
+ , Layer.textColor (E.rgba 148 148 148 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 12 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks-scalerank2"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "scalerank") |> E.isEqual (float 2)
+ , E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ ]
+ )
+ , Layer.textColor (E.rgba 148 148 148 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 12 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "water-label"
+ "composite"
+ [ Layer.minzoom 5
+ , Layer.filter (E.getProperty (str "area") |> E.greaterThan (float 10000))
+ , Layer.sourceLayer "water_label"
+ , Layer.textColor (E.rgba 120 136 138 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 13 ), ( 18, float 18 ) ])
+ ]
+ , Layer.symbol "poi-parks-scalerank1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 1)
+ , E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ ]
+ )
+ , Layer.textColor (E.rgba 147 147 147 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 12 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-scalerank1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 1)
+ ]
+ )
+ , Layer.textColor (E.rgba 147 147 147 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 12 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "airport-label"
+ "composite"
+ [ Layer.minzoom 10
+ , Layer.filter (E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2))
+ , Layer.sourceLayer "airport_label"
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 12 ), ( 18, float 18 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 13, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.75 ])
+ , Layer.textAnchor E.positionTop
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 14, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 9)
+ ]
+ , Layer.symbol "place-islets-archipelago-aboriginal"
+ "composite"
+ [ Layer.maxzoom 16
+ , Layer.filter
+ (E.getProperty (str "type")
+ |> E.matchesStr [ ( "aboriginal_lands", true ), ( "archipelago", true ), ( "islet", true ) ] false
+ )
+ , Layer.sourceLayer "place_label"
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 16 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "place-neighbourhood"
+ "composite"
+ [ Layer.minzoom 12
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "neighbourhood"))
+ , Layer.sourceLayer "place_label"
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textColor (E.rgba 158 158 158 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textMaxWidth (float 7)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 3)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 11 ), ( 16, float 16 ) ])
+ ]
+ , Layer.symbol "place-suburb"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "suburb"))
+ , Layer.sourceLayer "place_label"
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textColor (E.rgba 158 158 158 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 7)
+ , Layer.textPadding (float 3)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 11 ), ( 15, float 18 ) ])
+ ]
+ , Layer.symbol "place-hamlet"
+ "composite"
+ [ Layer.minzoom 10
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "hamlet"))
+ , Layer.sourceLayer "place_label"
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textColor (E.rgba 158 158 158 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 11.5 ), ( 15, float 16 ) ])
+ ]
+ , Layer.symbol "place-village"
+ "composite"
+ [ Layer.minzoom 11
+ , Layer.maxzoom 15
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "village"))
+ , Layer.sourceLayer "place_label"
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, E.rgba 158 158 158 1 ), ( 11, E.rgba 140 140 140 1 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11.5 ), ( 16, float 18 ) ])
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ ]
+ , Layer.symbol "place-town"
+ "composite"
+ [ Layer.minzoom 7
+ , Layer.maxzoom 15
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "town"))
+ , Layer.sourceLayer "place_label"
+ , Layer.textColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, E.rgba 158 158 158 1 ), ( 11, E.rgba 140 140 140 1 ) ])
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 11.5 ), ( 15, float 20 ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 12, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-islands"
+ "composite"
+ [ Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "island"))
+ , Layer.sourceLayer "place_label"
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 16 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-sm"
+ "composite"
+ [ Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "scalerank")
+ |> E.matchesFloat [ ( 0, false ), ( 1, false ), ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.sourceLayer "place_label"
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 12 ), ( 14, float 22 ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-md-s"
+ "composite"
+ [ Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "type") |> E.isEqual (str "city")
+ , E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "E", true ), ( "S", true ), ( "SE", true ), ( "SW", true ) ] false
+ , E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ), ( 5, true ) ] false
+ ]
+ )
+ , Layer.sourceLayer "place_label"
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 12 ), ( 12, float 22 ) ])
+ , Layer.textAnchor E.positionTop
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, 0.1 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.iconImage (str "dot-10")
+ ]
+ , Layer.symbol "place-city-md-n"
+ "composite"
+ [ Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "type") |> E.isEqual (str "city")
+ , E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "N", true ), ( "NE", true ), ( "NW", true ), ( "W", true ) ] false
+ , E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ), ( 5, true ) ] false
+ ]
+ )
+ , Layer.sourceLayer "place_label"
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 12 ), ( 12, float 22 ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.25 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor E.positionBottom
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.iconImage (str "dot-10")
+ ]
+ , Layer.symbol "place-city-lg-s"
+ "composite"
+ [ Layer.minzoom 1
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2)
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ , E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "E", true ), ( "S", true ), ( "SE", true ), ( "SW", true ) ] false
+ ]
+ )
+ , Layer.sourceLayer "place_label"
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 4, float 12 ), ( 10, float 22 ) ])
+ , Layer.iconImage (str "dot-11")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, 0.15 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.iconSize (float 1)
+ , Layer.textAnchor (E.zoom |> E.step E.positionTop [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-lg-n"
+ "composite"
+ [ Layer.minzoom 1
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2)
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ , E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "N", true ), ( "NE", true ), ( "NW", true ), ( "W", true ) ] false
+ ]
+ )
+ , Layer.sourceLayer "place_label"
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textOpacity (float 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 4, float 12 ), ( 10, float 22 ) ])
+ , Layer.iconImage (str "dot-11")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.25 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.iconSize (float 1)
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "marine-label-sm-ln"
+ "composite"
+ [ Layer.minzoom 3
+ , Layer.maxzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "labelrank") |> E.greaterThanOrEqual (float 4)
+ ]
+ )
+ , Layer.sourceLayer "marine_label"
+ , Layer.textColor (E.rgba 120 136 138 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 12 ), ( 6, float 16 ) ])
+ , Layer.symbolSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 100 ), ( 6, float 400 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "marine-label-sm-pt"
+ "composite"
+ [ Layer.minzoom 3
+ , Layer.maxzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "labelrank") |> E.greaterThanOrEqual (float 4)
+ ]
+ )
+ , Layer.sourceLayer "marine_label"
+ , Layer.textColor (E.rgba 120 136 138 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 5)
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 12 ), ( 6, float 16 ) ])
+ ]
+ , Layer.symbol "marine-label-md-ln"
+ "composite"
+ [ Layer.minzoom 2
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "labelrank") |> E.matchesFloat [ ( 2, true ), ( 3, true ) ] false
+ ]
+ )
+ , Layer.sourceLayer "marine_label"
+ , Layer.textColor (E.rgba 120 136 138 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1.1) [ ( 2, float 12 ), ( 5, float 20 ) ])
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "marine-label-md-pt"
+ "composite"
+ [ Layer.minzoom 2
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "labelrank") |> E.matchesFloat [ ( 2, true ), ( 3, true ) ] false
+ ]
+ )
+ , Layer.sourceLayer "marine_label"
+ , Layer.textColor (E.rgba 120 136 138 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 5)
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1.1) [ ( 2, float 14 ), ( 5, float 20 ) ])
+ ]
+ , Layer.symbol "marine-label-lg-ln"
+ "composite"
+ [ Layer.minzoom 1
+ , Layer.maxzoom 4
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "labelrank") |> E.isEqual (float 1) ])
+ , Layer.sourceLayer "marine_label"
+ , Layer.textColor (E.rgba 120 136 138 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 4)
+ , Layer.textLetterSpacing (float 0.25)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPitchAlignment E.anchorViewport
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 14 ), ( 4, float 30 ) ])
+ ]
+ , Layer.symbol "marine-label-lg-pt"
+ "composite"
+ [ Layer.minzoom 1
+ , Layer.maxzoom 4
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Point"), E.getProperty (str "labelrank") |> E.isEqual (float 1) ])
+ , Layer.sourceLayer "marine_label"
+ , Layer.textColor (E.rgba 120 136 138 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 4)
+ , Layer.textLetterSpacing (float 0.25)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 14 ), ( 4, float 30 ) ])
+ ]
+ , Layer.symbol "state-label-sm"
+ "composite"
+ [ Layer.minzoom 3
+ , Layer.maxzoom 9
+ , Layer.filter (E.getProperty (str "area") |> E.lessThan (float 20000))
+ , Layer.sourceLayer "state_label"
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 168 168 168 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 10 ), ( 9, float 14 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 6, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "state-label-md"
+ "composite"
+ [ Layer.minzoom 3
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "area") |> E.lessThan (float 80000)
+ , E.getProperty (str "area") |> E.greaterThanOrEqual (float 20000)
+ ]
+ )
+ , Layer.sourceLayer "state_label"
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 168 168 168 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 10 ), ( 8, float 16 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 5, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 6)
+ ]
+ , Layer.symbol "state-label-lg"
+ "composite"
+ [ Layer.minzoom 3
+ , Layer.maxzoom 7
+ , Layer.filter (E.getProperty (str "area") |> E.greaterThanOrEqual (float 80000))
+ , Layer.sourceLayer "state_label"
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 168 168 168 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 10 ), ( 7, float 18 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textPadding (float 1)
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 4, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 6)
+ ]
+ , Layer.symbol "country-label-sm"
+ "composite"
+ [ Layer.minzoom 1
+ , Layer.maxzoom 10
+ , Layer.filter (E.getProperty (str "scalerank") |> E.greaterThanOrEqual (float 5))
+ , Layer.sourceLayer "country_label"
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 2, E.rgba 255 255 255 0.75 ), ( 3, E.rgba 255 255 255 1 ) ]
+ )
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 6)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 14 ), ( 9, float 22 ) ])
+ ]
+ , Layer.symbol "country-label-md"
+ "composite"
+ [ Layer.minzoom 1
+ , Layer.maxzoom 8
+ , Layer.filter (E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ) ] false)
+ , Layer.sourceLayer "country_label"
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 2, E.rgba 255 255 255 0.75 ), ( 3, E.rgba 255 255 255 1 ) ]
+ )
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "code"))) [ ( 2, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textMaxWidth (float 6)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 10 ), ( 8, float 24 ) ])
+ ]
+ , Layer.symbol "country-label-lg"
+ "composite"
+ [ Layer.minzoom 1
+ , Layer.maxzoom 7
+ , Layer.filter (E.getProperty (str "scalerank") |> E.matchesFloat [ ( 1, true ), ( 2, true ) ] false)
+ , Layer.sourceLayer "country_label"
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 2, E.rgba 255 255 255 0.75 ), ( 3, E.rgba 255 255 255 1 ) ]
+ )
+ , Layer.textColor (E.rgba 107 107 107 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 0, float 5 ), ( 3, float 6 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 10 ), ( 6, float 24 ) ])
+ ]
+ ]
+ , sources = [ Source.vectorFromUrl "composite" "mapbox://mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7" ]
+ , misc =
+ [ Style.sprite "mapbox://sprites/mapbox/light-v9"
+ , Style.glyphs "mapbox://fonts/mapbox/{fontstack}/{range}.pbf"
+ , Style.name "Light"
+ , Style.defaultZoomLevel 10
+ ]
+ }
diff --git a/examples/Styles/Outdoors.elm b/examples/Styles/Outdoors.elm
new file mode 100644
index 0000000..1d29ce3
--- /dev/null
+++ b/examples/Styles/Outdoors.elm
@@ -0,0 +1,4267 @@
+module Styles.Outdoors exposing (style)
+
+import Mapbox.Expression as E exposing (false, float, str, true)
+import Mapbox.Layer as Layer
+import Mapbox.Source as Source
+import Mapbox.Style as Style exposing (Style(..))
+
+
+style : Style
+style =
+ Style
+ { transition = Style.defaultTransition
+ , light = Style.defaultLight
+ , layers =
+ [ Layer.background "background"
+ [ Layer.backgroundColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, E.rgba 239 233 224 1 ), ( 13, E.rgba 230 227 223 1 ) ])
+ ]
+ , Layer.fill "landcover_crop"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 12
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "crop"))
+ , Layer.fillColor (E.rgba 221 236 176 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 2, float 0.3 ), ( 12, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_grass"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 12
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "grass"))
+ , Layer.fillColor (E.rgba 221 236 176 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 2, float 0.3 ), ( 12, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_scrub"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 12
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "scrub"))
+ , Layer.fillColor (E.rgba 221 236 176 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 2, float 0.3 ), ( 12, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_wood"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 12
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "wood"))
+ , Layer.fillColor (E.rgba 221 236 176 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 2, float 0.3 ), ( 12, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_snow"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (E.rgba 255 250 250 1))
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOpacity (float 0.2)
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "national_park"
+ "composite"
+ [ Layer.sourceLayer "landuse_overlay"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "national_park"))
+ , Layer.fillColor (E.rgba 181 229 157 1)
+ , Layer.fillOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 5, float 0 ), ( 5.5, float 0.75 ), ( 9, float 0.75 ), ( 10, float 0.35 ) ]
+ )
+ ]
+ , Layer.fill "scrub"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.minzoom 9
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "scrub"))
+ , Layer.fillColor (E.rgba 202 215 161 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 0 ), ( 15, float 0.2 ) ])
+ ]
+ , Layer.fill "grass"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.minzoom 9
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "grass"))
+ , Layer.fillColor (E.rgba 202 215 161 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 0 ), ( 15, float 0.4 ) ])
+ ]
+ , Layer.fill "wood"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.minzoom 6
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "wood"))
+ , Layer.fillColor (E.rgba 202 215 161 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 0 ), ( 15, float 0.5 ) ])
+ ]
+ , Layer.fill "agriculture"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.minzoom 11
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "agriculture"))
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 14, float 0.75 ) ])
+ , Layer.fillColor (E.rgba 215 224 188 1)
+ , Layer.fillOutlineColor (E.rgba 186 199 147 1)
+ ]
+ , Layer.line "national_park-tint-band"
+ "composite"
+ [ Layer.sourceLayer "landuse_overlay"
+ , Layer.minzoom 9
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "national_park"))
+ , Layer.lineColor (E.rgba 174 229 147 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.4) [ ( 9, float 1 ), ( 14, float 8 ) ])
+ , Layer.lineOffset (E.zoom |> E.interpolate (E.Exponential 1.4) [ ( 9, float 0 ), ( 14, float -2.5 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 0 ), ( 10, float 0.75 ) ])
+ , Layer.lineBlur (float 3)
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.line "national_park-outline"
+ "composite"
+ [ Layer.sourceLayer "landuse_overlay"
+ , Layer.minzoom 9
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "national_park"))
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, E.rgba 168 217 144 1 ), ( 14, E.rgba 159 204 137 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 0.75 ), ( 12, float 1 ) ])
+ , Layer.lineOffset (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 0 ), ( 10, float 1 ) ])
+ ]
+ , Layer.fill "hospital"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "hospital"))
+ , Layer.fillColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 15.5, E.rgba 234 209 217 1 ), ( 16, E.rgba 244 209 221 1 ) ]
+ )
+ ]
+ , Layer.fill "school"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "school"))
+ , Layer.fillColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 15.5, E.rgba 229 221 183 1 ), ( 16, E.rgba 239 231 188 1 ) ]
+ )
+ ]
+ , Layer.fill "park"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "park")
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "garden", false ), ( "golf_course", false ), ( "playground", false ), ( "zoo", false ) ] true
+ ]
+ )
+ , Layer.fillColor (E.rgba 181 229 157 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 0 ), ( 6, float 1 ) ])
+ ]
+ , Layer.fill "other-green-areas"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "park")
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "garden", true ), ( "golf_course", true ), ( "playground", true ), ( "zoo", true ) ] false
+ ]
+ )
+ , Layer.fillColor (E.rgba 197 235 177 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 0 ), ( 6, float 1 ) ])
+ ]
+ , Layer.fill "glacier"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.minzoom 9
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "glacier"))
+ , Layer.fillColor (E.rgba 224 243 249 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 0 ), ( 10, float 0.5 ) ])
+ ]
+ , Layer.fill "pitch"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "pitch"))
+ , Layer.fillColor (E.rgba 170 224 142 1)
+ ]
+ , Layer.line "pitch-line"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.minzoom 15
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "pitch"))
+ , Layer.lineColor (E.rgba 225 237 190 1)
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.fill "cemetery"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "cemetery"))
+ , Layer.fillColor (E.rgba 215 224 188 1)
+ ]
+ , Layer.fill "industrial"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "industrial"))
+ , Layer.fillColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 15.5, E.rgba 213 215 224 1 ), ( 16, E.rgba 218 221 235 1 ) ]
+ )
+ ]
+ , Layer.fill "sand"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "sand"))
+ , Layer.fillColor (E.rgba 237 237 206 1)
+ ]
+ , Layer.line "contour-line"
+ "composite"
+ [ Layer.sourceLayer "contour"
+ , Layer.minzoom 11
+ , Layer.filter (E.getProperty (str "index") |> E.matchesFloat [ ( 5, false ), ( 10, false ) ] true)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 0.15 ), ( 12, float 0.3 ) ])
+ , Layer.lineColor (E.rgba 33 102 0 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0.5 ), ( 16, float 0.8 ) ])
+ , Layer.lineOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 1 ), ( 16, float 1.6 ) ])
+ ]
+ , Layer.line "contour-line-index"
+ "composite"
+ [ Layer.sourceLayer "contour"
+ , Layer.minzoom 11
+ , Layer.filter (E.getProperty (str "index") |> E.matchesFloat [ ( 5, true ), ( 10, true ) ] false)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 0.25 ), ( 12, float 0.5 ) ])
+ , Layer.lineColor (E.rgba 33 102 0 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0.6 ), ( 16, float 1.2 ) ])
+ , Layer.lineOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0.6 ), ( 16, float 1.2 ) ])
+ ]
+ , Layer.fill "hillshade_highlight_bright"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 18
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 94))
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 0.15 ), ( 18, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_highlight_med"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 90))
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 0.15 ), ( 18, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_faint"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 17
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 89))
+ , Layer.fillColor (E.rgba 89 84 23 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 0.07 ), ( 17, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_med"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 78))
+ , Layer.fillColor (E.rgba 89 84 23 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 0.07 ), ( 17, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_dark"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 67))
+ , Layer.fillColor (E.rgba 89 84 23 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 0.08 ), ( 17, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_extreme"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 17
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 56))
+ , Layer.fillColor (E.rgba 89 84 23 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 0.08 ), ( 17, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.line "waterway-river-canal-shadow"
+ "composite"
+ [ Layer.sourceLayer "waterway"
+ , Layer.minzoom 8
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "canal", true ), ( "river", true ) ] false)
+ , Layer.lineColor (E.rgba 109 164 242 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.3) [ ( 8.5, float 0.4 ), ( 20, float 8 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, float 0 ), ( 8.5, float 1 ) ])
+ , Layer.lineTranslate (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 7, E.floats [ 0, 0 ] ), ( 16, E.floats [ -1, -1 ] ) ])
+ , Layer.lineTranslateAnchor E.anchorViewport
+ , Layer.lineCap (E.zoom |> E.step E.lineCapButt [ ( 11, E.lineCapRound ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "waterway-river-canal"
+ "composite"
+ [ Layer.sourceLayer "waterway"
+ , Layer.minzoom 8
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "canal", true ), ( "river", true ) ] false)
+ , Layer.lineColor (E.rgba 140 202 247 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.3) [ ( 8.5, float 0.4 ), ( 20, float 8 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, float 0 ), ( 8.5, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapButt [ ( 11, E.lineCapRound ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "waterway-small"
+ "composite"
+ [ Layer.sourceLayer "waterway"
+ , Layer.minzoom 13
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "canal", false ), ( "river", false ) ] true)
+ , Layer.lineColor (E.rgba 140 202 247 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.35) [ ( 13.5, float 0.4 ), ( 20, float 3 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.5, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.fill "water-shadow"
+ "composite"
+ [ Layer.sourceLayer "water"
+ , Layer.fillColor (E.rgba 109 164 242 1)
+ , Layer.fillTranslate (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 7, E.floats [ 0, 0 ] ), ( 16, E.floats [ -1, -1 ] ) ])
+ , Layer.fillTranslateAnchor E.anchorViewport
+ , Layer.fillOpacity (float 1)
+ ]
+ , Layer.fill "water" "composite" [ Layer.sourceLayer "water", Layer.fillColor (E.rgba 117 207 239 1) ]
+ , Layer.fill "wetlands"
+ "composite"
+ [ Layer.sourceLayer "landuse_overlay"
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "wetland", true ), ( "wetland_noveg", true ) ] false)
+ , Layer.fillColor (E.rgba 160 212 217 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 0.25 ), ( 10.5, float 0.15 ) ])
+ ]
+ , Layer.fill "wetlands-pattern"
+ "composite"
+ [ Layer.sourceLayer "landuse_overlay"
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "wetland", true ), ( "wetland_noveg", true ) ] false)
+ , Layer.fillColor (E.rgba 160 212 217 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 0 ), ( 10.5, float 1 ) ])
+ , Layer.fillPattern (str "wetland")
+ , Layer.fillTranslateAnchor E.anchorViewport
+ ]
+ , Layer.fill "barrier_line-land-polygon"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Polygon"), E.getProperty (str "class") |> E.isEqual (str "land") ])
+ , Layer.fillColor (E.rgba 230 227 223 1)
+ ]
+ , Layer.line "barrier_line-land-line"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "class") |> E.isEqual (str "land") ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.99) [ ( 14, float 0.75 ), ( 20, float 40 ) ])
+ , Layer.lineColor (E.rgba 230 227 223 1)
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.fill "aeroway-polygon"
+ "composite"
+ [ Layer.sourceLayer "aeroway"
+ , Layer.minzoom 11
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Polygon"), E.getProperty (str "type") |> E.notEqual (str "apron") ])
+ , Layer.fillColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 198 202 219 1 ), ( 16, E.rgba 199 204 229 1 ) ])
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.5, float 1 ) ])
+ ]
+ , Layer.line "aeroway-runway"
+ "composite"
+ [ Layer.sourceLayer "aeroway"
+ , Layer.minzoom 9
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "type") |> E.isEqual (str "runway") ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 198 202 219 1 ), ( 16, E.rgba 199 204 229 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 9, float 1 ), ( 18, float 80 ) ])
+ ]
+ , Layer.line "aeroway-taxiway"
+ "composite"
+ [ Layer.sourceLayer "aeroway"
+ , Layer.minzoom 9
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "type") |> E.isEqual (str "taxiway")
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 198 202 219 1 ), ( 16, E.rgba 199 204 229 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 0.5 ), ( 18, float 20 ) ])
+ ]
+ , Layer.line "building-line"
+ "composite"
+ [ Layer.sourceLayer "building"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "building:part")
+ , E.getProperty (str "underground") |> E.isEqual (str "false")
+ ]
+ )
+ , Layer.lineColor (E.rgba 204 201 198 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 0.75 ), ( 20, float 3 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15.5, float 0 ), ( 16, float 1 ) ])
+ ]
+ , Layer.fill "building"
+ "composite"
+ [ Layer.sourceLayer "building"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "building:part")
+ , E.getProperty (str "underground") |> E.isEqual (str "false")
+ ]
+ )
+ , Layer.fillColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 227 224 221 1 ), ( 16, E.rgba 219 217 213 1 ) ])
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15.5, float 0 ), ( 16, float 1 ) ])
+ , Layer.fillOutlineColor (E.rgba 204 201 198 1)
+ ]
+ , Layer.line "tunnel-street-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-track-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "track")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 204 170 0 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 12 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-service-link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "link", true ), ( "service", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 179 183 203 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 179 183 203 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 179 183 203 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-secondary-tertiary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 179 183 203 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 179 183 203 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-construction"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "tunnel-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "cycleway", false ), ( "piste", false ), ( "steps", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 4, 0.4 ]) [ ( 15, E.floats [ 3, 0.4 ] ), ( 16, E.floats [ 3, 0.35 ] ), ( 17, E.floats [ 3, 0.35 ] ) ]
+ )
+ , Layer.lineColor (E.rgba 245 242 238 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-cycleway-piste"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.matchesStr [ ( "cycleway", true ), ( "piste", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 4, 0.4 ]) [ ( 15, E.floats [ 3, 0.4 ] ), ( 16, E.floats [ 3, 0.35 ] ), ( 17, E.floats [ 3, 0.35 ] ) ]
+ )
+ , Layer.lineColor (E.rgba 245 242 238 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 16, float 1.6 ), ( 18, float 6 ) ])
+ , Layer.lineColor (E.rgba 245 242 238 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 4, 0.4 ]) [ ( 15, E.floats [ 1.75, 0.4 ] ), ( 16, E.floats [ 0.75, 0.4 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 242 221 155 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 242 201 170 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-pedestrian"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-track"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "track")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-service-link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "link", true ), ( "service", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 239 237 234 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "tunnel-oneway-arrows-blue-minor"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "path", true ), ( "pedestrian", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 18, str "oneway-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.symbol "tunnel-oneway-arrows-blue-major"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "primary", true )
+ , ( "secondary", true )
+ , ( "street", true )
+ , ( "street_limited", true )
+ , ( "tertiary", true )
+ ]
+ false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 17, str "oneway-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.line "tunnel-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 242 221 155 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineColor (E.rgba 242 201 170 1)
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "tunnel-oneway-arrows-white"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "link", true ), ( "trunk", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "primary_link", false ), ( "secondary_link", false ), ( "tertiary_link", false ) ] true
+ ]
+ ]
+ )
+ , Layer.iconOpacity (float 0.5)
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-white-small") [ ( 17, str "oneway-white-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.line "cliffs"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.minzoom 15
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "cliff"))
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 0 ), ( 15.25, float 1 ) ])
+ , Layer.lineWidth (float 10)
+ , Layer.linePattern (str "cliff")
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "ferry"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "type") |> E.isEqual (str "ferry") ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 91 172 229 1 ), ( 17, E.rgba 91 114 229 1 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 20, float 1 ) ])
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 13, E.floats [ 12, 4 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "ferry-auto"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "type") |> E.isEqual (str "ferry_auto")
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 91 172 229 1 ), ( 17, E.rgba 91 114 229 1 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-path-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "corridor", false ), ( "crossing", false ), ( "piste", false ), ( "sidewalk", false ), ( "steps", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2.5 ), ( 18, float 8 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineColor (E.rgba 204 170 0 1)
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 17, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-piste-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "piste")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2 ), ( 18, float 7 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineColor (E.rgba 99 123 242 1)
+ , Layer.lineBlur (float 0)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-sidewalk-corridor-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "corridor", true ), ( "crossing", true ), ( "sidewalk", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2 ), ( 18, float 7 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineColor (E.rgba 201 203 216 1)
+ , Layer.lineBlur (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 0 ), ( 16.25, float 0.25 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-steps-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2.5 ), ( 18, float 8 ) ])
+ , Layer.lineColor (E.rgba 204 170 0 1)
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 17, float 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 0.25 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-pedestrian-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 2 ), ( 18, float 14.5 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.25, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.25, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-track-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "track")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 204 170 0 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 12 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-service-link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "link", true ), ( "service", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-secondary-tertiary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9.99, float 0 ), ( 10, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9.99, float 0 ), ( 10, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 6.1, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-construction"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "road-sidewalk-corridor"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "corridor", true ), ( "crossing", true ), ( "sidewalk", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 4, 0.4 ]) [ ( 15, E.floats [ 3, 0.4 ] ), ( 16, E.floats [ 3, 0.35 ] ), ( 17, E.floats [ 3, 0.35 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 0 ), ( 16.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-path-smooth"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "bridleway", true ), ( "footway", true ), ( "path", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 4, 0.4 ]) [ ( 15, E.floats [ 3, 0.4 ] ), ( 16, E.floats [ 3, 0.35 ] ), ( 17, E.floats [ 3, 0.35 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-path-rough"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "hiking", true ), ( "mountain_bike", true ), ( "trail", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 4, 0.4 ]) [ ( 15, E.floats [ 1.75, 0.4 ] ), ( 16, E.floats [ 1, 0.4 ] ), ( 17, E.floats [ 1, 0.35 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-cycleway-piste"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.matchesStr [ ( "cycleway", true ), ( "piste", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 16, float 1.6 ), ( 18, float 6 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 4, 0.4 ]) [ ( 15, E.floats [ 1.75, 0.4 ] ), ( 16, E.floats [ 0.75, 0.4 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 229 203 117 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 229 171 127 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-pedestrian"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.fill "road-pedestrian-polygon-fill"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Polygon")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "path", true ), ( "pedestrian", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.fillColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 16, E.rgba 237 238 242 1 ), ( 16.25, E.rgba 247 248 252 1 ) ]
+ )
+ , Layer.fillOutlineColor (E.rgba 216 219 232 1)
+ , Layer.fillOpacity (float 1)
+ ]
+ , Layer.fill "road-pedestrian-polygon-pattern"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Polygon")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "path", true ), ( "pedestrian", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOutlineColor (E.rgba 215 212 207 1)
+ , Layer.fillPattern (str "pedestrian-polygon")
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 0 ), ( 16.25, float 1 ) ])
+ ]
+ , Layer.fill "road-polygon"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Polygon")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "motorway", false ), ( "path", false ), ( "pedestrian", false ), ( "trunk", false ) ] true
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOutlineColor (E.rgba 179 183 203 1)
+ ]
+ , Layer.line "road-track"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "track")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-service-link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "link", true ), ( "service", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 239 237 234 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 239 233 224 1 ), ( 8, E.rgba 255 255 255 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 239 233 224 1 ), ( 8, E.rgba 255 255 255 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "road-oneway-arrows-blue-minor"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "path", true ), ( "pedestrian", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 18, str "oneway-large" ) ])
+ , Layer.iconRotationAlignment E.anchorMap
+ , Layer.iconPadding (float 2)
+ , Layer.symbolSpacing (float 200)
+ ]
+ , Layer.symbol "road-oneway-arrows-blue-major"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "primary", true )
+ , ( "secondary", true )
+ , ( "street", true )
+ , ( "street_limited", true )
+ , ( "tertiary", true )
+ ]
+ false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 17, str "oneway-large" ) ])
+ , Layer.iconRotationAlignment E.anchorMap
+ , Layer.iconPadding (float 2)
+ , Layer.symbolSpacing (float 200)
+ ]
+ , Layer.line "road-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, E.rgba 255 255 255 1 ), ( 6.1, E.rgba 234 196 71 1 ), ( 9, E.rgba 229 203 117 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 242 146 73 1 ), ( 9, E.rgba 229 171 127 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-rail"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, E.rgba 216 214 201 1 ), ( 16, E.rgba 182 184 195 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-rail-tracks"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, E.rgba 216 214 201 1 ), ( 16, E.rgba 182 184 195 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 4 ), ( 20, float 8 ) ])
+ , Layer.lineDasharray (E.floats [ 0.1, 15 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.75, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "road-oneway-arrows-white"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "link", true ), ( "trunk", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "primary_link", false ), ( "secondary_link", false ), ( "tertiary_link", false ) ] true
+ ]
+ ]
+ )
+ , Layer.iconOpacity (float 0.5)
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-white-small") [ ( 17, str "oneway-white-large" ) ])
+ , Layer.iconPadding (float 2)
+ , Layer.symbolSpacing (float 200)
+ ]
+ , Layer.line "hedges"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.minzoom 16
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "hedge"))
+ , Layer.lineColor (E.rgba 163 223 133 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 1 ), ( 20, float 3 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 2, 5, 2, 1, 2 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "fences"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.minzoom 16
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "fence"))
+ , Layer.lineColor (E.rgba 204 199 183 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 1 ), ( 20, float 3 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 2, 5, 2, 1, 2 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "gates"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.minzoom 17
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "gate"))
+ , Layer.lineColor (E.rgba 204 199 183 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 1 ), ( 20, float 3 ) ])
+ , Layer.lineOpacity (float 0.5)
+ , Layer.lineDasharray (E.floats [ 1, 2, 5, 2, 1, 2 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-path-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.matchesStr [ ( "piste", false ), ( "steps", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2.5 ), ( 18, float 8 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineColor (E.rgba 204 170 0 1)
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 17, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-piste-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "piste")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2 ), ( 18, float 7 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineColor (E.rgba 88 163 217 1)
+ , Layer.lineBlur (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-steps-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2.5 ), ( 18, float 8 ) ])
+ , Layer.lineColor (E.rgba 204 170 0 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 17, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-pedestrian-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 2 ), ( 18, float 14.5 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-track-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "track")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 204 170 0 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 12 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-service-link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "link", true ), ( "service", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-secondary-tertiary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-construction"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "bridge-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "cycleway", false ), ( "piste", false ), ( "steps", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 4, 0.4 ]) [ ( 15, E.floats [ 3, 0.4 ] ), ( 16, E.floats [ 3, 0.35 ] ), ( 17, E.floats [ 3, 0.35 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-cycleway-piste"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.matchesStr [ ( "cycleway", true ), ( "piste", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 16, float 1.6 ), ( 18, float 6 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 4, 0.4 ]) [ ( 15, E.floats [ 1.75, 0.4 ] ), ( 16, E.floats [ 0.75, 0.4 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 229 203 117 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 229 171 127 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-pedestrian"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-track"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "track")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-service-link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 239 237 234 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "primary")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "bridge-oneway-arrows-blue-minor"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "path", true ), ( "pedestrian", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 18, str "oneway-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconRotationAlignment E.anchorMap
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.symbol "bridge-oneway-arrows-blue-major"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "primary", true )
+ , ( "secondary", true )
+ , ( "street", true )
+ , ( "street_limited", true )
+ , ( "tertiary", true )
+ ]
+ false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 17, str "oneway-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconRotationAlignment E.anchorMap
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.line "bridge-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 229 203 117 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 229 171 127 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-rail"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, E.rgba 216 214 201 1 ), ( 16, E.rgba 182 184 195 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-rail-tracks"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, E.rgba 216 214 201 1 ), ( 16, E.rgba 182 184 195 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 4 ), ( 20, float 8 ) ])
+ , Layer.lineDasharray (E.floats [ 0.1, 15 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.75, float 0 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 229 203 117 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 229 171 127 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 229 203 117 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 229 171 127 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "bridge-oneway-arrows-white"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "link", true ), ( "trunk", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "primary_link", false ), ( "secondary_link", false ), ( "tertiary_link", false ) ] true
+ ]
+ ]
+ )
+ , Layer.iconOpacity (float 0.5)
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-white-small") [ ( 17, str "oneway-white-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.line "aerialway-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class") |> E.isEqual (str "aerialway")
+ ]
+ )
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 2.5 ), ( 20, float 3 ) ])
+ , Layer.lineBlur (float 0.5)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "aerialway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class") |> E.isEqual (str "aerialway")
+ ]
+ )
+ , Layer.lineColor (E.rgba 70 71 76 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "admin-3-4-boundaries-bg"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.greaterThanOrEqual (float 3)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 230 227 223 1 ), ( 16, E.rgba 217 221 241 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 3.75 ), ( 12, float 5.5 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 0 ), ( 8, float 0.75 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 8, float 3 ) ])
+ , Layer.lineJoin E.lineJoinBevel
+ ]
+ , Layer.line "admin-2-boundaries-bg"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 3.5 ), ( 10, float 8 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, E.rgba 230 227 223 1 ), ( 8, E.rgba 217 221 241 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 4, float 0.5 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "admin-3-4-boundaries"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.greaterThanOrEqual (float 3)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 2, 0 ]) [ ( 7, E.floats [ 2, 2, 6, 2 ] ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 0.75 ), ( 12, float 1.5 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 2, float 0 ), ( 3, float 1 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, E.rgba 188 190 204 1 ), ( 7, E.rgba 150 152 165 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.line "admin-2-boundaries"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "disputed") |> E.isEqual (float 0)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor (E.rgba 120 123 140 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0.5 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.line "admin-2-boundaries-dispute"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "disputed") |> E.isEqual (float 1)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineDasharray (E.floats [ 1.5, 1.5 ])
+ , Layer.lineColor (E.rgba 120 123 140 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0.5 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "housenum-label"
+ "composite"
+ [ Layer.sourceLayer "housenum_label"
+ , Layer.minzoom 17
+ , Layer.textColor (E.rgba 177 176 174 1)
+ , Layer.textHaloColor (E.rgba 219 217 213 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "house_num")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 4)
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (float 9.5)
+ ]
+ , Layer.symbol "contour-label"
+ "composite"
+ [ Layer.sourceLayer "contour"
+ , Layer.minzoom 11
+ , Layer.filter (E.getProperty (str "index") |> E.matchesFloat [ ( 5, true ), ( 10, true ) ] false)
+ , Layer.textColor (E.rgba 57 114 28 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.rgba 255 255 255 0.5)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "ele") |> E.append (str " m")))
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textMaxAngle (float 25)
+ , Layer.textPadding (float 5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 9.5 ), ( 20, float 12 ) ])
+ ]
+ , Layer.symbol "waterway-label"
+ "composite"
+ [ Layer.sourceLayer "waterway_label"
+ , Layer.minzoom 12
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "canal", true ), ( "river", true ) ] false)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloColor (E.rgba 117 207 239 1)
+ , Layer.textColor (E.rgba 58 76 166 1)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textMaxAngle (float 30)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 12 ), ( 18, float 16 ) ])
+ ]
+ , Layer.symbol "poi-relevant-scalerank4-l15"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.minzoom 17
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "localrank") |> E.greaterThanOrEqual (float 15)
+ , E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "amusement-park", true )
+ , ( "aquarium", true )
+ , ( "attraction", true )
+ , ( "bakery", true )
+ , ( "bank", true )
+ , ( "bar", true )
+ , ( "beer", true )
+ , ( "bus", true )
+ , ( "cafe", true )
+ , ( "castle", true )
+ , ( "college", true )
+ , ( "doctor", true )
+ , ( "fast-food", true )
+ , ( "ferry", true )
+ , ( "fire-station", true )
+ , ( "fuel", true )
+ , ( "grocery", true )
+ , ( "harbor", true )
+ , ( "hospital", true )
+ , ( "ice-cream", true )
+ , ( "lodging", true )
+ , ( "marker", true )
+ , ( "monument", true )
+ , ( "museum", true )
+ , ( "pharmacy", true )
+ , ( "police", true )
+ , ( "post", true )
+ , ( "restaurant", true )
+ , ( "rocket", true )
+ , ( "stadium", true )
+ , ( "swimming", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 102 78 61 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-11"))
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 1)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-relevant-scalerank4-l1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "localrank") |> E.lessThanOrEqual (float 14)
+ , E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "amusement-park", true )
+ , ( "aquarium", true )
+ , ( "attraction", true )
+ , ( "bakery", true )
+ , ( "bank", true )
+ , ( "bar", true )
+ , ( "beer", true )
+ , ( "bus", true )
+ , ( "cafe", true )
+ , ( "castle", true )
+ , ( "college", true )
+ , ( "doctor", true )
+ , ( "fast-food", true )
+ , ( "ferry", true )
+ , ( "fire-station", true )
+ , ( "fuel", true )
+ , ( "grocery", true )
+ , ( "harbor", true )
+ , ( "hospital", true )
+ , ( "ice-cream", true )
+ , ( "lodging", true )
+ , ( "marker", true )
+ , ( "monument", true )
+ , ( "museum", true )
+ , ( "pharmacy", true )
+ , ( "police", true )
+ , ( "post", true )
+ , ( "restaurant", true )
+ , ( "rocket", true )
+ , ( "stadium", true )
+ , ( "swimming", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 102 78 61 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-11"))
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 1)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks_scalerank4"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 33 102 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-11"))
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 1)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-scalerank3"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 3)
+ ]
+ )
+ , Layer.textColor (E.rgba 102 78 61 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-11"))
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 1)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks-scalerank3"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 3)
+ ]
+ )
+ , Layer.textColor (E.rgba 33 102 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-11"))
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "road-label-small"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "aerialway", false )
+ , ( "link", false )
+ , ( "motorway", false )
+ , ( "path", false )
+ , ( "pedestrian", false )
+ , ( "primary", false )
+ , ( "secondary", false )
+ , ( "street", false )
+ , ( "street_limited", false )
+ , ( "tertiary", false )
+ , ( "trunk", false )
+ ]
+ true
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textHaloBlur (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 10 ), ( 20, float 13 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "road-label-medium"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "aerialway", true )
+ , ( "link", true )
+ , ( "path", true )
+ , ( "pedestrian", true )
+ , ( "street", true )
+ , ( "street_limited", true )
+ ]
+ false
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 10 ), ( 20, float 14 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "road-label-large"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.filter
+ (E.getProperty (str "class")
+ |> E.matchesStr [ ( "motorway", true ), ( "primary", true ), ( "secondary", true ), ( "tertiary", true ), ( "trunk", true ) ] false
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 10 ), ( 20, float 16 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "road-shields-black"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "reflen") |> E.lessThanOrEqual (float 6)
+ , E.getProperty (str "shield")
+ |> E.matchesStr
+ [ ( "at-expressway", false )
+ , ( "at-motorway", false )
+ , ( "at-state-b", false )
+ , ( "bg-motorway", false )
+ , ( "bg-national", false )
+ , ( "ch-main", false )
+ , ( "ch-motorway", false )
+ , ( "cz-motorway", false )
+ , ( "cz-road", false )
+ , ( "de-motorway", false )
+ , ( "e-road", false )
+ , ( "fi-main", false )
+ , ( "gr-motorway", false )
+ , ( "gr-national", false )
+ , ( "hr-motorway", false )
+ , ( "hr-state", false )
+ , ( "hu-main", false )
+ , ( "hu-motorway", false )
+ , ( "nz-state", false )
+ , ( "pl-expressway", false )
+ , ( "pl-motorway", false )
+ , ( "pl-national", false )
+ , ( "ro-county", false )
+ , ( "ro-motorway", false )
+ , ( "ro-national", false )
+ , ( "rs-motorway", false )
+ , ( "rs-state-1b", false )
+ , ( "se-main", false )
+ , ( "si-expressway", false )
+ , ( "si-motorway", false )
+ , ( "sk-highway", false )
+ , ( "sk-road", false )
+ , ( "us-interstate", false )
+ , ( "us-interstate-business", false )
+ , ( "us-interstate-duplex", false )
+ , ( "us-interstate-truck", false )
+ , ( "za-metropolitan", false )
+ , ( "za-national", false )
+ , ( "za-provincial", false )
+ , ( "za-regional", false )
+ ]
+ true
+ ]
+ )
+ , Layer.textColor (E.rgba 74 81 114 1)
+ , Layer.iconHaloColor (E.rgba 0 0 0 1)
+ , Layer.iconHaloWidth (float 1)
+ , Layer.textOpacity (float 1)
+ , Layer.iconColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0)
+ , Layer.textSize (float 9)
+ , Layer.iconImage (E.getProperty (str "shield") |> E.append (str "-") |> E.append (E.getProperty (str "reflen")))
+ , Layer.iconRotationAlignment E.anchorViewport
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 150 ), ( 14, float 200 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.symbolPlacement (E.zoom |> E.step E.symbolPlacementPoint [ ( 11, E.symbolPlacementLine ) ])
+ , Layer.textPadding (float 2)
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "ref")))
+ , Layer.textLetterSpacing (float 0.05)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.symbol "road-shields-white"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "reflen") |> E.lessThanOrEqual (float 6)
+ , E.getProperty (str "shield")
+ |> E.matchesStr
+ [ ( "at-expressway", true )
+ , ( "at-motorway", true )
+ , ( "at-state-b", true )
+ , ( "bg-motorway", true )
+ , ( "bg-national", true )
+ , ( "ch-main", true )
+ , ( "ch-motorway", true )
+ , ( "cz-motorway", true )
+ , ( "cz-road", true )
+ , ( "de-motorway", true )
+ , ( "e-road", true )
+ , ( "fi-main", true )
+ , ( "gr-motorway", true )
+ , ( "gr-national", true )
+ , ( "hr-motorway", true )
+ , ( "hr-state", true )
+ , ( "hu-main", true )
+ , ( "hu-motorway", true )
+ , ( "nz-state", true )
+ , ( "pl-expressway", true )
+ , ( "pl-motorway", true )
+ , ( "pl-national", true )
+ , ( "ro-county", true )
+ , ( "ro-motorway", true )
+ , ( "ro-national", true )
+ , ( "rs-motorway", true )
+ , ( "rs-state-1b", true )
+ , ( "se-main", true )
+ , ( "si-expressway", true )
+ , ( "si-motorway", true )
+ , ( "sk-highway", true )
+ , ( "sk-road", true )
+ , ( "us-interstate", true )
+ , ( "us-interstate-business", true )
+ , ( "us-interstate-duplex", true )
+ , ( "us-interstate-truck", true )
+ , ( "za-metropolitan", true )
+ , ( "za-national", true )
+ , ( "za-provincial", true )
+ , ( "za-regional", true )
+ ]
+ false
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.iconHaloColor (E.rgba 0 0 0 1)
+ , Layer.iconHaloWidth (float 1)
+ , Layer.textOpacity (float 1)
+ , Layer.iconColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0)
+ , Layer.textSize (float 9)
+ , Layer.iconImage (E.getProperty (str "shield") |> E.append (str "-") |> E.append (E.getProperty (str "reflen")))
+ , Layer.iconRotationAlignment E.anchorViewport
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 150 ), ( 14, float 200 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.symbolPlacement (E.zoom |> E.step E.symbolPlacementPoint [ ( 11, E.symbolPlacementLine ) ])
+ , Layer.textPadding (float 2)
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "ref")))
+ , Layer.textLetterSpacing (float 0.05)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.symbol "motorway-junction"
+ "composite"
+ [ Layer.sourceLayer "motorway_junction"
+ , Layer.minzoom 14
+ , Layer.filter (E.getProperty (str "reflen") |> E.greaterThan (float 0))
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textTranslate (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "ref")))
+ , Layer.textSize (float 9)
+ , Layer.iconImage (str "motorway-exit-" |> E.append (E.getProperty (str "reflen")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ ]
+ , Layer.symbol "poi-outdoor-features"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "bicycle", true )
+ , ( "bicycle-share", true )
+ , ( "drinking-water", true )
+ , ( "information", true )
+ , ( "picnic-site", true )
+ , ( "toilet", true )
+ ]
+ false
+ )
+ , Layer.textColor (E.rgba 102 78 61 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-11"))
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "mountain-peak-label"
+ "composite"
+ [ Layer.sourceLayer "mountain_peak_label"
+ , Layer.textColor (E.rgba 33 102 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 14 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-15"))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "mountain-peak-label-with-elevation"
+ "composite"
+ [ Layer.sourceLayer "mountain_peak_label"
+ , Layer.filter (E.getProperty (str "elevation_m") |> E.greaterThan (float 0))
+ , Layer.textColor (E.rgba 33 102 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 14 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-15"))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en") |> E.append (str ", ") |> E.append (E.getProperty (str "elevation_m")) |> E.append (str "m")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-scalerank2"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 2)
+ ]
+ )
+ , Layer.textColor (E.rgba 102 78 61 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 15, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks-scalerank2"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 2)
+ ]
+ )
+ , Layer.textColor (E.rgba 33 102 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 15, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "rail-label"
+ "composite"
+ [ Layer.sourceLayer "rail_station_label"
+ , Layer.minzoom 12
+ , Layer.filter (E.getProperty (str "maki") |> E.notEqual (str "entrance"))
+ , Layer.textColor (E.rgba 58 76 166 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.iconHaloWidth (float 4)
+ , Layer.iconHaloColor (E.rgba 255 255 255 1)
+ , Layer.textOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.toString (E.getProperty (str "network")))
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textOffset (E.floats [ 0, 0.85 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.zoom |> E.step (E.toFormattedText (str "")) [ ( 13, E.toFormattedText (E.getProperty (str "name_en")) ) ])
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.iconPadding (float 0)
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "water-label-sm"
+ "composite"
+ [ Layer.sourceLayer "water_label"
+ , Layer.minzoom 15
+ , Layer.filter (E.getProperty (str "area") |> E.lessThanOrEqual (float 10000))
+ , Layer.textColor (E.rgba 58 76 166 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 13 ), ( 20, float 16 ) ])
+ ]
+ , Layer.symbol "water-label"
+ "composite"
+ [ Layer.sourceLayer "water_label"
+ , Layer.minzoom 5
+ , Layer.filter (E.getProperty (str "area") |> E.greaterThan (float 10000))
+ , Layer.textColor (E.rgba 58 76 166 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 13 ), ( 18, float 18 ) ])
+ ]
+ , Layer.symbol "poi-parks-scalerank1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 1)
+ ]
+ )
+ , Layer.textColor (E.rgba 33 102 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-scalerank1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 1)
+ ]
+ )
+ , Layer.textColor (E.rgba 102 78 61 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "airport-label"
+ "composite"
+ [ Layer.sourceLayer "airport_label"
+ , Layer.minzoom 9
+ , Layer.filter (E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2))
+ , Layer.textColor (E.rgba 58 76 166 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 12 ), ( 18, float 18 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 13, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.75 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "ref"))) [ ( 12, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 9)
+ ]
+ , Layer.symbol "place-islet-archipelago-aboriginal"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 16
+ , Layer.filter
+ (E.getProperty (str "type")
+ |> E.matchesStr [ ( "aboriginal_lands", true ), ( "archipelago", true ), ( "islet", true ) ] false
+ )
+ , Layer.textColor (E.rgba 63 71 115 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textLineHeight (float 1.2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 16 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "place-neighbourhood"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 10
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "neighbourhood"))
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textColor (E.rgba 63 71 115 1)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textMaxWidth (float 7)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 3)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 11 ), ( 16, float 16 ) ])
+ ]
+ , Layer.symbol "place-suburb"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 10
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "suburb"))
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textColor (E.rgba 63 71 115 1)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 7)
+ , Layer.textPadding (float 3)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 11 ), ( 15, float 18 ) ])
+ ]
+ , Layer.symbol "place-hamlet"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 10
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "hamlet"))
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 11.5 ), ( 15, float 16 ) ])
+ ]
+ , Layer.symbol "place-village"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 8
+ , Layer.maxzoom 15
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "village"))
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11.5 ), ( 16, float 18 ) ])
+ ]
+ , Layer.symbol "place-town"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 6
+ , Layer.maxzoom 15
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "town"))
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.iconImage (str "dot-9")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 12, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.floats [ 0, -0.15 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 11.5 ), ( 15, float 20 ) ])
+ ]
+ , Layer.symbol "place-island"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "island"))
+ , Layer.textColor (E.rgba 63 71 115 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textLineHeight (float 1.2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 16 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-sm"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "scalerank")
+ |> E.matchesFloat [ ( 0, false ), ( 1, false ), ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 12 ), ( 14, float 22 ) ])
+ , Layer.iconImage (str "dot-9")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.2 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-md-s"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "E", true ), ( "S", true ), ( "SE", true ), ( "SW", true ) ] false
+ , E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ), ( 5, true ) ] false
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloBlur (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.iconImage (str "dot-10")
+ , Layer.textAnchor (E.zoom |> E.step E.positionTop [ ( 8, E.positionCenter ) ])
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, 0.1 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 12 ), ( 12, float 22 ) ])
+ ]
+ , Layer.symbol "place-city-md-n"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "N", true ), ( "NE", true ), ( "NW", true ), ( "W", true ) ] false
+ , E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ), ( 5, true ) ] false
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 1)
+ , Layer.iconImage (str "dot-10")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.25 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 12 ), ( 12, float 22 ) ])
+ ]
+ , Layer.symbol "place-city-lg-s"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "E", true ), ( "S", true ), ( "SE", true ), ( "SW", true ) ] false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2)
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 1)
+ , Layer.iconImage (str "dot-11")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, 0.15 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionTop [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 4, float 12 ), ( 10, float 22 ) ])
+ ]
+ , Layer.symbol "place-city-lg-n"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "N", true ), ( "NE", true ), ( "NW", true ), ( "W", true ) ] false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2)
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textOpacity (float 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 1)
+ , Layer.iconImage (str "dot-11")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.25 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 4, float 12 ), ( 10, float 22 ) ])
+ ]
+ , Layer.symbol "marine-label-sm-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "labelrank") |> E.greaterThanOrEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 12 ), ( 6, float 16 ) ])
+ , Layer.symbolSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 100 ), ( 6, float 400 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "marine-label-sm-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "labelrank") |> E.greaterThanOrEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 5)
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 12 ), ( 6, float 16 ) ])
+ ]
+ , Layer.symbol "marine-label-md-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 2
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "labelrank") |> E.matchesFloat [ ( 2, true ), ( 3, true ) ] false
+ ]
+ )
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1.1) [ ( 2, float 12 ), ( 5, float 20 ) ])
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "marine-label-md-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 2
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "labelrank") |> E.matchesFloat [ ( 2, true ), ( 3, true ) ] false
+ ]
+ )
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 5)
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1.1) [ ( 2, float 14 ), ( 5, float 20 ) ])
+ ]
+ , Layer.symbol "marine-label-lg-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 4
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "labelrank") |> E.isEqual (float 1) ])
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 4)
+ , Layer.textLetterSpacing (float 0.25)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 14 ), ( 4, float 30 ) ])
+ ]
+ , Layer.symbol "marine-label-lg-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 4
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Point"), E.getProperty (str "labelrank") |> E.isEqual (float 1) ])
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 4)
+ , Layer.textLetterSpacing (float 0.25)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 14 ), ( 4, float 30 ) ])
+ ]
+ , Layer.symbol "state-label-sm"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 9
+ , Layer.filter (E.getProperty (str "area") |> E.lessThan (float 20000))
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 10 ), ( 9, float 14 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 6, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "state-label-md"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "area") |> E.lessThan (float 80000)
+ , E.getProperty (str "area") |> E.greaterThanOrEqual (float 20000)
+ ]
+ )
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 10 ), ( 8, float 16 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 5, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 6)
+ ]
+ , Layer.symbol "state-label-lg"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 7
+ , Layer.filter (E.getProperty (str "area") |> E.greaterThanOrEqual (float 80000))
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 10 ), ( 7, float 18 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textPadding (float 1)
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 4, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 6)
+ ]
+ , Layer.symbol "country-label-sm"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 10
+ , Layer.filter (E.getProperty (str "scalerank") |> E.greaterThanOrEqual (float 5))
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 2, E.rgba 255 255 255 0.75 ), ( 3, E.rgba 255 255 255 1 ) ]
+ )
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 6)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 14 ), ( 9, float 22 ) ])
+ ]
+ , Layer.symbol "country-label-md"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 8
+ , Layer.filter (E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ) ] false)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 2, E.rgba 255 255 255 0.75 ), ( 3, E.rgba 255 255 255 1 ) ]
+ )
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "code"))) [ ( 2, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textMaxWidth (float 6)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 10 ), ( 8, float 24 ) ])
+ ]
+ , Layer.symbol "country-label-lg"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 7
+ , Layer.filter (E.getProperty (str "scalerank") |> E.matchesFloat [ ( 1, true ), ( 2, true ) ] false)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 2, E.rgba 255 255 255 0.75 ), ( 3, E.rgba 255 255 255 1 ) ]
+ )
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 0, float 5 ), ( 3, float 6 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 10 ), ( 6, float 24 ) ])
+ ]
+ ]
+ , sources = [ Source.vectorFromUrl "composite" "mapbox://mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7" ]
+ , misc =
+ [ Style.sprite "mapbox://sprites/mapbox/outdoors-v9"
+ , Style.glyphs "mapbox://fonts/mapbox/{fontstack}/{range}.pbf"
+ , Style.name "Mapbox Outdoors"
+ ]
+ }
diff --git a/examples/Styles/Satellite.elm b/examples/Styles/Satellite.elm
new file mode 100644
index 0000000..77a7f06
--- /dev/null
+++ b/examples/Styles/Satellite.elm
@@ -0,0 +1,24 @@
+module Styles.Satellite exposing (style)
+
+import Mapbox.Expression as E
+import Mapbox.Layer as Layer
+import Mapbox.Source as Source
+import Mapbox.Style as Style exposing (Style(..))
+
+
+style : Style
+style =
+ Style
+ { transition = Style.defaultTransition
+ , light = Style.defaultLight
+ , layers =
+ [ Layer.background "background" [ Layer.backgroundColor (E.rgba 4 7 14 1) ]
+ , Layer.raster "satellite" "mapbox" [ Layer.sourceLayer "mapbox_satellite_full" ]
+ ]
+ , sources = [ Source.rasterFromUrl "mapbox" "mapbox://mapbox.satellite" ]
+ , misc =
+ [ Style.sprite "mapbox://sprites/mapbox/satellite-v9"
+ , Style.glyphs "mapbox://fonts/mapbox/{fontstack}/{range}.pbf"
+ , Style.name "Satellite"
+ ]
+ }
diff --git a/examples/Styles/SatelliteStreets.elm b/examples/Styles/SatelliteStreets.elm
new file mode 100644
index 0000000..b51050d
--- /dev/null
+++ b/examples/Styles/SatelliteStreets.elm
@@ -0,0 +1,2939 @@
+module Styles.SatelliteStreets exposing (style)
+
+import Mapbox.Expression as E exposing (false, float, str, true)
+import Mapbox.Layer as Layer
+import Mapbox.Source as Source
+import Mapbox.Style as Style exposing (Style(..))
+
+
+style : Style
+style =
+ Style
+ { transition = Style.defaultTransition
+ , light = Style.defaultLight
+ , layers =
+ [ Layer.background "background" [ Layer.backgroundColor (E.rgba 4 7 14 1) ]
+ , Layer.raster "mapbox-mapbox-satellite" "mapbox://mapbox.satellite" []
+ , Layer.line "tunnel-secondary-tertiary case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.5, float 0.5 ), ( 16, float 0.75 ), ( 18, float 0.35 ) ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 12 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.5, float 0.5 ), ( 16, float 0.75 ), ( 18, float 0.35 ) ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 12 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 242 232 232 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.5, float 0.5 ), ( 16, float 0.75 ), ( 18, float 0.35 ) ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.5, float 0.5 ), ( 16, float 0.75 ), ( 18, float 0.35 ) ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 18 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 242 232 232 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.5, float 0.5 ), ( 16, float 0.75 ), ( 18, float 0.35 ) ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.5, float 0.5 ), ( 16, float 0.75 ), ( 18, float 0.35 ) ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 16, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 18 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 16, float 0.5 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 18 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 16, float 0.5 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 18 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 219 219 219 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.25 ), ( 15, float 0.4 ), ( 16, float 0.75 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 1 ), ( 18, float 2.5 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 242 232 232 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 163 131 96 1 ), ( 14.5, E.rgba 208 145 76 1 ), ( 18, E.rgba 209 210 208 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-pedestrian case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 249 247 244 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 16, float 0.5 ) ])
+ , Layer.lineWidth (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 1 ] ), ( 16, E.floats [ 1, 2 ] ) ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-service-link-track case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.rgba 143 141 141 1 ), ( 10, E.rgba 191 191 191 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 16, float 0.5 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 12 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 43 42 42 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 0 ), ( 14, float 0.5 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10.5, float 0.5 ), ( 12, float 4 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 43 42 42 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 0 ), ( 14, float 0.5 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10.5, float 0.5 ), ( 12, float 4 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 43 42 42 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 11.5, float 0 ), ( 12.5, float 0.65 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 12 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 212 210 210 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "tunnel-oneway-arrows-blue-minor"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "path", true ), ( "pedestrian", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.iconImage (str "oneway-spaced-white-large")
+ ]
+ , Layer.symbol "tunnel-oneway-arrows-blue-major"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "primary", true )
+ , ( "secondary", true )
+ , ( "street", true )
+ , ( "street_limited", true )
+ , ( "tertiary", true )
+ ]
+ false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.iconImage (str "oneway-spaced-white-large")
+ ]
+ , Layer.line "tunnel-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, E.rgba 206 193 68 1 ), ( 18, E.rgba 209 210 208 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 163 131 96 1 ), ( 14.5, E.rgba 208 145 76 1 ), ( 18, E.rgba 209 210 208 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.75 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "tunnel-oneway-arrows-white"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "motorway", true ), ( "motorway_link", true ), ( "trunk", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "primary_link", false ), ( "secondary_link", false ), ( "tertiary_link", false ) ] true
+ ]
+ ]
+ )
+ , Layer.iconImage (str "oneway-spaced-white-large")
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.symbolSpacing (float 150)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.line "ferry"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "type") |> E.isEqual (str "ferry") ])
+ , Layer.lineColor (E.rgba 219 219 219 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.5, float 0 ), ( 8, float 0.15 ), ( 16, float 0.5 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 18, float 2.5 ) ])
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 3.5, 2 ]) [ ( 14, E.floats [ 2, 1 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "ferry, auto"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "type") |> E.isEqual (str "ferry_auto")
+ ]
+ )
+ , Layer.lineColor (E.rgba 219 219 219 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.5, float 0 ), ( 8, float 0.15 ), ( 16, float 0.5 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 18, float 2.5 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "ferry-label"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "ferry"))
+ , Layer.textColor (E.rgba 247 248 252 1)
+ , Layer.textOpacity (float 1)
+ , Layer.textHaloColor (E.rgba 7 7 7 1)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textHaloWidth (float 1.75)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textMaxWidth (float 7)
+ , Layer.symbolPlacement E.symbolPlacementLine
+ ]
+ , Layer.line "road-link case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.rgba 143 141 141 1 ), ( 10, E.rgba 191 191 191 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ), ( 15, E.rgba 64 63 63 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 16, float 2 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.maxzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11, E.rgba 43 42 42 1 ), ( 14, E.rgba 137 137 132 1 ), ( 18, E.rgba 33 32 32 1 ) ]
+ )
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 7, float 0 ), ( 10, float 0.5 ), ( 14, float 1 ), ( 16, float 0 ) ]
+ )
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ), ( 15, E.rgba 64 63 63 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 0.75 ), ( 12, float 0.65 ), ( 18, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 14, float 2 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 0.5 ), ( 18, float 2 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 11, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ), ( 15, E.rgba 64 63 63 1 ) ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 11, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "crossing", false ), ( "piste", false ), ( "sidewalk", false ), ( "steps", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 219 219 219 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 1 ), ( 18, float 2.5 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.25 ), ( 15, float 0.4 ), ( 16, float 0.75 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, E.rgba 184 172 64 1 ), ( 18, E.rgba 209 210 208 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 163 131 96 1 ), ( 14.5, E.rgba 208 145 76 1 ), ( 18, E.rgba 209 210 208 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-pedestrian"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 219 219 219 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 1 ), ( 18, float 2.5 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.25 ), ( 15, float 0.4 ), ( 16, float 0.75 ) ])
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 1 ] ), ( 16, E.floats [ 1, 2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "o")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.rgba 143 141 141 1 ), ( 10, E.rgba 191 191 191 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 43 42 42 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 0 ), ( 14, float 0.25 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10.5, float 0.5 ), ( 12, float 4 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 43 42 42 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 0 ), ( 14, float 0.5 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10.5, float 0.5 ), ( 12, float 4 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 43 42 42 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 11.5, float 0 ), ( 12.5, float 0.65 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "link", true ), ( "primary", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 244 244 244 1 ), ( 10, E.rgba 212 210 210 1 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0.25 ), ( 8, float 0.6 ), ( 14, float 1 ), ( 16, float 0 ) ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.5 ), ( 12, float 1.75 ), ( 18, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "road-oneway-arrows-blue-minor"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "path", true ), ( "pedestrian", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-spaced-small") [ ( 17, str "oneway-spaced-large" ) ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ , Layer.iconRotationAlignment E.anchorMap
+ ]
+ , Layer.symbol "road-oneway-arrows-blue-major"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "primary", true )
+ , ( "secondary", true )
+ , ( "street", true )
+ , ( "street_limited", true )
+ , ( "tertiary", true )
+ ]
+ false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-spaced-small") [ ( 17, str "oneway-spaced-large" ) ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ , Layer.iconRotationAlignment E.anchorMap
+ ]
+ , Layer.line "road-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 5
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, E.rgba 206 193 68 1 ), ( 18, E.rgba 209 210 208 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 163 131 96 1 ), ( 14.5, E.rgba 208 145 76 1 ), ( 18, E.rgba 209 210 208 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "road-oneway-arrows-white"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "motorway", true ), ( "motorway_link", true ), ( "trunk", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "primary_link", false ), ( "secondary_link", false ), ( "tertiary_link", false ) ] true
+ ]
+ ]
+ )
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-spaced-small") [ ( 17, str "oneway-spaced-large" ) ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.line "bridge-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11, E.rgba 43 42 42 1 ), ( 14, E.rgba 137 137 132 1 ), ( 18, E.rgba 33 32 32 1 ) ]
+ )
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 7, float 0 ), ( 10, float 0.5 ), ( 14, float 1 ), ( 16, float 0 ) ]
+ )
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.maxzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ), ( 15, E.rgba 64 63 63 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 0.75 ), ( 12, float 0.65 ), ( 18, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 14, float 2 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ), ( 15, E.rgba 64 63 63 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 16, float 2 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 0.5 ), ( 18, float 2 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 11, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ), ( 15, E.rgba 64 63 63 1 ) ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.notEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 219 219 219 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 1 ), ( 18, float 2.5 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.25 ), ( 15, float 0.4 ), ( 16, float 0.75 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, E.rgba 184 172 64 1 ), ( 18, E.rgba 209 210 208 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 163 131 96 1 ), ( 14.5, E.rgba 208 145 76 1 ), ( 18, E.rgba 209 210 208 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 43 42 42 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 0 ), ( 14, float 0.25 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10.5, float 0.5 ), ( 12, float 4 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 43 42 42 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 0 ), ( 14, float 0.5 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10.5, float 0.5 ), ( 12, float 4 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 43 42 42 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 11.5, float 0 ), ( 12.5, float 0.65 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 244 244 244 1 ), ( 10, E.rgba 212 210 210 1 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, float 0.25 ), ( 8, float 0.6 ), ( 14, float 1 ), ( 16, float 0 ) ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.5 ), ( 12, float 1.75 ), ( 18, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "bridge-oneway-arrows-blue-minor"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "path", true ), ( "pedestrian", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-spaced-small") [ ( 17, str "oneway-spaced-large" ) ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ , Layer.iconRotationAlignment E.anchorMap
+ ]
+ , Layer.symbol "bridge-oneway-arrows-blue-major"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "primary", true )
+ , ( "secondary", true )
+ , ( "street", true )
+ , ( "street_limited", true )
+ , ( "tertiary", true )
+ ]
+ false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-spaced-small") [ ( 17, str "oneway-spaced-large" ) ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ , Layer.iconRotationAlignment E.anchorMap
+ ]
+ , Layer.line "bridge-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 5
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, E.rgba 206 193 68 1 ), ( 18, E.rgba 209 210 208 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 163 131 96 1 ), ( 14.5, E.rgba 208 145 76 1 ), ( 18, E.rgba 209 210 208 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.maxzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ), ( 15, E.rgba 64 63 63 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 0.75 ), ( 12, float 0.65 ), ( 18, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 14, float 2 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ), ( 15, E.rgba 64 63 63 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 16, float 2 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.maxzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 0.5 ), ( 8, float 0.85 ), ( 14, float 0.2 ), ( 16, float 0 ) ]
+ )
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.maxzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 66 65 65 1 ), ( 12, E.rgba 79 78 78 1 ), ( 15, E.rgba 64 63 63 1 ) ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 16, float 2 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, E.rgba 184 172 64 1 ), ( 18, E.rgba 209 210 208 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 163 131 96 1 ), ( 14.5, E.rgba 208 145 76 1 ), ( 18, E.rgba 209 210 208 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, E.rgba 206 193 68 1 ), ( 18, E.rgba 209 210 208 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 163 131 96 1 ), ( 14.5, E.rgba 208 145 76 1 ), ( 18, E.rgba 209 210 208 1 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 16, float 0 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 1 ), ( 12, float 2 ), ( 18, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapRound [ ( 12, E.lineCapButt ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "bridge-oneway-arrows-white"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "motorway", true ), ( "motorway_link", true ), ( "trunk", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "primary_link", false ), ( "secondary_link", false ), ( "tertiary_link", false ) ] true
+ ]
+ ]
+ )
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-spaced-small") [ ( 17, str "oneway-spaced-large" ) ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.line "aerialway-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.any
+ [ E.conditionally
+ [ ( E.typeof (E.getProperty (str "class")) |> E.isEqual (str "string")
+ , E.getProperty (str "class") |> E.isEqual (str "aerialway")
+ )
+ ]
+ false
+ , E.conditionally
+ [ ( E.typeof (E.getProperty (str "type")) |> E.isEqual (str "string")
+ , E.getProperty (str "type") |> E.isEqual (str "piste")
+ )
+ ]
+ false
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 115 113 113 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12.5, float 0 ), ( 14, float 0.25 ), ( 16, float 0.75 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.5 ), ( 18, float 2.5 ) ])
+ , Layer.lineBlur (float 1)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "aerialway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.any
+ [ E.conditionally
+ [ ( E.typeof (E.getProperty (str "class")) |> E.isEqual (str "string")
+ , E.getProperty (str "class") |> E.isEqual (str "aerialway")
+ )
+ ]
+ false
+ , E.conditionally
+ [ ( E.typeof (E.getProperty (str "type")) |> E.isEqual (str "string")
+ , E.getProperty (str "type") |> E.isEqual (str "piste")
+ )
+ ]
+ false
+ ]
+ ]
+ )
+ , Layer.lineColor (E.rgba 219 219 219 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 0 ), ( 12.5, float 0.25 ), ( 16, float 0.75 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1 ), ( 18, float 2.5 ) ])
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 3.5, 2 ]) [ ( 22, E.floats [ 2, 1 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "admin-3-4-boundaries-bg"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.greaterThanOrEqual (float 3)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 0, E.rgba 155 183 132 0.77 ), ( 6, E.rgba 155 183 132 0.77 ), ( 8, E.rgba 57 99 22 0.77 ) ]
+ )
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 0.2 ), ( 8, float 0.35 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 2.5 ), ( 10, float 4.5 ) ])
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 8, float 3 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineJoin E.lineJoinBevel
+ ]
+ , Layer.line "admin-2-boundaries-bg"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor (E.rgba 242 242 242 0.77)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 3.5 ), ( 10, float 10 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 0.1 ), ( 8, float 0.35 ) ])
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 10, float 2 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "admin-3-4-boundaries"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.greaterThanOrEqual (float 3)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor (E.rgba 0 0 0 0.72)
+ , Layer.lineDasharray (E.floats [ 5, 2.5 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 0, float 1 ), ( 12, float 0.5 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 1 ), ( 9, float 1.75 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "admin-2-boundaries"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "disputed") |> E.isEqual (float 0)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor (E.rgba 0 0 0 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 0, float 0.5 ), ( 6, float 0.75 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 0, float 0.75 ), ( 4, float 3 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "admin-2-boundaries offset"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "disputed") |> E.isEqual (float 0)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor (E.rgba 235 233 233 0.72)
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineWidth
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 0, float 0.5 ), ( 4, float 0.75 ), ( 9, float 1.5 ), ( 12, float 2 ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 0, float 0.25 ), ( 4, float 0.5 ), ( 8, float 0.75 ) ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 0, float 1.5 ), ( 4, float 0.75 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "admin-2-boundaries-dispute"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "disputed") |> E.isEqual (float 1)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor (E.rgba 0 0 0 1)
+ , Layer.lineDasharray (E.floats [ 4, 8 ])
+ , Layer.lineWidth (float 0.75)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 0, float 1 ), ( 12, float 0.75 ), ( 16, float 0 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "waterway-label"
+ "composite"
+ [ Layer.sourceLayer "waterway_label"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.getProperty (str "class")
+ |> E.matchesStr [ ( "canal", true ), ( "river", true ), ( "stream", true ) ] false
+ )
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 0.5 ), ( 14, float 1.5 ) ])
+ , Layer.textHaloColor (E.rgba 22 22 22 1)
+ , Layer.textColor (E.rgba 117 207 240 1)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textMaxAngle (float 30)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 12 ), ( 18, float 16 ) ])
+ ]
+ , Layer.symbol "poi-scalerank4-l15"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "localrank") |> E.greaterThanOrEqual (float 15)
+ , E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 234 234 234 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 42 39 39 1 ) ])
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-scalerank4-l1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "localrank") |> E.lessThan (float 14)
+ , E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 234 234 234 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 42 39 39 1 ) ])
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks-scalerank4"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 135 204 101 1)
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 46 45 45 1 ) ])
+ , Layer.iconOpacity (float 1)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 14 ) ])
+ , Layer.iconImage (E.zoom |> E.step (str "") [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium Italic", "Arial Unicode MS Regular" ])
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-scalerank3"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "localrank") |> E.lessThanOrEqual (float 3)
+ , E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 3)
+ ]
+ )
+ , Layer.textColor (E.rgba 234 234 234 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 42 39 39 1 ) ])
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks-scalerank3"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 3)
+ ]
+ )
+ , Layer.textColor (E.rgba 135 204 101 1)
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 46 45 45 1 ) ])
+ , Layer.iconOpacity (float 1)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 14 ) ])
+ , Layer.iconImage (E.zoom |> E.step (str "") [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium Italic", "Arial Unicode MS Regular" ])
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "road-label-small"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "ferry", false )
+ , ( "link", false )
+ , ( "motorway", false )
+ , ( "pedestrian", false )
+ , ( "primary", false )
+ , ( "secondary", false )
+ , ( "street", false )
+ , ( "street_limited", false )
+ , ( "tertiary", false )
+ , ( "trunk", false )
+ ]
+ true
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 41 39 39 1 ) ])
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 10 ), ( 20, float 13 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 14, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ ]
+ , Layer.symbol "road-label-medium"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "pedestrian", true ), ( "street", true ), ( "street_limited", true ) ] false
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 41 39 39 1 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 10 ), ( 20, float 14 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ ]
+ , Layer.symbol "road-label-large"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.minzoom 12
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false)
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 41 39 39 1 ) ])
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 10 ), ( 20, float 16 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ ]
+ , Layer.symbol "road-label-xlarge"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.filter
+ (E.getProperty (str "class")
+ |> E.matchesStr [ ( "motorway", true ), ( "primary", true ), ( "trunk", true ) ] false
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 41 39 39 1 ) ])
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 10 ), ( 20, float 16 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ ]
+ , Layer.symbol "road-shields-black"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "motorway", true )
+ , ( "motorway_link", true )
+ , ( "primary", true )
+ , ( "secondary", true )
+ , ( "trunk", true )
+ ]
+ false
+ , E.getProperty (str "localrank") |> E.matchesFloat [ ( 1, true ), ( 2, true ) ] false
+ , E.getProperty (str "reflen") |> E.lessThanOrEqual (float 6)
+ , E.getProperty (str "shield")
+ |> E.matchesStr
+ [ ( "at-expressway", false )
+ , ( "at-motorway", false )
+ , ( "at-state-b", false )
+ , ( "bg-motorway", false )
+ , ( "bg-national", false )
+ , ( "ch-main", false )
+ , ( "ch-motorway", false )
+ , ( "cz-expressway", false )
+ , ( "cz-motorway", false )
+ , ( "cz-road", false )
+ , ( "de-motorway", false )
+ , ( "e-road", false )
+ , ( "fi-main", false )
+ , ( "gr-motorway", false )
+ , ( "gr-national", false )
+ , ( "hr-motorway", false )
+ , ( "hr-state", false )
+ , ( "hu-main", false )
+ , ( "hu-motorway", false )
+ , ( "nz-state", false )
+ , ( "pl-expressway", false )
+ , ( "pl-motorway", false )
+ , ( "pl-national", false )
+ , ( "ro-county", false )
+ , ( "ro-motorway", false )
+ , ( "ro-national", false )
+ , ( "rs-motorway", false )
+ , ( "rs-state-1b", false )
+ , ( "se-main", false )
+ , ( "si-expressway", false )
+ , ( "si-motorway", false )
+ , ( "sk-highway", false )
+ , ( "sk-road", false )
+ , ( "us-interstate", false )
+ , ( "us-interstate-business", false )
+ , ( "us-interstate-duplex", false )
+ , ( "us-interstate-truck", false )
+ , ( "za-metropolitan", false )
+ , ( "za-national", false )
+ , ( "za-provincial", false )
+ , ( "za-regional", false )
+ ]
+ true
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.iconHaloColor (E.rgba 0 0 0 1)
+ , Layer.iconHaloWidth (float 1)
+ , Layer.textOpacity (float 1)
+ , Layer.iconColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0)
+ , Layer.textSize (float 9)
+ , Layer.iconImage (E.getProperty (str "shield") |> E.append (str "-") |> E.append (E.getProperty (str "reflen")))
+ , Layer.iconRotationAlignment E.anchorViewport
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 150 ), ( 14, float 200 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.symbolPlacement (E.zoom |> E.step E.symbolPlacementPoint [ ( 11, E.symbolPlacementLine ) ])
+ , Layer.textPadding (float 2)
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "ref")))
+ , Layer.textLetterSpacing (float 0.05)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.symbol "road-shields-white"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "motorway", true )
+ , ( "motorway_link", true )
+ , ( "primary", true )
+ , ( "secondary", true )
+ , ( "trunk", true )
+ ]
+ false
+ , E.getProperty (str "reflen") |> E.lessThanOrEqual (float 6)
+ , E.getProperty (str "shield")
+ |> E.matchesStr
+ [ ( "at-expressway", true )
+ , ( "at-motorway", true )
+ , ( "at-state-b", true )
+ , ( "bg-motorway", true )
+ , ( "bg-national", true )
+ , ( "ch-main", true )
+ , ( "ch-motorway", true )
+ , ( "cz-expressway", true )
+ , ( "cz-motorway", true )
+ , ( "cz-road", true )
+ , ( "de-motorway", true )
+ , ( "e-road", true )
+ , ( "fi-main", true )
+ , ( "gr-motorway", true )
+ , ( "gr-national", true )
+ , ( "hr-motorway", true )
+ , ( "hr-state", true )
+ , ( "hu-main", true )
+ , ( "hu-motorway", true )
+ , ( "nz-state", true )
+ , ( "pl-expressway", true )
+ , ( "pl-motorway", true )
+ , ( "pl-national", true )
+ , ( "ro-county", true )
+ , ( "ro-motorway", true )
+ , ( "ro-national", true )
+ , ( "rs-motorway", true )
+ , ( "rs-state-1b", true )
+ , ( "se-main", true )
+ , ( "si-expressway", true )
+ , ( "si-motorway", true )
+ , ( "sk-highway", true )
+ , ( "sk-road", true )
+ , ( "us-interstate", true )
+ , ( "us-interstate-business", true )
+ , ( "us-interstate-duplex", true )
+ , ( "us-interstate-truck", true )
+ , ( "za-metropolitan", true )
+ , ( "za-national", true )
+ , ( "za-provincial", true )
+ , ( "za-regional", true )
+ ]
+ false
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.iconHaloColor (E.rgba 0 0 0 1)
+ , Layer.iconHaloWidth (float 1)
+ , Layer.textOpacity (float 1)
+ , Layer.iconColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0)
+ , Layer.textSize (float 9)
+ , Layer.iconImage (E.getProperty (str "shield") |> E.append (str "-") |> E.append (E.getProperty (str "reflen")))
+ , Layer.iconRotationAlignment E.anchorViewport
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 150 ), ( 14, float 200 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.symbolPlacement (E.zoom |> E.step E.symbolPlacementPoint [ ( 11, E.symbolPlacementLine ) ])
+ , Layer.textPadding (float 2)
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "ref")))
+ , Layer.textLetterSpacing (float 0.05)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.symbol "motorway-junction"
+ "composite"
+ [ Layer.sourceLayer "motorway_junction"
+ , Layer.minzoom 14
+ , Layer.filter (E.getProperty (str "reflen") |> E.greaterThan (float 0))
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textTranslate (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "ref")))
+ , Layer.textSize (float 9)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Regular" ])
+ , Layer.iconImage (str "motorway-exit-" |> E.append (E.getProperty (str "reflen")))
+ ]
+ , Layer.symbol "poi-scalerank2"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "localrank") |> E.lessThanOrEqual (float 3)
+ , E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 2)
+ ]
+ )
+ , Layer.textColor (E.rgba 234 234 234 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 42 39 39 1 ) ])
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks-scalerank2"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 2)
+ ]
+ )
+ , Layer.textColor (E.rgba 135 204 101 1)
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 46 45 45 1 ) ])
+ , Layer.iconOpacity (float 1)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 14 ) ])
+ , Layer.iconImage (E.zoom |> E.step (str "") [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium Italic", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "rail-label"
+ "composite"
+ [ Layer.sourceLayer "rail_station_label"
+ , Layer.minzoom 12
+ , Layer.filter (E.getProperty (str "maki") |> E.notEqual (str "entrance"))
+ , Layer.textColor (E.rgba 234 234 234 1)
+ , Layer.textHaloColor (E.rgba 63 63 63 1)
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 0.5 ), ( 16, float 1.5 ) ])
+ , Layer.iconHaloWidth (float 4)
+ , Layer.iconHaloColor (E.rgba 255 255 255 1)
+ , Layer.textOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.toString (E.getProperty (str "network")))
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textOffset (E.floats [ 0, 0.85 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.zoom |> E.step (E.toFormattedText (str "")) [ ( 13, E.toFormattedText (E.getProperty (str "name_en")) ) ])
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.iconPadding (float 0)
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "water-label-sm"
+ "composite"
+ [ Layer.sourceLayer "water_label"
+ , Layer.minzoom 15
+ , Layer.filter (E.getProperty (str "area") |> E.lessThanOrEqual (float 10000))
+ , Layer.textColor (E.rgba 117 207 240 1)
+ , Layer.textHaloColor (E.rgba 22 22 22 1)
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0.5 ), ( 14, float 1 ) ])
+ , Layer.textHaloBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 0.5 ), ( 15, float 1 ) ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 13 ), ( 20, float 16 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ ]
+ , Layer.symbol "water-label"
+ "composite"
+ [ Layer.sourceLayer "water_label"
+ , Layer.minzoom 5
+ , Layer.filter (E.getProperty (str "area") |> E.greaterThan (float 10000))
+ , Layer.textColor (E.rgba 117 207 240 1)
+ , Layer.textHaloColor (E.rgba 22 22 22 1)
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0.5 ), ( 14, float 1 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 13 ), ( 18, float 18 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ ]
+ , Layer.symbol "poi-parks-scalerank1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 1)
+ ]
+ )
+ , Layer.textColor (E.rgba 135 204 101 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 46 45 45 1 ) ])
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.iconOpacity (float 1)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 14 ) ])
+ , Layer.iconImage (E.zoom |> E.step (str "") [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium Italic", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-scalerank1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 1)
+ ]
+ )
+ , Layer.textColor (E.rgba 234 234 234 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 25 25 25 1 ), ( 16, E.rgba 42 39 39 1 ) ])
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 1.25 ), ( 15, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "airport-label"
+ "composite"
+ [ Layer.sourceLayer "airport_label"
+ , Layer.minzoom 9
+ , Layer.filter (E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2))
+ , Layer.textColor (E.rgba 234 234 234 1)
+ , Layer.textHaloColor (E.rgba 63 63 63 1)
+ , Layer.textHaloWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 0.5 ), ( 16, float 1.5 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.iconOpacity (float 0.8)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 12 ), ( 18, float 18 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 13, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.75 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "ref"))) [ ( 12, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 7 ), ( 12, float 8 ), ( 16, float 10 ) ])
+ ]
+ , Layer.symbol "place-islets"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "islet"))
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 16 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "place-neighbourhood"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 10
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "neighbourhood"))
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textLineHeight (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 11 ), ( 16, float 16 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 3)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-suburb"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 10
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "suburb"))
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textLineHeight (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 11 ), ( 15, float 18 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 3)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-hamlet"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 10
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "hamlet"))
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textLineHeight (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 11.5 ), ( 15, float 16 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 3)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-village"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 8
+ , Layer.maxzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "localrank") |> E.lessThanOrEqual (float 12)
+ , E.getProperty (str "type") |> E.isEqual (str "village")
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 0.9 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11.5 ), ( 16, float 18 ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 6, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.floats [ 0, -0.15 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.iconSize (float 1)
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-town"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 6
+ , Layer.maxzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "localrank") |> E.lessThanOrEqual (float 12)
+ , E.getProperty (str "type") |> E.isEqual (str "town")
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 0.9 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 11.5 ), ( 15, float 20 ) ])
+ , Layer.iconImage (str "dot-9")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 6, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.floats [ 0, -0.15 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.iconSize (float 1)
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-islands"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "island"))
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 16 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-sm"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "scalerank")
+ |> E.matchesFloat [ ( 0, false ), ( 1, false ), ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textHaloWidth (float 1.75)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 0.9 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 12 ), ( 14, float 22 ) ])
+ , Layer.iconImage (str "dot-9")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 6, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.2 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.iconSize (float 1)
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 0.02 ), ( 6, float 0.07 ) ])
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-md-s"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "E", true ), ( "S", true ), ( "SE", true ), ( "SW", true ) ] false
+ , E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ), ( 5, true ) ] false
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textHaloWidth (float 1.5)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 0.9 ), ( 8, float 0 ) ])
+ , Layer.textOpacity (float 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.iconImage (str "dot-10")
+ , Layer.textAnchor (E.zoom |> E.step E.positionTop [ ( 8, E.positionCenter ) ])
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, 0.1 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 12 ), ( 12, float 22 ) ])
+ , Layer.iconSize (float 1)
+ ]
+ , Layer.symbol "place-city-md-n"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "N", true ), ( "NE", true ), ( "NW", true ), ( "W", true ) ] false
+ , E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ), ( 5, true ) ] false
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textHaloWidth (float 1.5)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 0.9 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textOpacity (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 12 ), ( 12, float 22 ) ])
+ , Layer.iconImage (str "dot-10")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.25 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-lg-s"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "E", true ), ( "S", true ), ( "SE", true ), ( "SW", true ) ] false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2)
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textHaloWidth (float 1.5)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 0.9 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textTranslate (E.floats [ 0, -0.75 ])
+ , Layer.textOpacity (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 4, float 12 ), ( 10, float 22 ) ])
+ , Layer.iconImage (str "dot-11")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, 0.15 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionTop [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-lg-n"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "N", true ), ( "NE", true ), ( "NW", true ), ( "W", true ) ] false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2)
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textOpacity (float 1)
+ , Layer.textHaloColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, E.rgba 45 45 45 1 ), ( 12, E.rgba 36 34 34 1 ) ])
+ , Layer.textHaloWidth (float 1.5)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textTranslate (E.floats [ 0, 0 ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 4, float 12 ), ( 10, float 22 ) ])
+ , Layer.iconImage (str "dot-11")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.25 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "marine-label-sm-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "labelrank") |> E.greaterThanOrEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 72 88 131 1)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 12 ), ( 6, float 16 ) ])
+ , Layer.symbolSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 100 ), ( 6, float 400 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "marine-label-sm-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "labelrank") |> E.greaterThanOrEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 72 88 131 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 5)
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 12 ), ( 6, float 16 ) ])
+ ]
+ , Layer.symbol "marine-label-md-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 2
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "labelrank") |> E.matchesFloat [ ( 2, true ), ( 3, true ) ] false
+ ]
+ )
+ , Layer.textColor (E.rgba 72 88 131 1)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1.1) [ ( 2, float 12 ), ( 5, float 20 ) ])
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "marine-label-md-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 2
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "labelrank") |> E.matchesFloat [ ( 2, true ), ( 3, true ) ] false
+ ]
+ )
+ , Layer.textColor (E.rgba 72 88 131 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 5)
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1.1) [ ( 2, float 14 ), ( 5, float 20 ) ])
+ ]
+ , Layer.symbol "marine-label-lg-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 4
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "labelrank") |> E.isEqual (float 1) ])
+ , Layer.textColor (E.rgba 72 88 131 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 4)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 14 ), ( 4, float 30 ) ])
+ , Layer.textLineHeight (float 1.1)
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textLetterSpacing (float 0.25)
+ ]
+ , Layer.symbol "marine-label-lg-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 4
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Point"), E.getProperty (str "labelrank") |> E.isEqual (float 1) ])
+ , Layer.textColor (E.rgba 72 88 131 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 4)
+ , Layer.textLetterSpacing (float 0.25)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 14 ), ( 4, float 30 ) ])
+ ]
+ , Layer.symbol "state-label-sm"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 9
+ , Layer.filter (E.getProperty (str "area") |> E.lessThan (float 20000))
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.rgba 44 45 46 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textOpacity (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 10 ), ( 9, float 14 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 6, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "state-label-md"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "area") |> E.lessThan (float 80000)
+ , E.getProperty (str "area") |> E.greaterThanOrEqual (float 20000)
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.rgba 44 45 46 1)
+ , Layer.textHaloWidth (float 2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 10 ), ( 8, float 16 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 5, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 6)
+ ]
+ , Layer.symbol "state-label-lg"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 7
+ , Layer.filter (E.getProperty (str "area") |> E.greaterThanOrEqual (float 80000))
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.rgba 44 45 46 1)
+ , Layer.textOpacity (float 1)
+ , Layer.textHaloWidth (float 2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 10 ), ( 7, float 18 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textPadding (float 1)
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 4, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 6)
+ ]
+ , Layer.symbol "country-label-sm"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 10
+ , Layer.filter (E.getProperty (str "scalerank") |> E.greaterThanOrEqual (float 5))
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 0, E.rgba 44 45 46 1 ), ( 4, E.rgba 30 30 30 1 ), ( 8, E.rgba 5 5 5 1 ) ]
+ )
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 6)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 14 ), ( 9, float 22 ) ])
+ ]
+ , Layer.symbol "country-label-md"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 8
+ , Layer.filter (E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ) ] false)
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 0, E.rgba 44 45 46 1 ), ( 4, E.rgba 30 30 30 1 ), ( 8, E.rgba 5 5 5 1 ) ]
+ )
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "code"))) [ ( 2, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textMaxWidth (float 6)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 10 ), ( 8, float 24 ) ])
+ ]
+ , Layer.symbol "country-label-lg"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 7
+ , Layer.filter (E.getProperty (str "scalerank") |> E.matchesFloat [ ( 1, true ), ( 2, true ) ] false)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 0, E.rgba 44 45 46 1 ), ( 4, E.rgba 30 30 30 1 ), ( 8, E.rgba 5 5 5 1 ) ]
+ )
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 0, float 5 ), ( 3, float 6 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 10 ), ( 6, float 24 ) ])
+ ]
+ ]
+ , sources =
+ [ Source.vectorFromUrl "composite" "mapbox://mapbox.mapbox-streets-v7"
+ , Source.rasterFromUrl "mapbox://mapbox.satellite" "mapbox://mapbox.satellite"
+ ]
+ , misc =
+ [ Style.sprite "mapbox://sprites/mapbox/satellite-streets-v9"
+ , Style.glyphs "mapbox://fonts/mapbox/{fontstack}/{range}.pbf"
+ , Style.name "Mapbox Satellite Streets"
+ ]
+ }
diff --git a/examples/Styles/Streets.elm b/examples/Styles/Streets.elm
new file mode 100644
index 0000000..1e7c300
--- /dev/null
+++ b/examples/Styles/Streets.elm
@@ -0,0 +1,3737 @@
+module Styles.Streets exposing (style)
+
+import Mapbox.Expression as E exposing (false, float, str, true)
+import Mapbox.Layer as Layer
+import Mapbox.Source as Source
+import Mapbox.Style as Style exposing (Style(..))
+
+
+style : Style
+style =
+ Style
+ { transition = Style.defaultTransition
+ , light = Style.defaultLight
+ , layers =
+ [ Layer.background "background"
+ [ Layer.backgroundColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, E.rgba 239 233 224 1 ), ( 13, E.rgba 230 227 223 1 ) ])
+ ]
+ , Layer.fill "landcover_snow"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (E.rgba 255 250 250 1))
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOpacity (float 0.2)
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_wood"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "wood"))
+ , Layer.fillColor (E.rgba 221 236 176 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 2, float 0.3 ), ( 7, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_scrub"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "scrub"))
+ , Layer.fillColor (E.rgba 221 236 176 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 2, float 0.3 ), ( 7, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_grass"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "grass"))
+ , Layer.fillColor (E.rgba 221 236 176 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 2, float 0.3 ), ( 7, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "landcover_crop"
+ "composite"
+ [ Layer.sourceLayer "landcover"
+ , Layer.maxzoom 14
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "crop"))
+ , Layer.fillColor (E.rgba 221 236 176 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 2, float 0.3 ), ( 7, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "national_park"
+ "composite"
+ [ Layer.sourceLayer "landuse_overlay"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "national_park"))
+ , Layer.fillColor (E.rgba 181 229 158 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 0 ), ( 6, float 0.5 ) ])
+ ]
+ , Layer.fill "hospital"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "hospital"))
+ , Layer.fillColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 15.5, E.rgba 234 209 217 1 ), ( 16, E.rgba 244 209 221 1 ) ]
+ )
+ ]
+ , Layer.fill "school"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "school"))
+ , Layer.fillColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 15.5, E.rgba 229 221 183 1 ), ( 16, E.rgba 239 231 188 1 ) ]
+ )
+ ]
+ , Layer.fill "park"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "park"))
+ , Layer.fillColor (E.rgba 181 229 158 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 0 ), ( 6, float 1 ) ])
+ ]
+ , Layer.fill "pitch"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "pitch"))
+ , Layer.fillColor (E.rgba 170 224 142 1)
+ ]
+ , Layer.line "pitch-line"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.minzoom 15
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "pitch"))
+ , Layer.lineColor (E.rgba 225 237 190 1)
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.fill "cemetery"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "cemetery"))
+ , Layer.fillColor (E.rgba 215 224 188 1)
+ ]
+ , Layer.fill "industrial"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "industrial"))
+ , Layer.fillColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 15.5, E.rgba 213 215 224 1 ), ( 16, E.rgba 218 221 235 1 ) ]
+ )
+ ]
+ , Layer.fill "sand"
+ "composite"
+ [ Layer.sourceLayer "landuse"
+ , Layer.filter (E.getProperty (str "class") |> E.isEqual (str "sand"))
+ , Layer.fillColor (E.rgba 237 237 206 1)
+ ]
+ , Layer.fill "hillshade_highlight_bright"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 94))
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.12 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_highlight_med"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 90))
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.12 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_faint"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 89))
+ , Layer.fillColor (E.rgba 89 84 23 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.05 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_med"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 78))
+ , Layer.fillColor (E.rgba 89 84 23 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.05 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_dark"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 67))
+ , Layer.fillColor (E.rgba 89 84 23 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.06 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.fill "hillshade_shadow_extreme"
+ "composite"
+ [ Layer.sourceLayer "hillshade"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "level") |> E.isEqual (float 56))
+ , Layer.fillColor (E.rgba 89 84 23 1)
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0.06 ), ( 16, float 0 ) ])
+ , Layer.fillAntialias false
+ ]
+ , Layer.line "waterway-river-canal"
+ "composite"
+ [ Layer.sourceLayer "waterway"
+ , Layer.minzoom 8
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "canal", true ), ( "river", true ) ] false)
+ , Layer.lineColor (E.rgba 140 202 247 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.3) [ ( 8.5, float 0.1 ), ( 20, float 8 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, float 0 ), ( 8.5, float 1 ) ])
+ , Layer.lineCap (E.zoom |> E.step E.lineCapButt [ ( 11, E.lineCapRound ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "waterway-small"
+ "composite"
+ [ Layer.sourceLayer "waterway"
+ , Layer.minzoom 13
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "canal", false ), ( "river", false ) ] true)
+ , Layer.lineColor (E.rgba 140 202 247 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.35) [ ( 13.5, float 0.1 ), ( 20, float 3 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 0 ), ( 13.5, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.fill "water-shadow"
+ "composite"
+ [ Layer.sourceLayer "water"
+ , Layer.fillColor (E.rgba 109 164 242 1)
+ , Layer.fillTranslate (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 7, E.floats [ 0, 0 ] ), ( 16, E.floats [ -1, -1 ] ) ])
+ , Layer.fillTranslateAnchor E.anchorViewport
+ , Layer.fillOpacity (float 1)
+ ]
+ , Layer.fill "water" "composite" [ Layer.sourceLayer "water", Layer.fillColor (E.rgba 117 207 239 1) ]
+ , Layer.fill "barrier_line-land-polygon"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Polygon"), E.getProperty (str "class") |> E.isEqual (str "land") ])
+ , Layer.fillColor (E.rgba 230 227 223 1)
+ ]
+ , Layer.line "barrier_line-land-line"
+ "composite"
+ [ Layer.sourceLayer "barrier_line"
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "class") |> E.isEqual (str "land") ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.99) [ ( 14, float 0.75 ), ( 20, float 40 ) ])
+ , Layer.lineColor (E.rgba 230 227 223 1)
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.fill "aeroway-polygon"
+ "composite"
+ [ Layer.sourceLayer "aeroway"
+ , Layer.minzoom 11
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Polygon"), E.getProperty (str "type") |> E.notEqual (str "apron") ])
+ , Layer.fillColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 198 202 219 1 ), ( 16, E.rgba 199 204 229 1 ) ])
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.5, float 1 ) ])
+ ]
+ , Layer.line "aeroway-runway"
+ "composite"
+ [ Layer.sourceLayer "aeroway"
+ , Layer.minzoom 9
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "type") |> E.isEqual (str "runway") ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 198 202 219 1 ), ( 16, E.rgba 199 204 229 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 9, float 1 ), ( 18, float 80 ) ])
+ ]
+ , Layer.line "aeroway-taxiway"
+ "composite"
+ [ Layer.sourceLayer "aeroway"
+ , Layer.minzoom 9
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "type") |> E.isEqual (str "taxiway")
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 198 202 219 1 ), ( 16, E.rgba 199 204 229 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 0.5 ), ( 18, float 20 ) ])
+ ]
+ , Layer.line "building-line"
+ "composite"
+ [ Layer.sourceLayer "building"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "building:part")
+ , E.getProperty (str "underground") |> E.isEqual (str "false")
+ ]
+ )
+ , Layer.lineColor (E.rgba 204 201 198 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 0.75 ), ( 20, float 3 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15.5, float 0 ), ( 16, float 1 ) ])
+ ]
+ , Layer.fill "building"
+ "composite"
+ [ Layer.sourceLayer "building"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "type") |> E.notEqual (str "building:part")
+ , E.getProperty (str "underground") |> E.isEqual (str "false")
+ ]
+ )
+ , Layer.fillColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 227 224 221 1 ), ( 16, E.rgba 219 217 213 1 ) ])
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15.5, float 0 ), ( 16, float 1 ) ])
+ , Layer.fillOutlineColor (E.rgba 204 201 198 1)
+ ]
+ , Layer.line "tunnel-street-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-service-link-track-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 179 183 203 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 179 183 203 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 179 183 203 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-secondary-tertiary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 179 183 203 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 179 183 203 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 3, 3 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-construction"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "tunnel-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineColor (E.rgba 245 242 238 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 16, float 1.6 ), ( 18, float 6 ) ])
+ , Layer.lineColor (E.rgba 245 242 238 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 242 221 155 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 191 142 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-pedestrian"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-service-link-track"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 239 237 234 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "tunnel-oneway-arrows-blue-minor"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "path", true ), ( "pedestrian", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 18, str "oneway-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.symbol "tunnel-oneway-arrows-blue-major"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "primary", true )
+ , ( "secondary", true )
+ , ( "street", true )
+ , ( "street_limited", true )
+ , ( "tertiary", true )
+ ]
+ false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 17, str "oneway-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.line "tunnel-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 242 221 155 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "tunnel-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineColor (E.rgba 255 191 142 1)
+ , Layer.lineBlur (float 0)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "tunnel-oneway-arrows-white"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "motorway", true ), ( "motorway_link", true ), ( "trunk", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "tunnel")
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "primary_link", false ), ( "secondary_link", false ), ( "tertiary_link", false ) ] true
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-white-small") [ ( 17, str "oneway-white-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.line "ferry"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "type") |> E.isEqual (str "ferry") ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 91 172 229 1 ), ( 17, E.rgba 91 114 229 1 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 20, float 1 ) ])
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 13, E.floats [ 12, 4 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "ferry_auto"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "type") |> E.isEqual (str "ferry_auto")
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, E.rgba 91 172 229 1 ), ( 17, E.rgba 91 114 229 1 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-path-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "crossing", false ), ( "sidewalk", false ), ( "steps", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2 ), ( 18, float 7 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineColor (E.rgba 201 203 216 1)
+ , Layer.lineBlur (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 0.75 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-steps-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2 ), ( 17, float 4.6 ), ( 18, float 7 ) ])
+ , Layer.lineColor (E.rgba 201 203 216 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 0.75 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-sidewalk-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.matchesStr [ ( "crossing", true ), ( "sidewalk", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2 ), ( 18, float 7 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineColor (E.rgba 201 203 216 1)
+ , Layer.lineBlur (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 0 ), ( 16.25, float 0.75 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "turning-features-outline"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "turning_circle", true ), ( "turning_loop", true ) ] false
+ ]
+ )
+ , Layer.iconImage (str "turning-circle-outline")
+ , Layer.iconSize
+ (E.zoom
+ |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.122 ), ( 18, float 0.969 ), ( 20, float 1 ) ]
+ )
+ , Layer.iconAllowOverlap true
+ , Layer.iconIgnorePlacement true
+ , Layer.iconPadding (float 0)
+ , Layer.iconRotationAlignment E.anchorMap
+ ]
+ , Layer.line "road-pedestrian-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 2 ), ( 18, float 14.5 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.25, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11, float 0 ), ( 11.25, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-service-link-track-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-secondary-tertiary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9.99, float 0 ), ( 10, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9.99, float 0 ), ( 10, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 0 ), ( 6.1, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-construction"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "road-sidewalks"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.matchesStr [ ( "crossing", true ), ( "sidewalk", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 0 ), ( 16.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "crossing", false ), ( "sidewalk", false ), ( "steps", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 16, float 1.6 ), ( 18, float 6 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 242 208 99 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 162 91 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-pedestrian"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.fill "road-pedestrian-polygon-fill"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Polygon")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "path", true ), ( "pedestrian", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.fillColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 16, E.rgba 237 238 242 1 ), ( 16.25, E.rgba 247 248 252 1 ) ]
+ )
+ , Layer.fillOutlineColor (E.rgba 216 219 232 1)
+ , Layer.fillOpacity (float 1)
+ ]
+ , Layer.fill "road-pedestrian-polygon-pattern"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 12
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Polygon")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "path", true ), ( "pedestrian", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.fillColor (E.rgba 255 255 255 1)
+ , Layer.fillOutlineColor (E.rgba 215 212 207 1)
+ , Layer.fillPattern (str "pedestrian-polygon")
+ , Layer.fillOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 0 ), ( 16.25, float 1 ) ])
+ ]
+ , Layer.line "road-service-link-track"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 239 237 234 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual E.textFitNone
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 239 233 224 1 ), ( 8, E.rgba 255 255 255 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, E.rgba 239 233 224 1 ), ( 7, E.rgba 255 255 255 1 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "road-oneway-arrows-blue-minor"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "path", true ), ( "pedestrian", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 18, str "oneway-large" ) ])
+ , Layer.iconRotationAlignment E.anchorMap
+ , Layer.iconPadding (float 2)
+ , Layer.symbolSpacing (float 200)
+ ]
+ , Layer.symbol "road-oneway-arrows-blue-major"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "primary", true )
+ , ( "secondary", true )
+ , ( "street", true )
+ , ( "street_limited", true )
+ , ( "tertiary", true )
+ ]
+ false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 17, str "oneway-large" ) ])
+ , Layer.iconRotationAlignment E.anchorMap
+ , Layer.iconPadding (float 2)
+ , Layer.symbolSpacing (float 200)
+ ]
+ , Layer.line "road-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 6, E.rgba 255 255 255 1 ), ( 6.1, E.rgba 234 196 71 1 ), ( 9, E.rgba 242 208 99 1 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 242 146 73 1 ), ( 9, E.rgba 255 162 91 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-rail"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, E.rgba 216 214 201 1 ), ( 16, E.rgba 182 184 195 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "road-rail-tracks"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, E.rgba 216 214 201 1 ), ( 16, E.rgba 182 184 195 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 4 ), ( 20, float 8 ) ])
+ , Layer.lineDasharray (E.floats [ 0.1, 15 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.75, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "road-oneway-arrows-white"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "motorway", true ), ( "motorway_link", true ), ( "trunk", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.matchesStr [ ( "bridge", false ), ( "tunnel", false ) ] true
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "primary_link", false ), ( "secondary_link", false ), ( "tertiary_link", false ) ] true
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-white-small") [ ( 17, str "oneway-white-large" ) ])
+ , Layer.iconPadding (float 2)
+ , Layer.symbolSpacing (float 200)
+ ]
+ , Layer.symbol "turning-features"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "turning_circle", true ), ( "turning_loop", true ) ] false
+ ]
+ )
+ , Layer.iconImage (str "turning-circle")
+ , Layer.iconSize (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.095 ), ( 18, float 1 ) ])
+ , Layer.iconAllowOverlap true
+ , Layer.iconIgnorePlacement true
+ , Layer.iconPadding (float 0)
+ , Layer.iconRotationAlignment E.anchorMap
+ ]
+ , Layer.line "bridge-path-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.notEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2 ), ( 18, float 7 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineColor (E.rgba 201 203 216 1)
+ , Layer.lineBlur (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 0 ), ( 15.25, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-steps-bg"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 2 ), ( 17, float 4.6 ), ( 18, float 7 ) ])
+ , Layer.lineColor (E.rgba 201 203 216 1)
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 0.75 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-pedestrian-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 2 ), ( 18, float 14.5 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (float 0)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited-low"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 11.5, float 0 ), ( 12, float 1 ), ( 14, float 1 ), ( 14.01, float 0 ) ]
+ )
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-service-link-track-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 13, float 0 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-secondary-tertiary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 10, float 0.75 ), ( 18, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-primary-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "primary")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-construction"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "construction")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 213 216 229 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 0.4, 0.8 ])
+ [ ( 15, E.floats [ 0.3, 0.6 ] )
+ , ( 16, E.floats [ 0.2, 0.3 ] )
+ , ( 17, E.floats [ 0.2, 0.25 ] )
+ , ( 18, E.floats [ 0.15, 0.15 ] )
+ ]
+ )
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "bridge-path"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "path")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.notEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 18, float 4 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 1, 0.5 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-steps"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "steps")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 15, float 1 ), ( 16, float 1.6 ), ( 18, float 6 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineDasharray
+ (E.zoom
+ |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.75, 1 ] ), ( 16, E.floats [ 1, 0.75 ] ), ( 17, E.floats [ 0.3, 0.3 ] ) ]
+ )
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 0 ), ( 14.25, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 242 208 99 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 162 91 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-pedestrian"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "pedestrian")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 1, 0 ]) [ ( 15, E.floats [ 1.5, 0.4 ] ), ( 16, E.floats [ 1, 0.2 ] ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-service-link-track"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 14
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.notEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 18, float 12 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street_limited"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street_limited")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 239 237 234 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-street"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "street")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12.5, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-secondary-tertiary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.matchesStr [ ( "secondary", true ), ( "tertiary", true ) ] false
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 8.5, float 0.5 ), ( 10, float 0.75 ), ( 18, float 26 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1.2) [ ( 5, float 0 ), ( 5.5, float 1 ) ])
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-primary"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "primary")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineOpacity (float 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "bridge-oneway-arrows-blue-minor"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "path", true ), ( "pedestrian", true ), ( "service", true ), ( "track", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 18, str "oneway-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconRotationAlignment E.anchorMap
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.symbol "bridge-oneway-arrows-blue-major"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "primary", true )
+ , ( "secondary", true )
+ , ( "street", true )
+ , ( "street_limited", true )
+ , ( "tertiary", true )
+ ]
+ false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-small") [ ( 17, str "oneway-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconRotationAlignment E.anchorMap
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.line "bridge-trunk"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 242 208 99 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer")
+ |> E.matchesFloat [ ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 162 91 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-rail"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, E.rgba 216 214 201 1 ), ( 16, E.rgba 182 184 195 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-rail-tracks"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.matchesStr [ ( "major_rail", true ), ( "minor_rail", true ) ] false
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, E.rgba 216 214 201 1 ), ( 16, E.rgba 182 184 195 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 4 ), ( 20, float 8 ) ])
+ , Layer.lineDasharray (E.floats [ 0.1, 15 ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.75, float 0 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10.99, float 0 ), ( 11, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.75 ), ( 20, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineOpacity (float 1)
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-2-case"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 10, float 1 ), ( 16, float 2 ) ])
+ , Layer.lineColor (E.rgba 255 255 255 1)
+ , Layer.lineGapWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk_link-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type") |> E.isEqual (str "trunk_link")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 242 208 99 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway_link-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway_link")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 12, float 0.5 ), ( 14, float 2 ), ( 18, float 18 ) ])
+ , Layer.lineColor (E.rgba 255 162 91 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-trunk-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "trunk")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 242 208 99 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "bridge-motorway-2"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class") |> E.isEqual (str "motorway")
+ , E.getProperty (str "layer") |> E.greaterThanOrEqual (float 2)
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ ]
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 5, float 0.75 ), ( 18, float 32 ) ])
+ , Layer.lineColor (E.rgba 255 162 91 1)
+ , Layer.lineCap E.lineCapRound
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "bridge-oneway-arrows-white"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 16
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.all
+ [ E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "motorway", true ), ( "motorway_link", true ), ( "trunk", true ) ] false
+ , E.getProperty (str "oneway") |> E.isEqual (str "true")
+ , E.getProperty (str "structure") |> E.isEqual (str "bridge")
+ , E.getProperty (str "type")
+ |> E.matchesStr [ ( "primary_link", false ), ( "secondary_link", false ), ( "tertiary_link", false ) ] true
+ ]
+ ]
+ )
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.iconImage (E.zoom |> E.step (str "oneway-white-small") [ ( 17, str "oneway-white-large" ) ])
+ , Layer.symbolSpacing (float 200)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.line "aerialway"
+ "composite"
+ [ Layer.sourceLayer "road"
+ , Layer.minzoom 13
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class") |> E.isEqual (str "aerialway")
+ ]
+ )
+ , Layer.lineColor (E.rgba 182 184 195 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1.5) [ ( 14, float 0.5 ), ( 20, float 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.line "admin-3-4-boundaries-bg"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.greaterThanOrEqual (float 3)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 8, E.rgba 230 227 223 1 ), ( 16, E.rgba 217 221 241 1 ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 3.75 ), ( 12, float 5.5 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 0 ), ( 8, float 0.75 ) ])
+ , Layer.lineDasharray (E.floats [ 1, 0 ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 8, float 3 ) ])
+ , Layer.lineJoin E.lineJoinBevel
+ ]
+ , Layer.line "admin-2-boundaries-bg"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 3.5 ), ( 10, float 8 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, E.rgba 230 227 223 1 ), ( 8, E.rgba 217 221 241 1 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 4, float 0.5 ) ])
+ , Layer.lineTranslate (E.floats [ 0, 0 ])
+ , Layer.lineBlur (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinMiter
+ ]
+ , Layer.line "admin-3-4-boundaries"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.greaterThanOrEqual (float 3)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineDasharray (E.zoom |> E.step (E.floats [ 2, 0 ]) [ ( 7, E.floats [ 2, 2, 6, 2 ] ) ])
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 0.75 ), ( 12, float 1.5 ) ])
+ , Layer.lineOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 2, float 0 ), ( 3, float 1 ) ])
+ , Layer.lineColor (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, E.rgba 188 190 204 1 ), ( 7, E.rgba 150 152 165 1 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.line "admin-2-boundaries"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "disputed") |> E.isEqual (float 0)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineColor (E.rgba 120 123 140 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0.5 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ , Layer.lineCap E.lineCapRound
+ ]
+ , Layer.line "admin-2-boundaries-dispute"
+ "composite"
+ [ Layer.sourceLayer "admin"
+ , Layer.minzoom 1
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "admin_level") |> E.isEqual (float 2)
+ , E.getProperty (str "disputed") |> E.isEqual (float 1)
+ , E.getProperty (str "maritime") |> E.isEqual (float 0)
+ ]
+ )
+ , Layer.lineDasharray (E.floats [ 1.5, 1.5 ])
+ , Layer.lineColor (E.rgba 120 123 140 1)
+ , Layer.lineWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 0.5 ), ( 10, float 2 ) ])
+ , Layer.lineJoin E.lineJoinRound
+ ]
+ , Layer.symbol "housenum-label"
+ "composite"
+ [ Layer.sourceLayer "housenum_label"
+ , Layer.minzoom 17
+ , Layer.textColor (E.rgba 177 176 174 1)
+ , Layer.textHaloColor (E.rgba 219 217 213 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "house_num")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 4)
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (float 9.5)
+ ]
+ , Layer.symbol "waterway-label"
+ "composite"
+ [ Layer.sourceLayer "waterway_label"
+ , Layer.minzoom 12
+ , Layer.filter (E.getProperty (str "class") |> E.matchesStr [ ( "canal", true ), ( "river", true ) ] false)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloColor (E.rgba 117 207 239 1)
+ , Layer.textColor (E.rgba 58 76 166 1)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textMaxAngle (float 30)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 12 ), ( 18, float 16 ) ])
+ ]
+ , Layer.symbol "poi-scalerank4-l15"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.minzoom 17
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "localrank") |> E.greaterThanOrEqual (float 15)
+ , E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 102 78 61 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-11"))
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-scalerank4-l1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "localrank") |> E.lessThanOrEqual (float 14)
+ , E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 102 78 61 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-11"))
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 1)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks_scalerank4"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 33 102 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-11"))
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 1)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-scalerank3"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 3)
+ ]
+ )
+ , Layer.textColor (E.rgba 102 78 61 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-11"))
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 1)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks-scalerank3"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 3)
+ ]
+ )
+ , Layer.textColor (E.rgba 33 102 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.getProperty (str "maki") |> E.append (str "-11"))
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "road-label-small"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.minzoom 15
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class")
+ |> E.matchesStr
+ [ ( "link", false )
+ , ( "motorway", false )
+ , ( "pedestrian", false )
+ , ( "primary", false )
+ , ( "secondary", false )
+ , ( "street", false )
+ , ( "street_limited", false )
+ , ( "tertiary", false )
+ , ( "trunk", false )
+ ]
+ true
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textHaloBlur (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 15, float 10 ), ( 20, float 13 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "road-label-medium"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.minzoom 11
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "class")
+ |> E.matchesStr [ ( "link", true ), ( "pedestrian", true ), ( "street", true ), ( "street_limited", true ) ] false
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 10 ), ( 20, float 14 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "road-label-large"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.filter
+ (E.getProperty (str "class")
+ |> E.matchesStr [ ( "motorway", true ), ( "primary", true ), ( "secondary", true ), ( "tertiary", true ), ( "trunk", true ) ] false
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 0.75)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloBlur (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 9, float 10 ), ( 20, float 16 ) ])
+ , Layer.textMaxAngle (float 30)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textPadding (float 1)
+ , Layer.textRotationAlignment E.anchorMap
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ ]
+ , Layer.symbol "road-shields-black"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "reflen") |> E.lessThanOrEqual (float 6)
+ , E.getProperty (str "shield")
+ |> E.matchesStr
+ [ ( "at-expressway", false )
+ , ( "at-motorway", false )
+ , ( "at-state-b", false )
+ , ( "bg-motorway", false )
+ , ( "bg-national", false )
+ , ( "ch-main", false )
+ , ( "ch-motorway", false )
+ , ( "cz-motorway", false )
+ , ( "cz-road", false )
+ , ( "de-motorway", false )
+ , ( "e-road", false )
+ , ( "fi-main", false )
+ , ( "gr-motorway", false )
+ , ( "gr-national", false )
+ , ( "hr-motorway", false )
+ , ( "hr-state", false )
+ , ( "hu-main", false )
+ , ( "hu-motorway", false )
+ , ( "nz-state", false )
+ , ( "pl-expressway", false )
+ , ( "pl-motorway", false )
+ , ( "pl-national", false )
+ , ( "ro-county", false )
+ , ( "ro-motorway", false )
+ , ( "ro-national", false )
+ , ( "rs-motorway", false )
+ , ( "rs-state-1b", false )
+ , ( "se-main", false )
+ , ( "si-expressway", false )
+ , ( "si-motorway", false )
+ , ( "sk-highway", false )
+ , ( "sk-road", false )
+ , ( "us-interstate", false )
+ , ( "us-interstate-business", false )
+ , ( "us-interstate-duplex", false )
+ , ( "us-interstate-truck", false )
+ , ( "za-metropolitan", false )
+ , ( "za-national", false )
+ , ( "za-provincial", false )
+ , ( "za-regional", false )
+ ]
+ true
+ ]
+ )
+ , Layer.textColor (E.rgba 17 17 17 1)
+ , Layer.iconHaloColor (E.rgba 0 0 0 1)
+ , Layer.iconHaloWidth (float 1)
+ , Layer.textOpacity (float 1)
+ , Layer.iconColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0)
+ , Layer.textSize (float 9)
+ , Layer.iconImage (E.getProperty (str "shield") |> E.append (str "-") |> E.append (E.getProperty (str "reflen")))
+ , Layer.iconRotationAlignment E.anchorViewport
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 150 ), ( 14, float 200 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.symbolPlacement (E.zoom |> E.step E.symbolPlacementPoint [ ( 11, E.symbolPlacementLine ) ])
+ , Layer.textPadding (float 2)
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "ref")))
+ , Layer.textLetterSpacing (float 0.05)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.symbol "road-shields-white"
+ "composite"
+ [ Layer.sourceLayer "road_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "reflen") |> E.lessThanOrEqual (float 6)
+ , E.getProperty (str "shield")
+ |> E.matchesStr
+ [ ( "at-expressway", true )
+ , ( "at-motorway", true )
+ , ( "at-state-b", true )
+ , ( "bg-motorway", true )
+ , ( "bg-national", true )
+ , ( "ch-main", true )
+ , ( "ch-motorway", true )
+ , ( "cz-motorway", true )
+ , ( "cz-road", true )
+ , ( "de-motorway", true )
+ , ( "e-road", true )
+ , ( "fi-main", true )
+ , ( "gr-motorway", true )
+ , ( "gr-national", true )
+ , ( "hr-motorway", true )
+ , ( "hr-state", true )
+ , ( "hu-main", true )
+ , ( "hu-motorway", true )
+ , ( "nz-state", true )
+ , ( "pl-expressway", true )
+ , ( "pl-motorway", true )
+ , ( "pl-national", true )
+ , ( "ro-county", true )
+ , ( "ro-motorway", true )
+ , ( "ro-national", true )
+ , ( "rs-motorway", true )
+ , ( "rs-state-1b", true )
+ , ( "se-main", true )
+ , ( "si-expressway", true )
+ , ( "si-motorway", true )
+ , ( "sk-highway", true )
+ , ( "sk-road", true )
+ , ( "us-interstate", true )
+ , ( "us-interstate-business", true )
+ , ( "us-interstate-duplex", true )
+ , ( "us-interstate-truck", true )
+ , ( "za-metropolitan", true )
+ , ( "za-national", true )
+ , ( "za-provincial", true )
+ , ( "za-regional", true )
+ ]
+ false
+ ]
+ )
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.iconHaloColor (E.rgba 0 0 0 1)
+ , Layer.iconHaloWidth (float 1)
+ , Layer.textOpacity (float 1)
+ , Layer.iconColor (E.rgba 255 255 255 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0)
+ , Layer.textSize (float 9)
+ , Layer.iconImage (E.getProperty (str "shield") |> E.append (str "-") |> E.append (E.getProperty (str "reflen")))
+ , Layer.iconRotationAlignment E.anchorViewport
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 150 ), ( 14, float 200 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.symbolPlacement (E.zoom |> E.step E.symbolPlacementPoint [ ( 11, E.symbolPlacementLine ) ])
+ , Layer.textPadding (float 2)
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "ref")))
+ , Layer.textLetterSpacing (float 0.05)
+ , Layer.iconPadding (float 2)
+ ]
+ , Layer.symbol "motorway-junction"
+ "composite"
+ [ Layer.sourceLayer "motorway_junction"
+ , Layer.minzoom 14
+ , Layer.filter (E.getProperty (str "reflen") |> E.greaterThan (float 0))
+ , Layer.textColor (E.rgba 255 255 255 1)
+ , Layer.textTranslate (E.floats [ 0, 0 ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "ref")))
+ , Layer.textSize (float 9)
+ , Layer.iconImage (str "motorway-exit-" |> E.append (E.getProperty (str "reflen")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ ]
+ , Layer.symbol "poi-scalerank2"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.isEqual (float 2)
+ ]
+ )
+ , Layer.textColor (E.rgba 102 78 61 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 15, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-parks-scalerank2"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.isEqual (float 2)
+ ]
+ )
+ , Layer.textColor (E.rgba 33 102 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 14, float 11 ), ( 20, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 15, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "rail-label"
+ "composite"
+ [ Layer.sourceLayer "rail_station_label"
+ , Layer.minzoom 12
+ , Layer.filter (E.getProperty (str "maki") |> E.notEqual (str "entrance"))
+ , Layer.textColor (E.rgba 58 76 166 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.iconHaloWidth (float 4)
+ , Layer.iconHaloColor (E.rgba 255 255 255 1)
+ , Layer.textOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13.99, float 0 ), ( 14, float 1 ) ])
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 11 ), ( 20, float 13 ) ])
+ , Layer.iconImage (E.toString (E.getProperty (str "network")))
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textOffset (E.floats [ 0, 0.85 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.zoom |> E.step (E.toFormattedText (str "")) [ ( 13, E.toFormattedText (E.getProperty (str "name_en")) ) ])
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.iconPadding (float 0)
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "water-label-sm"
+ "composite"
+ [ Layer.sourceLayer "water_label"
+ , Layer.minzoom 15
+ , Layer.filter (E.getProperty (str "area") |> E.lessThanOrEqual (float 10000))
+ , Layer.textColor (E.rgba 58 76 166 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 16, float 13 ), ( 20, float 16 ) ])
+ ]
+ , Layer.symbol "water-label"
+ "composite"
+ [ Layer.sourceLayer "water_label"
+ , Layer.minzoom 5
+ , Layer.filter (E.getProperty (str "area") |> E.greaterThan (float 10000))
+ , Layer.textColor (E.rgba 58 76 166 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 13, float 13 ), ( 18, float 18 ) ])
+ ]
+ , Layer.symbol "poi-parks-scalerank1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", true )
+ , ( "cemetery", true )
+ , ( "dog-park", true )
+ , ( "garden", true )
+ , ( "golf", true )
+ , ( "park", true )
+ , ( "picnic-site", true )
+ , ( "playground", true )
+ , ( "zoo", true )
+ ]
+ false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 1)
+ ]
+ )
+ , Layer.textColor (E.rgba 33 102 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "poi-scalerank1"
+ "composite"
+ [ Layer.sourceLayer "poi_label"
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "maki")
+ |> E.matchesStr
+ [ ( "campsite", false )
+ , ( "cemetery", false )
+ , ( "dog-park", false )
+ , ( "garden", false )
+ , ( "golf", false )
+ , ( "park", false )
+ , ( "picnic-site", false )
+ , ( "playground", false )
+ , ( "zoo", false )
+ ]
+ true
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 1)
+ ]
+ )
+ , Layer.textColor (E.rgba 102 78 61 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 14 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 14, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.65 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "airport-label"
+ "composite"
+ [ Layer.sourceLayer "airport_label"
+ , Layer.minzoom 9
+ , Layer.filter (E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2))
+ , Layer.textColor (E.rgba 58 76 166 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 0.5)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 12 ), ( 18, float 18 ) ])
+ , Layer.iconImage
+ (E.zoom
+ |> E.step (E.getProperty (str "maki") |> E.append (str "-11")) [ ( 13, E.getProperty (str "maki") |> E.append (str "-15") ) ]
+ )
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0.75 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textAnchor E.positionTop
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "ref"))) [ ( 12, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 9)
+ ]
+ , Layer.symbol "place-islet-archipelago-aboriginal"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 16
+ , Layer.filter
+ (E.getProperty (str "type")
+ |> E.matchesStr [ ( "aboriginal_lands", true ), ( "archipelago", true ), ( "islet", true ) ] false
+ )
+ , Layer.textColor (E.rgba 63 71 115 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textLineHeight (float 1.2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 16 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 8)
+ ]
+ , Layer.symbol "place-neighbourhood"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 10
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "neighbourhood"))
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textColor (E.rgba 63 71 115 1)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textMaxWidth (float 7)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 3)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 11 ), ( 16, float 16 ) ])
+ ]
+ , Layer.symbol "place-suburb"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 10
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "suburb"))
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textColor (E.rgba 63 71 115 1)
+ , Layer.textHaloBlur (float 0.5)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 7)
+ , Layer.textPadding (float 3)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 11, float 11 ), ( 15, float 18 ) ])
+ ]
+ , Layer.symbol "place-hamlet"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 10
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "hamlet"))
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 12, float 11.5 ), ( 15, float 16 ) ])
+ ]
+ , Layer.symbol "place-village"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 8
+ , Layer.maxzoom 15
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "village"))
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11.5 ), ( 16, float 18 ) ])
+ ]
+ , Layer.symbol "place-town"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 6
+ , Layer.maxzoom 15
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "town"))
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.iconImage (str "dot-9")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 12, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, E.floats [ 0, -0.15 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7, float 11.5 ), ( 15, float 20 ) ])
+ ]
+ , Layer.symbol "place-island"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 16
+ , Layer.filter (E.getProperty (str "type") |> E.isEqual (str "island"))
+ , Layer.textColor (E.rgba 63 71 115 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textLineHeight (float 1.2)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 10, float 11 ), ( 18, float 16 ) ])
+ , Layer.textMaxAngle (float 38)
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ])
+ , Layer.textPadding (float 2)
+ , Layer.textOffset (E.floats [ 0, 0 ])
+ , Layer.textRotationAlignment E.anchorViewport
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.01)
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-sm"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "scalerank")
+ |> E.matchesFloat [ ( 0, false ), ( 1, false ), ( 2, false ), ( 3, false ), ( 4, false ), ( 5, false ) ] true
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 12 ), ( 14, float 22 ) ])
+ , Layer.iconImage (str "dot-9")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.2 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ ]
+ , Layer.symbol "place-city-md-s"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "E", true ), ( "S", true ), ( "SE", true ), ( "SW", true ) ] false
+ , E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ), ( 5, true ) ] false
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textHaloWidth (float 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloBlur (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.iconImage (str "dot-10")
+ , Layer.textAnchor (E.zoom |> E.step E.positionTop [ ( 8, E.positionCenter ) ])
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, 0.1 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 12 ), ( 12, float 22 ) ])
+ ]
+ , Layer.symbol "place-city-md-n"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "N", true ), ( "NE", true ), ( "NW", true ), ( "W", true ) ] false
+ , E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ), ( 5, true ) ] false
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 1)
+ , Layer.iconImage (str "dot-10")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.25 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 12 ), ( 12, float 22 ) ])
+ ]
+ , Layer.symbol "place-city-lg-s"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "E", true ), ( "S", true ), ( "SE", true ), ( "SW", true ) ] false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2)
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 1)
+ , Layer.iconImage (str "dot-11")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, 0.15 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionTop [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 4, float 12 ), ( 10, float 22 ) ])
+ ]
+ , Layer.symbol "place-city-lg-n"
+ "composite"
+ [ Layer.sourceLayer "place_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 14
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "ldir")
+ |> E.matchesStr [ ( "N", true ), ( "NE", true ), ( "NW", true ), ( "W", true ) ] false
+ , E.getProperty (str "scalerank") |> E.lessThanOrEqual (float 2)
+ , E.getProperty (str "type") |> E.isEqual (str "city")
+ ]
+ )
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textOpacity (float 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.iconOpacity (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, float 1 ), ( 8, float 0 ) ])
+ , Layer.textHaloBlur (float 1)
+ , Layer.iconImage (str "dot-11")
+ , Layer.textFont
+ (E.zoom
+ |> E.step (E.strings [ "DIN Offc Pro Regular", "Arial Unicode MS Regular" ]) [ ( 8, E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ] ) ]
+ )
+ , Layer.textOffset (E.zoom |> E.interpolate (E.Exponential 1) [ ( 7.99, E.floats [ 0, -0.25 ] ), ( 8, E.floats [ 0, 0 ] ) ])
+ , Layer.textAnchor (E.zoom |> E.step E.positionBottom [ ( 8, E.positionCenter ) ])
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 7)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 4, float 12 ), ( 10, float 22 ) ])
+ ]
+ , Layer.symbol "marine-label-sm-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "labelrank") |> E.greaterThanOrEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 12 ), ( 6, float 16 ) ])
+ , Layer.symbolSpacing (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 100 ), ( 6, float 400 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "marine-label-sm-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 10
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "labelrank") |> E.greaterThanOrEqual (float 4)
+ ]
+ )
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 5)
+ , Layer.textLetterSpacing (float 0.1)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 12 ), ( 6, float 16 ) ])
+ ]
+ , Layer.symbol "marine-label-md-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 2
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "LineString")
+ , E.getProperty (str "labelrank") |> E.matchesFloat [ ( 2, true ), ( 3, true ) ] false
+ ]
+ )
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1.1) [ ( 2, float 12 ), ( 5, float 20 ) ])
+ , Layer.symbolSpacing (float 250)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "marine-label-md-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 2
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.geometryType |> E.isEqual (str "Point")
+ , E.getProperty (str "labelrank") |> E.matchesFloat [ ( 2, true ), ( 3, true ) ] false
+ ]
+ )
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 5)
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1.1) [ ( 2, float 14 ), ( 5, float 20 ) ])
+ ]
+ , Layer.symbol "marine-label-lg-ln"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 4
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "LineString"), E.getProperty (str "labelrank") |> E.isEqual (float 1) ])
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 4)
+ , Layer.textLetterSpacing (float 0.25)
+ , Layer.textLineHeight (float 1.1)
+ , Layer.symbolPlacement E.symbolPlacementLine
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 14 ), ( 4, float 30 ) ])
+ ]
+ , Layer.symbol "marine-label-lg-pt"
+ "composite"
+ [ Layer.sourceLayer "marine_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 4
+ , Layer.filter (E.all [ E.geometryType |> E.isEqual (str "Point"), E.getProperty (str "labelrank") |> E.isEqual (float 1) ])
+ , Layer.textColor (E.rgba 199 228 249 1)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 4)
+ , Layer.textLetterSpacing (float 0.25)
+ , Layer.textLineHeight (float 1.5)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Italic", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 14 ), ( 4, float 30 ) ])
+ ]
+ , Layer.symbol "state-label-sm"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 9
+ , Layer.filter (E.getProperty (str "area") |> E.lessThan (float 20000))
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 6, float 10 ), ( 9, float 14 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 6, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 5)
+ ]
+ , Layer.symbol "state-label-md"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 8
+ , Layer.filter
+ (E.all
+ [ E.getProperty (str "area") |> E.lessThan (float 80000)
+ , E.getProperty (str "area") |> E.greaterThanOrEqual (float 20000)
+ ]
+ )
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 5, float 10 ), ( 8, float 16 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 5, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 6)
+ ]
+ , Layer.symbol "state-label-lg"
+ "composite"
+ [ Layer.sourceLayer "state_label"
+ , Layer.minzoom 3
+ , Layer.maxzoom 7
+ , Layer.filter (E.getProperty (str "area") |> E.greaterThanOrEqual (float 80000))
+ , Layer.textOpacity (float 1)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor (E.rgba 255 255 255 1)
+ , Layer.textHaloWidth (float 1)
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 4, float 10 ), ( 7, float 18 ) ])
+ , Layer.textTransform E.textTransformUppercase
+ , Layer.textFont (E.strings [ "DIN Offc Pro Bold", "Arial Unicode MS Bold" ])
+ , Layer.textPadding (float 1)
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "abbr"))) [ ( 4, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textLetterSpacing (float 0.15)
+ , Layer.textMaxWidth (float 6)
+ ]
+ , Layer.symbol "country-label-sm"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 10
+ , Layer.filter (E.getProperty (str "scalerank") |> E.greaterThanOrEqual (float 5))
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 2, E.rgba 255 255 255 0.75 ), ( 3, E.rgba 255 255 255 1 ) ]
+ )
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (float 6)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 0.9) [ ( 5, float 14 ), ( 9, float 22 ) ])
+ ]
+ , Layer.symbol "country-label-md"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 8
+ , Layer.filter (E.getProperty (str "scalerank") |> E.matchesFloat [ ( 3, true ), ( 4, true ) ] false)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 2, E.rgba 255 255 255 0.75 ), ( 3, E.rgba 255 255 255 1 ) ]
+ )
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textField
+ (E.zoom
+ |> E.step (E.toFormattedText (E.getProperty (str "code"))) [ ( 2, E.toFormattedText (E.getProperty (str "name_en")) ) ]
+ )
+ , Layer.textMaxWidth (float 6)
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 3, float 10 ), ( 8, float 24 ) ])
+ ]
+ , Layer.symbol "country-label-lg"
+ "composite"
+ [ Layer.sourceLayer "country_label"
+ , Layer.minzoom 1
+ , Layer.maxzoom 7
+ , Layer.filter (E.getProperty (str "scalerank") |> E.matchesFloat [ ( 1, true ), ( 2, true ) ] false)
+ , Layer.textColor (E.rgba 0 0 0 1)
+ , Layer.textHaloColor
+ (E.zoom
+ |> E.interpolate (E.Exponential 1) [ ( 2, E.rgba 255 255 255 0.75 ), ( 3, E.rgba 255 255 255 1 ) ]
+ )
+ , Layer.textHaloWidth (float 1.25)
+ , Layer.textField (E.toFormattedText (E.getProperty (str "name_en")))
+ , Layer.textMaxWidth (E.zoom |> E.interpolate (E.Exponential 1) [ ( 0, float 5 ), ( 3, float 6 ) ])
+ , Layer.textFont (E.strings [ "DIN Offc Pro Medium", "Arial Unicode MS Regular" ])
+ , Layer.textSize (E.zoom |> E.interpolate (E.Exponential 1) [ ( 1, float 10 ), ( 6, float 24 ) ])
+ ]
+ ]
+ , sources = [ Source.vectorFromUrl "composite" "mapbox://mapbox.mapbox-terrain-v2,mapbox.mapbox-streets-v7" ]
+ , misc =
+ [ Style.sprite "mapbox://sprites/mapbox/streets-v9"
+ , Style.glyphs "mapbox://fonts/mapbox/{fontstack}/{range}.pbf"
+ , Style.name "Mapbox Streets"
+ ]
+ }
[cgit] Unable to lock slot /tmp/cgit/59000000.lock: Permission denied (13)