ST_Perimeter
ST_Perimeter は入力された面積ジオメトリに対して、その 2D 射影の周長 (境界の長さ) をデカルト座標系で返します。周長の単位は、入力ジオメトリの座標を表す単位と同じです。この関数は、ポイント、マルチポイント、および線形ジオメトリに対して 0 を返します。入力がジオメトリコレクションの場合、この関数はコレクションのジオメトリの周長の合計を返します。
入力がジオグラフィの場合、ST_Perimeter では、SRID で決定される回転楕円体上で計算され与えられた面積ジオグラフィについて、その 2D 射影に関する測地座標系での周長 (境界の長さ) を返します。周長の単位はメートルです。この関数は、ポイント、マルチポイント、および線形地形に対して 0 を返します。入力がジオメトリコレクションの場合、この関数はコレクション内にあるジオグラフィの周長の合計を返します。
構文
ST_Perimeter(geo)
引数
- geo
-
データ型
GEOMETRY
またはGEOGRAPHY
の値、またはGEOMETRY
もしくはGEOGRAPHY
型として評価される式です。
戻り型
DOUBLE PRECISION
geo が null の場合、null が返されます。
SRID 値が見つからない場合、エラーが返されます。
例
次の SQL は、マルチポリゴンのデカルト座標系での周長を返します。
SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,0 10,0 0)),((10 0,20 0,20 10,10 0)))'));
st_perimeter
--------------------------------
68.2842712474619
次の SQL は、マルチポリゴンのデカルト座標系での周長を返します。
SELECT ST_Perimeter(ST_GeomFromText('MULTIPOLYGON(((0 0,10 0,0 10,0 0)),((10 0,20 0,20 10,10 0)))'));
st_perimeter
--------------------------------
68.2842712474619
次の SQL は、ジオグラフィ内にあるポリゴンの周長を返します。
SELECT ST_Perimeter(ST_GeogFromText('SRID=4326;POLYGON((0 0,1 0,0 1,0 0))'));
st_perimeter
------------------
378790.428393693
次の SQL は、ジオグラフィ内にあるライン文字列の周長を返します。
SELECT ST_Perimeter(ST_GeogFromText('SRID=4326;LINESTRING(5 0,10 0)'));
st_perimeter
--------------
0