ST_ LineInterpolatePoint - Amazon Redshift

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 einem GEOMETRY-Typ ausgewertet wird. Der Subtyp ist LINESTRING.

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)