Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del 1 de noviembre de 2025. Si desea utilizar las UDF de Python, créelas antes de esa fecha. Las UDF de Python existentes seguirán funcionando con normalidad. Para obtener más información, consulte la publicación del blog
ST_LineInterpolatePoint
ST_LineInterpolatePoint devuelve un punto a lo largo de una línea a una distancia fraccionaria desde el inicio de la línea.
Para determinar la igualdad de los puntos, ST_LineInterpolatePoint opera en la proyección 2D de la geometría de entrada. Si la geometría de entrada está vacía, se devuelve una copia de ella en la misma dimensión que la entrada. Para las geometrías 3DZ, 3DM y 4D, la coordenada z o m es el promedio de las coordenadas z o m del segmento donde se encuentra el punto.
Sintaxis
ST_LineInterpolatePoint(geom, fraction)
Argumentos
- geom
-
Un valor de tipo de datos
GEOMETRYo una expresión que toma el valor de un tipoGEOMETRY. El subtipo esLINESTRING. - fraction
-
Un valor de tipo de datos
DOUBLE PRECISIONque representa la posición de un punto a lo largo de la cadena de línea para la línea. El valor es una fracción en el rango de 0 a 1, inclusive.
Tipo de devolución
GEOMETRY del subtipo POINT.
Si geom o fraction son null, se devuelve el valor null.
Si geom está vacío, se devuelve el punto vacío.
El valor del identificador de sistema de referencia espacial (SRID) de la geometría devuelta es el valor SRID de la geometría de entrada.
Si fraction está fuera de rango, se devuelve un error.
Si geom no es una cadena de línea, se devuelve un error.
Ejemplos
El siguiente SQL devuelve un punto a la mitad de una cadena de línea.
SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.50));
st_asewkt
-----------
POINT(5 5)
El siguiente SQL devuelve un punto que se encuentra al 90 % del camino de una cadena de línea.
SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.90));
st_asewkt
-----------
POINT(9 9)