Processing functions
Med processing functions kan man manipulere geometrierne på forskellig vis.
Eksempler
Lav en 100 meter buffer om skoler
SELECT ogc_fid, ST_Buffer(wkb_geometry, 100) FROM kursus.adgangsadresser;
Læg alle geometrier sammen med samme vejkode
SELECT row_number() over () as id, ST_Union(geometri), vejkode FROM kursus.adresser GROUP BY vejkode
--row_number() over () giver os en ID som vi kan bruge i QGIS
--Farvelæg i QGIS på vejkode
Lav en polygon, der omslutter adresser med samme sognekode (convex hull)
SELECT row_number() over() as id, ST_ConvexHull(ST_Union(geometri))::geometry(Polygon,25832) as geom, sognekode FROM kursus.adgangsadresser GROUP BY sognekode
--Eller som concave hull
SELECT row_number() over() as id, ST_ConcaveHull(ST_Union(geometri),0.99)::geometry(Polygon,25832) as geom, sognekode FROM kursus.adgangsadresser GROUP BY sognekode
Klip et skørt hul i postnumre-polygonerne
-- tilpas srid og geometritype
ALTER TABLE kursus.postnummer
ALTER COLUMN geom TYPE geometry(MultiPolygon, 25832)
USING ST_force2d(ST_SetSRID(geom,25832));
WITH kligeom AS (
SELECT
ST_Force2d(ST_ConcaveHull(ST_Union(geometri),0.99))::geometry(Polygon,25832) as geom,
sognekode
FROM kursus.adgangsadresser
WHERE sognekode = '7823'
GROUP BY sognekode)
SELECT
row_number() over() as id,
ST_Multi(ST_Difference(p.geom,k.geom))::geometry(MultiPolygon,25832) as geom
FROM kligeom k, kursus.postnummer p;
--
[HANDS-ON]: Prøv selv at manipulere geometrier i dit datasæt
Se alle alle geometry processors her: http://postgis.net/docs/manual-2.1/reference.html#Geometry_Processing