ST_ConvexHull — Beräknar det konvexa skrovet av en geometri.
geometry ST_ConvexHull(
geometry geomA)
;
Beräknar det konvexa skrovet av en geometri. Det konvexa skrovet är den minsta konvexa geometrin som omsluter alla geometrier i indata.
Man kan tänka sig det konvexa skrovet som den geometri som erhålls genom att linda ett gummiband runt en uppsättning geometrier. Detta skiljer sig från ett konkavt skrov som är analogt med att "krympa" geometrierna. Ett konvext skrov används ofta för att bestämma ett påverkat område baserat på en uppsättning punktobservationer.
I det allmänna fallet är den konvexa skrovet en polygon. Det konvexa skrovet av två eller flera kollinjära punkter är en tvåpunkts LineString. Det konvexa skrovet av en eller flera identiska punkter är en Point.
Detta är inte en aggregeringsfunktion. För att beräkna det konvexa skrovet av en uppsättning geometrier, använd ST_Collect för att aggregera dem till en geometrisamling (t.ex. ST_ConvexHull(ST_Collect(geom
)).
Utförs av GEOS-modulen
Denna metod implementerar OGC:s implementeringsspecifikation för enkla funktioner för SQL 1.1. s2.1.1.3
Denna metod implementerar SQL/MM-specifikationen. SQL-MM IEC 13249-3: 5.1.16
Denna funktion stöder 3d och kommer inte att tappa z-index.
Convex Hull av en MultiLinestring och en MultiPoint
SELECT ST_AsText(ST_ConvexHull( ST_Collect( ST_GeomFromText('MULTILINESTRING((100 190,10 8),(150 10, 20 30))'), ST_GeomFromText('MULTIPOINT(50 5, 150 30, 50 10, 10 10)') )) ); ---st_astext-- POLYGON((50 5,10 8,10 10,100 190,150 30,150 10,50 5))
Används med ST_Collect för att beräkna konvexa skrov av geometriska uppsättningar.
--Get estimate of infected area based on point observations SELECT d.disease_type, ST_ConvexHull(ST_Collect(d.geom)) As geom FROM disease_obs As d GROUP BY d.disease_type;