PG WORKSHOP

Geometry Accessors

Geometry Accessors giver os mulighed for at spørge og trække oplysninger ud om vores geomtriobjekter vi netop kar konstrueret med geometry constructors funktionerne. Vi kan eksmepevis bruge dem til at finde ud hvor sto den højeset x-værdi er med (ST_XMax) eller trække en højdeværdi udmed (ST_Z). Vi kan også få svar på hvilken geometritype objektet har med (ST_GeometryType) Fejl i geometrier kan sagtens forekomme når man har importeret data fra eksempelvis MapInfo. Derfor er det smart at man tjekke om en geomtri er valid med (ST_IsValid)

Det er meget vigtigt at geomtrierne er valide fordi beregninger på ugyldige geometrier kan resultere i fejlbehæftede resultater. Eksemplevis kan arealberegninger give fokerte resultater, hvis de udføres på ugyldige geometriobjekter

Eksempler

Validér geomtri på polygoner

Undersøg om polygonerne til skoldedistrikterne har gyldige geomtrier så vi sikrer at fremtdige bregninger på disse geomtrier giver korrekte resultater

SELECT ST_IsValid(wkb_geometry) FROM  buf.skolegrunddistrikt;
Validér at geomtrierne har det forventede kooordinatsystem:

Det er vigtigt at alle geometrier har det koordinatsystem (SRID). Det kan forekomme at man uden at værfe klar over det har objekter med forskellige koordinatssytemer.

SELECT ST_SRID (wkb_geometry) FROM  buf.skolegrunddistrikt
Udtræk bounding boxen (envelope) af en geometri (i wkt format):
SELECT ST_AsText(ST_Envelope(wkb_geometry)) FROM  buf.skolegrunddistrikt
Udtræk bounding boxenfor alle geometrierne i en tabel:

Her lægges alle geomtrierne sammen til en MultiPolygon som bruges til at beregne en envelope/Boundingbox.

SELECT  ST_AsText(ST_Union(ST_Envelope(wkb_geometry))) FROM  buf.skolegrunddistrikt

--

[HANDS-ON]: Prøv selv at åbne pgAdmin og åben et sql vindue og se dine tabeller har gyldige geomtrier

Se alle alle geometry accesors her: http://postgis.net/docs/manual-2.1/reference.html#Geometry_accesors