LocateAlong verwendet ein Geometrieobjekt und ein Maß und gibt die in diesem Maß gefundenen Punkte als Mehrpunktergebnis (Multipoint) zurück.
Syntax
db2gse.LocateAlong(g db2gse.ST_Geometry, adistance Double)
Rückgabetyp
db2gse.ST_Geometry
Beispiele
Die folgende Anweisung CREATE TABLE erstellt die Tabelle LOCATEALONG_TEST. LOCATEALONG_TEST enthält zwei Spalten: die Spalte GID, die jede Zeile eindeutig kennzeichnet, und die Spalte G1, in der die Mustergeometrie gespeichert wird.
CREATE TABLE LOCATEALONG_TEST (gid integer, g1 db2gse.ST_Geometry)
Die folgenden INSERT-Anweisungen fügen zwei Zeilen ein. Die erste ist eine Mehrlinienfolge (Multilinestring), die zweite eine Mehrpunktangabe (Multipoint).
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)))
In der folgenden Anweisung SELECT und der entsprechenden Ergebnisgruppe wird die Funktion LocateAlong angewiesen, die Punkte mit dem Maß 6.5 zu finden. Die erste Zeile gibt eine Mehrpunktangabe (Multipoint) mit zwei Punkten zurück. Die zweite Zeile gibt dagegen einen leeren Punkt zurück. Für lineare Funktionen (Geometrie mit einer Abmessung größer als 0) kann LocateAlong den Punkt interpolieren; bei Mehrpunktangaben (Multipoint) muß das Zielmaß jedoch exakt übereinstimmen.
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.
In der folgenden Anweisung SELECT und der entsprechenden Ergebnisgruppe gibt die Funktion LocateAlong für beide Punkte Mehrpunktangaben (Multipoint) zurück. Das Zielmaß von 7 entspricht den Maßen in den Mehrlinien- und Mehrpunkt-Quellendaten.
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.