ST_ LineInterpolatePoint - Amazon Redshift

Amazon Redshift non supporterà più la creazione di nuovi Python UDFs a partire dalla Patch 198. Python esistente UDFs continuerà a funzionare fino al 30 giugno 2026. Per ulteriori informazioni, consulta il post del blog.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

ST_ LineInterpolatePoint

ST_ LineInterpolatePoint restituisce un punto lungo una linea a una distanza frazionaria dall'inizio della linea.

Per determinare l'uguaglianza dei punti, ST_ LineInterpolatePoint opera sulla proiezione 2D della geometria di input. Se la geometria di input è vuota, una sua copia viene restituita nella stessa dimensione dell'input. Per le geometrie 3DZ, 3DM e 4D, la coordinata z o m è la media delle coordinate z o m del segmento in cui si trova il punto.

Sintassi

ST_LineInterpolatePoint(geom, fraction)

Arguments (Argomenti)

geom

Un valore di tipo GEOMETRY o un'espressione che restituisce un valore di tipo GEOMETRY. Il sottotipo è LINESTRING.

fraction

Un valore di tipo di dati DOUBLE PRECISION che rappresenta la posizione di un punto lungo la linestring della linea. Il valore è una frazione nell'intervallo 0-1, estremi inclusi.

Tipo restituito

GEOMETRY di sottotipo POINT.

Se geom o fraction sono null, allora viene restituito null.

Se geom è vuoto, allora viene restituito il punto vuoto.

Il valore dell'identificatore del sistema di riferimento spaziale (SRID) della geometria restituito è il valore SRID della geometria di input.

Se fraction è fuori intervallo, allora viene restituito un errore.

Se geom non è una linestring, allora viene restituito un errore.

Esempi

Il seguente SQL restituisce un punto a metà strada lungo una linestring.

SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.50));
st_asewkt ----------- POINT(5 5)

Il seguente SQL restituisce un punto al 90% sulla strada lungo una linestring.

SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.90));
st_asewkt ----------- POINT(9 9)