PostGIS
PostGIS predstavuje rozšírenie databázy o možnosti práce s priestorovými údajmi (Práca s GIS údajmi, demografickými a geokódovanými údajmi) Návod na inštaláciu rozšírenia PoststGIS pre databázový systém nájdete tu: manuál stránky postgis.net Aktivácia rozšírenia postgis pre Postgre databázu prebehne zadaním príkazov: CREATE EXTENSION postgis;CREATE EXTENSION postgis_topology;
Overenie verzie Postgis:
SELECT postgis_full_version();Overenie verzie Postgre:
SELECT version();Priestorová databáza je databáza, ktorá definuje špeciálne údajové typy pre geometrické objekty a umožňuje ukladanie takýchto údajov do databázových tabuliek. Rovnako poskytuje špeciálne funkcie a indexy na dopytovanie a manipuláciu s údajmi takéhoto typu pomocou databázového jazyka SQL. Priestorová databáza nemusí slúžiť iba ako sklad priestorových údajov, ale aj ako nástroj na tvorbu priestorových analýz, priestorového spracovania údajov a priestorových dopytov.
Geometrické údajové typy
V PostGISe existujú dva údajové type a to: geometry - umožňuje uložiť geometriu v rovinných súradniciach x,y a geography , kde môžeme ukladať geometriu v geografických súradniciach (zemepisná dĺžka, šírka). Celistvosť mapovania v 2D priestore môžeme docieliť s použitím troch základných typov geometrie: POINT, LINESTRING a POLYGON. V priestorovej databáze však vieme pracovať aj s oveľa komplexnejšími objektami ako MULTIPOINT, MULTILINESTRING, MULTIPOLYGON, GEOMETRYCOLLECTION a zakrivená geometria. Podobne vieme geometrické objekty umiestniť do 3D priestoru. OpenGIS špecifikácia definuje dve štandardné cesty ako vyjadriť priestorový objekt: well-known text (WKT) a well-known binary (WBK) Ukážky textovej reprezentácie (WKT) priestorových objektov:- POINT(0 0)
- LINESTRING(0 0,1 1,1 2)
- POLYGON((0 0,4 0,4 4,0 4,0 0),(1 1, 2 1, 2 2, 1 2,1 1))
- MULTIPOINT(0 0,1 2)
- MULTILINESTRING((0 0,1 1,1 2),(2 3,3 2,5 4))
- MULTIPOLYGON(((0 0,4 0,4 4,0 4,0 0),(1 1,2 1,2 2,1 2,1 1)), ((-1 -1,-1 -2,-2 -2,-2 -1,-1 -1)))
- GEOMETRYCOLLECTION(POINT(2 3),LINESTRING((2 3,3 4)))
- CIRCULARSTRING(0 0, 1 1, 1 0)
- COMPOUNDCURVE(CIRCULARSTRING(0 0, 1 1, 1 0),(1 0, 0 1))
- CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1))
- MULTICURVE((0 0, 5 5),CIRCULARSTRING(4 0, 4 4, 8 4))
- MULTISURFACE(CURVEPOLYGON(CIRCULARSTRING(0 0, 4 0, 4 4, 0 4, 0 0),(1 1, 3 3, 3 1, 1 1)),((10 10, 14 12, 11 10, 10 10),(11 11, 11.5 11, 11 11.5, 11 11)))
SRID
OpenGIS špecifikácia tiež vyžaduje, aby priestorové údaje obsahovali informáciu o súradnicovom systéme SRID (SRID = Spatial reference ID). Ide o číslo (EPSG kód), ktorým je identifikovaný konkrétny súradnicový systém a vzťahuje sa na tabuľku s názvom "spatial_ref_sys". Atribútový stĺpec obsahujúci geometriu potom môže vyzerať následovne: geometry(MULTILINESTRING,5514), alebo geography(POINT,4326) Nešpecifikovaný súradnicový systém je označený v PostGIS ako číslo 0. Informácie o súradnicových systémoch a ich EPSG kódoch nájdete na stránke http://epsg.io/Ukážka priradenia EPSG kódu záznamu s geometriou:
CREATE TABLE wgs AS SELECT ST_Point(-123.365556, 48.428611) As geom;
ALTER TABLE ba_old.wgs ALTER COLUMN geom TYPE geometry(POINT, 4326) USING ST_SetSRID(geom, 4326);
Objektovo-relačná databáza
Je databáza, ktorá umožňuje ukladať komplexnejšie typy objektov v stĺpcoch relačných tabuliek a ktorá umožňuje definovanie vlastných údajových typov, nových funkcii a operátorov na manipuláciu s nimi.Tvorba geometrie v PostGIS
V týchto jednoduchých prípadoch nešpecifikujeme súradnicový systém, ktorý však bute potrebné definovať ak budeme pracovať s komplexnými geografickými údajmi.POINT
SELECT ST_Point(1 2) AS bod;
LINESTRING
SELECT ST_GeomFromText('LINESTRING(-14 21,0 0,35 26)') AS linia;
POLYGON
SELECT ST_GeomFromText('POLYGON((0 1,1 -1,-1 -1,0 1))') As trojuholnik;