• 8.1 矢量图层符号化整体说明


    前言

    地图制图是QGIS的优势所在,QGIS包含完整的地图制图功能,如标注与注记、符号化与地图综合等多种功能。
    符号化(Symbolization)是指利用符号将地理事物或现象抽象化。

    符号化与图层渲染

    • 要实现矢量图层数据符号化需要三个类:符号(QgsSymbol),符号层(QgsSymbolLayer)和图层渲染器(QgsFeatureRenderer)
    • 以下对这三个类分别介绍

    符号

    • 符号用于在地图上显示地理要素
    • qgis中地理要素分为点、线和面三类,对应的符号也分三类:Marker Symbol、Line Symbol和Fill Symbol,分别由以下类表示
      在这里插入图片描述
    • 符号(QgsSymbol)有大小、颜色、透明度等属性
    • 在qgis软件,打开图层属性-符号化页面,可以设置符号,如下图,Marker是符号(QgsSymbol)。而两个Simple Marker是符号层(QgsSymbolLayer)
      在这里插入图片描述

    符号层

    • 符号(QgsSymbol)由一到多个符号层(QgsSymbolLayer)构成
    • QgsSymbol的构造函数如下
    QgsSymbol (Qgis::SymbolType type, const QgsSymbolLayerList &layers)
    
    • 1
    • 由构造函数可见,多个QgsSymbolLayer组成QgsSymbol,对应地理要素的点线面,符号层也有三类,如下图
      在这里插入图片描述
    • 符号层需要设置其大小、颜色等属性,如下图
      在这里插入图片描述
    • 符号层的种类有多种,如下图
      在这里插入图片描述
    • Symbol layer type可选项如下
      • 动画标记(Animated marker)
      • 椭圆形标记(Ellipse marker)
      • 填充(圆形)标记(Filled marker)
      • 字符标记(Font marker)
      • 几何生成器(Geometry generator)
      • 掩膜(Mask marker)
      • 图片(Raster Image marker)
      • 简单标记(Simple marker)
      • SVG标记(SVG marker)
      • 矢量字段标记(Vector field marker)
    • 其对应的类图如下
      在这里插入图片描述
    • 由一个或多个符号层构建符号后,使用渲染器(QgsFeatureRenderer)渲染后,显示在地图上。

    渲染器

    • 点线面的渲染器类型不同,这里以点图层渲染器为例

    • 在点要素图层的图层属性中,选择“Symbology”选项卡,即可在最上方的下拉菜单中选择符号化类型。
      在这里插入图片描述

    • qgis中默认使用单一符号渲染器(Single Symbol),可选择的渲染器如下图
      在这里插入图片描述

      • 无符号(No symbols):不显示该图层要素。
      • 单一符号(Single symbol):统一设置要素符号方案
      • 分类(Categorized):根据类型(属性表的离散变量)设置不同的符号方案。
      • 分级(Graduated):根据数值大小(数据表的连续变量),利用配色方案(Color ramp)设置不同的颜色。
      • 基于规则(Rule-based):在不同的规则(表达式筛选、特定的分辨率)下,使用不同的符号方案。
      • 点分布(Point displacement):点要素过于密集时,将距离近的符号偏移原位置,提高地图可读性。
      • 点聚合(Point cluster):点要素过于密集时,将距离近的符号聚合,提高地图的可读性。
      • 热度图(Heatmap):用颜色代表点密度,用于表现点要素出现集中性的地图。
    • 渲染器对应的类如下图
      在这里插入图片描述

    总结

    • 分别介绍了实现符号化的三个父类QgsSymbol,QgsSymbolLayerQgsFeatureRenderer
  • 相关阅读:
    如何做好测试用例设计
    vue3 - vue3中的watch监听讲解
    单商户商城系统功能拆解38—分销应用—分销订单
    JavaScript系列之逻辑运算符
    阿里云核心产品list
    开展自动化方案时,需要考虑哪些内容,开展实施前需要做哪些准备呢?
    Vue3 -- computed 生命周期钩子 Provide函数 侦听数据的变化 watch script setup语法
    修改this.$notify通知的样式
    vue2 render属性调用createElement()方法插入多级元素举例
    vue3.0自定义搜索 带历史数据
  • 原文地址:https://blog.csdn.net/richie12/article/details/134007511