Insere um ou mais pontos em posições especificadas de uma LineString e retorna os pontos inseridos.
Sintaxe
geometry ST_LineInterpolatePoints(geometry aLinestring , float8 aFraction , boolean repeat);
geography ST_LineInterpolatePoints(geography aLinestring , float8 aFraction , boolean repeat);
Parâmetros
|
Parâmetro |
Descrição |
|
aLinestring |
Objeto LineString de destino. |
|
aFraction |
Fração ao longo do segmento de linha onde o ponto é inserido. Valor de ponto flutuante entre 0 e 1. |
|
repeat |
Defina se os pontos são inseridos repetidamente. Valor padrão: true. |
Descrição
Se repeat for true, um ponto é criado em cada distância especificada.
Se o resultado contiver zero ou um ponto, a função retorna um Point. Caso contrário, retorna um MultiPoint.
Esta função oferece suporte a objetos 3D e preserva a coordenada Z.
Esta função também oferece suporte a coordenadas M.
Em sistemas de coordenadas geográficas, o cálculo baseia-se na distância esférica.
Exemplos
-
Calcule as coordenadas do ponto em uma fração específica do segmento de linha fornecido:
SELECT ST_AsText(ST_LineInterpolatePoints('LINESTRING(0 0,0 5)', 0.20)); st_astext --------------------------------- MULTIPOINT(0 1,0 2,0 3,0 4,0 5) (1 row) -- gepgraphy SELECT ST_AsText(ST_LineInterpolatePoints('LINESTRING(0 0,0 5)'::geography, 0.20)); st_astext ------------------------------------------------------------------------------------------------------- MULTIPOINT((0 1.00002443285827),(0 2.00004274948544),(0 3.00004884128919),(0 4.00003661494431),(0 5)) -
Sem inserção repetida:
SELECT ST_AsText(ST_LineInterpolatePoints('LINESTRING(0 0,0 5)', 0.20, false)); st_astext ------------ POINT(0 1) (1 row) SELECT ST_AsText(ST_LineInterpolatePoints('LINESTRING(0 0,0 5)'::geography, 0.20, false)); st_astext --------------------------- POINT(0 1.00002443285827) (1 row)