8.2 矢量图层点要素单一符号使用一
文章目录
- 前言
- 单一符号(Single symbol)渲染
- 简单标记(Simple Marker)
- QGis
- 代码实现
- SVG标记(SVG marker)
- QGis
- 代码实现
- 总结
前言
- 上一篇教程对矢量图层符号化做了一个整体介绍,并以点图层为例介绍了可以使用的渲染器:
- 无符号(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 shape=Qgis::MarkerShape::Circle, double size=DEFAULT_SIMPLEMARKER_SIZE, double angle=DEFAULT_SIMPLEMARKER_ANGLE, Qgis::ScaleMethod scaleMethod=DEFAULT_SCALE_METHOD, const QColor &color=DEFAULT_SIMPLEMARKER_COLOR, const QColor &strokeColor=DEFAULT_SIMPLEMARKER_BORDERCOLOR, Qt::PenJoinStyle penJoinStyle=DEFAULT_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 size=DEFAULT_SVGMARKER_SIZE, double angle=DEFAULT_SVGMARKER_ANGLE, Qgis::ScaleMethod scaleMethod=DEFAULT_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标记的方法
相关文章:
8.2 矢量图层点要素单一符号使用一
文章目录 前言单一符号(Single symbol)渲染简单标记(Simple Marker)QGis代码实现 SVG标记(SVG marker)QGis代码实现 总结 前言 上一篇教程对矢量图层符号化做了一个整体介绍,并以点图层为例介绍了可以使用的渲染器&am…...
SQL企业微信群机器人消息推送
--参考资料地址 --微软官方地址: https://learn.microsoft.com/zh-cn/sql/relational-databases/system-stored-procedures/ole-automation-stored-procedures-transact-sql?view=sql-server-ver16 --腾讯官方地址:https://developer.work.weixin.qq.com/ --使…...
vscode远程连接ubuntu
修改环境变量,改使用git自带的ssh工具 openssh: C:\Windows\System32\OpenSSH\ssh.exeGit ssh: C:\Program Files\Git\usr\bin\ssh.exe vscode安装插件remote-ssh 重开软件,在左侧拓展入口下方,进入远程资源管理器 点击设置,进…...
Positive Technologies 在迪拜宣布与地区网络安全解决方案提供商开展合作
在中东最大的信息技术展 GITEX GLOBAL 2023 的间隙,Positive Technologies 同意与八家组织(网络安全服务和解决方案提供商)合作,在该地区开展合作,推广最先进的产品,并分享信息安全领域的经验。该公司强调了…...
Pyside6 QTextEdit
Pyside6 QTextEdit QTextEdit使用QTextEdit常用函数文本编辑类函数文本框格式设置函数设置文字颜色设置文字背景颜色设置文字格式设置文本框样式程序设置界面设置 QTextEdit信号textChanged信号 完整程序界面程序主程序 QTextEdit类提供了一个用于编辑和显示纯文本和富文本的组…...
Hadoop核心机制详细解析
Hadoop核心机制详细解析 Hadoop的核心机制是通过HDFS文件系统和MapReduce算法进行存储资源、内存和程序的有效利用与管理。在现实的实例中,通过Hadoop,可以轻易的将多台普通的或低性能的服务器组合成分布式的运算-存储集群,提供大数据量的存…...
Chromium源码由浅入深(一)
工作中需要对Chromium源码、尤其是源码中图形部分进行深入研究,所以借此机会边学习边写文章,分享一下我的实时学习研究Chromium源码的由浅入深的过程。 闲言少叙,书归正传。 通过命令行启动Chrome浏览器,命令及结果如下…...
Spring Authorization Server 1.1 扩展 OAuth2 密码模式与 Spring Cloud Gateway 整合实战
目录 前言无图无真相创建数据库授权服务器maven 依赖application.yml授权服务器配置AuthorizationServierConfigDefaultSecutiryConfig 密码模式扩展PasswordAuthenticationTokenPasswordAuthenticationConverterPasswordAuthenticationProvider JWT 自定义字段自定义认证响应认…...
UE4 UltraDynamicSky 天气与水体交互
最上面的Lerp的A通道为之前的水面效果,B是做的冰面效果 用Dynamic_Landscape_Weather_Effects的BaseColor的R通道四舍五入作为Lerp的Alpha值 使用一张贴图,乘以RadialGradientExponential对材质边缘做弱化,RadialGradientExponential的Raid…...
Liunx 实时调度策略 SCHED_RR SCHED_FIFO 区别 适用情况
SCHED_RR SCHED_FIFO 适用情况 SCHED_FIFO 先进先出调度。只能在静态优先级高于0的情况下使用,这意味着当 SCHED_FIFO 线程变得可运行时,它总是立即抢占当前正在运行的任何 SCHED_OTHER、SCHED_BATCH 或 SCHED_IDLE 线程。SCHED_FIFO 线程一直运行到被…...
mac上使用虚拟机vm, 里面的镜像挂起会占用电脑的内存吗, 挂起和关机的区别是什么, 会影响正常电脑的内存和硬盘使用吗
解释 在Mac(或任何其他操作系统)上使用虚拟机(如VMware Fusion、Parallels Desktop、VirtualBox等)时,“挂起”(Suspend)和“关机”(Power Off或Shut Down)是两种不同的虚…...
AIGC时代 浪潮信息积极推动存储产品创新
近几年,AIGC的兴起,进一步驱动了全闪、混闪等存储产品的创新,也为市场带来了新的机遇,对于厂家而言,也需要升级存储产品的容量、性能及功能,方能满足场景诉求。对此,浪潮信息面向AIGC应用场景打…...
【PG】PostgreSQL字符集
目录 设置字符集 1 设置集群默认的字符集编码 2 设置数据库的字符集编码 查看字符集 1 查看数据字符集编码 2 查看服务端字符集 3 查看客户端字符集 4 查看默认的排序规则和字符分类 被支持的字符集 PostgreSQL里面的字符集支持你能够以各种字符集存储文本,…...
力扣:137. 只出现一次的数字 II(Python3)
题目: 给你一个整数数组 nums ,除某个元素仅出现 一次 外,其余每个元素都恰出现 三次 。请你找出并返回那个只出现了一次的元素。 你必须设计并实现线性时间复杂度的算法且使用常数级空间来解决此问题。 来源:力扣(Lee…...
orb-slam3编译手册(Ubuntu20.04)
orb-slam3编译手册(Ubuntu20.04) 一、环境要求1.安装git2.安装g3.安装CMake4.安装vi编辑器 二、源代码下载三、依赖库下载1.Eigen安装2.Pangolin安装3.opencv安装4.安装Python & libssl-dev5.安装boost库 三、安装orb-slam3四、数据集下载及测试 写在…...
升级 Xcode 15模拟器 iOS 17.0 Simulator(21A328) 下载失败
升级 IDE Xcode 15 后本地模拟器 Simulator 全被清空,反复重新尝试 Get 下载频频因网络异常断开而导致失败 ... 注:通过 Get 方式下载一定要保证当前网络环境足够平稳,网络环境不好的情况下该方法几乎成不了 解决办法 Get 方式行不通可以尝试通过 官网 途径先下载 模拟器安装包…...
PHP 函数、PHP 简单后门
函数 基本结构 语法结构 function 函数名(形式参数1,形式参数2...){//函数体return 返回值 }定义并执行一个简单函数 // funtion.phpfunction test(){echo "This is function ".__FUNCTION__; }test();函数传参 // function.phpfunction add($x, $y){$sum $x …...
前端实现菜单按钮级权限
核心思想就是通过登录请求此用户对应的权限菜单,然后跳转首页,触发全局前置导航守卫,在全局导航守卫中通过 addRoute 添加动态路由进去。addRoute有一个需要注意的地方,就是我们添加完动态路由后,地址栏上立即访问添加…...
STM32:TTL串口调试
一.TTL串口概要 TTL只需要两个线就可以完成两个设备之间的双向通信,一个发送电平的I/O称之为TX,与另一个设备的接收I/O口RX相互连接。两设备之间还需要连接地线(GND),这样两设备就有相同的0V参考电势。 二.TTL串口调试 实现电脑通过STM32发送…...
【Jenkins 安装】
一:安装文件夹准备 在/home/admin 界面下新建三个文件夹,用来安装tomcat、maven 1.打开,/home/admin目录 cd /home/admin 2.新建三个文件夹 mkdir tomcat mkdir maven 二:安装tomcat 1.打开tomcat目录进行tomcat的安装 访问:h…...
[2025CVPR]DeepVideo-R1:基于难度感知回归GRPO的视频强化微调框架详解
突破视频大语言模型推理瓶颈,在多个视频基准上实现SOTA性能 一、核心问题与创新亮点 1.1 GRPO在视频任务中的两大挑战 安全措施依赖问题 GRPO使用min和clip函数限制策略更新幅度,导致: 梯度抑制:当新旧策略差异过大时梯度消失收敛困难:策略无法充分优化# 传统GRPO的梯…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
[ICLR 2022]How Much Can CLIP Benefit Vision-and-Language Tasks?
论文网址:pdf 英文是纯手打的!论文原文的summarizing and paraphrasing。可能会出现难以避免的拼写错误和语法错误,若有发现欢迎评论指正!文章偏向于笔记,谨慎食用 目录 1. 心得 2. 论文逐段精读 2.1. Abstract 2…...
什么是库存周转?如何用进销存系统提高库存周转率?
你可能听说过这样一句话: “利润不是赚出来的,是管出来的。” 尤其是在制造业、批发零售、电商这类“货堆成山”的行业,很多企业看着销售不错,账上却没钱、利润也不见了,一翻库存才发现: 一堆卖不动的旧货…...
Java多线程实现之Callable接口深度解析
Java多线程实现之Callable接口深度解析 一、Callable接口概述1.1 接口定义1.2 与Runnable接口的对比1.3 Future接口与FutureTask类 二、Callable接口的基本使用方法2.1 传统方式实现Callable接口2.2 使用Lambda表达式简化Callable实现2.3 使用FutureTask类执行Callable任务 三、…...
Qt Http Server模块功能及架构
Qt Http Server 是 Qt 6.0 中引入的一个新模块,它提供了一个轻量级的 HTTP 服务器实现,主要用于构建基于 HTTP 的应用程序和服务。 功能介绍: 主要功能 HTTP服务器功能: 支持 HTTP/1.1 协议 简单的请求/响应处理模型 支持 GET…...
k8s业务程序联调工具-KtConnect
概述 原理 工具作用是建立了一个从本地到集群的单向VPN,根据VPN原理,打通两个内网必然需要借助一个公共中继节点,ktconnect工具巧妙的利用k8s原生的portforward能力,简化了建立连接的过程,apiserver间接起到了中继节…...
pikachu靶场通关笔记22-1 SQL注入05-1-insert注入(报错法)
目录 一、SQL注入 二、insert注入 三、报错型注入 四、updatexml函数 五、源码审计 六、insert渗透实战 1、渗透准备 2、获取数据库名database 3、获取表名table 4、获取列名column 5、获取字段 本系列为通过《pikachu靶场通关笔记》的SQL注入关卡(共10关࿰…...
Mac下Android Studio扫描根目录卡死问题记录
环境信息 操作系统: macOS 15.5 (Apple M2芯片)Android Studio版本: Meerkat Feature Drop | 2024.3.2 Patch 1 (Build #AI-243.26053.27.2432.13536105, 2025年5月22日构建) 问题现象 在项目开发过程中,提示一个依赖外部头文件的cpp源文件需要同步,点…...
《C++ 模板》
目录 函数模板 类模板 非类型模板参数 模板特化 函数模板特化 类模板的特化 模板,就像一个模具,里面可以将不同类型的材料做成一个形状,其分为函数模板和类模板。 函数模板 函数模板可以简化函数重载的代码。格式:templa…...
