QGIS에서 위치 (가장 가까운 거리)별로 점 및 선 레이어의 속성 결합


13

내 문제는 다음과 같습니다. 나는 라인 shp (대상 레이어)와 포인트 shp (조인 레이어)가 있습니다. 두 번째 것 (점 레이어)은 선과 가장 가까운 거리를 기준으로 선 레이어와 결합하려는 속성을 보유합니다. 점과 선이 교차하지 않습니다

ArcGIS 및 공간 조인 (일치 옵션 : 가장 가까운)을 사용하여이 작업을 수행 할 수 있지만 QGIS에서이 작업을 수행 할 수있는 방법을 모르겠습니다.


3
위치별로 참여를 수행하는 도구가 있지만 "가장 가까운"옵션이 없습니다. 해결 방법이 있는지 모르겠습니다. 일반적으로 누락 된 자주 사용하는 옵션 / 도구 개발을 지원하도록 평가하십시오. 또한 사용자가이 소프트웨어의 성장을 도울 수있는 방법이기도합니다.
Giovanni Manghi

답변:


8

나는 이것에 대한 '핵심'QGIS 기능이 없다고 생각합니다. 그러나 MMQGIS 플러그인을 설치하고 '허브 거리'도구를 사용하십시오. 포인트를 "소스 포인트"레이어로 선택하고 라인을 "대상 허브 레이어"로 선택하고 "출력 모양 유형"을 "라인-허브"로 설정하십시오. 가장 가까운 피처를 연결하는 선 모양 파일 (길이)을 제공합니다. 편리하게도 가장 가까운 기능의 ID를 속성 테이블에 추가합니다.

편집 / 설명 :이 방법은 선보다 점이 적거나 일대일 선간 상황 인 경우에 효과적입니다. 선보다 포인트가 많으면 문제가 복잡해집니다. '허브 거리'도구는 점과 선 중심 사이의 거리와 함께 'HubDist'로 선 피쳐의 ID를 'HubName'으로 점 속성 테이블에 추가합니다. 라인보다 많은 포인트가있는 경우 포인트의 각 서브 세트 (각 라인 허브에 연결된 여러 레코드) 내에서 각 라인에 가장 가까운 포인트 및 / 또는 원하는 세트를 가진 포인트를 결정하기 위해 추가 작업이 필요합니다. 라인에 결합 할 속성.


이것은 "줄"v "점"에 대한 사소한 편집에 따라 답변으로 표시되어야합니다.
Willy

1
"라인과 가장 가까운 거리"가 기준 인 경우 "허브 거리"는 올바른 도구가 아닙니다. mmqgis 코드는 허브 거리가 "허브"형상의 근사값을 사용한다는 것을 보여줍니다. 거리 계산 (mmqgis_distance)은 두 점을 매개 변수로 사용합니다. 다음은 mmqgis_library.py의 허브 지오메트리 근사를 수행하는 코드입니다 ( "feature.geometry (). boundingBox (). center ()"). 즉, 실제 형상 대신 형상 경계 상자의 중심이 사용됩니다. 따라서 "가장 가까운 거리"를 기준으로 사용하려면 GRASS v.distance 또는 NNJoin 플러그인이 더 적합합니다.
Håvard Tveite

5

GRASS v.distance 기능을 사용할 수 있습니다. QGIS에서는 GRASS 플러그인을 통해 기능에 액세스 할 수 있습니다 ( 처리 버전이 현재 작동하지 않습니다). NNJoin QGIS 플러그인은 간단한 대안이 될 수 있습니다.


3

NNJoin 플러그인은 결코 실망시키지 않았으며 큰 데이터 세트에서 잘 작동합니다 .

플러그인> 설치 : NNJoin> NNJoin> 입력 계층 및 결합 계층 선택> 결합을 클릭하십시오.

속성 테이블을 사용하여 새 출력 레이어의 결과를 검사하십시오. 경고 : 두 레이어 모두 동일한 공간 투영을 사용하고 있는지 확인하십시오. 그렇지 않으면 결과가 공백이됩니다.


2

2019 년에는 QGIS 3 잔지바르 도구 '가장 가까운 속성 가입'을 사용하여 가능할 수 있습니다. 이 도구를 사용하면 가장 가까운 기능을 찾고 선택한 속성을 결합 할 수 있습니다. 최대 거리와 최대 인접 이웃을 지정하는 경우 일대 다 조인을 수행 할 수도 있습니다.

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