名前

ST_LocateBetweenElevations — 指定したZ値の範囲内にある要素からなる、派生ジオメトリ (コレクション)値を返します。3次元、4次元のLINESTRINGSとMULTILINESTRINGSのみに対応しています。

概要

geometry ST_LocateBetweenElevations(geometry geom_mline, float8 elevation_start, float8 elevation_end);

説明

指定したZ値の範囲内にある要素からなる、派生ジオメトリ (コレクション)値を返します。3次元、4次元のLINESTRINGSとMULTILINESTRINGSのみに対応しています。

Availability: 1.4.0

This function supports 3d and will not drop the z-index.

SELECT ST_AsEWKT(ST_LocateBetweenElevations(
                        ST_GeomFromEWKT('LINESTRING(1 2 3, 4 5 6)'),2,4)) As ewelev;
                                                                   ewelev
----------------------------------------------------------------
        MULTILINESTRING((1 2 3,2 3 4))

SELECT ST_AsEWKT(ST_LocateBetweenElevations(
                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 9)'),6,9)) As ewelev;

                                ewelev
----------------------------------------------------------------
GEOMETRYCOLLECTION(POINT(1 2 6),LINESTRING(6.1 7.1 6,7 8 9))

-- ジオメトリコレクションは難しいものですので、
-- 簡略化するためにダンプしています。
SELECT ST_AsEWKT((ST_Dump(the_geom)).geom)
                FROM
                (SELECT ST_LocateBetweenElevations(
                        ST_GeomFromEWKT('LINESTRING(1 2 6, 4 5 -1, 7 8 9)'),6,9) As the_geom) As foo;

                   st_asewkt
--------------------------------
POINT(1 2 6)
LINESTRING(6.1 7.1 6,7 8 9)

関連情報

ST_Dump