• 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
  • 相关阅读:
    Vite快速创建Vue3项目
    爱惨了,这个听书神器APP
    Linux 中如何使用 id 命令
    iOS17正式版BUG汇总:无法正常拨打电话、小组件不可用、无线充电不可用等问题
    利用python爬取上证指数股吧评论并保存到mongodb数据库
    深度学习人体跌倒检测 -yolo 机器视觉 opencv python 计算机竞赛
    Qt中利用QTextBrowser控件设计日志窗口
    Vue--Axios详解
    实时监控Mysql等数据库变化_进行数据同步_了解Debezium_--Debezium工作笔记001
    【数据分享】2023年我国科技型中小企业数据(免费获取/Excel格式/Shp格式)
  • 原文地址:https://blog.csdn.net/richie12/article/details/134007511