Saya memiliki satu set poligon yang mewakili area yang luas, katakanlah lingkungan kota. Saya ingin mengidentifikasi area besar yang tumpang tindih di antara mereka.
Tapi ada masalah: kadang-kadang poligon ini akan tumpang tindih di sepanjang perimeter mereka (karena mereka digambar dengan sedikit presisi). Ini akan menghasilkan tumpang tindih yang panjang dan sempit yang tidak saya pedulikan.
Tetapi di lain waktu akan ada tumpang tindih besar poligon kuat, yang berarti area besar di mana poligon lingkungan saling tumpang tindih. Saya hanya ingin memilih ini.
Lihat gambar di bawah ini hanya tumpang tindih. Bayangkan saya hanya ingin memilih poligon biru di sudut kiri bawah.
Saya bisa melihat daerah, tetapi kadang-kadang yang sempit begitu lama mereka akhirnya memiliki area sebesar poligon biru. Saya sudah mencoba melakukan rasio area / perimeter, tetapi itu juga menghasilkan hasil yang beragam.
Saya bahkan sudah mencoba menggunakan ST_MinimumClearance
, tetapi kadang-kadang area yang luas akan memiliki bagian sempit yang melekat padanya, atau dua simpul yang sangat dekat.
Adakah ide pendekatan lain?
Pada akhirnya apa yang paling berhasil bagi saya adalah menggunakan buffer negatif, seperti yang disarankan oleh @Cyril dan @FGreg di bawah ini.
Saya menggunakan sesuatu seperti:
ST_Area(ST_Buffer(geom, -10)) as neg_buffer_area
Dalam kasus saya, unit adalah meter, jadi 10 m buffer negatif.
Untuk poligon sempit, area ini mengembalikan nol (juga, geometri akan kosong). Lalu saya menggunakan kolom ini untuk menyaring poligon yang sempit.