Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.
ST_Curve 値の長さの測定値を返します。結果は、unit-name パラメータで指定した単位で測定されます。
curve-expression.ST_Length([ unit-name])
unit-name
VARCHAR(128)
長さを計算する単位。デフォルトでは、空間参照系の単位が使用されます。単位名は、UNIT_TYPE が 'LINEAR' の ST_UNITS_OF_MEASURE ビュー内のローの UNIT_NAME カラムと一致させてください。
DOUBLE 曲線が空のセットの場合は、NULL を返します。それ以外の場合は、指定された単位で曲線の長さを返します。
ST_Length メソッドは、unit-name パラメータで指定された単位で曲線の長さを返します。曲線が空の場合は、NULL が返されます。
曲線に Z 値が含まれている場合、それらの値はジオメトリの長さの計算時には考慮されません。
curve-expression が空のジオメトリ (ST_IsEmpty()=1) の場合、このメソッドは NULL を返します。
ST_Length では、デフォルトで、使用可能な場合はジオメトリの元のフォーマットが使用されます。それ以外の場合は、内部フォーマットが使用されます。内部フォーマットと元のフォーマットの詳細については、STORAGE FORMAT 句、CREATE SPATIAL REFERENCE SYSTEM 文を参照してください。
SQL/MM (ISO/IEC 13249-3: 2006) 7.1.2
次の例では、結果として 2 を返します。
2
SELECT NEW ST_LineString( 'LineString(1 0, 1 1, 2 1)' ).ST_Length()
次の例では、半円を表す円ストリングを作成し、ST_Length を使用してジオメトリの長さを調べ、値 PI を返します。
SELECT NEW ST_CircularString( 'CircularString( 0 0, 1 1, 2 0 )' ).ST_Length()
次の例では、カナダのハリファックス (NS) からワーテルロー (ON) までの経路を表す線ストリングを作成し、ST_Length を使用してその経路の長さ (メートル単位) を調べ、結果として 1361967.76789 を返します。
1361967.76789
SELECT NEW ST_LineString( 'LineString( -63.573566 44.646244, -80.522372 43.465187 )', 4326 ) .ST_Length()
次の例では、SpatialShapes テーブルの曲線の長さを返します。長さは直交座標の単位で返されます。
SELECT ShapeID, TREAT( Shape AS ST_Curve ).ST_Length() FROM SpatialShapes WHERE Shape IS OF ( ST_Curve )
次の例では、線ストリングと測定単位の例 (example_unit_halfmetre) を作成します。ST_Length メソッドは、この測定単位でジオメトリの長さを検索し、値 4.0 を返します。
BEGIN DECLARE @curve ST_Curve; CREATE SPATIAL UNIT OF MEASURE IF NOT EXISTS "example_unit_halfmetre" TYPE LINEAR CONVERT USING .5; SET @curve = NEW ST_LineString( 'LineString(1 0, 1 1, 2 1)' ) ; SELECT @curve.ST_Length('example_unit_halfmetre'); END