diff --git a/.env b/.env new file mode 100644 index 0000000..a512483 --- /dev/null +++ b/.env @@ -0,0 +1,4 @@ +DATA_DIR=/home/silklaasboer/tileserver-gl-weatherroutes/data +PORT=9019 +MBTILES_FILE=osm-2020-02-10-v3.11_europe_netherlands.mbtiles + diff --git a/LICENSE b/LICENSE index d5363bd..1b1bc4c 100644 --- a/LICENSE +++ b/LICENSE @@ -1,6 +1,6 @@ MIT License -Copyright (c) 2025 silklaasboer +Copyright (c) 2025 sil klaasboer pavankumar bellary Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: diff --git a/data/config.json b/data/config.json new file mode 100644 index 0000000..6614a91 --- /dev/null +++ b/data/config.json @@ -0,0 +1,27 @@ +{ + "options": { + "paths": { + "fonts": "fonts", + "styles": "styles" + } + }, + "styles": { + "default": { + "style": "default/style.json", + "tilejson": { + "type": "overlay" + } + }, + "dark": { + "style": "custom/dark-style.json", + "tilejson": { + "type": "overlay" + } + } + }, + "data": { + "openmaptiles": { + "mbtiles": "osm-2020-02-10-v3.11_europe_netherlands.mbtiles" + } + } +} \ No newline at end of file diff --git a/data/styles/custom/dark-style.json b/data/styles/custom/dark-style.json new file mode 100644 index 0000000..059343f --- /dev/null +++ b/data/styles/custom/dark-style.json @@ -0,0 +1,3181 @@ +{ + "version": 8, + "name": "Immich Map", + "metadata": {}, + "sources": { + "protomaps": { + "type": "vector", + "url": "https://tiles.immich.cloud/v1.json" + } + }, + "sprite": "https://static.immich.cloud/tiles/sprites/v1/dark", + "glyphs": "https://static.immich.cloud/tiles/fonts/{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "#2b2b2b" + } + }, + { + "id": "earth", + "type": "fill", + "source": "protomaps", + "source-layer": "earth", + "paint": { + "fill-color": "#141414" + } + }, + { + "id": "landuse_park", + "type": "fill", + "source": "protomaps", + "source-layer": "landuse", + "filter": [ + "any", + [ + "in", + "pmap:kind", + "national_park", + "park", + "cemetery", + "protected_area", + "nature_reserve", + "forest", + "golf_course" + ] + ], + "paint": { + "fill-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + "#181818", + 12, + "#181818" + ] + } + }, + { + "id": "landuse_urban_green", + "type": "fill", + "source": "protomaps", + "source-layer": "landuse", + "filter": [ + "any", + [ + "in", + "pmap:kind", + "allotments", + "village_green", + "playground" + ] + ], + "paint": { + "fill-color": "#181818", + "fill-opacity": 0.7 + } + }, + { + "id": "landuse_hospital", + "type": "fill", + "source": "protomaps", + "source-layer": "landuse", + "filter": [ + "any", + [ + "==", + "pmap:kind", + "hospital" + ] + ], + "paint": { + "fill-color": "#1d1d1d" + } + }, + { + "id": "landuse_industrial", + "type": "fill", + "source": "protomaps", + "source-layer": "landuse", + "filter": [ + "any", + [ + "==", + "pmap:kind", + "industrial" + ] + ], + "paint": { + "fill-color": "#101010" + } + }, + { + "id": "landuse_school", + "type": "fill", + "source": "protomaps", + "source-layer": "landuse", + "filter": [ + "any", + [ + "in", + "pmap:kind", + "school", + "university", + "college" + ] + ], + "paint": { + "fill-color": "#111111" + } + }, + { + "id": "landuse_beach", + "type": "fill", + "source": "protomaps", + "source-layer": "landuse", + "filter": [ + "any", + [ + "in", + "pmap:kind", + "beach" + ] + ], + "paint": { + "fill-color": "#1f1f1f" + } + }, + { + "id": "landuse_zoo", + "type": "fill", + "source": "protomaps", + "source-layer": "landuse", + "filter": [ + "any", + [ + "in", + "pmap:kind", + "zoo" + ] + ], + "paint": { + "fill-color": "#191919" + } + }, + { + "id": "landuse_military", + "type": "fill", + "source": "protomaps", + "source-layer": "landuse", + "filter": [ + "any", + [ + "in", + "pmap:kind", + "military", + "naval_base", + "airfield" + ] + ], + "paint": { + "fill-color": "#191919" + } + }, + { + "id": "natural_wood", + "type": "fill", + "source": "protomaps", + "source-layer": "natural", + "filter": [ + "any", + [ + "in", + "pmap:kind", + "wood", + "nature_reserve", + "forest" + ] + ], + "paint": { + "fill-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + "#1a1a1a", + 12, + "#1a1a1a" + ] + } + }, + { + "id": "natural_scrub", + "type": "fill", + "source": "protomaps", + "source-layer": "natural", + "filter": [ + "in", + "pmap:kind", + "scrub", + "grassland", + "grass" + ], + "paint": { + "fill-color": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + "#1c1c1c", + 12, + "#1c1c1c" + ] + } + }, + { + "id": "natural_glacier", + "type": "fill", + "source": "protomaps", + "source-layer": "natural", + "filter": [ + "==", + "pmap:kind", + "glacier" + ], + "paint": { + "fill-color": "#191919" + } + }, + { + "id": "natural_sand", + "type": "fill", + "source": "protomaps", + "source-layer": "natural", + "filter": [ + "==", + "pmap:kind", + "sand" + ], + "paint": { + "fill-color": "#161616" + } + }, + { + "id": "landuse_aerodrome", + "type": "fill", + "source": "protomaps", + "source-layer": "landuse", + "filter": [ + "any", + [ + "in", + "pmap:kind", + "aerodrome" + ] + ], + "paint": { + "fill-color": "#191919" + } + }, + { + "id": "transit_runway", + "type": "line", + "source": "protomaps", + "source-layer": "transit", + "filter": [ + "any", + [ + "in", + "pmap:kind_detail", + "runway" + ] + ], + "paint": { + "line-color": "#323232", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 10, + 0, + 12, + 4, + 18, + 30 + ] + } + }, + { + "id": "transit_taxiway", + "type": "line", + "source": "protomaps", + "source-layer": "transit", + "minzoom": 13, + "filter": [ + "any", + [ + "in", + "pmap:kind_detail", + "taxiway" + ] + ], + "paint": { + "line-color": "#323232", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 13.5, + 1, + 15, + 6 + ] + } + }, + { + "id": "water", + "type": "fill", + "source": "protomaps", + "source-layer": "water", + "paint": { + "fill-color": "#333333" + } + }, + { + "id": "physical_line_stream", + "type": "line", + "source": "protomaps", + "source-layer": "physical_line", + "minzoom": 14, + "filter": [ + "all", + [ + "in", + "pmap:kind", + "stream" + ] + ], + "paint": { + "line-color": "#333333", + "line-width": 0.5 + } + }, + { + "id": "physical_line_river", + "type": "line", + "source": "protomaps", + "source-layer": "physical_line", + "minzoom": 9, + "filter": [ + "all", + [ + "in", + "pmap:kind", + "river" + ] + ], + "paint": { + "line-color": "#333333", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 9, + 0, + 9.5, + 1, + 18, + 12 + ] + } + }, + { + "id": "landuse_pedestrian", + "type": "fill", + "source": "protomaps", + "source-layer": "landuse", + "filter": [ + "any", + [ + "==", + "pmap:kind", + "pedestrian" + ] + ], + "paint": { + "fill-color": "#191919" + } + }, + { + "id": "landuse_pier", + "type": "fill", + "source": "protomaps", + "source-layer": "landuse", + "filter": [ + "any", + [ + "==", + "pmap:kind", + "pier" + ] + ], + "paint": { + "fill-color": "#0a0a0a" + } + }, + { + "id": "roads_tunnels_other_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "in", + "pmap:kind", + "other", + "path" + ] + ], + "paint": { + "line-color": "#101010", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 14, + 0, + 20, + 7 + ] + } + }, + { + "id": "roads_tunnels_minor_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "minor_road" + ] + ], + "paint": { + "line-color": "#101010", + "line-dasharray": [ + 3, + 2 + ], + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 11, + 0, + 12.5, + 0.5, + 15, + 2, + 18, + 11 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 12, + 0, + 12.5, + 1 + ] + } + }, + { + "id": "roads_tunnels_link_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "==", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#101010", + "line-dasharray": [ + 3, + 2 + ], + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 13.5, + 1, + 18, + 11 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 12, + 0, + 12.5, + 1 + ] + } + }, + { + "id": "roads_tunnels_medium_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "medium_road" + ] + ], + "paint": { + "line-color": "#101010", + "line-dasharray": [ + 3, + 2 + ], + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 7.5, + 0.5, + 18, + 13 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 10, + 0, + 10.5, + 1 + ] + } + }, + { + "id": "roads_tunnels_major_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "major_road" + ] + ], + "paint": { + "line-color": "#101010", + "line-dasharray": [ + 3, + 2 + ], + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 7.5, + 0.5, + 18, + 13 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 9, + 0, + 9.5, + 1 + ] + } + }, + { + "id": "roads_tunnels_highway_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "highway" + ], + [ + "!=", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#101010", + "line-dasharray": [ + 6, + 0.5 + ], + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 3, + 0, + 3.5, + 0.5, + 18, + 15 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 7.5, + 1, + 20, + 15 + ] + } + }, + { + "id": "roads_tunnels_other", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "in", + "pmap:kind", + "other", + "path" + ] + ], + "paint": { + "line-color": "#292929", + "line-dasharray": [ + 4.5, + 0.5 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 14, + 0, + 20, + 7 + ] + } + }, + { + "id": "roads_tunnels_minor", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "minor_road" + ] + ], + "paint": { + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 11, + 0, + 12.5, + 0.5, + 15, + 2, + 18, + 11 + ] + } + }, + { + "id": "roads_tunnels_link", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "==", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 13.5, + 1, + 18, + 11 + ] + } + }, + { + "id": "roads_tunnels_medium", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "medium_road" + ] + ], + "paint": { + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 12, + 1.2, + 15, + 3, + 18, + 13 + ] + } + }, + { + "id": "roads_tunnels_major", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "major_road" + ] + ], + "paint": { + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 6, + 0, + 12, + 1.6, + 15, + 3, + 18, + 13 + ] + } + }, + { + "id": "roads_tunnels_highway", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "<", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "highway" + ], + [ + "!=", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 3, + 0, + 6, + 1.1, + 12, + 1.6, + 15, + 5, + 18, + 15 + ] + } + }, + { + "id": "buildings", + "type": "fill", + "source": "protomaps", + "source-layer": "buildings", + "paint": { + "fill-color": "#0a0a0a", + "fill-opacity": 0.5 + } + }, + { + "id": "transit_pier", + "type": "line", + "source": "protomaps", + "source-layer": "transit", + "filter": [ + "any", + [ + "==", + "pmap:kind", + "pier" + ] + ], + "paint": { + "line-color": "#0a0a0a", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 12, + 0, + 12.5, + 0.5, + 20, + 16 + ] + } + }, + { + "id": "roads_minor_service_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "minor_road" + ], + [ + "==", + "pmap:kind_detail", + "service" + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 18, + 8 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 13.5, + 0.8 + ] + } + }, + { + "id": "roads_minor_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "minor_road" + ], + [ + "!=", + "pmap:kind_detail", + "service" + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 11, + 0, + 12.5, + 0.5, + 15, + 2, + 18, + 11 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 12, + 0, + 12.5, + 1 + ] + } + }, + { + "id": "roads_link_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 13.5, + 1, + 18, + 11 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 13.5, + 1.5 + ] + } + }, + { + "id": "roads_medium_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "medium_road" + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 12, + 1.2, + 15, + 3, + 18, + 13 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 10, + 0, + 10.5, + 1.5 + ] + } + }, + { + "id": "roads_major_casing_late", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "major_road" + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 6, + 0, + 12, + 1.6, + 15, + 3, + 18, + 13 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 9, + 0, + 9.5, + 1 + ] + } + }, + { + "id": "roads_highway_casing_late", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "highway" + ], + [ + "!=", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 3, + 0, + 3.5, + 0.5, + 18, + 15 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 7.5, + 1, + 20, + 15 + ] + } + }, + { + "id": "roads_other", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "in", + "pmap:kind", + "other", + "path" + ] + ], + "paint": { + "line-color": "#1f1f1f", + "line-dasharray": [ + 3, + 1 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 14, + 0, + 20, + 7 + ] + } + }, + { + "id": "roads_link", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "==", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#1f1f1f", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 13.5, + 1, + 18, + 11 + ] + } + }, + { + "id": "roads_minor_service", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "minor_road" + ], + [ + "==", + "pmap:kind_detail", + "service" + ] + ], + "paint": { + "line-color": "#1f1f1f", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 18, + 8 + ] + } + }, + { + "id": "roads_minor", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "minor_road" + ], + [ + "!=", + "pmap:kind_detail", + "service" + ] + ], + "paint": { + "line-color": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 11, + "#292929", + 16, + "#1f1f1f" + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 11, + 0, + 12.5, + 0.5, + 15, + 2, + 18, + 11 + ] + } + }, + { + "id": "roads_medium", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "medium_road" + ] + ], + "paint": { + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 12, + 1.2, + 15, + 3, + 18, + 13 + ] + } + }, + { + "id": "roads_major_casing_early", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "maxzoom": 12, + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "major_road" + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 7.5, + 0.5, + 18, + 13 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 9, + 0, + 9.5, + 1 + ] + } + }, + { + "id": "roads_major", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "major_road" + ] + ], + "paint": { + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 6, + 0, + 12, + 1.6, + 15, + 3, + 18, + 13 + ] + } + }, + { + "id": "roads_highway_casing_early", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "maxzoom": 12, + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "highway" + ], + [ + "!=", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 3, + 0, + 3.5, + 0.5, + 18, + 15 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 7.5, + 1 + ] + } + }, + { + "id": "roads_highway", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + "==", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "highway" + ], + [ + "!=", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 3, + 0, + 6, + 1.1, + 12, + 1.6, + 15, + 5, + 18, + 15 + ] + } + }, + { + "id": "transit_railway", + "type": "line", + "source": "protomaps", + "source-layer": "transit", + "filter": [ + "all", + [ + "==", + "pmap:kind", + "rail" + ] + ], + "paint": { + "line-dasharray": [ + 0.3, + 0.75 + ], + "line-opacity": 0.5, + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 3, + 0, + 6, + 0.15, + 18, + 9 + ] + } + }, + { + "id": "boundaries_country", + "type": "line", + "source": "protomaps", + "source-layer": "boundaries", + "filter": [ + "<=", + "pmap:min_admin_level", + 2 + ], + "paint": { + "line-color": "#707070", + "line-width": 1, + "line-dasharray": [ + 3, + 2 + ] + } + }, + { + "id": "boundaries", + "type": "line", + "source": "protomaps", + "source-layer": "boundaries", + "filter": [ + ">", + "pmap:min_admin_level", + 2 + ], + "paint": { + "line-color": "#707070", + "line-width": 0.5, + "line-dasharray": [ + 3, + 2 + ] + } + }, + { + "id": "roads_bridges_other_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "in", + "pmap:kind", + "other", + "path" + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 14, + 0, + 20, + 7 + ] + } + }, + { + "id": "roads_bridges_link_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "==", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 13.5, + 1, + 18, + 11 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 12, + 0, + 12.5, + 1.5 + ] + } + }, + { + "id": "roads_bridges_minor_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "minor_road" + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 11, + 0, + 12.5, + 0.5, + 15, + 2, + 18, + 11 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 13.5, + 0.8 + ] + } + }, + { + "id": "roads_bridges_medium_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "medium_road" + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 12, + 1.2, + 15, + 3, + 18, + 13 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 10, + 0, + 10.5, + 1.5 + ] + } + }, + { + "id": "roads_bridges_major_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "major_road" + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 7.5, + 0.5, + 18, + 10 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 9, + 0, + 9.5, + 1.5 + ] + } + }, + { + "id": "roads_bridges_other", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "in", + "pmap:kind", + "other", + "path" + ] + ], + "paint": { + "line-color": "#1f1f1f", + "line-dasharray": [ + 2, + 1 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 14, + 0, + 20, + 7 + ] + } + }, + { + "id": "roads_bridges_minor", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "minor_road" + ] + ], + "paint": { + "line-color": "#1f1f1f", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 11, + 0, + 12.5, + 0.5, + 15, + 2, + 18, + 11 + ] + } + }, + { + "id": "roads_bridges_link", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "==", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#1f1f1f", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 13, + 0, + 13.5, + 1, + 18, + 11 + ] + } + }, + { + "id": "roads_bridges_medium", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "medium_road" + ] + ], + "paint": { + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 12, + 1.2, + 15, + 3, + 18, + 13 + ] + } + }, + { + "id": "roads_bridges_major", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "major_road" + ] + ], + "paint": { + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 6, + 0, + 12, + 1.6, + 15, + 3, + 18, + 13 + ] + } + }, + { + "id": "roads_bridges_highway_casing", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 12, + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "highway" + ], + [ + "!=", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#141414", + "line-gap-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 3, + 0, + 3.5, + 0.5, + 18, + 15 + ], + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 7, + 0, + 7.5, + 1, + 20, + 15 + ] + } + }, + { + "id": "roads_bridges_highway", + "type": "line", + "source": "protomaps", + "source-layer": "roads", + "filter": [ + "all", + [ + ">", + "pmap:level", + 0 + ], + [ + "==", + "pmap:kind", + "highway" + ], + [ + "!=", + "pmap:link", + 1 + ] + ], + "paint": { + "line-color": "#292929", + "line-width": [ + "interpolate", + [ + "exponential", + 1.6 + ], + [ + "zoom" + ], + 3, + 0, + 6, + 1.1, + 12, + 1.6, + 15, + 5, + 18, + 15 + ] + } + }, + { + "id": "physical_line_waterway_label", + "type": "symbol", + "source": "protomaps", + "source-layer": "physical_line", + "minzoom": 13, + "filter": [ + "all", + [ + "in", + "pmap:kind", + "river", + "stream" + ] + ], + "layout": { + "symbol-placement": "line", + "text-font": [ + "Noto Sans Regular" + ], + "text-field": [ + "get", + "name" + ], + "text-size": 12, + "text-letter-spacing": 0.3 + }, + "paint": { + "text-color": "#707070" + } + }, + { + "id": "physical_point_peak", + "type": "symbol", + "source": "protomaps", + "source-layer": "physical_point", + "filter": [ + "any", + [ + "==", + "pmap:kind", + "peak" + ] + ], + "layout": { + "text-font": [ + "Noto Sans Italic" + ], + "text-field": [ + "get", + "name" + ], + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 10, + 8, + 16, + 12 + ], + "text-letter-spacing": 0.1, + "text-max-width": 9 + }, + "paint": { + "text-color": "#707070", + "text-halo-width": 1.5 + } + }, + { + "id": "roads_labels_minor", + "type": "symbol", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 15, + "filter": [ + "any", + [ + "in", + "pmap:kind", + "minor_road", + "other", + "path" + ] + ], + "layout": { + "symbol-sort-key": [ + "get", + "pmap:min_zoom" + ], + "symbol-placement": "line", + "text-font": [ + "Noto Sans Regular" + ], + "text-field": [ + "get", + "name" + ], + "text-size": 12 + }, + "paint": { + "text-color": "#525252", + "text-halo-color": "#141414", + "text-halo-width": 2 + } + }, + { + "id": "physical_point_ocean", + "type": "symbol", + "source": "protomaps", + "source-layer": "physical_point", + "filter": [ + "any", + [ + "in", + "pmap:kind", + "sea", + "ocean", + "lake", + "water", + "bay", + "strait", + "fjord" + ] + ], + "layout": { + "text-font": [ + "Noto Sans Medium" + ], + "text-field": [ + "get", + "name" + ], + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 10, + 10, + 12 + ], + "text-letter-spacing": 0.1, + "text-max-width": 9, + "text-transform": "uppercase" + }, + "paint": { + "text-color": "#707070" + } + }, + { + "id": "physical_point_lakes", + "type": "symbol", + "source": "protomaps", + "source-layer": "physical_point", + "filter": [ + "any", + [ + "in", + "pmap:kind", + "lake", + "water" + ] + ], + "layout": { + "text-font": [ + "Noto Sans Medium" + ], + "text-field": [ + "get", + "name" + ], + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 0, + 6, + 12, + 10, + 12 + ], + "text-letter-spacing": 0.1, + "text-max-width": 9 + }, + "paint": { + "text-color": "#707070" + } + }, + { + "id": "roads_labels_major", + "type": "symbol", + "source": "protomaps", + "source-layer": "roads", + "minzoom": 11, + "filter": [ + "any", + [ + "in", + "pmap:kind", + "highway", + "major_road", + "medium_road" + ] + ], + "layout": { + "symbol-sort-key": [ + "get", + "pmap:min_zoom" + ], + "symbol-placement": "line", + "text-font": [ + "Noto Sans Regular" + ], + "text-field": [ + "get", + "name" + ], + "text-size": 12 + }, + "paint": { + "text-color": "#5c5c5c", + "text-halo-color": "#141414", + "text-halo-width": 2 + } + }, + { + "id": "places_subplace", + "type": "symbol", + "source": "protomaps", + "source-layer": "places", + "filter": [ + "==", + "pmap:kind", + "neighbourhood" + ], + "layout": { + "symbol-sort-key": [ + "get", + "pmap:min_zoom" + ], + "text-field": "{name}", + "text-font": [ + "Noto Sans Regular" + ], + "text-max-width": 7, + "text-letter-spacing": 0.1, + "text-padding": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 5, + 2, + 8, + 4, + 12, + 18, + 15, + 20 + ], + "text-size": [ + "interpolate", + [ + "exponential", + 1.2 + ], + [ + "zoom" + ], + 11, + 8, + 14, + 14, + 18, + 24 + ], + "text-transform": "uppercase" + }, + "paint": { + "text-color": "#5c5c5c", + "text-halo-color": "#141414", + "text-halo-width": 1.5 + } + }, + { + "id": "places_locality", + "type": "symbol", + "source": "protomaps", + "source-layer": "places", + "filter": [ + "==", + "pmap:kind", + "locality" + ], + "layout": { + "icon-image": [ + "step", + [ + "zoom" + ], + "townspot", + 8, + "" + ], + "icon-size": 0.7, + "text-field": "{name}", + "text-font": [ + "case", + [ + "<=", + [ + "get", + "pmap:min_zoom" + ], + 5 + ], + [ + "literal", + [ + "Noto Sans Medium" + ] + ], + [ + "literal", + [ + "Noto Sans Regular" + ] + ] + ], + "text-padding": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 5, + 3, + 8, + 7, + 12, + 11 + ], + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 2, + [ + "case", + [ + "<", + [ + "get", + "pmap:population_rank" + ], + 13 + ], + 8, + [ + ">=", + [ + "get", + "pmap:population_rank" + ], + 13 + ], + 13, + 0 + ], + 4, + [ + "case", + [ + "<", + [ + "get", + "pmap:population_rank" + ], + 13 + ], + 10, + [ + ">=", + [ + "get", + "pmap:population_rank" + ], + 13 + ], + 15, + 0 + ], + 6, + [ + "case", + [ + "<", + [ + "get", + "pmap:population_rank" + ], + 12 + ], + 11, + [ + ">=", + [ + "get", + "pmap:population_rank" + ], + 12 + ], + 17, + 0 + ], + 8, + [ + "case", + [ + "<", + [ + "get", + "pmap:population_rank" + ], + 11 + ], + 11, + [ + ">=", + [ + "get", + "pmap:population_rank" + ], + 11 + ], + 18, + 0 + ], + 10, + [ + "case", + [ + "<", + [ + "get", + "pmap:population_rank" + ], + 9 + ], + 12, + [ + ">=", + [ + "get", + "pmap:population_rank" + ], + 9 + ], + 20, + 0 + ], + 15, + [ + "case", + [ + "<", + [ + "get", + "pmap:population_rank" + ], + 8 + ], + 12, + [ + ">=", + [ + "get", + "pmap:population_rank" + ], + 8 + ], + 22, + 0 + ] + ], + "icon-padding": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + 0, + 8, + 4, + 10, + 8, + 12, + 6, + 22, + 2 + ], + "text-anchor": [ + "step", + [ + "zoom" + ], + "left", + 8, + "center" + ], + "text-radial-offset": 0.4 + }, + "paint": { + "text-color": "#999999", + "text-halo-color": "#141414", + "text-halo-width": 1 + } + }, + { + "id": "places_region", + "type": "symbol", + "source": "protomaps", + "source-layer": "places", + "filter": [ + "==", + "pmap:kind", + "region" + ], + "layout": { + "symbol-sort-key": [ + "get", + "pmap:min_zoom" + ], + "text-field": [ + "step", + [ + "zoom" + ], + [ + "get", + "name:short" + ], + 6, + [ + "get", + "name" + ] + ], + "text-font": [ + "Noto Sans Regular" + ], + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 3, + 11, + 7, + 16 + ], + "text-radial-offset": 0.2, + "text-anchor": "center", + "text-transform": "uppercase" + }, + "paint": { + "text-color": "#3d3d3d", + "text-halo-color": "#141414", + "text-halo-width": 2 + } + }, + { + "id": "places_country", + "type": "symbol", + "source": "protomaps", + "source-layer": "places", + "filter": [ + "==", + "pmap:kind", + "country" + ], + "layout": { + "symbol-sort-key": [ + "get", + "pmap:min_zoom" + ], + "text-field": "{name}", + "text-font": [ + "Noto Sans Medium" + ], + "text-size": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 2, + [ + "case", + [ + "<", + [ + "get", + "pmap:population_rank" + ], + 10 + ], + 8, + [ + ">=", + [ + "get", + "pmap:population_rank" + ], + 10 + ], + 12, + 0 + ], + 6, + [ + "case", + [ + "<", + [ + "get", + "pmap:population_rank" + ], + 8 + ], + 10, + [ + ">=", + [ + "get", + "pmap:population_rank" + ], + 8 + ], + 18, + 0 + ], + 8, + [ + "case", + [ + "<", + [ + "get", + "pmap:population_rank" + ], + 7 + ], + 11, + [ + ">=", + [ + "get", + "pmap:population_rank" + ], + 7 + ], + 20, + 0 + ] + ], + "icon-padding": [ + "interpolate", + [ + "linear" + ], + [ + "zoom" + ], + 0, + 2, + 14, + 2, + 16, + 20, + 17, + 2, + 22, + 2 + ], + "text-transform": "uppercase" + }, + "paint": { + "text-color": "#707070" + } + } + ], + "id": "immich-map-dark" +} \ No newline at end of file diff --git a/data/styles/default/sprite.json b/data/styles/default/sprite.json new file mode 100644 index 0000000..adfe33f --- /dev/null +++ b/data/styles/default/sprite.json @@ -0,0 +1,611 @@ +{ + "airfield_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 50, + "y": 0 + }, + "airport_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 45, + "y": 36 + }, + "alcohol_shop_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 50, + "y": 54 + }, + "amusement_park_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 67, + "y": 0 + }, + "aquarium_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 84, + "y": 0 + }, + "art_gallery_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 101, + "y": 0 + }, + "attraction_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 118, + "y": 0 + }, + "bakery_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 64, + "y": 18 + }, + "bank_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 81, + "y": 18 + }, + "bar_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 98, + "y": 18 + }, + "beer_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 115, + "y": 18 + }, + "bicycle_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 62, + "y": 36 + }, + "bicycle_share_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 79, + "y": 36 + }, + "bus_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 96, + "y": 36 + }, + "cafe_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 113, + "y": 36 + }, + "campsite_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 67, + "y": 54 + }, + "car_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 84, + "y": 54 + }, + "castle_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 101, + "y": 54 + }, + "cemetery_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 118, + "y": 54 + }, + "cinema_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 0, + "y": 72 + }, + "circle_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 17, + "y": 72 + }, + "circle_stroked_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 34, + "y": 72 + }, + "clothing_store_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 51, + "y": 72 + }, + "college_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 68, + "y": 72 + }, + "dentist_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 85, + "y": 72 + }, + "doctor_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 102, + "y": 72 + }, + "dog_park_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 119, + "y": 72 + }, + "drinking_water_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 0, + "y": 89 + }, + "embassy_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 17, + "y": 89 + }, + "entrance_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 34, + "y": 89 + }, + "fast_food_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 51, + "y": 89 + }, + "ferry_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 68, + "y": 89 + }, + "fire_station_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 85, + "y": 89 + }, + "fuel_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 102, + "y": 89 + }, + "garden_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 119, + "y": 89 + }, + "golf_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 0, + "y": 106 + }, + "grocery_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 17, + "y": 106 + }, + "harbor_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 34, + "y": 106 + }, + "heliport_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 51, + "y": 106 + }, + "hospital_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 68, + "y": 106 + }, + "ice_cream_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 85, + "y": 106 + }, + "information_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 102, + "y": 106 + }, + "laundry_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 119, + "y": 106 + }, + "library_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 0, + "y": 123 + }, + "lodging_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 17, + "y": 123 + }, + "marker_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 34, + "y": 123 + }, + "monument_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 51, + "y": 123 + }, + "motorway_1": { + "height": 18, + "pixelRatio": 1, + "width": 18, + "x": 0, + "y": 0 + }, + "motorway_2": { + "height": 18, + "pixelRatio": 1, + "width": 25, + "x": 0, + "y": 18 + }, + "motorway_3": { + "height": 18, + "pixelRatio": 1, + "width": 32, + "x": 18, + "y": 0 + }, + "motorway_4": { + "height": 18, + "pixelRatio": 1, + "width": 39, + "x": 25, + "y": 18 + }, + "motorway_5": { + "height": 18, + "pixelRatio": 1, + "width": 45, + "x": 0, + "y": 36 + }, + "motorway_6": { + "height": 18, + "pixelRatio": 1, + "width": 50, + "x": 0, + "y": 54 + }, + "mountain_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 68, + "y": 123 + }, + "museum_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 85, + "y": 123 + }, + "music_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 102, + "y": 123 + }, + "park_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 119, + "y": 123 + }, + "pharmacy_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 136, + "y": 72 + }, + "picnic_site_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 153, + "y": 72 + }, + "place_of_worship_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 170, + "y": 72 + }, + "playground_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 187, + "y": 72 + }, + "police_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 204, + "y": 72 + }, + "post_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 221, + "y": 72 + }, + "prison_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 238, + "y": 72 + }, + "rail_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 255, + "y": 72 + }, + "rail_light_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 136, + "y": 89 + }, + "rail_metro_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 153, + "y": 89 + }, + "religious_christian_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 170, + "y": 89 + }, + "religious_jewish_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 187, + "y": 89 + }, + "religious_muslim_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 204, + "y": 89 + }, + "restaurant_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 221, + "y": 89 + }, + "rocket_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 238, + "y": 89 + }, + "school_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 255, + "y": 89 + }, + "shop_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 136, + "y": 106 + }, + "stadium_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 153, + "y": 106 + }, + "star_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 170, + "y": 106 + }, + "suitcase_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 187, + "y": 106 + }, + "swimming_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 204, + "y": 106 + }, + "theatre_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 221, + "y": 106 + }, + "toilet_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 238, + "y": 106 + }, + "town_hall_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 255, + "y": 106 + }, + "triangle_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 136, + "y": 123 + }, + "triangle_stroked_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 153, + "y": 123 + }, + "veterinary_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 170, + "y": 123 + }, + "volcano_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 187, + "y": 123 + }, + "wave": { + "height": 8, + "pixelRatio": 1, + "width": 16, + "x": 272, + "y": 72 + }, + "zoo_11": { + "height": 17, + "pixelRatio": 1, + "width": 17, + "x": 204, + "y": 123 + } +} \ No newline at end of file diff --git a/data/styles/default/sprite.png b/data/styles/default/sprite.png new file mode 100644 index 0000000..cd24526 Binary files /dev/null and b/data/styles/default/sprite.png differ diff --git a/data/styles/default/sprite@2x.json b/data/styles/default/sprite@2x.json new file mode 100644 index 0000000..7b315af --- /dev/null +++ b/data/styles/default/sprite@2x.json @@ -0,0 +1,611 @@ +{ + "airfield_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 100, + "y": 0 + }, + "airport_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 90, + "y": 72 + }, + "alcohol_shop_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 100, + "y": 108 + }, + "amusement_park_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 134, + "y": 0 + }, + "aquarium_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 168, + "y": 0 + }, + "art_gallery_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 202, + "y": 0 + }, + "attraction_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 236, + "y": 0 + }, + "bakery_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 128, + "y": 36 + }, + "bank_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 162, + "y": 36 + }, + "bar_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 196, + "y": 36 + }, + "beer_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 230, + "y": 36 + }, + "bicycle_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 124, + "y": 72 + }, + "bicycle_share_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 158, + "y": 72 + }, + "bus_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 192, + "y": 72 + }, + "cafe_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 226, + "y": 72 + }, + "campsite_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 134, + "y": 108 + }, + "car_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 168, + "y": 108 + }, + "castle_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 202, + "y": 108 + }, + "cemetery_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 236, + "y": 108 + }, + "cinema_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 0, + "y": 144 + }, + "circle_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 34, + "y": 144 + }, + "circle_stroked_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 68, + "y": 144 + }, + "clothing_store_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 102, + "y": 144 + }, + "college_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 136, + "y": 144 + }, + "dentist_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 170, + "y": 144 + }, + "doctor_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 204, + "y": 144 + }, + "dog_park_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 238, + "y": 144 + }, + "drinking_water_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 0, + "y": 178 + }, + "embassy_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 34, + "y": 178 + }, + "entrance_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 68, + "y": 178 + }, + "fast_food_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 102, + "y": 178 + }, + "ferry_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 136, + "y": 178 + }, + "fire_station_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 170, + "y": 178 + }, + "fuel_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 204, + "y": 178 + }, + "garden_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 238, + "y": 178 + }, + "golf_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 0, + "y": 212 + }, + "grocery_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 34, + "y": 212 + }, + "harbor_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 68, + "y": 212 + }, + "heliport_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 102, + "y": 212 + }, + "hospital_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 136, + "y": 212 + }, + "ice_cream_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 170, + "y": 212 + }, + "information_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 204, + "y": 212 + }, + "laundry_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 238, + "y": 212 + }, + "library_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 0, + "y": 246 + }, + "lodging_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 34, + "y": 246 + }, + "marker_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 68, + "y": 246 + }, + "monument_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 102, + "y": 246 + }, + "motorway_1": { + "height": 36, + "pixelRatio": 2, + "width": 36, + "x": 0, + "y": 0 + }, + "motorway_2": { + "height": 36, + "pixelRatio": 2, + "width": 50, + "x": 0, + "y": 36 + }, + "motorway_3": { + "height": 36, + "pixelRatio": 2, + "width": 64, + "x": 36, + "y": 0 + }, + "motorway_4": { + "height": 36, + "pixelRatio": 2, + "width": 78, + "x": 50, + "y": 36 + }, + "motorway_5": { + "height": 36, + "pixelRatio": 2, + "width": 90, + "x": 0, + "y": 72 + }, + "motorway_6": { + "height": 36, + "pixelRatio": 2, + "width": 100, + "x": 0, + "y": 108 + }, + "mountain_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 136, + "y": 246 + }, + "museum_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 170, + "y": 246 + }, + "music_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 204, + "y": 246 + }, + "park_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 238, + "y": 246 + }, + "pharmacy_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 272, + "y": 144 + }, + "picnic_site_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 306, + "y": 144 + }, + "place_of_worship_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 340, + "y": 144 + }, + "playground_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 374, + "y": 144 + }, + "police_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 408, + "y": 144 + }, + "post_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 442, + "y": 144 + }, + "prison_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 476, + "y": 144 + }, + "rail_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 510, + "y": 144 + }, + "rail_light_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 272, + "y": 178 + }, + "rail_metro_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 306, + "y": 178 + }, + "religious_christian_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 340, + "y": 178 + }, + "religious_jewish_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 374, + "y": 178 + }, + "religious_muslim_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 408, + "y": 178 + }, + "restaurant_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 442, + "y": 178 + }, + "rocket_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 476, + "y": 178 + }, + "school_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 510, + "y": 178 + }, + "shop_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 272, + "y": 212 + }, + "stadium_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 306, + "y": 212 + }, + "star_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 340, + "y": 212 + }, + "suitcase_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 374, + "y": 212 + }, + "swimming_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 408, + "y": 212 + }, + "theatre_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 442, + "y": 212 + }, + "toilet_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 476, + "y": 212 + }, + "town_hall_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 510, + "y": 212 + }, + "triangle_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 272, + "y": 246 + }, + "triangle_stroked_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 306, + "y": 246 + }, + "veterinary_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 340, + "y": 246 + }, + "volcano_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 374, + "y": 246 + }, + "wave": { + "height": 16, + "pixelRatio": 2, + "width": 32, + "x": 544, + "y": 144 + }, + "zoo_11": { + "height": 34, + "pixelRatio": 2, + "width": 34, + "x": 408, + "y": 246 + } +} \ No newline at end of file diff --git a/data/styles/default/sprite@2x.png b/data/styles/default/sprite@2x.png new file mode 100644 index 0000000..c8ee504 Binary files /dev/null and b/data/styles/default/sprite@2x.png differ diff --git a/data/styles/default/style.json b/data/styles/default/style.json new file mode 100644 index 0000000..2cc02ca --- /dev/null +++ b/data/styles/default/style.json @@ -0,0 +1,3445 @@ +{ + "version": 8, + "name": "OSM Bright", + "metadata": { + "mapbox:type": "template", + "mapbox:groups": { + "1444849364238.8171": { + "collapsed": false, + "name": "Buildings" + }, + "1444849354174.1904": { + "collapsed": true, + "name": "Tunnels" + }, + "1444849388993.3071": { + "collapsed": false, + "name": "Land" + }, + "1444849242106.713": { + "collapsed": false, + "name": "Places" + }, + "1444849382550.77": { + "collapsed": false, + "name": "Water" + }, + "1444849345966.4436": { + "collapsed": false, + "name": "Roads" + }, + "1444849334699.1902": { + "collapsed": true, + "name": "Bridges" + } + }, + "mapbox:autocomposite": true, + "openmaptiles:version": "3.x" + }, + "center": [ + -120.97945979949654, + 47.82891995412305 + ], + "zoom": 7.194570163444179, + "bearing": 0, + "pitch": 0, + "sources": { + "openmaptiles": { + "type": "vector", + "url": "mbtiles://{openmaptiles}" + } + }, + "sprite": "{styleJsonFolder}/sprite", + "glyphs": "{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "#f8f4f0" + } + }, + { + "id": "landcover-glacier", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "landcover", + "filter": [ + "==", + "subclass", + "glacier" + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#fff", + "fill-opacity": { + "base": 1, + "stops": [ + [ + 0, + 0.9 + ], + [ + 10, + 0.3 + ] + ] + } + } + }, + { + "id": "landuse-residential", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "landuse", + "filter": [ + "==", + "class", + "residential" + ], + "paint": { + "fill-color": { + "base": 1, + "stops": [ + [ + 12, + "hsla(30, 19%, 90%, 0.4)" + ], + [ + 16, + "hsla(30, 19%, 90%, 0.2)" + ] + ] + } + } + }, + { + "id": "landuse-commercial", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "landuse", + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "class", + "commercial" + ] + ], + "paint": { + "fill-color": "hsla(0, 60%, 87%, 0.23)" + } + }, + { + "id": "landuse-industrial", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "landuse", + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "class", + "industrial" + ] + ], + "paint": { + "fill-color": "hsla(49, 100%, 88%, 0.34)" + } + }, + { + "id": "park", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "park", + "filter": [ + "==", + "$type", + "Polygon" + ], + "paint": { + "fill-color": "#d8e8c8", + "fill-opacity": { + "base": 1.8, + "stops": [ + [ + 9, + 0.5 + ], + [ + 12, + 0.2 + ] + ] + } + } + }, + { + "id": "park-outline", + "type": "line", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "park", + "filter": [ + "==", + "$type", + "Polygon" + ], + "layout": {}, + "paint": { + "line-color": { + "base": 1, + "stops": [ + [ + 6, + "hsla(96, 40%, 49%, 0.36)" + ], + [ + 8, + "hsla(96, 40%, 49%, 0.66)" + ] + ] + }, + "line-dasharray": [ + 3, + 3 + ] + } + }, + { + "id": "landuse-cemetery", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "landuse", + "filter": [ + "==", + "class", + "cemetery" + ], + "paint": { + "fill-color": "#e0e4dd" + } + }, + { + "id": "landuse-hospital", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "landuse", + "filter": [ + "==", + "class", + "hospital" + ], + "paint": { + "fill-color": "#fde" + } + }, + { + "id": "landuse-school", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "landuse", + "filter": [ + "==", + "class", + "school" + ], + "paint": { + "fill-color": "#f0e8f8" + } + }, + { + "id": "landuse-railway", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "landuse", + "filter": [ + "==", + "class", + "railway" + ], + "paint": { + "fill-color": "hsla(30, 19%, 90%, 0.4)" + } + }, + { + "id": "landcover-wood", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "landcover", + "filter": [ + "==", + "class", + "wood" + ], + "paint": { + "fill-color": "#6a4", + "fill-opacity": 0.1, + "fill-outline-color": "hsla(0, 0%, 0%, 0.03)", + "fill-antialias": { + "base": 1, + "stops": [ + [ + 0, + false + ], + [ + 9, + true + ] + ] + } + } + }, + { + "id": "landcover-grass", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "landcover", + "filter": [ + "==", + "class", + "grass" + ], + "paint": { + "fill-color": "#d8e8c8", + "fill-opacity": 1 + } + }, + { + "id": "landcover-grass-park", + "type": "fill", + "metadata": { + "mapbox:group": "1444849388993.3071" + }, + "source": "openmaptiles", + "source-layer": "park", + "filter": [ + "==", + "class", + "public_park" + ], + "paint": { + "fill-color": "#d8e8c8", + "fill-opacity": 0.8 + } + }, + { + "id": "waterway-other", + "type": "line", + "metadata": { + "mapbox:group": "1444849382550.77" + }, + "source": "openmaptiles", + "source-layer": "waterway", + "filter": [ + "!in", + "class", + "canal", + "river", + "stream" + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-color": "#a0c8f0", + "line-width": { + "base": 1.3, + "stops": [ + [ + 13, + 0.5 + ], + [ + 20, + 2 + ] + ] + } + } + }, + { + "id": "waterway-stream-canal", + "type": "line", + "metadata": { + "mapbox:group": "1444849382550.77" + }, + "source": "openmaptiles", + "source-layer": "waterway", + "filter": [ + "in", + "class", + "canal", + "stream" + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-color": "#a0c8f0", + "line-width": { + "base": 1.3, + "stops": [ + [ + 13, + 0.5 + ], + [ + 20, + 6 + ] + ] + } + } + }, + { + "id": "waterway-river", + "type": "line", + "metadata": { + "mapbox:group": "1444849382550.77" + }, + "source": "openmaptiles", + "source-layer": "waterway", + "filter": [ + "==", + "class", + "river" + ], + "layout": { + "line-cap": "round" + }, + "paint": { + "line-color": "#a0c8f0", + "line-width": { + "base": 1.2, + "stops": [ + [ + 10, + 0.8 + ], + [ + 20, + 6 + ] + ] + } + } + }, + { + "id": "water-offset", + "type": "fill", + "metadata": { + "mapbox:group": "1444849382550.77" + }, + "source": "openmaptiles", + "source-layer": "water", + "maxzoom": 8, + "filter": [ + "==", + "$type", + "Polygon" + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-opacity": 1, + "fill-color": "#a0c8f0", + "fill-translate": { + "base": 1, + "stops": [ + [ + 6, + [ + 2, + 0 + ] + ], + [ + 8, + [ + 0, + 0 + ] + ] + ] + } + } + }, + { + "id": "water", + "type": "fill", + "metadata": { + "mapbox:group": "1444849382550.77" + }, + "source": "openmaptiles", + "source-layer": "water", + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "hsl(210, 67%, 85%)" + } + }, + { + "id": "water-pattern", + "metadata": { + "mapbox:group": "1444849382550.77" + }, + "ref": "water", + "paint": { + "fill-translate": [ + 0, + 2.5 + ], + "fill-pattern": "wave" + } + }, + { + "id": "landcover-ice-shelf", + "type": "fill", + "metadata": { + "mapbox:group": "1444849382550.77" + }, + "source": "openmaptiles", + "source-layer": "landcover", + "filter": [ + "==", + "subclass", + "ice_shelf" + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "#fff", + "fill-opacity": { + "base": 1, + "stops": [ + [ + 0, + 0.9 + ], + [ + 10, + 0.3 + ] + ] + } + } + }, + { + "id": "building", + "type": "fill", + "metadata": { + "mapbox:group": "1444849364238.8171" + }, + "source": "openmaptiles", + "source-layer": "building", + "paint": { + "fill-color": { + "base": 1, + "stops": [ + [ + 15.5, + "#f2eae2" + ], + [ + 16, + "#dfdbd7" + ] + ] + }, + "fill-antialias": true + } + }, + { + "id": "building-top", + "type": "fill", + "metadata": { + "mapbox:group": "1444849364238.8171" + }, + "source": "openmaptiles", + "source-layer": "building", + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-translate": { + "base": 1, + "stops": [ + [ + 14, + [ + 0, + 0 + ] + ], + [ + 16, + [ + -2, + -2 + ] + ] + ] + }, + "fill-outline-color": "#dfdbd7", + "fill-color": "#f2eae2", + "fill-opacity": { + "base": 1, + "stops": [ + [ + 13, + 0 + ], + [ + 16, + 1 + ] + ] + } + } + }, + { + "id": "tunnel-service-track-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "service", + "track" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#cfcdca", + "line-dasharray": [ + 0.5, + 0.25 + ], + "line-width": { + "base": 1.2, + "stops": [ + [ + 15, + 1 + ], + [ + 16, + 4 + ], + [ + 20, + 11 + ] + ] + } + } + }, + { + "id": "tunnel-minor-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "==", + "class", + "minor" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#cfcdca", + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 12.5, + 1 + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 0.5 + ], + [ + 13, + 1 + ], + [ + 14, + 4 + ], + [ + 20, + 15 + ] + ] + } + } + }, + { + "id": "tunnel-secondary-tertiary-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "secondary", + "tertiary" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#e9ac77", + "line-opacity": 1, + "line-width": { + "base": 1.2, + "stops": [ + [ + 8, + 1.5 + ], + [ + 20, + 17 + ] + ] + } + } + }, + { + "id": "tunnel-trunk-primary-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "primary", + "trunk" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#e9ac77", + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0.4 + ], + [ + 6, + 0.6 + ], + [ + 7, + 1.5 + ], + [ + 20, + 22 + ] + ] + } + } + }, + { + "id": "tunnel-motorway-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "==", + "class", + "motorway" + ] + ], + "layout": { + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#e9ac77", + "line-dasharray": [ + 0.5, + 0.25 + ], + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0.4 + ], + [ + 6, + 0.6 + ], + [ + 7, + 1.5 + ], + [ + 20, + 22 + ] + ] + } + } + }, + { + "id": "tunnel-path", + "type": "line", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "==", + "class", + "path" + ] + ] + ], + "paint": { + "line-color": "#cba", + "line-dasharray": [ + 1.5, + 0.75 + ], + "line-width": { + "base": 1.2, + "stops": [ + [ + 15, + 1.2 + ], + [ + 20, + 4 + ] + ] + } + } + }, + { + "id": "tunnel-service-track", + "type": "line", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "service", + "track" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.2, + "stops": [ + [ + 15.5, + 0 + ], + [ + 16, + 2 + ], + [ + 20, + 7.5 + ] + ] + } + } + }, + { + "id": "tunnel-minor", + "type": "line", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "==", + "class", + "minor_road" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#fff", + "line-opacity": 1, + "line-width": { + "base": 1.2, + "stops": [ + [ + 13.5, + 0 + ], + [ + 14, + 2.5 + ], + [ + 20, + 11.5 + ] + ] + } + } + }, + { + "id": "tunnel-secondary-tertiary", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "ref": "tunnel-secondary-tertiary-casing", + "paint": { + "line-color": "#fff4c6", + "line-width": { + "base": 1.2, + "stops": [ + [ + 6.5, + 0 + ], + [ + 7, + 0.5 + ], + [ + 20, + 10 + ] + ] + } + } + }, + { + "id": "tunnel-trunk-primary", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "ref": "tunnel-trunk-primary-casing", + "paint": { + "line-color": "#fff4c6", + "line-width": { + "base": 1.2, + "stops": [ + [ + 6.5, + 0 + ], + [ + 7, + 0.5 + ], + [ + 20, + 18 + ] + ] + } + } + }, + { + "id": "tunnel-motorway", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "ref": "tunnel-motorway-casing", + "paint": { + "line-color": "#ffdaa6", + "line-width": { + "base": 1.2, + "stops": [ + [ + 6.5, + 0 + ], + [ + 7, + 0.5 + ], + [ + 20, + 18 + ] + ] + } + } + }, + { + "id": "tunnel-railway", + "type": "line", + "metadata": { + "mapbox:group": "1444849354174.1904" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "==", + "class", + "rail" + ] + ], + "paint": { + "line-color": "#bbb", + "line-width": { + "base": 1.4, + "stops": [ + [ + 14, + 0.4 + ], + [ + 15, + 0.75 + ], + [ + 20, + 2 + ] + ] + }, + "line-dasharray": [ + 2, + 2 + ] + } + }, + { + "id": "highway-area", + "type": "fill", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "==", + "$type", + "Polygon" + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "hsla(0, 0%, 89%, 0.56)", + "fill-outline-color": "#cfcdca", + "fill-opacity": 0.9, + "fill-antialias": false + } + }, + { + "id": "highway-motorway-link-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "motorway_link" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "#e9ac77", + "line-opacity": 1, + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 1 + ], + [ + 13, + 3 + ], + [ + 14, + 4 + ], + [ + 20, + 15 + ] + ] + } + } + }, + { + "id": "highway-link-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 13, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "primary_link", + "secondary_link", + "tertiary_link", + "trunk_link" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#e9ac77", + "line-opacity": 1, + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 1 + ], + [ + 13, + 3 + ], + [ + 14, + 4 + ], + [ + 20, + 15 + ] + ] + } + } + }, + { + "id": "highway-minor-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "!=", + "brunnel", + "tunnel" + ], + [ + "in", + "class", + "minor", + "service", + "track" + ] + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "#cfcdca", + "line-opacity": { + "stops": [ + [ + 12, + 0 + ], + [ + 12.5, + 1 + ] + ] + }, + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 0.5 + ], + [ + 13, + 1 + ], + [ + 14, + 4 + ], + [ + 20, + 15 + ] + ] + } + } + }, + { + "id": "highway-secondary-tertiary-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "secondary", + "tertiary" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#e9ac77", + "line-opacity": 1, + "line-width": { + "base": 1.2, + "stops": [ + [ + 8, + 1.5 + ], + [ + 20, + 17 + ] + ] + } + } + }, + { + "id": "highway-trunk-primary-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "primary", + "trunk" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#e9ac77", + "line-opacity": 1, + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0.4 + ], + [ + 6, + 0.6 + ], + [ + 7, + 1.5 + ], + [ + 20, + 22 + ] + ] + } + } + }, + { + "id": "highway-motorway-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 5, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "motorway" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#e9ac77", + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0.4 + ], + [ + 6, + 0.6 + ], + [ + 7, + 1.5 + ], + [ + 20, + 22 + ] + ] + } + } + }, + { + "id": "highway-path", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "path" + ] + ] + ], + "paint": { + "line-color": "#cba", + "line-dasharray": [ + 1.5, + 0.75 + ], + "line-width": { + "base": 1.2, + "stops": [ + [ + 15, + 1.2 + ], + [ + 20, + 4 + ] + ] + } + } + }, + { + "id": "highway-motorway-link", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 12, + "filter": [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "motorway_link" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "#fc8", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12.5, + 0 + ], + [ + 13, + 1.5 + ], + [ + 14, + 2.5 + ], + [ + 20, + 11.5 + ] + ] + } + } + }, + { + "id": "highway-link", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "ref": "highway-link-casing", + "paint": { + "line-color": "#fea", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12.5, + 0 + ], + [ + 13, + 1.5 + ], + [ + 14, + 2.5 + ], + [ + 20, + 11.5 + ] + ] + } + } + }, + { + "id": "highway-minor", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "ref": "highway-minor-casing", + "paint": { + "line-color": "#fff", + "line-opacity": 1, + "line-width": { + "base": 1.2, + "stops": [ + [ + 13.5, + 0 + ], + [ + 14, + 2.5 + ], + [ + 20, + 11.5 + ] + ] + } + } + }, + { + "id": "highway-secondary-tertiary", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "ref": "highway-secondary-tertiary-casing", + "paint": { + "line-color": "#fea", + "line-width": { + "base": 1.2, + "stops": [ + [ + 6.5, + 0 + ], + [ + 8, + 0.5 + ], + [ + 20, + 13 + ] + ] + } + } + }, + { + "id": "highway-trunk-primary", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "in", + "class", + "primary", + "trunk" + ] + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fea", + "line-width": { + "base": 1.2, + "stops": [ + [ + 6.5, + 0 + ], + [ + 7, + 0.5 + ], + [ + 20, + 18 + ] + ] + } + } + }, + { + "id": "highway-motorway", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "minzoom": 5, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "motorway" + ] + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fc8", + "line-width": { + "base": 1.2, + "stops": [ + [ + 6.5, + 0 + ], + [ + 7, + 0.5 + ], + [ + 20, + 18 + ] + ] + } + } + }, + { + "id": "railway-service", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "class", + "rail" + ], + [ + "has", + "service" + ] + ] + ], + "paint": { + "line-color": "hsla(0, 0%, 73%, 0.77)", + "line-width": { + "base": 1.4, + "stops": [ + [ + 14, + 0.4 + ], + [ + 20, + 1 + ] + ] + } + } + }, + { + "id": "railway-service-hatching", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "class", + "rail" + ], + [ + "has", + "service" + ] + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "hsla(0, 0%, 73%, 0.68)", + "line-dasharray": [ + 0.2, + 8 + ], + "line-width": { + "base": 1.4, + "stops": [ + [ + 14.5, + 0 + ], + [ + 15, + 2 + ], + [ + 20, + 6 + ] + ] + } + } + }, + { + "id": "railway", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "!has", + "service" + ], + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "rail" + ] + ] + ], + "paint": { + "line-color": "#bbb", + "line-width": { + "base": 1.4, + "stops": [ + [ + 14, + 0.4 + ], + [ + 15, + 0.75 + ], + [ + 20, + 2 + ] + ] + } + } + }, + { + "id": "railway-hatching", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "ref": "railway", + "paint": { + "line-color": "#bbb", + "line-dasharray": [ + 0.2, + 8 + ], + "line-width": { + "base": 1.4, + "stops": [ + [ + 14.5, + 0 + ], + [ + 15, + 3 + ], + [ + 20, + 8 + ] + ] + } + } + }, + { + "id": "bridge-motorway-link-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "==", + "class", + "motorway_link" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#e9ac77", + "line-opacity": 1, + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 1 + ], + [ + 13, + 3 + ], + [ + 14, + 4 + ], + [ + 20, + 15 + ] + ] + } + } + }, + { + "id": "bridge-link-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "primary_link", + "secondary_link", + "tertiary_link", + "trunk_link" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#e9ac77", + "line-opacity": 1, + "line-width": { + "base": 1.2, + "stops": [ + [ + 12, + 1 + ], + [ + 13, + 3 + ], + [ + 14, + 4 + ], + [ + 20, + 15 + ] + ] + } + } + }, + { + "id": "bridge-secondary-tertiary-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "secondary", + "tertiary" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#e9ac77", + "line-opacity": 1, + "line-width": { + "base": 1.2, + "stops": [ + [ + 8, + 1.5 + ], + [ + 20, + 28 + ] + ] + } + } + }, + { + "id": "bridge-trunk-primary-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "in", + "class", + "primary", + "trunk" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "hsl(28, 76%, 67%)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0.4 + ], + [ + 6, + 0.6 + ], + [ + 7, + 1.5 + ], + [ + 20, + 26 + ] + ] + } + } + }, + { + "id": "bridge-motorway-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "==", + "class", + "motorway" + ] + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#e9ac77", + "line-width": { + "base": 1.2, + "stops": [ + [ + 5, + 0.4 + ], + [ + 6, + 0.6 + ], + [ + 7, + 1.5 + ], + [ + 20, + 22 + ] + ] + } + } + }, + { + "id": "bridge-path-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "source": "openmaptiles", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "==", + "class", + "path" + ] + ] + ], + "paint": { + "line-color": "#f8f4f0", + "line-width": { + "base": 1.2, + "stops": [ + [ + 15, + 1.2 + ], + [ + 20, + 18 + ] + ] + } + } + }, + { + "id": "bridge-path", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "ref": "bridge-path-casing", + "paint": { + "line-color": "#cba", + "line-width": { + "base": 1.2, + "stops": [ + [ + 15, + 1.2 + ], + [ + 20, + 4 + ] + ] + }, + "line-dasharray": [ + 1.5, + 0.75 + ] + } + }, + { + "id": "bridge-motorway-link", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "ref": "bridge-motorway-link-casing", + "paint": { + "line-color": "#fc8", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12.5, + 0 + ], + [ + 13, + 1.5 + ], + [ + 14, + 2.5 + ], + [ + 20, + 11.5 + ] + ] + } + } + }, + { + "id": "bridge-link", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "ref": "bridge-link-casing", + "paint": { + "line-color": "#fea", + "line-width": { + "base": 1.2, + "stops": [ + [ + 12.5, + 0 + ], + [ + 13, + 1.5 + ], + [ + 14, + 2.5 + ], + [ + 20, + 11.5 + ] + ] + } + } + }, + { + "id": "bridge-secondary-tertiary", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "ref": "bridge-secondary-tertiary-casing", + "paint": { + "line-color": "#fea", + "line-width": { + "base": 1.2, + "stops": [ + [ + 6.5, + 0 + ], + [ + 7, + 0.5 + ], + [ + 20, + 20 + ] + ] + } + } + }, + { + "id": "bridge-trunk-primary", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "ref": "bridge-trunk-primary-casing", + "paint": { + "line-color": "#fea", + "line-width": { + "base": 1.2, + "stops": [ + [ + 6.5, + 0 + ], + [ + 7, + 0.5 + ], + [ + 20, + 18 + ] + ] + } + } + }, + { + "id": "bridge-motorway", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "ref": "bridge-motorway-casing", + "paint": { + "line-color": "#fc8", + "line-width": { + "base": 1.2, + "stops": [ + [ + 6.5, + 0 + ], + [ + 7, + 0.5 + ], + [ + 20, + 18 + ] + ] + } + } + }, + { + "id": "bridge-railway", + "type": "line", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "source": "openmaptiles", + "source-layer": "railway", + "filter": [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "==", + "class", + "rail" + ] + ], + "paint": { + "line-color": "#bbb", + "line-width": { + "base": 1.4, + "stops": [ + [ + 14, + 0.4 + ], + [ + 15, + 0.75 + ], + [ + 20, + 2 + ] + ] + } + } + }, + { + "id": "bridge-railway-hatching", + "metadata": { + "mapbox:group": "1444849334699.1902" + }, + "ref": "bridge-railway", + "paint": { + "line-color": "#bbb", + "line-dasharray": [ + 0.2, + 8 + ], + "line-width": { + "base": 1.4, + "stops": [ + [ + 14.5, + 0 + ], + [ + 15, + 3 + ], + [ + 20, + 8 + ] + ] + } + } + }, + { + "id": "boundary-level-4", + "type": "line", + "source": "openmaptiles", + "source-layer": "boundary", + "filter": [ + "in", + "admin_level", + 4, + 6, + 8 + ], + "layout": { + "line-join": "round" + }, + "paint": { + "line-color": "#9e9cab", + "line-dasharray": [ + 3, + 1, + 1, + 1 + ], + "line-width": { + "base": 1.4, + "stops": [ + [ + 4, + 0.4 + ], + [ + 5, + 1 + ], + [ + 12, + 3 + ] + ] + } + } + }, + { + "id": "boundary-level-2", + "type": "line", + "source": "openmaptiles", + "source-layer": "boundary", + "filter": [ + "==", + "admin_level", + 2 + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "hsl(248, 7%, 66%)", + "line-width": { + "base": 1, + "stops": [ + [ + 0, + 0.6 + ], + [ + 4, + 1.4 + ], + [ + 5, + 2 + ], + [ + 12, + 8 + ] + ] + } + } + }, + { + "id": "waterway-name", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "waterway", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "has", + "name" + ] + ], + "layout": { + "text-font": [ + "Open Sans Italic" + ], + "text-size": 14, + "text-field": "{name}", + "text-max-width": 5, + "text-rotation-alignment": "map", + "symbol-placement": "line", + "text-letter-spacing": 0.2, + "symbol-spacing": 350 + }, + "paint": { + "text-color": "#74aee9", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255,255,255,0.7)" + } + }, + { + "id": "water-name-lakeline", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "water_name", + "filter": [ + "==", + "$type", + "LineString" + ], + "layout": { + "text-font": [ + "Open Sans Italic" + ], + "text-size": 14, + "text-field": "{name}", + "text-max-width": 5, + "text-rotation-alignment": "map", + "symbol-placement": "line", + "symbol-spacing": 350, + "text-letter-spacing": 0.2 + }, + "paint": { + "text-color": "#74aee9", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255,255,255,0.7)" + } + }, + { + "id": "water-name", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "water_name", + "filter": [ + "==", + "$type", + "Point" + ], + "layout": { + "text-font": [ + "Open Sans Italic" + ], + "text-size": 14, + "text-field": "{name}", + "text-max-width": 5, + "text-rotation-alignment": "map", + "symbol-placement": "line", + "symbol-spacing": 350, + "text-letter-spacing": 0.2 + }, + "paint": { + "text-color": "#74aee9", + "text-halo-width": 1.5, + "text-halo-color": "rgba(255,255,255,0.7)" + } + }, + { + "id": "poi-level-3", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + ">=", + "rank", + 25 + ] + ], + "layout": { + "text-padding": 2, + "text-font": [ + "Open Sans Semibold" + ], + "text-anchor": "top", + "icon-image": "{class}_11", + "text-field": "{name}", + "text-offset": [ + 0, + 0.6 + ], + "text-size": 12, + "text-max-width": 9 + }, + "paint": { + "text-halo-blur": 0.5, + "text-color": "#666", + "text-halo-width": 1, + "text-halo-color": "#ffffff" + } + }, + { + "id": "poi-level-2", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "all", + [ + "<=", + "rank", + 24 + ], + [ + ">=", + "rank", + 15 + ] + ] + ], + "layout": { + "text-padding": 2, + "text-font": [ + "Open Sans Semibold" + ], + "text-anchor": "top", + "icon-image": "{class}_11", + "text-field": "{name}", + "text-offset": [ + 0, + 0.6 + ], + "text-size": 12, + "text-max-width": 9 + }, + "paint": { + "text-halo-blur": 0.5, + "text-color": "#666", + "text-halo-width": 1, + "text-halo-color": "#ffffff" + } + }, + { + "id": "poi-level-1", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "poi", + "minzoom": 14, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "all", + [ + "<=", + "rank", + 14 + ], + [ + "has", + "name" + ] + ] + ], + "layout": { + "text-padding": 2, + "text-font": [ + "Open Sans Semibold" + ], + "text-anchor": "top", + "icon-image": "{class}_11", + "text-field": "{name}", + "text-offset": [ + 0, + 0.6 + ], + "text-size": 12, + "text-max-width": 9 + }, + "paint": { + "text-halo-blur": 0.5, + "text-color": "#666", + "text-halo-width": 1, + "text-halo-color": "#ffffff" + } + }, + { + "id": "highway-name-path", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation_name", + "minzoom": 15.5, + "filter": [ + "==", + "class", + "path" + ], + "layout": { + "text-size": { + "base": 1, + "stops": [ + [ + 13, + 12 + ], + [ + 14, + 13 + ] + ] + }, + "text-font": [ + "Open Sans Regular" + ], + "text-field": "{name}", + "symbol-placement": "line", + "text-rotation-alignment": "map" + }, + "paint": { + "text-halo-color": "#f8f4f0", + "text-color": "hsl(30, 23%, 62%)", + "text-halo-width": 0.5 + } + }, + { + "id": "highway-name-minor", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation_name", + "minzoom": 15, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "minor", + "service", + "track" + ] + ], + "layout": { + "text-size": { + "base": 1, + "stops": [ + [ + 13, + 12 + ], + [ + 14, + 13 + ] + ] + }, + "text-font": [ + "Open Sans Regular" + ], + "text-field": "{name}", + "symbol-placement": "line", + "text-rotation-alignment": "map" + }, + "paint": { + "text-halo-blur": 0.5, + "text-color": "#765", + "text-halo-width": 1 + } + }, + { + "id": "highway-name-major", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation_name", + "minzoom": 12.2, + "filter": [ + "in", + "class", + "primary", + "secondary", + "tertiary", + "trunk" + ], + "layout": { + "text-size": { + "base": 1, + "stops": [ + [ + 13, + 12 + ], + [ + 14, + 13 + ] + ] + }, + "text-font": [ + "Open Sans Regular" + ], + "text-field": "{name}", + "symbol-placement": "line", + "text-rotation-alignment": "map" + }, + "paint": { + "text-halo-blur": 0.5, + "text-color": "#765", + "text-halo-width": 1 + } + }, + { + "id": "highway-shield", + "type": "symbol", + "source": "openmaptiles", + "source-layer": "transportation_name", + "minzoom": 8, + "filter": [ + "all", + [ + "<=", + "ref_length", + 6 + ], + [ + "==", + "$type", + "LineString" + ] + ], + "layout": { + "text-size": 11, + "icon-image": "motorway_{ref_length}", + "icon-rotation-alignment": "viewport", + "symbol-spacing": 500, + "text-font": [ + "Open Sans Semibold" + ], + "symbol-placement": { + "base": 1, + "stops": [ + [ + 10, + "point" + ], + [ + 11, + "line" + ] + ] + }, + "text-rotation-alignment": "viewport", + "icon-size": 0.85, + "text-field": "{ref}" + }, + "paint": {} + }, + { + "id": "place-other", + "type": "symbol", + "metadata": { + "mapbox:group": "1444849242106.713" + }, + "source": "openmaptiles", + "source-layer": "place", + "filter": [ + "all", + [ + "!in", + "class", + "city", + "town", + "village" + ] + ], + "layout": { + "text-letter-spacing": 0.1, + "text-size": { + "base": 1.2, + "stops": [ + [ + 12, + 10 + ], + [ + 15, + 14 + ] + ] + }, + "text-font": [ + "Open Sans Bold" + ], + "text-field": "{name_en}", + "text-transform": "uppercase", + "text-max-width": 9 + }, + "paint": { + "text-color": "#633", + "text-halo-width": 1.2, + "text-halo-color": "rgba(255,255,255,0.8)" + } + }, + { + "id": "place-village", + "type": "symbol", + "metadata": { + "mapbox:group": "1444849242106.713" + }, + "source": "openmaptiles", + "source-layer": "place", + "filter": [ + "==", + "class", + "village" + ], + "layout": { + "text-font": [ + "Open Sans Regular" + ], + "text-size": { + "base": 1.2, + "stops": [ + [ + 10, + 12 + ], + [ + 15, + 22 + ] + ] + }, + "text-field": "{name_en}", + "text-max-width": 8 + }, + "paint": { + "text-color": "#333", + "text-halo-width": 1.2, + "text-halo-color": "rgba(255,255,255,0.8)" + } + }, + { + "id": "place-town", + "type": "symbol", + "metadata": { + "mapbox:group": "1444849242106.713" + }, + "source": "openmaptiles", + "source-layer": "place", + "filter": [ + "==", + "class", + "town" + ], + "layout": { + "text-font": [ + "Open Sans Regular" + ], + "text-size": { + "base": 1.2, + "stops": [ + [ + 10, + 14 + ], + [ + 15, + 24 + ] + ] + }, + "text-field": "{name_en}", + "text-max-width": 8 + }, + "paint": { + "text-color": "#333", + "text-halo-width": 1.2, + "text-halo-color": "rgba(255,255,255,0.8)" + } + }, + { + "id": "place-city", + "type": "symbol", + "metadata": { + "mapbox:group": "1444849242106.713" + }, + "source": "openmaptiles", + "source-layer": "place", + "filter": [ + "all", + [ + "!=", + "capital", + 2 + ], + [ + "==", + "class", + "city" + ] + ], + "layout": { + "text-font": [ + "Open Sans Semibold" + ], + "text-size": { + "base": 1.2, + "stops": [ + [ + 7, + 14 + ], + [ + 11, + 24 + ] + ] + }, + "text-field": "{name_en}", + "text-max-width": 8 + }, + "paint": { + "text-color": "#333", + "text-halo-width": 1.2, + "text-halo-color": "rgba(255,255,255,0.8)" + } + }, + { + "id": "place-city-capital", + "type": "symbol", + "metadata": { + "mapbox:group": "1444849242106.713" + }, + "source": "openmaptiles", + "source-layer": "place", + "filter": [ + "all", + [ + "==", + "capital", + 2 + ], + [ + "==", + "class", + "city" + ] + ], + "layout": { + "text-font": [ + "Open Sans Semibold" + ], + "text-size": { + "base": 1.2, + "stops": [ + [ + 7, + 14 + ], + [ + 11, + 24 + ] + ] + }, + "text-field": "{name_en}", + "text-max-width": 8, + "icon-image": "star_11", + "text-offset": [ + 0.4, + 0 + ], + "icon-size": 0.8, + "text-anchor": "left" + }, + "paint": { + "text-color": "#333", + "text-halo-width": 1.2, + "text-halo-color": "rgba(255,255,255,0.8)" + } + }, + { + "id": "place-country-3", + "type": "symbol", + "metadata": { + "mapbox:group": "1444849242106.713" + }, + "source": "openmaptiles", + "source-layer": "place", + "filter": [ + "all", + [ + "==", + "class", + "country" + ], + [ + ">=", + "rank", + 3 + ] + ], + "layout": { + "text-font": [ + "Open Sans Bold" + ], + "text-field": "{name_en}", + "text-size": { + "stops": [ + [ + 3, + 11 + ], + [ + 7, + 17 + ] + ] + }, + "text-transform": "uppercase", + "text-max-width": 6.25 + }, + "paint": { + "text-halo-blur": 1, + "text-color": "#334", + "text-halo-width": 2, + "text-halo-color": "rgba(255,255,255,0.8)" + } + }, + { + "id": "place-country-2", + "type": "symbol", + "metadata": { + "mapbox:group": "1444849242106.713" + }, + "source": "openmaptiles", + "source-layer": "place", + "filter": [ + "all", + [ + "==", + "class", + "country" + ], + [ + "==", + "rank", + 2 + ] + ], + "layout": { + "text-font": [ + "Open Sans Bold" + ], + "text-field": "{name_en}", + "text-size": { + "stops": [ + [ + 2, + 11 + ], + [ + 5, + 17 + ] + ] + }, + "text-transform": "uppercase", + "text-max-width": 6.25 + }, + "paint": { + "text-halo-blur": 1, + "text-color": "#334", + "text-halo-width": 2, + "text-halo-color": "rgba(255,255,255,0.8)" + } + }, + { + "id": "place-country-1", + "type": "symbol", + "metadata": { + "mapbox:group": "1444849242106.713" + }, + "source": "openmaptiles", + "source-layer": "place", + "filter": [ + "all", + [ + "==", + "class", + "country" + ], + [ + "==", + "rank", + 1 + ] + ], + "layout": { + "text-font": [ + "Open Sans Bold" + ], + "text-field": "{name_en}", + "text-size": { + "stops": [ + [ + 1, + 11 + ], + [ + 4, + 17 + ] + ] + }, + "text-transform": "uppercase", + "text-max-width": 6.25 + }, + "paint": { + "text-halo-blur": 1, + "text-color": "#334", + "text-halo-width": 2, + "text-halo-color": "rgba(255,255,255,0.8)" + } + }, + { + "id": "place-continent", + "type": "symbol", + "metadata": { + "mapbox:group": "1444849242106.713" + }, + "source": "openmaptiles", + "source-layer": "place", + "maxzoom": 1, + "filter": [ + "==", + "class", + "continent" + ], + "layout": { + "text-font": [ + "Open Sans Bold" + ], + "text-field": "{name_en}", + "text-size": 14, + "text-max-width": 6.25, + "text-transform": "uppercase" + }, + "paint": { + "text-halo-blur": 1, + "text-color": "#334", + "text-halo-width": 2, + "text-halo-color": "rgba(255,255,255,0.8)" + } + } + ] +} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml new file mode 100644 index 0000000..b1060d8 --- /dev/null +++ b/docker-compose.yml @@ -0,0 +1,11 @@ +services: + tile-server: + image: maptiler/tileserver-gl:latest + container_name: tile-server + env_file: + - .env + volumes: + - ${DATA_DIR}:/data/ + ports: + - ${PORT}:8080 + command: ["--file", "${MBTILES_FILE}"] diff --git a/init.sh b/init.sh new file mode 100755 index 0000000..0cd7822 --- /dev/null +++ b/init.sh @@ -0,0 +1,96 @@ +#!/bin/bash + +if ! command -v jq &> /dev/null; then + echo "jq is not installed. Installing..." + if [[ "$OSTYPE" == "linux-gnu"* ]]; then + sudo apt update && sudo apt install -y jq || sudo yum install -y jq + elif [[ "$OSTYPE" == "darwin"* ]]; then + brew install jq + else + echo "Unsupported OS. Please install jq manually." + exit 1 + fi +fi + + +CURRENT_PATH=$(pwd) +DATA_PATH=${CURRENT_PATH}/data +echo "Current DATA_PATH: ($DATA_PATH)" +read -p "Enter a new data path or press Enter to use the default: " USER_PATH +DATA_PATH=${USER_PATH:-$DATA_PATH} +echo "Using path: ($DATA_PATH)" +sed -i "s|^DATA_DIR=.*|DATA_DIR=${DATA_PATH}|" .env + + +DEFAULT_PORT=$(cat .env | awk -F'=' '/^PORT=/ {print $2}') +read -p "Enter a new port or press Enter to use the current: ${DEFAULT_PORT} " USER_PORT +DEFAULT_PORT=${USER_PORT:-$DEFAULT_PORT} +echo "Using Port: ($DEFAULT_PORT)" +sed -i "s|^PORT=.*|PORT=${DEFAULT_PORT}|" .env + +echo -e "\nDownloading mbtiles json" +wget https://cloud.silklaasboer.nl/s/oy9YTccKp9Lqfpy/download/osm-2020-02-10-v3.11_europe_netherlands.mbtiles +mv osm-2020-02-10-v3.11_europe_netherlands.mbtiles $DATA_PATH + +FILES=($(find . -type f -name "*.mbtiles")) +if [ ${#FILES[@]} -eq 0 ]; then + echo "No .mbtiles files found!" + exit 1 +fi +FILENAMES=() +for file in "${FILES[@]}"; do + FILENAMES+=("$(basename "$file")") +done +echo "Select an MBTiles file:" +for i in "${!FILENAMES[@]}"; do + echo "$((i+1))) ${FILENAMES[$i]}" +done +read -p "Enter the number of your choice: " SELECTION +if ! [[ "$SELECTION" =~ ^[0-9]+$ ]] || [ "$SELECTION" -lt 1 ] || [ "$SELECTION" -gt "${#FILENAMES[@]}" ]; then + echo "Invalid selection!" + exit 1 +fi +MBTILES_FILE="${FILENAMES[$((SELECTION-1))]}" +sed -i "s|^MBTILES_FILE=.*|MBTILES_FILE=${MBTILES_FILE}|" .env +echo "Updated .env with MBTILES_FILE=${MBTILES_FILE}" + +CONFIG_FILE="data/config.json" +if [ ! -f "$CONFIG_FILE" ]; then + echo "Error: config.json not found!" + exit 1 +fi + +STYLES_PATH=$(jq -r '.options.paths.styles' "$CONFIG_FILE") +STYLE_FILES=($(jq -r '.styles[].style' "$CONFIG_FILE")) +FONTS_PATH=$(jq -r '.options.paths.fonts' "$CONFIG_FILE") + +MISSING_FILES=() +for file in "${STYLE_FILES[@]}"; do + ABSOLUTE_PATH="$DATA_PATH/$STYLES_PATH/$file" + + if [ ! -f "$ABSOLUTE_PATH" ]; then + MISSING_FILES+=("$ABSOLUTE_PATH") + fi +done + +if [ ${#MISSING_FILES[@]} -gt 0 ]; then + echo -e "\nMissing style files:" + for file in "${MISSING_FILES[@]}"; do + echo " - $file" + done + exit 1 +else + echo "All style files are present." +fi + +echo -e "\n Downloading fonts" +wget https://github.com/maptiler/tileserver-gl/releases/download/v1.3.0/test_data.zip +unzip test_data.zip +rm -rf test_data.zip +rm -rf styles +rm -f zurich_switzerland.mbtiles +rm -f config.json +mv fonts $DATA_PATH + +echo "Starting container" +sudo docker compose up -d tile-server \ No newline at end of file