All Products
Search
Document Center

ApsaraDB RDS:ST_LineInterpolatePoint

Last Updated:Jun 25, 2025

Topik ini menjelaskan fungsi ST_LineInterpolatePoint, yang menginterpolasi titik pada lokasi tertentu dari objek LineString dan mengembalikan titik tersebut.

Sintaksis

geometry  ST_LineInterpolatePoint(geometry  aLinestring , float8  aFraction);
geography  ST_LineInterpolatePoint(geography  aLinestring , float8  aFraction);

Parameter

Parameter

Deskripsi

aLinestring

Objek LineString yang ingin Anda tentukan.

aFraction

Fraksi berdasarkan mana titik diinterpolasi ke dalam garis. Nilai parameter ini adalah angka floating-point dalam rentang 0 hingga 1.

Deskripsi

  • Fungsi ini mendukung objek 3D dan tidak menghapus koordinat z.

  • Fungsi ini mendukung koordinat m.

  • Jika sistem koordinat geografis digunakan, jarak antara titik dihitung berdasarkan jarak bola.

Contoh

  • Mendapatkan koordinat titik tengah dalam segmen garis tertentu.

    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)
  • Mendapatkan titik yang paling dekat dengan objek geometri pada sebuah garis.

    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)