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)