中文 域名的网站,用htlm做静态网站怎么用,邢台网站建设信息,中国空间站天宫课堂文章目录 前言单一符号#xff08;Single symbol#xff09;渲染简单标记(Simple Marker)QGis代码实现 SVG标记#xff08;SVG marker#xff09;QGis代码实现 总结 前言
上一篇教程对矢量图层符号化做了一个整体介绍#xff0c;并以点图层为例介绍了可以使用的渲染器Single symbol渲染简单标记(Simple Marker)QGis代码实现 SVG标记SVG markerQGis代码实现 总结 前言
上一篇教程对矢量图层符号化做了一个整体介绍并以点图层为例介绍了可以使用的渲染器 无符号No symbols单一符号Single symbol分类Categorized分级Graduated基于规则Rule-based点分布Point displacement点聚合Point cluster热度图Heatmap 本篇介绍如何使用单一符号说明文章中的示例代码均来自开源项目qgis_cpp_api_apps
单一符号Single symbol渲染
qgis默认使用单一符号、简单标记(Simple Marker)进行渲染以places_33S.shp为例添加places_33S图层后默认显示如下图 在点要素图层的图层属性中选择“Symbology”选项卡可以看到默认显示如下图 除简单标记(Simple Marker)外还有其他多种选择如下图
简单标记(Simple Marker) Simple marker symbol layer, consisting of a rendered shape with solid fill color and an stroke. 简单标记是指使用一些简单的几何形状作为标记并可以设置其填充颜色和画笔颜色
QGis
将Symbol layer type设置为简单标记图层Simple marker Layer属性设置见下图
代码实现
QgsSimpleMarkerSymbolLayer类是简单标记图层Simple marker Layer类图如下 其构造函数如下构造函数的参数是其对应的参数
QgsSimpleMarkerSymbolLayer (Qgis::MarkerShape shapeQgis::MarkerShape::Circle, double sizeDEFAULT_SIMPLEMARKER_SIZE, double angleDEFAULT_SIMPLEMARKER_ANGLE, Qgis::ScaleMethod scaleMethodDEFAULT_SCALE_METHOD, const QColor colorDEFAULT_SIMPLEMARKER_COLOR, const QColor strokeColorDEFAULT_SIMPLEMARKER_BORDERCOLOR, Qt::PenJoinStyle penJoinStyleDEFAULT_SIMPLEMARKER_JOINSTYLE)设置点符号为简单标记的步骤如下
首先从图层获取renderer并转换为Single Symbol Renderer代码如下
QgsFeatureRenderer * layerRenderer layer-renderer();
QgsSingleSymbolRenderer *singleRenderer QgsSingleSymbolRenderer::convertFromRenderer(layerRenderer);构造简单标记层(Simple Marker SymbolLayer)代码如下
auto markerSymbolLayer new QgsSimpleMarkerSymbolLayer(Qgis::MarkerShape::Heart,4.0);
QgsSymbolLayerList layerList;layerList markerSymbolLayer;构造Marker Symbol并为renderer设置symbol 代码如下 auto markerSymbol new QgsMarkerSymbol(layerList);singleRenderer-setSymbol(markerSymbol);layer-setRenderer(singleRenderer);SVG标记SVG marker provides you with images from your SVG paths to render as marker symbol. Each SVG file colors and stroke can also be adapted. svg标记是指使用svg图片作为标记可以设置svg的填充颜色和画笔颜色
QGis
将Symbol layer type设置为SVG标记SVG marker属性见下图
代码实现
QgsSvgMarkerSymbolLayer类是SVG标记图层SVG marker layer类图如下 其构造函数如下构造函数的参数是其对应的参数
QgsSvgMarkerSymbolLayer (const QString path, double sizeDEFAULT_SVGMARKER_SIZE, double angleDEFAULT_SVGMARKER_ANGLE, Qgis::ScaleMethod scaleMethodDEFAULT_SCALE_METHOD)设置点符号为svg标记的步骤如下
首先从图层获取renderer并转换为Single Symbol Renderer代码如下
QgsFeatureRenderer * layerRenderer layer-renderer();
QgsSingleSymbolRenderer *singleRenderer QgsSingleSymbolRenderer::convertFromRenderer(layerRenderer);构造Svg标记层(Svg Marker SymbolLayer)代码如下 //构造Svg标记层(Svg Marker SymbolLayer)方法一//作为示例用到了path和size两个参数其他参数使用类似QString path QStringLiteral(resources/plane.svg);auto markerSymbolLayer new QgsSvgMarkerSymbolLayer(path,4.0);构造Marker Symbol并为renderer设置symbol 代码如下 //QgsMarkerSymbol构造函数中需要传入QgsSymbolLayerList//多个Symbol Layer构成一个SymbolQgsSymbolLayerList layerList;layerList markerSymbolLayer;auto markerSymbol new QgsMarkerSymbol(layerList);singleRenderer-setSymbol(markerSymbol);layer-setRenderer(singleRenderer);总结
分别介绍了点图层使用单一符号设置为简单标记和svg标记的方法