Topik ini menjelaskan fungsi ST_LineInterpolatePoints, yang menginterpolasi titik pada satu atau beberapa lokasi tertentu dari objek LineString dan mengembalikan titik-titik tersebut.
Sintaksis
geometry ST_LineInterpolatePoints(geometry aLinestring , float8 aFraction , boolean repeat);
geography ST_LineInterpolatePoints(geography aLinestring , float8 aFraction , boolean repeat);Parameter
Parameter | Deskripsi |
aLinestring | Objek LineString. |
aFraction | Fraksi berdasarkan mana titik diinterpolasi ke dalam garis. Nilai parameter ini adalah angka floating-point dalam rentang 0 hingga 1. |
repeat | Menentukan apakah interpolasi ulang titik diperbolehkan. Nilai default: true. |
Deskripsi
Jika parameter repeat diatur ke True, fungsi ini menginterpolasi titik di setiap lokasi yang direpresentasikan sebagai fraksi sepanjang garis.
Jika hasilnya nol atau satu titik, fungsi ini mengembalikan hasilnya sebagai objek titik. Jika tidak, hasilnya dikembalikan sebagai objek MultiPoint.
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
Menghitung koordinat titik pada lokasi tertentu di segmen yang diberikan:
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) -- geography 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))Menginterpolasi titik dengan parameter repeat disetel ke False.
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)