2347a02fcb
Add tile-proxy/: a small Rust (axum) service behind nginx that serves one
canonical XYZ scheme (/{karte,luftbild,dufour}/{z}/{x}/{y}) and, per tile,
picks the provider by geometry — swisstopo when the tile overlaps a
swisstopo-covered region (Switzerland or Liechtenstein, each simplified +
2 km buffer; tile-bbox ∩ polygon at every zoom), otherwise OpenTopoMap
(schematic) / Esri World Imagery (satellite), with an auto-fallback for
border 404s. Includes the region generator (gen-regions.mjs), a Makefile,
nginx caching-proxy + systemd examples, and a README. Listen address is
env-driven (TILE_PROXY_ADDR).
App side:
- New mapTiles.ts is the single source for the proxy URLs + combined
attribution; HikeMap / HikesOverviewMap / EditMap fetch through
maps.bocken.org instead of swisstopo directly, on-map attribution
controls removed, preconnect + footer credits updated (swisstopo /
OpenStreetMap+OpenTopoMap / Esri).
- Region-aware schematic max zoom (isSwissRegion helper): detail map caps
at z17 abroad and hides the CH/LI-only Dufour layer; overview caps at
z18 when a shown hike is abroad.
- Route-builder: add the satellite layer via the same bottom-right layer
popover as the other maps.
16 lines
417 B
TOML
16 lines
417 B
TOML
[package]
|
|
name = "tile-proxy"
|
|
version = "0.1.0"
|
|
edition = "2021"
|
|
description = "Region-switching map tile proxy: swisstopo inside Switzerland, global providers elsewhere."
|
|
|
|
[dependencies]
|
|
axum = "0.7"
|
|
tokio = { version = "1", features = ["rt-multi-thread", "macros", "net"] }
|
|
reqwest = { version = "0.12", default-features = false, features = ["rustls-tls"] }
|
|
|
|
[profile.release]
|
|
opt-level = 3
|
|
lto = true
|
|
strip = true
|