前言
地图制图是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)
- 由构造函数可见,多个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)渲染后,显示在地图上。
总结
- 分别介绍了实现符号化的三个父类
QgsSymbol
,QgsSymbolLayer
和QgsFeatureRenderer