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)