LocateAlong は図形オブジェクトと測定値を引き数とし、測定値で見つかったポイントの集合を複数ポイントとして戻します。
LocateAlong にマルチポイントおよび測定値が入力として渡されて、マルチポイントにこの測定値が含まれていない場合、 LocateAlong は POINT EMPTY を戻します。
構文
db2gse.LocateAlong(g db2gse.ST_Geometry, [measure] Double)
戻りタイプ
db2gse.ST_Geometry
例
以下の CREATE TABLE ステートメントによって LOCATEALONG_TEST 表が作成されます。 LOCATEALONG_TEST には 2 つの列があります。 GID 列はそれぞれの行を一意的に識別し、G1 図形列にサンプルの図形が格納されます。
CREATE TABLE LOCATEALONG_TEST (gid integer, g1 db2gse.ST_Geometry)
以下の INSERT ステートメントによって 2 つの行が挿入されます。最初の行は複数折れ線であり、2 番目は複数ポイントです。
INSERT INTO db2gse.LOCATEALONG_TEST VALUES( 1, db2gse.ST_MLineFromText('multilinestring m ((10.29 19.23 5,23.82 20.29 6, 30.19 18.47 7, 45.98 20.74 8), (23.82 20.29 6,30.98 23.98 7,42.92 25.98 8))', db2gse.coordref()..srid(0))) INSERT INTO db2gse.LocateAlong_TEST VALUES( 2, db2gse.ST_MPointFromText('multipoint m (10.29 19.23 5,23.82 20.29 6, 30.19 18.47 7,45.98 20.74 8,23.82 20.29 6,30.98 23.98 7,42.92 25.98)', db2gse.coordref()..srid(0)))
以下の SELECT ステートメントおよび対応する結果セットでは、 LocateAlong 関数が、測定値 6.5 のポイントを見つけるように指示されます。最初の行は 2 つのポイントを含んでいる複数ポイントを戻します。しかし、2 番目の行は空のポイントを戻します。 (次元が 0 より大きい図形の) 線形機能の場合、 LocateAlong がポイントを書き入れることがあります。しかし、複数ポイントの場合は、目標の測定値が正確に一致する必要があります。
SELECT gid, CAST(db2gse.ST_AsText(db2gse.LocateAlong (g1,6.5)) AS varchar(96)) "Geometry" FROM LOCATEALONG_TEST GID Geometry ----------- -------------------------------------------------------------- 1 MULTIPOINT M ( 27.01000000 19.38000000 6.50000000, 27.40000000 22.14000000 6.50000000) 2 POINT EMPTY 2 record(s) selected.
以下の SELECT ステートメントおよび対応する結果セットでは、 LocateAlong 関数が両方の行に対して複数ポイントを戻します。目標測定値の 7 は、複数折れ線と複数ポイントの両方のソース・データの測定値に一致します。
SELECT gid,CAST(db2gse.ST_AsText(db2gse.LocateAlong (g1,7)) AS varchar(96)) "Geometry" FROM LOCATEALONG_TEST GID Geometry ----------- -------------------------------------------------------------- 1 MULTIPOINT M ( 30.19000000 18.47000000 7.00000000, 30.98000000 23.98000000 7.00000000) 2 MULTIPOINT M ( 30.19000000 18.47000000 7.00000000, 30.98000000 23.98000000 7.00000000) 2 record(s) selected.