Tôi có một bộ đa giác đại diện cho các khu vực rộng lớn, nói các khu phố. Tôi muốn xác định các khu vực chồng chéo lớn giữa chúng.
Nhưng có một vấn đề: đôi khi các đa giác này sẽ chồng lên nhau dọc theo chu vi của chúng (vì chúng được vẽ với độ chính xác nhỏ). Điều này sẽ tạo ra các lớp phủ dài và hẹp mà tôi không quan tâm.
Nhưng những lần khác sẽ có sự chồng chéo lớn của đa giác mạnh, nghĩa là các khu vực rộng lớn nơi đa giác của một khu phố chồng lên nhau. Tôi chỉ muốn chọn những thứ này.
Xem hình dưới đây chỉ là sự chồng chéo. Hãy tưởng tượng tôi chỉ muốn chọn đa giác màu xanh ở góc dưới bên trái.
Tôi có thể nhìn vào các khu vực, nhưng đôi khi những khu vực hẹp quá dài, cuối cùng chúng có những khu vực lớn như đa giác màu xanh. Tôi đã cố gắng thực hiện tỷ lệ diện tích / chu vi, nhưng điều đó cũng mang lại kết quả hỗn hợp.
Tôi thậm chí đã thử sử dụng ST_MinimumClearance
, nhưng đôi khi các khu vực rộng lớn sẽ có một phần hẹp gắn liền với nó, hoặc hai đỉnh rất gần nhau.
Bất kỳ ý tưởng của phương pháp khác?
Cuối cùng, điều làm việc tốt nhất với tôi là sử dụng bộ đệm âm, như được đề xuất bởi @Cyril và @FGreg bên dưới.
Tôi đã sử dụng một cái gì đó như:
ST_Area(ST_Buffer(geom, -10)) as neg_buffer_area
Trong trường hợp của tôi, đơn vị là mét, vì vậy 10 m đệm âm.
Đối với đa giác hẹp, khu vực này trả về 0 (đồng thời, hình học sẽ trống). Sau đó, tôi đã sử dụng cột này để lọc ra các đa giác hẹp.