어이
나는 당신이 찾고있는 것이 특정 알고리즘이라고 생각하지 않습니다. 작업은 데이터 세트에 따라 매우 어렵거나 매우 간단 할 수 있습니다.
최소한 두 부분으로 문제를 나누어야합니다. 1) 더 많은 네트워킹 문제, 줄 문자열의 닫힌 고리를 찾는 방법입니다. 2) 닫힌 선 스트링을 다각형으로 표현
"선을 다각형으로 변환"하는 두 번째 부분은 다각형 / 선 스트링 표현보다 더 많은 형식에 의존합니다. 나는 다음을 의미합니다.
LINESTRING (1 1, 2 2)
LINESTRING (2 2, 2 1)
LINESTRING (2 1, 1 1)
:
POLYGON ((1 1,2 2,2 1,1 1))
선을 다각형으로 변환하고 있지만 당신이 말하는 것은 아닙니다. 더 어려운 부분이 처음입니다. 줄 스파게티가있는 경우 닫힌 줄 문자열로 주문하는 방법.
그 질문에 대한 대답은 많은 데이터 세트에 달려 있다고 생각합니다. 커크가 묻는 것처럼 선이 문제를 해결할 수 있는지 여부는 훨씬 큽니다. 모든 "라인 콜렉션"이 닫힌 라인 스트링의 일부라는 것을 알면 쉬워집니다. 그런 다음 줄을 잡고 다시 돌아올 때까지 길을 돌아 다니면서 위의 2 단계로 넘어갈 수 있습니다.
내 요점은 데이터 세트의 조건이 그것을 수행하는 방법에 대한 모든 규칙을 설정한다는 것입니다. 선 스트링의 스파게티에서 가능한 모든 다각형을 찾으려면 모든 교차점에 정점을 배치하고 가능한 모든 경로를 검색하는 데 관련된 많은 다른 알고리즘이 있어야한다고 가정합니다.
PostGIS에서이 함수는 ST_Polygonize 라고합니다.이 함수는
사용자가 지정한 선 스트링에서 가능한 모든 다각형을 만듭니다.
이것은 GEOS에 의해 수행되므로 GEOS 및 JTS 코드에서 알고리즘을 찾을 수 있습니다.
몇 가지 생각
/ 니클라스