ST_LineInterpolatePoint — Returns a point interpolated along a line at a fractional location.
geometry ST_LineInterpolatePoint(
geometry a_linestring, float8 a_fraction)
;
geography ST_LineInterpolatePoint(
geography a_linestring, float8 a_fraction, boolean use_spheroid = true)
;
Retorna um ponto interpolar com uma linha. Primeiro argumento deve ser uma LINESTRING. Segundo argumento é um float8 entre 0 e 1 representando fração do comprimento total da linestring do ponto tem que ser localizado.
Veja ST_LineLocatePoint para computar a linha de localização mais perto de um ponto.
This function computes points in 2D and then interpolates values for Z and M, while ST_3DLineInterpolatePoint computes points in 3D and only interpolates the M value. |
Desde a liberação 1.1.1 essa função também interpola valores M e Z (quando presentes), enquanto as liberações anteriores configura eles para 0.0. |
Disponibilidade: 0.8.2, Suporte a Z e M adicionado em 1.1.1
Alterações: 2.1.0 para 2.0.x foi chamada ST_Line_Interpolate_Point.
This function supports 3d and will not drop the z-index.
-- 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)
The mid-point of a 3D line:
SELECT ST_AsEWKT( ST_LineInterpolatePoint(' LINESTRING(1 2 3, 4 5 6, 6 7 8)', 0.5 )); -------------------- POINT(3.5 4.5 5.5)
The closest point on a line to a point:
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