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
GEOMETRY
o una expresión que toma el valor de un tipoGEOMETRY
. El subtipo esLINESTRING
. - fraction
-
Un valor de tipo de datos
DOUBLE PRECISION
que 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 retorno
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)