2018. február 23. nagy újdonságot hozott a térinformatika világába: ezen a napon jelent meg a jelentősen újragondolt és újraírt QGIS 3.0. Az új verzió rengeteg változást és újdonságot hozott, amelyek közül az érdekesebbeket és/vagy szakmailag meghatározóbbakat szeretném bemutatni néhány bejegyzésen keresztül. Elsőként az alaptérkép hozzáadásának lehetőségét tekintem át.
Sokszor előfordul, hogy a téradatok, amiket szeretnénk megjeleníteni és elemezni, sokkal jobban értelmezhetők, ha egy tájékozódást segítő alapréteghez tudjuk viszonyítani. Ilyen alap lehet az OpenStreetMap térképe, a Google Térkép vagy Műhold vagy a Bing Térkép vagy Műhold, hogy a teljesség igénye nélkül csak a leggyakoribbakat említsem.
Alaptérkép használatának lehetőségei
Vegyük példaként azt az esetet, hogy rendelkezésünkre áll Magyarország irányítószám-körzeteinek adata GeoJSON formátumban. Ez a poligonokat (síkidomokat) tartalmazó adat egy réteg lesz a projektünkben: ki tudjuk rajzolni az irányítószám-körzetek határát és feliratként meg tudjuk jeleníteni az irányítószámot. A térkép értelmezését és későbbi használatát nagyban megkönnyítené, ha látnánk alatta egy olyan alaptérképet, amelyen láthatóak az utcanevek, vízrajzi elemek, stb. Ehhez a térképhez keresünk tehát használható alaptérképet a QGIS 3.0 szoftverben!
A QGIS korábbi verziójában ilyen rétegeteket pluginek segítségével lehetett hozzáadni, az egyik legtöbb lehetőséget kínáló plugin az OpenLayers. Ez a plugin jelenleg csak kísérleti (experimental) verzióban érhető a QGIS 3.0-ban, de míg a stabil verzió is megjelenik, vannak különböző megoldások alaptérképi réteg használatára. Egyrészt vannak más pluginek, amelyek alaptérképi szolgáltatásokat biztosítanak, például a QuickMapServices. Másrészt a QGIS 3.0 egyik újítása, hogy alapértelmezetten (plugin nélkül is) képes megjeleníteni csempézett térképi rétegeket, amennyiben ismerjük a szolgáltatás URL címét.
OpenStreetMap alaptérkép használata
Legegyszerűbben az OpenStreetMap alaptérképet tudjuk hozzáadni a projektünkhöz, mivel ezt a QGIS 3.0 már rögtön telepítés után tartalmazza. A (baloldali) Browser listában az XYZ Tiles név alatt szerepel az OpenStreetMap, amire duplán kattintva rögtön hozzá is adja a térképhez az alaptérképi réteget. (Sajnos nem mindig legalulra helyezi. Ha eltakarja a már hozzáadott rétegeket, át kell rendezni a rétegsorrendet!)
Miért XYZ Tiles?
Az XYZ Tiles szolgáltatások a térképi adatokat kis méretű képekre darabolva küldik át a szolgáltatást igénybe vevő alkalmazásnak, pl. a QGIS-nek. Mindig csak azokat, amelyek a látható térkép kivágatba beleesnek a megfelelő nagyításban. Ahhoz, hogy ezt gyorsan végre tudja hajtani, először is meghatározott számú nagyítási avagy zoomszintet kell meghatározni a térképszolgáltatás elkészítése során. Az egyes zoomszintek sorszáma (kódja) a Z érték. A térképet minden egyes zoomszinten feldarabol a szerver megadott méretű csempékre és ezeknek egy derékszögű koordinátarendszer logikájához hasonlóan ad kelet-nyugati, "vízszintes" (X érték) és észak-déli, "függőleges" (Y érték) sorszámokat.
Amikor a térképszolgáltatásért felelős szerver kap egy kérést (pl. a QGIS-től), akkor megtudja, milyen léptékben (pl. 1:20000) van szükségünk a térképre és meg tudja határozni, ehhez melyik Z érték tartozik. Megkapja továbbá a képernyőn látható kivágat sarokpontjainak koordinátáit, amelyek segítségével meghatározza, melyik a legkisebb és legnagyobb X sorszám, illetve melyik a legkisebb és legnagyobb Y sorszám, amire szükség lesz. A Z-X-Y értékek együttese pedig már egyértelműen beazonosítja az egyes térképcsempéket, így mindig a megfelelő képeket küldi el a kérésre adott válaszban.
A Z, X és Y értékek a Tile Server szolgáltatások linkjében többnyire paraméterként, kapcsos zárójelben, néha dollárjellel és kapcsos zárójelben jelenik meg, pl.
https://a.tile.openstreetmap.org/{z}/{x}/{y}.png vagy https://a.tile.openstreetmap.org/${z}/${x}/${y}.png
Bátran próbáljátok ki, hogy ezek helyére számokat írtok és a böngészőben megpróbáljátok megnyitni! Ha érvényes számokat adtok, akkor egy térképcsempe jelenik meg a böngészőben. A https://tile.openstreetmap.org/7/70/44.png pl. egy olyan térképcsempét ad vissza, amelyen részben Magyarország látszik.
Google alaptérkép használata
Mivel legtöbben a Google Maps térképi szolgáltatását ismerik, valószínűleg elsőként az merül fel, hogy "adjuk hozzá a Google térképet!". Technológiai oldalról ez lehetséges, a Google több szerveren is elérhetővé teszi a csempézett térképszolgáltatását, azonban minden szolgáltatás esetében először el kell olvasni a felhasználási feltételeket! A Google szigorúan kiköti, hogy a térképszolgáltatásait csak a Google Maps API használatával szabad felhasználni, így sajnos a QGIS-ben való felhasználása bár technológiailag megoldható, jogilag nem megengedett.
Egyéb alaptérképi szolgáltatások
Azért senki ne keseredjen el, rengeteg másik térképszolgáltatás érhető még el! Az OpenStreetMap projekten belül számos tematikus térképi réteg érhető el hasonló módon, például kerékpáros vagy víziközlekedésre kihegyezett térkép. Ezek listája és linkjei elérhetők itt: https://wiki.openstreetmap.org/wiki/Tile_servers.
A következőkben bemutatom, hogyan lehet egy tetszőleges (és szabadon használható) térképszolgáltatást hozzáadni a projekthez!
Gyakorlat teszi a mestert!
Új XYZ Tiles kapcsolat létrehozása
Legelőször meg kell adnunk néhány információt, hogy a QGIS tudjon kapcsolódni a távoli szerverhez, amelyről a térkép(csempék)et majd a projektben megjeleníti. (Ez egyben azt is jelenti, hogy internetkapcsolat nélkül ezek a térképszolgáltatások nem használhatók, hiszen a megjelenő alaptérkép adatai nem a saját számítógépünkön tárolódnak, hanem egy távoli szerveren.) Ezt a kapcsolatot egyszer kell csak létrehoznunk, a QGIS utána megjegyzi és már csak kapcsolódnunk kell a szerverhez. Ha azonban másik számítógépen szeretnénk majd egy másik QGIS-ben megjeleníteni, ismét létre kell hozni a kapcsolatot.
A kapcsolat létrehozásához a Browser panelen belül az XYZ Tiles feliratra kell kattintani jobb egérgombbal és a megjelenő New Connection menüpontot kell választani.
Ennek hatására megjelenik az XYZ Connection ablak. A Name beviteli mezőbe bármilyen szöveget írhatunk, ez csak arra szolgál, hogy a későbbiekben be tudjuk azonosítani, melyik szolgáltatást állítottuk be. A példában a "Stamen Watercolor basemap" nevet adom meg, mivel a Stamen Watercolor alaptérképet szeretném használni. Az URL mezőjébe be kell másolni a használni kívánt térképszolgáltatás linkjét. A korábban említett OpenStreetMap gyűjteményből kiválasztom a Stamen Watercolor-hoz tartozó linket és bemásolom:
http://c.tile.stamen.com/watercolor/${z}/${x}/${y}.jpg
FONTOS! A gyűjtőoldalon a linkekben szerepelnek dollárjelek ($), ezekre a QGIS-nek nincs szüksége, a jó működéshez ezeket ki kell törölni! Így a végleges link:
http://c.tile.stamen.com/watercolor/{z}/{x}/{y}.jpg
Az OK gomb megnyomása után a baloldalon már elérhető lesz az imént hozzáadott szolgáltatás is azzal a névvel, amit az előbb adtunk neki.
XYZ Tiles réteg hozzáadása
Ha az új réteget használni szeretnénk, csak drag-and-drop módszerrel a térképhez vagy a rétegekhez kell adni. Előfordulhat, hogy a rétegrendbe nem a kívánt helyre illeszti be, ilyenkor a rétegek sorrendjén még módosítani kell!