diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fe008ef --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +*.mbtiles \ No newline at end of file diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..376aabc --- /dev/null +++ b/Dockerfile @@ -0,0 +1,16 @@ +FROM node:14 as font-builder + +RUN mkdir -p /output +RUN git clone --single-branch --branch master https://github.com/mapbox/node-fontnik.git +WORKDIR node-fontnik +RUN npm ci +COPY font-builder . +RUN set -ex \ + && node process.js input + + +FROM maptiler/tileserver-gl + +COPY --from=font-builder /output /data/fonts +COPY styles /data/styles +COPY maptiler-config.json /data/config.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..c376d23 --- /dev/null +++ b/README.md @@ -0,0 +1,20 @@ +# Map-Tile Server for Lume + +## Build + +The build process automatically imports styles and fonts into the docker image. +To build run `docker build .` + +## Run + +For the Tile Server to run, you first need to download the mbtiles data on your worker. The file is obtainable at [data.maptiler.com](https://data.maptiler.com/downloads/planet/). + +Once you have the mbtiles file ready, start the container with: +```sh +docker run \ + --rm -it \ + -v $(pwd)/.mbtiles:/data/mapdata.mbtiles \ + -p 8080:8080 \ + +``` +You may need to modify the ``pwd`` in the above command if the mbtiles file is not in your current working directory. diff --git a/font-builder/input/Domus_Tilting.otf b/font-builder/input/Domus_Tilting.otf new file mode 100644 index 0000000..bd9c771 Binary files /dev/null and b/font-builder/input/Domus_Tilting.otf differ diff --git a/font-builder/input/Domus_Tilting_Bold.otf b/font-builder/input/Domus_Tilting_Bold.otf new file mode 100644 index 0000000..e33247a Binary files /dev/null and b/font-builder/input/Domus_Tilting_Bold.otf differ diff --git a/font-builder/input/Domus_Tilting_Extrabold.otf b/font-builder/input/Domus_Tilting_Extrabold.otf new file mode 100644 index 0000000..ac2a97a Binary files /dev/null and b/font-builder/input/Domus_Tilting_Extrabold.otf differ diff --git a/font-builder/input/Domus_Tilting_Extralight.otf b/font-builder/input/Domus_Tilting_Extralight.otf new file mode 100644 index 0000000..c18a407 Binary files /dev/null and b/font-builder/input/Domus_Tilting_Extralight.otf differ diff --git a/font-builder/input/Domus_Tilting_Light.otf b/font-builder/input/Domus_Tilting_Light.otf new file mode 100644 index 0000000..ff4918a Binary files /dev/null and b/font-builder/input/Domus_Tilting_Light.otf differ diff --git a/font-builder/input/Domus_Tilting_Medium.otf b/font-builder/input/Domus_Tilting_Medium.otf new file mode 100644 index 0000000..f7aebcd Binary files /dev/null and b/font-builder/input/Domus_Tilting_Medium.otf differ diff --git a/font-builder/input/Domus_Tilting_Semibold.otf b/font-builder/input/Domus_Tilting_Semibold.otf new file mode 100644 index 0000000..9192fa3 Binary files /dev/null and b/font-builder/input/Domus_Tilting_Semibold.otf differ diff --git a/font-builder/input/Nexusa-Next-Bold-Italic.otf b/font-builder/input/Nexusa-Next-Bold-Italic.otf new file mode 100644 index 0000000..8532f9f Binary files /dev/null and b/font-builder/input/Nexusa-Next-Bold-Italic.otf differ diff --git a/font-builder/input/Nexusa-Next-Bold.otf b/font-builder/input/Nexusa-Next-Bold.otf new file mode 100644 index 0000000..1d1eb48 Binary files /dev/null and b/font-builder/input/Nexusa-Next-Bold.otf differ diff --git a/font-builder/input/Nexusa-Next-Italic.otf b/font-builder/input/Nexusa-Next-Italic.otf new file mode 100644 index 0000000..0f1306e Binary files /dev/null and b/font-builder/input/Nexusa-Next-Italic.otf differ diff --git a/font-builder/input/Nexusa-Next-Light-Italic.otf b/font-builder/input/Nexusa-Next-Light-Italic.otf new file mode 100644 index 0000000..f270c79 Binary files /dev/null and b/font-builder/input/Nexusa-Next-Light-Italic.otf differ diff --git a/font-builder/input/Nexusa-Next-Light.otf b/font-builder/input/Nexusa-Next-Light.otf new file mode 100644 index 0000000..69bf591 Binary files /dev/null and b/font-builder/input/Nexusa-Next-Light.otf differ diff --git a/font-builder/input/Nexusa-Next-Medium-Italic.otf b/font-builder/input/Nexusa-Next-Medium-Italic.otf new file mode 100644 index 0000000..3351148 Binary files /dev/null and b/font-builder/input/Nexusa-Next-Medium-Italic.otf differ diff --git a/font-builder/input/Nexusa-Next-Medium.otf b/font-builder/input/Nexusa-Next-Medium.otf new file mode 100644 index 0000000..826ba80 Binary files /dev/null and b/font-builder/input/Nexusa-Next-Medium.otf differ diff --git a/font-builder/input/Nexusa-Next-Thin-Italic.otf b/font-builder/input/Nexusa-Next-Thin-Italic.otf new file mode 100644 index 0000000..8256c02 Binary files /dev/null and b/font-builder/input/Nexusa-Next-Thin-Italic.otf differ diff --git a/font-builder/input/Nexusa-Next-Thin.otf b/font-builder/input/Nexusa-Next-Thin.otf new file mode 100644 index 0000000..9244683 Binary files /dev/null and b/font-builder/input/Nexusa-Next-Thin.otf differ diff --git a/font-builder/input/Nexusa-Next.otf b/font-builder/input/Nexusa-Next.otf new file mode 100644 index 0000000..7ee643c Binary files /dev/null and b/font-builder/input/Nexusa-Next.otf differ diff --git a/font-builder/process.js b/font-builder/process.js new file mode 100644 index 0000000..dd1e3b2 --- /dev/null +++ b/font-builder/process.js @@ -0,0 +1,41 @@ +var fontnik = require("."); +var fs = require("fs"); +var path = require("path"); + +var convert = function (fileName, outputDir) { + var font = fs.readFileSync(path.resolve(__dirname + "/" + fileName)); + fs.mkdir(outputDir, {recursive:true}, () => + output2pbf(font, 0, 255, outputDir) +); +}; +function output2pbf(font, start, end, outputDir) { + if (start > 65535) { + console.log("done!"); + return; + } + fontnik.range({ font: font, start: start, end: end }, function (err, res) { + var outputFilePath = path.resolve( + outputDir + "/" + start + "-" + end + ".pbf" + ); + fs.writeFile(outputFilePath, res, function (err) { + if (err) { + console.error(err); + } else { + output2pbf(font, end + 1, end + 1 + 255, outputDir); + } + }); + }); +} + +var process = require("process"); +var args = process.argv.slice(2); + +fs.readdir(args[0], (err, files) => { + files.forEach((file) => { + convert( + args[0].replace(/\/$/, "") + "/" + file, + "/output/" + file.replace(/\.(otf|ttf)$/, "") + ); + console.log("converted", file); + }); +}); diff --git a/maptiler-config.json b/maptiler-config.json new file mode 100644 index 0000000..dacd296 --- /dev/null +++ b/maptiler-config.json @@ -0,0 +1,23 @@ +{ + "options": { + "paths": { + "root": "/app/node_modules/tileserver-gl-styles", + "fonts": "/data/fonts", + "styles": "/data/styles", + "mbtiles": "/data" + } + }, + "styles": { + "dark": { + "style": "/data/styles/dark.json" + }, + "light": { + "style": "/data/styles/light.json" + } + }, + "data": { + "v3": { + "mbtiles": "mapdata.mbtiles" + } + } +} \ No newline at end of file diff --git a/styles/dark.json b/styles/dark.json new file mode 100644 index 0000000..0218d18 --- /dev/null +++ b/styles/dark.json @@ -0,0 +1,1826 @@ +{ + "version": 8, + "name": "Dark Matter", + "metadata": { + "openmaptiles:version": "3.x" + }, + "sources": { + "default": { + "type": "vector", + "url": "mbtiles://{v3}" + } + }, + "glyphs": "{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "rgba(33, 31, 33, 1)" + } + }, + { + "id": "water", + "type": "fill", + "source": "default", + "source-layer": "water", + "filter": [ + "==", + "$type", + "Polygon" + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "rgba(76, 76, 76, 1)", + "fill-antialias": false + } + }, + { + "id": "landcover_ice_shelf", + "type": "fill", + "source": "default", + "source-layer": "landcover", + "maxzoom": 8, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "subclass", + "ice_shelf" + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "rgba(50, 50, 50, 1)", + "fill-opacity": 0.7 + } + }, + { + "id": "landcover_glacier", + "type": "fill", + "source": "default", + "source-layer": "landcover", + "maxzoom": 8, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "subclass", + "glacier" + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "rgba(50, 50, 50, 1)", + "fill-opacity": { + "base": 1, + "stops": [ + [ + 0, + 1 + ], + [ + 8, + 0.5 + ] + ] + } + } + }, + { + "id": "landuse_residential", + "type": "fill", + "source": "default", + "source-layer": "landuse", + "maxzoom": 9, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "class", + "residential" + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "hsl(0, 2%, 5%)", + "fill-opacity": 0.4 + } + }, + { + "id": "landcover_wood", + "type": "fill", + "source": "default", + "source-layer": "landcover", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "class", + "wood" + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "rgb(32,32,32)", + "fill-opacity": { + "base": 0.3, + "stops": [ + [ + 8, + 0 + ], + [ + 10, + 0.8 + ], + [ + 13, + 0.4 + ] + ] + }, + "fill-translate": [ + 0, + 0 + ], + "fill-pattern": "wood-pattern" + } + }, + { + "id": "landuse_park", + "type": "fill", + "source": "default", + "source-layer": "landuse", + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "class", + "park" + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "rgb(32,32,32)" + } + }, + { + "id": "waterway", + "type": "line", + "source": "default", + "source-layer": "waterway", + "filter": [ + "==", + "$type", + "LineString" + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "#4C4C4C" + } + }, + { + "id": "water_name", + "type": "symbol", + "source": "default", + "source-layer": "water_name", + "filter": [ + "==", + "$type", + "LineString" + ], + "layout": { + "text-field": "{name:latin}\n{name:nonlatin}", + "symbol-placement": "line", + "text-rotation-alignment": "map", + "symbol-spacing": 500, + "text-font": [ + "Nexusa-Next-Medium-Italic" + ], + "text-size": 12 + }, + "paint": { + "text-color": "hsla(0, 0%, 0%, 0.7)", + "text-halo-color": "hsl(0, 0%, 27%)" + } + }, + { + "id": "building", + "type": "fill", + "source": "default", + "source-layer": "building", + "minzoom": 12, + "filter": [ + "==", + "$type", + "Polygon" + ], + "paint": { + "fill-color": "rgb(10,10,10)", + "fill-outline-color": "rgb(27 ,27 ,29)", + "fill-antialias": true + } + }, + { + "id": "aeroway-taxiway", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "default", + "source-layer": "aeroway", + "minzoom": 12, + "filter": [ + "all", + [ + "in", + "class", + "taxiway" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#181818", + "line-width": { + "base": 1.55, + "stops": [ + [ + 13, + 1.8 + ], + [ + 20, + 20 + ] + ] + }, + "line-opacity": 1 + } + }, + { + "id": "aeroway-runway-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "default", + "source-layer": "aeroway", + "minzoom": 11, + "filter": [ + "all", + [ + "in", + "class", + "runway" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(60,60,60,0.8)", + "line-width": { + "base": 1.5, + "stops": [ + [ + 11, + 5 + ], + [ + 17, + 55 + ] + ] + }, + "line-opacity": 1 + } + }, + { + "id": "aeroway-area", + "type": "fill", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "default", + "source-layer": "aeroway", + "minzoom": 4, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "in", + "class", + "runway", + "taxiway" + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-opacity": 1, + "fill-color": "#000" + } + }, + { + "id": "aeroway-runway", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "default", + "source-layer": "aeroway", + "minzoom": 11, + "filter": [ + "all", + [ + "in", + "class", + "runway" + ], + [ + "==", + "$type", + "LineString" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#000", + "line-width": { + "base": 1.5, + "stops": [ + [ + 11, + 4 + ], + [ + 17, + 50 + ] + ] + }, + "line-opacity": 1 + } + }, + { + "id": "highway_path", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "path" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgb(27 ,27 ,29)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-opacity": 0.9, + "line-dasharray": [ + 1.5, + 1.5 + ] + } + }, + { + "id": "highway_minor", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 8, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "minor", + "service", + "track" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#181818", + "line-width": { + "base": 1.55, + "stops": [ + [ + 13, + 1.8 + ], + [ + 20, + 20 + ] + ] + }, + "line-opacity": 0.9 + } + }, + { + "id": "highway_major_casing", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 11, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "primary", + "secondary", + "tertiary", + "trunk" + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(60,60,60,0.8)", + "line-dasharray": [ + 12, + 0 + ], + "line-width": { + "base": 1.3, + "stops": [ + [ + 10, + 3 + ], + [ + 20, + 23 + ] + ] + } + } + }, + { + "id": "highway_major_inner", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 11, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "primary", + "secondary", + "tertiary", + "trunk" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "hsl(0, 0%, 7%)", + "line-width": { + "base": 1.3, + "stops": [ + [ + 10, + 2 + ], + [ + 20, + 20 + ] + ] + } + } + }, + { + "id": "highway_major_subtle", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 6, + "maxzoom": 11, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "primary", + "secondary", + "tertiary", + "trunk" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#2a2a2a", + "line-width": { + "stops": [ + [ + 6, + 0 + ], + [ + 8, + 2 + ] + ] + } + } + }, + { + "id": "highway_motorway_casing", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "motorway" + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(60,60,60,0.8)", + "line-width": { + "base": 1.4, + "stops": [ + [ + 5.8, + 0 + ], + [ + 6, + 3 + ], + [ + 20, + 40 + ] + ] + }, + "line-dasharray": [ + 2, + 0 + ], + "line-opacity": 1 + } + }, + { + "id": "highway_motorway_inner", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "motorway" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "base": 1, + "stops": [ + [ + 5.8, + "hsla(0, 0%, 85%, 0.53)" + ], + [ + 6, + "#000" + ] + ] + }, + "line-width": { + "base": 1.4, + "stops": [ + [ + 4, + 2 + ], + [ + 6, + 1.3 + ], + [ + 20, + 30 + ] + ] + } + } + }, + { + "id": "highway_motorway_subtle", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "maxzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "motorway" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#181818", + "line-width": { + "base": 1.4, + "stops": [ + [ + 4, + 2 + ], + [ + 6, + 1.3 + ] + ] + } + } + }, + { + "id": "railway_transit", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "class", + "transit" + ], + [ + "!in", + "brunnel", + "tunnel" + ] + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(35,35,35)", + "line-width": 3 + } + }, + { + "id": "railway_transit_dashline", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "class", + "transit" + ], + [ + "!in", + "brunnel", + "tunnel" + ] + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(12,12,12)", + "line-width": 2, + "line-dasharray": [ + 3, + 3 + ] + } + }, + { + "id": "railway_minor", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "class", + "rail" + ], + [ + "has", + "service" + ] + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(35,35,35)", + "line-width": 3 + } + }, + { + "id": "railway_minor_dashline", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "class", + "rail" + ], + [ + "has", + "service" + ] + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(12,12,12)", + "line-width": 2, + "line-dasharray": [ + 3, + 3 + ] + } + }, + { + "id": "railway", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "rail" + ], + [ + "!has", + "service" + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-width": { + "base": 1.3, + "stops": [ + [ + 16, + 3 + ], + [ + 20, + 7 + ] + ] + }, + "line-color": "rgb(35,35,35)" + } + }, + { + "id": "railway_dashline", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "rail" + ], + [ + "!has", + "service" + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(12,12,12)", + "line-width": { + "base": 1.3, + "stops": [ + [ + 16, + 2 + ], + [ + 20, + 6 + ] + ] + }, + "line-dasharray": [ + 3, + 3 + ] + } + }, + { + "id": "highway_name_other", + "type": "symbol", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation_name", + "filter": [ + "all", + [ + "!=", + "class", + "motorway" + ], + [ + "==", + "$type", + "LineString" + ] + ], + "layout": { + "text-size": 10, + "text-max-angle": 30, + "text-transform": "uppercase", + "symbol-spacing": 350, + "text-font": [ + "Nexusa-Next" + ], + "symbol-placement": "line", + "visibility": "visible", + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-field": "{name:latin} {name:nonlatin}" + }, + "paint": { + "text-color": "rgba(80, 78, 78, 1)", + "text-translate": [ + 0, + 0 + ], + "text-halo-color": "rgba(0, 0, 0, 1)", + "text-halo-width": 1, + "text-halo-blur": 0 + } + }, + { + "id": "highway_name_motorway", + "type": "symbol", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation_name", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "motorway" + ] + ], + "layout": { + "text-size": 10, + "symbol-spacing": 350, + "text-font": [ + "Nexusa-Next-Light" + ], + "symbol-placement": "line", + "visibility": "visible", + "text-rotation-alignment": "viewport", + "text-pitch-alignment": "viewport", + "text-field": "{ref}" + }, + "paint": { + "text-color": "hsl(0, 0%, 37%)", + "text-translate": [ + 0, + 2 + ] + } + }, + { + "id": "boundary_state", + "type": "line", + "metadata": { + "mapbox:group": "a14c9607bc7954ba1df7205bf660433f" + }, + "source": "default", + "source-layer": "boundary", + "filter": [ + "==", + "admin_level", + 4 + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "hsl(0, 0%, 21%)", + "line-width": { + "base": 1.3, + "stops": [ + [ + 3, + 1 + ], + [ + 22, + 15 + ] + ] + }, + "line-blur": 0.4, + "line-dasharray": [ + 2, + 2 + ], + "line-opacity": 1 + } + }, + { + "id": "boundary_country", + "type": "line", + "metadata": { + "mapbox:group": "a14c9607bc7954ba1df7205bf660433f" + }, + "source": "default", + "source-layer": "boundary", + "filter": [ + "==", + "admin_level", + 2 + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "hsl(0, 0%, 23%)", + "line-width": { + "base": 1.1, + "stops": [ + [ + 3, + 1 + ], + [ + 22, + 20 + ] + ] + }, + "line-blur": { + "base": 1, + "stops": [ + [ + 0, + 0.4 + ], + [ + 22, + 4 + ] + ] + }, + "line-opacity": 1 + } + }, + { + "id": "place_other", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "in", + "class", + "hamlet", + "isolated_dwelling", + "neighbourhood" + ] + ], + "layout": { + "text-size": 10, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "center", + "visibility": "visible", + "text-offset": [ + 0.5, + 0 + ], + "text-anchor": "center", + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgba(160, 160, 160, 1)", + "text-halo-color": "rgba(0,0,0,0.7)", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "place_suburb", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 15, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "suburb" + ] + ], + "layout": { + "text-size": 10, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "center", + "visibility": "visible", + "text-offset": [ + 0.5, + 0 + ], + "text-anchor": "center", + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgba(160, 160, 160, 1)", + "text-halo-color": "rgba(0,0,0,0.7)", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "place_village", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "village" + ] + ], + "layout": { + "text-size": 10, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "left", + "visibility": "visible", + "text-offset": [ + 0.5, + 0.2 + ], + "icon-size": 0.4, + "text-anchor": "left", + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgba(160, 160, 160, 1)", + "text-halo-color": "rgba(0,0,0,0.7)", + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.7 + } + }, + { + "id": "place_town", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 15, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "town" + ] + ], + "layout": { + "text-size": 10, + "icon-image": { + "base": 1, + "stops": [ + [ + 0, + "circle-11" + ], + [ + 9, + "" + ] + ] + }, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "left", + "visibility": "visible", + "text-offset": [ + 0.5, + 0.2 + ], + "icon-size": 0.4, + "text-anchor": { + "base": 1, + "stops": [ + [ + 0, + "left" + ], + [ + 8, + "center" + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgba(160, 160, 160, 1)", + "text-halo-color": "rgba(0,0,0,0.7)", + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.7 + } + }, + { + "id": "place_city", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "city" + ], + [ + ">", + "rank", + 3 + ] + ], + "layout": { + "text-size": 10, + "icon-image": { + "base": 1, + "stops": [ + [ + 0, + "circle-11" + ], + [ + 9, + "" + ] + ] + }, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "left", + "visibility": "visible", + "text-offset": [ + 0.5, + 0.2 + ], + "icon-size": 0.4, + "text-anchor": { + "base": 1, + "stops": [ + [ + 0, + "left" + ], + [ + 8, + "center" + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgba(160, 160, 160, 1)", + "text-halo-color": "rgba(0,0,0,0.7)", + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.7 + } + }, + { + "id": "place_city_large", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 12, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "<=", + "rank", + 3 + ], + [ + "==", + "class", + "city" + ] + ], + "layout": { + "text-size": 14, + "icon-image": { + "base": 1, + "stops": [ + [ + 0, + "circle-11" + ], + [ + 9, + "" + ] + ] + }, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "left", + "visibility": "visible", + "text-offset": [ + 0.5, + 0.2 + ], + "icon-size": 0.4, + "text-anchor": { + "base": 1, + "stops": [ + [ + 0, + "left" + ], + [ + 8, + "center" + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgba(160, 160, 160, 1)", + "text-halo-color": "rgba(0,0,0,0.7)", + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.7 + } + }, + { + "id": "place_state", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 12, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "state" + ] + ], + "layout": { + "visibility": "visible", + "text-field": "{name:latin}\n{name:nonlatin}", + "text-font": [ + "Nexusa-Next" + ], + "text-transform": "uppercase", + "text-size": 10 + }, + "paint": { + "text-color": "rgba(160, 160, 160, 1)", + "text-halo-color": "rgba(0,0,0,0.7)", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "place_country_other", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 8, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "country" + ], + [ + "!has", + "iso_a2" + ] + ], + "layout": { + "visibility": "visible", + "text-field": "{name:latin}", + "text-font": [ + "Nexusa-Next-Light-Italic" + ], + "text-transform": "uppercase", + "text-size": { + "base": 1, + "stops": [ + [ + 0, + 9 + ], + [ + 1, + 11 + ] + ] + } + }, + "paint": { + "text-halo-width": 1.4, + "text-halo-color": "rgba(0,0,0,0.7)", + "text-color": "rgba(160, 160, 160, 1)" + } + }, + { + "id": "place_country_minor", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 8, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "country" + ], + [ + ">=", + "rank", + 2 + ], + [ + "has", + "iso_a2" + ] + ], + "layout": { + "visibility": "visible", + "text-field": "{name:latin}", + "text-font": [ + "Nexusa-Next" + ], + "text-transform": "uppercase", + "text-size": { + "base": 1, + "stops": [ + [ + 0, + 10 + ], + [ + 6, + 12 + ] + ] + } + }, + "paint": { + "text-halo-width": 1.4, + "text-halo-color": "rgba(0,0,0,0.7)", + "text-color": "rgba(160, 160, 160, 1)" + } + }, + { + "id": "place_country_major", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "<=", + "rank", + 1 + ], + [ + "==", + "class", + "country" + ], + [ + "has", + "iso_a2" + ] + ], + "layout": { + "visibility": "visible", + "text-field": "{name:latin}", + "text-font": [ + "Nexusa-Next" + ], + "text-transform": "uppercase", + "text-size": { + "base": 1.4, + "stops": [ + [ + 0, + 10 + ], + [ + 3, + 12 + ], + [ + 4, + 14 + ] + ] + }, + "text-anchor": "center" + }, + "paint": { + "text-halo-width": 1.4, + "text-halo-color": "rgba(0,0,0,0.7)", + "text-color": "rgba(160, 160, 160, 1)" + } + } + ] +} \ No newline at end of file diff --git a/styles/light.json b/styles/light.json new file mode 100644 index 0000000..efc9f4b --- /dev/null +++ b/styles/light.json @@ -0,0 +1,2212 @@ +{ + "version": 8, + "name": "Positron", + "metadata": { + "openmaptiles:version": "3.x" + }, + "sources": { + "default": { + "type": "vector", + "url": "mbtiles://{v3}" + } + }, + "glyphs": "{fontstack}/{range}.pbf", + "layers": [ + { + "id": "background", + "type": "background", + "paint": { + "background-color": "rgb(242,243,240)" + } + }, + { + "id": "park", + "type": "fill", + "source": "default", + "source-layer": "park", + "filter": [ + "==", + "$type", + "Polygon" + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "rgb(230, 233, 229)" + } + }, + { + "id": "water", + "type": "fill", + "source": "default", + "source-layer": "water", + "filter": [ + "==", + "$type", + "Polygon" + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "rgb(194, 200, 202)", + "fill-antialias": true + } + }, + { + "id": "landcover_ice_shelf", + "type": "fill", + "source": "default", + "source-layer": "landcover", + "maxzoom": 8, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "subclass", + "ice_shelf" + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "hsl(0, 0%, 98%)", + "fill-opacity": 0.7 + } + }, + { + "id": "landcover_glacier", + "type": "fill", + "source": "default", + "source-layer": "landcover", + "maxzoom": 8, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "subclass", + "glacier" + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "hsl(0, 0%, 98%)", + "fill-opacity": { + "base": 1, + "stops": [ + [ + 0, + 1 + ], + [ + 8, + 0.5 + ] + ] + } + } + }, + { + "id": "landuse_residential", + "type": "fill", + "source": "default", + "source-layer": "landuse", + "maxzoom": 16, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "class", + "residential" + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "rgb(234, 234, 230)", + "fill-opacity": { + "base": 0.6, + "stops": [ + [ + 8, + 0.8 + ], + [ + 9, + 0.6 + ] + ] + } + } + }, + { + "id": "landcover_wood", + "type": "fill", + "source": "default", + "source-layer": "landcover", + "minzoom": 10, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "==", + "class", + "wood" + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-color": "rgb(220,224,220)", + "fill-opacity": { + "base": 1, + "stops": [ + [ + 8, + 0 + ], + [ + 12, + 1 + ] + ] + } + } + }, + { + "id": "waterway", + "type": "line", + "source": "default", + "source-layer": "waterway", + "filter": [ + "==", + "$type", + "LineString" + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "line-color": "hsl(195, 17%, 78%)" + } + }, + { + "id": "water_name", + "type": "symbol", + "source": "default", + "source-layer": "water_name", + "filter": [ + "==", + "$type", + "LineString" + ], + "layout": { + "text-field": "{name:latin}\n{name:nonlatin}", + "symbol-placement": "line", + "text-rotation-alignment": "map", + "symbol-spacing": 500, + "text-font": [ + "Nexusa-Next-Medium-Italic" + ], + "text-size": 12 + }, + "paint": { + "text-color": "rgb(157,169,177)", + "text-halo-color": "rgb(242,243,240)", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "building", + "type": "fill", + "source": "default", + "source-layer": "building", + "minzoom": 12, + "paint": { + "fill-color": "rgb(234, 234, 229)", + "fill-outline-color": "rgb(219, 219, 218)", + "fill-antialias": true + } + }, + { + "id": "tunnel_motorway_casing", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "==", + "class", + "motorway" + ] + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgb(213, 213, 213)", + "line-width": { + "base": 1.4, + "stops": [ + [ + 5.8, + 0 + ], + [ + 6, + 3 + ], + [ + 20, + 40 + ] + ] + }, + "line-opacity": 1 + } + }, + { + "id": "tunnel_motorway_inner", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "brunnel", + "tunnel" + ], + [ + "==", + "class", + "motorway" + ] + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgb(234,234,234)", + "line-width": { + "base": 1.4, + "stops": [ + [ + 4, + 2 + ], + [ + 6, + 1.3 + ], + [ + 20, + 30 + ] + ] + } + } + }, + { + "id": "aeroway-taxiway", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "default", + "source-layer": "aeroway", + "minzoom": 12, + "filter": [ + "all", + [ + "in", + "class", + "taxiway" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "hsl(0, 0%, 88%)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 13, + 1.8 + ], + [ + 20, + 20 + ] + ] + }, + "line-opacity": 1 + } + }, + { + "id": "aeroway-runway-casing", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "default", + "source-layer": "aeroway", + "minzoom": 11, + "filter": [ + "all", + [ + "in", + "class", + "runway" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "hsl(0, 0%, 88%)", + "line-width": { + "base": 1.5, + "stops": [ + [ + 11, + 6 + ], + [ + 17, + 55 + ] + ] + }, + "line-opacity": 1 + } + }, + { + "id": "aeroway-area", + "type": "fill", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "default", + "source-layer": "aeroway", + "minzoom": 4, + "filter": [ + "all", + [ + "==", + "$type", + "Polygon" + ], + [ + "in", + "class", + "runway", + "taxiway" + ] + ], + "layout": { + "visibility": "visible" + }, + "paint": { + "fill-opacity": { + "base": 1, + "stops": [ + [ + 13, + 0 + ], + [ + 14, + 1 + ] + ] + }, + "fill-color": "rgba(255, 255, 255, 1)" + } + }, + { + "id": "aeroway-runway", + "type": "line", + "metadata": { + "mapbox:group": "1444849345966.4436" + }, + "source": "default", + "source-layer": "aeroway", + "minzoom": 11, + "filter": [ + "all", + [ + "in", + "class", + "runway" + ], + [ + "==", + "$type", + "LineString" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgba(255, 255, 255, 1)", + "line-width": { + "base": 1.5, + "stops": [ + [ + 11, + 4 + ], + [ + 17, + 50 + ] + ] + }, + "line-opacity": 1 + } + }, + { + "id": "highway_path", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "path" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgb(234, 234, 234)", + "line-width": { + "base": 1.2, + "stops": [ + [ + 13, + 1 + ], + [ + 20, + 10 + ] + ] + }, + "line-opacity": 0.9 + } + }, + { + "id": "highway_minor", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 8, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "minor", + "service", + "track" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "hsl(0, 0%, 88%)", + "line-width": { + "base": 1.55, + "stops": [ + [ + 13, + 1.8 + ], + [ + 20, + 20 + ] + ] + }, + "line-opacity": 0.9 + } + }, + { + "id": "highway_major_casing", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 11, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "primary", + "secondary", + "tertiary", + "trunk" + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgb(213, 213, 213)", + "line-dasharray": [ + 12, + 0 + ], + "line-width": { + "base": 1.3, + "stops": [ + [ + 10, + 3 + ], + [ + 20, + 23 + ] + ] + } + } + }, + { + "id": "highway_major_inner", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 11, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "primary", + "secondary", + "tertiary", + "trunk" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "#fff", + "line-width": { + "base": 1.3, + "stops": [ + [ + 10, + 2 + ], + [ + 20, + 20 + ] + ] + } + } + }, + { + "id": "highway_major_subtle", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "maxzoom": 11, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "in", + "class", + "primary", + "secondary", + "tertiary", + "trunk" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "hsla(0, 0%, 85%, 0.69)", + "line-width": 2 + } + }, + { + "id": "highway_motorway_casing", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "motorway" + ] + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgb(213, 213, 213)", + "line-width": { + "base": 1.4, + "stops": [ + [ + 5.8, + 0 + ], + [ + 6, + 3 + ], + [ + 20, + 40 + ] + ] + }, + "line-dasharray": [ + 2, + 0 + ], + "line-opacity": 1 + } + }, + { + "id": "highway_motorway_inner", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "!in", + "brunnel", + "bridge", + "tunnel" + ], + [ + "==", + "class", + "motorway" + ] + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "base": 1, + "stops": [ + [ + 5.8, + "hsla(0, 0%, 85%, 0.53)" + ], + [ + 6, + "#fff" + ] + ] + }, + "line-width": { + "base": 1.4, + "stops": [ + [ + 4, + 2 + ], + [ + 6, + 1.3 + ], + [ + 20, + 30 + ] + ] + } + } + }, + { + "id": "highway_motorway_subtle", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "maxzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "motorway" + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "hsla(0, 0%, 85%, 0.53)", + "line-width": { + "base": 1.4, + "stops": [ + [ + 4, + 2 + ], + [ + 6, + 1.3 + ] + ] + } + } + }, + { + "id": "railway_transit", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "class", + "transit" + ], + [ + "!in", + "brunnel", + "tunnel" + ] + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-color": "#dddddd", + "line-width": 3 + } + }, + { + "id": "railway_transit_dashline", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "class", + "transit" + ], + [ + "!in", + "brunnel", + "tunnel" + ] + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-color": "#fafafa", + "line-width": 2, + "line-dasharray": [ + 3, + 3 + ] + } + }, + { + "id": "railway_service", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "class", + "rail" + ], + [ + "has", + "service" + ] + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-color": "#dddddd", + "line-width": 3 + } + }, + { + "id": "railway_service_dashline", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 16, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "rail" + ], + [ + "has", + "service" + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-color": "#fafafa", + "line-width": 2, + "line-dasharray": [ + 3, + 3 + ] + } + }, + { + "id": "railway", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "!has", + "service" + ], + [ + "==", + "class", + "rail" + ] + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-color": "#dddddd", + "line-width": { + "base": 1.3, + "stops": [ + [ + 16, + 3 + ], + [ + 20, + 7 + ] + ] + } + } + }, + { + "id": "railway_dashline", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 13, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "!has", + "service" + ], + [ + "==", + "class", + "rail" + ] + ] + ], + "layout": { + "visibility": "visible", + "line-join": "round" + }, + "paint": { + "line-color": "#fafafa", + "line-width": { + "base": 1.3, + "stops": [ + [ + 16, + 2 + ], + [ + 20, + 6 + ] + ] + }, + "line-dasharray": [ + 3, + 3 + ] + } + }, + { + "id": "highway_motorway_bridge_casing", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "==", + "class", + "motorway" + ] + ] + ], + "layout": { + "line-cap": "butt", + "line-join": "miter", + "visibility": "visible" + }, + "paint": { + "line-color": "rgb(213, 213, 213)", + "line-width": { + "base": 1.4, + "stops": [ + [ + 5.8, + 0 + ], + [ + 6, + 5 + ], + [ + 20, + 45 + ] + ] + }, + "line-dasharray": [ + 2, + 0 + ], + "line-opacity": 1 + } + }, + { + "id": "highway_motorway_bridge_inner", + "type": "line", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation", + "minzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "all", + [ + "==", + "brunnel", + "bridge" + ], + [ + "==", + "class", + "motorway" + ] + ] + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": { + "base": 1, + "stops": [ + [ + 5.8, + "hsla(0, 0%, 85%, 0.53)" + ], + [ + 6, + "#fff" + ] + ] + }, + "line-width": { + "base": 1.4, + "stops": [ + [ + 4, + 2 + ], + [ + 6, + 1.3 + ], + [ + 20, + 30 + ] + ] + } + } + }, + { + "id": "highway_name_other", + "type": "symbol", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation_name", + "filter": [ + "all", + [ + "!=", + "class", + "motorway" + ], + [ + "==", + "$type", + "LineString" + ] + ], + "layout": { + "text-size": 10, + "text-max-angle": 30, + "text-transform": "uppercase", + "symbol-spacing": 350, + "text-font": [ + "Nexusa-Next" + ], + "symbol-placement": "line", + "visibility": "visible", + "text-rotation-alignment": "map", + "text-pitch-alignment": "viewport", + "text-field": "{name:latin} {name:nonlatin}" + }, + "paint": { + "text-color": "#bbb", + "text-halo-color": "#fff", + "text-translate": [ + 0, + 0 + ], + "text-halo-width": 2, + "text-halo-blur": 1 + } + }, + { + "id": "highway_name_motorway", + "type": "symbol", + "metadata": { + "mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5" + }, + "source": "default", + "source-layer": "transportation_name", + "filter": [ + "all", + [ + "==", + "$type", + "LineString" + ], + [ + "==", + "class", + "motorway" + ] + ], + "layout": { + "text-size": 10, + "symbol-spacing": 350, + "text-font": [ + "Nexusa-Next-Light" + ], + "symbol-placement": "line", + "visibility": "visible", + "text-rotation-alignment": "viewport", + "text-pitch-alignment": "viewport", + "text-field": "{ref}" + }, + "paint": { + "text-color": "rgb(117, 129, 145)", + "text-halo-color": "hsl(0, 0%, 100%)", + "text-translate": [ + 0, + 2 + ], + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "boundary_state", + "type": "line", + "metadata": { + "mapbox:group": "a14c9607bc7954ba1df7205bf660433f" + }, + "source": "default", + "source-layer": "boundary", + "filter": [ + "==", + "admin_level", + 4 + ], + "layout": { + "line-cap": "round", + "line-join": "round", + "visibility": "visible" + }, + "paint": { + "line-color": "rgb(230, 204, 207)", + "line-width": { + "base": 1.3, + "stops": [ + [ + 3, + 1 + ], + [ + 22, + 15 + ] + ] + }, + "line-blur": 0.4, + "line-dasharray": [ + 2, + 2 + ], + "line-opacity": 1 + } + }, + { + "id": "boundary_country", + "type": "line", + "metadata": { + "mapbox:group": "a14c9607bc7954ba1df7205bf660433f" + }, + "source": "default", + "source-layer": "boundary", + "filter": [ + "==", + "admin_level", + 2 + ], + "layout": { + "line-cap": "round", + "line-join": "round" + }, + "paint": { + "line-color": "rgb(230, 204, 207)", + "line-width": { + "base": 1.1, + "stops": [ + [ + 3, + 1 + ], + [ + 22, + 20 + ] + ] + }, + "line-blur": { + "base": 1, + "stops": [ + [ + 0, + 0.4 + ], + [ + 22, + 4 + ] + ] + }, + "line-opacity": 1 + } + }, + { + "id": "place_other", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 14, + "filter": [ + "all", + [ + "in", + "class", + "continent", + "hamlet", + "neighbourhood", + "isolated_dwelling" + ], + [ + "==", + "$type", + "Point" + ] + ], + "layout": { + "text-size": 10, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "center", + "visibility": "visible", + "text-offset": [ + 0.5, + 0 + ], + "text-anchor": "center", + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgb(117, 129, 145)", + "text-halo-color": "rgb(242,243,240)", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "place_suburb", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 15, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "suburb" + ] + ], + "layout": { + "text-size": 10, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "center", + "visibility": "visible", + "text-offset": [ + 0.5, + 0 + ], + "text-anchor": "center", + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgb(117, 129, 145)", + "text-halo-color": "rgb(242,243,240)", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "place_village", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "village" + ] + ], + "layout": { + "text-size": 10, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "left", + "visibility": "visible", + "text-offset": [ + 0.5, + 0.2 + ], + "icon-size": 0.4, + "text-anchor": "left", + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgb(117, 129, 145)", + "text-halo-color": "rgb(242,243,240)", + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.7 + } + }, + { + "id": "place_town", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 15, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "town" + ] + ], + "layout": { + "text-size": 10, + "icon-image": { + "base": 1, + "stops": [ + [ + 0, + "circle-11" + ], + [ + 8, + "" + ] + ] + }, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "left", + "visibility": "visible", + "text-offset": [ + 0.5, + 0.2 + ], + "icon-size": 0.4, + "text-anchor": { + "base": 1, + "stops": [ + [ + 0, + "left" + ], + [ + 8, + "center" + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgb(117, 129, 145)", + "text-halo-color": "rgb(242,243,240)", + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.7 + } + }, + { + "id": "place_city", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 14, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "all", + [ + "!=", + "capital", + 2 + ], + [ + "==", + "class", + "city" + ], + [ + ">", + "rank", + 3 + ] + ] + ], + "layout": { + "text-size": 10, + "icon-image": { + "base": 1, + "stops": [ + [ + 0, + "circle-11" + ], + [ + 8, + "" + ] + ] + }, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "left", + "visibility": "visible", + "text-offset": [ + 0.5, + 0.2 + ], + "icon-size": 0.4, + "text-anchor": { + "base": 1, + "stops": [ + [ + 0, + "left" + ], + [ + 8, + "center" + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgb(117, 129, 145)", + "text-halo-color": "rgb(242,243,240)", + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.7 + } + }, + { + "id": "place_capital", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 12, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "all", + [ + "==", + "capital", + 2 + ], + [ + "==", + "class", + "city" + ] + ] + ], + "layout": { + "text-size": 14, + "icon-image": { + "base": 1, + "stops": [ + [ + 0, + "star-11" + ], + [ + 8, + "" + ] + ] + }, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "left", + "visibility": "visible", + "text-offset": [ + 0.5, + 0.2 + ], + "icon-size": 1, + "text-anchor": { + "base": 1, + "stops": [ + [ + 0, + "left" + ], + [ + 8, + "center" + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgb(117, 129, 145)", + "text-halo-color": "rgb(242,243,240)", + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.7 + } + }, + { + "id": "place_city_large", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 12, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "all", + [ + "!=", + "capital", + 2 + ], + [ + "<=", + "rank", + 3 + ], + [ + "==", + "class", + "city" + ] + ] + ], + "layout": { + "text-size": 14, + "icon-image": { + "base": 1, + "stops": [ + [ + 0, + "circle-11" + ], + [ + 8, + "" + ] + ] + }, + "text-transform": "uppercase", + "text-font": [ + "Nexusa-Next" + ], + "text-justify": "left", + "visibility": "visible", + "text-offset": [ + 0.5, + 0.2 + ], + "icon-size": 0.4, + "text-anchor": { + "base": 1, + "stops": [ + [ + 0, + "left" + ], + [ + 8, + "center" + ] + ] + }, + "text-field": "{name:latin}\n{name:nonlatin}" + }, + "paint": { + "text-color": "rgb(117, 129, 145)", + "text-halo-color": "rgb(242,243,240)", + "text-halo-width": 1, + "text-halo-blur": 1, + "icon-opacity": 0.7 + } + }, + { + "id": "place_state", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 12, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "state" + ] + ], + "layout": { + "visibility": "visible", + "text-field": "{name:latin}\n{name:nonlatin}", + "text-font": [ + "Nexusa-Next" + ], + "text-transform": "uppercase", + "text-size": 10 + }, + "paint": { + "text-color": "rgb(113, 129, 144)", + "text-halo-color": "rgb(242,243,240)", + "text-halo-width": 1, + "text-halo-blur": 1 + } + }, + { + "id": "place_country_other", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 8, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "country" + ], + [ + "!has", + "iso_a2" + ] + ], + "layout": { + "visibility": "visible", + "text-field": "{name:latin}", + "text-font": [ + "Nexusa-Next" + ], + "text-transform": "uppercase", + "text-size": { + "base": 1, + "stops": [ + [ + 0, + 9 + ], + [ + 6, + 11 + ] + ] + } + }, + "paint": { + "text-halo-width": 1.4, + "text-halo-color": "rgba(236,236,234,0.7)", + "text-color": { + "base": 1, + "stops": [ + [ + 3, + "rgb(157,169,177)" + ], + [ + 4, + "rgb(153, 153, 153)" + ] + ] + } + } + }, + { + "id": "place_country_minor", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 8, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "==", + "class", + "country" + ], + [ + ">=", + "rank", + 2 + ], + [ + "has", + "iso_a2" + ] + ], + "layout": { + "visibility": "visible", + "text-field": "{name:latin}", + "text-font": [ + "Nexusa-Next" + ], + "text-transform": "uppercase", + "text-size": { + "base": 1, + "stops": [ + [ + 0, + 10 + ], + [ + 6, + 12 + ] + ] + } + }, + "paint": { + "text-halo-width": 1.4, + "text-halo-color": "rgba(236,236,234,0.7)", + "text-color": { + "base": 1, + "stops": [ + [ + 3, + "rgb(157,169,177)" + ], + [ + 4, + "rgb(153, 153, 153)" + ] + ] + } + } + }, + { + "id": "place_country_major", + "type": "symbol", + "metadata": { + "mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f" + }, + "source": "default", + "source-layer": "place", + "maxzoom": 6, + "filter": [ + "all", + [ + "==", + "$type", + "Point" + ], + [ + "<=", + "rank", + 1 + ], + [ + "==", + "class", + "country" + ], + [ + "has", + "iso_a2" + ] + ], + "layout": { + "visibility": "visible", + "text-field": "{name:latin}", + "text-font": [ + "Nexusa-Next" + ], + "text-transform": "uppercase", + "text-size": { + "base": 1.4, + "stops": [ + [ + 0, + 10 + ], + [ + 3, + 12 + ], + [ + 4, + 14 + ] + ] + }, + "text-anchor": "center" + }, + "paint": { + "text-halo-width": 1.4, + "text-halo-color": "rgba(236,236,234,0.7)", + "text-color": { + "base": 1, + "stops": [ + [ + 3, + "rgb(157,169,177)" + ], + [ + 4, + "rgb(153, 153, 153)" + ] + ] + } + } + } + ] +} \ No newline at end of file