Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
ST_ SetPoint
ST_ SetPoint gibt eine Linienfolge mit aktualisierten Koordinaten in Bezug auf die Position der Eingabelinienfolge zurück, wie sie durch den Index angegeben ist. Die neuen Koordinaten sind die Koordinaten des Eingabepunkts.
Die Dimension der zurückgegebenen Geometrie entspricht der des geom1-Werts. Wenn geom1 und geom2 unterschiedliche Dimensionen haben, wird geom2 auf die Dimension von geom1 projiziert.
Syntax
ST_SetPoint(geom1, index, geom2)
Argumente
- geom1
-
Ein Wert vom Datentyp
GEOMETRY
oder ein Ausdruck, der zu einemGEOMETRY
-Typ ausgewertet wird. Der Subtyp muss seinLINESTRING
. - index
-
Ein Wert des Datentyps
INTEGER
, der die Position eines Index darstellt. Eine0
bezieht sich auf den ersten Punkt eines Linestrings von links,1
bezieht sich auf den zweiten Punkt und so weiter. Der Index kann ein negativer Wert sein. Eine-1
bezieht sich auf den ersten Punkt eines Linestrings von rechts,-2
bezieht sich auf den zweiten Punkt des Linestrings von rechts und so weiter. - geom2
-
Ein Wert vom Datentyp
GEOMETRY
oder ein Ausdruck, der zu einemGEOMETRY
-Typ ausgewertet wird. Der Subtyp muss seinPOINT
.
Rückgabetyp
GEOMETRY
Wenn geom2 der leere Punkt ist, wird geom1 zurückgegeben.
Wenn geom1, geom2 oder index null ist, wird null zurückgegeben.
Wenn geom1 kein Linestring ist, wird ein Fehler zurückgegeben.
Wenn index nicht in einem gültigen Indexbereich ist, wird ein Fehler zurückgegeben.
Wenn geom2 kein Punkt ist, wird ein Fehler zurückgegeben.
Wenn geom1 und geom2 nicht den gleichen SRID-Wert (Spatial Reference System Identifier) haben, wird ein Fehler zurückgegeben.
Beispiele
Die folgende SQL-Anweisung gibt einen neuen Linestring zurück, bei dem wir den zweiten Punkt des Eingabe-Linestrings mit dem angegebenen Punkt festgelegt haben.
SELECT ST_AsText(ST_SetPoint(ST_GeomFromText('LINESTRING(1 2, 3 2, 5 2, 1 2)'), 2, ST_GeomFromText('POINT(7 9)')));
st_astext
-------------
LINESTRING(1 2,3 2,7 9,1 2)
Das folgende SQL-Beispiel gibt einen neuen Linestring zurück, bei dem wir den dritten Punkt von rechts (der Index ist negativ) des Linestrings mit dem angegebenen Punkt festgelegt haben.
SELECT ST_AsText(ST_SetPoint(ST_GeomFromText('LINESTRING(1 2, 3 2, 5 2, 1 2)'), -3, ST_GeomFromText('POINT(7 9)')));
st_astext
-------------
LINESTRING(1 2,7 9,5 2,1 2)