8.14 矢量图层面要素2.5D渲染

文章目录

  • 前言
  • 2.5D渲染
    • QGis设置面符号为2.5D
    • 二次开发代码实现2.5D
  • 总结

前言

  • 本章介绍矢量图层面要素2.5D渲染的使用
  • 说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps

2.5D渲染

  • 2.5D渲染可以将多边形渲染为类3D效果。
    在这里插入图片描述

QGis设置面符号为2.5D

  • 以"houses.shp"文件为例,默认为单一符号,效果如下图
    在这里插入图片描述
  • 设置渲染方式为2.5D,如下图
    在这里插入图片描述
  • 设置完成后,效果如下图
    在这里插入图片描述

二次开发代码实现2.5D

  • 2.5D渲染器的类是Qgs25DRenderer,详情见文档,类图如下
    在这里插入图片描述
  • 首先从图层获取渲染器
  • 然后设置图层变量,如下示例代码
    //实现2.5D效果的关键点在这里
    QgsExpressionContextUtils::setLayerVariable( layer, QStringLiteral( "qgis_25d_height" ), 10 );
    QgsExpressionContextUtils::setLayerVariable( layer, QStringLiteral( "qgis_25d_angle" ), 70 );
  • 最后设置图层渲染器为2.5D
  • 完整测试代码如下
void MainWindow::polygon25DSlot()
{
    //添加一个线图层
    QgsVectorLayer* layer = addTestShape(QStringLiteral("maps/shapefile/houses.shp"));
    //从图层获取渲染器
    QgsFeatureRenderer * layerRenderer= layer->renderer();
    Qgs25DRenderer *D25DRenderer = Qgs25DRenderer::convertFromRenderer(layerRenderer);

    //实现2.5D效果的关键点在这里
    QgsExpressionContextUtils::setLayerVariable( layer, QStringLiteral( "qgis_25d_height" ), 10 );
    QgsExpressionContextUtils::setLayerVariable( layer, QStringLiteral( "qgis_25d_angle" ), 70 );

    layer->setRenderer(D25DRenderer);
}
  • 效果如下图
    在这里插入图片描述
    在这里插入图片描述

总结

  • 介绍了矢量图层面要素2.5D渲染

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

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

相关文章

数据库7.4

第二次作业 1.登陆数据库 2.创建数据库zoo 3.修改数据库zoo字符集为gbk 4.选择当前数据库为zoo 5.查看创建数据库zoo信息 6.删除数据库zoo C:\Windows\System32>mysql -uroot -p20040830Nmx mysql> create database zoo; alter database zoo character set gbk; mys…

Java springboot校园管理系统源码

Java springboot校园管理系统源码-014 下载地址:https://download.csdn.net/download/xiaohua1992/89364089 技术栈 运行环境:jdk8 tomcat9 mysql5.7 windows10 服务端技术:Spring Boot Mybatis VUE 使用说明 1.使用Navicati或者其它工…

VBA初学:零件成本统计之三(获取材料外协的金额)

第三步,从K3的数据库中获取金额 我这里是使用循环,通过任务单号将金额汇总出来,如果使用数组的话,还要按任务单写GROUP,还要去对应,不如循环直接一点 获取材料和外协金额的表格Sub getje()Dim rowcount A…

【JAVA入门】Day13 - 代码块

【JAVA入门】Day13 - 代码块 文章目录 【JAVA入门】Day13 - 代码块一、局部代码块二、构造代码块三、静态代码块 在 Java 中,两个大括号 { } 中间的部分叫一个代码块,代码块又分为:局部代码块、构造代码块、静态代码块三种。 一、局部代码块…

Linux应用---信号

写在前面:在前面的学习过程中,我们学习了进程间通信的管道以及内存映射的方式。这次我们介绍另外一种应用较为广泛的进程间通信的方式——信号。信号的内容比较多,是学习的重点,大家一定要认真学,多多思考。 一、信号概…

ASP.NET Core----基础学习01----HelloWorld---创建Blank空项目

文章目录 1. 创建新项目--方式一: blank2. 程序各文件介绍(Project name :ASP.Net_Blank)(1)launchSettings.json 启动方式的配置文件(2)appsettings.json 基础配置file参数的读取&a…

Vue 前端修改页面标题无需重新打包即可生效

在public文件夹下创建config.js文件 index.html页面修改 其他页面的标题都可以用window.title来引用就可以了!

【算法】(C语言):冒泡排序、选择排序、插入排序

冒泡排序 从第一个数据开始到第n-1个数据,依次和后面一个数据两两比较,数值小的在前。最终,最后一个数据(第n个数据)为最大值。从第一个数据开始到第n-2个数据,依次和后面一个数据两两比较,数值…

商务办公优选!AOC Q27E3S2商用显示器,打造卓越新体验!

摘要:助办公室一族纵横职场,实现高效舒适办公! 在日常商务办公中,对于办公室一族来说总有太多“难难难难难点”:工作任务繁琐,熬夜加班心力交瘁、长时间伏案工作导致颈椎、眼睛等出现问题,职业…

【吊打面试官系列-MyBatis面试题】为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?

大家好,我是锋哥。今天分享关于 【为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里?】面试题,希望对大家有帮助; 为什么说 Mybatis 是半自动 ORM 映射工具?它与全自动的区别在哪里&#xf…

[从0开始轨迹预测][NMS]:NMS的应用(目标检测、轨迹预测)

非极大值抑制(Non-Maximum Suppression,简称NMS)是一种在计算机视觉中广泛应用的算法,主要用于消除冗余和重叠的边界框。在目标检测任务中,尤其是在使用诸如R-CNN系列的算法时,会产生大量的候选区域&#x…

Redis基础教程(九):redis有序集合

💝💝💝首先,欢迎各位来到我的博客,很高兴能够在这里和您见面!希望您在这里不仅可以有所收获,同时也能感受到一份轻松欢乐的氛围,祝你生活愉快! 💝&#x1f49…

华为仓颉可以取代 Java 吗?

大家好,我是君哥。 在最近的华为开发者大会上,华为亮相了仓颉编程语言,这是华为历经 5 年,投入大量研发成本沉淀的一门编程语言。 1 仓颉简介 按照官方报告,仓颉编程语言是一款面向全场景智能的新一代编程语言&#…

使用JAR命令打包JAR文件使用Maven打包使用Gradle打包打包Spring Boot应用

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

XLSX + LuckySheet + LuckyExcel + Web Worker实现前端的excel预览

文章目录 功能简介简单代码实现web worker 版本效果参考 功能简介 通过LuckyExcel的transformExcelToLucky方法, 我们可以把一个文件直接转成LuckySheet需要的json字符串, 之后我们就可以用LuckySheet预览excelLuckyExcel只能解析xlsx格式的excel文件&a…

机器学习——随机森林

随机森林 1、集成学习方法 通过构造多个模型组合来解决单一的问题。它的原理是生成多个分类器/模型,各自独立的学习和做出预测。这些预测最后会结合成组合预测,因此优于任何一个单分类得到的预测。 2、什么是随机森林? 随机森林是一个包含…

Midjourney 预设

使用命令/settings 进入预设,根据点击不同选项来配置。 🌹 1. 设置工作所使用的模型版本。 1️⃣ MJ Version 1 2️⃣ MJ Version 2 3️⃣ MJ Version 3 4️⃣ MJ Version 4 5️⃣ MJ Version 5 5️⃣ MJ Version 5.1 🔧Raw Mode 🌈 Niji Version 4 🍎 Niji Versio…

【pytorch16】MLP反向传播

链式法则回顾 多输出感知机的推导公式回顾 只与w相关的输出节点和输入节点有关 多层多输入感知机 扩展为多层感知机的话,意味着还有一些层(理解为隐藏层σ函数),暂且设置为 x j x_{j} xj​层 对于 x j x_{j} xj​层如果把前面的…

Vue联调Java后台操作性强教程

本人详解 作者:王文峰,参加过 CSDN 2020年度博客之星,《Java王大师王天师》 公众号:JAVA开发王大师,专注于天道酬勤的 Java 开发问题中国国学、传统文化和代码爱好者的程序人生,期待你的关注和支持!本人外号:神秘小峯 山峯 转载说明:务必注明来源(注明:作者:王文峰…

C++入门 容器适配器 / stack queue模拟实现

目录 容器适配器 deque的原理介绍 stack模拟实现 queue模拟实现 priority_queue模拟实现 仿函数 容器适配器 适配器是一种设计模式(设计模式是一套被反复使用的、多数人知晓的、经过分类编目的、代码设计经验的总 结),该种模式是将一个类的接口转换成客户希望…