diff --git a/.travis.yml b/.travis.yml
index 35804dd7b..f2349fdd3 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -28,7 +28,7 @@ script:
notifications:
hipchat:
rooms:
- secure: "GGP1hopxPUtKABYyMIzwu8nJco3r14RhYAlpzZwlj1Ypl3okRCHh51VxkMpmPb6WgPhjL4O7/AVxS2mDnAyMqKWdeW3wl9edirZu0kjROCfxRoeqEeLC1JLHLfjdpIvJVv++jnvp2xrw+YUMI24Y2klHvOMpHhm8+CLpmmpidfY="
+ secure: "SgMjGDp8MP+UTAY/aWJwSQH2hv1Q0vhEc1BdIde59+lEL3u6gNMSexUTSJoVxRlIQTFXDJBU7v58ISdgJX8cPa+UvIC8hhLsayM+cbm+J3jgy7V9E9wllq3RpmXN33TxY7nwKgWdIms2t9YKZco3y4dKKAUyHXrtMvw8NNPQM+4="
template:
- 'Build #%{build_number}: %{author} tested %{commit} in branch %{branch} of %{repository_name}: %{commit_message}
%{message} (%{duration})'
format: html
diff --git a/bin/style.js b/bin/style.js
index e80d76759..21cca2af3 100644
--- a/bin/style.js
+++ b/bin/style.js
@@ -1,3614 +1,2476 @@
"use strict";
module.exports = {
- "buckets": {
- "admin_maritime": {
- "source": "outdoors",
- "layer": "admin",
- "field": "maritime",
- "value": 1,
- "join": "round",
- "cap": "round",
- "type": "line"
- },
- "admin_l2": {
- "source": "outdoors",
- "layer": "admin",
- "filter": [
- "and",
- {"field": "admin_level", "value": 2},
- {"field": "maritime", "operator": "not", "value": 1}
- ],
- "join": "round",
- "cap": "round",
- "type": "line"
- },
- "admin_l3": {
- "source": "outdoors",
- "layer": "admin",
- "filter": [
- "and",
- {"field": "admin_level", "value": [3,4,5]},
- {"field": "maritime", "operator": "not", "value": 1}
- ],
- "join": "round",
- "type": "line"
- },
- "landcover_wood": {
- "source": "outdoors",
- "layer": "landcover",
- "field": "class",
- "value": "wood",
- "type": "fill"
- },
- "landcover_scrub": {
- "source": "outdoors",
- "layer": "landcover",
- "field": "class",
- "value": "scrub",
- "type": "fill"
- },
- "landcover_grass": {
- "source": "outdoors",
- "layer": "landcover",
- "field": "class",
- "value": "grass",
- "type": "fill"
- },
- "landcover_crop": {
- "source": "outdoors",
- "layer": "landcover",
- "field": "class",
- "value": "crop",
- "type": "fill"
- },
- "landcover_snow": {
- "source": "outdoors",
- "layer": "landcover",
- "field": "class",
- "value": "snow",
- "type": "fill"
- },
- "water": {
- "source": "outdoors",
- "layer": "water",
- "type": "fill"
- },
- "waterway_other": {
- "source": "outdoors",
- "layer": "waterway",
- "field": "type",
- "value": [
- "ditch",
- "drain"
- ],
- "cap": "round",
- "type": "line"
- },
- "waterway_river_canal": {
- "source": "outdoors",
- "layer": "waterway",
- "field": "type",
- "value": [
- "river",
- "canal"
- ],
- "cap": "round",
- "type": "line"
- },
- "waterway_stream": {
- "source": "outdoors",
- "layer": "waterway",
- "field": "type",
- "value": "stream",
- "cap": "round",
- "type": "line"
- },
- "landuse_park": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "park",
- "type": "fill"
- },
- "landuse_pitch": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "pitch",
- "type": "fill"
- },
- "landuse_cemetery": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "cemetery",
- "type": "fill"
- },
- "landuse_hospital": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "hospital",
- "type": "fill"
- },
- "landuse_industrial": {
- "source": "outdoors",
- "layer": "landuse",
- "type": "fill",
- "field": "class",
- "value": "industrial"
- },
- "landuse_school": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "school",
- "type": "fill"
- },
- "landuse_wood": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "wood",
- "type": "fill"
- },
- "landuse_scrub": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "scrub",
- "type": "fill"
- },
- "landuse_grass": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "grass",
- "type": "fill"
- },
- "landuse_crop": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "crop",
- "type": "fill"
- },
- "landuse_sand": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "sand",
- "type": "fill"
- },
- "landuse_rock": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "rock",
- "type": "fill"
- },
- "landuse_snow": {
- "source": "outdoors",
- "layer": "landuse",
- "field": "class",
- "value": "snow",
- "type": "fill"
- },
- "overlay_wetland": {
- "source": "outdoors",
- "layer": "landuse_overlay",
- "field": "class",
- "value": ["wetland", "wetland_noveg"],
- "type": "fill"
- },
- "overlay_breakwater_pier": {
- "source": "outdoors",
- "layer": "landuse_overlay",
- "field": "class",
- "value": [
- "breakwater",
- "pier"
- ],
- "type": "fill"
- },
- "hillshade_full_shadow": {
- "source": "outdoors",
- "layer": "hillshade",
- "field": "class",
- "value": "full_shadow",
- "type": "fill"
- },
- "hillshade_medium_shadow": {
- "source": "outdoors",
- "layer": "hillshade",
- "field": "class",
- "value": "medium_shadow",
- "type": "fill"
- },
- "hillshade_medium_highlight": {
- "source": "outdoors",
- "layer": "hillshade",
- "field": "class",
- "value": "medium_highlight",
- "type": "fill"
- },
- "hillshade_full_highlight": {
- "source": "outdoors",
- "layer": "hillshade",
- "field": "class",
- "value": "full_highlight",
- "type": "fill"
- },
- "contour_line_5": {
- "source": "outdoors",
- "layer": "contour",
- "field": "index",
- "join": "round",
- "value": 5,
- "type": "line"
- },
- "contour_line_10": {
- "source": "outdoors",
- "layer": "contour",
- "field": "index",
- "join": "round",
- "value": 10,
- "type": "line"
- },
- "contour_line_other": {
- "source": "outdoors",
- "layer": "contour",
- "join": "round",
- "type": "line"
- },
- "contour_label": {
- "source": "outdoors",
- "layer": "contour",
- "filter": [
- "and",
- { "field": "index", "value": [ 5, 10 ] },
- { "field": "ele", "operator": "not", "value": 0 }
- ],
- "path": "curve",
- "text_field": "{{ele}} m",
- "font": "Open Sans Regular, Arial Unicode MS Regular",
- "fontSize": 10,
- "feature_type": "line",
- "type": "text",
- "maxAngleDelta": 0.5
- },
- "building": {
- "source": "outdoors",
- "layer": "building",
- "type": "fill"
- },
- "barrier_line_gate": {
- "source": "outdoors",
- "layer": "barrier_line",
- "field": "class",
- "value": "gate",
- "type": "line"
- },
- "barrier_line_fence": {
- "source": "outdoors",
- "layer": "barrier_line",
- "field": "class",
- "value": "fence",
- "type": "line"
- },
- "barrier_line_hedge": {
- "source": "outdoors",
- "layer": "barrier_line",
- "field": "class",
- "value": "hedge",
- "type": "line"
- },
- "barrier_line_land": {
- "source": "outdoors",
- "layer": "barrier_line",
- "field": "class",
- "value": "land",
- "type": "line"
- },
- "barrier_line_land_fill": {
- "source": "outdoors",
- "layer": "barrier_line",
- "field": "class",
- "value": "land",
- "type": "fill"
- },
- "barrier_line_cliff": {
- "source": "outdoors",
- "layer": "barrier_line",
- "field": "class",
- "value": "cliff",
- "type": "line"
- },
- "aeroway_fill": {
- "source": "outdoors",
- "layer": "aeroway",
- "type": "fill",
- "enabled": 12
- },
- "aeroway_runway": {
- "source": "outdoors",
- "layer": "aeroway",
- "field": "type",
- "value": "runway",
- "type": "line",
- "enabled": 12
- },
- "aeroway_taxiway": {
- "source": "outdoors",
- "layer": "aeroway",
- "field": "type",
- "value": "taxiway",
- "type": "line",
- "enabled": 12
- },
- "motorway": {
- "source": "outdoors",
- "layer": "road",
- "field": "class",
- "value": "motorway",
- "join": "round",
- "cap": "round",
- "type": "line"
- },
- "motorway_link": {
- "source": "outdoors",
- "layer": "road",
- "field": "class",
- "value": "motorway_link",
- "join": "round",
- "cap": "round",
- "type": "line"
- },
- "main": {
- "source": "outdoors",
- "layer": "road",
- "field": "class",
- "value": "main",
- "join": "round",
- "cap": "round",
- "type": "line"
- },
- "street": {
- "source": "outdoors",
- "layer": "road",
- "field": "class",
- "value": [
- "street",
- "street_limited"
- ],
- "join": "round",
- "cap": "round",
- "type": "line",
- "enabled": 12
- },
- "service": {
- "source": "outdoors",
- "layer": "road",
- "field": "class",
- "value": "service",
- "join": "round",
- "cap": "round",
- "type": "line",
- "enabled": 15
- },
- "path": {
- "source": "outdoors",
- "layer": "road",
- "field": "class",
- "value": "path",
- "type": "line"
- },
- "path_footway": {
- "source": "outdoors",
- "layer": "road",
- "field": "type",
- "value": "footway",
- "type": "line"
- },
- "path_path": {
- "source": "outdoors",
- "layer": "road",
- "field": "type",
- "value": "path",
- "type": "line"
- },
- "path_cycleway": {
- "source": "outdoors",
- "layer": "road",
- "field": "type",
- "value": "cycleway",
- "type": "line"
- },
- "path_mtb": {
- "source": "outdoors",
- "layer": "road",
- "field": "type",
- "value": "mtb",
- "type": "line"
- },
- "path_steps": {
- "source": "outdoors",
- "layer": "road",
- "field": "type",
- "value": "steps",
- "type": "line"
- },
- "path_piste": {
- "source": "outdoors",
- "layer": "road",
- "field": "type",
- "value": "piste",
- "type": "line"
- },
- "major_rail": {
- "source": "outdoors",
- "layer": "road",
- "field": "class",
- "value": "major_rail",
- "type": "line"
- },
- "tunnel_motorway": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "class",
- "value": "motorway",
- "type": "line"
- },
- "tunnel_motorway_link": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "class",
- "value": "motorway_link",
- "type": "line"
- },
- "tunnel_main": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "class",
- "value": "main",
- "type": "line"
- },
- "tunnel_street": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "class",
- "value": [
- "street",
- "street_limited"
- ],
- "type": "line",
- "enabled": 12
- },
- "tunnel_service": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "class",
- "value": "service",
- "type": "line",
- "enabled": 15
- },
- "tunnel_path": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "class",
- "value": "path",
- "type": "line"
- },
- "tunnel_path_footway": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "type",
- "value": "footway",
- "type": "line"
- },
- "tunnel_path_path": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "type",
- "value": "path",
- "type": "line"
- },
- "tunnel_path_cycleway": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "type",
- "value": "cycleway",
- "type": "line"
- },
- "tunnel_path_mtb": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "type",
- "value": "mtb",
- "type": "line"
- },
- "tunnel_path_steps": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "type",
- "value": "steps",
- "type": "line"
- },
- "tunnel_path_piste": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "type",
- "value": "piste",
- "type": "line"
- },
- "tunnel_major_rail": {
- "source": "outdoors",
- "layer": "tunnel",
- "field": "class",
- "value": "major_rail",
- "type": "line"
- },
- "bridge_motorway": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "class",
- "value": "motorway",
- "type": "line"
- },
- "bridge_motorway_link": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "class",
- "value": "motorway_link",
- "type": "line"
- },
- "bridge_main": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "class",
- "value": "main",
- "type": "line"
- },
- "bridge_street": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "class",
- "value": [
- "street",
- "street_limited"
- ],
- "type": "line",
- "enabled": 12
- },
- "bridge_service": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "class",
- "value": "service",
- "type": "line",
- "enabled": 15
- },
- "bridge_path": {
- "source": "outdoors",
- "layer": "bridge",
- "type": "line"
- },
- "bridge_path_footway": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "type",
- "value": "footway",
- "type": "line"
- },
- "bridge_path_path": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "type",
- "value": "path",
- "type": "line"
- },
- "bridge_path_cycleway": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "type",
- "value": "cycleway",
- "type": "line"
- },
- "bridge_path_mtb": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "type",
- "value": "mtb",
- "type": "line"
- },
- "bridge_path_steps": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "type",
- "value": "steps",
- "type": "line"
- },
- "bridge_path_piste": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "type",
- "value": "piste",
- "type": "line"
- },
- "bridge_major_rail": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "class",
- "value": "major_rail",
- "type": "line"
- },
- "bridge_aerialway": {
- "source": "outdoors",
- "layer": "bridge",
- "field": "class",
- "value": "aerialway",
- "type": "line"
- },
- "country_label": {
- "source": "outdoors",
- "layer": "country_label",
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "font": "Open Sans Semibold, Arial Unicode MS Bold",
- "fontSize": 24,
- "feature_type": "point",
- "type": "text",
- "maxWidth": 5
- },
- "country_label_line": {
- "source": "outdoors",
- "layer": "country_label_line",
- "type": "line"
- },
- "marine_label_line_1": {
- "source": "outdoors",
- "layer": "marine_label",
- "feature_type": "line",
- "type": "text",
- "field": "labelrank",
- "value": 1,
- "text_field": "{{name_en}}",
- "path": "curve",
- "font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
- "fontSize": 30,
- "letterSpacing": 0.4,
- "maxAngleDelta": 0.5
- },
- "marine_label_line_2": {
- "source": "outdoors",
- "layer": "marine_label",
- "feature_type": "line",
- "field": "labelrank",
- "value": 2,
- "type": "text",
- "text_field": "{{name_en}}",
- "path": "curve",
- "font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
- "fontSize": 24,
- "letterSpacing": 0.2,
- "maxAngleDelta": 0.5
- },
- "marine_label_line_3": {
- "source": "outdoors",
- "layer": "marine_label",
- "feature_type": "line",
- "type": "text",
- "field": "labelrank",
- "value": 3,
- "text_field": "{{name_en}}",
- "path": "curve",
- "font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
- "fontSize": 18,
- "letterSpacing": 0.1,
- "maxAngleDelta": 0.5
- },
- "marine_label_line_other": {
- "source": "outdoors",
- "layer": "marine_label",
- "feature_type": "line",
- "type": "text",
- "field": "labelrank",
- "value": [4, 5, 6],
- "text_field": "{{name_en}}",
- "path": "curve",
- "font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
- "fontSize": 16,
- "letterSpacing": 0.1,
- "maxAngleDelta": 0.5
- },
- "marine_label_point_1": {
- "source": "outdoors",
- "layer": "marine_label",
- "feature_type": "point",
- "type": "text",
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "field": "labelrank",
- "value": 1,
- "font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
- "fontSize": 30,
- "maxWidth": 8,
- "letterSpacing": 0.4,
- "lineHeight": 2
- },
- "marine_label_point_2": {
- "source": "outdoors",
- "layer": "marine_label",
- "feature_type": "point",
- "type": "text",
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "field": "labelrank",
- "value": 2,
- "font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
- "fontSize": 24,
- "maxWidth": 8,
- "letterSpacing": 0.2,
- "lineHeight": 1.5
- },
- "marine_label_point_3": {
- "source": "outdoors",
- "layer": "marine_label",
- "feature_type": "point",
- "type": "text",
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "field": "labelrank",
- "value": 3,
- "font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
- "fontSize": 18,
- "maxWidth": 8,
- "letterSpacing": 0.1,
- "lineHeight": 1.3
- },
- "marine_label_point_other": {
- "source": "outdoors",
- "layer": "marine_label",
- "feature_type": "point",
- "type": "text",
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "field": "labelrank",
- "value": [4,5,6],
- "font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
- "fontSize": 16,
- "maxWidth": 8,
- "letterSpacing": 0.1,
- "lineHeight": 1.2
- },
- "state_label": {
- "source": "outdoors",
- "layer": "state_label",
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "font": "Open Sans Regular, Arial Unicode MS Regular",
- "fontSize": 16,
- "feature_type": "point",
- "type": "text",
- "enabled": 4,
- "maxWidth": 8
- },
- "place_label_city": {
- "source": "outdoors",
- "layer": "place_label",
- "field": "type",
- "value": "city",
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "font": "Open Sans Semibold, Arial Unicode MS Bold",
- "fontSize": 20,
- "feature_type": "point",
- "type": "text",
- "maxWidth": 8
- },
- "place_label_town": {
- "source": "outdoors",
- "layer": "place_label",
- "field": "type",
- "value": "town",
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "font": "Open Sans Semibold, Arial Unicode MS Bold",
- "fontSize": 24,
- "feature_type": "point",
- "type": "text",
- "maxWidth": 8
- },
- "place_label_village": {
- "source": "outdoors",
- "layer": "place_label",
- "field": "type",
- "value": "village",
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "font": "Open Sans Semibold, Arial Unicode MS Bold",
- "fontSize": 22,
- "feature_type": "point",
- "type": "text",
- "maxWidth": 8
- },
- "place_label_other": {
- "source": "outdoors",
- "layer": "place_label",
- "field": "type",
- "value": [
- "hamlet",
- "suburb",
- "neighbourhood"
- ],
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "font": "Open Sans Semibold, Arial Unicode MS Bold",
- "fontSize": 18,
- "maxWidth": 6,
- "feature_type": "point",
- "type": "text"
- },
- "road_label_1": {
- "source": "outdoors",
- "layer": "road_label",
- "field": "class",
- "value": ["motorway","main"],
- "text_field": "{{name_en}}",
- "path": "curve",
- "padding": 2,
- "font": "Open Sans Regular, Arial Unicode MS Regular",
- "fontSize": 18,
- "feature_type": "line",
- "type": "text",
- "maxAngleDelta": 0.5
- },
- "road_label_2": {
- "source": "outdoors",
- "layer": "road_label",
- "field": "class",
- "value": ["street","street_limited"],
- "text_field": "{{name_en}}",
- "path": "curve",
- "padding": 2,
- "font": "Open Sans Regular, Arial Unicode MS Regular",
- "fontSize": 16,
- "feature_type": "line",
- "type": "text",
- "maxAngleDelta": 0.5
- },
- "road_label_3": {
- "source": "outdoors",
- "layer": "road_label",
- "field": "class",
- "value": ["service","driveway","path"],
- "text_field": "{{name_en}}",
- "path": "curve",
- "padding": 2,
- "font": "Open Sans Regular, Arial Unicode MS Regular",
- "fontSize": 14,
- "feature_type": "line",
- "type": "text",
- "maxAngleDelta": 0.5
- },
- "water_label": {
- "source": "outdoors",
- "layer": "water_label",
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
- "fontSize": 12,
- "feature_type": "point",
- "type": "text",
- "maxWidth": 8
- },
- "waterway_label": {
- "source": "outdoors",
- "layer": "waterway_label",
- "text_field": "{{name_en}}",
- "path": "curve",
- "font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
- "fontSize": 12,
- "feature_type": "line",
- "type": "text",
- "maxAngleDelta": 0.5
- },
- "poi": {
- "source": "outdoors",
- "layer": "poi_label",
- "icon": "{{maki}}",
- "field": "scalerank",
- "value": [1, 2],
- "size": 12,
- "type": "point"
- },
- "poi_3": {
- "source": "outdoors",
- "layer": "poi_label",
- "icon": "{{maki}}",
- "field": "scalerank",
- "value": 3,
- "size": 12,
- "type": "point"
- },
- "poi_4_4": {
- "source": "outdoors",
- "layer": "poi_label",
- "icon": "{{maki}}",
- "filter": [
- "and",
- { "field": "scalerank", "value": 4 },
- { "field": "localrank", "operator": "<=", "value": 4 }
- ],
- "size": 12,
- "type": "point"
- },
- "poi_4_16": {
- "source": "outdoors",
- "layer": "poi_label",
- "icon": "{{maki}}",
- "filter": [
- "and",
- { "field": "scalerank", "value": 4 },
- { "field": "localrank", "operator": "<=", "value": 16 },
- { "field": "localrank", "operator": ">", "value": 4 }
- ],
- "size": 12,
- "type": "point"
- },
- "poi_4_all": {
- "source": "outdoors",
- "layer": "poi_label",
- "icon": "{{maki}}",
- "field": "scalerank",
- "value": 4,
- "size": 12,
- "type": "point"
- },
- "poi_aerodrome": {
- "source": "outdoors",
- "layer": "poi_label",
- "icon": "{{maki}}",
- "field": "maki",
- "value": "airport",
- "size": 24,
- "type": "point"
- },
- "poi_label_1-2": {
- "source": "outdoors",
- "layer": "poi_label",
- "field": "scalerank",
- "value": [
- 1,
- 2
- ],
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "padding": 2,
- "maxWidth": 10,
- "verticalAlignment": "top",
- "translate": [0, -1],
- "font": "Open Sans Semibold, Arial Unicode MS Bold",
- "fontSize": 12,
- "feature_type": "point",
- "type": "text"
- },
- "poi_label_3": {
- "source": "outdoors",
- "layer": "poi_label",
- "field": "scalerank",
- "value": 3,
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "padding": 2,
- "maxWidth": 8,
- "verticalAlignment": "top",
- "translate": [0, -1],
- "font": "Open Sans Semibold, Arial Unicode MS Bold",
- "fontSize": 11,
- "feature_type": "point",
- "type": "text"
- },
- "poi_label_4_4": {
- "source": "outdoors",
- "layer": "poi_label",
- "filter": [
- "and",
- { "field": "scalerank", "value": 4 },
- { "field": "localrank", "operator": "<=", "value": 4 }
- ],
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "padding": 2,
- "maxWidth": 8,
- "verticalAlignment": "top",
- "translate": [0, -1],
- "font": "Open Sans Semibold, Arial Unicode MS Bold",
- "fontSize": 10,
- "feature_type": "point",
- "type": "text"
- },
- "poi_label_4_16": {
- "source": "outdoors",
- "layer": "poi_label",
- "filter": [
- "and",
- { "field": "scalerank", "value": 4 },
- { "field": "localrank", "operator": "<=", "value": 16 }
- ],
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "padding": 2,
- "maxWidth": 8,
- "verticalAlignment": "top",
- "translate": [0, -1],
- "font": "Open Sans Semibold, Arial Unicode MS Bold",
- "fontSize": 10,
- "feature_type": "point",
- "type": "text"
- },
- "poi_label_4_all": {
- "source": "outdoors",
- "layer": "poi_label",
- "field": "scalerank",
- "value": 4,
- "text_field": "{{name_en}}",
- "path": "horizontal",
- "padding": 2,
- "maxWidth": 8,
- "verticalAlignment": "top",
- "translate": [0, -1],
- "font": "Open Sans Semibold, Arial Unicode MS Bold",
- "fontSize": 10,
- "feature_type": "point",
- "type": "text"
- }
+ "version": 3,
+ "sprite": "https://www.mapbox.com/mapbox-gl-styles/sprites/outdoors",
+ "glyphs": "https://mapbox.s3.amazonaws.com/gl-glyphs-256/{{fontstack}}/{{range}}.pbf",
+ "sources": {
+ "mapbox": {
+ "type": "vector",
+ "url": "mapbox://mapbox.mapbox-terrain-v1,mapbox.mapbox-streets-v5",
+ "tileSize": 512,
+ "maxZoom": 14
+ }
+ },
+ "constants": {
+ "@land": "rgb(244,239,225)",
+ "@water": "#cdd",
+ "@water_dark": "#185869",
+ "@crop": "#eeeed4",
+ "@grass": "#e6e6cc",
+ "@scrub": "#dfe5c8",
+ "@wood": "#cee2bd",
+ "@snow": "#f4f8ff",
+ "@rock": "#ddd",
+ "@sand": "#ffd",
+ "@cemetery": "#edf4ed",
+ "@pitch": "#fff",
+ "@park": "#d4e4bc",
+ "@piste": "blue",
+ "@school": "#e8dfe0",
+ "@hospital": "#f8eee0",
+ "@builtup": "#f6faff",
+ "@case": "#fff",
+ "@motorway": "#cda0a0",
+ "@main": "#ddc0b9",
+ "@street": "#fff",
+ "@text": "#666",
+ "@text_stroke": "rgba(255,255,255,0.8)",
+ "@country_text": "#222",
+ "@marine_text": "#a0bdc0",
+ "@water_text": "#185869",
+ "@land_night": "#017293",
+ "@water_night": "#103",
+ "@water_dark_night": "#003366",
+ "@crop_night": "#178d96",
+ "@grass_night": "#23948a",
+ "@scrub_night": "#31a186",
+ "@wood_night": "#45b581",
+ "@park_night": "#51bd8b",
+ "@snow_night": "#5ad9fe",
+ "@rock_night": "#999",
+ "@sand_night": "#437162",
+ "@cemetery_night": "#218c96",
+ "@pitch_night": "rgba(255,255,255,0.2)",
+ "@school_night": "#01536a",
+ "@hospital_night": "#015e7a",
+ "@builtup_night": "#014b60",
+ "@admin_night": "#ffb680",
+ "@text_night": "#fff",
+ "@text_water_night": "#2a5b8a",
+ "@text_stroke_night": "#103",
+ "@text2_stroke_night": "rgba(1,69,89,0.8)",
+ "@case_night": "#015e7a",
+ "@street_case_night": "#015b76",
+ "@motorway_night": "#bbdde7",
+ "@main_night": "#64b2c9",
+ "@street_night": "#0186ac",
+ "@contour_night": "#ffff80",
+ "@river_canal_width": {
+ "fn": "stops",
+ "stops": [[11, 0.5], [12, 1], [14, 2], [16, 3]]
},
- "structure": [
- {
- "name": "background",
- "bucket": "background"
- },
- {
- "name": "landcover_snow",
- "bucket": "landcover_snow"
- },
- {
- "name": "landcover_crop",
- "bucket": "landcover_crop"
- },
- {
- "name": "landcover_grass",
- "bucket": "landcover_grass"
- },
- {
- "name": "landcover_scrub",
- "bucket": "landcover_scrub"
- },
- {
- "name": "landcover_wood",
- "bucket": "landcover_wood"
- },
- {
- "name": "landuse_wood",
- "bucket": "landuse_wood"
- },
- {
- "name": "landuse_school",
- "bucket": "landuse_school"
- },
- {
- "name": "landuse_sand",
- "bucket": "landuse_sand"
- },
- {
- "name": "landuse_pitch",
- "bucket": "landuse_pitch"
- },
- {
- "name": "landuse_park",
- "bucket": "landuse_park"
- },
- {
- "name": "landuse_industrial",
- "bucket": "landuse_industrial"
- },
- {
- "name": "landuse_scrub",
- "bucket": "landuse_scrub"
- },
- {
- "name": "landuse_grass",
- "bucket": "landuse_grass"
- },
- {
- "name": "landuse_crop",
- "bucket": "landuse_crop"
- },
- {
- "name": "landuse_rock",
- "bucket": "landuse_rock"
- },
- {
- "name": "landuse_snow",
- "bucket": "landuse_snow"
- },
- {
- "name": "landuse_hospital",
- "bucket": "landuse_hospital"
- },
- {
- "name": "landuse_cemetery",
- "bucket": "landuse_cemetery"
- },
- {
- "name": "overlay_wetland",
- "bucket": "overlay_wetland"
- },
- {
- "name": "overlay_breakwater_pier",
- "bucket": "overlay_breakwater_pier"
- },
- {
- "name": "waterway_river_canal",
- "bucket": "waterway_river_canal"
- },
- {
- "name": "waterway_stream",
- "bucket": "waterway_stream"
- },
- {
- "name": "building_shadow",
- "bucket": "building"
- },
- {
- "name": "building",
- "bucket": "building"
- },
- {
- "name": "building_wall",
- "bucket": "building"
- },
- {
- "name": "hillshade_full_highlight",
- "bucket": "hillshade_full_highlight"
- },
- {
- "name": "hillshade_medium_highlight",
- "bucket": "hillshade_medium_highlight"
- },
- {
- "name": "hillshade_medium_shadow",
- "bucket": "hillshade_medium_shadow"
- },
- {
- "name": "hillshade_full_shadow",
- "bucket": "hillshade_full_shadow"
- },
- {
- "name": "contour_line_loud",
- "bucket": "contour_line_10"
- },
- {
- "name": "contour_line_loud",
- "bucket": "contour_line_5"
- },
- {
- "name": "contour_line_regular",
- "bucket": "contour_line_other"
- },
- {
- "name": "barrier_line_gate",
- "bucket": "barrier_line_gate"
- },
- {
- "name": "barrier_line_fence",
- "bucket": "barrier_line_fence"
- },
- {
- "name": "barrier_line_hedge",
- "bucket": "barrier_line_hedge"
- },
- {
- "name": "barrier_line_land",
- "bucket": "barrier_line_land"
- },
- {
- "name": "barrier_line_land_fill",
- "bucket": "barrier_line_land_fill"
- },
- {
- "name": "barrier_line_cliff",
- "bucket": "barrier_line_cliff"
- },
- {
- "name": "water",
- "bucket": "water"
- },
- {
- "name": "aeroway_fill",
- "bucket": "aeroway_fill"
- },
- {
- "name": "aeroway_runway",
- "bucket": "aeroway_runway"
- },
- {
- "name": "aeroway_taxiway",
- "bucket": "aeroway_taxiway"
- },
- {
- "name": "tunnel_motorway_link_casing",
- "bucket": "tunnel_motorway_link"
- },
- {
- "name": "tunnel_service_casing",
- "bucket": "tunnel_service"
- },
- {
- "name": "tunnel_main_casing",
- "bucket": "tunnel_main"
- },
- {
- "name": "tunnel_street_casing",
- "bucket": "tunnel_street"
- },
- {
- "name": "tunnel_motorway_link",
- "bucket": "tunnel_motorway_link"
- },
- {
- "name": "tunnel_service",
- "bucket": "tunnel_service"
- },
- {
- "name": "tunnel_street",
- "bucket": "tunnel_street"
- },
- {
- "name": "tunnel_main",
- "bucket": "tunnel_main"
- },
- {
- "name": "tunnel_motorway_casing",
- "bucket": "tunnel_motorway"
- },
- {
- "name": "tunnel_motorway",
- "bucket": "tunnel_motorway"
- },
- {
- "name": "road_path_case",
- "bucket": "tunnel_path"
- },
- {
- "name": "road_path_footway",
- "bucket": "tunnel_path_footway"
- },
- {
- "name": "road_path_path",
- "bucket": "tunnel_path_path"
- },
- {
- "name": "road_path_cycleway",
- "bucket": "tunnel_path_cycleway"
- },
- {
- "name": "road_path_mtb",
- "bucket": "tunnel_path_mtb"
- },
- {
- "name": "road_path_piste",
- "bucket": "tunnel_path_piste"
- },
- {
- "name": "road_path_steps",
- "bucket": "tunnel_path_steps"
- },
- {
- "name": "road_major_rail",
- "bucket": "tunnel_major_rail"
- },
- {
- "name": "road_major_rail_hatching",
- "bucket": "tunnel_major_rail"
- },
- {
- "name": "road_motorway_link_casing",
- "bucket": "motorway_link"
- },
- {
- "name": "road_service_casing",
- "bucket": "service"
- },
- {
- "name": "road_main_casing",
- "bucket": "main"
- },
- {
- "name": "road_street_casing",
- "bucket": "street"
- },
- {
- "name": "road_motorway_casing",
- "bucket": "motorway"
- },
- {
- "name": "road_motorway_link",
- "bucket": "motorway_link"
- },
- {
- "name": "road_service",
- "bucket": "service"
- },
- {
- "name": "road_street",
- "bucket": "street"
- },
- {
- "name": "road_main",
- "bucket": "main"
- },
- {
- "name": "road_motorway",
- "bucket": "motorway"
- },
- {
- "name": "road_path_case",
- "bucket": "path"
- },
- {
- "name": "road_path_footway",
- "bucket": "path_footway"
- },
- {
- "name": "road_path_path",
- "bucket": "path_path"
- },
- {
- "name": "road_path_cycleway",
- "bucket": "path_cycleway"
- },
- {
- "name": "road_path_mtb",
- "bucket": "path_mtb"
- },
- {
- "name": "road_path_piste",
- "bucket": "path_piste"
- },
- {
- "name": "road_path_steps",
- "bucket": "path_steps"
- },
- {
- "name": "road_major_rail",
- "bucket": "major_rail"
- },
- {
- "name": "road_major_rail_hatching",
- "bucket": "major_rail"
- },
- {
- "name": "bridge_motorway_link_casing",
- "bucket": "bridge_motorway_link"
- },
- {
- "name": "bridge_service_casing",
- "bucket": "bridge_service"
- },
- {
- "name": "bridge_main_casing",
- "bucket": "bridge_main"
- },
- {
- "name": "bridge_street_casing",
- "bucket": "bridge_street"
- },
- {
- "name": "bridge_motorway_link",
- "bucket": "bridge_motorway_link"
- },
- {
- "name": "bridge_service",
- "bucket": "bridge_service"
- },
- {
- "name": "bridge_street",
- "bucket": "bridge_street"
- },
- {
- "name": "bridge_main",
- "bucket": "bridge_main"
- },
- {
- "name": "bridge_motorway_casing",
- "bucket": "bridge_motorway"
- },
- {
- "name": "bridge_motorway",
- "bucket": "bridge_motorway"
- },
- {
- "name": "road_path_footway",
- "bucket": "bridge_path_footway"
- },
- {
- "name": "road_path_path",
- "bucket": "bridge_path_path"
- },
- {
- "name": "road_path_cycleway",
- "bucket": "bridge_path_cycleway"
- },
- {
- "name": "road_path_mtb",
- "bucket": "bridge_path_mtb"
- },
- {
- "name": "road_path_piste",
- "bucket": "bridge_path_piste"
- },
- {
- "name": "road_path_steps",
- "bucket": "bridge_path_steps"
- },
- {
- "name": "bridge_aerialway_casing",
- "bucket": "bridge_aerialway"
- },
- {
- "name": "bridge_aerialway",
- "bucket": "bridge_aerialway"
- },
- {
- "name": "road_major_rail",
- "bucket": "bridge_major_rail"
- },
- {
- "name": "road_major_rail_hatching",
- "bucket": "bridge_major_rail"
- },
- {
- "name": "admin_l3",
- "bucket": "admin_l3"
- },
- {
- "name": "admin_l2",
- "bucket": "admin_l2"
- },
- {
- "name": "admin_maritime_cover",
- "bucket": "admin_maritime"
- },
- {
- "name": "admin_maritime",
- "bucket": "admin_maritime"
- },
- {
- "name": "country_label_line",
- "bucket": "country_label_line"
- },
- {
- "name": "country_label",
- "bucket": "country_label"
- },
- {
- "name": "marine_label_line_1",
- "bucket": "marine_label_line_1"
- },
- {
- "name": "marine_label_line_2",
- "bucket": "marine_label_line_2"
- },
- {
- "name": "marine_label_line_3",
- "bucket": "marine_label_line_3"
- },
- {
- "name": "marine_label_line_other",
- "bucket": "marine_label_line_other"
- },
- {
- "name": "marine_label_point_1",
- "bucket": "marine_label_point_1"
- },
- {
- "name": "marine_label_point_2",
- "bucket": "marine_label_point_2"
- },
- {
- "name": "marine_label_point_3",
- "bucket": "marine_label_point_3"
- },
- {
- "name": "marine_label_point_other",
- "bucket": "marine_label_point_other"
- },
- {
- "name": "state_label",
- "bucket": "state_label"
- },
- {
- "name": "place_label_city",
- "bucket": "place_label_city"
- },
- {
- "name": "place_label_town",
- "bucket": "place_label_town"
- },
- {
- "name": "place_label_village",
- "bucket": "place_label_village"
- },
- {
- "name": "place_label_other",
- "bucket": "place_label_other"
- },
- {
- "name": "water_label",
- "bucket": "water_label"
- },
- {
- "name": "poi_aerodrome",
- "bucket": "poi_aerodrome"
- },
- {
- "name": "poi",
- "bucket": "poi"
- },
- {
- "name": "poi_label_1-2",
- "bucket": "poi_label_1-2"
- },
- {
- "name": "road_label_1",
- "bucket": "road_label_1"
- },
- {
- "name": "poi_3",
- "bucket": "poi_3"
- },
- {
- "name": "poi_label_3",
- "bucket": "poi_label_3"
- },
- {
- "name": "road_label_2",
- "bucket": "road_label_2"
- },
- {
- "name": "road_label_3",
- "bucket": "road_label_3"
- },
- {
- "name": "contour_label",
- "bucket": "contour_label"
- },
- {
- "name": "waterway_label",
- "bucket": "waterway_label"
- },
- {
- "name": "poi_4_4",
- "bucket": "poi_4_4"
- },
- {
- "name": "poi_label_4_4",
- "bucket": "poi_label_4_4"
- },
- {
- "name": "poi_4_16",
- "bucket": "poi_4_16"
- },
- {
- "name": "poi_label_4_16",
- "bucket": "poi_label_4_16"
- },
- {
- "name": "poi_4_all",
- "bucket": "poi_4_all"
- },
- {
- "name": "poi_label_4_all",
- "bucket": "poi_label_4_all"
- }
- ],
- "constants": {
- "land": "rgb(244,239,225)",
- "water": "#cdd",
- "water_dark": "#185869",
- "crop": "#eeeed4",
- "grass": "#e6e6cc",
- "scrub": "#dfe5c8",
- "wood": "#cee2bd",
- "snow": "#f4f8ff",
- "rock": "#ddd",
- "sand": "#ffd",
- "cemetery": "#edf4ed",
- "pitch": "#fff",
- "park": "#d4e4bc",
- "piste": "blue",
- "school": "#e8dfe0",
- "hospital": "#f8eee0",
- "builtup": "#f6faff",
- "case": "#fff",
- "motorway": "#cda0a0",
- "main": "#ddc0b9",
- "street": "#fff",
- "text": "#666",
- "text_stroke": "rgba(255,255,255,0.8)",
- "country_text": "#222",
- "marine_text": "#a0bdc0",
- "water_text": "#185869",
-
- "land_night": "#017293",
- "water_night": "#103",
- "water_dark_night": "#003366",
- "crop_night": "#178d96",
- "grass_night": "#23948a",
- "scrub_night": "#31a186",
- "wood_night": "#45b581",
- "park_night": "#51bd8b",
- "snow_night": "#5ad9fe",
- "rock_night": "#999",
- "sand_night": "#437162",
- "cemetery_night": "#218c96",
- "pitch_night": "rgba(255,255,255,0.2)",
- "school_night": "#01536a",
- "hospital_night": "#015e7a",
- "builtup_night": "#014b60",
-
- "admin_night": "#ffb680",
- "text_night": "#fff",
- "text_water_night": "#2a5b8a",
- "text_stroke_night": "#103",
- "text2_stroke_night": "rgba(1,69,89,0.8)",
-
- "case_night": "#015e7a",
- "street_case_night": "#015b76",
- "motorway_night": "#bbdde7",
- "main_night": "#64b2c9",
- "street_night": "#0186ac",
- "contour_night": "#ffff80",
-
- "river_canal_width": [
- "stops",
- {"z": 11, "val": 0.5},
- {"z": 12, "val": 1},
- {"z": 14, "val": 2},
- {"z": 16, "val": 3}
- ],
- "stream_width": [
- "stops",
- {"z": 13, "val": 0.25},
- {"z": 14, "val": 0.5},
- {"z": 16, "val": 1.5},
- {"z": 18, "val": 2}
- ],
- "motorway_width": [
- "stops",
- {"z": 5, "val": 0},
- {"z": 6, "val": 0.5},
- {"z": 8, "val": 0.8},
- {"z": 10, "val": 1},
- {"z": 11, "val": 1.2},
- {"z": 12, "val": 2},
- {"z": 13, "val": 3},
- {"z": 14, "val": 4},
- {"z": 15, "val": 6},
- {"z": 16, "val": 9},
- {"z": 17, "val": 12},
- {"z": 18, "val": 14}
- ],
- "motorway_casing_width": [
- "stops",
- {"z": 7.5, "val": 0.6},
- {"z": 8, "val": 0.8},
- {"z": 10, "val": 2.8},
- {"z": 11, "val": 3},
- {"z": 12, "val": 4},
- {"z": 13, "val": 5},
- {"z": 14, "val": 6.5},
- {"z": 15, "val": 9},
- {"z": 16, "val": 12},
- {"z": 17, "val": 15},
- {"z": 18, "val": 17}
- ],
- "motorway_link_width": [
- "stops",
- {"z": 12, "val": 1.2},
- {"z": 14, "val": 2},
- {"z": 16, "val": 3},
- {"z": 18, "val": 4}
- ],
- "motorway_link_casing_width": [
- "stops",
- {"z": 12, "val": 2.8},
- {"z": 14, "val": 3.5},
- {"z": 16, "val": 5},
- {"z": 18, "val": 6}
- ],
- "main_width": [
- "stops",
- {"z": 5, "val": 1},
- {"z": 12, "val": 1},
- {"z": 13, "val": 1.5},
- {"z": 14, "val": 2},
- {"z": 15, "val": 3},
- {"z": 16, "val": 6},
- {"z": 17, "val": 10},
- {"z": 18, "val": 12}
- ],
- "main_casing_width": [
- "stops",
- {"z": 9, "val": 2.9},
- {"z": 12, "val": 2.9},
- {"z": 13, "val": 3.5},
- {"z": 14, "val": 4},
- {"z": 15, "val": 5.5},
- {"z": 16, "val": 9},
- {"z": 17, "val": 12},
- {"z": 18, "val": 14}
- ],
- "street_width": [
- "stops",
- {"z": 14.5, "val": 0},
- {"z": 15, "val": 1.5},
- {"z": 16, "val": 3},
- {"z": 17, "val": 8}
- ],
- "street_casing_width": [
- "stops",
- {"z": 13, "val": 0.4},
- {"z": 14, "val": 1},
- {"z": 15, "val": 2.5},
- {"z": 16, "val": 4},
- {"z": 17, "val": 10}
- ],
- "street_casing_opacity": [
- "stops",
- {"z": 14, "val": 0},
- {"z": 14.5, "val": 1}
- ],
- "service_casing_width": [
- "stops",
- {"z": 14, "val": 0.5},
- {"z": 15, "val": 3},
- {"z": 16, "val": 3.5},
- {"z": 17, "val": 4},
- {"z": 18, "val": 5},
- {"z": 19, "val": 6}
- ],
- "runway_width": [
- "stops",
- {"z": 10, "val": 1},
- {"z": 11, "val": 2},
- {"z": 12, "val": 3},
- {"z": 13, "val": 5},
- {"z": 14, "val": 7},
- {"z": 15, "val": 11},
- {"z": 16, "val": 15},
- {"z": 17, "val": 19},
- {"z": 18, "val": 23}
- ],
- "taxiway_width": [
- "stops",
- {"z": 10, "val": 0.2},
- {"z": 12, "val": 0.2},
- {"z": 13, "val": 1},
- {"z": 14, "val": 1.5},
- {"z": 15, "val": 2},
- {"z": 16, "val": 3},
- {"z": 17, "val": 4},
- {"z": 18,"val": 5}
- ],
- "aerialway_width": [
- "stops",
- {"z": 13.5, "val": 0.8},
- {"z": 14, "val": 1.4},
- {"z": 15, "val": 1.6},
- {"z": 16, "val": 2},
- {"z": 17, "val": 2.4},
- {"z": 18, "val": 3}
- ],
- "aerialway_casing_width": [
- "stops",
- {"z": 13.5, "val": 2},
- {"z": 14, "val": 2.5},
- {"z": 15, "val": 3},
- {"z": 16, "val": 3.5},
- {"z": 17, "val": 4},
- {"z": 22, "val": 5}
- ],
- "path_width": [
- "stops",
- {"z": 14, "val": 1.2},
- {"z": 15, "val": 1.5},
- {"z": 16, "val": 1.8}
- ],
- "admin_l2_width": [
- "stops",
- {"z": 2, "val": 0.5},
- {"z": 3, "val": 0.7},
- {"z": 4, "val": 0.7},
- {"z": 5, "val": 0.8},
- {"z": 6, "val": 1},
- {"z": 8, "val": 2},
- {"z": 10, "val": 3}
- ],
- "admin_l3_width": [
- "stops",
- {"z": 6, "val": 0.6},
- {"z": 8, "val": 1},
- {"z": 12, "val": 2}
- ],
- "road_label_1_size": [
- "stops",
- {"z": 13, "val": 11},
- {"z": 14, "val": 12},
- {"z": 15, "val": 13},
- {"z": 16, "val": 14},
- {"z": 17, "val": 16},
- {"z": 18, "val": 18}
- ],
- "road_label_2_size": [
- "stops",
- {"z": 13, "val": 11},
- {"z": 14, "val": 12},
- {"z": 16, "val": 14},
- {"z": 18, "val": 16}
- ],
- "road_label_3_size": [
- "stops",
- {"z": 15, "val": 10},
- {"z": 16, "val": 12},
- {"z": 18, "val": 14}
- ],
- "fence_width": [
- "stops",
- {"z": 17, "val": 0.6},
- {"z": 19, "val": 1}
- ],
- "hedge_width": [
- "stops",
- {"z": 16, "val": 0.6},
- {"z": 17, "val": 1.2},
- {"z": 19, "val": 1.6}
- ],
- "barrier_line_land_width": [
- "stops",
- {"z": 14, "val": 0.4},
- {"z": 15, "val": 0.75},
- {"z": 16, "val": 1.5},
- {"z": 17, "val": 3},
- {"z": 18, "val": 6},
- {"z": 19, "val": 12},
- {"z": 20, "val": 24},
- {"z": 21, "val": 48}
- ],
- "country_label_size": [
- "stops",
- {"z": 1, "val": 14},
- {"z": 12, "val": 24}
- ],
- "poi_label_1-2_size": [
- "stops",
- {"z": 15, "val": 10},
- {"z": 16, "val": 11},
- {"z": 17, "val": 12}
- ],
- "poi_label_3_size": [
- "stops",
- {"z": 16, "val": 10},
- {"z": 17, "val": 11}
- ],
- "hillshade_prerender": [
- "stops",
- {"z": 11, "val": 0},
- {"z": 12, "val": 1}
- ],
- "hillshade_prerender_size": [
- "stops",
- {"z": 11, "val": 1056},
- {"z": 12, "val": 512},
- {"z": 13, "val": 256}
- ]
+ "@stream_width": {
+ "fn": "stops",
+ "stops": [[13, 0.25], [14, 0.5], [16, 1.5], [18, 2]]
},
- "classes": [
- {
- "name": "default",
- "layers": {
- "background": {
- "color": "land"
- },
- "admin_maritime_cover": {
- "color": "water",
- "width": 5
- },
- "admin_maritime": {
- "color": "#c0d6d6",
- "width": [
- "stops",
- {"z": 6, "val": 1},
- {"z": 8, "val": 2},
- {"z": 12, "val": 3}
- ]
- },
- "admin_l2": {
- "color": "#88a",
- "width": "admin_l2_width"
- },
- "admin_l3": {
- "color": "#88a",
- "dasharray": [
- 60,
- 20
- ],
- "opacity": [
- "stops",
- {"z": 4, "val": 0},
- {"z": 6, "val": 1}
- ],
- "width": "admin_l3_width"
- },
- "waterway_river_canal": {
- "color": "#87abaf",
- "width": "river_canal_width"
- },
- "waterway_stream": {
- "color": "#87abaf",
- "width": "stream_width"
- },
- "barrier_line_gate": {
- "width": 2.5,
- "color": "#aab"
- },
- "barrier_line_fence": {
- "color": "#aeada3",
- "width": "fence_width"
- },
- "barrier_line_hedge": {
- "color": "#8de99b",
- "width": "hedge_width"
- },
- "barrier_line_land": {
- "color": "land",
- "width": "barrier_line_land_width"
- },
- "barrier_line_land_fill": {
- "color": "land"
- },
- "barrier_line_cliff": {
- "color": "#987",
- "width": 4
- },
- "landcover_wood": {
- "color": "wood",
- "opacity": [
- "stops",
- {"z": 13, "val": 1},
- {"z": 14, "val": 0.8},
- {"z": 17, "val": 0.2}
- ]
- },
- "landcover_scrub": {
- "color": "scrub",
- "opacity": [
- "stops",
- {"z": 13, "val": 1},
- {"z": 14, "val": 0.8},
- {"z": 17, "val": 0.2}
- ]
- },
- "landcover_grass": {
- "color": "grass",
- "opacity": [
- "stops",
- {"z": 13, "val": 1},
- {"z": 14, "val": 0.8},
- {"z": 17, "val": 0.2}
- ]
- },
- "landcover_crop": {
- "color": "crop"
- },
- "landcover_snow": {
- "color": "snow"
- },
- "landuse_wood": {
- "color": "wood"
- },
- "landuse_scrub": {
- "color": "scrub"
- },
- "landuse_grass": {
- "color": "grass"
- },
- "landuse_crop": {
- "color": "crop"
- },
- "landuse_snow": {
- "color": "snow"
- },
- "landuse_rock": {
- "color": "rock"
- },
- "landuse_sand": {
- "color": "sand"
- },
- "landuse_park": {
- "color": "park"
- },
- "landuse_cemetery": {
- "color": "cemetery"
- },
- "landuse_hospital": {
- "color": "hospital"
- },
- "landuse_school": {
- "color": "school"
- },
- "landuse_pitch": {
- "color": "rgba(255,255,255,0.5)",
- "stroke": "pitch"
- },
- "landuse_industrial": {
- "color": "rgba(246,250,255,0.5)"
- },
- "overlay_wetland": {
- "color": "rgba(210,225,225,0.2)",
- "image": "wetland_noveg_64"
- },
- "overlay_breakwater_pier": {
- "color": "land"
- },
- "hillshade_full_shadow": {
- "color": "#103",
- "antialias": false,
- "prerender": "hillshade_prerender",
- "prerender-size": "hillshade_prerender_size",
- "prerender-blur": 1,
- "opacity": [
- "stops",
- {"z": 15, "val": 0.08},
- {"z": 16, "val": 0.075},
- {"z": 17, "val": 0.05},
- {"z": 18, "val": 0.05},
- {"z": 19, "val": 0.025}
- ]
- },
- "hillshade_medium_shadow": {
- "color": "#206",
- "antialias": false,
- "prerender": "hillshade_prerender",
- "prerender-size": "hillshade_prerender_size",
- "prerender-blur": 1,
- "opacity": [
- "stops",
- {"z": 15, "val": 0.08},
- {"z": 16, "val": 0.075},
- {"z": 17, "val": 0.05},
- {"z": 18, "val": 0.05},
- {"z": 19, "val": 0.025}
- ]
- },
- "hillshade_full_highlight": {
- "color": "#fffff3",
- "antialias": false,
- "prerender": "hillshade_prerender",
- "prerender-size": "hillshade_prerender_size",
- "prerender-blur": 1,
- "opacity": [
- "stops",
- {"z": 15, "val": 0.3},
- {"z": 16, "val": 0.3},
- {"z": 17, "val": 0.2},
- {"z": 18, "val": 0.2},
- {"z": 19, "val": 0.1}
- ]
- },
- "hillshade_medium_highlight": {
- "color": "#ffd",
- "antialias": false,
- "prerender": "hillshade_prerender",
- "prerender-size": "hillshade_prerender_size",
- "prerender-blur": 1,
- "opacity": [
- "stops",
- {"z": 15, "val": 0.3},
- {"z": 16, "val": 0.3},
- {"z": 17, "val": 0.2},
- {"z": 18, "val": 0.2},
- {"z": 19, "val": 0.1}
- ]
- },
- "contour_line_loud": {
- "color": "#008",
- "width": 0.9,
- "opacity": [
- "stops",
- {"z": 12, "val": 0.05},
- {"z": 13, "val": 0.11}
- ]
- },
- "contour_line_regular": {
- "color": "#008",
- "width": 0.5,
- "opacity": [
- "stops",
- {"z": 12, "val": 0.05},
- {"z": 13, "val": 0.11}
- ]
- },
- "contour_label": {
- "color": "text",
- "stroke": "land",
- "strokeWidth": 0.3,
- "strokeBlur": 3,
- "size": 10
- },
- "water": {
- "color": "water",
- "stroke": "#a2bdc0"
- },
- "aeroway_fill": {
- "color": "#ddd"
- },
- "aeroway_runway": {
- "color": "#ddd",
- "width": "runway_width"
- },
- "aeroway_taxiway": {
- "color": "#ddd",
- "width": "taxiway_width"
- },
- "building": {
- "color": "#ebe7db"
- },
- "building_wall": {
- "color": "#ebe7db",
- "stroke": "#d5d1c6",
- "opacity": [
- "stops",
- {"z": 16.5, "val": 0},
- {"z": 17, "val": 0.7}
- ]
- },
- "building_shadow": {
- "color": "#d5d1c6",
- "stroke": "#d5d1c6",
- "translate": [
- 1,
- 1
- ],
- "opacity": [
- "stops",
- {"z": 16.5, "val": 0},
- {"z": 17, "val": 1}
- ]
- },
- "tunnel_motorway_casing": {
- "color": "case",
- "dasharray": [
- 6,
- 6
- ],
- "width": "motorway_casing_width",
- "opacity": [
- "stops",
- {"z": 9.5, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "tunnel_motorway": {
- "color": "#e6cec7",
- "width": "motorway_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "tunnel_main_casing": {
- "color": "case",
- "dasharray": [
- 6,
- 6
- ],
- "width": "main_casing_width",
- "opacity": ["stops",
- {"z": 9, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "tunnel_main": {
- "color": "#e6cec7",
- "width": "main_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "tunnel_motorway_link_casing": {
- "color": "case",
- "dasharray": [
- 6,
- 6
- ],
- "width": "motorway_link_casing_width"
- },
- "tunnel_motorway_link": {
- "color": "#e6cec7",
- "width": "motorway_link_width"
- },
- "tunnel_street_casing": {
- "color": "#d9d5c6",
- "width": "street_casing_width",
- "opacity": "street_casing_opacity"
- },
- "tunnel_street": {
- "color": "#d9d5c6",
- "width": "street_width"
- },
- "tunnel_service_casing": {
- "color": "#000",
- "opacity": 0.04,
- "dasharray": [
- 6,
- 6
- ],
- "width": "service_casing_width"
- },
- "tunnel_service": {
- "color": "#e6cec7",
- "width": 2
- },
- "road_motorway_casing": {
- "color": "case",
- "width": "motorway_casing_width",
- "opacity": [
- "stops",
- {"z": 9.5, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "road_motorway": {
- "color": "motorway",
- "width": "motorway_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "road_main_casing": {
- "color": "case",
- "width": "main_casing_width",
- "opacity": ["stops",
- {"z": 9, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "road_main": {
- "color": "main",
- "width": "main_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "road_motorway_link_casing": {
- "color": "case",
- "width": "motorway_link_casing_width"
- },
- "road_motorway_link": {
- "color": "motorway",
- "width": "motorway_link_width"
- },
- "road_street_casing": {
- "color": "#d9d5c6",
- "width": "street_casing_width",
- "opacity": "street_casing_opacity"
- },
- "road_street": {
- "color": "street",
- "width": "street_width"
- },
- "road_service_casing": {
- "color": "#000",
- "opacity": 0.04,
- "width": "service_casing_width"
- },
- "road_service": {
- "color": "street",
- "width": 2
- },
- "road_path_case": {
- "color": "#ffd",
- "opacity": 0.4,
- "width": [
- "stops",
- {"z": 15, "val": 3},
- {"z": 16, "val": 4}
- ]
- },
- "road_path_footway": {
- "color": "#bba",
- "dasharray": [
- 10,
- 4
- ],
- "width": "path_width"
- },
- "road_path_path": {
- "color": "#987",
- "dasharray": [
- 10,
- 4
- ],
- "opacity": 0.8,
- "width": [
- "stops",
- {"z": 14, "val": 0.8},
- {"z": 15, "val": 0.9},
- {"z": 16, "val": 1.2}
- ]
- },
- "road_path_cycleway": {
- "color": "#488",
- "dasharray": [
- 10,
- 4
- ],
- "width": "path_width"
- },
- "road_path_mtb": {
- "color": "#488",
- "dasharray": [
- 12,
- 4
- ],
- "width": "path_width"
- },
- "road_path_piste": {
- "color": "#87b",
- "dasharray": [
- 8,
- 4
- ],
- "width": "path_width"
- },
- "road_path_steps": {
- "color": "#bba",
- "dasharray": [
- 10,
- 4
- ],
- "width": 4
- },
- "road_major_rail": {
- "color": "#c8c4c0",
- "width": 0.8
- },
- "road_major_rail_hatching": {
- "color": "#c8c4c0",
- "dasharray": [
- 2,
- 31
- ],
- "width": 5
- },
- "bridge_motorway_casing": {
- "color": "case",
- "width": "motorway_casing_width",
- "opacity": [
- "stops",
- {"z": 9.5, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "bridge_motorway": {
- "color": "motorway",
- "width": "motorway_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "bridge_main_casing": {
- "color": "case",
- "width": "main_casing_width",
- "opacity": ["stops",
- {"z": 9, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "bridge_main": {
- "color": "main",
- "width": "main_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "bridge_motorway_link_casing": {
- "color": "case",
- "width": "motorway_link_casing_width"
- },
- "bridge_motorway_link": {
- "color": "motorway",
- "width": "motorway_link_width"
- },
- "bridge_street_casing": {
- "color": "#d9d5c6",
- "width": "street_casing_width",
- "opacity": "street_casing_opacity"
- },
- "bridge_street": {
- "color": "street",
- "width": "street_width"
- },
- "bridge_service_casing": {
- "color": "#000",
- "opacity": 0.04,
- "width": "service_casing_width"
- },
- "bridge_service": {
- "color": "street",
- "width": 2
- },
- "bridge_aerialway_casing": {
- "color": "white",
- "opacity": 0.5,
- "width": "aerialway_casing_width"
- },
- "bridge_aerialway": {
- "color": "#876",
- "opacity": 0.5,
- "width": "aerialway_width"
- },
- "country_label": {
- "color": "country_text",
- "stroke": "rgba(255,255,255,0.5)",
- "strokeWidth": 0.5,
- "size": "country_label_size"
- },
- "country_label_line": {
- "color": "country_text",
- "width": 0.5,
- "opacity": 0.5
- },
- "marine_label_line_1": {
- "color": "marine_text",
- "size": ["stops",
- {"z": 3, "val": 20},
- {"z": 4, "val": 25},
- {"z": 5, "val": 30},
- {"z": 22, "val": 30}
- ],
- "stroke": "water"
- },
- "marine_label_line_2": {
- "color": "marine_text",
- "size": ["stops",
- {"z": 3, "val": 13},
- {"z": 4, "val": 14},
- {"z": 5, "val": 20},
- {"z": 6, "val": 24},
- {"z": 22, "val": 24}
- ],
- "stroke": "water"
- },
- "marine_label_line_3": {
- "color": "marine_text",
- "size": ["stops",
- {"z": 3, "val": 12},
- {"z": 4, "val": 13},
- {"z": 5, "val": 15},
- {"z": 6, "val": 18},
- {"z": 22, "val": 18}
- ],
- "stroke": "water"
- },
- "marine_label_line_other": {
- "color": "marine_text",
- "size": ["stops",
- {"z": 4, "val": 12},
- {"z": 5, "val": 14},
- {"z": 6, "val": 16},
- {"z": 22, "val": 16}
- ],
- "stroke": "water"
- },
- "marine_label_point_1": {
- "color": "marine_text",
- "size": ["stops",
- {"z": 3, "val": 20},
- {"z": 4, "val": 25},
- {"z": 5, "val": 30},
- {"z": 22, "val": 30}
- ],
- "stroke": "water"
- },
- "marine_label_point_2": {
- "color": "marine_text",
- "size": ["stops",
- {"z": 3, "val": 13},
- {"z": 4, "val": 14},
- {"z": 5, "val": 20},
- {"z": 6, "val": 24},
- {"z": 22, "val": 24}
- ],
- "stroke": "water"
- },
- "marine_label_point_3": {
- "color": "marine_text",
- "size": ["stops",
- {"z": 3, "val": 12},
- {"z": 4, "val": 13},
- {"z": 5, "val": 15},
- {"z": 6, "val": 18},
- {"z": 22, "val": 18}
- ],
- "stroke": "water"
- },
- "marine_label_point_other": {
- "color": "marine_text",
- "size": ["stops",
- {"z": 4, "val": 12},
- {"z": 5, "val": 14},
- {"z": 6, "val": 16},
- {"z": 22, "val": 16}
- ],
- "stroke": "water"
- },
- "state_label": {
- "color": "#333",
- "strokeWidth": 0.4,
- "strokeBlur": 1,
- "stroke": "rgba(244,239,225,0.8)",
- "size": [
- "stops",
- {"z": 3.99, "val": 0},
- {"z": 4, "val": 10},
- {"z": 9.99, "val": 16},
- {"z": 10, "val": 0}
- ]
- },
- "place_label_city": {
- "color": "#444",
- "strokeWidth": 0.4,
- "stroke": "text_stroke",
- "size": [
- "stops",
- {"z": 3.99, "val": 0},
- {"z": 4, "val": 10},
- {"z": 7, "val": 14},
- {"z": 14.99, "val": 20},
- {"z": 15, "val": 0}
- ]
- },
- "place_label_town": {
- "color": "#716656",
- "strokeWidth": 0.3,
- "strokeBlur": 2,
- "stroke": "text_stroke",
- "size": [
- "stops",
- {"z": 9, "val": 10},
- {"z": 12, "val": 13},
- {"z": 14, "val": 17},
- {"z": 16, "val": 22}
- ]
- },
- "place_label_village": {
- "color": "#635644",
- "strokeWidth": 0.3,
- "strokeBlur": 2,
- "stroke": "text_stroke",
- "size": [
- "stops",
- {"z": 9, "val": 8},
- {"z": 12, "val": 10},
- {"z": 14, "val": 14},
- {"z": 16, "val": 16},
- {"z": 17, "val": 20}
- ]
- },
- "place_label_other": {
- "color": "#7d6c55",
- "stroke": "text_stroke",
- "size": [
- "stops",
- {"z": 13, "val": 11},
- {"z": 14, "val": 12},
- {"z": 16, "val": 14},
- {"z": 18, "val": 18}
- ]
- },
- "road_label_1": {
- "color": "#585042",
- "stroke": "land",
- "strokeWidth": 0.6,
- "strokeBlur": 2,
- "size": "road_label_1_size"
- },
- "road_label_2": {
- "color": "#585042",
- "stroke": "land",
- "strokeWidth": 0.6,
- "strokeBlur": 2,
- "size": "road_label_2_size"
- },
- "road_label_3": {
- "color": "#585042",
- "stroke": "land",
- "strokeWidth": 0.6,
- "strokeBlur": 2,
- "size": "road_label_3_size"
- },
- "water_label": {
- "color": "water_dark",
- "stroke": "rgba(255,255,255,0.75)"
- },
- "waterway_label": {
- "color": "water_dark",
- "strokeWidth": 0.4,
- "strokeBlur": 2,
- "stroke": "text_stroke"
- },
- "poi": {
- "antialias": false
- },
- "poi_3": {
- "antialias": false,
- "opacity": [
- "stops",
- {"z": 17.5, "val": 0},
- {"z": 17.75, "val": 1}
- ]
- },
- "poi_4_4": {
- "antialias": false,
- "opacity": [
- "stops",
- {"z": 18, "val": 0},
- {"z": 18.25, "val": 1}
- ]
- },
- "poi_4_16": {
- "antialias": false,
- "opacity": [
- "stops",
- {"z": 18.5, "val": 0},
- {"z": 18.75, "val": 1}
- ]
- },
- "poi_4_all": {
- "antialias": false,
- "opacity": [
- "stops",
- {"z": 18.75, "val": 0},
- {"z": 19, "val": 1}
- ]
- },
- "poi_label_1-2": {
- "color": "#444",
- "size": "poi_label_1-2_size",
- "stroke": "land",
- "strokeWidth": 0.3,
- "strokeBlur": 1
- },
- "poi_label_3": {
- "color": "#444",
- "size": "poi_label_3_size",
- "stroke": "land",
- "strokeWidth": 0.3,
- "strokeBlur": 1,
- "opacity": [
- "stops",
- {"z": 17.5, "val": 0},
- {"z": 17.75, "val": 1}
- ]
- },
- "poi_label_4_4": {
- "color": "#444",
- "size": 10,
- "opacity": [
- "stops",
- {"z": 18, "val": 0},
- {"z": 17.25, "val": 1}
- ],
- "stroke": "land",
- "strokeWidth": 0.3,
- "strokeBlur": 1
- },
- "poi_label_4_16": {
- "color": "#444",
- "size": 10,
- "opacity": [
- "stops",
- {"z": 18.25, "val": 0},
- {"z": 18.75, "val": 1}
- ],
- "stroke": "land",
- "strokeWidth": 0.3,
- "strokeBlur": 1
- },
- "poi_label_4_all": {
- "color": "#444",
- "size": 10,
- "opacity": [
- "stops",
- {"z": 18.75, "val": 0},
- {"z": 19, "val": 1}
- ],
- "stroke": "land",
- "strokeWidth": 0.3,
- "strokeBlur": 1
- },
- "poi_aerodrome": {
- "opacity": ["stops",
- {"z": 13, "val": 0},
- {"z": 13.25, "val": 1}
- ],
- "antialias": false
- }
- }
+ "@motorway_width": {
+ "fn": "stops",
+ "stops": [[5, 0], [6, 0.5], [8, 0.8], [10, 1], [11, 1.2], [12, 2], [13, 3], [14, 4], [15, 6], [16, 9], [17, 12], [18, 14]]
+ },
+ "@motorway_casing_width": {
+ "fn": "stops",
+ "stops": [[7.5, 0.6], [8, 0.8], [10, 2.8], [11, 3], [12, 4], [13, 5], [14, 6.5], [15, 9], [16, 12], [17, 15], [18, 17]]
+ },
+ "@motorway_link_width": {
+ "fn": "stops",
+ "stops": [[12, 1.2], [14, 2], [16, 3], [18, 4]]
+ },
+ "@motorway_link_casing_width": {
+ "fn": "stops",
+ "stops": [[12, 2.8], [14, 3.5], [16, 5], [18, 6]]
+ },
+ "@main_width": {
+ "fn": "stops",
+ "stops": [[5, 1], [12, 1], [13, 1.5], [14, 2], [15, 3], [16, 6], [17, 10], [18, 12]]
+ },
+ "@main_casing_width": {
+ "fn": "stops",
+ "stops": [[9, 2.9], [12, 2.9], [13, 3.5], [14, 4], [15, 5.5], [16, 9], [17, 12], [18, 14]]
+ },
+ "@street_width": {
+ "fn": "stops",
+ "stops": [[14.5, 0], [15, 1.5], [16, 3], [17, 8]]
+ },
+ "@street_casing_width": {
+ "fn": "stops",
+ "stops": [[13, 0.4], [14, 1], [15, 2.5], [16, 4], [17, 10]]
+ },
+ "@street_casing_opacity": {
+ "fn": "stops",
+ "stops": [[14, 0], [14.5, 1]]
+ },
+ "@service_casing_width": {
+ "fn": "stops",
+ "stops": [[14, 0.5], [15, 3], [16, 3.5], [17, 4], [18, 5], [19, 6]]
+ },
+ "@runway_width": {
+ "fn": "stops",
+ "stops": [[10, 1], [11, 2], [12, 3], [13, 5], [14, 7], [15, 11], [16, 15], [17, 19], [18, 23]]
+ },
+ "@taxiway_width": {
+ "fn": "stops",
+ "stops": [[10, 0.2], [12, 0.2], [13, 1], [14, 1.5], [15, 2], [16, 3], [17, 4], [18, 5]]
+ },
+ "@aerialway_width": {
+ "fn": "stops",
+ "stops": [[13.5, 0.8], [14, 1.4], [15, 1.6], [16, 2], [17, 2.4], [18, 3]]
+ },
+ "@aerialway_casing_width": {
+ "fn": "stops",
+ "stops": [[13.5, 2], [14, 2.5], [15, 3], [16, 3.5], [17, 4], [22, 5]]
+ },
+ "@path_width": {
+ "fn": "stops",
+ "stops": [[14, 1.2], [15, 1.5], [16, 1.8]]
+ },
+ "@admin_l2_width": {
+ "fn": "stops",
+ "stops": [[2, 0.5], [3, 0.7], [4, 0.7], [5, 0.8], [6, 1], [8, 2], [10, 3]]
+ },
+ "@admin_l3_width": {
+ "fn": "stops",
+ "stops": [[6, 0.6], [8, 1], [12, 2]]
+ },
+ "@road_label_1_size": {
+ "fn": "stops",
+ "stops": [[13, 11], [14, 12], [15, 13], [16, 14], [17, 16], [18, 18]]
+ },
+ "@road_label_2_size": {
+ "fn": "stops",
+ "stops": [[13, 11], [14, 12], [16, 14], [18, 16]]
+ },
+ "@road_label_3_size": {
+ "fn": "stops",
+ "stops": [[15, 10], [16, 12], [18, 14]]
+ },
+ "@fence_width": {
+ "fn": "stops",
+ "stops": [[17, 0.6], [19, 1]]
+ },
+ "@hedge_width": {
+ "fn": "stops",
+ "stops": [[16, 0.6], [17, 1.2], [19, 1.6]]
+ },
+ "@barrier_line_land_width": {
+ "fn": "stops",
+ "stops": [[14, 0.4], [15, 0.75], [16, 1.5], [17, 3], [18, 6], [19, 12], [20, 24], [21, 48]]
+ },
+ "@country_label_size": {
+ "fn": "stops",
+ "stops": [[1, 14], [12, 24]]
+ },
+ "@poi_label_1-2_size": {
+ "fn": "stops",
+ "stops": [[15, 10], [16, 11], [17, 12]]
+ },
+ "@poi_label_3_size": {
+ "fn": "stops",
+ "stops": [[16, 10], [17, 11]]
+ },
+ "@hillshade_rasterize": {
+ "enabled": {
+ "fn": "stops",
+ "stops": [[11, false], [12, true]]
},
- {
- "name": "night",
- "layers": {
- "background": {
- "color": "land_night"
- },
- "admin_maritime_cover": {
- "color": "water_night",
- "width": 5
- },
- "admin_maritime": {
- "color": "#0a1347",
- "width": [
- "stops",
- {"z": 6, "val": 1},
- {"z": 8, "val": 2},
- {"z": 12, "val": 3}
- ]
- },
- "admin_l2": {
- "color": "admin_night",
- "width": "admin_l2_width"
- },
- "admin_l3": {
- "color": "admin_night",
- "dasharray": [
- 60,
- 20
- ],
- "opacity": [
- "stops",
- {"z": 4, "val": 0},
- {"z": 6, "val": 1}
- ],
- "width": "admin_l3_width"
- },
- "waterway_river_canal": {
- "color": "rgb(10,20,71)",
- "width": "river_canal_width"
- },
- "waterway_stream": {
- "color": "rgb(10,20,71)",
- "width": "stream_width"
- },
- "barrier_line_gate": {
- "width": 2.5,
- "color": "#59596f"
- },
- "barrier_line_fence": {
- "color": "#014b61",
- "width": "fence_width"
- },
- "barrier_line_hedge": {
- "color": "#2e7a57",
- "width": "hedge_width"
- },
- "barrier_line_land": {
- "color": "land_night",
- "width": "barrier_line_land_width"
- },
- "barrier_line_land_fill": {
- "color": "land_night"
- },
- "barrier_line_cliff": {
- "color": "#63574b",
- "width": 4
- },
- "landcover_wood": {
- "color": "wood_night",
- "opacity": [
- "stops",
- {"z": 13, "val": 1},
- {"z": 14, "val": 0.8},
- {"z": 17, "val": 0.2}
- ]
- },
- "landcover_scrub": {
- "color": "scrub_night",
- "opacity": [
- "stops",
- {"z": 13, "val": 1},
- {"z": 14, "val": 0.8},
- {"z": 17, "val": 0.2}
- ]
- },
- "landcover_grass": {
- "color": "grass_night",
- "opacity": [
- "stops",
- {"z": 13, "val": 1},
- {"z": 14, "val": 0.8},
- {"z": 17, "val": 0.2}
- ]
- },
- "landcover_crop": {
- "color": "crop_night"
- },
- "landcover_snow": {
- "color": "snow_night"
- },
- "landuse_wood": {
- "color": "wood_night",
- "opacity": 0.8
- },
- "landuse_scrub": {
- "color": "scrub_night",
- "opacity": 0.8
- },
- "landuse_grass": {
- "color": "grass_night",
- "opacity": 0.8
- },
- "landuse_crop": {
- "color": "crop_night",
- "opacity": 0.8
- },
- "landuse_snow": {
- "color": "snow_night",
- "opacity": 0.8
- },
- "landuse_rock": {
- "color": "rock_night",
- "opacity": 0.8
- },
- "landuse_sand": {
- "color": "sand_night",
- "opacity": 0.8
- },
- "landuse_park": {
- "color": "park_night"
- },
- "landuse_cemetery": {
- "color": "cemetery_night"
- },
- "landuse_hospital": {
- "color": "hospital_night"
- },
- "landuse_school": {
- "color": "school_night"
- },
- "landuse_pitch": {
- "color": "pitch_night",
- "stroke": "pitch"
- },
- "landuse_industrial": {
- "color": "builtup_night"
- },
- "overlay_wetland": {
- "color": "rgba(210,225,225,0.2)",
- "image": "wetland_noveg_64"
- },
- "overlay_breakwater_pier": {
- "color": "land_night"
- },
- "hillshade_full_shadow": {
- "color": "#103",
- "antialias": false,
- "prerender": "hillshade_prerender",
- "prerender-size": "hillshade_prerender_size",
- "prerender-blur": 1,
- "opacity": [
- "stops",
- {"z": 16, "val": 0.3},
- {"z": 17, "val": 0.2},
- {"z": 18, "val": 0.1},
- {"z": 19, "val": 0.05}
- ]
- },
- "hillshade_medium_shadow": {
- "color": "#206",
- "antialias": false,
- "prerender": "hillshade_prerender",
- "prerender-size": "hillshade_prerender_size",
- "prerender-blur": 1,
- "opacity": [
- "stops",
- {"z": 16, "val": 0.3},
- {"z": 17, "val": 0.2},
- {"z": 18, "val": 0.1},
- {"z": 19, "val": 0.05}
- ]
- },
- "hillshade_full_highlight": {
- "color": "#fdfdad",
- "antialias": false,
- "prerender": "hillshade_prerender",
- "prerender-size": "hillshade_prerender_size",
- "prerender-blur": 1,
- "opacity": [
- "stops",
- {"z": 14, "val": 0.4},
- {"z": 15, "val": 0.3},
- {"z": 17, "val": 0.2},
- {"z": 18, "val": 0.1},
- {"z": 19, "val": 0.05}
- ]
- },
- "hillshade_medium_highlight": {
- "color": "#ffe1b7",
- "antialias": false,
- "prerender": "hillshade_prerender",
- "prerender-size": "hillshade_prerender_size",
- "prerender-blur": 1,
- "opacity": [
- "stops",
- {"z": 15, "val": 0.3},
- {"z": 17, "val": 0.2},
- {"z": 18, "val": 0.15},
- {"z": 19, "val": 0.05}
- ]
- },
- "contour_line_loud": {
- "color": "contour_night",
- "width": 0.9,
- "opacity": [
- "stops",
- {"z": 12, "val": 0.1},
- {"z": 13, "val": 0.2}
- ]
- },
- "contour_line_regular": {
- "color": "contour_night",
- "width": 0.5,
- "opacity": [
- "stops",
- {"z": 12, "val": 0.1},
- {"z": 13, "val": 0.4}
- ]
- },
- "contour_label": {
- "color": "contour_night",
- "stroke": "land_night",
- "strokeWidth": 0.3,
- "strokeBlur": 3,
- "size": 10
- },
- "water": {
- "color": "water_night",
- "stroke": "water_dark_night"
- },
- "aeroway_fill": {
- "color": "#367"
- },
- "aeroway_runway": {
- "color": "#367",
- "width": "runway_width"
- },
- "aeroway_taxiway": {
- "color": "#367",
- "width": "taxiway_width"
- },
- "building": {
- "color": "#027797"
- },
- "building_wall": {
- "color": "#027797",
- "stroke": "#026688",
- "opacity": [
- "stops",
- {"z": 16.5, "val": 0},
- {"z": 17, "val": 0.7}
- ]
- },
- "building_shadow": {
- "color": "#026688",
- "stroke": "#026688",
- "translate": [
- 1,
- 1
- ],
- "opacity": [
- "stops",
- {"z": 16.5, "val": 0},
- {"z": 17, "val": 1}
- ]
- },
- "tunnel_motorway_casing": {
- "color": "case_night",
- "dasharray": [
- 6,
- 6
- ],
- "width": "motorway_casing_width",
- "opacity": [
- "stops",
- {"z": 9.5, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "tunnel_motorway": {
- "color": "#78b0c1",
- "width": "motorway_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "tunnel_main_casing": {
- "color": "case_night",
- "dasharray": [
- 6,
- 6
- ],
- "width": "main_casing_width",
- "opacity": ["stops",
- {"z": 9, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "tunnel_main": {
- "color": "#78b0c1",
- "width": "main_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "tunnel_motorway_link_casing": {
- "color": "case_night",
- "dasharray": [
- 6,
- 6
- ],
- "width": "motorway_link_casing_width"
- },
- "tunnel_motorway_link": {
- "color": "#78b0c1",
- "width": "motorway_link_width"
- },
- "tunnel_street_casing": {
- "color": "street_case_night",
- "width": "street_casing_width",
- "opacity": "street_casing_opacity"
- },
- "tunnel_street": {
- "color": "street_night",
- "width": "street_width"
- },
- "tunnel_service_casing": {
- "color": "#000",
- "opacity": 0.04,
- "dasharray": [
- 6,
- 6
- ],
- "width": "service_casing_width"
- },
- "tunnel_service": {
- "color": "#017ca0",
- "width": 2
- },
- "road_motorway_casing": {
- "color": "case_night",
- "width": "motorway_casing_width",
- "opacity": [
- "stops",
- {"z": 9.5, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "road_motorway": {
- "color": "motorway_night",
- "width": "motorway_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "road_main_casing": {
- "color": "case_night",
- "width": "main_casing_width",
- "opacity": ["stops",
- {"z": 9, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "road_main": {
- "color": "main_night",
- "width": "main_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "road_motorway_link_casing": {
- "color": "case_night",
- "width": "motorway_link_casing_width"
- },
- "road_motorway_link": {
- "color": "motorway_night",
- "width": "motorway_link_width"
- },
- "road_street_casing": {
- "color": "street_case_night",
- "width": "street_casing_width",
- "opacity": "street_casing_opacity"
- },
- "road_street": {
- "color": "street_night",
- "width": "street_width"
- },
- "road_service_casing": {
- "color": "#000",
- "opacity": 0.04,
- "width": "service_casing_width"
- },
- "road_service": {
- "color": "street_night",
- "width": 2
- },
- "road_path_case": {
- "color": "land_night",
- "opacity": 0.2
- },
- "road_path_footway": {
- "color": "#fff",
- "dasharray": [
- 10,
- 4
- ],
- "width": "path_width"
- },
- "road_path_path": {
- "color": "#fff",
- "dasharray": [
- 10,
- 4
- ],
- "opacity": 0.8,
- "width": [
- "stops",
- {"z": 14, "val": 0.8},
- {"z": 15, "val": 0.9},
- {"z": 16, "val": 1.2}
- ]
- },
- "road_path_cycleway": {
- "color": "#94e6ff",
- "dasharray": [
- 10,
- 4
- ],
- "width": "path_width"
- },
- "road_path_mtb": {
- "color": "#94e6ff",
- "dasharray": [
- 12,
- 4
- ],
- "width": "path_width"
- },
- "road_path_piste": {
- "color": "#715dae",
- "dasharray": [
- 8,
- 4
- ],
- "width": "path_width"
- },
- "road_path_steps": {
- "color": "#016684",
- "dasharray": [
- 10,
- 4
- ],
- "opacity": 0.3,
- "width": 6
- },
- "road_major_rail": {
- "color": "#c8c4c0",
- "width": 0.8
- },
- "road_major_rail_hatching": {
- "color": "#c8c4c0",
- "dasharray": [
- 2,
- 31
- ],
- "width": 5
- },
- "bridge_motorway_casing": {
- "color": "case_night",
- "width": "motorway_casing_width",
- "opacity": [
- "stops",
- {"z": 9.5, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "bridge_motorway": {
- "color": "motorway_night",
- "width": "motorway_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "bridge_main_casing": {
- "color": "case_night",
- "width": "main_casing_width",
- "opacity": ["stops",
- {"z": 9, "val": 0},
- {"z": 10, "val": 1}
- ]
- },
- "bridge_main": {
- "color": "main_night",
- "width": "main_width",
- "opacity": [
- "stops",
- {"z": 6.5, "val": 0},
- {"z": 7, "val": 1}
- ]
- },
- "bridge_motorway_link_casing": {
- "color": "case_night",
- "width": "motorway_link_casing_width"
- },
- "bridge_motorway_link": {
- "color": "motorway_night",
- "width": "motorway_link_width"
- },
- "bridge_street_casing": {
- "color": "street_case_night",
- "width": "street_casing_width",
- "opacity": "street_casing_opacity"
- },
- "bridge_street": {
- "color": "street_night",
- "width": "street_width"
- },
- "bridge_service_casing": {
- "color": "#000",
- "opacity": 0.04,
- "width": "service_casing_width"
- },
- "bridge_service": {
- "color": "street_night",
- "width": 2
- },
- "bridge_aerialway_casing": {
- "color": "white",
- "opacity": 0.5,
- "width": "aerialway_casing_width"
- },
- "bridge_aerialway": {
- "color": "#876",
- "opacity": 0.5,
- "width": "aerialway_width"
- },
- "country_label": {
- "color": "text_night",
- "stroke": "text2_stroke_night",
- "strokeWidth": 0.4,
- "strokeBlur": 2,
- "size": "country_label_size"
- },
- "country_label_line": {
- "color": "text_night",
- "width": 0.5,
- "opacity": 0.5
- },
- "marine_label_line_1": {
- "color": "water_dark_night",
- "size": ["stops",
- {"z": 3, "val": 20},
- {"z": 4, "val": 25},
- {"z": 5, "val": 30},
- {"z": 22, "val": 30}
- ],
- "stroke": "water_night"
- },
- "marine_label_line_2": {
- "color": "water_dark_night",
- "size": ["stops",
- {"z": 3, "val": 13},
- {"z": 4, "val": 14},
- {"z": 5, "val": 20},
- {"z": 6, "val": 24},
- {"z": 22, "val": 24}
- ],
- "stroke": "water_night"
- },
- "marine_label_line_3": {
- "color": "water_dark_night",
- "size": ["stops",
- {"z": 3, "val": 12},
- {"z": 4, "val": 13},
- {"z": 5, "val": 15},
- {"z": 6, "val": 18},
- {"z": 22, "val": 18}
- ],
- "stroke": "water_night"
- },
- "marine_label_line_other": {
- "color": "water_dark_night",
- "size": ["stops",
- {"z": 4, "val": 12},
- {"z": 5, "val": 14},
- {"z": 6, "val": 16},
- {"z": 22, "val": 16}
- ],
- "stroke": "water_night"
- },
- "marine_label_point_1": {
- "color": "water_dark_night",
- "size": ["stops",
- {"z": 3, "val": 20},
- {"z": 4, "val": 25},
- {"z": 5, "val": 30},
- {"z": 22, "val": 30}
- ],
- "stroke": "water_night"
- },
- "marine_label_point_2": {
- "color": "water_dark_night",
- "size": ["stops",
- {"z": 3, "val": 13},
- {"z": 4, "val": 14},
- {"z": 5, "val": 20},
- {"z": 6, "val": 24},
- {"z": 22, "val": 24}
- ],
- "stroke": "water_night"
- },
- "marine_label_point_3": {
- "color": "water_dark_night",
- "size": ["stops",
- {"z": 3, "val": 12},
- {"z": 4, "val": 13},
- {"z": 5, "val": 15},
- {"z": 6, "val": 18},
- {"z": 22, "val": 18}
- ],
- "stroke": "water_night"
- },
- "marine_label_point_other": {
- "color": "water_dark_night",
- "size": ["stops",
- {"z": 4, "val": 12},
- {"z": 5, "val": 14},
- {"z": 6, "val": 16},
- {"z": 22, "val": 16}
- ],
- "stroke": "water_night"
- },
- "state_label": {
- "color": "#fff",
- "strokeWidth": 0.4,
- "strokeBlur": 1,
- "stroke": "land_night",
- "size": [
- "stops",
- {"z": 3.99, "val": 0},
- {"z": 4, "val": 10},
- {"z": 9.99, "val": 16},
- {"z": 10, "val": 0}
- ]
- },
- "place_label_city": {
- "color": "#fff",
- "strokeWidth": 0.4,
- "stroke": "text2_stroke_night",
- "size": [
- "stops",
- {"z": 3.99, "val": 0},
- {"z": 4, "val": 10},
- {"z": 7, "val": 14},
- {"z": 14.99, "val": 20},
- {"z": 15, "val": 0}
- ]
- },
- "place_label_town": {
- "color": "text_night",
- "strokeWidth": 0.3,
- "strokeBlur": 2,
- "stroke": "text2_stroke_night",
- "size": [
- "stops",
- {"z": 9, "val": 10},
- {"z": 12, "val": 13},
- {"z": 14, "val": 17},
- {"z": 16, "val": 22}
- ]
- },
- "place_label_village": {
- "color": "text_night",
- "strokeWidth": 0.3,
- "strokeBlur": 2,
- "stroke": "text2_stroke_night",
- "size": [
- "stops",
- {"z": 9, "val": 8},
- {"z": 12, "val": 10},
- {"z": 14, "val": 14},
- {"z": 16, "val": 16},
- {"z": 17, "val": 20}
- ]
- },
- "place_label_other": {
- "color": "text_night",
- "stroke": "text2_stroke_night",
- "strokeWidth": 0.3,
- "strokeBlur": 2,
- "size": [
- "stops",
- {"z": 13, "val": 11},
- {"z": 14, "val": 12},
- {"z": 16, "val": 14},
- {"z": 18, "val": 18}
- ]
- },
- "road_label_1": {
- "color": "text_night",
- "stroke": "text2_stroke_night",
- "strokeWidth": 0.5,
- "strokeBlur": 3,
- "size": "road_label_1_size"
- },
- "road_label_2": {
- "color": "text_night",
- "stroke": "text2_stroke_night",
- "strokeWidth": 0.5,
- "strokeBlur": 3,
- "size": "road_label_2_size"
- },
- "road_label_3": {
- "color": "text_night",
- "stroke": "text2_stroke_night",
- "strokeWidth": 0.5,
- "strokeBlur": 3,
- "size": "road_label_3_size"
- },
- "water_label": {
- "color": "text_water_night",
- "stroke": "water_night"
- },
- "waterway_label": {
- "color": "text_water_night",
- "stroke": "water_night"
- },
- "poi": {
- "color": "white",
- "antialias": false
- },
- "poi_3": {
- "antialias": false,
- "opacity": [
- "stops",
- {"z": 17.5, "val": 0},
- {"z": 17.75, "val": 1}
- ]
- },
- "poi_4_4": {
- "antialias": false,
- "opacity": [
- "stops",
- {"z": 18, "val": 0},
- {"z": 17.25, "val": 1}
- ]
- },
- "poi_4_16": {
- "antialias": false,
- "opacity": [
- "stops",
- {"z": 18.5, "val": 0},
- {"z": 18.75, "val": 1}
- ]
- },
- "poi_4_all": {
- "antialias": false,
- "opacity": [
- "stops",
- {"z": 18.75, "val": 0},
- {"z": 19, "val": 1}
- ]
- },
- "poi_label_1-2": {
- "color": "#fff",
- "size": "poi_label_1-2_size",
- "stroke": "text2_stroke_night",
- "strokeWidth": 0.3,
- "strokeBlur": 1
- },
- "poi_label_3": {
- "color": "#fff",
- "size": "poi_label_3_size",
- "stroke": "text2_stroke_night",
- "strokeWidth": 0.3,
- "strokeBlur": 1,
- "opacity": [
- "stops",
- {"z": 17.5, "val": 0},
- {"z": 17.75, "val": 1}
- ]
- },
- "poi_label_4_4": {
- "color": "#fff",
- "size": 10,
- "opacity": [
- "stops",
- {"z": 18, "val": 0},
- {"z": 18.25, "val": 1}
- ],
- "stroke": "text2_stroke_night",
- "strokeWidth": 0.3,
- "strokeBlur": 1
- },
- "poi_label_4_16": {
- "color": "#fff",
- "size": 10,
- "opacity": [
- "stops",
- {"z": 18.5, "val": 0},
- {"z": 18.75, "val": 1}
- ],
- "stroke": "text2_stroke_night",
- "strokeWidth": 0.3,
- "strokeBlur": 1
- },
- "poi_label_4_all": {
- "color": "#fff",
- "size": 10,
- "opacity": [
- "stops",
- {"z": 18.75, "val": 0},
- {"z": 19, "val": 1}
- ],
- "stroke": "text2_stroke_night",
- "strokeWidth": 0.3,
- "strokeBlur": 1
- },
- "poi_aerodrome": {
- "opacity": ["stops",
- {"z": 13, "val": 0},
- {"z": 13.25, "val": 1}
- ],
- "antialias": false
- }
- }
- }
- ],
- "sprite": "/img/maki-sprite"
+ "size": {
+ "fn": "stops",
+ "stops": [[11, 1024], [12, 512], [13, 256]]
+ },
+ "blur": 1
+ }
+ },
+ "layers": [{
+ "id": "background",
+ "render": {
+ "type": "background"
+ },
+ "style": {
+ "background-color": "@land"
+ },
+ "style.night": {
+ "background-color": "@land_night"
+ }
+ }, {
+ "id": "landcover_snow",
+ "source": "mapbox",
+ "source-layer": "landcover",
+ "filter": { "class": "snow" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@snow"
+ },
+ "style.night": {
+ "fill-color": "@snow_night"
+ }
+ }, {
+ "id": "landcover_crop",
+ "source": "mapbox",
+ "source-layer": "landcover",
+ "filter": { "class": "crop" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@crop"
+ },
+ "style.night": {
+ "fill-color": "@crop_night"
+ }
+ }, {
+ "id": "landcover_grass",
+ "source": "mapbox",
+ "source-layer": "landcover",
+ "filter": { "class": "grass" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@grass",
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[13, 1], [14, 0.8], [17, 0.2]]
+ }
+ },
+ "style.night": {
+ "fill-color": "@grass_night",
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[13, 1], [14, 0.8], [17, 0.2]]
+ }
+ }
+ }, {
+ "id": "landcover_scrub",
+ "source": "mapbox",
+ "source-layer": "landcover",
+ "filter": { "class": "scrub" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@scrub",
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[13, 1], [14, 0.8], [17, 0.2]]
+ }
+ },
+ "style.night": {
+ "fill-color": "@scrub_night",
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[13, 1], [14, 0.8], [17, 0.2]]
+ }
+ }
+ }, {
+ "id": "landcover_wood",
+ "source": "mapbox",
+ "source-layer": "landcover",
+ "filter": { "class": "wood" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@wood",
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[13, 1], [14, 0.8], [17, 0.2]]
+ }
+ },
+ "style.night": {
+ "fill-color": "@wood_night",
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[13, 1], [14, 0.8], [17, 0.2]]
+ }
+ }
+ }, {
+ "id": "landuse_wood",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "wood" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@wood"
+ },
+ "style.night": {
+ "fill-color": "@wood_night",
+ "fill-opacity": 0.8
+ }
+ }, {
+ "id": "landuse_school",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "school" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@school"
+ },
+ "style.night": {
+ "fill-color": "@school_night"
+ }
+ }, {
+ "id": "landuse_sand",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "sand" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@sand"
+ },
+ "style.night": {
+ "fill-color": "@sand_night",
+ "fill-opacity": 0.8
+ }
+ }, {
+ "id": "landuse_pitch",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "pitch" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "rgba(255,255,255,0.5)",
+ "fill-outline-color": "@pitch"
+ },
+ "style.night": {
+ "fill-color": "@pitch_night",
+ "fill-outline-color": "@pitch"
+ }
+ }, {
+ "id": "landuse_park",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "park" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@park"
+ },
+ "style.night": {
+ "fill-color": "@park_night"
+ }
+ }, {
+ "id": "landuse_industrial",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "industrial" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "rgba(246,250,255,0.5)"
+ },
+ "style.night": {
+ "fill-color": "@builtup_night"
+ }
+ }, {
+ "id": "landuse_scrub",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "scrub" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@scrub"
+ },
+ "style.night": {
+ "fill-color": "@scrub_night",
+ "fill-opacity": 0.8
+ }
+ }, {
+ "id": "landuse_grass",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "grass" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@grass"
+ },
+ "style.night": {
+ "fill-color": "@grass_night",
+ "fill-opacity": 0.8
+ }
+ }, {
+ "id": "landuse_crop",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "crop" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@crop"
+ },
+ "style.night": {
+ "fill-color": "@crop_night",
+ "fill-opacity": 0.8
+ }
+ }, {
+ "id": "landuse_rock",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "rock" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@rock"
+ },
+ "style.night": {
+ "fill-color": "@rock_night",
+ "fill-opacity": 0.8
+ }
+ }, {
+ "id": "landuse_snow",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "snow" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@snow"
+ },
+ "style.night": {
+ "fill-color": "@snow_night",
+ "fill-opacity": 0.8
+ }
+ }, {
+ "id": "landuse_hospital",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "hospital" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@hospital"
+ },
+ "style.night": {
+ "fill-color": "@hospital_night"
+ }
+ }, {
+ "id": "landuse_cemetery",
+ "source": "mapbox",
+ "source-layer": "landuse",
+ "filter": { "class": "cemetery" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@cemetery"
+ },
+ "style.night": {
+ "fill-color": "@cemetery_night"
+ }
+ }, {
+ "id": "overlay_wetland",
+ "source": "mapbox",
+ "source-layer": "landuse_overlay",
+ "filter": { "class": ["wetland", "wetland_noveg"] },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "rgba(210,225,225,0.2)",
+ "fill-image": "wetland_noveg_64"
+ },
+ "style.night": {
+ "fill-color": "rgba(210,225,225,0.2)",
+ "fill-image": "wetland_noveg_64"
+ }
+ }, {
+ "id": "overlay_breakwater_pier",
+ "source": "mapbox",
+ "source-layer": "landuse_overlay",
+ "filter": { "class": ["breakwater", "pier"] },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@land"
+ },
+ "style.night": {
+ "fill-color": "@land_night"
+ }
+ }, {
+ "id": "waterway_river_canal",
+ "source": "mapbox",
+ "source-layer": "waterway",
+ "filter": { "type": ["river", "canal"] },
+ "render": {
+ "type": "line",
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "#87abaf",
+ "line-width": "@river_canal_width"
+ },
+ "style.night": {
+ "line-color": "rgb(10,20,71)",
+ "line-width": "@river_canal_width"
+ }
+ }, {
+ "id": "waterway_stream",
+ "source": "mapbox",
+ "source-layer": "waterway",
+ "filter": { "type": "stream" },
+ "render": {
+ "type": "line",
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "#87abaf",
+ "line-width": "@stream_width"
+ },
+ "style.night": {
+ "line-color": "rgb(10,20,71)",
+ "line-width": "@stream_width"
+ }
+ }, {
+ "id": "building_shadow",
+ "source": "mapbox",
+ "source-layer": "building",
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "#d5d1c6",
+ "fill-translate": [1, 1],
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[16.5, 0], [17, 1]]
+ },
+ "fill-outline-color": "#d5d1c6"
+ },
+ "style.night": {
+ "fill-color": "#026688",
+ "fill-translate": [1, 1],
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[16.5, 0], [17, 1]]
+ },
+ "fill-outline-color": "#026688"
+ }
+ }, {
+ "id": "building",
+ "ref": "building_shadow",
+ "style": {
+ "fill-color": "#ebe7db"
+ },
+ "style.night": {
+ "fill-color": "#027797"
+ }
+ }, {
+ "id": "building_wall",
+ "ref": "building_shadow",
+ "style": {
+ "fill-color": "#ebe7db",
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[16.5, 0], [17, 0.7]]
+ },
+ "fill-outline-color": "#d5d1c6"
+ },
+ "style.night": {
+ "fill-color": "#027797",
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[16.5, 0], [17, 0.7]]
+ },
+ "fill-outline-color": "#026688"
+ }
+ }, {
+ "id": "hillshade_full_highlight",
+ "source": "mapbox",
+ "source-layer": "hillshade",
+ "filter": { "class": "full_highlight" },
+ "render": {
+ "type": "fill"
+ },
+ "rasterize": "@hillshade_rasterize",
+ "style": {
+ "fill-color": "#fffff3",
+ "fill-antialias": false,
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[15, 0.3], [16, 0.3], [17, 0.2], [18, 0.2], [19, 0.1]]
+ }
+ },
+ "style.night": {
+ "fill-color": "#fdfdad",
+ "fill-antialias": false,
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[14, 0.4], [15, 0.3], [17, 0.2], [18, 0.1], [19, 0.05]]
+ }
+ }
+ }, {
+ "id": "hillshade_medium_highlight",
+ "source": "mapbox",
+ "source-layer": "hillshade",
+ "filter": { "class": "medium_highlight" },
+ "render": {
+ "type": "fill"
+ },
+ "rasterize": "@hillshade_rasterize",
+ "style": {
+ "fill-color": "#ffd",
+ "fill-antialias": false,
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[15, 0.3], [16, 0.3], [17, 0.2], [18, 0.2], [19, 0.1]]
+ }
+ },
+ "style.night": {
+ "fill-color": "#ffe1b7",
+ "fill-antialias": false,
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[15, 0.3], [17, 0.2], [18, 0.15], [19, 0.05]]
+ }
+ }
+ }, {
+ "id": "hillshade_medium_shadow",
+ "source": "mapbox",
+ "source-layer": "hillshade",
+ "filter": { "class": "medium_shadow" },
+ "render": {
+ "type": "fill"
+ },
+ "rasterize": "@hillshade_rasterize",
+ "style": {
+ "fill-color": "#206",
+ "fill-antialias": false,
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[15, 0.08], [16, 0.075], [17, 0.05], [18, 0.05], [19, 0.025]]
+ }
+ },
+ "style.night": {
+ "fill-color": "#206",
+ "fill-antialias": false,
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[16, 0.3], [17, 0.2], [18, 0.1], [19, 0.05]]
+ }
+ }
+ }, {
+ "id": "hillshade_full_shadow",
+ "source": "mapbox",
+ "source-layer": "hillshade",
+ "filter": { "class": "full_shadow" },
+ "render": {
+ "type": "fill"
+ },
+ "rasterize": "@hillshade_rasterize",
+ "style": {
+ "fill-color": "#103",
+ "fill-antialias": false,
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[15, 0.08], [16, 0.075], [17, 0.05], [18, 0.05], [19, 0.025]]
+ }
+ },
+ "style.night": {
+ "fill-color": "#103",
+ "fill-antialias": false,
+ "fill-opacity": {
+ "fn": "stops",
+ "stops": [[16, 0.3], [17, 0.2], [18, 0.1], [19, 0.05]]
+ }
+ }
+ }, {
+ "id": "contour_line_loud",
+ "source": "mapbox",
+ "source-layer": "contour",
+ "filter": { "index": 5 },
+ "render": {
+ "type": "line",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "#008",
+ "line-width": 0.9,
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[12, 0.05], [13, 0.11]]
+ }
+ },
+ "style.night": {
+ "line-color": "@contour_night",
+ "line-width": 0.9,
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[12, 0.1], [13, 0.2]]
+ }
+ }
+ }, {
+ "id": "contour_line_regular",
+ "source": "mapbox",
+ "source-layer": "contour",
+ "render": {
+ "type": "line",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "#008",
+ "line-width": 0.5,
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[12, 0.05], [13, 0.11]]
+ }
+ },
+ "style.night": {
+ "line-color": "@contour_night",
+ "line-width": 0.5,
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[12, 0.1], [13, 0.4]]
+ }
+ }
+ }, {
+ "id": "barrier_line_gate",
+ "source": "mapbox",
+ "source-layer": "barrier_line",
+ "filter": { "class": "gate" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-width": 2.5,
+ "line-color": "#aab"
+ },
+ "style.night": {
+ "line-width": 2.5,
+ "line-color": "#59596f"
+ }
+ }, {
+ "id": "barrier_line_fence",
+ "source": "mapbox",
+ "source-layer": "barrier_line",
+ "filter": { "class": "fence" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#aeada3",
+ "line-width": "@fence_width"
+ },
+ "style.night": {
+ "line-color": "#014b61",
+ "line-width": "@fence_width"
+ }
+ }, {
+ "id": "barrier_line_hedge",
+ "source": "mapbox",
+ "source-layer": "barrier_line",
+ "filter": { "class": "hedge" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#8de99b",
+ "line-width": "@hedge_width"
+ },
+ "style.night": {
+ "line-color": "#2e7a57",
+ "line-width": "@hedge_width"
+ }
+ }, {
+ "id": "barrier_line_land",
+ "source": "mapbox",
+ "source-layer": "barrier_line",
+ "filter": { "class": "land" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "@land",
+ "line-width": "@barrier_line_land_width"
+ },
+ "style.night": {
+ "line-color": "@land_night",
+ "line-width": "@barrier_line_land_width"
+ }
+ }, {
+ "id": "barrier_line_land_fill",
+ "source": "mapbox",
+ "source-layer": "barrier_line",
+ "filter": { "class": "land" },
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@land"
+ },
+ "style.night": {
+ "fill-color": "@land_night"
+ }
+ }, {
+ "id": "barrier_line_cliff",
+ "source": "mapbox",
+ "source-layer": "barrier_line",
+ "filter": { "class": "cliff" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#987",
+ "line-width": 4
+ },
+ "style.night": {
+ "line-color": "#63574b",
+ "line-width": 4
+ }
+ }, {
+ "id": "water",
+ "source": "mapbox",
+ "source-layer": "water",
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "@water",
+ "fill-outline-color": "#a2bdc0"
+ },
+ "style.night": {
+ "fill-color": "@water_night",
+ "fill-outline-color": "@water_dark_night"
+ }
+ }, {
+ "id": "aeroway_fill",
+ "source": "mapbox",
+ "source-layer": "aeroway",
+ "render": {
+ "type": "fill"
+ },
+ "style": {
+ "fill-color": "#ddd"
+ },
+ "style.night": {
+ "fill-color": "#367"
+ }
+ }, {
+ "id": "aeroway_runway",
+ "source": "mapbox",
+ "source-layer": "aeroway",
+ "filter": { "type": "runway" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#ddd",
+ "line-width": "@runway_width"
+ },
+ "style.night": {
+ "line-color": "#367",
+ "line-width": "@runway_width"
+ }
+ }, {
+ "id": "aeroway_taxiway",
+ "source": "mapbox",
+ "source-layer": "aeroway",
+ "filter": { "type": "taxiway" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#ddd",
+ "line-width": "@taxiway_width"
+ },
+ "style.night": {
+ "line-color": "#367",
+ "line-width": "@taxiway_width"
+ }
+ }, {
+ "id": "tunnel_motorway_link_casing",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": "motorway_link" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "@case",
+ "line-dasharray": [6, 6],
+ "line-width": "@motorway_link_casing_width"
+ },
+ "style.night": {
+ "line-color": "@case_night",
+ "line-dasharray": [6, 6],
+ "line-width": "@motorway_link_casing_width"
+ }
+ }, {
+ "id": "tunnel_service_casing",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": "service" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#000",
+ "line-opacity": 0.04,
+ "line-dasharray": [6, 6],
+ "line-width": "@service_casing_width"
+ },
+ "style.night": {
+ "line-color": "#000",
+ "line-opacity": 0.04,
+ "line-dasharray": [6, 6],
+ "line-width": "@service_casing_width"
+ }
+ }, {
+ "id": "tunnel_main_casing",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": "main" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "@case",
+ "line-dasharray": [6, 6],
+ "line-width": "@main_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9, 0], [10, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "@case_night",
+ "line-dasharray": [6, 6],
+ "line-width": "@main_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9, 0], [10, 1]]
+ }
+ }
+ }, {
+ "id": "tunnel_street_casing",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": ["street", "street_limited"] },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#d9d5c6",
+ "line-width": "@street_casing_width",
+ "line-opacity": "@street_casing_opacity"
+ },
+ "style.night": {
+ "line-color": "@street_case_night",
+ "line-width": "@street_casing_width",
+ "line-opacity": "@street_casing_opacity"
+ }
+ }, {
+ "id": "tunnel_motorway_link",
+ "ref": "tunnel_motorway_link_casing",
+ "style": {
+ "line-color": "#e6cec7",
+ "line-width": "@motorway_link_width"
+ },
+ "style.night": {
+ "line-color": "#78b0c1",
+ "line-width": "@motorway_link_width"
+ }
+ }, {
+ "id": "tunnel_service",
+ "ref": "tunnel_service_casing",
+ "style": {
+ "line-color": "#e6cec7",
+ "line-width": 2
+ },
+ "style.night": {
+ "line-color": "#017ca0",
+ "line-width": 2
+ }
+ }, {
+ "id": "tunnel_street",
+ "ref": "tunnel_street_casing",
+ "style": {
+ "line-color": "#d9d5c6",
+ "line-width": "@street_width"
+ },
+ "style.night": {
+ "line-color": "@street_night",
+ "line-width": "@street_width"
+ }
+ }, {
+ "id": "tunnel_main",
+ "ref": "tunnel_main_casing",
+ "style": {
+ "line-color": "#e6cec7",
+ "line-width": "@main_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "#78b0c1",
+ "line-width": "@main_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ }
+ }, {
+ "id": "tunnel_motorway_casing",
+ "source": "mapbox",
+ "source-layer": "tunnel",
+ "filter": { "class": "motorway" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "@case",
+ "line-dasharray": [6, 6],
+ "line-width": "@motorway_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9.5, 0], [10, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "@case_night",
+ "line-dasharray": [6, 6],
+ "line-width": "@motorway_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9.5, 0], [10, 1]]
+ }
+ }
+ }, {
+ "id": "tunnel_motorway",
+ "ref": "tunnel_motorway_casing",
+ "style": {
+ "line-color": "#e6cec7",
+ "line-width": "@motorway_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "#78b0c1",
+ "line-width": "@motorway_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ }
+ }, {
+ "id": "road_path_case",
+ "source": "mapbox",
+ "source-layer": "road",
+ "filter": { "class": "path" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#ffd",
+ "line-opacity": 0.4,
+ "line-width": {
+ "fn": "stops",
+ "stops": [[15, 3], [16, 4]]
+ }
+ },
+ "style.night": {
+ "line-color": "@land_night",
+ "line-opacity": 0.2
+ }
+ }, {
+ "id": "road_path_footway",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "type": "footway" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#bba",
+ "line-dasharray": [10, 4],
+ "line-width": "@path_width"
+ },
+ "style.night": {
+ "line-color": "#fff",
+ "line-dasharray": [10, 4],
+ "line-width": "@path_width"
+ }
+ }, {
+ "id": "road_path_path",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "type": "path" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#987",
+ "line-dasharray": [10, 4],
+ "line-opacity": 0.8,
+ "line-width": {
+ "fn": "stops",
+ "stops": [[14, 0.8], [15, 0.9], [16, 1.2]]
+ }
+ },
+ "style.night": {
+ "line-color": "#fff",
+ "line-dasharray": [10, 4],
+ "line-opacity": 0.8,
+ "line-width": {
+ "fn": "stops",
+ "stops": [[14, 0.8], [15, 0.9], [16, 1.2]]
+ }
+ }
+ }, {
+ "id": "road_path_cycleway",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "type": "cycleway" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#488",
+ "line-dasharray": [10, 4],
+ "line-width": "@path_width"
+ },
+ "style.night": {
+ "line-color": "#94e6ff",
+ "line-dasharray": [10, 4],
+ "line-width": "@path_width"
+ }
+ }, {
+ "id": "road_path_mtb",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "type": "mtb" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#488",
+ "line-dasharray": [12, 4],
+ "line-width": "@path_width"
+ },
+ "style.night": {
+ "line-color": "#94e6ff",
+ "line-dasharray": [12, 4],
+ "line-width": "@path_width"
+ }
+ }, {
+ "id": "road_path_piste",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "type": "piste" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#87b",
+ "line-dasharray": [8, 4],
+ "line-width": "@path_width"
+ },
+ "style.night": {
+ "line-color": "#715dae",
+ "line-dasharray": [8, 4],
+ "line-width": "@path_width"
+ }
+ }, {
+ "id": "road_path_steps",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "type": "steps" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#bba",
+ "line-dasharray": [10, 4],
+ "line-width": 4
+ },
+ "style.night": {
+ "line-color": "#016684",
+ "line-dasharray": [10, 4],
+ "line-opacity": 0.3,
+ "line-width": 6
+ }
+ }, {
+ "id": "road_major_rail",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "major_rail" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#c8c4c0",
+ "line-width": 0.8
+ },
+ "style.night": {
+ "line-color": "#c8c4c0",
+ "line-width": 0.8
+ }
+ }, {
+ "id": "road_motorway_link_casing",
+ "source": "mapbox",
+ "source-layer": "road",
+ "filter": { "class": "motorway_link" },
+ "render": {
+ "type": "line",
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "@case",
+ "line-width": "@motorway_link_casing_width"
+ },
+ "style.night": {
+ "line-color": "@case_night",
+ "line-width": "@motorway_link_casing_width"
+ }
+ }, {
+ "id": "road_service_casing",
+ "source": "mapbox",
+ "source-layer": "road",
+ "filter": { "class": "service" },
+ "render": {
+ "type": "line",
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "#000",
+ "line-opacity": 0.04,
+ "line-width": "@service_casing_width"
+ },
+ "style.night": {
+ "line-color": "#000",
+ "line-opacity": 0.04,
+ "line-width": "@service_casing_width"
+ }
+ }, {
+ "id": "road_main_casing",
+ "source": "mapbox",
+ "source-layer": "road",
+ "filter": { "class": "main" },
+ "render": {
+ "type": "line",
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "@case",
+ "line-width": "@main_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9, 0], [10, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "@case_night",
+ "line-width": "@main_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9, 0], [10, 1]]
+ }
+ }
+ }, {
+ "id": "road_street_casing",
+ "source": "mapbox",
+ "source-layer": "road",
+ "filter": { "class": ["street", "street_limited"] },
+ "render": {
+ "type": "line",
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "#d9d5c6",
+ "line-width": "@street_casing_width",
+ "line-opacity": "@street_casing_opacity"
+ },
+ "style.night": {
+ "line-color": "@street_case_night",
+ "line-width": "@street_casing_width",
+ "line-opacity": "@street_casing_opacity"
+ }
+ }, {
+ "id": "road_motorway_link",
+ "ref": "road_motorway_link_casing",
+ "style": {
+ "line-color": "@motorway",
+ "line-width": "@motorway_link_width"
+ },
+ "style.night": {
+ "line-color": "@motorway_night",
+ "line-width": "@motorway_link_width"
+ }
+ }, {
+ "id": "road_service",
+ "ref": "road_service_casing",
+ "style": {
+ "line-color": "@street",
+ "line-width": 2
+ },
+ "style.night": {
+ "line-color": "@street_night",
+ "line-width": 2
+ }
+ }, {
+ "id": "road_street",
+ "ref": "road_street_casing",
+ "style": {
+ "line-color": "@street",
+ "line-width": "@street_width"
+ },
+ "style.night": {
+ "line-color": "@street_night",
+ "line-width": "@street_width"
+ }
+ }, {
+ "id": "road_main",
+ "ref": "road_main_casing",
+ "style": {
+ "line-color": "@main",
+ "line-width": "@main_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "@main_night",
+ "line-width": "@main_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ }
+ }, {
+ "id": "road_motorway_casing",
+ "source": "mapbox",
+ "source-layer": "road",
+ "filter": { "class": "motorway" },
+ "render": {
+ "type": "line",
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "@case",
+ "line-width": "@motorway_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9.5, 0], [10, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "@case_night",
+ "line-width": "@motorway_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9.5, 0], [10, 1]]
+ }
+ }
+ }, {
+ "id": "road_motorway",
+ "ref": "road_motorway_casing",
+ "style": {
+ "line-color": "@motorway",
+ "line-width": "@motorway_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "@motorway_night",
+ "line-width": "@motorway_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ }
+ }, {
+ "id": "road_major_rail_hatching",
+ "ref": "road_major_rail",
+ "style": {
+ "line-color": "#c8c4c0",
+ "line-dasharray": [2, 31],
+ "line-width": 5
+ },
+ "style.night": {
+ "line-color": "#c8c4c0",
+ "line-dasharray": [2, 31],
+ "line-width": 5
+ }
+ }, {
+ "id": "bridge_motorway_link_casing",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "motorway_link" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "@case",
+ "line-width": "@motorway_link_casing_width"
+ },
+ "style.night": {
+ "line-color": "@case_night",
+ "line-width": "@motorway_link_casing_width"
+ }
+ }, {
+ "id": "bridge_service_casing",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "service" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#000",
+ "line-opacity": 0.04,
+ "line-width": "@service_casing_width"
+ },
+ "style.night": {
+ "line-color": "#000",
+ "line-opacity": 0.04,
+ "line-width": "@service_casing_width"
+ }
+ }, {
+ "id": "bridge_main_casing",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "main" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "@case",
+ "line-width": "@main_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9, 0], [10, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "@case_night",
+ "line-width": "@main_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9, 0], [10, 1]]
+ }
+ }
+ }, {
+ "id": "bridge_street_casing",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": ["street", "street_limited"] },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "#d9d5c6",
+ "line-width": "@street_casing_width",
+ "line-opacity": "@street_casing_opacity"
+ },
+ "style.night": {
+ "line-color": "@street_case_night",
+ "line-width": "@street_casing_width",
+ "line-opacity": "@street_casing_opacity"
+ }
+ }, {
+ "id": "bridge_motorway_link",
+ "ref": "bridge_motorway_link_casing",
+ "style": {
+ "line-color": "@motorway",
+ "line-width": "@motorway_link_width"
+ },
+ "style.night": {
+ "line-color": "@motorway_night",
+ "line-width": "@motorway_link_width"
+ }
+ }, {
+ "id": "bridge_service",
+ "ref": "bridge_service_casing",
+ "style": {
+ "line-color": "@street",
+ "line-width": 2
+ },
+ "style.night": {
+ "line-color": "@street_night",
+ "line-width": 2
+ }
+ }, {
+ "id": "bridge_street",
+ "ref": "bridge_street_casing",
+ "style": {
+ "line-color": "@street",
+ "line-width": "@street_width"
+ },
+ "style.night": {
+ "line-color": "@street_night",
+ "line-width": "@street_width"
+ }
+ }, {
+ "id": "bridge_main",
+ "ref": "bridge_main_casing",
+ "style": {
+ "line-color": "@main",
+ "line-width": "@main_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "@main_night",
+ "line-width": "@main_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ }
+ }, {
+ "id": "bridge_motorway_casing",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "motorway" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "@case",
+ "line-width": "@motorway_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9.5, 0], [10, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "@case_night",
+ "line-width": "@motorway_casing_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[9.5, 0], [10, 1]]
+ }
+ }
+ }, {
+ "id": "bridge_motorway",
+ "ref": "bridge_motorway_casing",
+ "style": {
+ "line-color": "@motorway",
+ "line-width": "@motorway_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ },
+ "style.night": {
+ "line-color": "@motorway_night",
+ "line-width": "@motorway_width",
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[6.5, 0], [7, 1]]
+ }
+ }
+ }, {
+ "id": "bridge_aerialway_casing",
+ "source": "mapbox",
+ "source-layer": "bridge",
+ "filter": { "class": "aerialway" },
+ "render": {
+ "type": "line"
+ },
+ "style": {
+ "line-color": "white",
+ "line-opacity": 0.5,
+ "line-width": "@aerialway_casing_width"
+ },
+ "style.night": {
+ "line-color": "white",
+ "line-opacity": 0.5,
+ "line-width": "@aerialway_casing_width"
+ }
+ }, {
+ "id": "bridge_aerialway",
+ "ref": "bridge_aerialway_casing",
+ "style": {
+ "line-color": "#876",
+ "line-opacity": 0.5,
+ "line-width": "@aerialway_width"
+ },
+ "style.night": {
+ "line-color": "#876",
+ "line-opacity": 0.5,
+ "line-width": "@aerialway_width"
+ }
+ }, {
+ "id": "admin_l3",
+ "source": "mapbox",
+ "source-layer": "admin",
+ "filter": { "admin_level": [3, 4, 5] },
+ "render": {
+ "type": "line",
+ "line-join": "round"
+ },
+ "style": {
+ "line-color": "#88a",
+ "line-dasharray": [60, 20],
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[4, 0], [6, 1]]
+ },
+ "line-width": "@admin_l3_width"
+ },
+ "style.night": {
+ "line-color": "@admin_night",
+ "line-dasharray": [60, 20],
+ "line-opacity": {
+ "fn": "stops",
+ "stops": [[4, 0], [6, 1]]
+ },
+ "line-width": "@admin_l3_width"
+ }
+ }, {
+ "id": "admin_l2",
+ "source": "mapbox",
+ "source-layer": "admin",
+ "filter": { "admin_level": 2 },
+ "render": {
+ "type": "line",
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "#88a",
+ "line-width": "@admin_l2_width"
+ },
+ "style.night": {
+ "line-color": "@admin_night",
+ "line-width": "@admin_l2_width"
+ }
+ }, {
+ "id": "admin_maritime_cover",
+ "source": "mapbox",
+ "source-layer": "admin",
+ "filter": { "maritime": 1 },
+ "render": {
+ "type": "line",
+ "line-join": "round",
+ "line-cap": "round"
+ },
+ "style": {
+ "line-color": "@water",
+ "line-width": 5
+ },
+ "style.night": {
+ "line-color": "@water_night",
+ "line-width": 5
+ }
+ }, {
+ "id": "admin_maritime",
+ "ref": "admin_maritime_cover",
+ "style": {
+ "line-color": "#c0d6d6",
+ "line-width": {
+ "fn": "stops",
+ "stops": [[6, 1], [8, 2], [12, 3]]
+ }
+ },
+ "style.night": {
+ "line-color": "#0a1347",
+ "line-width": {
+ "fn": "stops",
+ "stops": [[6, 1], [8, 2], [12, 3]]
+ }
+ }
+ }, {
+ "id": "country_label_line",
+ "source": "mapbox",
+ "source-layer": "country_label_line",
+ "render": {
+ "text-max-width": 5,
+ "type": "line"
+ },
+ "style": {
+ "line-color": "@country_text",
+ "line-width": 0.5,
+ "line-opacity": 0.5
+ },
+ "style.night": {
+ "line-color": "@text_night",
+ "line-width": 0.5,
+ "line-opacity": 0.5
+ }
+ }, {
+ "id": "country_label",
+ "source": "mapbox",
+ "source-layer": "country_label",
+ "filter": { "$type": "point" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-font": "Open Sans Semibold, Arial Unicode MS Bold",
+ "text-max-size": 24,
+ "text-max-width": 5
+ },
+ "style": {
+ "text-color": "@country_text",
+ "text-halo-color": "rgba(255,255,255,0.5)",
+ "text-halo-width": 0.5,
+ "text-size": "@country_label_size"
+ },
+ "style.night": {
+ "text-color": "@text_night",
+ "text-halo-color": "@text2_stroke_night",
+ "text-halo-width": 0.4,
+ "text-size": "@country_label_size"
+ }
+ }, {
+ "id": "marine_label_line_1",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": { "$type": "line", "labelrank": 1 },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "curve",
+ "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
+ "text-max-size": 30,
+ "text-max-angle": 0.5,
+ "text-letter-spacing": 0.4
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 20], [4, 25], [5, 30], [22, 30]]
+ },
+ "text-halo-color": "@water"
+ },
+ "style.night": {
+ "text-color": "@water_dark_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 20], [4, 25], [5, 30], [22, 30]]
+ },
+ "text-halo-color": "@water_night"
+ }
+ }, {
+ "id": "marine_label_line_2",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": { "$type": "line", "labelrank": 2 },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "curve",
+ "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
+ "text-max-size": 24,
+ "text-max-angle": 0.5
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 13], [4, 14], [5, 20], [6, 24], [22, 24]]
+ },
+ "text-halo-color": "@water"
+ },
+ "style.night": {
+ "text-color": "@water_dark_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 13], [4, 14], [5, 20], [6, 24], [22, 24]]
+ },
+ "text-halo-color": "@water_night"
+ }
+ }, {
+ "id": "marine_label_line_3",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": { "$type": "line", "labelrank": 3 },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "curve",
+ "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
+ "text-max-size": 18,
+ "text-max-angle": 0.5
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 12], [4, 13], [5, 15], [6, 18], [22, 18]]
+ },
+ "text-halo-color": "@water"
+ },
+ "style.night": {
+ "text-color": "@water_dark_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 12], [4, 13], [5, 15], [6, 18], [22, 18]]
+ },
+ "text-halo-color": "@water_night"
+ }
+ }, {
+ "id": "marine_label_line_other",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": { "$type": "line", "labelrank": [4, 5, 6] },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "curve",
+ "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
+ "text-max-size": 16,
+ "text-max-angle": 0.5
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[4, 12], [5, 14], [6, 16], [22, 16]]
+ },
+ "text-halo-color": "@water"
+ },
+ "style.night": {
+ "text-color": "@water_dark_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[4, 12], [5, 14], [6, 16], [22, 16]]
+ },
+ "text-halo-color": "@water_night"
+ }
+ }, {
+ "id": "marine_label_point_1",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": { "$type": "point", "labelrank": 1 },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
+ "text-max-size": 30,
+ "text-max-width": 8,
+ "text-letter-spacing": 0.4,
+ "text-line-height": 2
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 20], [4, 25], [5, 30], [22, 30]]
+ },
+ "text-halo-color": "@water"
+ },
+ "style.night": {
+ "text-color": "@water_dark_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 20], [4, 25], [5, 30], [22, 30]]
+ },
+ "text-halo-color": "@water_night"
+ }
+ }, {
+ "id": "marine_label_point_2",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": { "$type": "point", "labelrank": 2 },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
+ "text-max-size": 24,
+ "text-max-width": 8,
+ "text-letter-spacing": 0.2,
+ "text-line-height": 1.5
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 13], [4, 14], [5, 20], [6, 24], [22, 24]]
+ },
+ "text-halo-color": "@water"
+ },
+ "style.night": {
+ "text-color": "@water_dark_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 13], [4, 14], [5, 20], [6, 24], [22, 24]]
+ },
+ "text-halo-color": "@water_night"
+ }
+ }, {
+ "id": "marine_label_point_3",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": { "$type": "point", "labelrank": 3 },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
+ "text-max-size": 18,
+ "text-max-width": 8,
+ "text-letter-spacing": 0.1,
+ "text-line-height": 1.3
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 12], [4, 13], [5, 15], [6, 18], [22, 18]]
+ },
+ "text-halo-color": "@water"
+ },
+ "style.night": {
+ "text-color": "@water_dark_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3, 12], [4, 13], [5, 15], [6, 18], [22, 18]]
+ },
+ "text-halo-color": "@water_night"
+ }
+ }, {
+ "id": "marine_label_point_other",
+ "source": "mapbox",
+ "source-layer": "marine_label",
+ "filter": { "$type": "point", "labelrank": [4, 5, 6] },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
+ "text-max-size": 16,
+ "text-max-width": 8,
+ "text-letter-spacing": 0.1,
+ "text-line-height": 1.2
+ },
+ "style": {
+ "text-color": "@marine_text",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[4, 12], [5, 14], [6, 16], [22, 16]]
+ },
+ "text-halo-color": "@water"
+ },
+ "style.night": {
+ "text-color": "@water_dark_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[4, 12], [5, 14], [6, 16], [22, 16]]
+ },
+ "text-halo-color": "@water_night"
+ }
+ }, {
+ "id": "state_label",
+ "source": "mapbox",
+ "source-layer": "state_label",
+ "filter": { "$type": "point" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-font": "Open Sans Regular, Arial Unicode MS Regular",
+ "text-max-size": 16,
+ "text-max-width": 8
+ },
+ "style": {
+ "text-color": "#333",
+ "text-halo-width": 0.4,
+ "text-halo-color": "rgba(244,239,225,0.8)",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3.99, 0], [4, 10], [9.99, 16], [10, 0]]
+ }
+ },
+ "style.night": {
+ "text-color": "#fff",
+ "text-halo-width": 0.4,
+ "text-halo-color": "@land_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3.99, 0], [4, 10], [9.99, 16], [10, 0]]
+ }
+ }
+ }, {
+ "id": "place_label_city",
+ "source": "mapbox",
+ "source-layer": "place_label",
+ "filter": { "type": "city", "$type": "point" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-font": "Open Sans Semibold, Arial Unicode MS Bold",
+ "text-max-size": 20,
+ "text-max-width": 8
+ },
+ "style": {
+ "text-color": "#444",
+ "text-halo-width": 0.4,
+ "text-halo-color": "@text_stroke",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3.99, 0], [4, 10], [7, 14], [14.99, 20], [15, 0]]
+ }
+ },
+ "style.night": {
+ "text-color": "#fff",
+ "text-halo-width": 0.4,
+ "text-halo-color": "@text2_stroke_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[3.99, 0], [4, 10], [7, 14], [14.99, 20], [15, 0]]
+ }
+ }
+ }, {
+ "id": "place_label_town",
+ "source": "mapbox",
+ "source-layer": "place_label",
+ "filter": { "type": "town", "$type": "point" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-font": "Open Sans Semibold, Arial Unicode MS Bold",
+ "text-max-size": 24,
+ "text-max-width": 8
+ },
+ "style": {
+ "text-color": "#716656",
+ "text-halo-width": 0.3,
+ "text-halo-color": "@text_stroke",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[9, 10], [12, 13], [14, 17], [16, 22]]
+ }
+ },
+ "style.night": {
+ "text-color": "@text_night",
+ "text-halo-width": 0.3,
+ "text-halo-color": "@text2_stroke_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[9, 10], [12, 13], [14, 17], [16, 22]]
+ }
+ }
+ }, {
+ "id": "place_label_village",
+ "source": "mapbox",
+ "source-layer": "place_label",
+ "filter": { "type": "village", "$type": "point" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-font": "Open Sans Semibold, Arial Unicode MS Bold",
+ "text-max-size": 22,
+ "text-max-width": 8
+ },
+ "style": {
+ "text-color": "#635644",
+ "text-halo-width": 0.3,
+ "text-halo-color": "@text_stroke",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[9, 8], [12, 10], [14, 14], [16, 16], [17, 20]]
+ }
+ },
+ "style.night": {
+ "text-color": "@text_night",
+ "text-halo-width": 0.3,
+ "text-halo-color": "@text2_stroke_night",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[9, 8], [12, 10], [14, 14], [16, 16], [17, 20]]
+ }
+ }
+ }, {
+ "id": "place_label_other",
+ "source": "mapbox",
+ "source-layer": "place_label",
+ "filter": { "type": ["hamlet", "suburb", "neighbourhood"], "$type": "point" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-font": "Open Sans Semibold, Arial Unicode MS Bold",
+ "text-max-size": 18,
+ "text-max-width": 6
+ },
+ "style": {
+ "text-color": "#7d6c55",
+ "text-halo-color": "@text_stroke",
+ "text-size": {
+ "fn": "stops",
+ "stops": [[13, 11], [14, 12], [16, 14], [18, 18]]
+ }
+ },
+ "style.night": {
+ "text-color": "@text_night",
+ "text-halo-color": "@text2_stroke_night",
+ "text-halo-width": 0.3,
+ "text-size": {
+ "fn": "stops",
+ "stops": [[13, 11], [14, 12], [16, 14], [18, 18]]
+ }
+ }
+ }, {
+ "id": "road_label_1",
+ "source": "mapbox",
+ "source-layer": "road_label",
+ "filter": { "class": ["motorway", "main"], "$type": "line" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "curve",
+ "text-padding": 2,
+ "text-font": "Open Sans Regular, Arial Unicode MS Regular",
+ "text-max-size": 18,
+ "text-max-angle": 0.5
+ },
+ "style": {
+ "text-color": "#585042",
+ "text-halo-color": "@land",
+ "text-halo-width": 0.6,
+ "text-size": "@road_label_1_size"
+ },
+ "style.night": {
+ "text-color": "@text_night",
+ "text-halo-color": "@text2_stroke_night",
+ "text-halo-width": 0.5,
+ "text-size": "@road_label_1_size"
+ }
+ }, {
+ "id": "road_label_2",
+ "source": "mapbox",
+ "source-layer": "road_label",
+ "filter": { "class": ["street", "street_limited"], "$type": "line" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "curve",
+ "text-padding": 2,
+ "text-font": "Open Sans Regular, Arial Unicode MS Regular",
+ "text-max-size": 16,
+ "text-max-angle": 0.5
+ },
+ "style": {
+ "text-color": "#585042",
+ "text-halo-color": "@land",
+ "text-halo-width": 0.6,
+ "text-size": "@road_label_2_size"
+ },
+ "style.night": {
+ "text-color": "@text_night",
+ "text-halo-color": "@text2_stroke_night",
+ "text-halo-width": 0.5,
+ "text-size": "@road_label_2_size"
+ }
+ }, {
+ "id": "road_label_3",
+ "source": "mapbox",
+ "source-layer": "road_label",
+ "filter": { "class": ["service", "driveway", "path"], "$type": "line" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "curve",
+ "text-padding": 2,
+ "text-font": "Open Sans Regular, Arial Unicode MS Regular",
+ "text-max-size": 14,
+ "text-max-angle": 0.5
+ },
+ "style": {
+ "text-color": "#585042",
+ "text-halo-color": "@land",
+ "text-halo-width": 0.6,
+ "text-size": "@road_label_3_size"
+ },
+ "style.night": {
+ "text-color": "@text_night",
+ "text-halo-color": "@text2_stroke_night",
+ "text-halo-width": 0.5,
+ "text-size": "@road_label_3_size"
+ }
+ }, {
+ "id": "contour_label",
+ "source": "mapbox",
+ "source-layer": "contour",
+ "filter": { "index": [5, 10], "$type": "line" },
+ "render": {
+ "type": "text",
+ "text-path": "curve",
+ "text-field": "{{ele}} m",
+ "text-font": "Open Sans Regular, Arial Unicode MS Regular",
+ "text-max-size": 10,
+ "text-max-angle": 0.5
+ },
+ "style": {
+ "text-color": "@text",
+ "text-halo-color": "@land",
+ "text-halo-width": 0.3,
+ "text-size": 10
+ },
+ "style.night": {
+ "text-color": "@contour_night",
+ "text-halo-color": "@land_night",
+ "text-halo-width": 0.3,
+ "text-size": 10
+ }
+ }, {
+ "id": "water_label",
+ "source": "mapbox",
+ "source-layer": "water_label",
+ "filter": { "$type": "point" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
+ "text-max-size": 12,
+ "text-max-width": 8
+ },
+ "style": {
+ "text-color": "@water_dark",
+ "text-halo-color": "rgba(255,255,255,0.75)"
+ },
+ "style.night": {
+ "text-color": "@text_water_night",
+ "text-halo-color": "@water_night"
+ }
+ }, {
+ "id": "waterway_label",
+ "source": "mapbox",
+ "source-layer": "waterway_label",
+ "filter": { "$type": "line" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "curve",
+ "text-font": "Open Sans Semibold Italic, Arial Unicode MS Bold",
+ "text-max-size": 12,
+ "text-max-angle": 0.5
+ },
+ "style": {
+ "text-color": "@water_dark",
+ "text-halo-width": 0.4,
+ "text-halo-color": "@text_stroke"
+ },
+ "style.night": {
+ "text-color": "@text_water_night",
+ "text-halo-color": "@water_night"
+ }
+ }, {
+ "id": "poi",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "scalerank": [1, 2] },
+ "render": {
+ "type": "icon",
+ "icon-image": "{{maki}}-12",
+ "icon-size": 12
+ },
+ "style.night": {}
+ }, {
+ "id": "poi_label_1-2",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "scalerank": [1, 2], "$type": "point" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-padding": 2,
+ "text-font": "Open Sans Semibold, Arial Unicode MS Bold",
+ "text-max-size": 12,
+ "text-max-width": 10,
+ "text-alignment": "center"
+ },
+ "style": {
+ "text-color": "#444",
+ "text-size": "@poi_label_1-2_size",
+ "text-halo-color": "@land",
+ "text-halo-width": 0.3
+ },
+ "style.night": {
+ "text-color": "#fff",
+ "text-size": "@poi_label_1-2_size",
+ "text-halo-color": "@text2_stroke_night",
+ "text-halo-width": 0.3
+ }
+ }, {
+ "id": "poi_3",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "scalerank": 3 },
+ "render": {
+ "type": "icon",
+ "icon-image": "{{maki}}-12",
+ "icon-size": 12
+ },
+ "style": {
+ "icon-opacity": {
+ "fn": "stops",
+ "stops": [[16.5, 0], [16.75, 1]]
+ }
+ },
+ "style.night": {
+ "icon-opacity": {
+ "fn": "stops",
+ "stops": [[16.5, 0], [16.75, 1]]
+ }
+ }
+ }, {
+ "id": "poi_label_3",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "scalerank": 3, "$type": "point" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-padding": 2,
+ "text-font": "Open Sans Semibold, Arial Unicode MS Bold",
+ "text-max-size": 11,
+ "text-max-width": 10,
+ "text-alignment": "center"
+ },
+ "style": {
+ "text-color": "#444",
+ "text-size": "@poi_label_3_size",
+ "text-halo-color": "@land",
+ "text-halo-width": 0.3,
+ "text-opacity": {
+ "fn": "stops",
+ "stops": [[16.5, 0], [16.75, 1]]
+ }
+ },
+ "style.night": {
+ "text-color": "#fff",
+ "text-size": "@poi_label_3_size",
+ "text-halo-color": "@text2_stroke_night",
+ "text-halo-width": 0.3,
+ "text-opacity": {
+ "fn": "stops",
+ "stops": [[16.5, 0], [16.75, 1]]
+ }
+ }
+ }, {
+ "id": "poi_4",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "scalerank": 4 },
+ "render": {
+ "type": "icon",
+ "icon-image": "{{maki}}-12",
+ "icon-size": 12
+ },
+ "style": {
+ "icon-opacity": {
+ "fn": "stops",
+ "stops": [[18.5, 0], [18.75, 1]]
+ }
+ },
+ "style.night": {
+ "icon-opacity": {
+ "fn": "stops",
+ "stops": [[18.5, 0], [18.75, 1]]
+ }
+ }
+ }, {
+ "id": "poi_label_4",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "scalerank": 4, "$type": "point" },
+ "render": {
+ "type": "text",
+ "text-field": "{{name_en}}",
+ "text-path": "horizontal",
+ "text-padding": 2,
+ "text-font": "Open Sans Semibold, Arial Unicode MS Bold",
+ "text-max-size": 10,
+ "text-max-width": 10,
+ "text-alignment": "center"
+ },
+ "style": {
+ "text-color": "#444",
+ "text-size": 10,
+ "text-opacity": {
+ "fn": "stops",
+ "stops": [[18.5, 0], [18.75, 1]]
+ },
+ "text-halo-color": "@land",
+ "text-halo-width": 0.3
+ },
+ "style.night": {
+ "text-color": "#fff",
+ "text-size": 10,
+ "text-opacity": {
+ "fn": "stops",
+ "stops": [[18.5, 0], [18.75, 1]]
+ },
+ "text-halo-color": "@text2_stroke_night",
+ "text-halo-width": 0.3
+ }
+ }, {
+ "id": "poi_aerodrome",
+ "source": "mapbox",
+ "source-layer": "poi_label",
+ "filter": { "maki": "airport" },
+ "render": {
+ "type": "icon",
+ "icon-image": "{{maki}}-12",
+ "icon-size": 12
+ },
+ "style": {
+ "icon-opacity": {
+ "fn": "stops",
+ "stops": [[13, 0], [13.25, 1]]
+ }
+ },
+ "style.night": {
+ "icon-opacity": {
+ "fn": "stops",
+ "stops": [[13, 0], [13.25, 1]]
+ }
+ }
+ }]
};
diff --git a/common/glfw_view.cpp b/common/glfw_view.cpp
index dbd455906..bcfa5f1bc 100644
--- a/common/glfw_view.cpp
+++ b/common/glfw_view.cpp
@@ -78,17 +78,8 @@ void GLFWView::key(GLFWwindow *window, int key, int /*scancode*/, int action, in
break;
case GLFW_KEY_R:
if (!mods) {
- std::set newAppliedClasses;
- if (view->map->getAppliedClasses().count("default") && view->map->getAppliedClasses().count("night")) {
- if (view->map->getAppliedClasses().count("night")) {
- newAppliedClasses.insert("default");
- } else {
- newAppliedClasses.insert("default");
- newAppliedClasses.insert(newAppliedClasses.end(), "night");
- }
- view->map->setDefaultTransitionDuration(300);
- view->map->setAppliedClasses(newAppliedClasses);
- }
+ view->map->setDefaultTransitionDuration(300);
+ view->map->toggleClass("night");
}
break;
case GLFW_KEY_N:
diff --git a/config/constants.cpp b/config/constants.cpp
index ab0c160a8..36f51559e 100644
--- a/config/constants.cpp
+++ b/config/constants.cpp
@@ -1,9 +1,5 @@
#include
-const char *llmr::kSpriteURL = "http://mapbox-kkaefer.s3.amazonaws.com/static/outdoors-gl/sprite";
-const char *llmr::kVectorTileURL = "http://a.tiles.mapbox.com/v3/mapbox.mapbox-terrain-v1,mapbox.mapbox-streets-v5/%d/%d/%d.vector.pbf";
-const char *llmr::kGlyphURL = "http://mapbox.s3.amazonaws.com/gl-glyphs-256/%s/%d-%d.pbf";
-
const float llmr::util::tileSize = 512.0f;
#if defined(DEBUG)
diff --git a/include/llmr/geometry/buffer.hpp b/include/llmr/geometry/buffer.hpp
index 27807c809..607f902bf 100644
--- a/include/llmr/geometry/buffer.hpp
+++ b/include/llmr/geometry/buffer.hpp
@@ -32,6 +32,10 @@ public:
return pos / itemSize;
}
+ inline bool empty() const {
+ return pos == 0;
+ }
+
// Transfers this buffer to the GPU and binds the buffer to the GL context.
void bind(bool force = false) {
if (buffer == 0) {
diff --git a/include/llmr/map/filter_expression.hpp b/include/llmr/map/filter_expression.hpp
deleted file mode 100644
index 50e6ce1d7..000000000
--- a/include/llmr/map/filter_expression.hpp
+++ /dev/null
@@ -1,128 +0,0 @@
-#ifndef LLMR_MAP_FILTER_EXPRESSION
-#define LLMR_MAP_FILTER_EXPRESSION
-
-#include
-#include
-
-#include
-#include
-
-namespace llmr {
-
-enum class FilterOperator {
- Equal,
- NotEqual,
- Greater,
- GreaterEqual,
- Less,
- LessEqual
-};
-
-enum class ExpressionOperator {
- Or,
- And
-};
-
-
-inline FilterOperator filterOperatorType(const std::string &op) {
- if (op == "!=" || op == "not") {
- return FilterOperator::NotEqual;
- } else if (op == "==" || op == "eq") {
- return FilterOperator::Equal;
- } else if (op == ">" || op == "gt") {
- return FilterOperator::Greater;
- } else if (op == ">=" || op == "gte") {
- return FilterOperator::GreaterEqual;
- } else if (op == "<" || op == "lt") {
- return FilterOperator::Less;
- } else if (op == "<=" || op == "lte") {
- return FilterOperator::LessEqual;
- } else {
- fprintf(stderr, "[WARNING] filter operator '%s' unrecognized\n", op.c_str());
- return FilterOperator::Equal;
- }
-}
-
-inline ExpressionOperator expressionOperatorType(const std::string &op) {
- if (op == "&&" || op == "and") {
- return ExpressionOperator::And;
- } else if (op == "||" || op == "or") {
- return ExpressionOperator::Or;
- } else {
- fprintf(stderr, "[WARNING] expression operator '%s' unrecognized\n", op.c_str());
- return ExpressionOperator::Or;
- }
-}
-
-
-class PropertyFilter;
-class PropertyExpression;
-
-typedef util::variant<
- util::recursive_wrapper,
- util::recursive_wrapper,
- std::true_type
-> PropertyFilterExpression;
-
-
-class PropertyFilter {
-public:
- inline PropertyFilter(const std::string &field, FilterOperator op, const Value &value) : field(field), op(op), value(value) {};
- inline PropertyFilter(PropertyFilter &&filter)
- : field(std::move(filter.field)),
- op(filter.op),
- value(std::move(filter.value)) {
- }
-
- // Returns true if the filter passes, even if the key is missing.
- inline bool isMissingFieldOkay() const {
- switch (op) {
- case FilterOperator::NotEqual:
- return true;
- default:
- return false;
- }
- }
-
- inline bool compare(const Value &other) const {
- switch (op) {
- case FilterOperator::Equal:
- return util::relaxed_equal(other, value);
- case FilterOperator::NotEqual:
- return !util::relaxed_equal(other, value);
- case FilterOperator::Greater:
- return util::relaxed_greater(other, value);
- case FilterOperator::GreaterEqual:
- return util::relaxed_greater_equal(other, value);
- case FilterOperator::Less:
- return util::relaxed_less(other, value);
- case FilterOperator::LessEqual:
- return util::relaxed_less_equal(other, value);
- default:
- return false;
- }
- }
-
-public:
- std::string field;
- FilterOperator op = FilterOperator::Equal;
- Value value;
-};
-
-class PropertyExpression {
-public:
- inline PropertyExpression() {}
- inline PropertyExpression(PropertyExpression &&expression)
- : op(expression.op),
- operands(std::move(expression.operands)) {
- }
-
-public:
- ExpressionOperator op = ExpressionOperator::Or;
- std::vector operands;
-};
-
-
-}
-
-#endif
diff --git a/include/llmr/map/map.hpp b/include/llmr/map/map.hpp
index e20803b99..75090f941 100644
--- a/include/llmr/map/map.hpp
+++ b/include/llmr/map/map.hpp
@@ -20,8 +20,7 @@
namespace llmr {
class Source;
-
-typedef std::map> Sources;
+class SpriteAtlas;
class Map : private util::noncopyable {
public:
@@ -53,8 +52,8 @@ public:
void resize(uint16_t width, uint16_t height, float ratio, uint16_t fb_width, uint16_t fb_height);
// Styling
- void setAppliedClasses(std::set appliedClasses);
- std::set getAppliedClasses() const;
+ void toggleClass(const std::string &name);
+ const std::vector &getAppliedClasses() const;
void setDefaultTransitionDuration(uint64_t duration_milliseconds = 0);
void setStyleJSON(std::string newStyleJSON);
std::string getStyleJSON() const;
@@ -107,8 +106,8 @@ public:
inline std::shared_ptr getSpriteAtlas() { return spriteAtlas; }
inline std::shared_ptr getTexturepool() { return texturepool; }
inline std::shared_ptr getLoop() { return loop; }
- inline time getAnimationTime() const { return animationTime; }
- inline const Sources &getSources() { return sources; }
+ inline timestamp getAnimationTime() const { return animationTime; }
+ inline timestamp getTime() const { return animationTime; }
private:
// uv async callbacks
@@ -133,8 +132,8 @@ private:
// Unconditionally performs a render with the current map state.
void render();
- void renderLayers(const std::vector& layers);
- void renderLayer(const LayerDescription& layer_desc, RenderPass pass);
+ void renderLayers(std::shared_ptr group);
+ void renderLayer(std::shared_ptr layer_desc, RenderPass pass);
private:
// If cleared, the next time the render thread attempts to render the map, it will *actually*
@@ -162,12 +161,10 @@ private:
Painter painter;
- Sources sources;
-
std::string styleJSON = "";
bool debug = false;
- time animationTime = 0;
+ timestamp animationTime = 0;
int indent = 0;
diff --git a/include/llmr/map/raster_tile_data.hpp b/include/llmr/map/raster_tile_data.hpp
index fd72cca9b..f84b540d4 100644
--- a/include/llmr/map/raster_tile_data.hpp
+++ b/include/llmr/map/raster_tile_data.hpp
@@ -16,8 +16,8 @@ public:
~RasterTileData();
virtual void parse();
- virtual void render(Painter &painter, const LayerDescription& layer_desc);
- virtual bool hasData(const LayerDescription& layer_desc) const;
+ virtual void render(Painter &painter, std::shared_ptr layer_desc);
+ virtual bool hasData(std::shared_ptr layer_desc) const;
protected:
RasterBucket bucket;
diff --git a/include/llmr/map/source.hpp b/include/llmr/map/source.hpp
index 08a8771ba..2937a8f69 100644
--- a/include/llmr/map/source.hpp
+++ b/include/llmr/map/source.hpp
@@ -5,6 +5,7 @@
#include
#include
#include
+#include
#include
#include
@@ -16,58 +17,49 @@
namespace llmr {
-class Map;
class TransformState;
-class Painter;
class Texturepool;
class Source : public std::enable_shared_from_this, private util::noncopyable {
public:
- enum class Type {
- vector,
- raster
- };
+ Source(SourceType type = SourceType::Vector, const std::string &url = "",
+ uint32_t tile_size = 512, uint32_t min_zoom = 0, uint32_t max_zoom = 22);
-public:
- Source(Map &map, Painter &painter,
- const char *url = "", Type type = Type::vector, uint32_t tile_size = 512,
- uint32_t min_zoom = 0, uint32_t max_zoom = 14, bool enabled = true);
-
- bool update();
- void updateMatrices(const TransformState &transform);
- void drawClippingMasks();
+ bool update(Map &map);
+ void updateMatrices(const mat4 &projMatrix, const TransformState &transform);
+ void drawClippingMasks(Painter &painter);
size_t getTileCount() const;
- void render(const LayerDescription& layer_desc, const BucketDescription &bucket_desc);
- void finishRender();
+ void render(Painter &painter, std::shared_ptr layer_desc);
+ void finishRender(Painter &painter);
std::forward_list getIDs() const;
void updateClipIDs(const std::map &mapping);
+ static std::string normalizeSourceURL(const std::string &url);
+
public:
- bool enabled;
-
-private:
- bool findLoadedChildren(const Tile::ID& id, int32_t maxCoveringZoom, std::forward_list& retain);
- bool findLoadedParent(const Tile::ID& id, int32_t minCoveringZoom, std::forward_list& retain);
- std::forward_list covering_tiles(int32_t zoom, const box& points);
-
- bool updateTiles();
-
- TileData::State addTile(const Tile::ID& id);
- TileData::State hasTile(const Tile::ID& id);
-
- double getZoom() const;
-
-private:
- Map& map;
- Painter& painter;
-
- const Type type;
+ const SourceType type;
const std::string url;
const uint32_t tile_size;
const int32_t min_zoom;
const int32_t max_zoom;
+private:
+ bool findLoadedChildren(const Tile::ID& id, int32_t maxCoveringZoom, std::forward_list& retain);
+ bool findLoadedParent(const Tile::ID& id, int32_t minCoveringZoom, std::forward_list& retain);
+ std::forward_list covering_tiles(const TransformState &state, int32_t clamped_zoom, const box& points);
+
+ bool updateTiles(Map &map);
+
+ TileData::State addTile(Map &map, const Tile::ID& id);
+ TileData::State hasTile(const Tile::ID& id);
+
+ double getZoom(const TransformState &state) const;
+
+private:
+ // Stores the time when this source was most recently updated.
+ timestamp updated = 0;
+
std::map> tiles;
std::map> tile_data;
};
diff --git a/include/llmr/map/tile_data.hpp b/include/llmr/map/tile_data.hpp
index 0717f6c92..09f36d59b 100644
--- a/include/llmr/map/tile_data.hpp
+++ b/include/llmr/map/tile_data.hpp
@@ -16,7 +16,7 @@ namespace llmr {
class Map;
class Painter;
-class LayerDescription;
+class StyleLayer;
class TileData : public std::enable_shared_from_this,
private util::noncopyable {
@@ -49,8 +49,8 @@ public:
virtual void beforeParse();
virtual void parse() = 0;
virtual void afterParse();
- virtual void render(Painter &painter, const LayerDescription& layer_desc) = 0;
- virtual bool hasData(const LayerDescription& layer_desc) const = 0;
+ virtual void render(Painter &painter, std::shared_ptr layer_desc) = 0;
+ virtual bool hasData(std::shared_ptr layer_desc) const = 0;
public:
diff --git a/include/llmr/map/tile_parser.hpp b/include/llmr/map/tile_parser.hpp
index edeb3b000..e18c2746a 100644
--- a/include/llmr/map/tile_parser.hpp
+++ b/include/llmr/map/tile_parser.hpp
@@ -6,6 +6,7 @@
#include
#include
#include
+#include
namespace llmr {
@@ -14,8 +15,13 @@ class GlyphAtlas;
class GlyphStore;
class SpriteAtlas;
class VectorTileData;
+class StyleLayer;
+class StyleLayerGroup;
+class StyleBucket;
+class StyleBucketFill;
+class StyleBucketLine;
+class StyleBucketIcon;
-class LayerDescription;
class Bucket;
class TileParser {
@@ -32,15 +38,17 @@ public:
private:
bool obsolete() const;
void parseGlyphs();
- void parseStyleLayers(const std::vector& layers);
+ void parseStyleLayers(std::shared_ptr group);
void addGlyph(uint64_t tileid, const std::string stackname, const std::u32string &string, const FontStack &fontStack, GlyphAtlas &glyphAtlas, GlyphPositions &face);
- std::unique_ptr createBucket(const BucketDescription& bucket_desc);
- std::unique_ptr createFillBucket(const VectorTileLayer& layer, const BucketDescription& bucket_desc);
- std::unique_ptr createLineBucket(const VectorTileLayer& layer, const BucketDescription& bucket_desc);
- std::unique_ptr createIconBucket(const VectorTileLayer& layer, const BucketDescription& bucket_desc);
- std::unique_ptr createTextBucket(const VectorTileLayer& layer, const BucketDescription& bucket_desc);
- template void addBucketFeatures(Bucket& bucket, const VectorTileLayer& layer, const BucketDescription& bucket_desc);
- template void addBucketFeatures(Bucket& bucket, const VectorTileLayer& layer, const BucketDescription& bucket_desc, Args&& ...args);
+ std::unique_ptr createBucket(std::shared_ptr bucket_desc);
+
+ std::unique_ptr createFillBucket(const VectorTileLayer& layer, const FilterExpression &filter, const StyleBucketFill &fill);
+ std::unique_ptr createLineBucket(const VectorTileLayer& layer, const FilterExpression &filter, const StyleBucketLine &line);
+ std::unique_ptr createIconBucket(const VectorTileLayer& layer, const FilterExpression &filter, const StyleBucketIcon &icon);
+ std::unique_ptr createTextBucket(const VectorTileLayer& layer, const FilterExpression &filter, const StyleBucketText &text);
+
+ template void addBucketFeatures(Bucket& bucket, const VectorTileLayer& layer, const FilterExpression &filter);
+ template void addBucketFeatures(Bucket& bucket, const VectorTileLayer& layer, const FilterExpression &filter, Args&& ...args);
private:
const VectorTile vector_data;
diff --git a/include/llmr/map/transform.hpp b/include/llmr/map/transform.hpp
index 63b75d43d..c4474ff02 100644
--- a/include/llmr/map/transform.hpp
+++ b/include/llmr/map/transform.hpp
@@ -23,18 +23,18 @@ public:
uint16_t fb_width, uint16_t fb_height);
// Position
- void moveBy(double dx, double dy, time duration = 0);
- void setLonLat(double lon, double lat, time duration = 0);
- void setLonLatZoom(double lon, double lat, double zoom, time duration = 0);
+ void moveBy(double dx, double dy, timestamp duration = 0);
+ void setLonLat(double lon, double lat, timestamp duration = 0);
+ void setLonLatZoom(double lon, double lat, double zoom, timestamp duration = 0);
void getLonLat(double& lon, double& lat) const;
void getLonLatZoom(double& lon, double& lat, double& zoom) const;
void startPanning();
void stopPanning();
// Zoom
- void scaleBy(double ds, double cx = -1, double cy = -1, time duration = 0);
- void setScale(double scale, double cx = -1, double cy = -1, time duration = 0);
- void setZoom(double zoom, time duration = 0);
+ void scaleBy(double ds, double cx = -1, double cy = -1, timestamp duration = 0);
+ void setScale(double scale, double cx = -1, double cy = -1, timestamp duration = 0);
+ void setZoom(double zoom, timestamp duration = 0);
double getZoom() const;
double getScale() const;
void startScaling();
@@ -43,8 +43,8 @@ public:
double getMaxZoom() const;
// Angle
- void rotateBy(double sx, double sy, double ex, double ey, time duration = 0);
- void setAngle(double angle, time duration = 0);
+ void rotateBy(double sx, double sy, double ex, double ey, timestamp duration = 0);
+ void setAngle(double angle, timestamp duration = 0);
void setAngle(double angle, double cx, double cy);
double getAngle() const;
void startRotating();
@@ -53,7 +53,7 @@ public:
// Transitions
bool needsTransition() const;
- void updateTransitions(time now);
+ void updateTransitions(timestamp now);
void cancelTransitions();
// Transform state
@@ -63,10 +63,10 @@ public:
private:
// Functions prefixed with underscores will *not* perform any locks. It is the caller's
// responsibility to lock this object.
- void _moveBy(double dx, double dy, time duration = 0);
- void _setScale(double scale, double cx, double cy, time duration = 0);
- void _setScaleXY(double new_scale, double xn, double yn, time duration = 0);
- void _setAngle(double angle, time duration = 0);
+ void _moveBy(double dx, double dy, timestamp duration = 0);
+ void _setScale(double scale, double cx, double cy, timestamp duration = 0);
+ void _setScaleXY(double new_scale, double xn, double yn, timestamp duration = 0);
+ void _setAngle(double angle, timestamp duration = 0);
void _clearPanning();
void _clearRotating();
void _clearScaling();
diff --git a/include/llmr/map/vector_tile.hpp b/include/llmr/map/vector_tile.hpp
index 904cc9a2e..ad7a0eea1 100644
--- a/include/llmr/map/vector_tile.hpp
+++ b/include/llmr/map/vector_tile.hpp
@@ -5,7 +5,7 @@
#include
#include
#include
-#include
+#include
#include
#include