名前

ST_LocateBetween — 指定したM値の範囲内にある要素からなる、派生ジオメトリコレクション値を返します。

概要

geometry ST_LocateBetween(geometry geom, float8 measure_start, float8 measure_end, float8 offset);

説明

指定したM値の範囲内にある要素からなる、派生ジオメトリコレクションを返します。

凸でないPOLYGONを抜き出すと不正なジオメトリを返すことがあります。

offsetを与えた場合には、結果は入力ラインの右または左に、指定した数字分ずれます。正のオフセットでは左に、負のオフセットでは右にずれます。

意味は ISO/IEC CD 13249-3:200x(E) - Text for Continuation CD Editing Meeting で決められています。

Availability: 1.1.0 それより前はST_Locate_Between_Measuresでした。

Changed: 2.0.0 以前の版ではST_Locate_Between_Measuresと呼ばれていました。

Enhanced: 3.0.0 - POLYGON, TIN, TRIANGLEへの対応が追加されました。

This function supports M coordinates.

SELECT ST_AsText(the_geom)
FROM (
    SELECT ST_LocateBetween(
       'MULTILINESTRING M ((1 2 3, 3 4 2, 9 4 3),(1 2 3, 5 4 5))'),
       1.5,
       3
    ) as the_geom
) As foo;

                                                         st_asewkt
------------------------------------------------------------------------
 GEOMETRYCOLLECTION M (LINESTRING M (1 2 3,3 4 2,9 4 3),POINT M (1 2 3))

-- ジオメトリコレクションは難しいですので、
-- 分かりやすくするためにダンプしています。
SELECT ST_AsText((ST_Dump(the_geom)).geom)
FROM (
    SELECT ST_LocateBetween(
        'MULTILINESTRING M ((1 2 3, 3 4 2, 9 4 3),(1 2 3, 5 4 5))'),
        1.5,
        3
    ) As the_geom
) As foo;

                   st_asewkt
--------------------------------
 LINESTRING M (1 2 3,3 4 2,9 4 3)
 POINT M (1 2 3)

関連情報

ST_Dump, ST_LocateAlong, ST_LocateBetweenElevations