Amazon Redshift unterstützt ab dem 1. November 2025 nicht mehr die Erstellung neuer Python-UDFs. Wenn Sie Python-UDFs verwenden möchten, erstellen Sie die UDFs vor diesem Datum. Bestehende Python-UDFs funktionieren weiterhin wie gewohnt. Weitere Informationen finden Sie im Blog-Posting
ST_LineInterpolatePoint
ST_LineInterpolatePoint gibt einen Punkt entlang einer Linie in einem Bruchabstand vom Anfang der Linie zurück.
Um die Punktgleichheit zu bestimmen, wird ST_LineInterpolatePoint auf der 2D-Projektion der Eingabegeometrie ausgeführt. 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
GEOMETRYoder 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)