여러 속성을 기반으로 QGIS에서 포인트 스타일을 지정하는 방법


13

지진이 발생하는 유용한 방법을 찾으려고 노력하면서 관리가 쉽지 않다는 것을 알게되었습니다.

포인트의 스타일에서 "Magnitude", "Date"및 "Depth"를 인식하고 싶습니다. 다음과 같은 것 :

  • 크기 : 규모에 따라
  • 깊이 : 기본 색상 (예 : <15 빨강, 15-30 노랑,> 30 파랑)
  • 날짜 : 100 % 색상에서 흰색 / 흰색으로 음영 처리되는 색상의 강도

수십 개의 규칙을 정의하지 않고 그렇게 할 수있는 방법이 있습니까?

답변:


14

규칙 기반 레이블을 사용하지 않는 이유는 무엇입니까? 속성 데이터를 기반으로 여러 그라디언트에 범주를 사용하면 작업을 훨씬 쉽게 수행 할 수 있습니다. 규칙 기반 레이블에서 범주를 사용하는 관점에서 QGIS의 시장 이점 중 하나입니다.

데이터에 대해 (구조를 모르고) 다음 워크 플로를 권장합니다.

  • 분류되거나 점으로 구분 된 점 스타일러 (흰색 또는 회색 스타일)를 통해 날짜-값에 대한 규칙 기반 단순 그라디언트를 만듭니다 .
  • "고급"및 "크기 조정 된 필드"를 클릭하여 점의 크기를 조정하십시오. 포인트 의 크기 를 선택하십시오 . 결과 스타일을 SLD 스타일로 저장하십시오!
  • 규칙 기반 레이블링으로 이동하여 SLD를로드하고 깊이 에 대한 선호도의 색상 그라디언트가있는 카테고리 (또는 범위)를 마우스 오른쪽 버튼으로 클릭하여 각 데이터 포인트마다 추가 하고 각 규칙 세트에 적용하십시오.

이와 같이 (카테고리의 규칙에 카테고리를 만들 수도 있습니다 ;-)) : 여기에 이미지 설명을 입력하십시오

  • 나중에 렌더링 순서를 조정하고 점의 크기를 제어하는 ​​것을 잊지 마십시오.

이 솔루션은 사이트의 일부 노력 (마우스 클릭)에 의존하지만 결국 아름다운지도는 항상 노력할 가치가 있음을 이해합니다.



4

QGIS 2.8 용으로 업데이트

다음과 같은 데이터를 가정 :

id | magnitude | date | depth
 1 |     4     | 1912 |  100
 2 |     3     | 1932 |   85

데이터 정의 스타일을 사용하여 크기 필드로 제어 할 크기를 설정하십시오.

날짜와 깊이로 정의 된 색상의 경우 다음 표현식을 사용할 수 있습니다

CASE 
  WHEN depth < 15 
       THEN color_hsl(1, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 15 AND depth < 30 
       THEN color_hsl(60, 100, scale_linear(date, 1900, 2015, 100, 50)
  WHEN depth >= 30 
       THEN color_hsl(240, 100, scale_linear(date, 1900, 2015, 100, 50)
END

1900 년의 "이전"포인트는 흰색 hsl (x, x, 100)이며 새로운 포인트는 hsl (x, x, 50)까지 더 화려합니다.


3

다른 옵션은 각 데이터 레이어 스타일에 사용할 수있는 크기 도우미를 사용하는 것입니다. 특정 속성을 사용하여 색상을 기준으로 포인트 데이터를 분류했다고 가정합니다. 각 카테고리를 마우스 오른쪽 버튼으로 클릭하고 크기 변경을 선택하십시오. 크기 대화 상자가 표시되어야합니다. 그런 다음 표현식 필터를 클릭 한 다음 크기 도우미를 선택하십시오.

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

크기 도우미 대화 상자에는 크기를 지정할 열을 선택할 수있는 옵션이 있습니다. 심볼의 스케일을 조정하려는 스케일 방법을 선택한 다음 크기 범위와 데이터 값의 해당 범위를 제공 할 수도 있습니다. 여기에 이미지 설명을 입력하십시오 데이터의 각 범주에 대해이 작업을 수행해야합니다.


이 응답을 더이 내가 원하는 무엇 voted-되지 않는 이유를 모르겠어요, 그것은 지금까지 가장 빠른입니다
스콧 Staniewicz

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