Cách chia hai đa giác xen kẽ bằng cách ghép trung bình của khu vực dùng chung (QGIS / python tạo hình)


9

Tôi có hai đa giác,

POLYGON ((- 5 -5, -5 5,5 5,5 -5, -5 -5)) POLYGON ((1 1, 1 7, 7 7, 7 1, 1 1))

và muốn chia đều chúng. Kết quả phải được phân chia dọc theo dòng được đánh dấu màu đỏ.

Tôi đang sử dụng qgis / python một cách dễ dàng và muốn làm điều đó bằng python.

LINE LINE (1 5,5 1)


4
Làm thế nào chung là vấn đề của bạn? Rõ ràng bạn có ý định một giải pháp để áp dụng cho nhiều hơn chỉ hai đa giác này. Những loại đa giác nào bạn suy ngẫm? Chính xác những gì bạn có nghĩa là "đồng đều"? Phải phân chia dọc theo một đoạn đường hoặc nó có thể dọc theo một số cung phi tuyến? Điều gì sẽ xảy ra trong trường hợp giao điểm đa giác bao gồm nhiều thành phần hoặc không được kết nối đơn giản? Đầu ra nên có dạng nào - nó có nên phân chia giao điểm, hoặc mỗi đa giác, hoặc có lẽ chỉ là đường phân chia?
whuber

1
Tôi đang làm việc với các đa giác không đều và muốn có hai đa giác không giao nhau. trong trường hợp này, đa giác ban đầu như đề cập và kết quả mong muốn là POLYGON ((- 5 -5, -5 5,1 5,5 1,5 -5, -5 -5)) POLYGON ((1 5, 1 7, 7 7, 7 1,5 1,1 5))
OLS

1
Vấn đề là khó khăn khi một hoặc cả hai đa giác có thể có vòng (nghĩa là không được kết nối đơn giản).
whuber

Câu trả lời:


5

Tôi đã sử dụng một cách tiếp cận với đa giác voronoi một lần. Tôi đã làm điều đó bằng tay và tôi chỉ có một ý tưởng mơ hồ về cách bạn có thể làm điều đó với hình dáng đẹp, nhưng đây là cách nó diễn ra.

Đầu tiên, bạn trích xuất các đỉnh của mỗi đa giác chồng chéo và tạo đa giác Voronoi từ chúng (vector> công cụ hình học> trích xuất các nút & vector> công cụ hình học> vononoi). Với hình dạng kết quả, bạn có thể vẽ đường phân chia khu vực chồng chéo của mình chính xác thành hai. (Đường màu xanh lá cây tươi sáng) voronoi

Bạn cắt lớp voronoi với đa giác chồng chéo và loại bỏ sự chồng lấp khỏi các hình dạng ban đầu và dán đa giác voronoi đã cắt lại với hình dạng ban đầu của bạn. Chọn, hợp nhất, voilà!

Bây giờ, nó trông hơi thô, bởi vì tôi là những hình dạng thực sự đơn giản. Nhưng, bạn tăng mật độ (Vector> công cụ Hình học> Hình học mật độ) và thêm 20 nút giữa mỗi đỉnh hiện có, bạn có thể có:

densigy_voronoi

Mà tốt hơn nhiều. Dễ dàng nếu bạn chỉ có một số lượng nhỏ hình dạng để sửa đổi.


Đây là một ý tưởng tốt. Nhưng dòng màu xanh lá cây tươi sáng đó đến từ đâu và làm thế nào để bạn biết nó chia khu vực thành hai phần bằng nhau?
whuber

quá trình này khác nhau như thế nào so với `CHỌN astext (giao điểm (geomFromText ('POLYGON ((- 5 -5, -5 5,5 5,5 -5, -5 -5))', 4326), geomFromText ('POLYGON ( (1 1, 1 7, 7 7, 7 1, 1 1)) ', 4326))); astext -------------------------------- POLYGON ((1 5,5 5,5 1,1 1,1 5 ) '?
OLS

Nó xuất phát từ sự sở hữu của đa giác voronoi. Nó phân chia không gian đồng đều giữa các điểm. Đó là lý do tại sao bạn phải tăng cường đa giác của mình bởi vì nếu không, đường "giữa" không đi theo ranh giới. Đối với đường sáng, tôi vẽ nó bằng tay để minh họa vị trí ở giữa ... Đối với lệnh PostGIS (Tôi là người mới trong PostGIS), tôi nghĩ rằng nó sẽ chỉ chọn khu vực giao nhau, không phân chia khu vực đó.
fgcartographix

1
Có nói rằng, tôi đã không nói rằng nó sẽ là một phần bằng nhau. Phương pháp đó được sử dụng để tìm đường trung tâm sông. Nếu bạn có một vịnh trên sông, đường giữa sẽ được kéo về phía đó. nhưng nó sẽ không nhập nó vì vậy làm cho nó "tập trung" dù sao.
fgcartographix
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.