A PostGIS a PostgreeSQL relációs adatbáziskezelőhöz készült nyílt forráskódú térinformatikai kiterjesztés, amely lehetővé teszi földrajzi objektumok adatbázisban történű tárolását, lekérdezését és elemzését. A rendszer kiterjeszti a hagyományos SQL nyelvet térbeli adattípusokkal és műveletekkel, így a relációs adatbáziskezelés eszköztárát a térinformatikai feldolgozás irányába bővíti.
A PostGIS az Open Geospatial Consortium által definiált Simple Features specifikáció implementációja, és támogatja a geometriai adatok szabványos leírására szolgáló formátumokat, például a Well-Known text (WKT) és a Well-Known binary (WKB) reprezentációkat. A kiterjesztés révén a PostgreSQL teljes értékű térbeli adatbázissá válik.
A PostGIS a modern térinformatikai rendszerek alapvető komponense, és gyakran használják olyan szoftverekkel együtt, minta QGIS vagy a GDAL.
Története A PostGIS fejlesztése a 2000-es évek elején indult azzal a céllal, hogy a PostgreSQL adatbázis-kezelőt térinformatikai képességekkel bővítse. Az első verziók a kanadai Refractions Research vállalat munkájához kötődnek, amely később Boundless néven működött tovább, és a nyílt forráskódú térinformatikai szoftverek egyik meghatározó szereplőjévé vált.
A projekt korai szakaszában a fejlesztés középpontjában az Open Geospatial Consortium által definiált Simple Features specifikáció implementációja állt, amely biztosította a térbeli adatok szabványos kezelését és az interoperabilitást más rendszerekkel. Az első nyilvános verzió (PostGIS 0.1) 2001 májusában jelent meg, és már tartalmazta az alapvető geometriai objektumokat, térbeli indexelést és egyszerű lekérdezési műveleteket.
Ennek eredményeként a PostGIS a 2000-es évek közepére stabil és széles körben alkalmazható térbeli adatbázis-kiterjesztéssé vált.
A PostGIS fejlődése során több fontos mérföldkő is meghatározó volt. A 2000-es évek elején a GEOS könyvtár integrálása lehetővé tette a fejlettebb térbeli műveletek – például az ST_Intersects és az ST_Buffer – bevezetését, valamint az Open Geospatial Consortium szabványainak való megfelelést. A PostGIS 1.0-s verziójának 2005-ös megjelenése stabil alapot teremtett a modern adattárolási mechanizmusok számára. A következő években a fejlesztések középpontjában a teljesítmény növelése, a háromdimenziós adatok támogatása, valamint az ISO SQL/MM szabvány implementációja állt. A 3.x verzióktól kezdődően a fejlesztés a PostgreSQL újabb képességeivel való szoros integrációra, valamint a modern, például felhőalapú környezetek támogatására helyezte a hangsúlyt.
A későbbi fejlesztések során a funkcionalitás jelentősen bővült. Megjelent a raszteres adatok kezelése, a topológiai modell támogatása, valamint számos új térbeli művelet és optimalizáció. A 2.x verzióktól kezdve a rendszer már nem csupán geometriai objektumok tárolására és lekérdezésére volt alkalmas, hanem komplex térbeli elemzések végrehajtását is lehetővé tette.
A 2010-es évektől a PostGIS fejlesztése szorosan kapcsolódik a szélesebb nyílt forráskódú térinformatikai ökoszisztémához, és számos alkalmazás – például a QGIS vagy a GeoServer – alapvető háttérkomponenseként szolgál. A projekt folyamatos fejlesztés alatt áll, és a PostgreSQL újabb verzióival együtt fejlődve a modern térbeli adatkezelés egyik meghatározó eszközévé vált.
Architektúra A PostGIS a PostgreSQL kiterjesztéseként működik, amely új adattípusokkal, függvényekkel és indexelési mechanizmusokkal bővíti a relációs adatbázis-kezelő képességeit. A rendszer szorosan integrálódik a PostgreSQL lekérdezőmotorjába, így a térbeli műveletek közvetlenül SQL lekérdezésekben hajthatók végre.
Adatmodell A PostGIS két alapvető térbeli adattípust különböztet meg: a geometry és a geography típust. A geometry típus síkbeli koordinátarendszerekben (projekciókban) értelmezett geometriai objektumokat tárol, míg a geography típus a Föld görbületét figyelembe vevő, földrajzi koordinátákon alapuló számításokat tesz lehetővé. Ez a kettősség biztosítja, hogy a felhasználó a feladat jellegének megfelelően válasszon a nagyobb pontosságot vagy a jobb teljesítményt biztosító megközelítés között.
Térbeli műveletek A PostGIS a hagyományos SQL nyelvet térbeli függvényekkel bővíti, amelyek lehetővé teszik geometriai objektumok közötti kapcsolatok vizsgálatát és térbeli elemzések végrehajtását. Ilyen műveletek például az objektumok metszésének, tartalmazásának vagy távolságának meghatározása.
A térbeli műveleteket megvalósító függvények neve általában ST_ előtaggal kezdődik (a „spatial type” rövidítéseként). Gyakran használt függvények közé tartozik például az ST_Intersects, amely két geometria metszését vizsgálja, az ST_Within, amely azt dönti el, hogy egy objektum egy másikon belül helyezkedik-e el, valamint az ST_Distance, amely két objektum közötti távolságot számítja ki. A függvények az Open Geospatial Consortium szabványain alapulnak, és a térbeli lekérdezések a relációs adatkezelés szerves részévé válnak.
Indexelés A hatékony lekérdezések érdekében a PostGIS a PostgreSQL indexelési mechanizmusaira épít, különösen a GiST (Generalized Search Tree) alapú indexekre. Ezek lehetővé teszik a térbeli adatok gyors szűrését határoló téglalapok (bounding boxok) segítségével, jelentősen csökkentve a számításigényes geometriai műveletek számát. A GiST indexek általánosított fa struktúrát alkalmaznak, amely különböző térbeli adatszerkezetek kezelésére is alkalmas.
Az indexelés két lépésben működik. Először egy gyors, közelítő szűrés történik a határoló téglalapok alapján, majd ezt követi a pontos geometriai vizsgálat. Ez a megközelítés biztosítja, hogy a térbeli lekérdezések nagy adatmennyiség esetén is hatékonyan végrehajthatók legyenek.
Kiterjesztések A PostGIS funkcionalitása további modulokkal bővíthető, amelyek különböző típusú térbeli adatok és elemzések kezelését teszik lehetővé. A rendszer alapértelmezett része a geometriai objektumok kezelésére szolgáló modul, amely a legtöbb térbeli művelet alapját képezi.
A fontosabb kiterjesztések közé tartozik a raszteres adatok kezelését biztosító raster modul (postgis_raster), amely lehetővé teszi például műholdfelvételek és digitális domborzatmodellek tárolását és elemzését, valamint a topology modul (postgis_topology), amely a topológiai kapcsolatokon alapuló adatmodellezést támogatja. Emellett a PostGIS különböző kiegészítő modulokat is tartalmaz, például cím- és helyadatok kezelésére szolgáló megoldásokat, amelyek speciális feladatok megoldását teszik lehetővé.
Lásd még PostgreSQL SpatiaLite
Jegyzetek
Források
Ajánlott irodalom Regina O. Obe, Leo S. Hsu: PostGIS in Action, Third Edition, Manning Publications Co., 2021,
Angel Marquez: PostGIS Essentials – Learn how to build powerful spatial database solutions with PostGIS quickly and efficiently, Packt Publishing, 2015,
További információk PostGIS & Spatial Database History A PostGIS az OSGeo oldalán
Kategória:Adatbázis-kezelő rendszerek