• http://postgis.net/documentation/ manuál: • http://postgis.net/docs/manual-3.4/ • http://postgis.net/docs/manual-3.4/reference.html - seznam funkcí tutorial včetně příkladů: • http://postgis.net/workshops/postgis-intro/ Otevřete si QGIS, a můžeme sledovat, co vzniká v databázi. Základní výběr na základě podmínek: =================================== SELECT * FROM okresy SELECT "nazev", "poc_obyv_s" FROM okresy SELECT "nazev", "poc_obyv_s" FROM okresy WHERE nazev='Karviná' SELECT avg(poc_obyv_s) FROM okresy SELECT "nazev", "poc_obyv_s" FROM okresy WHERE poc_obyv_s>200000 AND nazev_vusc like '%Moravsk%' SELECT "nazev", "poc_obyv_s" FROM okresy WHERE poc_obyv_s>200000 AND nazev_vusc like '%Moravsk%' ORDER BY poc_obyv_s DESC Tvorba tabulky bez a s geometrií: ================================= CREATE TABLE okvyber AS SELECT "nazev", "poc_obyv_s" FROM okresy WHERE poc_obyv_s>200000 AND nazev_vusc like '%Moravsk%' ORDER BY poc_obyv_s CREATE TABLE okvyber2 AS SELECT "geom", "nazev", "poc_obyv_s" FROM okresy WHERE poc_obyv_s>200000 AND nazev_vusc like '%Moravsk%' ORDER BY poc_obyv_s Funkce pro práci s geometrií: ============================= SELECT "nazev", ST_Area(geom) FROM okresy WHERE ST_Area(geom)<300000000 Vrať textový výpis geometrie okresů: SELECT "nazev", ST_AsText(geom) FROM okresy WHERE (nazev='Blansko') Funkce pro prostorové vztahy dvou vrstev: ========================================= CREATE TABLE ms AS SELECT * FROM kraje WHERE "nazev" like '%Moravsk%' CREATE TABLE vyber AS SELECT * FROM obce, ms WHERE ST_Contains(ms.geom, obce.geom)=TRUE CREATE TABLE vyber2 AS SELECT obce.* FROM obce, ms WHERE ST_Contains(ms.geom, obce.geom)=TRUE CREATE TABLE vyber3 AS SELECT obce.* FROM obce, ms WHERE ST_Intersects(ms.geom, obce.geom)=TRUE Tvorba nových tabulek pomocí analýz: ==================================== CREATE TABLE buffers AS SELECT ST_Buffer(geom,2000) AS geom FROM obce WHERE "nazev" like '%á%' SELECT sum(ST_Area(geom)/1000000) As rozloha FROM buffers CREATE TABLE uni AS SELECT ST_Union (buffers.geom) AS geom FROM buffers SELECT (ST_Area(geom)/1000000) As rozloha FROM uni CREATE TABLE inter AS SELECT ST_Intersection(buffers.geom, ms.geom) AS geom FROM buffers, ms WHERE ST_Dimension(ST_Intersection(buffers.geom, ms.geom)) = 2 CREATE TABLE inter2 AS SELECT buffers.* FROM buffers, ms WHERE ST_Intersects (buffers.geom, ms.geom)=TRUE