공유 영역의 평균 선 스트링으로 두 개의 교차 다각형을 분할하는 방법 (QGIS / 파이썬 모양)


9

두 개의 다각형이 있는데

폴리곤 ((-5-5, -5 5,5 5,5-5, -5-5)) 폴리곤 ((1,1 7,7 7,7 1,11))

그것들을 골고루 나누고 싶습니다. 결과는 빨간색으로 표시된 선을 따라 분할되어야합니다.

qgis / python을 매끄럽게 사용하고 있으며 파이썬을 사용하여하고 싶습니다.

LINESTRING (1 5,5 1)


4
문제가 얼마나 일반적입니까? 분명히이 두 가지 이상의 폴리곤에 솔루션을 적용하려고합니다. 어떤 종류의 다각형을 생각하십니까? 정확히 "균등"이란 무엇을 의미합니까? 분할이 선 세그먼트를 따라야합니까, 아니면 비선형 호를 따라야합니까? 다각형 교차가 여러 구성 요소로 구성되거나 단순히 연결되지 않은 경우 어떻게됩니까? 교차점 또는 각 다각형을 분할해야합니까, 아니면 분할 선이어야합니까?
whuber

1
불규칙한 다각형으로 작업 중이며 두 개의 교차하지 않는 다각형을 원합니다. 이 경우 언급 한 원래 다각형과 원하는 결과는 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
다각형 중 하나 또는 둘 다에 고리가있을 수있는 경우 (즉, 간단하게 연결되지 않은 경우) 문제가 발생합니다.
whuber

답변:


5

나는 보로 노이 다각형으로 한 번 접근을 사용했습니다. 나는 그것을 직접 손으로했다 나는 당신이 매끈하게 그것을 할 수있는 방법에 대한 모호한 생각을 가지고 있지만, 여기에 어떻게 진행되는지가 있습니다.

먼저 겹치는 각 다각형의 정점을 추출하고 그로부터 Voronoi 다각형을 만듭니다 (벡터> 지오메트리 도구> 노드 추출 및 벡터> 지오메트리 도구> vononoi). 결과 모양을 사용하면 겹치는 영역을 정확히 2로 나누는 선을 그릴 수 있습니다. (밝은 녹색 선) 보로 노이

겹치는 다각형으로 보로 노이 레이어를 자르고 원래 모양에서 겹침을 제거하고 잘린 보로 노이 다각형을 원래 모양으로 다시 붙여 넣습니다. 선택하고 합치십시오!

광산은 정말 단순한 모양이기 때문에 조금 조잡 해 보입니다. 그러나 밀도를 높이고 (벡터> 지오메트리 도구> 밀도 지오메트리) 각 기존 정점 사이에 20 개의 노드를 추가하면 다음과 같이 할 수 있습니다.

densigy_voronoi

훨씬 낫다. 적은 양의 모양 만 수정하면 쉬워집니다.


이것은 좋은 생각입니다. 그러나 그 밝은 녹색 선은 어디에서 왔으며 어떻게 그 지역이 두 개의 동일한 부분으로 나뉘는지 아는가?
whuber

이 프로세스가`SELECT astext (intersection (geomFromText ( 'POLYGON ((-5-5,5 5,5 5,5-5,5-5))', 4326))와 다른 점은 geomFromText ( 'POLYGON ( (11, 1 7, 7 7, 7 1, 11)) ', 4326))); astext -------------------------------- POLYGON ((1 5,5 5,5 1,1 1,1 5) ) '?
OLS

보로 노이 다각형의 특성에서 비롯됩니다. 점 사이의 간격을 균등하게 나눕니다. 그렇기 때문에 "중간"선이 경계를 따르지 않기 때문에 다각형의 밀도를 높여야합니다. 밝은 선은 중간이 어디에 있는지 설명하기 위해 수동으로 그립니다 ... PostGIS 명령 (PostGIS의 초보자)은 교차 영역 만 선택하고 분할하지는 않을 것이라고 생각합니다.
fgcartographix

1
그렇게 말하면서, 나는 그것이 동등한 부분이 될 것이라고 말하지 않았습니다. 이 방법은 강 중심선을 찾는 데 사용됩니다. 강에만이 있으면 중간 선이 강을 향해 당겨집니다. 그러나 입력되지 않으므로 "중심"이됩니다.
fgcartographix
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.