Todos os produtos
Search
Central de documentação

ApsaraDB RDS:ST_LineInterpolatePoint

Última atualização: Aug 20, 2026

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)