- Move app.py to src/api/main.py (STATIC_DIR from env) - Move static/ to src/web/ - Update Dockerfile and docker-compose.yml - Add download_srtm.sh script - Clean up debug/deploy scripts Refs: multi-agent F0-3
137 lines
3.8 KiB
JSON
137 lines
3.8 KiB
JSON
{
|
|
"version": 8,
|
|
"name": "Enduro Trails Light",
|
|
"metadata": {},
|
|
"center": [37.6, 55.75],
|
|
"zoom": 7,
|
|
"bearing": 0,
|
|
"pitch": 0,
|
|
"sources": {
|
|
"trails-tiles": {
|
|
"type": "vector",
|
|
"tiles": ["/api/tiles/{z}/{x}/{y}.mvt"],
|
|
"minzoom": 5,
|
|
"maxzoom": 16
|
|
},
|
|
"osm-raster": {
|
|
"type": "raster",
|
|
"tiles": ["https://tile.openstreetmap.org/{z}/{x}/{y}.png"],
|
|
"tileSize": 256,
|
|
"attribution": "© OpenStreetMap contributors"
|
|
}
|
|
},
|
|
"glyphs": "https://fonts.openmaptiles.org/{fontstack}/{range}.pbf",
|
|
"layers": [
|
|
{
|
|
"id": "background",
|
|
"type": "background",
|
|
"paint": { "background-color": "#f0ede6" }
|
|
},
|
|
{
|
|
"id": "osm-base",
|
|
"type": "raster",
|
|
"source": "osm-raster",
|
|
"paint": {
|
|
"raster-opacity": 1.0,
|
|
"raster-saturation": -0.4,
|
|
"raster-contrast": 0.25,
|
|
"raster-brightness-min": 0,
|
|
"raster-brightness-max": 0.9
|
|
}
|
|
},
|
|
{
|
|
"id": "trails-asphalt",
|
|
"type": "line",
|
|
"source": "trails-tiles",
|
|
"source-layer": "trails",
|
|
"minzoom": 6,
|
|
"filter": ["in", "highway", "primary", "secondary", "tertiary", "residential"],
|
|
"paint": {
|
|
"line-color": "#bbbbbb",
|
|
"line-width": ["interpolate", ["linear"], ["zoom"], 8, 0.5, 10, 1, 14, 2],
|
|
"line-opacity": 0.0
|
|
},
|
|
"layout": { "line-cap": "round", "line-join": "round", "visibility": "none" }
|
|
},
|
|
{
|
|
"id": "trails-track",
|
|
"type": "line",
|
|
"source": "trails-tiles",
|
|
"source-layer": "trails",
|
|
"minzoom": 6,
|
|
"filter": ["==", "highway", "track"],
|
|
"paint": {
|
|
"line-color": [
|
|
"match", ["get", "tracktype"],
|
|
"grade1", "#FFD700",
|
|
"grade2", "#FFD700",
|
|
"grade3", "#FF4400",
|
|
"grade4", "#FF4400",
|
|
"grade5", "#FF4400",
|
|
"#FF4400"
|
|
],
|
|
"line-width": ["interpolate", ["linear"], ["zoom"], 6, 0.5, 8, 1.2, 10, 2, 12, 3.5, 16, 6],
|
|
"line-opacity": 0.9
|
|
},
|
|
"layout": { "line-cap": "round", "line-join": "round" }
|
|
},
|
|
{
|
|
"id": "trails-path-bridleway",
|
|
"type": "line",
|
|
"source": "trails-tiles",
|
|
"source-layer": "trails",
|
|
"minzoom": 8,
|
|
"filter": ["in", "highway", "path", "bridleway", "footway"],
|
|
"paint": {
|
|
"line-color": "#cc0000",
|
|
"line-width": ["interpolate", ["linear"], ["zoom"], 7, 0.5, 10, 1.5, 12, 2, 16, 3],
|
|
"line-opacity": 0.85,
|
|
"line-dasharray": [3, 2]
|
|
},
|
|
"layout": { "line-cap": "butt", "line-join": "round" }
|
|
},
|
|
{
|
|
"id": "poi-circles",
|
|
"type": "circle",
|
|
"source": "trails-tiles",
|
|
"source-layer": "poi",
|
|
"paint": {
|
|
"circle-radius": ["interpolate", ["linear"], ["zoom"], 8, 2, 12, 6, 16, 10],
|
|
"circle-color": [
|
|
"match", ["get", "poi_type"],
|
|
"natural=peak", "#e63946",
|
|
"natural=water", "#1d7fc4",
|
|
"tourism=viewpoint", "#2a9d2a",
|
|
"historic=ruins", "#9b59b6",
|
|
"natural=cave_entrance", "#e67e22",
|
|
"ford=yes", "#0099cc",
|
|
"#888888"
|
|
],
|
|
"circle-stroke-color": "#ffffff",
|
|
"circle-stroke-width": 1.5,
|
|
"circle-opacity": 0.9
|
|
}
|
|
},
|
|
{
|
|
"id": "poi-labels",
|
|
"type": "symbol",
|
|
"source": "trails-tiles",
|
|
"source-layer": "poi",
|
|
"minzoom": 11,
|
|
"layout": {
|
|
"text-field": ["get", "name"],
|
|
"text-font": ["Open Sans Regular"],
|
|
"text-size": 11,
|
|
"text-offset": [0, 1.2],
|
|
"text-anchor": "top",
|
|
"text-optional": true
|
|
},
|
|
"paint": {
|
|
"text-color": "#333333",
|
|
"text-halo-color": "#ffffff",
|
|
"text-halo-width": 1.5
|
|
}
|
|
}
|
|
]
|
|
}
|