QGIS 3.0 포인트 클러스터 렌더러, 렌더링 순서 (z 순서)를 제어 할 수 있습니까?


19

QGIS 3.0.2 의 새로운 포인트 클러스터 렌더러 를 사용해 보았으며 클러스터링을 직접 수행하는 것보다 훨씬 쉽고 빠릅니다.

내가 의미하는 바를 보여주기 위해 STATS19 데이터와 30m 반경을 사용하는 에든버러의 교통 사고의 예가 있습니다.

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

가장 큰 클러스터가 더 작은 클러스터 앞에 그려 지도록 z 순서를 설정하는 방법을 알아낼 수 없습니다.

@cluster_size 변수를 알고 있습니다. 심볼의 크기를 조정하고 색상을 지정하는 데 사용하고 있습니다. 이를 위해 크기 및 색상 도우미를 사용하고 있습니다. 각 클러스터에서 텍스트를 제거하기 위해 글꼴 표시를 제거했습니다.

마커의 크기는 다음과 같이 정의됩니다.

coalesce(scale_exp(@cluster_size, 0, 50, 1, 200, 0.57), 0)

마커의 색상은 다음과 같이 정의됩니다.

coalesce(ramp_color('custom ramp',scale_linear( @cluster_size, 0, 50, 0, 1), '#000000')

내가 지금까지 시도한 것 :-

  • 상징 수준 -운이 없다; 변수 이름을 선택할 수 없습니다.
  • 레이어 렌더링> 제어 기능 렌더링 순서 를 선택하고 @cluster_size 를 정렬로 선택하십시오 . 효과가없는 것 같습니다.
  • @cluster_size 를 표현식으로 사용하는 점진적 스타일 이 작동하지 않습니다.

이것이 가능한지 아는 사람이 있습니까, 아니면이 특정 렌더러의 제한 사항입니까?

이 작업을 수행하는 다른 많은 방법 (버퍼 / 공간 조인, 플러그인)이 있다는 것을 알고 있지만 새로운 렌더러는 훨씬 빠릅니다. 아니면 분명한 것을 간과 했습니까? :)


속성 테이블의 순서를 고려하여 작동합니다. 아마도 가장 큰 것이 최신으로 렌더링되도록 오름차순으로 정렬합니까? '속성별로 기능 정렬'기능이없는 경우 MMQGIS 플러그인을 사용해보십시오 (qgis 3에 사용 가능한 경우)
Revo

@Revo에게 감사합니다. 속성 (Cluster Point 렌더러 포함)에서 크기를 조정하고 정렬하는 것이 가능하지만 한 가지 규모에서만 작동합니다. 클러스터 포인트 렌더러를 사용하여 확대 / 축소함에 따라 클러스터 크기가 동적으로 변경되므로 cluster_size를 사용하려고했습니다. MMQGIS (QGIS 3에서 사용 가능)를 살펴 보겠습니다.
Steven Kay

답변:


2

포인트 클러스터 구현은 이것을 기본적으로 허용하지 않는 것처럼 보입니다.

포인트 클러스터 렌더러를 고려하십시오. 본질적으로 렌더링시 포인트 데이터를 분석하고 클러스터하여 새로운 의사 레이어를 만듭니다. 이 계층은 사용자가 액세스 할 수 없습니다. 클러스터 포인트를 쿼리 할 수 ​​없습니다. @cluster_size 속성을 필드 계산할 수 없습니다 .

포인트 클러스터 렌더러는 제어 기능 렌더링 순서 ( QgsFeatureRequest :: OrderByClause)를 사용하여 소스에서 렌더 순서를 상속 하지만 속성 및 표현식을 사용하여 영리한 해결 방법을 사용할 수는 있지만 특정 순서 체계가 일관성이 보장되지는 않습니다.

예를 들어 렌더링 순서가 "위도"특성에 따라 오름차순 인 점 레이어를 고려하십시오. 더 북쪽 지점은 더 남쪽 지점 위에 렌더링됩니다. 포인트 클러스터 렌더러에는 새로운 기능에 대한 "위도"속성이 없지만 소스에서 해당 순서의 일부를 상속합니다. 원래 지점의 순서로 인해 더 남쪽에있는 클러스터가 더 북쪽에있는 클러스터 위에 렌더링되는 경우가있을 수 있습니다.


감사. 그것은 매우 명확한 설명이며, 또한 클러스터 된 포인트에서 속성을 계산할 수 있는지 여부, 즉 각 원래 포인트와 관련된 모집단의 합계에 대한 내 질문에 대답합니다. 분명히 .... 아직? 그래도 매우 유용한 기능입니다. 정적 방법으로도 (아직 다시는 잘하지 않기 때문에 코딩이 필요하지 않은) 일부 스마트 해결 방법으로이를 수행하는 방법에 대한 아이디어가 있습니까? 클러스터 렌더러가 수행하는 방식과 유사하게 포인트를 클러스터링하는 도구를 찾는 데 어려움을 겪고 있습니다.
dorakiara

일반적으로, 속성을 사용하여 '렌더링 기능 렌더링 순서'기능과 함께 클러스터 렌더러의 기능을 복제하여이 방법에 접근 할 수 있습니다. 대략적인 첫 번째 단계는 포인트 레이어를 버퍼링하고 버퍼링 된 다각형의 포인트를 포인트 레이어의 속성으로 계산하는 것입니다. 이 속성의 오름차순으로 렌더링 순서를 제어합니다. 약간 성가 시며 반드시 다른 규모로 작동하지는 않습니다.
CrystallineEntity

또한 @cluster_size 메소드를 'Control feature rendering order'기능에 노출시키는 기능 요청을 작성하는 것이 좋습니다.
CrystallineEntity
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.