2012-03-17 3 views
5

나는 디지털화하여 벡터 레이어 (하천 전용)로 변환 한지도가 있습니다. 문제는 벡터화가 각 강마다 많은 수의 세그먼트를 생성했는데, 서로 다른 피쳐로 나타납니다 (각각 여러 개의 직선 세그먼트를 가질 수 있지만 전체 하천을 포함하지는 않음). 내가 찾고있는 것은 극한이 주어진 거리 내에있는 모든 세그먼트를 하나의 피쳐 (폴리 라인, 아마도)로 병합하는 도구입니다. QGis와 GRASS 플러그인을 사용하고 있습니다. 나는 v.clean.snap, v.build.polylines를 시도했지만 아직 실제로는 병합하지 않았다. 어떤 도움을 주시면 감사하겠습니다!여러 라인 세그먼트를 하나의 라인으로 결합 - GIS

+2

강마다 하나의 공통 ID가 있습니까? – Simbamangu

+0

Q : Q : "merge"와 "groub-by"는 원본이 충분하고 충분할 때 질문 제목에 다소 사소한 수정점이있는 것처럼 보입니다. –

답변

3

수동으로 선 부품을 선택한 다음 고급 편집 도구 모음에있는 "병합"도구를 사용하는 것이 좋습니다.

또한 http://gis.stackexchange.com

+1

고마워요.하지만 몇 백 가지의 그런 상황이 있습니다. 그리고 나는 133 개의 맵을 반복해야합니다. 나는 이것을 위해 플러그인을 실제로 얻어야한다고 생각합니다. 내가 어디에서 볼 수 있는지 제안 해 주시겠습니까? – LittleFish

-3

당신은 "용해"도구 (ARC 도구 상자)를 사용할 수 있습니다에서 같은 질문을 통해 문의 할 수 있습니다. 이것들을 모두 하나의 세그먼트로 병합합니다.

그런 다음 교차점 인 노드 (일반) 만 내보낼 수 있습니다.

그런 다음 노드와 해체 된 선 피쳐를 분할 할 수 있습니다. 그러면 최소한 교차점에서만 벡터 피쳐가 분할됩니다.

적어도 한 걸음 더 나아갑니다.

+2

왜 모든 대문자? – dove

+1

OP가 QGIS 솔루션을 요청했으며 ArcGIS를 언급하는 것으로 보입니다. – radek

4

프로그래밍 언어로 GEOS 라이브러리를 사용하거나 명령 줄을 사용하여이를 수행 할 수 있습니다. 주의

require(rgdal) 
require(rgeos) 
lines <- readOGR("f:/dir", "itineraris") 
# grouping line features by lines$ITINERARI 
lines2 <- gLineMerge(lines, byid = lines$ITINERARI, id = lines$ITINERARI) 
writeOGR(lines2, "f:/dir", "itineraris_merged", driver="ESRI Shapefile") 

: 내 경우에는, 내가 rgeos 라이브러리를 사용하여, R에서 그 일을 한 documentation의 노트에서 "구체적으로는 엔드 포인트를 교차하여 선 세그먼트를 조인"그것은 그 라인 기능을 보인다 연속적이어야합니다. 그러나 ID로 병합 할 때도이 방법이 적용되는지 여부는 명확하지 않습니다. 당신은 Roadgraph 플러그인 (최단 경로) 또는 PointsToRoute 스크립트를 사용할 수 있습니다

:이 질문에 걸림돌 다른 사람들을위한

1

. 양쪽 끝에서 점을 선택하거나 (점 2 경로의 경우 여러 경로에서 지정하기 위해 추가 점을 추가 한 후) 자체 레이어로 내보낼 수 있습니다.

133지도가 간다면 ... 나는 유사한 튼튼한 상황을 위해 PointsToRoute 스크립트를 수정하여 라인 레이어를 자동으로 탐색하고 끝점 사이의 경로를 찾습니다. 나는 그것을 정리하고 내가 곧 github에 게시 할 수 있는지 알아 보겠습니다.

PointsToRoute : https://github.com/anitagraser/QGIS-Processing-tools/blob/master/1.1/scripts/points_to_route.py

ShortestPath (Roadgraph) : 이는 QGIS 플러그인 관리자에 의해 사용할 수 있습니다. 최신 버전의 QGIS에서는 플러그인이 자체를 "최단 경로"로 지칭하고 있음에도 불구하고 Vector->RoadGraph -> 설정 메뉴로 구성됩니다. 다른 사람에게 도움이 될 수

1

매우 늦게 답 :

나는 동일한 문제에 직면하고 나는 그것을 해결하기 위해 QGIS 플러그인을 개발했다. 연결된 여러 줄을 자동으로 병합합니다 (예 :끝점을 공유하는 줄)을 더 긴 줄 집합으로 변환합니다. 출력 레이어 유형은 PolyLine이 아닌 Line입니다. 병합은 다음 두 가지 기준 중 하나를 기반으로 할 수 있습니다.

  • 길이 : 세그먼트가 가장 긴 이웃에 병합됩니다.
  • 정렬 : 세그먼트가 가장 잘 정렬 된 인접 항목에 병합됩니다. 이 기준은 하천 네트워크에 가장 적합하다고 생각합니다.

이 플러그인은 MergeLines가 (full documentation here), 공용 QGIS의 REPO에서 찾을 수라고합니다. 작업이 아직 진행 중입니다. 새로운 기능을 제안하는 것을 망설이지 마십시오.

관련 문제