Câu hỏi của tôi khá liên quan đến sự trùng lặp Chia không được trả lời giữa các đa giác thành các tập hợp rời rạc trừ khi tôi không sử dụng shapely
, tôi đang sử dụng PostGIS 2.4 trên PostgreQuery 10.
Tôi có một bảng chứa nhiều bộ dữ liệu cho các đơn vị hành chính. Các hình học chỉ bao gồm diện tích đất. Mục tiêu của tôi là kéo dài chúng một khoảng cách nhất định xuống nước.
Để mở rộng các đa giác hiện tại vào trong nước, tôi thực hiện một bộ đệm theo sau bằng cách trừ tất cả các hình học khác trong bảng. Điều này cắt bộ đệm trong đó hình học có hàng xóm và giữ lại bộ đệm nơi lớp hiện không có gì. Vì vậy, một cái gì đó như:
SELECT c1.name
, ST_Difference( ST_Buffer( ST_Union(c1.geom), 250 )
, (SELECT ST_Union(c2.geom)
FROM foo.county AS c2
WHERE c2.name <> c1.name)
)
FROM foo.county AS c1
GROUP BY c1.name;
Tuy nhiên, điều này tất nhiên mang lại cho tôi bộ đệm chồng chéo trong đó hai đa giác gặp nhau ở mép nước, cũng như trên các eo hẹp:
(Lưu ý rằng mảnh màu tím nhỏ ở bên trái phải được gán hoàn toàn cho đa giác màu đỏ, vì không có điểm nào trong hình học đó gần với màu xanh hơn màu đỏ do bán đảo giống như phụ lục.)
Đây là nơi tôi bị mắc kẹt. Tôi muốn cắt các phần chồng chéo (các phần màu tím) thành hai đa giác rời rạc dọc theo một đường thẳng tương đương với các đa giác không có bộ đệm, và sau đó trừ đi các phần tử từ các hạt được đệm.
Tôi không nghĩ rằng tôi có một trường hợp có ba hoặc nhiều bộ đệm chồng chéo. Tôi sẽ đi qua cây cầu đó nếu và khi tôi đến đó.
Nó có mùi đối với tôi giống như một cái gì đó tương tự nhưng không hoàn toàn giống với việc sử dụng ST_VoronoiPolygons
nhưng xung quanh các đa giác thay vì các điểm.
Điều này có tồn tại hay không - lý tưởng - như các chức năng của PostGIS, như chức năng xử lý địa lý của QGIS hoặc có thể trong một số thư viện python?
ExteriorRing
và Intersects
nhưng không có thời gian để thực hiện nó trong các ngày lễ.