LocateBetween utilise en entrée un objet de type géométrie et deux positions de mesure, et renvoie une géométrie qui représente l'ensemble des chemins déconnectés contenus entre deux positions de mesure.
Syntaxe
db2gse.LocateBetween(g db2gse.ST_Geometry, [measure] Double, [measure]5 Double)
Type de retour
db2gse.ST_Geometry
Exemples
L'instruction CREATE TABLE ci-après crée la table LOCATEBETWEEN_TEST qui comporte deux colonnes : la colonne GID qui identifie chaque ligne de la table de manière univoque et la colonne de type géométrie G1 qui stocke la géométrie exemple.
CREATE TABLE LOCATEBETWEEN_TEST (gid integer, g1 db2gse.ST_Geometry)
Les instructions INSERT présentées ci-dessous insèrent deux lignes dans la table LOCATEBETWEEN_TEST. La première est une multiligne, et la seconde, un multipoint.
INSERT INTO db2gse.LOCATEBETWEEN_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.LOCATEBETWEEN_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 8)', db2gse.coordref()..srid(0)))
L'instruction SELECT et l'ensemble de résultats correspondant ci-après indiquent comment la fonction LocateBetween localise les mesures figurant entre les valeurs 6,5 et 7,5 incluses. La première ligne de la table renvoie une multiligne composée de plusieurs lignes, et la seconde, un multipoint car les données source étaient de ce type. Lorsque les données source ont une dimension de valeur 0 (point ou multipoint), la fonction exige une correspondance exacte.
SELECT gid, CAST(db2gse.ST_AsText(db2gse.LocateBetween (g1,6.5,7.5)) AS varchar(96)) "Geometry" FROM LOCATEBETWEEN_TEST GID Geometry ----------- ------------------------------------------------------------------- 1 MULTILINESTRING M ( 27.01000000 19.38000000 6.50000000, 31.19000000 18.47000000 7.00000000,38.09000000 19.61000000 7.50000000),(27.40000000 22.1400 0000 6.50000000, 30.98000000 23.98000000 7.00000000,36.95000000 24.98000000 7.5 0000000) 2 MULTIPOINT M ( 30.19000000 18.47000000 7.00000000, 30.98000000 23.9 8000000 7.00000000) 2 record(s) selected.