Obsah obrázku voda, exteriér, budova, vsedě Popis byl vytvořen automaticky Z3104 GEODATABÁZE – LEKCE 8 Mgr. Martina Klocová OBSAH HODINY •Připojení – kontrola připojení, QGIS •Trocha opakování J •Teorie v praxi - PostGIS OPAKOVÁNÍ •SELECT AVG(vek) AS avg_vek FROM student; • •Pohled VIEW •SUM vs. COUNT NÁDSTAVBA POSTGIS – PROČ TO ŘEŠÍME? •Shapefile nestačí ke správě objemných dat https://www.youtube.com/watch?v=eAFG6aQTwPk •Hlídaní referenční integrity •Transakce (ACID) •Spolupráce • •Interoperabilita zajištěná standardy •Simple Feature Access (ISO 19125) •Simple Feature Access - Part 2: SQL Option •https://www.ogc.org/standards/sfs • CO TO UMÍ? •vektory •rastry •topologie •routování •projekce •TIN •3D data •http://postgis.net/workshops/postgis-intro/geometries.html FUNKCE •ST_...(značí se prefixem) •ST_Distance(geom, geom) •ST_DWithin(geom, geom, R) •ST_Intersects(geom, geom) •ST_MakePoint(x, y) •ST_Buffer(geom, R) •A dalších 300+ funkcí… https://postgis.net/docs/ OPATRNĚ S PŘIDÁVÁNÍM SRID •UPDATE cities • SET geom = ST_MakePoint(x, y); • • •TAKHLE NE! CREATE TABLE cities ( name varchar PRIMARY KEY, x float NOT NULL, y float NOT NULL ); INSERT INTO cities (name, x, y) VALUES ('Brno', 16.62, 49.2); SELECT AddGeometryColumn('cities', 'geom', 4326, 'point', 2); // #1 ALTER TABLE cities ADD COLUMN geom geometry(Point,4326); // #2 OPATRNĚ S PŘIDÁVÁNÍM SRID •ERROR: Geometry SRID (0) does not match column SRID (4326) • •UPDATE cities • SET geom = ST_SetSRID(ST_MakePoint(x, y), 4326); POSTGIS – PROSTOROVÝ INDEX •Slouží k nejrychlejšímu dohledání záznamů v tabulce (podobně jako rejstřík v knize) •Prostorový index je speciálním typem indexu, který souží kromě běžných funkcí k optimalizaci vyhledávání a operace prostorového spojení. •R-strom https://www.youtube.com/watch?v=EnNlqReOeSA POSTGIS – PROSTOROVÝ INDEX •Prostorový index je použit pro porovnávání minimálních ohraničujících obdélníků geoprvků: •1. V první fázi se vyhledají všechny objekty na základě jejich minimálního ohraničujícího obdélníku. •2. V druhé fázi se provede vyhledávání v podmnožině objektů z první fáze. • • • • •CREATE INDEX cities_idx ON cities USING GIST (geom); ZPROVOZNĚNÍ - ZAČNEME V PGADMINU •CREATE EXTENSION postgis; • •PostGIS – datové typy: Jak ukládat data? •PostGIS – souřadnicové systémy: A co Křovák? •PostGIS – funkce: Jak pracovat s daty? •PostGIS – import dat: Jak vložit data? •PostGIS – prostorové indexy: Jak to zrychlit? ZPROVOZNĚNÍ – POKRAČUJEME V POSTGIS V QGIS • •Menu Databáze -> Správce databází •Vybrat PostGIS -> název db -> tabulka cities •pravé tlačítko -> přidat do mapového okna A TEĎ VY! ÚKOL 1 – POPIS DAT •Zprovozněte PostGIS extenzi na PosgreSQL databázi. •Vytvořte tabulku cities se sloupci name (varchar), x (float), y (float). •Nahrajte cities.sql ze studijních materiálů do databáze. • •Přidejte sloupec geom typ: Point, SRID: 4326. •Použijte vybranou PostGIS funkci k vytvoření geometrie ve sloupci geom ze souřadnic ve sloupcích x, y. • DĚKUJI ZA POZORNOST