- カテゴリ:
ST_CENTROID¶
GEOGRAPHY または GEOMETRY オブジェクトの幾何中心を表すポイントを返します。
構文¶
ST_CENTROID( <geography_or_geometry_expression> )
引数¶
geography_or_geometry_expression
引数は型 GEOGRAPHY または GEOMETRY の式にする必要があります。
戻り値¶
入力オブジェクトの幾何学的中心を表すポイントの GEOGRAPHY または GEOMETRY オブジェクトを返します。
使用上の注意¶
入力が NULL の場合は NULL を返します。
入力オブジェクトがさまざまなタイプのオブジェクト(ポリゴン、 LineStrings、およびポイント)を含む GeometryCollection である場合、 ST_CENTROIDは、 最も大きいディメンション のタイプを使用して、幾何学的中心を決定します。例:
GeometryCollection にポリゴン、 LineStrings、およびポイントが含まれている場合、 ST_CENTROID はポリゴンを使用し、コレクション内の LineStrings およびポイントを無視します。
GeometryCollection に LineStrings とポイントが含まれている場合、 ST_CENTROID は LineStrings を使用し、コレクション内のポイントを無視します。
GEOMETRY オブジェクトの場合、返された GEOMETRY オブジェクトは入力と同じ SRID を持ちます。
例¶
GEOGRAPHY 例¶
次の例では、 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 例¶
次の例では、単純な長方形ポリゴンの重心を計算します。 GEOGRAPHY オブジェクトで ST_CENTROID を使用した場合の結果との違いに注意してください
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) | +--------------------------------------------------------------------------+