Insere um objeto de ponto em uma localização especificada em uma LineString e retorna o ponto.
Sintaxe
geometry ST_LineInterpolatePoint(geometry aLinestring , float8 aFraction);
geography ST_LineInterpolatePoint(geography aLinestring , float8 aFraction);
Parâmetros
|
Parâmetro |
Descrição |
|
aLinestring |
Objeto LineString de destino. |
|
aFraction |
Fração ao longo do segmento de linha onde o ponto é inserido. O valor é um número de ponto flutuante de 0 a 1. |
Descrição
Esta função aceita objetos 3D e preserva a coordenada z.
Esta função aceita coordenadas M.
Em sistemas de coordenadas geográficas, o cálculo usa a distância esferoidal.
Exemplo
-
Calcule as coordenadas do ponto médio de um segmento de linha:
SELECT ST_AsText(ST_LineInterpolatePoint(geom, 0.5)) FROM (SELECT 'LINESTRING(0 0,2 2)'::geometry as geom) As test; st_astext ------------ POINT(1 1) (1 row) SELECT ST_AsText(ST_LineInterpolatePoint(geog, 0.5)) FROM (SELECT 'LINESTRING(0 0,2 2)'::geography as geog) As test; ------------------------------------------ POINT(0.99969732796684 1.00015638159834) -
Obtenha o ponto em uma linha mais próximo de um objeto geometry:
SELECT ST_AsText(ST_LineInterpolatePoint(geom, ST_LineLocatePoint(geom, 'POINT(1 1)'::geometry))) FROM (SELECT 'LINESTRING(0 0,0 2)'::geometry As geom) As test; st_astext ------------ POINT(0 1) (1 row) -- geography SELECT ST_AsText(ST_LineInterpolatePoint(geog, ST_LineLocatePoint(geog, 'POINT(1 1)'::geography))) FROM (SELECT 'LINESTRING(0 0,0 2)'::geography As geog) As test; --------------------------- POINT(0 1.00015229710421)