Saját térkép megjelenítése weben QGIS segítségével
Ebben a cikkben bemutatjuk, hogyan készíthetünk QGIS és GDAL segítségével nagy felbontású, böngészőben megjeleníthető térképeket. Az elkészült térképek bármely modern böngészőben megtekinthetők, további programok telepítése nélkül. A cikk első felében röviden áttekintjük az alapvető elméleti hátteret, majd a cikk második felében a gyakorlati lépésekre koncentrálunk. Ha azonnal a gyakorlati megvalósítás érdekel, kattints ide.
A csempealapú térképek technikai háttere
A modern webes térképek interaktív megjelenítéséhez a csempealapú térképek (tile-based maps) nyújtanak hatékony megoldást. Ezek kisebb egységekre, csempékre bontják a térképet, így a böngésző csak a szükséges részleteket tölti le, ami javítja a teljesítményt és csökkenti a sávszélesség-használatot.
A térképcsempék különböző nagyítási szinteken érhetők el, és mappastruktúrában tárolódnak. A fájlnevek a csempék pozícióját és nagyítási szintjét jelölik. A fájlrendszer struktúrája tipikusan így néz ki: /zoom_level/x_coordinate/y_coordinate.png
A koordináta-rendszer
A Web Mercator (EPSG:3857) vetület nem méretarányos, mégis ideális webes térképekhez, mert jelentősen egyszerűsíti a számításokat, a csempézést és a zoomolást, emellett kompatibilis a legtöbb térinformatikai rendszerrel. A földrajzi koordinátákat (szélesség, hosszúság) síkban x és y koordinátákká alakítja, ami gyors adatlekérést és skálázhatóságot biztosít a csempealapú térképek számára.
A Web Mercator előnyei
- Egyszerű számítások: Egyenes vonalakat használ, könnyítve a feldolgozást.
- Hatékony csempézés: Támogatja a gyors térképi csempézést és zoomolást.
- Széleskörű kompatibilitás: Működik a legtöbb térinformatikai rendszerrel és adatforrással.
- Gyors megjelenítés: Csak a szükséges térképrészleteket tölti le.
- Skálázhatóság: Alkalmazható nagyobb térképek és felhasználói bázis esetén is.
A Web Mercator hátrányai:
- Pólusok közelében torzulás: A területek és távolságok egyre nagyobbak lesznek a pólusok felé, ami torzítja a térképi ábrázolást.
- Szög torzulás: A térképen a vonalak nem párhuzamosak, ami zavarhatja a navigációt, különösen magasabb szélességi fokokon.
- Korlátozott alkalmazás globálisan: A Web Mercator nem pontos a sarkvidékeknél, és az egyenlítő közelében is torzíthatja a területek arányát.
- Helymeghatározási pontosság: Nem alkalmas földmérési pontosságot igénylő feladatokra, mivel a torzulások akár méteres eltéréseket is eredményezhetnek.
Hierarchikus csempézés működése
- Nulladik szint (Zoom level 0): Ezen a szinten egyetlen csempe tartalmazza a teljes Földet, amely 256 × 256 pixeles.
- Első szint (Zoom level 1): A térkép négy egyenlő részre van osztva (2 × 2 rács). Mindegyik rész egy-egy 256 × 256 pixeles csempe, így már négyszer annyi pixelen mutatjuk meg ugyanazt a térképet.
- Második szint (Zoom level 2): Az előző szint minden csempéje további 4 csempére van osztva, azaz itt már összesen 4 × 4 = 16 csempe van.
- További szintek: Az előzőekhez hasonlóan minden új szinttel a csempék száma négyszeresére növekszik. Egy adott zoomszinten az összes csempe száma 4n.
Az alábbi képek azt mutatják be, hogyan osztódnak a csempék a különböző zoomszinteken. Ez segít megérteni, hogyan jeleníthetjük meg a térképeket különböző nagyítási szinteken.
Zoom level 1
Zoom level 2
GDAL és gdal2tiles
A GDAL (Geospatial Data Abstraction Library) egy ingyenes, nyílt forráskódú eszközkészlet, amely lehetővé teszi földrajzi adatok feldolgozását, átalakítását és megjelenítését. A gdal2tiles egy GDAL-eszköz, amely automatikusan csempealapú térképeket generál megadott raszteradatokból. Az eszköz nemcsak a csempék generálását végzi el, hanem a szükséges .html fájlokat is létrehozza, amelyekkel megjeleníthetjük a térképünket a böngészőben.
A QGIS nagy előnye, hogy szorosan integrálja a GDAL eszköztárat, így nem szükséges külön telepíteni, és nem szükséges konzolos parancsokat futtatni. A gdal2tiles funkció például közvetlenül elérhető a QGIS grafikus felületéről, megkönnyítve a térképek csempézésének folyamatát.
Csempe térkép elkészítése QGIS-ben
Indítsd el a QGIS-t, és töltsd be a feldolgozni kívánt térképhez tartozó kép fájlt. Navigálj a "Rétegek" menüpontra, majd válaszd a "Réteg hozzáadása" alatt a "Raszterréteg hozzáadása..." opciót. Tallózd be a kívánt képfájlt, majd nyomd meg a "Megnyitás" gombot.
A "Feldolgozás eszköztár"-ban írd be a keresőmezőbe, hogy "gdal2tiles", majd kattints a felkínált modulra.
A modul elindítása után ellenőrizd és szükség esetén egészítsd ki az alábbi paramétereket:
- Ellenőrizd le, hogy a "Bemeneti réteg"-nél az előzőleg betöltött raszter réteg van kiválasztva.
- A "Csempevágási profil"-nál maradj az alapértelmezett Mercator opciónál. A kiválasztott bemeneti réteg ekkor fog a Web Mercator (EPSG:3857) koordinátarendszernek megfelelően viselkedni. Ez az alapértelmezett vetület az OpenStreetMap, Google Maps és más online térképszolgáltatások számára. Így a generált csempék pontosan illeszkednek majd a háttér térkép réteghez.
- "Renderelendő zoomszintek": A zoomszintet a tábla méretétől, illetve a térkép felhasználási céljaitól függően "15-20" körüli értékre állítsd.
- "Generálandó webes nézegető": Válaszd ki, hogy melyik JavaScript térképi rendszerhez készüljön a .html fájl. Elérhető opciók: Leaflet, OpenLayers, GoogleMaps. (illetve választhatod, hogy egyik sem kell, vagy azt is választhatod, hogy mindegyik)
- "A bemeneti adatokhoz rendelendő átlátszóság értéke": Ha a beállításoknál az "átlátszóság" mezőben a "0,0000000" érték szerepel, töröld ki azt. Ellenkező esetben a generált csempefájlok nem lesznek átlátszóak, ami zavaró lesz majd a térkép megjelenítésénél.
- "Kimeneti könyvtár": Add meg azt a mappát, ahová a generált fájlok kerüljenek.
Végül kattints a "Futtatás" gombra. Minél magasabb zoomszinteket választasz, annál hosszabb ideig tart a folyamat. Nagy terület esetén, ha nagyon részletes képeket szeretnél, ez akár több órát is igénybe vehet. A modul futtatása után a megadott mappában lesznek majd a csempék, amelyek a térkép apró darabokra bontott verzióját tartalmazzák, a korábban említett hierarchikus mappaszerkezetben. Illetve a térkép megjelenítő keretrendszerekhez tartozó .html fájlok.
Összegzés és további lehetőségek
Az itt bemutatott lépésekkel elkészültek a csempealapú térképek és a hozzájuk tartozó alapvető .html fájlok, amelyekkel már egy működő webes térkép alapjai is rendelkezésre állnak. A további fejlesztések során érdemes lehet egyedi funkciókat is hozzáadni, például: egyedi jelölők elhelyezése, osztott nézetek beépítése, további rétegek kezelése. Akár speciális stílusok és vizualizációk alkalmazása is lehetséges. Egy ilyen megoldás példája itt nézhető meg.
Ezek az alapok nemcsak egy működő megoldást kínálnak, hanem egy olyan rugalmas infrastruktúrát is, amely könnyedén bővíthető a projekt jövőbeli igényeinek megfelelően.