QGIS에서 선택한 기능 만 맵에 표시합니까?


30

이 옵션이 존재하는지 확실하지 않지만 새로운 QGIS 버전은 다른 곳에서 많은 것을 숨기고 너무 간단 해 보이므로 이전에이 작업을 수행 할 수 있다고 확신했습니다.

선박 트랙으로 상당히 큰 데이터 세트가 있습니다. 이제 개별 선박 트랙 (point2one으로 포인트 레이어로 만든)을 분석하려고하지만 개별 트랙을보기가 어렵습니다. 각 단일 트랙을 새 레이어로 저장하고 싶지 않으므로 속성 테이블에서 하나의 트랙을 선택하고 해당 트랙 만 맵에 표시하거나 다른 트랙을 숨길 수 있는지 궁금합니다.

답변:


33

Kadeem의 답변으로 지형지 물을 볼 수는 없지만 기능이 계속 표시됩니다. 개별 선박 트랙을 식별하려는 경우 실수로 보이지 않는 지형지 물을 클릭 할 수 있습니다. 당신이해야 할 것처럼 보이는 것은 레이어가 그러한 기능이 존재하지 않는 것처럼 정의하는 것입니다. ArcGIS에서 이것은 일반적으로 정의 쿼리를 사용하여 수행되며, QGIS에서 동등한 명령은 Layer Subset입니다. 레이어의 속성으로 이동 한 다음 일반 탭에서 맨 아래에 기능 하위 집합 상자가 있고 아래의 버튼을 클릭하여 쿼리 작성기를 불러옵니다.

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

쿼리 빌더는 SQL 쿼리를 생성하여 레이어에서 실제로 프로젝트에 표시 할 기능을 정의하는 데 도움을줍니다. 쿼리에서 반환하지 않은 기능은 시각적으로 만 전체적으로 보이지 않게됩니다 (물론 데이터에서 삭제되지는 않으며 레이어 하위 집합 쿼리를 제거 할 때까지는 존재하지 않는 것으로 정의 됨).


Dan 고마워 !!! 이것은 내가 찾던 것입니다. 원하는 것보다 조금 더 복잡하지만 트릭을 수행합니다! 매우 도움이되었습니다. 감사합니다!
Kristina

그 답을 찾았습니다. 좋은 팁 댄!
kadéem

기묘한. 얼마 전에 나는 이것을했고 효과가있었습니다. 이제 다른 레이어에서 다시하고 싶습니다. 기능 하위 세트 상자와 QueryBuilder 버튼이 회색으로 표시됩니다! 어떠한 제안???
Patrick Van Den Noortgaete

해결되었지만 그 이유는 명확하지 않습니다. 내가 만든 변경 사항을 저장 한 다음 QueryBuilder 버튼 ... 가능하게되었다
패트릭 반 덴 Noortgaete

1
@SimoA. 데이터가 Excel에있는 경우 데이터를 필터링하고로 변환 VALUE할 새 필드를 추가 한 'VALUE',다음 IN 쿼리를 사용하여 해당 필드를 쿼리 상자에 복사하여 붙여 넣을 수 있습니다.
Dan C

15

이제 선택과 규칙 기반 심볼 만 사용하면 가능합니다.

이를 위해서는 Expression Plus 플러그인이 필요합니다 (QGIS 2.x. 3.0의 경우 기능이 내장되어 있음).

다음 필터를 사용하여 규칙 기반 기호를 만듭니다.

QGIS 3.0 이상 (주석 전문가)

is_selected()

QGIS 2.12-2.18 :

isselected( @layer_name )

또는 QGIS 2.8 :

isselected( 'ACTUAL_NAME_OF_LAYER' )

이제이 규칙을 충족하는 선택된 기능 만 표시됩니다.

선택되지 않은 모든 기능에 대해 ELSE 규칙을 가질 수도 있습니다.

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


1
이것이 바로 내가 찾던 것입니다-이 답변에 감사드립니다
geobar

HeikkiVesanto,이 필터를 어디에 삽입합니까?
newGIS

사진을 추가했습니다.
HeikkiVesanto

1
QGIS 2.18.14를 사용하면 효과가있는 표현식이 선택됩니다 ( 'layer_name'). (@layer_name)을 사용하면 0 개의 결과가 반환되었습니다.
Techie_Gus

2
QGIS 3에서와 내장되어이 기능 이상. 당신은 아래에서 찾을 수 있습니다 Record and Attributes에서 Expression String Builder. 또한 레이어 이름을 더 이상 넣을 필요가 없으며 is및 사이에 밑줄을 긋는 것을 잊지 마십시오 selected. 다음은 QGIS 3 이상에 대한 예입니다 is_selected()..
Thequerist

12

크리스티나, 테이블에 하나의 트랙을 식별 할 수있는 속성이 있다고 가정합니다. 예를 들면 다음과 같습니다.

  point_id  |  track_id
------------+------------
     1      |     15
     2      |     15
     5      |     24
     6      |     24
     7      |     24

속성 테이블을 열면 엡실론 기호 (아래 그림에서 네 번째 기호)를 찾을 수 있습니다.

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

이를 통해 표현식을 입력 할 수 있습니다. 예를 들면 다음과 같습니다.

"track_id" = 24

확인하면 식을 만족하는 모든 행 (즉, track_idX 가있는 트랙에 속하는 모든 점 )이 선택됩니다. 그런 다음 돋보기 버튼을 클릭하면 QGIS가 맵 캔버스에서 선택한 항목을 확대 / 축소합니다. 선택한 기능 (귀하의 포인트)이 강조 표시됩니다.


할 수있는 것은 규칙 기반 스타일을 적용하는 것입니다. 따라서 주어진 기호 또는 마커를 사용하여 개별 선박 트랙을 표시하고 다른 모든 지점에 '보이지 않는'마커를 제공하여 '표시하지 않을'수 있습니다. 아래 스크린 샷 (레이어 속성의 일부)은 작동 방식을 설명합니다.

  • 규칙 1 : 주어진 마커를 24의 값을 갖는 모든 포인트에 적용 track_id
  • 규칙 2 : 주어진 마커 (흰색 채우기 및 흰색 테두리가있는 원 ...)를 track_id24 의 값을 만족시키지 않는 모든 점에 적용

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

실제로 모든 점이 여전히 남아 있지만 (흰색으로 만들면 렌더링 시간이 단축되지는 않지만) 최소한 눈은 긴장을 풀 수 있습니다!


답변 Kadeem 주셔서 감사합니다! 선택 기능을 알고 있으며 잘 작동하지만 문자 그대로 작은 영역에 500,000 점이 있으며 찾고있는 트랙을 강조 표시하는 것만으로는 충분하지 않습니다.지도가 여전히 너무 혼잡하고 혼란 스럽습니다. 선택되지 않은 모든 포인트 또는 이와 유사한 것을 차단할 가능성이 있는지 알고 있습니까?
Kristina

2
줄 아래에 다른 옵션으로 답변을 편집했습니다. 나는 이것이 당신을 도울 것이라고 생각합니다.
kadéem

Kadeem, 이것은 매우 간단하지만 효과적입니다. 좋은 생각입니다. 감사합니다!
Kristina
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.