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