├── LICENSE.md
├── README.md
├── icons
├── circle-11.svg
└── star-11.svg
└── style.json
/LICENSE.md:
--------------------------------------------------------------------------------
1 | Copyright (c) 2024, MapTiler.com & OpenMapTiles contributors.
2 | Copyright (c) 2015, CartoDB Inc.
3 | All rights reserved.
4 |
5 | Derived from "CartoDB Basemaps" (https://github.com/CartoDB/CartoDB-basemaps)
6 | designed by Stamen and Paul Norman for CartoDB Inc., licensed under CC-BY 3.0.
7 |
8 | # Code license: BSD 3-Clause License
9 |
10 | Redistribution and use in source and binary forms, with or without
11 | modification, are permitted provided that the following conditions are met:
12 |
13 | * Redistributions of source code must retain the above copyright notice, this
14 | list of conditions and the following disclaimer.
15 |
16 | * Redistributions in binary form must reproduce the above copyright notice,
17 | this list of conditions and the following disclaimer in the documentation
18 | and/or other materials provided with the distribution.
19 |
20 | * Neither the name of the copyright holder nor the names of its
21 | contributors may be used to endorse or promote products derived from
22 | this software without specific prior written permission.
23 |
24 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
25 | AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26 | IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
27 | DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
28 | FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29 | DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
30 | SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
31 | CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
32 | OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
33 | OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
34 |
35 | # Design license: CC-BY 4.0
36 |
37 | The visual design features of the style (also known as the "look and feel" of
38 | the map) are licensed under the Creative Commons Attribution 4.0 license.
39 |
40 | To view a copy of the license, visit https://creativecommons.org/licenses/by/4.0/.
41 |
42 | Attribution for the design defined in this repository needs not to be provided
43 | on map images, but should be reasonably accessible from maps based on this style
44 | (for example, in a webpage linked from copyright notice on the map).
45 |
46 | Products or services using maps derived from OpenMapTiles schema need to visibly
47 | credit "OpenMapTiles.org" or reference "OpenMapTiles" with a link to
48 | https://openmaptiles.org/.
49 |
50 | For a browsable electronic map based on OpenMapTiles and OpenStreetMap data, the
51 | credit should appear in the corner of the map. For example:
52 |
53 | [© OpenMapTiles](https://openmaptiles.org/)
54 | [© OpenStreetMap contributors](https://www.openstreetmap.org/copyright)
55 |
56 | For printed and static maps a similar attribution should be made in a textual
57 | description near the image, in the same fashion as if you cite a photograph.
58 |
59 | Exceptions to OpenMapTiles attribution requirement can be in a written form granted
60 | by MapTiler AG (info@maptiler.com).
61 | The project contributors grant MapTiler AG the license to give such
62 | exceptions on a commercial basis.
63 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Positron
2 |
3 | A GL JS basemap style useful for data visualizations. The cartography is based on the
4 | [CartoDB Positron Basemap](https://github.com/CartoDB/CartoDB-basemaps) and it is using the vector tile
5 | schema of [OpenMapTiles](https://github.com/openmaptiles/openmaptiles).
6 |
7 | ## Preview
8 |
9 | **[:globe_with_meridians: Browse the map](https://openmaptiles.github.io/positron-gl-style)**
10 |
11 | ## Edit the Style
12 |
13 | Use the map editor in MapTiler Cloud to view and adjust this map. Open the editor and upload style from this repository or host from various styles available on the platform.
14 |
15 | [Try style editor](https://cloud.maptiler.com/maps/editor)
16 |
17 | [Test Positron](https://cloud.maptiler.com/maps/editor?map=positron)
18 |
19 | Or use the [Maputnik CLI](https://openmaptiles.org/docs/style/maputnik/) to edit and develop the style.
20 | After you've started Maputnik open the editor on `localhost:8000`.
21 |
22 | ```
23 | maputnik --watch --file style.json
24 | ```
25 |
--------------------------------------------------------------------------------
/icons/circle-11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/icons/star-11.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/style.json:
--------------------------------------------------------------------------------
1 | {
2 | "version": 8,
3 | "name": "Positron",
4 | "metadata": {
5 | "mapbox:autocomposite": false,
6 | "mapbox:groups": {
7 | "101da9f13b64a08fa4b6ac1168e89e5f": {
8 | "collapsed": false,
9 | "name": "Places"
10 | },
11 | "a14c9607bc7954ba1df7205bf660433f": {"name": "Boundaries"},
12 | "b6371a3f2f5a9932464fa3867530a2e5": {
13 | "collapsed": false,
14 | "name": "Transportation"
15 | }
16 | },
17 | "mapbox:type": "template",
18 | "openmaptiles:mapbox:owner": "openmaptiles",
19 | "openmaptiles:mapbox:source:url": "mapbox://openmaptiles.4qljc88t",
20 | "openmaptiles:version": "3.x"
21 | },
22 | "sources": {
23 | "openmaptiles": {
24 | "type": "vector",
25 | "url": "https://api.maptiler.com/tiles/v3-openmaptiles/tiles.json?key={key}"
26 | }
27 | },
28 | "sprite": "https://openmaptiles.github.io/positron-gl-style/sprite",
29 | "glyphs": "https://api.maptiler.com/fonts/{fontstack}/{range}.pbf?key={key}",
30 | "layers": [
31 | {
32 | "id": "background",
33 | "type": "background",
34 | "paint": {"background-color": "rgb(242,243,240)"}
35 | },
36 | {
37 | "id": "park",
38 | "type": "fill",
39 | "source": "openmaptiles",
40 | "source-layer": "park",
41 | "filter": ["==", "$type", "Polygon"],
42 | "layout": {"visibility": "visible"},
43 | "paint": {"fill-color": "rgb(230, 233, 229)"}
44 | },
45 | {
46 | "id": "water",
47 | "type": "fill",
48 | "source": "openmaptiles",
49 | "source-layer": "water",
50 | "filter": [
51 | "all",
52 | ["==", "$type", "Polygon"],
53 | ["!=", "brunnel", "tunnel"]
54 | ],
55 | "layout": {"visibility": "visible"},
56 | "paint": {"fill-antialias": true, "fill-color": "rgb(194, 200, 202)"}
57 | },
58 | {
59 | "id": "landcover_ice_shelf",
60 | "type": "fill",
61 | "source": "openmaptiles",
62 | "source-layer": "landcover",
63 | "maxzoom": 8,
64 | "filter": [
65 | "all",
66 | ["==", "$type", "Polygon"],
67 | ["==", "subclass", "ice_shelf"]
68 | ],
69 | "layout": {"visibility": "visible"},
70 | "paint": {"fill-color": "hsl(0, 0%, 98%)", "fill-opacity": 0.7}
71 | },
72 | {
73 | "id": "landcover_glacier",
74 | "type": "fill",
75 | "source": "openmaptiles",
76 | "source-layer": "landcover",
77 | "maxzoom": 8,
78 | "filter": [
79 | "all",
80 | ["==", "$type", "Polygon"],
81 | ["==", "subclass", "glacier"]
82 | ],
83 | "layout": {"visibility": "visible"},
84 | "paint": {
85 | "fill-color": "hsl(0, 0%, 98%)",
86 | "fill-opacity": {"base": 1, "stops": [[0, 1], [8, 0.5]]}
87 | }
88 | },
89 | {
90 | "id": "landuse_residential",
91 | "type": "fill",
92 | "source": "openmaptiles",
93 | "source-layer": "landuse",
94 | "maxzoom": 16,
95 | "filter": [
96 | "all",
97 | ["==", "$type", "Polygon"],
98 | ["==", "class", "residential"]
99 | ],
100 | "layout": {"visibility": "visible"},
101 | "paint": {
102 | "fill-color": "rgb(234, 234, 230)",
103 | "fill-opacity": {"base": 0.6, "stops": [[8, 0.8], [9, 0.6]]}
104 | }
105 | },
106 | {
107 | "id": "landcover_wood",
108 | "type": "fill",
109 | "source": "openmaptiles",
110 | "source-layer": "landcover",
111 | "minzoom": 10,
112 | "filter": ["all", ["==", "$type", "Polygon"], ["==", "class", "wood"]],
113 | "layout": {"visibility": "visible"},
114 | "paint": {
115 | "fill-color": "rgb(220,224,220)",
116 | "fill-opacity": {"base": 1, "stops": [[8, 0], [12, 1]]}
117 | }
118 | },
119 | {
120 | "id": "waterway",
121 | "type": "line",
122 | "source": "openmaptiles",
123 | "source-layer": "waterway",
124 | "filter": ["==", "$type", "LineString"],
125 | "layout": {"visibility": "visible"},
126 | "paint": {"line-color": "hsl(195, 17%, 78%)"}
127 | },
128 | {
129 | "id": "water_name",
130 | "type": "symbol",
131 | "source": "openmaptiles",
132 | "source-layer": "water_name",
133 | "filter": ["==", "$type", "LineString"],
134 | "layout": {
135 | "symbol-placement": "line",
136 | "symbol-spacing": 500,
137 | "text-field": "{name:latin}\n{name:nonlatin}",
138 | "text-font": ["Metropolis Medium Italic", "Noto Sans Italic"],
139 | "text-rotation-alignment": "map",
140 | "text-size": 12
141 | },
142 | "paint": {
143 | "text-color": "rgb(157,169,177)",
144 | "text-halo-blur": 1,
145 | "text-halo-color": "rgb(242,243,240)",
146 | "text-halo-width": 1
147 | }
148 | },
149 | {
150 | "id": "building",
151 | "type": "fill",
152 | "source": "openmaptiles",
153 | "source-layer": "building",
154 | "minzoom": 12,
155 | "paint": {
156 | "fill-antialias": true,
157 | "fill-color": "rgb(234, 234, 229)",
158 | "fill-outline-color": "rgb(219, 219, 218)"
159 | }
160 | },
161 | {
162 | "id": "tunnel_motorway_casing",
163 | "type": "line",
164 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
165 | "source": "openmaptiles",
166 | "source-layer": "transportation",
167 | "minzoom": 6,
168 | "filter": [
169 | "all",
170 | ["==", "$type", "LineString"],
171 | ["all", ["==", "brunnel", "tunnel"], ["==", "class", "motorway"]]
172 | ],
173 | "layout": {
174 | "line-cap": "butt",
175 | "line-join": "miter",
176 | "visibility": "visible"
177 | },
178 | "paint": {
179 | "line-color": "rgb(213, 213, 213)",
180 | "line-opacity": 1,
181 | "line-width": {"base": 1.4, "stops": [[5.8, 0], [6, 3], [20, 40]]}
182 | }
183 | },
184 | {
185 | "id": "tunnel_motorway_inner",
186 | "type": "line",
187 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
188 | "source": "openmaptiles",
189 | "source-layer": "transportation",
190 | "minzoom": 6,
191 | "filter": [
192 | "all",
193 | ["==", "$type", "LineString"],
194 | ["all", ["==", "brunnel", "tunnel"], ["==", "class", "motorway"]]
195 | ],
196 | "layout": {
197 | "line-cap": "round",
198 | "line-join": "round",
199 | "visibility": "visible"
200 | },
201 | "paint": {
202 | "line-color": "rgb(234,234,234)",
203 | "line-width": {"base": 1.4, "stops": [[4, 2], [6, 1.3], [20, 30]]}
204 | }
205 | },
206 | {
207 | "id": "aeroway-taxiway",
208 | "type": "line",
209 | "metadata": {"mapbox:group": "1444849345966.4436"},
210 | "source": "openmaptiles",
211 | "source-layer": "aeroway",
212 | "minzoom": 12,
213 | "filter": ["all", ["in", "class", "taxiway"]],
214 | "layout": {
215 | "line-cap": "round",
216 | "line-join": "round",
217 | "visibility": "visible"
218 | },
219 | "paint": {
220 | "line-color": "hsl(0, 0%, 88%)",
221 | "line-opacity": 1,
222 | "line-width": {"base": 1.55, "stops": [[13, 1.8], [20, 20]]}
223 | }
224 | },
225 | {
226 | "id": "aeroway-runway-casing",
227 | "type": "line",
228 | "metadata": {"mapbox:group": "1444849345966.4436"},
229 | "source": "openmaptiles",
230 | "source-layer": "aeroway",
231 | "minzoom": 11,
232 | "filter": ["all", ["in", "class", "runway"]],
233 | "layout": {
234 | "line-cap": "round",
235 | "line-join": "round",
236 | "visibility": "visible"
237 | },
238 | "paint": {
239 | "line-color": "hsl(0, 0%, 88%)",
240 | "line-opacity": 1,
241 | "line-width": {"base": 1.5, "stops": [[11, 6], [17, 55]]}
242 | }
243 | },
244 | {
245 | "id": "aeroway-area",
246 | "type": "fill",
247 | "metadata": {"mapbox:group": "1444849345966.4436"},
248 | "source": "openmaptiles",
249 | "source-layer": "aeroway",
250 | "minzoom": 4,
251 | "filter": [
252 | "all",
253 | ["==", "$type", "Polygon"],
254 | ["in", "class", "runway", "taxiway"]
255 | ],
256 | "layout": {"visibility": "visible"},
257 | "paint": {
258 | "fill-color": "rgba(255, 255, 255, 1)",
259 | "fill-opacity": {"base": 1, "stops": [[13, 0], [14, 1]]}
260 | }
261 | },
262 | {
263 | "id": "aeroway-runway",
264 | "type": "line",
265 | "metadata": {"mapbox:group": "1444849345966.4436"},
266 | "source": "openmaptiles",
267 | "source-layer": "aeroway",
268 | "minzoom": 11,
269 | "filter": [
270 | "all",
271 | ["in", "class", "runway"],
272 | ["==", "$type", "LineString"]
273 | ],
274 | "layout": {
275 | "line-cap": "round",
276 | "line-join": "round",
277 | "visibility": "visible"
278 | },
279 | "paint": {
280 | "line-color": "rgba(255, 255, 255, 1)",
281 | "line-opacity": 1,
282 | "line-width": {"base": 1.5, "stops": [[11, 4], [17, 50]]}
283 | }
284 | },
285 | {
286 | "id": "road_area_pier",
287 | "type": "fill",
288 | "metadata": {},
289 | "source": "openmaptiles",
290 | "source-layer": "transportation",
291 | "filter": ["all", ["==", "$type", "Polygon"], ["==", "class", "pier"]],
292 | "layout": {"visibility": "visible"},
293 | "paint": {"fill-antialias": true, "fill-color": "rgb(242,243,240)"}
294 | },
295 | {
296 | "id": "road_pier",
297 | "type": "line",
298 | "metadata": {},
299 | "source": "openmaptiles",
300 | "source-layer": "transportation",
301 | "filter": ["all", ["==", "$type", "LineString"], ["in", "class", "pier"]],
302 | "layout": {"line-cap": "round", "line-join": "round"},
303 | "paint": {
304 | "line-color": "rgb(242,243,240)",
305 | "line-width": {"base": 1.2, "stops": [[15, 1], [17, 4]]}
306 | }
307 | },
308 | {
309 | "id": "highway_path",
310 | "type": "line",
311 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
312 | "source": "openmaptiles",
313 | "source-layer": "transportation",
314 | "filter": ["all", ["==", "$type", "LineString"], ["==", "class", "path"]],
315 | "layout": {
316 | "line-cap": "round",
317 | "line-join": "round",
318 | "visibility": "visible"
319 | },
320 | "paint": {
321 | "line-color": "rgb(234, 234, 234)",
322 | "line-opacity": 0.9,
323 | "line-width": {"base": 1.2, "stops": [[13, 1], [20, 10]]}
324 | }
325 | },
326 | {
327 | "id": "highway_minor",
328 | "type": "line",
329 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
330 | "source": "openmaptiles",
331 | "source-layer": "transportation",
332 | "minzoom": 8,
333 | "filter": [
334 | "all",
335 | ["==", "$type", "LineString"],
336 | ["in", "class", "minor", "service", "track"]
337 | ],
338 | "layout": {
339 | "line-cap": "round",
340 | "line-join": "round",
341 | "visibility": "visible"
342 | },
343 | "paint": {
344 | "line-color": "hsl(0, 0%, 88%)",
345 | "line-opacity": 0.9,
346 | "line-width": {"base": 1.55, "stops": [[13, 1.8], [20, 20]]}
347 | }
348 | },
349 | {
350 | "id": "highway_major_casing",
351 | "type": "line",
352 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
353 | "source": "openmaptiles",
354 | "source-layer": "transportation",
355 | "minzoom": 11,
356 | "filter": [
357 | "all",
358 | ["==", "$type", "LineString"],
359 | ["in", "class", "primary", "secondary", "tertiary", "trunk"]
360 | ],
361 | "layout": {
362 | "line-cap": "butt",
363 | "line-join": "miter",
364 | "visibility": "visible"
365 | },
366 | "paint": {
367 | "line-color": "rgb(213, 213, 213)",
368 | "line-dasharray": [12, 0],
369 | "line-width": {"base": 1.3, "stops": [[10, 3], [20, 23]]}
370 | }
371 | },
372 | {
373 | "id": "highway_major_inner",
374 | "type": "line",
375 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
376 | "source": "openmaptiles",
377 | "source-layer": "transportation",
378 | "minzoom": 11,
379 | "filter": [
380 | "all",
381 | ["==", "$type", "LineString"],
382 | ["in", "class", "primary", "secondary", "tertiary", "trunk"]
383 | ],
384 | "layout": {
385 | "line-cap": "round",
386 | "line-join": "round",
387 | "visibility": "visible"
388 | },
389 | "paint": {
390 | "line-color": "#fff",
391 | "line-width": {"base": 1.3, "stops": [[10, 2], [20, 20]]}
392 | }
393 | },
394 | {
395 | "id": "highway_major_subtle",
396 | "type": "line",
397 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
398 | "source": "openmaptiles",
399 | "source-layer": "transportation",
400 | "maxzoom": 11,
401 | "filter": [
402 | "all",
403 | ["==", "$type", "LineString"],
404 | ["in", "class", "primary", "secondary", "tertiary", "trunk"]
405 | ],
406 | "layout": {
407 | "line-cap": "round",
408 | "line-join": "round",
409 | "visibility": "visible"
410 | },
411 | "paint": {"line-color": "hsla(0, 0%, 85%, 0.69)", "line-width": 2}
412 | },
413 | {
414 | "id": "highway_motorway_casing",
415 | "type": "line",
416 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
417 | "source": "openmaptiles",
418 | "source-layer": "transportation",
419 | "minzoom": 6,
420 | "filter": [
421 | "all",
422 | ["==", "$type", "LineString"],
423 | [
424 | "all",
425 | ["!in", "brunnel", "bridge", "tunnel"],
426 | ["==", "class", "motorway"]
427 | ]
428 | ],
429 | "layout": {
430 | "line-cap": "butt",
431 | "line-join": "miter",
432 | "visibility": "visible"
433 | },
434 | "paint": {
435 | "line-color": "rgb(213, 213, 213)",
436 | "line-dasharray": [2, 0],
437 | "line-opacity": 1,
438 | "line-width": {"base": 1.4, "stops": [[5.8, 0], [6, 3], [20, 40]]}
439 | }
440 | },
441 | {
442 | "id": "highway_motorway_inner",
443 | "type": "line",
444 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
445 | "source": "openmaptiles",
446 | "source-layer": "transportation",
447 | "minzoom": 6,
448 | "filter": [
449 | "all",
450 | ["==", "$type", "LineString"],
451 | [
452 | "all",
453 | ["!in", "brunnel", "bridge", "tunnel"],
454 | ["==", "class", "motorway"]
455 | ]
456 | ],
457 | "layout": {
458 | "line-cap": "round",
459 | "line-join": "round",
460 | "visibility": "visible"
461 | },
462 | "paint": {
463 | "line-color": {
464 | "base": 1,
465 | "stops": [[5.8, "hsla(0, 0%, 85%, 0.53)"], [6, "#fff"]]
466 | },
467 | "line-width": {"base": 1.4, "stops": [[4, 2], [6, 1.3], [20, 30]]}
468 | }
469 | },
470 | {
471 | "id": "highway_motorway_subtle",
472 | "type": "line",
473 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
474 | "source": "openmaptiles",
475 | "source-layer": "transportation",
476 | "maxzoom": 6,
477 | "filter": [
478 | "all",
479 | ["==", "$type", "LineString"],
480 | ["==", "class", "motorway"]
481 | ],
482 | "layout": {
483 | "line-cap": "round",
484 | "line-join": "round",
485 | "visibility": "visible"
486 | },
487 | "paint": {
488 | "line-color": "hsla(0, 0%, 85%, 0.53)",
489 | "line-width": {"base": 1.4, "stops": [[4, 2], [6, 1.3]]}
490 | }
491 | },
492 | {
493 | "id": "railway_transit",
494 | "type": "line",
495 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
496 | "source": "openmaptiles",
497 | "source-layer": "transportation",
498 | "minzoom": 16,
499 | "filter": [
500 | "all",
501 | ["==", "$type", "LineString"],
502 | ["all", ["==", "class", "transit"], ["!in", "brunnel", "tunnel"]]
503 | ],
504 | "layout": {"line-join": "round", "visibility": "visible"},
505 | "paint": {"line-color": "#dddddd", "line-width": 3}
506 | },
507 | {
508 | "id": "railway_transit_dashline",
509 | "type": "line",
510 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
511 | "source": "openmaptiles",
512 | "source-layer": "transportation",
513 | "minzoom": 16,
514 | "filter": [
515 | "all",
516 | ["==", "$type", "LineString"],
517 | ["all", ["==", "class", "transit"], ["!in", "brunnel", "tunnel"]]
518 | ],
519 | "layout": {"line-join": "round", "visibility": "visible"},
520 | "paint": {
521 | "line-color": "#fafafa",
522 | "line-dasharray": [3, 3],
523 | "line-width": 2
524 | }
525 | },
526 | {
527 | "id": "railway_service",
528 | "type": "line",
529 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
530 | "source": "openmaptiles",
531 | "source-layer": "transportation",
532 | "minzoom": 16,
533 | "filter": [
534 | "all",
535 | ["==", "$type", "LineString"],
536 | ["all", ["==", "class", "rail"], ["has", "service"]]
537 | ],
538 | "layout": {"line-join": "round", "visibility": "visible"},
539 | "paint": {"line-color": "#dddddd", "line-width": 3}
540 | },
541 | {
542 | "id": "railway_service_dashline",
543 | "type": "line",
544 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
545 | "source": "openmaptiles",
546 | "source-layer": "transportation",
547 | "minzoom": 16,
548 | "filter": [
549 | "all",
550 | ["==", "$type", "LineString"],
551 | ["==", "class", "rail"],
552 | ["has", "service"]
553 | ],
554 | "layout": {"line-join": "round", "visibility": "visible"},
555 | "paint": {
556 | "line-color": "#fafafa",
557 | "line-dasharray": [3, 3],
558 | "line-width": 2
559 | }
560 | },
561 | {
562 | "id": "railway",
563 | "type": "line",
564 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
565 | "source": "openmaptiles",
566 | "source-layer": "transportation",
567 | "minzoom": 13,
568 | "filter": [
569 | "all",
570 | ["==", "$type", "LineString"],
571 | ["all", ["!has", "service"], ["==", "class", "rail"]]
572 | ],
573 | "layout": {"line-join": "round", "visibility": "visible"},
574 | "paint": {
575 | "line-color": "#dddddd",
576 | "line-width": {"base": 1.3, "stops": [[16, 3], [20, 7]]}
577 | }
578 | },
579 | {
580 | "id": "railway_dashline",
581 | "type": "line",
582 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
583 | "source": "openmaptiles",
584 | "source-layer": "transportation",
585 | "minzoom": 13,
586 | "filter": [
587 | "all",
588 | ["==", "$type", "LineString"],
589 | ["all", ["!has", "service"], ["==", "class", "rail"]]
590 | ],
591 | "layout": {"line-join": "round", "visibility": "visible"},
592 | "paint": {
593 | "line-color": "#fafafa",
594 | "line-dasharray": [3, 3],
595 | "line-width": {"base": 1.3, "stops": [[16, 2], [20, 6]]}
596 | }
597 | },
598 | {
599 | "id": "highway_motorway_bridge_casing",
600 | "type": "line",
601 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
602 | "source": "openmaptiles",
603 | "source-layer": "transportation",
604 | "minzoom": 6,
605 | "filter": [
606 | "all",
607 | ["==", "$type", "LineString"],
608 | ["all", ["==", "brunnel", "bridge"], ["==", "class", "motorway"]]
609 | ],
610 | "layout": {
611 | "line-cap": "butt",
612 | "line-join": "miter",
613 | "visibility": "visible"
614 | },
615 | "paint": {
616 | "line-color": "rgb(213, 213, 213)",
617 | "line-dasharray": [2, 0],
618 | "line-opacity": 1,
619 | "line-width": {"base": 1.4, "stops": [[5.8, 0], [6, 5], [20, 45]]}
620 | }
621 | },
622 | {
623 | "id": "highway_motorway_bridge_inner",
624 | "type": "line",
625 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
626 | "source": "openmaptiles",
627 | "source-layer": "transportation",
628 | "minzoom": 6,
629 | "filter": [
630 | "all",
631 | ["==", "$type", "LineString"],
632 | ["all", ["==", "brunnel", "bridge"], ["==", "class", "motorway"]]
633 | ],
634 | "layout": {
635 | "line-cap": "round",
636 | "line-join": "round",
637 | "visibility": "visible"
638 | },
639 | "paint": {
640 | "line-color": {
641 | "base": 1,
642 | "stops": [[5.8, "hsla(0, 0%, 85%, 0.53)"], [6, "#fff"]]
643 | },
644 | "line-width": {"base": 1.4, "stops": [[4, 2], [6, 1.3], [20, 30]]}
645 | }
646 | },
647 | {
648 | "id": "highway_name_other",
649 | "type": "symbol",
650 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
651 | "source": "openmaptiles",
652 | "source-layer": "transportation_name",
653 | "filter": [
654 | "all",
655 | ["!=", "class", "motorway"],
656 | ["==", "$type", "LineString"]
657 | ],
658 | "layout": {
659 | "symbol-placement": "line",
660 | "symbol-spacing": 350,
661 | "text-field": "{name:latin} {name:nonlatin}",
662 | "text-font": ["Metropolis Regular", "Noto Sans Regular"],
663 | "text-max-angle": 30,
664 | "text-pitch-alignment": "viewport",
665 | "text-rotation-alignment": "map",
666 | "text-size": 10,
667 | "text-transform": "uppercase",
668 | "visibility": "visible"
669 | },
670 | "paint": {
671 | "text-color": "#bbb",
672 | "text-halo-blur": 1,
673 | "text-halo-color": "#fff",
674 | "text-halo-width": 2,
675 | "text-translate": [0, 0]
676 | }
677 | },
678 | {
679 | "id": "highway_name_motorway",
680 | "type": "symbol",
681 | "metadata": {"mapbox:group": "b6371a3f2f5a9932464fa3867530a2e5"},
682 | "source": "openmaptiles",
683 | "source-layer": "transportation_name",
684 | "filter": [
685 | "all",
686 | ["==", "$type", "LineString"],
687 | ["==", "class", "motorway"]
688 | ],
689 | "layout": {
690 | "symbol-placement": "line",
691 | "symbol-spacing": 350,
692 | "text-field": "{ref}",
693 | "text-font": ["Metropolis Light", "Noto Sans Regular"],
694 | "text-pitch-alignment": "viewport",
695 | "text-rotation-alignment": "viewport",
696 | "text-size": 10,
697 | "visibility": "visible"
698 | },
699 | "paint": {
700 | "text-color": "rgb(117, 129, 145)",
701 | "text-halo-blur": 1,
702 | "text-halo-color": "hsl(0, 0%, 100%)",
703 | "text-halo-width": 1,
704 | "text-translate": [0, 2]
705 | }
706 | },
707 | {
708 | "id": "boundary_state",
709 | "type": "line",
710 | "metadata": {"mapbox:group": "a14c9607bc7954ba1df7205bf660433f"},
711 | "source": "openmaptiles",
712 | "source-layer": "boundary",
713 | "filter": ["==", "admin_level", 4],
714 | "layout": {
715 | "line-cap": "round",
716 | "line-join": "round",
717 | "visibility": "visible"
718 | },
719 | "paint": {
720 | "line-blur": 0.4,
721 | "line-color": "rgb(230, 204, 207)",
722 | "line-dasharray": [2, 2],
723 | "line-opacity": 1,
724 | "line-width": {"base": 1.3, "stops": [[3, 1], [22, 15]]}
725 | }
726 | },
727 | {
728 | "id": "boundary_country_z0-4",
729 | "type": "line",
730 | "metadata": {"mapbox:group": "a14c9607bc7954ba1df7205bf660433f"},
731 | "source": "openmaptiles",
732 | "source-layer": "boundary",
733 | "maxzoom": 5,
734 | "filter": ["all", ["==", "admin_level", 2], ["!has", "claimed_by"]],
735 | "layout": {"line-cap": "round", "line-join": "round"},
736 | "paint": {
737 | "line-blur": {"base": 1, "stops": [[0, 0.4], [22, 4]]},
738 | "line-color": "rgb(230, 204, 207)",
739 | "line-opacity": 1,
740 | "line-width": {"base": 1.1, "stops": [[3, 1], [22, 20]]}
741 | }
742 | },
743 | {
744 | "id": "boundary_country_z5-",
745 | "type": "line",
746 | "metadata": {"mapbox:group": "a14c9607bc7954ba1df7205bf660433f"},
747 | "source": "openmaptiles",
748 | "source-layer": "boundary",
749 | "minzoom": 5,
750 | "filter": ["==", "admin_level", 2],
751 | "layout": {"line-cap": "round", "line-join": "round"},
752 | "paint": {
753 | "line-blur": {"base": 1, "stops": [[0, 0.4], [22, 4]]},
754 | "line-color": "rgb(230, 204, 207)",
755 | "line-opacity": 1,
756 | "line-width": {"base": 1.1, "stops": [[3, 1], [22, 20]]}
757 | }
758 | },
759 | {
760 | "id": "place_other",
761 | "type": "symbol",
762 | "metadata": {"mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"},
763 | "source": "openmaptiles",
764 | "source-layer": "place",
765 | "maxzoom": 14,
766 | "filter": [
767 | "all",
768 | [
769 | "in",
770 | "class",
771 | "continent",
772 | "hamlet",
773 | "neighbourhood",
774 | "isolated_dwelling"
775 | ],
776 | ["==", "$type", "Point"]
777 | ],
778 | "layout": {
779 | "text-anchor": "center",
780 | "text-field": "{name:latin}\n{name:nonlatin}",
781 | "text-font": ["Metropolis Regular", "Noto Sans Regular"],
782 | "text-justify": "center",
783 | "text-offset": [0.5, 0],
784 | "text-size": 10,
785 | "text-transform": "uppercase",
786 | "visibility": "visible"
787 | },
788 | "paint": {
789 | "text-color": "rgb(117, 129, 145)",
790 | "text-halo-blur": 1,
791 | "text-halo-color": "rgb(242,243,240)",
792 | "text-halo-width": 1
793 | }
794 | },
795 | {
796 | "id": "place_suburb",
797 | "type": "symbol",
798 | "metadata": {"mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"},
799 | "source": "openmaptiles",
800 | "source-layer": "place",
801 | "maxzoom": 15,
802 | "filter": ["all", ["==", "$type", "Point"], ["==", "class", "suburb"]],
803 | "layout": {
804 | "text-anchor": "center",
805 | "text-field": "{name:latin}\n{name:nonlatin}",
806 | "text-font": ["Metropolis Regular", "Noto Sans Regular"],
807 | "text-justify": "center",
808 | "text-offset": [0.5, 0],
809 | "text-size": 10,
810 | "text-transform": "uppercase",
811 | "visibility": "visible"
812 | },
813 | "paint": {
814 | "text-color": "rgb(117, 129, 145)",
815 | "text-halo-blur": 1,
816 | "text-halo-color": "rgb(242,243,240)",
817 | "text-halo-width": 1
818 | }
819 | },
820 | {
821 | "id": "place_village",
822 | "type": "symbol",
823 | "metadata": {"mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"},
824 | "source": "openmaptiles",
825 | "source-layer": "place",
826 | "maxzoom": 14,
827 | "filter": ["all", ["==", "$type", "Point"], ["==", "class", "village"]],
828 | "layout": {
829 | "icon-size": 0.4,
830 | "text-anchor": "left",
831 | "text-field": "{name:latin}\n{name:nonlatin}",
832 | "text-font": ["Metropolis Regular", "Noto Sans Regular"],
833 | "text-justify": "left",
834 | "text-offset": [0.5, 0.2],
835 | "text-size": 10,
836 | "text-transform": "uppercase",
837 | "visibility": "visible"
838 | },
839 | "paint": {
840 | "icon-opacity": 0.7,
841 | "text-color": "rgb(117, 129, 145)",
842 | "text-halo-blur": 1,
843 | "text-halo-color": "rgb(242,243,240)",
844 | "text-halo-width": 1
845 | }
846 | },
847 | {
848 | "id": "place_town",
849 | "type": "symbol",
850 | "metadata": {"mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"},
851 | "source": "openmaptiles",
852 | "source-layer": "place",
853 | "maxzoom": 15,
854 | "filter": ["all", ["==", "$type", "Point"], ["==", "class", "town"]],
855 | "layout": {
856 | "icon-image": {"base": 1, "stops": [[0, "circle-11"], [8, ""]]},
857 | "icon-size": 0.4,
858 | "text-anchor": {"base": 1, "stops": [[0, "left"], [8, "center"]]},
859 | "text-field": "{name:latin}\n{name:nonlatin}",
860 | "text-font": ["Metropolis Regular", "Noto Sans Regular"],
861 | "text-justify": "left",
862 | "text-offset": [0.5, 0.2],
863 | "text-size": 10,
864 | "text-transform": "uppercase",
865 | "visibility": "visible"
866 | },
867 | "paint": {
868 | "icon-opacity": 0.7,
869 | "text-color": "rgb(117, 129, 145)",
870 | "text-halo-blur": 1,
871 | "text-halo-color": "rgb(242,243,240)",
872 | "text-halo-width": 1
873 | }
874 | },
875 | {
876 | "id": "place_city",
877 | "type": "symbol",
878 | "metadata": {"mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"},
879 | "source": "openmaptiles",
880 | "source-layer": "place",
881 | "maxzoom": 14,
882 | "filter": [
883 | "all",
884 | ["==", "$type", "Point"],
885 | ["all", ["!=", "capital", 2], ["==", "class", "city"], [">", "rank", 3]]
886 | ],
887 | "layout": {
888 | "icon-image": {"base": 1, "stops": [[0, "circle-11"], [8, ""]]},
889 | "icon-size": 0.4,
890 | "text-anchor": {"base": 1, "stops": [[0, "left"], [8, "center"]]},
891 | "text-field": "{name:latin}\n{name:nonlatin}",
892 | "text-font": ["Metropolis Regular", "Noto Sans Regular"],
893 | "text-justify": "left",
894 | "text-offset": [0.5, 0.2],
895 | "text-size": 10,
896 | "text-transform": "uppercase",
897 | "visibility": "visible"
898 | },
899 | "paint": {
900 | "icon-opacity": 0.7,
901 | "text-color": "rgb(117, 129, 145)",
902 | "text-halo-blur": 1,
903 | "text-halo-color": "rgb(242,243,240)",
904 | "text-halo-width": 1
905 | }
906 | },
907 | {
908 | "id": "place_capital",
909 | "type": "symbol",
910 | "metadata": {"mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"},
911 | "source": "openmaptiles",
912 | "source-layer": "place",
913 | "maxzoom": 12,
914 | "filter": [
915 | "all",
916 | ["==", "$type", "Point"],
917 | ["all", ["==", "capital", 2], ["==", "class", "city"]]
918 | ],
919 | "layout": {
920 | "icon-image": {"base": 1, "stops": [[0, "star-11"], [8, ""]]},
921 | "icon-size": 1,
922 | "text-anchor": {"base": 1, "stops": [[0, "left"], [8, "center"]]},
923 | "text-field": "{name:latin}\n{name:nonlatin}",
924 | "text-font": ["Metropolis Regular", "Noto Sans Regular"],
925 | "text-justify": "left",
926 | "text-offset": [0.5, 0.2],
927 | "text-size": 14,
928 | "text-transform": "uppercase",
929 | "visibility": "visible"
930 | },
931 | "paint": {
932 | "icon-opacity": 0.7,
933 | "text-color": "rgb(117, 129, 145)",
934 | "text-halo-blur": 1,
935 | "text-halo-color": "rgb(242,243,240)",
936 | "text-halo-width": 1
937 | }
938 | },
939 | {
940 | "id": "place_city_large",
941 | "type": "symbol",
942 | "metadata": {"mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"},
943 | "source": "openmaptiles",
944 | "source-layer": "place",
945 | "maxzoom": 12,
946 | "filter": [
947 | "all",
948 | ["==", "$type", "Point"],
949 | [
950 | "all",
951 | ["!=", "capital", 2],
952 | ["<=", "rank", 3],
953 | ["==", "class", "city"]
954 | ]
955 | ],
956 | "layout": {
957 | "icon-image": {"base": 1, "stops": [[0, "circle-11"], [8, ""]]},
958 | "icon-size": 0.4,
959 | "text-anchor": {"base": 1, "stops": [[0, "left"], [8, "center"]]},
960 | "text-field": "{name:latin}\n{name:nonlatin}",
961 | "text-font": ["Metropolis Regular", "Noto Sans Regular"],
962 | "text-justify": "left",
963 | "text-offset": [0.5, 0.2],
964 | "text-size": 14,
965 | "text-transform": "uppercase",
966 | "visibility": "visible"
967 | },
968 | "paint": {
969 | "icon-opacity": 0.7,
970 | "text-color": "rgb(117, 129, 145)",
971 | "text-halo-blur": 1,
972 | "text-halo-color": "rgb(242,243,240)",
973 | "text-halo-width": 1
974 | }
975 | },
976 | {
977 | "id": "place_state",
978 | "type": "symbol",
979 | "metadata": {"mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"},
980 | "source": "openmaptiles",
981 | "source-layer": "place",
982 | "maxzoom": 12,
983 | "filter": ["all", ["==", "$type", "Point"], ["==", "class", "state"]],
984 | "layout": {
985 | "text-field": "{name:latin}\n{name:nonlatin}",
986 | "text-font": ["Metropolis Regular", "Noto Sans Regular"],
987 | "text-size": 10,
988 | "text-transform": "uppercase",
989 | "visibility": "visible"
990 | },
991 | "paint": {
992 | "text-color": "rgb(113, 129, 144)",
993 | "text-halo-blur": 1,
994 | "text-halo-color": "rgb(242,243,240)",
995 | "text-halo-width": 1
996 | }
997 | },
998 | {
999 | "id": "place_country_other",
1000 | "type": "symbol",
1001 | "metadata": {"mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"},
1002 | "source": "openmaptiles",
1003 | "source-layer": "place",
1004 | "maxzoom": 8,
1005 | "filter": [
1006 | "all",
1007 | ["==", "$type", "Point"],
1008 | ["==", "class", "country"],
1009 | ["!has", "iso_a2"]
1010 | ],
1011 | "layout": {
1012 | "text-field": "{name:latin}",
1013 | "text-font": ["Metropolis Light Italic", "Noto Sans Italic"],
1014 | "text-size": {"base": 1, "stops": [[0, 9], [6, 11]]},
1015 | "text-transform": "uppercase",
1016 | "visibility": "visible"
1017 | },
1018 | "paint": {
1019 | "text-color": {
1020 | "base": 1,
1021 | "stops": [[3, "rgb(157,169,177)"], [4, "rgb(153, 153, 153)"]]
1022 | },
1023 | "text-halo-color": "rgba(236,236,234,0.7)",
1024 | "text-halo-width": 1.4
1025 | }
1026 | },
1027 | {
1028 | "id": "place_country_minor",
1029 | "type": "symbol",
1030 | "metadata": {"mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"},
1031 | "source": "openmaptiles",
1032 | "source-layer": "place",
1033 | "maxzoom": 8,
1034 | "filter": [
1035 | "all",
1036 | ["==", "$type", "Point"],
1037 | ["==", "class", "country"],
1038 | [">=", "rank", 2],
1039 | ["has", "iso_a2"]
1040 | ],
1041 | "layout": {
1042 | "text-field": "{name:latin}",
1043 | "text-font": ["Metropolis Regular", "Noto Sans Regular"],
1044 | "text-size": {"base": 1, "stops": [[0, 10], [6, 12]]},
1045 | "text-transform": "uppercase",
1046 | "visibility": "visible"
1047 | },
1048 | "paint": {
1049 | "text-color": {
1050 | "base": 1,
1051 | "stops": [[3, "rgb(157,169,177)"], [4, "rgb(153, 153, 153)"]]
1052 | },
1053 | "text-halo-color": "rgba(236,236,234,0.7)",
1054 | "text-halo-width": 1.4
1055 | }
1056 | },
1057 | {
1058 | "id": "place_country_major",
1059 | "type": "symbol",
1060 | "metadata": {"mapbox:group": "101da9f13b64a08fa4b6ac1168e89e5f"},
1061 | "source": "openmaptiles",
1062 | "source-layer": "place",
1063 | "maxzoom": 6,
1064 | "filter": [
1065 | "all",
1066 | ["==", "$type", "Point"],
1067 | ["<=", "rank", 1],
1068 | ["==", "class", "country"],
1069 | ["has", "iso_a2"]
1070 | ],
1071 | "layout": {
1072 | "text-anchor": "center",
1073 | "text-field": "{name:latin}",
1074 | "text-font": ["Metropolis Regular", "Noto Sans Regular"],
1075 | "text-size": {"base": 1.4, "stops": [[0, 10], [3, 12], [4, 14]]},
1076 | "text-transform": "uppercase",
1077 | "visibility": "visible"
1078 | },
1079 | "paint": {
1080 | "text-color": {
1081 | "base": 1,
1082 | "stops": [[3, "rgb(157,169,177)"], [4, "rgb(153, 153, 153)"]]
1083 | },
1084 | "text-halo-color": "rgba(236,236,234,0.7)",
1085 | "text-halo-width": 1.4
1086 | }
1087 | }
1088 | ],
1089 | "id": "positron"
1090 | }
1091 |
--------------------------------------------------------------------------------