カテゴリ:

地理空間関数

ST_CENTROID

Returns the Point representing the geometric center of a GEOGRAPHY or GEOMETRY object.

構文

ST_CENTROID( <geography_or_geometry_expression> )

引数

geography_or_geometry_expression

The argument must be an expression of type GEOGRAPHY or GEOMETRY.

戻り値

Returns a GEOGRAPHY or GEOMETRY object for the Point that represents geometric center of the input object.

使用上の注意

  • 入力が NULL の場合は NULL を返します。

  • 入力オブジェクトがさまざまなタイプのオブジェクト(ポリゴン、 LineStrings、およびポイント)を含む GeometryCollection である場合、 ST_CENTROIDは、 最も大きいディメンション のタイプを使用して、幾何学的中心を決定します。例:

    • GeometryCollection にポリゴン、 LineStrings、およびポイントが含まれている場合、 ST_CENTROID はポリゴンを使用し、コレクション内の LineStrings およびポイントを無視します。

    • GeometryCollection に LineStrings とポイントが含まれている場合、 ST_CENTROID は LineStrings を使用し、コレクション内のポイントを無視します。

  • For GEOMETRY objects, the returned GEOMETRY object has the same SRID as the input.

GEOGRAPHY Examples

次の例では、 LineString の幾何学的中心を表すポイントを返します。

SELECT ST_CENTROID(
    TO_GEOGRAPHY(
        'LINESTRING(0 0, 0 -2)'
    )
) as center_of_linestring;
+----------------------+
| CENTER_OF_LINESTRING |
|----------------------|
| POINT(0 -1)          |
+----------------------+

次の例では、ポリゴンの幾何学的中心を表すポイントを返します。

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) |
+------------------------+

次の例では、 GeometryCollection の幾何学的中心を表すポイントを返します。このコレクションには、ポリゴン、 LineString、およびポイントが含まれています。ST_CENTROID 幾何学的中心を決定するときに、ポリゴンのみを使用します(また、 LineString とポイントは無視)。

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)                                                             |
+--------------------------------------------------------------------------+
最上部に戻る