- カテゴリ:
ST_PERIMETER¶
GEOGRAPHY または GEOMETRY オブジェクトにあるポリゴンの周囲の長さを返します。
構文¶
ST_PERIMETER( <geography_or_geometry_expression> )
引数¶
geography_or_geometry_expression
引数の型は GEOGRAPHY または GEOMETRY にする必要があります。
戻り値¶
長さを表す REAL 値を返します。
GEOGRAPHY オブジェクトの場合、長さはメートル単位です。
GEOMETRY オブジェクトの場合、長さは、座標の定義に使用されるのと同じ単位で計算されます。
使用上の注意¶
geography_or_geometry_expression
がポリゴン、 MultiPolygon、またはポリゴンを含む GeometryCollection ではない場合、 ST_PERIMETER は0を返します。geography_or_geometry_expression
が GeometryCollection の場合、 ST_PERIMETER はコレクション内にあるポリゴンの周囲の合計を返します。ポリゴンの周囲を取得するには、(ST_LENGTH ではなく)この関数を使用します。
例¶
GEOGRAPHY 例¶
これは、各辺が1°の弧で、赤道に1つの辺があるポリゴンの周囲の長さを計算します。
SELECT ST_PERIMETER(TO_GEOGRAPHY('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')); +------------------------------------------------------------------+ | ST_PERIMETER(TO_GEOGRAPHY('POLYGON((0 0, 1 0, 1 1, 0 1, 0 0))')) | |------------------------------------------------------------------| | 444763.468727621 | +------------------------------------------------------------------+
GEOMETRY 例¶
次の例では、 ST_PERIMETER 関数の使用方法を示しています。
SELECT ST_PERIMETER(g), ST_ASWKT(g) FROM (SELECT TO_GEOMETRY(column1) AS g FROM VALUES ('POINT(1 1)'), ('LINESTRING(0 0, 1 1)'), ('POLYGON((0 0, 0 1, 1 1, 1 0, 0 0))'));+-----------------+--------------------------------+ | ST_PERIMETER(G) | ST_ASWKT(G) | |-----------------+--------------------------------| | 0 | POINT(1 1) | | 0 | LINESTRING(0 0,1 1) | | 4 | POLYGON((0 0,0 1,1 1,1 0,0 0)) | +-----------------+--------------------------------+