Technická dokumentace – vrstvy, POI, barvy, ikony, architektura
Data se jednorázově naimportují do úložišť (MBTiles, PostGIS, Valhalla tiles). Běžící služby z těchto úložišť servírují obsah do frontendu.
| Vrstva mapy | Pipeline | Úložiště |
|---|---|---|
| Podkladová mapa | Geofabrik PBF → Planetiler | MBTiles |
| Overlay (trasy, POI) | Geofabrik PBF → osmium filter → osm2pgsql | PostGIS |
| Vrstevnice | Copernicus DEM → gdal_contour | PostGIS |
| Routing | Copernicus DEM + Geofabrik PBF → valhalla_build_tiles | Valhalla tiles |
Martin čte dvě úložiště (MBTiles + PostGIS); frontend konzumuje tři služby.
| Služba | Účel |
|---|---|
| Martin | Tile server – čte MBTiles (podklad) a PostGIS (overlay + vrstevnice), servíruje vektorové dlaždice a fonty |
| PostGIS | Jedna databáze – overlay vrstvy (trasy, POI) i vrstevnice |
| Valhalla | Routing engine – plánování tras (pěší, kolo, auto), výškový profil |
| MapProxy | Cache leteckých snímků ČÚZK – servíruje ortofoto jako WMS |
| Frontend | nginx + MapLibre GL JS – konzumuje Martin, Valhalla i MapProxy |
Frontend používá nativní ES moduly (type="module") bez bundleru. Jeden entry point app.js, MapLibre GL JS z CDN jako klasický <script>.
Při najetí na POI s Wikidata/Wikipedia odkazem se zobrazí náhled článku.
| Fáze | Popis |
|---|---|
| Debounce | 300 ms zpoždění před fetch požadavkem – zabraňuje zbytečným dotazům při pohybu myši |
| Wikidata API | wbgetentities (sitelinks + labels + claims/P18) → sitelink, label, obrázek |
| Wikipedia API | /api/rest_v1/page/summary/ → shrnutí článku + thumbnail |
| Fallback | Pokud Wikipedia článek neexistuje → Wikidata label + P18 obrázek |
| Cache | In-memory JS Map: wikidataCache (ID → data), summaryCache (lang:title → data) |
| Race condition | Generační čítač (hoverGen) zabraňuje zobrazení zastaralého popupu |
Generováno z POI_DEFS (config.js) + obarveno přes icons.js
| Trasa | Barva | Kód |
|---|
| Typ | Barva | Kód | Interval |
|---|
| Parametr | Hodnota |
|---|---|
| Velikost výstupního obrázku | 32 × 32 px |
| Velikost symbolu (s pozadím) | 16 px (uvnitř kruhu) |
| Velikost symbolu (bez pozadí) | 20 px |
| Poloměr kruhu pozadí | 14 px |
| MapLibre icon-size | 0.8 (globální) |
| Zdroj ikon | openstreetmap-carto (CC0) – frontend/symbols/ |
Styl podkladové mapy + vrstevnice + lanovky. Servírováno přes Martin (MBTiles + PostGIS).
| Data | Zdroj | Licence |
|---|---|---|
| Podkladová mapa + overlay (trasy, POI) | OpenStreetMap (Geofabrik PBF) | ODbL 1.0 |
| Vrstevnice | Copernicus DEM GLO-30 (AWS S3) | Copernicus DEM licence |
| Ortofoto (letecké snímky) | ČÚZK – Ortofoto ČR (WMS) | CC BY 4.0 |
| Polygony oceánů | osmdata.openstreetmap.de | ODbL 1.0 |
| Středové osy jezer | osm-lakelines | ODbL 1.0 |
| Hranice, pobřeží (nízké zoomu) | Natural Earth | Public Domain |
| Ikony | openstreetmap-carto | CC0 |
| Font | Open Sans | Apache 2.0 |
| Nástroj | Účel | Licence |
|---|---|---|
| MapLibre GL JS | Klientský renderer mapy (WebGL) | BSD-3-Clause |
| Martin | Vektorové dlaždice – podkladová mapa (MBTiles) + overlay (PostGIS) + fonty | Apache 2.0 |
| Planetiler | Generování MBTiles z OSM dat | Apache 2.0 |
| osm2pgsql | Import OSM dat do PostGIS (trasy, POI) | GPL-2.0 |
| osmium-tool | Filtrování a slučování PBF souborů | GPL-3.0 |
| GDAL | Zpracování Copernicus DEM (vrstevnice + elevation HGT pro Valhalla) | MIT |
| Valhalla | Routing engine – plánování tras (pěší, kolo, auto), výškový profil tras | MIT |
| MapProxy | Cache leteckých snímků z ČÚZK WMS (ortofoto podklad) | Apache 2.0 |
| PostGIS / PostgreSQL | Prostorová databáze overlay vrstev | GPL-2.0 / PostgreSQL |
| nginx | Webový server a reverzní proxy | BSD-2-Clause |
| Tier | Zoom | Měřítko | Co se zobrazí |
|---|---|---|---|
| Z0 | 0 | Vždy | Terén, voda, hranice, parky, NP/CHKO, města, dálnice |
| Z1 | 7 | Kraj | Hlavní silnice, železnice, transit linky, obce, vodní toky |
| Z2 | 10 | Okres | Důležité POI (vrcholy, hrady, stanice, rozhledny), transit, landuse |
| Z3 | 12 | Obec | Turistické a cyklistické trasy, většina POI, budovy, cesty, vrstevnice, popisky silnic |
| Z4 | 14 | Detail | Drobné POI (lavičky, bariéry, stromy), popisky cest |
Martin tile server poskytuje vektorové dlaždice, fonty i overlay vrstvy přes HTTP. Lze je použít v libovolném MapLibre / Mapbox GL projektu.
Base URL: __TILER__ (Martin tile server)
| Endpoint | Popis | Formát |
|---|---|---|
__TILER__/openmaptiles/{z}/{x}/{y} | Podkladová mapa (OpenMapTiles schéma) | PBF (vector tiles) |
__TILER__/contours/{z}/{x}/{y} | Vrstevnice (10 m vedlejší, 50 m hlavní) | PBF (vector tiles) |
__TILER__/font/{fontstack}/{range}.pbf | PBF fonty (Open Sans Regular/Bold/Italic) | PBF (SDF glyphs) |
__TILER__/{tabulka}/{z}/{x}/{y} | Overlay vrstvy (routes, peaks, tourism, ...) | PBF (vector tiles) |
| Tabulka | Obsah | Zoom rozsah |
|---|---|---|
routes | Turistické a cyklistické trasy (s line-offset pro souběžné) | 12–14 |
peaks | Vrcholy a sedla | 10–14 |
railway_stops | Vlakové stanice a zastávky | 10–14 |
tourism | Turistické POI (rozhledny, kempy, muzea, ...) | 10–14 |
historic | Historické objekty (hrady, zříceniny, památníky, ...) | 10–14 |
amenities | Občanská vybavenost (restaurace, WC, lavičky, ...) | 12–14 |
leisure_points | Volnočasové POI (koupaliště, hřiště, ...) | 12–14 |
natural_features | Přírodní prvky (prameny, jeskyně, vodopády, ...) | 12–14 |
barriers | Bariéry (brány, závory) | 14 |
parking_areas | Parkovací plochy (polygony) | 12–14 |
poi_centroids | Centroidy z POI polygonů | 10–14 |
transit_lines | Linie hromadné dopravy (bus, tram, metro, přívoz) | 10–14 |
aerialways | Lanovky a vleky (stanice) | 10–14 |
shops | Obchody (supermarket, kolo, lékárna) | 12–14 |
contours | Vrstevnice (PostGIS, 10/50 m interval) | 12–14 |
Letecké snímky ČR jako cachovaná WMS služba (MapProxy, zdroj ČÚZK Ortofoto ČR). MapProxy konzumuje veřejnou WMS službu ČÚZK a cachuje dlaždice na disk.
| Endpoint | Popis | Formát |
|---|---|---|
__ORTOFOTO__/mapproxy/service | WMS GetMap / GetCapabilities (vrstva ortofoto) | WMS 1.1.1 / 1.3.0 |
Svislé pruhy znázorňují zoom úrovně, na kterých je vrstva viditelná. Zvýrazněné sloupce = zoom tiery.
Open Mapa · Technická dokumentace