QGIS에서 가장 가까운 지점에서 속성을 결합 하시겠습니까?


29

포인트가있는 두 개의 레이어가 있습니다. 각각 다른 속성을 가진 A와 B라고합니다.

AI의 각 포인트에 대해 B에서 가장 가까운 포인트의 모든 속성을 결합하려고합니다.

이상적으로는 두 지점 사이의 거리를 측정하는 필드도 포함됩니다.

ArcGIS에서이를 수행하는 방법을 알고 있습니다. 레이어 A> 결합 및 관련> 결합을 마우스 오른쪽 버튼으로 클릭 한 다음 공간 위치를 기준으로 데이터를 결합하고 가장 가까운 지점에서 속성을 결합하도록 선택하십시오.

QGIS에서 유사한 기능을 찾을 수 없습니다. 어떤 포인터?

답변:


26

"거리 매트릭스"를 사용하면 가장 가까운 점을 계산할 수 있습니다. 두 레이어가 모두 같은 CRS에 있는지 확인하십시오! 그런 다음 결과를로드하고이를 사용하여 테이블 A와 B를 조인 할 수 있습니다.

"거리 매트릭스"에서 "선형 거리 매트릭스"를 선택하고 "가장 가까운 k 개의 목표점 만 사용 : 1"

여기에 이미지 설명을 입력하십시오

"벡터 레이어 추가"를 사용하여 CSV를로드하고 레이어 A의 레이어 속성-결합 탭에서 레이어를 결합하십시오.

여기에 이미지 설명을 입력하십시오

그리고 결과 :

여기에 이미지 설명을 입력하십시오


거리 행렬을 사용하여 한 레이어 내에서 점 사이의 거리를 유지하려면 알려진 문제로 인해 k = 2로 변경해야합니다. hub.qgis.org/issues/4761
Celia

1
@underdark이 솔루션은 더 이상 작동하지 않는 것 같습니다. matrix.csv를 만들어 첫 번째 레이어에 연결할 수 있습니다. 이 예에서는 매트릭스의 TargetID를 기반으로 두 번째 레이어를 첫 번째 레이어에 연결하는 두 번째 조인을 추가했습니다. 그러나 가입 된 필드는 대화 상자에 표시되지 않으므로 TargetID를 선택할 수 없습니다. 물론 먼저 레이어로 save_를 저장 한 다음 두 번째 조인을 수행 할 수 있습니다.
Bernd V.

13

NNJoin 플러그인 작업을 수행해야합니다. 입력 레이어의 각 피처에 대해 결합 레이어에서 가장 가까운 피처의 모든 속성을 추가하고이 피처까지의 거리와 함께 거리 속성을 추가합니다.


완벽하게 작동합니다. 허용 된 답변보다 빠릅니다. 2011 년부터 수락 된 답변에 유의하십시오.
juminet

적어도 오늘은 받아 들인 대답보다 훨씬 낫습니다. 훨씬 더 빠릅니다.
cag

4

"B"레이어에서 단일 속성을 결합하여 살 수 있다면 mmqgis 플러그인 에서 "허브 거리"도구를 살펴보십시오 .

나머지 "B"특성이 필요한 경우 나머지 "B"특성을이 계층에 다시 결합 할 수 있어야합니다.

원하는 경우 A에서 B까지 선을 선택적으로 생성 할 수도 있습니다. 이것은 연관된 피처 사이의 거리와 방향을 시각화하는 데 도움이됩니다.


0

refFunctions 플러그인을 사용하는 또 다른 접근법 .

(1) 샘플 데이터 세트

여기에 이미지 설명을 입력하십시오

(2) 더 많은 기능을 가진 레이어의 속성 테이블을 엽니 다 ( points_b이 예에서는 레이어). 새로운 필드를 만듭니다.

  • 다른 레이어의 ID 필드 : geomnearest('points_a', 'id_a')
  • 감지 된 쌍의 거리 필드 : geomnearest('points_a', '$distance')

여기에 이미지 설명을 입력하십시오


-6

사용 QGIS 1.7은 벡터> 데이터 관리> 위치 별 특성에 참여

여기에 이미지 설명을 입력하십시오


3
나는 이것도 생각했지만 그것을 테스트 할 때 점 다각형과 같은 정확한 일치에 대해서만 작동했습니다. 다른 지점 과 가장 가까운 지점을 찾지 못했습니다 . v1.7에서 테스트
RyanDalton

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