Deprecated: Joomla\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/adatpcom/public_html/libraries/vendor/joomla/input/src/Input.php on line 41

Deprecated: Return type of Joomla\Input\Input::count() should either be compatible with Countable::count(): int, or the #[\ReturnTypeWillChange] attribute should be used to temporarily suppress the notice in /home/adatpcom/public_html/libraries/vendor/joomla/input/src/Input.php on line 170

Deprecated: Joomla\CMS\Input\Input implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/adatpcom/public_html/libraries/src/Input/Input.php on line 31

Deprecated: Joomla\CMS\Input\Cookie implements the Serializable interface, which is deprecated. Implement __serialize() and __unserialize() instead (or in addition, if support for old PHP versions is necessary) in /home/adatpcom/public_html/libraries/src/Input/Cookie.php on line 0

Deprecated: str_replace(): Passing null to parameter #3 ($subject) of type array|string is deprecated in /home/adatpcom/public_html/libraries/src/Uri/Uri.php on line 141
QGIS - Alaptérkép használata

Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /home/adatpcom/public_html/templates/shaper_helix3/html/modules.php on line 21
QGIS - Alaptérkép használata

QGIS - Alaptérkép használata

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!

Magyarország irányítószám körzetei

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!)

Magyarország irányítószám körzetei OpenStreetMap alaptérképpel

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.

Egy csempe az XYZ Tiles szolgáltatásból

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.

Kapcsolódás új XYZ Tiles szolgáltatáshoz

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

A kapcsolat paramétereinek megadása

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!

Réteg hozzáadása az új XYZ Tiles szolgáltatásból

A mintaadatot megtalálod a GitHub oldalunkon is!

Címkék: ,

Deprecated: htmlspecialchars(): Passing null to parameter #1 ($string) of type string is deprecated in /home/adatpcom/public_html/templates/shaper_helix3/html/modules.php on line 21