Files
gpx.studio/website/src/lib/assets/custom/satellite.json
T

2236 lines
54 KiB
JSON
Raw Normal View History

2026-05-24 13:49:43 +02:00
{
"version": 8,
"sources": {
"openmaptiles": {
"type": "vector",
"url": "https://gpxstudio.xyz/openmaptiles.json"
},
2026-05-25 09:59:54 +02:00
"esri": {
"type": "raster",
"tiles": ["https://services.arcgisonline.com/arcgis/rest/services/World_Imagery/MapServer/WMTS/tile/1.0.0/World_Imagery/default/default028mm/{z}/{y}/{x}.jpg"],
"tileSize": 256,
"maxzoom": 19,
"attribution": "© <a href=\"https://www.esri.com/\" target=\"_blank\">Esri</a>, Vantor, Earthstar Geographics, and the GIS User Community"
2026-05-24 13:49:43 +02:00
}
},
"sprite": "https://tiles.openfreemap.org/sprites/ofm_f384/ofm",
"glyphs": "https://tiles.openfreemap.org/fonts/{fontstack}/{range}.pbf",
"layers": [
{
2026-05-25 09:59:54 +02:00
"id": "esri",
"type": "raster",
"source": "esri"
2026-05-24 13:49:43 +02:00
},
2026-05-25 11:00:55 +02:00
{
"id": "waterway_river",
"type": "line",
"source": "openmaptiles",
"source-layer": "waterway",
"filter": [
"all",
["==", ["get", "class"], "river"],
["!=", ["get", "brunnel"], "tunnel"]
],
"layout": {"line-cap": "round"},
"paint": {
"line-color": "#a0c8f0",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
11,
0.5,
20,
6
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
{
"id": "waterway_other",
"type": "line",
"source": "openmaptiles",
"source-layer": "waterway",
"filter": [
"all",
["!=", ["get", "class"], "river"],
["!=", ["get", "brunnel"], "tunnel"]
],
"layout": {"line-cap": "round"},
"paint": {
"line-color": "#a0c8f0",
"line-width": [
"interpolate",
["exponential", 1.3],
["zoom"],
13,
0.5,
20,
6
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
2026-05-24 13:49:43 +02:00
{
"id": "tunnel_path_pedestrian",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
[
"match",
["geometry-type"],
["LineString", "MultiLineString"],
true,
false
],
["==", ["get", "brunnel"], "tunnel"],
["match", ["get", "class"], ["path", "pedestrian"], true, false]
],
"paint": {
"line-color": "hsl(0,0%,100%)",
"line-dasharray": [1, 0.75],
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
14,
0.5,
20,
10
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "tunnel_motorway_link",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "class"], "motorway"],
["==", ["get", "ramp"], 1],
["==", ["get", "brunnel"], "tunnel"]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fc8",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
12.5,
0,
13,
1.5,
14,
2.5,
20,
11.5
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
2026-05-25 10:40:38 +02:00
{
"id": "tunnel_service_track",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "tunnel"],
["match", ["get", "class"], ["service", "track"], true, false]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fff",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
15.5,
0,
16,
2,
20,
7.5
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
2026-05-24 13:49:43 +02:00
{
"id": "tunnel_link",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "ramp"], 1],
["==", ["get", "brunnel"], "tunnel"]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fff4c6",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
12.5,
0,
13,
1.5,
14,
2.5,
20,
11.5
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
2026-05-25 10:40:38 +02:00
{
"id": "tunnel_minor",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "tunnel"],
["match", ["get", "class"], ["minor"], true, false]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fff",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
13.5,
0,
14,
2.5,
20,
11.5
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
{
"id": "tunnel_secondary_tertiary",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "tunnel"],
["match", ["get", "class"], ["secondary", "tertiary"], true, false]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fff4c6",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
6.5,
0,
7,
0.5,
20,
10
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
2026-05-24 13:49:43 +02:00
{
"id": "tunnel_trunk_primary",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "tunnel"],
["match", ["get", "class"], ["primary", "trunk"], true, false]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fff4c6",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
5,
0,
7,
1,
20,
18
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "tunnel_motorway",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "class"], "motorway"],
["!=", ["get", "ramp"], 1],
["==", ["get", "brunnel"], "tunnel"]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#ffdaa6",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
5,
0,
7,
1,
20,
18
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "tunnel_major_rail",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "tunnel"],
["match", ["get", "class"], ["rail"], true, false]
],
"paint": {
"line-color": "#bbb",
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14,
0.4,
15,
0.75,
20,
2
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "tunnel_major_rail_hatching",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "tunnel"],
["==", ["get", "class"], "rail"]
],
"paint": {
"line-color": "#bbb",
"line-dasharray": [0.2, 8],
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14.5,
0,
15,
3,
20,
8
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "tunnel_transit_rail",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "tunnel"],
["match", ["get", "class"], ["transit"], true, false]
],
"paint": {
"line-color": "#bbb",
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14,
0.4,
15,
0.75,
20,
2
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "tunnel_transit_rail_hatching",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "tunnel"],
["==", ["get", "class"], "transit"]
],
"paint": {
"line-color": "#bbb",
"line-dasharray": [0.2, 8],
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14.5,
0,
15,
3,
20,
8
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "road_area_pattern",
"type": "fill",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"match",
["geometry-type"],
["MultiPolygon", "Polygon"],
true,
false
],
2026-05-25 10:29:29 +02:00
"paint": {
"fill-pattern": "pedestrian_polygon",
"fill-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 1,
15, 0.4
]
}
2026-05-24 13:49:43 +02:00
},
{
2026-05-25 10:44:53 +02:00
"id": "road_path_pedestrian",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"minzoom": 12,
"filter": [
"all",
[
"match",
["geometry-type"],
["LineString", "MultiLineString"],
true,
false
],
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
["match", ["get", "class"], ["path", "pedestrian"], true, false]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "hsl(0,0%,100%)",
"line-dasharray": [1, 0.7],
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
14,
1,
20,
10
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
{
"id": "road_motorway_link",
2026-05-24 13:49:43 +02:00
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"minzoom": 12,
"filter": [
"all",
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
["==", ["get", "class"], "motorway"],
["==", ["get", "ramp"], 1]
],
"layout": {"line-cap": "round", "line-join": "round"},
"paint": {
2026-05-25 10:44:53 +02:00
"line-color": "#fc8",
2026-05-24 13:49:43 +02:00
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
2026-05-25 10:44:53 +02:00
12.5,
0,
2026-05-24 13:49:43 +02:00
13,
2026-05-25 10:44:53 +02:00
1.5,
2026-05-24 13:49:43 +02:00
14,
2026-05-25 10:44:53 +02:00
2.5,
2026-05-24 13:49:43 +02:00
20,
2026-05-25 10:44:53 +02:00
11.5
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
2026-05-25 10:40:38 +02:00
{
2026-05-25 10:44:53 +02:00
"id": "road_service_track",
2026-05-25 10:40:38 +02:00
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
["match", ["get", "class"], ["service", "track"], true, false]
],
"layout": {"line-cap": "round", "line-join": "round"},
"paint": {
2026-05-25 10:44:53 +02:00
"line-color": "#fff",
2026-05-25 10:40:38 +02:00
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
12,
2026-05-25 10:44:53 +02:00
0.5,
2026-05-25 10:40:38 +02:00
15,
2026-05-25 10:44:53 +02:00
2,
2026-05-25 10:40:38 +02:00
20,
2026-05-25 10:44:53 +02:00
7.5
2026-05-25 10:40:38 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
2026-05-24 13:49:43 +02:00
{
2026-05-25 10:44:53 +02:00
"id": "road_link",
2026-05-24 13:49:43 +02:00
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"minzoom": 13,
"filter": [
"all",
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
2026-05-25 10:44:53 +02:00
["==", ["get", "ramp"], 1],
2026-05-24 13:49:43 +02:00
[
"match",
["get", "class"],
["motorway", "path", "pedestrian", "service", "track"],
false,
true
2026-05-25 10:44:53 +02:00
]
2026-05-24 13:49:43 +02:00
],
"layout": {"line-cap": "round", "line-join": "round"},
"paint": {
2026-05-25 10:44:53 +02:00
"line-color": "#fea",
2026-05-24 13:49:43 +02:00
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
2026-05-25 10:44:53 +02:00
12.5,
0,
2026-05-24 13:49:43 +02:00
13,
2026-05-25 10:44:53 +02:00
1.5,
2026-05-24 13:49:43 +02:00
14,
2026-05-25 10:44:53 +02:00
2.5,
2026-05-24 13:49:43 +02:00
20,
2026-05-25 10:44:53 +02:00
11.5
2026-05-24 13:49:43 +02:00
],
2026-05-25 10:29:29 +02:00
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
2026-05-25 10:40:38 +02:00
{
2026-05-25 10:44:53 +02:00
"id": "road_minor",
2026-05-25 10:40:38 +02:00
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
[
"match",
["geometry-type"],
["LineString", "MultiLineString"],
true,
false
],
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
["match", ["get", "class"], ["minor"], true, false]
],
"layout": {"line-cap": "round", "line-join": "round"},
"paint": {
"line-color": "#fff",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
13.5,
0,
14,
2.5,
20,
18
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
{
"id": "road_secondary_tertiary",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
["match", ["get", "class"], ["secondary", "tertiary"], true, false]
],
"layout": {"line-cap": "round", "line-join": "round"},
"paint": {
"line-color": "#fea",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
6.5,
0,
8,
0.5,
20,
13
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
2026-05-24 13:49:43 +02:00
{
"id": "road_trunk_primary",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
["match", ["get", "class"], ["primary", "trunk"], true, false]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fea",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
5,
0,
7,
1,
20,
18
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "road_motorway",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"minzoom": 5,
"filter": [
"all",
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
["==", ["get", "class"], "motorway"],
["!=", ["get", "ramp"], 1]
],
"layout": {"line-cap": "round", "line-join": "round"},
"paint": {
"line-color": [
"interpolate",
["linear"],
["zoom"],
5,
"hsl(26,87%,62%)",
6,
"#fc8"
],
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
5,
0,
7,
1,
20,
18
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "road_major_rail",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
["==", ["get", "class"], "rail"]
],
"paint": {
"line-color": "#bbb",
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14,
0.4,
15,
0.75,
20,
2
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "road_major_rail_hatching",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
["==", ["get", "class"], "rail"]
],
"paint": {
"line-color": "#bbb",
"line-dasharray": [0.2, 8],
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14.5,
0,
15,
3,
20,
8
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "road_transit_rail",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
["==", ["get", "class"], "transit"]
],
"paint": {
"line-color": "#bbb",
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14,
0.4,
15,
0.75,
20,
2
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "road_transit_rail_hatching",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["match", ["get", "brunnel"], ["bridge", "tunnel"], false, true],
["==", ["get", "class"], "transit"]
],
"paint": {
"line-color": "#bbb",
"line-dasharray": [0.2, 8],
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14.5,
0,
15,
3,
20,
8
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "road_one_way_arrow",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "transportation",
"minzoom": 16,
"filter": ["==", ["get", "oneway"], 1],
"layout": {"icon-image": "arrow", "symbol-placement": "line"}
},
{
"id": "road_one_way_arrow_opposite",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "transportation",
"minzoom": 16,
"filter": ["==", ["get", "oneway"], -1],
"layout": {
"icon-image": "arrow",
"icon-rotate": 180,
"symbol-placement": "line"
}
},
{
"id": "bridge_path_pedestrian",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
[
"match",
["geometry-type"],
["LineString", "MultiLineString"],
true,
false
],
["==", ["get", "brunnel"], "bridge"],
2026-05-25 10:40:38 +02:00
["match", ["get", "class"], ["path", "pedestrian"], true, false]
2026-05-24 13:49:43 +02:00
],
"paint": {
"line-color": "hsl(0,0%,100%)",
"line-dasharray": [1, 0.3],
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
14,
0.5,
20,
10
],
2026-05-25 10:29:29 +02:00
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "bridge_motorway_link",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "class"], "motorway"],
["==", ["get", "ramp"], 1],
["==", ["get", "brunnel"], "bridge"]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fc8",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
12.5,
0,
13,
1.5,
14,
2.5,
20,
11.5
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
2026-05-25 10:40:38 +02:00
{
"id": "bridge_service_track",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "bridge"],
["match", ["get", "class"], ["service", "track"], true, false]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fff",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
15.5,
0,
16,
2,
20,
7.5
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
2026-05-24 13:49:43 +02:00
{
"id": "bridge_link",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "class"], "link"],
["==", ["get", "brunnel"], "bridge"]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fea",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
12.5,
0,
13,
1.5,
14,
2.5,
20,
11.5
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
2026-05-25 10:40:38 +02:00
{
"id": "bridge_street",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "bridge"],
["match", ["get", "class"], ["minor"], true, false]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fff",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
13.5,
0,
14,
2.5,
20,
18
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
{
"id": "bridge_secondary_tertiary",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "bridge"],
["match", ["get", "class"], ["secondary", "tertiary"], true, false]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fea",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
6.5,
0,
7,
0.5,
20,
10
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
]
}
},
2026-05-24 13:49:43 +02:00
{
"id": "bridge_trunk_primary",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "brunnel"], "bridge"],
["match", ["get", "class"], ["primary", "trunk"], true, false]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fea",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
5,
0,
7,
1,
20,
18
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "bridge_motorway",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "class"], "motorway"],
["!=", ["get", "ramp"], 1],
["==", ["get", "brunnel"], "bridge"]
],
"layout": {"line-join": "round"},
"paint": {
"line-color": "#fc8",
"line-width": [
"interpolate",
["exponential", 1.2],
["zoom"],
5,
0,
7,
1,
20,
18
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "bridge_major_rail",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "class"], "rail"],
["==", ["get", "brunnel"], "bridge"]
],
"paint": {
"line-color": "#bbb",
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14,
0.4,
15,
0.75,
20,
2
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "bridge_major_rail_hatching",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "class"], "rail"],
["==", ["get", "brunnel"], "bridge"]
],
"paint": {
"line-color": "#bbb",
"line-dasharray": [0.2, 8],
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14.5,
0,
15,
3,
20,
8
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "bridge_transit_rail",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "class"], "transit"],
["==", ["get", "brunnel"], "bridge"]
],
"paint": {
"line-color": "#bbb",
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14,
0.4,
15,
0.75,
20,
2
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "bridge_transit_rail_hatching",
"type": "line",
"source": "openmaptiles",
"source-layer": "transportation",
"filter": [
"all",
["==", ["get", "class"], "transit"],
["==", ["get", "brunnel"], "bridge"]
],
"paint": {
"line-color": "#bbb",
"line-dasharray": [0.2, 8],
"line-width": [
"interpolate",
["exponential", 1.4],
["zoom"],
14.5,
0,
15,
3,
20,
8
2026-05-25 10:29:29 +02:00
],
"line-opacity":[
"interpolate", ["linear"], ["zoom"],
13, 0.5,
15, 0.3
2026-05-24 13:49:43 +02:00
]
}
},
{
"id": "boundary_3",
"type": "line",
"source": "openmaptiles",
"source-layer": "boundary",
"minzoom": 5,
"filter": [
"all",
["==", ["typeof", ["get", "admin_level"]], "number"],
[">=", ["get", "admin_level"], 3],
["<=", ["get", "admin_level"], 6],
["!=", ["get", "maritime"], 1],
["!=", ["get", "disputed"], 1],
["!", ["has", "claimed_by"]]
],
"paint": {
"line-color": "hsl(0,0%,70%)",
"line-dasharray": [1, 1],
"line-width": ["interpolate", ["linear", 1], ["zoom"], 7, 1, 11, 2]
}
},
{
"id": "boundary_2",
"type": "line",
"source": "openmaptiles",
"source-layer": "boundary",
"filter": [
"all",
["==", ["get", "admin_level"], 2],
["!=", ["get", "maritime"], 1],
["!=", ["get", "disputed"], 1],
["!", ["has", "claimed_by"]]
],
"layout": {"line-cap": "round", "line-join": "round"},
"paint": {
"line-color": "hsl(248,1%,41%)",
"line-opacity": ["interpolate", ["linear"], ["zoom"], 0, 0.4, 4, 1],
"line-width": ["interpolate", ["linear"], ["zoom"], 3, 1, 5, 1.2, 12, 3]
}
},
{
"id": "boundary_disputed",
"type": "line",
"source": "openmaptiles",
"source-layer": "boundary",
"filter": [
"all",
["!=", ["get", "maritime"], 1],
["==", ["get", "disputed"], 1]
],
"paint": {
"line-color": "hsl(248,1%,41%)",
"line-dasharray": [1, 2],
"line-width": ["interpolate", ["linear"], ["zoom"], 3, 1, 5, 1.2, 12, 3]
}
},
{
"id": "waterway_line_label",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "waterway",
"minzoom": 10,
"filter": [
"match",
["geometry-type"],
["LineString", "MultiLineString"],
true,
false
],
"layout": {
"symbol-placement": "line",
"symbol-spacing": 350,
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Italic"],
"text-letter-spacing": 0.2,
"text-max-width": 5,
"text-size": 14
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#91c9fa",
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1.5
}
},
{
"id": "water_name_point_label",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "water_name",
"filter": [
"match",
["geometry-type"],
["MultiPoint", "Point"],
true,
false
],
"layout": {
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Italic"],
"text-letter-spacing": 0.2,
"text-max-width": 5,
"text-size": ["interpolate", ["linear"], ["zoom"], 0, 10, 8, 14]
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#91c9fa",
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1.5
}
},
{
"id": "water_name_line_label",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "water_name",
"filter": [
"match",
["geometry-type"],
["LineString", "MultiLineString"],
true,
false
],
"layout": {
"symbol-placement": "line",
"symbol-spacing": 350,
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Italic"],
"text-letter-spacing": 0.2,
"text-max-width": 5,
"text-size": 14
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#91c9fa",
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1.5
}
},
{
"id": "poi_r20",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "poi",
"minzoom": 17,
"filter": [
"all",
["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
[">=", ["get", "rank"], 20]
],
"layout": {
"icon-image": [
"match",
["get", "subclass"],
["florist", "furniture"],
["get", "subclass"],
["get", "class"]
],
"text-anchor": "top",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Italic"],
"text-max-width": 9,
"text-offset": [0, 0.6],
"text-size": 12
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 0.5,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "poi_r7",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "poi",
"minzoom": 16,
"filter": [
"all",
["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
[">=", ["get", "rank"], 7],
["<", ["get", "rank"], 20]
],
"layout": {
"icon-image": [
"match",
["get", "subclass"],
["florist", "furniture"],
["get", "subclass"],
["get", "class"]
],
"text-anchor": "top",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Italic"],
"text-max-width": 9,
"text-offset": [0, 0.6],
"text-size": 12
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 0.5,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "nature_park",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "park",
"minzoom": 9,
"filter": [
"all",
["match", ["geometry-type"], ["Point"], true, false],
["<=", ["get", "rank"], 1]
],
"layout": {
"icon-image": "park_11",
"text-anchor": "top",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Italic"],
"text-max-width": 9,
"text-offset": [0, 0.6],
"text-size": 12
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 0.5,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "poi_r1",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "poi",
"minzoom": 14,
"filter": [
"all",
["match", ["geometry-type"], ["MultiPoint", "Point"], true, false],
[">=", ["get", "rank"], 1],
["<", ["get", "rank"], 7]
],
"layout": {
"icon-image": [
"match",
["get", "subclass"],
["florist", "furniture"],
["get", "subclass"],
["get", "class"]
],
"text-anchor": "top",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Italic"],
"text-max-width": 9,
"text-offset": [0, 0.6],
"text-size": 12
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 0.5,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "poi_transit",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "poi",
"filter": [
"match",
["get", "class"],
["airport", "bus", "rail"],
true,
false
],
"layout": {
"icon-image": ["to-string", ["get", "class"]],
"icon-size": 0.7,
"text-anchor": "left",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Italic"],
"text-max-width": 9,
"text-offset": [0.9, 0],
"text-size": 12
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#91c9fa",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 0.5,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "poi_peak_rank1_m",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "mountain_peak",
"minzoom": 10,
"filter": [
"all",
["==", "$type", "Point"],
["<=", "rank", 1],
["has", "name"],
["==", "class", "peak"]
],
"layout": {
"icon-image": "mountain_11",
"text-anchor": "top",
"text-field": ["get", "name"],
"text-font": ["Noto Sans Regular"],
"text-max-width": 9,
"text-offset": [0, 0.6],
"text-size": 11,
"icon-allow-overlap": false
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 0.5,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1.5
}
},
{
"id": "poi_saddle_m",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "mountain_peak",
"minzoom": 13,
"filter": [
"all",
["==", "$type", "Point"],
["<=", "rank", 1],
["==", "class", "saddle"]
],
"layout": {
"icon-image": "attraction_11",
"text-anchor": "top",
"text-field": ["get", "name"],
"text-font": ["Noto Sans Regular"],
"text-max-width": 9,
"text-offset": [0, 0.6],
"text-size": 11,
"icon-allow-overlap": false
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 0.5,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1.5
}
},
{
"id": "highway-name-path",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "transportation_name",
"minzoom": 15.5,
"filter": ["==", ["get", "class"], "path"],
"layout": {
"symbol-placement": "line",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Regular"],
"text-rotation-alignment": "map",
"text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 14, 13]
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 0.5,
"text-halo-width": 1
}
},
{
"id": "highway-name-minor",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "transportation_name",
"minzoom": 15,
"filter": [
"all",
[
"match",
["geometry-type"],
["LineString", "MultiLineString"],
true,
false
],
["match", ["get", "class"], ["minor", "service", "track"], true, false]
],
"layout": {
"symbol-placement": "line",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Regular"],
"text-rotation-alignment": "map",
"text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 14, 13]
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 0.5,
"text-halo-width": 1
}
},
{
"id": "highway-name-major",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "transportation_name",
"minzoom": 12.2,
"filter": [
"match",
["get", "class"],
["primary", "secondary", "tertiary", "trunk"],
true,
false
],
"layout": {
"symbol-placement": "line",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], " ", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Regular"],
"text-rotation-alignment": "map",
"text-size": ["interpolate", ["linear"], ["zoom"], 13, 12, 14, 13]
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 0.5,
"text-halo-width": 1
}
},
{
"id": "highway-shield-non-us",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "transportation_name",
"minzoom": 8,
"filter": [
"all",
["<=", ["get", "ref_length"], 6],
[
"match",
["geometry-type"],
["LineString", "MultiLineString"],
true,
false
],
[
"match",
["get", "network"],
["us-highway", "us-interstate", "us-state"],
false,
true
]
],
"layout": {
"icon-image": ["concat", "road_", ["get", "ref_length"]],
"icon-rotation-alignment": "viewport",
"icon-size": 1,
"symbol-placement": ["step", ["zoom"], "point", 11, "line"],
"symbol-spacing": 200,
"text-field": ["to-string", ["get", "ref"]],
"text-font": ["Noto Sans Regular"],
"text-rotation-alignment": "viewport",
"text-size": 10
}
},
{
"id": "highway-shield-us-interstate",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "transportation_name",
"minzoom": 7,
"filter": [
"all",
["<=", ["get", "ref_length"], 6],
[
"match",
["geometry-type"],
["LineString", "MultiLineString"],
true,
false
],
["match", ["get", "network"], ["us-interstate"], true, false]
],
"layout": {
"icon-image": [
"concat",
["get", "network"],
"_",
["get", "ref_length"]
],
"icon-rotation-alignment": "viewport",
"icon-size": 1,
"symbol-placement": ["step", ["zoom"], "point", 7, "line", 8, "line"],
"symbol-spacing": 200,
"text-field": ["to-string", ["get", "ref"]],
"text-font": ["Noto Sans Regular"],
"text-rotation-alignment": "viewport",
"text-size": 10
}
},
{
"id": "road_shield_us",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "transportation_name",
"minzoom": 9,
"filter": [
"all",
["<=", ["get", "ref_length"], 6],
[
"match",
["geometry-type"],
["LineString", "MultiLineString"],
true,
false
],
["match", ["get", "network"], ["us-highway", "us-state"], true, false]
],
"layout": {
"icon-image": [
"concat",
["get", "network"],
"_",
["get", "ref_length"]
],
"icon-rotation-alignment": "viewport",
"icon-size": 1,
"symbol-placement": ["step", ["zoom"], "point", 11, "line"],
"symbol-spacing": 200,
"text-field": ["to-string", ["get", "ref"]],
"text-font": ["Noto Sans Regular"],
"text-rotation-alignment": "viewport",
"text-size": 10
}
},
{
"id": "airport",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "aerodrome_label",
"minzoom": 10,
"filter": ["all", ["has", "iata"]],
"layout": {
"icon-image": "airport_11",
"icon-size": 1,
"text-anchor": "top",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Regular"],
"text-max-width": 9,
"text-offset": [0, 0.6],
"text-optional": true,
"text-padding": 2,
"text-size": 12
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 0.5,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "label_other",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "place",
"minzoom": 8,
"filter": [
"match",
["get", "class"],
["city", "continent", "country", "state", "town", "village"],
false,
true
],
"layout": {
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Italic"],
"text-letter-spacing": 0.1,
"text-max-width": 9,
"text-size": ["interpolate", ["linear"], ["zoom"], 8, 9, 12, 10],
"text-transform": "uppercase"
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 1,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "label_village",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "place",
"minzoom": 9,
"filter": ["==", ["get", "class"], "village"],
"layout": {
"icon-allow-overlap": true,
"icon-image": ["step", ["zoom"], "circle_11_black", 10, ""],
"icon-optional": false,
"icon-size": 0.2,
"text-anchor": "bottom",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Regular"],
"text-max-width": 8,
"text-size": [
"interpolate",
["exponential", 1.2],
["zoom"],
7,
10,
11,
12
]
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 1,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "label_town",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "place",
"minzoom": 6,
"filter": ["==", ["get", "class"], "town"],
"layout": {
"icon-allow-overlap": true,
"icon-image": ["step", ["zoom"], "circle_11_black", 10, ""],
"icon-optional": false,
"icon-size": 0.2,
"text-anchor": "bottom",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Regular"],
"text-max-width": 8,
"text-size": [
"interpolate",
["exponential", 1.2],
["zoom"],
7,
12,
11,
14
]
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 1,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "label_state",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "place",
"minzoom": 5,
"maxzoom": 8,
"filter": ["==", ["get", "class"], "state"],
"layout": {
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Italic"],
"text-letter-spacing": 0.2,
"text-max-width": 9,
"text-size": ["interpolate", ["linear"], ["zoom"], 5, 10, 8, 14],
"text-transform": "uppercase"
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 1,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "label_city",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "place",
"minzoom": 3,
"filter": [
"all",
["==", ["get", "class"], "city"],
["!=", ["get", "capital"], 2]
],
"layout": {
"icon-allow-overlap": true,
"icon-image": ["step", ["zoom"], "circle_11_black", 9, ""],
"icon-optional": false,
"icon-size": 0.4,
"text-anchor": "bottom",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Regular"],
"text-max-width": 8,
"text-offset": [0, -0.1],
"text-size": [
"interpolate",
["exponential", 1.2],
["zoom"],
4,
11,
7,
13,
11,
18
]
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 1,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "label_city_capital",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "place",
"minzoom": 3,
"filter": [
"all",
["==", ["get", "class"], "city"],
["==", ["get", "capital"], 2]
],
"layout": {
"icon-allow-overlap": true,
"icon-image": ["step", ["zoom"], "circle_11_black", 9, ""],
"icon-optional": false,
"icon-size": 0.5,
"text-anchor": "bottom",
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Bold"],
"text-max-width": 8,
"text-offset": [0, -0.2],
"text-size": [
"interpolate",
["exponential", 1.2],
["zoom"],
4,
12,
7,
14,
11,
20
]
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 1,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "label_country_3",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "place",
"minzoom": 2,
"maxzoom": 9,
"filter": [
"all",
["==", ["get", "class"], "country"],
[">=", ["get", "rank"], 3]
],
"layout": {
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Bold"],
"text-max-width": 6.25,
"text-size": ["interpolate", ["linear"], ["zoom"], 3, 9, 7, 17]
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 1,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "label_country_2",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "place",
"maxzoom": 9,
"filter": [
"all",
["==", ["get", "class"], "country"],
["==", ["get", "rank"], 2]
],
"layout": {
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Bold"],
"text-max-width": 6.25,
"text-size": ["interpolate", ["linear"], ["zoom"], 2, 9, 5, 17]
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 1,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
},
{
"id": "label_country_1",
"type": "symbol",
"source": "openmaptiles",
"source-layer": "place",
"maxzoom": 9,
"filter": [
"all",
["==", ["get", "class"], "country"],
["==", ["get", "rank"], 1]
],
"layout": {
"text-field": [
"case",
["has", "name:nonlatin"],
["concat", ["get", "name:latin"], "\n", ["get", "name:nonlatin"]],
["coalesce", ["get", "name_en"], ["get", "name"]]
],
"text-font": ["Noto Sans Bold"],
"text-max-width": 6.25,
"text-size": ["interpolate", ["linear"], ["zoom"], 1, 9, 4, 17]
},
"paint": {
2026-05-25 10:58:23 +02:00
"text-color": "#fff",
2026-05-24 13:49:43 +02:00
"text-halo-blur": 1,
2026-05-25 10:58:23 +02:00
"text-halo-color": "#000",
2026-05-24 13:49:43 +02:00
"text-halo-width": 1
}
}
]
}