Kategorien:

Geodatenfunktionen

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)                                                             |
+--------------------------------------------------------------------------+
Zurück zum Anfang