Amazon Redshift wird UDFs ab dem 1. November 2025 die Erstellung von neuem Python nicht mehr unterstützen. Wenn Sie Python verwenden möchten UDFs, erstellen Sie das UDFs vor diesem Datum liegende. Bestehendes Python UDFs wird weiterhin wie gewohnt funktionieren. Weitere Informationen finden Sie im Blogbeitrag
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_ LineInterpolatePoint
ST_ LineInterpolatePoint gibt einen Punkt auf einer Linie zurück, der sich in einem Bruchteil der Entfernung vom Anfang der Linie befindet.
Um die Punktgleichheit zu bestimmen, verwendet LineInterpolatePoint ST_ die 2D-Projektion der Eingabegeometrie. Wenn die Eingabegeometrie leer ist, wird eine Kopie dieser Geometrie in derselben Dimension wie die Eingabe zurückgegeben. Bei 3DZ-, 3DM- und 4D-Geometrien ist die z
- oder m
-Koordinate der Durchschnitt der z
- oder m
-Koordinaten des Segments in dem sich der Punkt befindet.
Syntax
ST_LineInterpolatePoint(geom, fraction)
Argumente
- geom
-
Ein Wert vom Datentyp
GEOMETRY
oder ein Ausdruck, der zu einemGEOMETRY
-Typ ausgewertet wird. Der Subtyp istLINESTRING
. - fraction
-
Ein Wert des Datentyps
DOUBLE PRECISION
, der die Position eines Punktes entlang des Linestrings für die Linie darstellt. Der Wert ist ein Bruchteil im Bereich 0–1.
Rückgabetyp
GEOMETRY
des Subtyps POINT
.
Wenn geom oder fraction null ist, wird null zurückgegeben.
Wenn geom leer ist, wird der leere Punkt zurückgegeben.
Der SRID-Wert (Spatial Reference System Identifier) der zurückgegebenen Geometrie ist der SRID-Wert der Eingabegeometrie.
Wenn fraction außerhalb des Bereichs liegt, wird ein Fehler zurückgegeben.
Wenn geom kein Linestring ist, wird ein Fehler zurückgegeben.
Beispiele
Die folgende SQL-Anweisung gibt einen Punkt auf halber Strecke entlang eines Linestrings zurück.
SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.50));
st_asewkt
-----------
POINT(5 5)
Die folgende SQL-Anweisung gibt einen Punkt auf 90 % der Strecke entlang eines Linestrings zurück.
SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.90));
st_asewkt
-----------
POINT(9 9)