ST_LineInterpolatePoint — Gibt einen oder mehrere, entlang einer Linie interpolierte Punkte zurück.
geometry ST_LineInterpolatePoint(
geometry a_linestring, float8 a_fraction)
;
geography ST_LineInterpolatePoint(
geography a_linestring, float8 a_fraction, boolean use_spheroid = true)
;
Fügt einen Punkt entlang einer Linie ein. Der erste Parameter muss einen Linienzug beschreiben. Der zweite Parameter, in Float8-Darstellung mit den Werten von 0 bis 1, gibt jenen Bruchteil der Gesamtlänge des Linienzuges an, wo der Punkt liegen soll.
Siehe ST_LineLocatePoint um die nächstliegende Linie zu einem Punkt zu berechnen.
Diese Funktion berechnet Punkte in 2D und interpoliert dann Werte für Z und M, während ST_3DLineInterpolatePoint Punkte in 3D berechnet und nur den M-Wert interpoliert. |
Ab Version 1.1.1 interpoliert diese Funktion auch M- und Z-Werte (falls vorhanden), während frühere Versionen diese Werte auf 0.0 setzten. |
Verfügbarkeit: 0.8.2, Z und M Unterstützung wurde mit 1.1.1 hinzugefügt
Änderung: 2.1.0. Bis zu 2.0.x wurde diese Funktion mit ST_Line_Interpolate_Point bezeichnet.
Diese Funktion unterstützt 3d und lässt den Z-Index nicht fallen.
-- The point 20% along a line SELECT ST_AsEWKT( ST_LineInterpolatePoint( 'LINESTRING(25 50, 100 125, 150 190)', 0.2 )); ---------------- POINT(51.5974135047432 76.5974135047432)
Gibt einen oder mehrere, entlang einer Linie interpolierte Punkte zurück.
SELECT ST_AsEWKT( ST_LineInterpolatePoint(' LINESTRING(1 2 3, 4 5 6, 6 7 8)', 0.5 )); -------------------- POINT(3.5 4.5 5.5)
Der Punkt auf einer Linie, der einem Punkt am nächsten liegt:
SELECT ST_AsText( ST_LineInterpolatePoint( line.geom, ST_LineLocatePoint( line.geom, 'POINT(4 3)'))) FROM (SELECT ST_GeomFromText('LINESTRING(1 2, 4 5, 6 7)') As geom) AS line; ------------ POINT(3 4)
ST_LineInterpolatePoints, ST_LineInterpolatePoint, ST_LineMerge