QGIS Atlas 도구를 사용하여 학생 ‘스캐 터맵’을 작성하려고합니다. 215 개 학교에 대해 학교와 해당 학교에 다니는 학생들을 전시하십시오.
학교 계층은 적용 범위 계층이며 SCHNUM
(학교 번호) 값 에 의해 주도되고 있습니다. 이것은 제대로 작동합니다. 즉, 페이지를 올바르게 구동하는 것입니다.
그러나 SCHNUM
적용 범위 계층의 현재 기능에 해당하는 값 과 일치하는 다른 계층 (이 경우 학생 점 계층)의 기능 만 표시하려면 어떻게해야합니까?
또한 적용 범위 계층 (학교)을 ‘숨김’으로 전환하고 동일한 기술을 사용하여 중복 학교 계층의 현재 학교 만 표시하려고합니다.
를 사용하여 레이어 렌더링 규칙 설정을 사용하는 것을 암시 하는 프리젠 테이션이$atlasfeatureid
있지만 작동 방식을 알 수는 없습니다.
또한 이 작동을 보여주는 이 버그 추적기 페이지 를 찾았 지만 다시 데이터에서 작동하도록 할 수는 없습니다.
답변
실제로 원하는 것을 달성하려면 규칙 기반 심볼을 사용해야합니다.
표시하려는 규칙과 다른 모든 규칙을 작성해야합니다.
ELSE 규칙에서 심볼 확인란을 선택 취소하여 보이지 않게합니다.
커버리지 레이어에서 다른 기능 숨기기
현재 아틀라스 기능 만 표시하는 규칙은 다음과 같습니다.
$id = @atlas_featureid
참고 : @atlas_featureid 변수는 2.12 구문이라고 생각합니다. 2.8.x에서는 $ atlas_featureid라는 함수를 사용해야한다고 생각합니다.
현재 아틀라스 기능 외부의 기능 숨기기
레시피는 이전과 동일하며 다른 하나는 피처를 숨기고 다른 하나는 표시합니다.
특정 질문에 대해 SCHNUM이라는 공유 속성이있는 것 같습니다. 이 경우 규칙은 다음과 같습니다.
"Layers_field" = attribute (@atlas_feature, 'coverage_layer_field_name')
특별한 경우에 :
"SCHNUM" = attribute( @atlas_feature , 'SCHNUM')
SCHNUM의 차이점을 확인하십시오. 첫 번째는 큰 따옴표로 묶어 학교 코드를 저장하는 필드의 각 현재 레이어 지형지 물의 값을 나타냅니다. 작은 따옴표로 묶인 두 번째는 학교 코드를 저장하는 커버리지 레이어의 이름을 가진 문자열입니다.
참고 : 다시 @atlas_feature 변수는 “새로운”것이라고 생각하며 2.8.x에서는 $ atlas_feature 함수를 사용해야합니다.