如何基于多个属性在QGIS中设置点的样式


13

当试图找到一种显示地震的有用方法时,我注意到它并不是那么容易管理。

我希望能够从该点的样式中识别出“幅度”,“日期”和“深度”。就像是:

  • 大小:基于大小
  • 深度:基本色(例如<15红色,15-30黄色,> 30蓝色)
  • 日期:从100%颜色到白色/ ...的阴影的颜色强度

有没有一种方法可以不定义许多规则?

Answers:


14

为什么不使用基于规则的标签?如果您根据属性数据对多个渐变使用类别,则可以大大简化任务。从我的角度来看,在基于规则的标签中使用类别是QGIS的市长优势之一。

对于您的数据(不知道结构),我建议以下工作流程:

  • 通过分类或渐变的点样式器(白色或灰色样式)为日期值创建一个基于规则的简单渐变。
  • 通过单击“高级”和“大小缩放的字段”来调整点的大小。在这里选择您要点的大小。将结果样式另存为SLD样式!
  • 转到基于规则的标记,加载JN您的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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.