View a markdown version of this page

ST_ LineInterpolatePoint - Amazon Redshift

Amazon Redshift tidak akan lagi mendukung penggunaan Python UDF setelah 30 Juni 2026. Kami akan mulai menegakkannya secara bertahap. Untuk informasi lebih lanjut tentang detail opsi akhir masa pakai dan migrasi Python, lihat posting blog yang diterbitkan pada 30 Juni 2025.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

ST_ LineInterpolatePoint

ST_ LineInterpolatePoint mengembalikan titik sepanjang garis pada jarak pecahan dari awal garis.

Untuk menentukan kesetaraan titik, ST_ LineInterpolatePoint beroperasi pada proyeksi 2D dari geometri input. Jika geometri input kosong, salinannya dikembalikan dalam dimensi yang sama dengan input. Untuk geometri 3DZ, 3DM, dan 4D, m koordinat z or adalah rata-rata m koordinat z atau dari segmen tempat titik berada.

Sintaksis

ST_LineInterpolatePoint(geom, fraction)

Argumen

geom

Nilai tipe data GEOMETRY atau ekspresi yang mengevaluasi ke GEOMETRY tipe. Subtipenya adalahLINESTRING.

fraksi

Nilai tipe data DOUBLE PRECISION yang mewakili posisi titik di sepanjang linestring untuk garis. Nilainya adalah pecahan dalam kisaran 0—1, inklusif.

Jenis pengembalian

GEOMETRYdari subtipePOINT.

Jika geom atau fraksi adalah null, maka null dikembalikan.

Jika geom kosong, maka titik kosong dikembalikan.

Nilai pengenal sistem referensi spasial (SRID) dari geometri yang dikembalikan adalah nilai SRID dari geometri input.

Jika pec ahan berada di luar jangkauan, maka kesalahan dikembalikan.

Jika geom bukan linestring, maka kesalahan dikembalikan.

Contoh

SQL berikut mengembalikan titik setengah sepanjang linestring.

SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.50));
st_asewkt ----------- POINT(5 5)

SQL berikut mengembalikan titik 90 persen dari sepanjang linestring.

SELECT ST_AsEWKT(ST_LineInterpolatePoint(ST_GeomFromText('LINESTRING(0 0, 5 5, 7 7, 10 10)'), 0.90));
st_asewkt ----------- POINT(9 9)