Kapan saya harus menggunakan ST_Buffer?

8

Saya ingin tahu apa arti menggunakan operasi st_buffer. Dalam panduan referensi PostGIS hanya ada sintaks dan deskripsi singkat tentang operasi ini.

Bisakah Anda memberikan beberapa contoh untuk memahami keuntungan dari operasi ini?

fabrizio
sumber

Jawaban:

12

Seperti komentar @Underdark ST_Dwithin adalah cara yang disarankan untuk menemukan geometri di kejauhan. Dalam banyak sistem-gis lain, metode buffer adalah satu-satunya cara tetapi membangun buffer cukup mahal.

Tetapi ada kasus penggunaan lain ketika Anda perlu buffer. Salah satu alasannya adalah memvisualisasikan buffer. Jika Anda ingin menunjukkan area yang lebih dekat dari 100 meter dari jalan raya, maka Anda dapat membuat buffer.

Kasus lain adalah jika Anda ingin mendapatkan area 100 meter dari jalan raya untuk dipotong dari peta lain. Katakanlah Anda memiliki peta yang menunjukkan penggunaan areal dan Anda ingin menganalisis berapa banyak wilayah yang lebih dekat dari 100 meter dari jalan raya adalah hutan dan berapa banyak area pertanian. Kemudian Anda membuat buffer dan membuat persimpangan dengan peta penggunaan area.

Ada contoh di halaman 8-10 pada tutorial ini:
http://postgisonline.org/map.php?tutorial=mixed_examples.html

Nicklas Avén
sumber
1
Tautan terakhir tampaknya sudah mati.
Aaron
6

OpenGeo memberikan ringkasan ST_Buffer yang cukup bagus . Perhatikan kemampuan untuk melewatkan radius buffer negatif.

Fungsi buffer juga merupakan pekerjaan yang bermanfaat di sekitar waktu. Dengan melewati radius penyangga nol, Anda dapat membangun jejak kumpulan geometri atau "memperbaiki" geometri poligon yang tidak valid.

rec.thegeom
sumber
2

ummm untuk melakukan buffer? Hanya itu yang benar-benar dilakukannya.

Saya tidak akan menyebutnya deskripsi singkat http://www.postgis.org/documentation/manual-svn/ST_Buffer.html

Kasus penggunaan adalah jika Anda ingin memilih semua objek dalam satu tabel yang berada dalam 20m dari setiap objek di tabel lain.

Nathan W
sumber
4
Saya pikir disarankan untuk menggunakan ST_Distance untuk kasus penggunaan itu.
underdark
1
Tidak disarankan menggunakan ST_DWithin seperti yang disebutkan Nicklas. ST_Distance lambat karena tidak menggunakan indeks. ST_DWithin menggunakan indeks dan memiliki logika hubung singkat sehingga tidak harus sepenuhnya menghitung jarak untuk mengetahui jika 2 hal berada dalam jarak yang Anda tentukan. ST_Buffer seharusnya hanya digunakan untuk visualisasi
LR1234567
Saya membaca apa yang saya harapkan untuk dibaca, bukan apa yang ditulis :-)
Nicklas Avén