ST_Centroid
Definition
ST_Centroid wählt ein Polygon oder Multipolygon aus und gibt den Punkt in der Mitte des Envelope der Geometrie zurück. Dies bedeutet, dass sich der Schwerpunkt auf halber Strecke zwischen der minimalen und maximalen X- und Y-Ausdehnung der Geometrie befindet.
Syntax
sde.st_centroid (pl1 sde.st_geometry) sde.st_centroid (mpl1 sde.st_geometry)
Rückgabetyp
ST_Point
Beispiel
Der städtische GIS-Fachmann möchte die Multipolygone von Gebäudegrundrissen in einer Bebauungsgrafik als einzelne Punkte anzeigen. Die Gebäudegrundrisse sind in der Tabelle "bfp" gespeichert, die mit den folgenden Anweisungen erstellt und aufgefüllt wurde:
CREATE TABLE bfp ( building_id integer, footprint sde.st_geometry); INSERT INTO bfp VALUES ( 1, sde.st_polygon ('polygon ((0 0, 0 10, 10 10, 10 0, 0 0))', 0) ); INSERT INTO bfp VALUES ( 2, sde.st_polygon ('polygon ((20 0, 30 20, 40 0, 20 0))', 0) ); INSERT INTO bfp VALUES ( 3, sde.st_polygon ('polygon ((20 30, 25 35, 30 30, 20 30))', 0) );
Die Funktion ST_Centroid gibt den Schwerpunkt jedes Gebäudegrundriss-Multipolygons zurück. Die Funktion ST_AsText wandelt jeden Schwerpunkt in eine Textbeschreibung um, die von der Anwendung erkannt wird.
Oracle
SELECT building_id, sde.st_astext (sde.st_centroid (footprint)) Centroid FROM bfp; BUILDING_ID Centroid 1 POINT (5.00000000 5.00000000) 2 POINT (30.00000000 10.00000000) 3 POINT (25.00000000 32.50000000)
PostgreSQL
SELECT building_id, sde.st_astext (sde.st_centroid (footprint)) AS centroid FROM bfp; building_id centroid 1 POINT (5 5) 2 POINT (30 10) 3 POINT (25 33)