QGIS에서 엔드 포인트가 약간 다른 라인 병합


22

QGIS에는 두 줄이 있습니다. 끝 점이 서로 가깝지만 정렬되지 않았습니다. 두 개의 끝 점이 중간 점으로 병합되어 두 줄을 하나로 바꾸고 싶습니다.

가장 가까운 것은 "선택한 기능 병합"입니다. 그것은 하나의 특징을 제공하지만 두 개의 분리 된 선으로 구성됩니다. 끝점 사이에는 선이 없습니다.

Illustrator의 패스 경로 결합 기능 (오브젝트> 경로> 결합)과 유사하게 작동하는 것을 찾고 있습니다.

QGIS가 그렇게합니까?

답변:


12

빠른 답변 : 아니요! 레이어에서 직접 해당 작업을 수행 할 수있는 툴은 없습니다 ( "Join Two Lines"플러그인에는 교차가 필요합니다).

라인을 포인트로 변환 (추출 노드) 한 다음 points2one (라인 출력)과 결합하여 매우 간단한 레이어를 만들 수 있지만 손으로 ​​편집하는 것보다 훨씬 느립니다.

  1. 선 레이어에 스냅 (Settings | Snapping 옵션 ...)이 켜져 있는지 확인하십시오 (5 픽셀이 나에게 적합 함).
  2. 한 끝점에서 다른 끝점으로 줄을 새로 만듭니다.
  3. 세 줄 (두 개의 원래 줄 + 새 줄)을 모두 선택하고 병합합니다 (편집 | 선택된 기능 병합 또는 도구 모음 버튼).

1
감사. 병합 할 줄이 몇 줄 밖에 없었기 때문에 빠르고 쉬웠습니다. (@Michael Markieta의 답변은 복잡한 상황에 더 적합한 것으로 보입니다.)
Evan

14

이를 QGIS와 GRASS의 조합으로 수행 할 수 있습니다.

  1. 벡터 레이어를 GRASS 맵셋으로 가져 오기 (Grass | File> Import Vector Data)
  2. QGIS에서 맵셋을 엽니 다 (QGIS | Plugins> GRASS> Open mapset)
  3. GRASS 맵셋에서 QGIS 프로젝트로 벡터 레이어 추가 (QGIS | 플러그인> GRASS> GRASS 벡터 레이어 추가)
  4. v.clean.snap 사용 (QGIS | 플러그인> GRASS> GRASS 도구 열기> 모듈 목록> v.clean.snap)

v.clean.snap '임계 값'을 조정하여 연구 영역 전체에 적절한 정점 스냅을 얻습니다.


10

두 선분을 한 선으로 결합하려고한다고 가정합니다. 여기에 이미지 설명을 입력하십시오

이것이 내가 한 방법입니다 ...

  • 편집을 가능하게합니다.
  • 스냅 켜기 (설정-> 스냅 옵션 ...) 여기에 이미지 설명을 입력하십시오
  • 노드 노드 도구를 선택하십시오.여기에 이미지 설명을 입력하십시오
  • 선 중 하나의 끝에 가까운 것을 두 번 클릭하여 노드를 추가하십시오. 여기에 이미지 설명을 입력하십시오
  • 끝에서 노드를 드래그하여 다른 선의 끝으로 스냅합니다 여기에 이미지 설명을 입력하십시오
  • 두 줄 모두 선택
  • 속성을 병합합니다 (서로 다른 속성을 가진 경우 열을 한 줄로 만들 수 없습니다).여기에 이미지 설명을 입력하십시오
  • 두 기능을 병합여기에 이미지 설명을 입력하십시오

한 줄로 표시됩니다. 여기에 이미지 설명을 입력하십시오


다 괜찮아 그러나 22,000 라인의 데이터 세트는 어떻습니까? 이 작업을 수동으로 수행 할 수 없습니다 ...
FaCoffee


3

단일 기능이 단일 LINESTRING 대신 MULTILINESTRING으로 구성되어 있음을 의미하는 경우 Postgis 데이터베이스를 사용하는 경우이를 쉽게 수정할 수 있습니다.

update your_table set your_geo_column = ST_LineMerge(your_geo_column);

1 행만 수행하려면 WHERE id = your_row_id를 추가해야합니다.


2

또한 누군가 시도 할 수 있습니다 :

  1. .shp를 .dxf로 저장
  2. DraftSight로 .dxf 열기
  3. 폴리 라인 부품 결합
  4. qgis로 .dxf를 다시 열고 .shp로 저장
  5. 벡터 메뉴에서-> 형상 도구-> 다각형에서 선으로

2

방금 위의 tnagel에서 언급 한 플러그인 Join Multiple Lines 플러그인을 사용하여 QGIS 3.4.0에서이 작업을 수행했습니다 (벡터 메뉴> Join Multiple Lines 아래 설치). 약 60 개의 트레일 라인 조각을 약 20 개의 트레일 라인으로 결합하는 데 효과적이었습니다. 조각이 많고 면적이 클수록 문제에 대한 결과를보아야 할만큼 실용성이 떨어집니다 (tnagel에 설명 된 문제 중 하나가있을 수 있음).

연결하려는 선을 선택하고 메뉴 항목을 클릭하면 연결됩니다 (원하는 수만큼 선을 선택할 수 있지만 ...). 마일이 1 마일 떨어져 있어도 직선이됩니다. 한쪽 끝을 다른 쪽 끝을 연결하는 끝까지 연결하십시오. 끝이 충분히 가까워 졌는지 확인하십시오. 결과에 만족할 것입니다 (나는 다른 게시물의 끝을 사용하여 줄 끝을 마커로 표시했습니다. (속성> 심볼로지> 마커 라인 추가 및 심볼을 쉽게 볼 수있을만큼 크게 만들기> 라디오 버튼 "마지막 정점에서만"을 선택하십시오 (원하는 경우 다른 심볼이있는 다른 마커 라인을 추가하고 "먼저" 꼭짓점 만 ")).

또한 선은 분명히 방향이 될 수 있습니다. 따라서 (예를 들어) A 라인의 최남단이 B 라인의 최남단과 연결되지 않은 것을 지켜야합니다 (원치 않는 다른 긴 직선).

그런 일이 발생하면 고급 처리 도구 모음에서 "실행 취소"하고 "역선"을 사용하여 선의 방향을 한쪽 끝에서 다른 쪽 끝으로 넘길 수 있습니다 (선의 위치가 바뀌지 않고 선의 시작 부분 만 뒤집습니다) 줄 끝과 함께 연결 한 다음 다시 연결하십시오.

이것에 대한 좋은 점은 변경 사항 / 편집 내용이 기존 레이어에 저장되므로 결과를 새로운 모양 파일로 저장할 필요가 없다는 것입니다 (먼저 백업을 만드십시오).

QGIS의 핵심 및 플러그인 개발자가 수행 한 작업에 지속적으로 놀랐습니다. 똑똑한 건설적인 인간이 함께 일하기로 결정할 때 무엇을 할 수 있는지 보여줍니다. 고맙습니다!


0

OpenJUMP (Plus 에디션) 사용 :

  1. 파일> 파일 열기
  2. 플러그인> 토폴로지> 네트워크 토폴로지 정리 ...
  3. 새 레이어를 마우스 오른쪽 버튼으로 클릭 (고정) : 데이터 셋을 다른 이름으로 저장 ....

결과는 다음과 같습니다. 여기에 이미지 설명을 입력하십시오


0

필자의 경우 라인은 다른 레이어에 있고 다른 속성을 가졌습니다. 레이어를 mmqgis 와 병합 한 후 다음 단계에서 선 스냅 및 병합 기술을 사용하여 선을 병합했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.