- Kategorien:
ST_CENTROID¶
Returns the Point representing the geometric center of a GEOGRAPHY or GEOMETRY object.
Syntax¶
ST_CENTROID( <geography_or_geometry_expression> )
Argumente¶
geography_or_geometry_expression
The argument must be an expression of type GEOGRAPHY or GEOMETRY.
Rückgabewerte¶
Returns a GEOGRAPHY or GEOMETRY object for the Point that represents geometric center of the input object.
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.
For GEOMETRY objects, the returned GEOMETRY object has the same SRID as the input.
Beispiele¶
GEOGRAPHY Examples¶
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 Examples¶
The following example computes the centroid of a simple rectangular Polygon. Note how the result differs from the result when using ST_CENTROID with a GEOGRAPHY object
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) | +--------------------------------------------------------------------------+