- Kategorien:
ST_CENTROID¶
Gibt den Punkt zurück, der das geometrische Zentrum eines Objekts vom Typ GEOGRAPHY oder GEOMETRY darstellt.
Syntax¶
ST_CENTROID( <geography_or_geometry_expression> )
Argumente¶
geography_or_geometry_expression
Das Argument muss ein Ausdruck vom Typ GEOGRAPHY oder GEOMETRY sein.
Rückgabewerte¶
Gibt ein GEOGRAPHY- oder GEOMETRY-Objekt für den Punkt zurück, der das geometrische Zentrum des Eingabeobjekts darstellt.
Nutzungshinweise¶
Gibt NULL zurück, wenn die Eingabe ein NULL-Wert ist.
Wenn das Eingabeobjekt eine GeometryCollection ist, die verschiedene Objekttypen enthält (Polygone, LineStrings und Punkte), verwendet ST_CENTROID den Typ mit der höchsten Dimension für die Bestimmung des geometrischen Zentrums. Beispiel:
Wenn die GeometryCollection Polygone, LineStrings und Punkte enthält, verwendet ST_CENTROID die Polygone und ignoriert die LineStrings und Punkte in der Sammlung.
Wenn die GeometryCollection LineStrings und Punkte enthält, verwendet ST_CENTROID die LineStrings und ignoriert die Punkte in der Sammlung.
Bei GEOMETRY-Objekten hat das zurückgegebene GEOMETRY-Objekt dieselbe SRID wie das Eingabeobjekt.
Beispiele¶
GEOGRAPHY-Beispiele¶
Das folgende Beispiel gibt den Punkt zurück, der das geometrische Zentrum eines LineString darstellt.
SELECT ST_CENTROID( TO_GEOGRAPHY( 'LINESTRING(0 0, 0 -2)' ) ) as center_of_linestring; +----------------------+ | CENTER_OF_LINESTRING | |----------------------| | POINT(0 -1) | +----------------------+
Das folgende Beispiel gibt den Punkt zurück, der das geometrische Zentrum eines Polygons darstellt.
SELECT ST_CENTROID( TO_GEOGRAPHY( 'POLYGON((10 10, 10 20, 20 20, 20 10, 10 10))' ) ) as center_of_polygon; +------------------------+ | CENTER_OF_POLYGON | |------------------------| | POINT(15 15.014819855) | +------------------------+
Das folgende Beispiel gibt den Punkt zurück, der das geometrische Zentrum einer GeometryCollection darstellt. Diese Sammlung enthält ein Polygon, einen LineString und einen Punkt. ST_CENTROID verwendet bei der Bestimmung des geometrischen Zentrums nur das Polygon (und ignoriert LineString und Punkt).
SELECT ST_CENTROID( TO_GEOGRAPHY( 'GEOMETRYCOLLECTION(POLYGON((10 10, 10 20, 20 20, 20 10, 10 10)), LINESTRING(0 0, 0 -2), POINT(50 -50))' ) ) as center_of_collection_with_polygons; +------------------------------------+ | CENTER_OF_COLLECTION_WITH_POLYGONS | |------------------------------------| | POINT(15 15.014819855) | +------------------------------------+
GEOMETRY-Beispiele¶
Im folgenden Beispiel wird der Zentroid eines einfachen rechteckigen Polygons berechnet. Beachten Sie, wie sich dieses Ergebnis von dem Ergebnis bei Verwendung von ST_CENTROID mit einem GEOGRAPHY-Objekt unterscheidet.
SELECT ST_CENTROID(TO_GEOMETRY('POLYGON((10 10, 10 20, 20 20, 20 10, 10 10))'));+--------------------------------------------------------------------------+ | ST_CENTROID(TO_GEOMETRY('POLYGON((10 10, 10 20, 20 20, 20 10, 10 10))')) | |--------------------------------------------------------------------------| | POINT(15 15) | +--------------------------------------------------------------------------+