8.12 矢量图层面要素单一符号使用十二(插值线渲染边界)

文章目录

  • 前言
  • 插值线渲染边界(Outline: Interpolated Line)
    • QGis设置面符号为插值线渲染边界(Outline: Interpolated Line)
    • 二次开发代码实现插值线渲染边界(Outline: Interpolated Line)
  • 总结

前言

  • 本章介绍矢量图层线要素单一符号中插值线渲染边界(Outline: Interpolated Line)的使用
  • 说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps

插值线渲染边界(Outline: Interpolated Line)

  • Outline系列只画边界,不填充内容
  • 以protected_areas.shp为例,图层符号为Simple Fill时显示效果如下图
    在这里插入图片描述

QGis设置面符号为插值线渲染边界(Outline: Interpolated Line)

  • Symbol layer type设置为Outline: Interpolated Line,可设置的属性如下图
    在这里插入图片描述

  • 属性设置完成后显示效果如下图
    在这里插入图片描述

二次开发代码实现插值线渲染边界(Outline: Interpolated Line)

  • 插值线渲染边界实现机制是将符号类型设置为Fill,但是Symbol layer type设置为对应的线类型
  • 构建对应的Symbol layer type,Hashed SymbolLayer,代码如下
  • 然后创建Fill类型的符号
  • 完整测试代码如下
void MainWindow::polygonOutlineInterpolatedSlot()
{
    //添加测试图层
    QString filename = QStringLiteral("maps/shapefile/protected_areas.shp");
    QFileInfo ff(filename);
    QgsVectorLayer* layer = (QgsVectorLayer*)mApp->addVectorLayer(filename,ff.baseName());
    zoomToFirstLayer<QgsVectorLayer*>();
    //从图层获取渲染器
    QgsFeatureRenderer * layerRenderer= layer->renderer();
    QgsSingleSymbolRenderer *singleSymbolRenderer = QgsSingleSymbolRenderer::convertFromRenderer(layerRenderer);
#if 0
    auto interpolatedSymbolLayer = new QgsInterpolatedLineSymbolLayer();
#else
    QVariantMap mp;
    mp["single_color"] = QStringLiteral("black");
    auto interpolatedSymbolLayer = QgsInterpolatedLineSymbolLayer::create(mp);
#endif
    //多个Symbol Layer构成一个Symbol
    QgsSymbolLayerList layerList;
    layerList << interpolatedSymbolLayer;
    auto fillSymbol = new QgsFillSymbol(layerList);
    singleSymbolRenderer->setSymbol(fillSymbol);
    layer->setRenderer(singleSymbolRenderer);
}
  • 效果如下
    在这里插入图片描述
    在这里插入图片描述

总结

  • 介绍了矢量图层面要素单一符号中的插值线渲染边界(Outline: Interpolated Line)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/761106.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ STL unique_ptr智能指针源码剖析

由于上一篇博客将shared_ptr,weak_ptr,enable_shared_form_this的源码实现整理了一遍,想着cpp智能指针还差个unique_ptr故写下此篇博客,以供学习 源码剖析 一,模板参数 首先,我们先看unique_ptr的模板参数,第一个参数_TP自是不用说表示对象类型,第二个模板参数定义了unique_p…

适合任何行业在线DIY预约报名小程序源码系统 带完整的安装代码包以及搭建教程

系统概述 在当今数字化时代&#xff0c;便捷高效的预约报名系统成为了许多行业的迫切需求。“适合任何行业在线 DIY 预约报名小程序源码系统”便是一款为满足这一需求而设计开发的创新解决方案。 这款源码系统是基于先进的技术架构&#xff0c;旨在为各类企业和组织提供一个强…

Avalonia 常用控件三 Window窗体相关二

1、效果演示 2、在Views中创建WindowDemo.axaml如下图 WindowDemo.axaml代码如下 <Window xmlns"https://github.com/avaloniaui"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expression/blend/…

Python读写文本、图片、xml

Python操作文本、图片、xml 1.Python读写文本1.1文本读取1.2文本写入 2.Python读取、显示图片3.Python读写Xml &#xff08;1&#xff09;Python读写文本 &#xff08;2&#xff09;Python读取、显示图片 &#xff08;3&#xff09;Python读写Xml 1.Python读写文本 新建hellow…

mybatis延迟加载

mybatis延迟加载 1、延迟加载概述 应用场景 ​ 如果查询订单并且关联查询用户信息。如果先查询订单信息即可满足要求&#xff0c;当我们需要查询用户信息时再查询用户信息。把对用户信息的按需去查询就是延迟加载。 延迟加载的好处 ​ 先从单表查询、需要时再从关联表去关联查…

el-input-number 点击加减只能加一次

el-input-number 点击加减只能加一次 <el-input-number v-model"editForm.quantity" placeholder"请输入下单数量(店均)" change"quantityChangeFn"></el-input-number>需要在方法里面加 this.$forceUpdate() quantityChangeFn(val…

web学习笔记(六十九)vue2

目录 1. vue2创建脚手架项目 2.vue2如何关闭eslint 1. vue2创建脚手架项目 &#xff08;1&#xff09;在cmd窗口输入npm install -g vue/cli命令行&#xff0c;快速搭建脚手架。 &#xff08;2&#xff09; 创建vue2项目 &#xff08;3&#xff09; 选择配置项目&#xff0c…

前端学习篇一(HTML)

Introduction ##文章内容&#xff1a;使用HBuilder制作一个简单的HTML5网页以此达到学习HTML5 的目的 ##编写内容&#xff1a;1.HTML实现平台 2.HTML简介 3.HTML语言解析 ##编写人&#xff1a;贾雯爽 ##最后更新时间&#xff1a;2024/07/01 Overview Details 一、HTML简介…

骑行十里箐:风景,挑战与心灵,在幽谷中的协奏曲

2024年6月29日&#xff0c;星期六&#xff0c;一个看似平凡的日子&#xff0c;却因一次不同寻常的骑行而变得难以忘怀。作为校长骑行群的一员&#xff0c;我有幸参加了这次骑行十里箐的活动。从滇池后海的宁静开始&#xff0c;到宝珠山顶的壮观落幕&#xff0c;这一天的旅程充满…

本地Navicat/客户端连接阿里云RDSMySQL时遇到过的问题及解决

1.之前开发的RDS MySQL版本和本地MySQL版本最好接近&#xff0c;比如8.0.28和8.0.20好像都是可以兼容的&#xff0c;他们里面都有那个utf8的字符编码&#xff0c;但是后面我选的RDS MySQL版本有点新&#xff0c;是8.0.30甚至更新的版本&#xff0c;之前用C#语言写的连接MySQL以…

如何通过TPM活动提升员工的设备管理能力?

在快节奏的现代职场中&#xff0c;设备管理能力已成为员工综合素质的重要一环。然而&#xff0c;如何有效提升这一能力&#xff0c;让员工在设备操作、维护和管理上更加得心应手呢&#xff1f;答案就隐藏在TPM&#xff08;Total Productive Maintenance&#xff0c;全面生产维护…

嵌入式Linux系统编程 — 5.4 rand、srand 函数产生随机数

目录 1 随机数与伪随机数 2 rand和srand函数 3 示例程序 1 随机数与伪随机数 随机数在编程有广泛的应用场景&#xff0c;以下是一些常见的例子&#xff1a; 游戏开发&#xff1a;在电子游戏中&#xff0c;随机数用来决定各种事件的结果&#xff0c;如怪物的出现位置、敌人…

大会员体系是如何让积分流动起来,实现跨业态引流的?

积分&#xff0c;是大会员体系建设的重点&#xff0c;也是难点之一。 假设积分跨业态或者跨品牌流通&#xff0c;但没有一套统一的积分结算体系&#xff0c;就容易出现各业态或品牌利益分配不均的问题。 因此&#xff0c;大会员体系能有效落地的重点之一&#xff1a;集团必须…

【Week-G1】调用官方GAN实现MNIST数字识别,Pytorch框架

文章目录 1. 准备数据1.1 配置超参数1.2 下载数据1.3 配置数据 2. 创建模型2.1 定义鉴别器2.2 定义生成器 3. 训练模型3.1 创建实例3.2 开始训练3.3 保存模型 4. 什么是GAN&#xff08;对抗生成网络&#xff09;? &#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学…

千益畅行,旅游卡,如何赚钱?

​ 赚钱这件事情&#xff0c;只有自己努力执行才会有结果。生活中没有幸运二字&#xff0c;每个光鲜亮丽的背后&#xff0c;都是不为人知的付出&#xff01; #旅游卡服务#

2024推荐整理几个磁力导航网站可提供海量资源的

都2024现在网上找资源像流水得鱼一样&#xff0c;抓一大把结果很难吃&#xff0c;我通宵特意整理的网站&#xff0c;网上有许多磁力导航网站可以提供海量的磁力链接资源&#xff0c;以下是一些有效的磁力导航网站推荐&#xff1a; 磁力搜索 链接&#xff1a; 资源类型&#x…

并发控制-事务的调度、数据不一致问题(更新丢失、脏读、不可重复读)、非串行调度的的可串行化

一、引言 1、数据库管理系统DBMS的事务处理技术实现的另一个主要功能部分是并发控制机制。并发控制机制完成的功能就是对并发执行的事务进行控制&#xff0c;保证事务的隔离性&#xff0c;从而进一步保持数据库的一致性。 2、事务的并发控制就是对并发执行的不同事务中的数据…

SpringMvc 执行原理

当用户请求 会发送到前端控制器&#xff0c;DisptcherServlet根据请求参数生成代理请求&#xff0c;找到对应的实际控制器&#xff0c;控制器处理请求&#xff0c;创建数据模型&#xff0c;访问数据库&#xff0c;将模型响应给中心控制器&#xff0c;控制器使用模型与视图渲染视…

前沿重器[52] | 聊聊搜索系统5:召回:检索、粗排、多路召回

前沿重器 栏目主要给大家分享各种大厂、顶会的论文和分享&#xff0c;从中抽取关键精华的部分和大家分享&#xff0c;和大家一起把握前沿技术。具体介绍&#xff1a;仓颉专项&#xff1a;飞机大炮我都会&#xff0c;利器心法我还有。&#xff08;算起来&#xff0c;专项启动已经…

KVM性能优化之CPU优化

1、查看kvm虚拟机vCPU的QEMU线程 ps -eLo ruser,pid,ppid,lwp,psr,args |awk /^qemu/{print $1,$2,$3,$4,$5,$6,$8} 注:vcpu是不同的线程&#xff0c;而不同的线程是跑在不同的cpu上&#xff0c;一般情况&#xff0c;虚拟机在运行时自身会点用3个cpus&#xff0c;为保证生产环…