8.1 矢量图层符号化整体说明

news2025/1/15 3:18:34

文章目录

  • 前言
  • 符号化与图层渲染
    • 符号
    • 符号层
    • 渲染器
  • 总结

前言

地图制图是QGIS的优势所在,QGIS包含完整的地图制图功能,如标注与注记、符号化与地图综合等多种功能。
符号化(Symbolization)是指利用符号将地理事物或现象抽象化。

  • QGis中符号设置详细说明见qgis用户手册中The Symbol Selector章节
  • 下图是使用qgis c++ api 进行二次开发后设置矢量图层数据符号化的示例
    在这里插入图片描述
  • 说明:文章中的示例代码均来自开源项目qgis_cpp_api_apps

符号化与图层渲染

  • 要实现矢量图层数据符号化需要三个类:符号(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)渲染后,显示在地图上。

渲染器

  • 点线面的渲染器类型不同,这里以点图层渲染器为例

  • 在点要素图层的图层属性中,选择“Symbology”选项卡,即可在最上方的下拉菜单中选择符号化类型。
    在这里插入图片描述

  • qgis中默认使用单一符号渲染器(Single Symbol),可选择的渲染器如下图
    在这里插入图片描述

    • 无符号(No symbols):不显示该图层要素。
    • 单一符号(Single symbol):统一设置要素符号方案
    • 分类(Categorized):根据类型(属性表的离散变量)设置不同的符号方案。
    • 分级(Graduated):根据数值大小(数据表的连续变量),利用配色方案(Color ramp)设置不同的颜色。
    • 基于规则(Rule-based):在不同的规则(表达式筛选、特定的分辨率)下,使用不同的符号方案。
    • 点分布(Point displacement):点要素过于密集时,将距离近的符号偏移原位置,提高地图可读性。
    • 点聚合(Point cluster):点要素过于密集时,将距离近的符号聚合,提高地图的可读性。
    • 热度图(Heatmap):用颜色代表点密度,用于表现点要素出现集中性的地图。
  • 渲染器对应的类如下图
    在这里插入图片描述

总结

  • 分别介绍了实现符号化的三个父类QgsSymbol,QgsSymbolLayerQgsFeatureRenderer

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

STM32-ADC实验

实验1:单ADC单通道中断 硬件原理图 由于PC1接到电位器上,所以我们实验选择PC1引脚作为ADC接口,查询STM32数据手册得知PC1可作为ADC1的IN11(ADC1_IN11)。 USART配置 115200-8-N-1,重定向支持printf打印&…

超简单的视差滚动网站

超简单的视差滚动网站 原理能就是记录鼠标的滚动,然后给不同的元素添加不同的偏移 遵循开源精神,源码如下 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"width…

视觉SLAM数据集(三):KITTI 数据集

教程目录 一、官网二、注册登录三、下载数据集四、测试数据集 一、官网 官网地址&#xff1a;https://www.cvlibs.net/datasets/kitti/eval_odometry.php Kitti数据集很庞大&#xff0c;包含了双目、光流、场景流、深度、里程计、目标、跟踪、马路、语义、原始数据等大类别&…

C++入门(3):引用,内联函数

一、引用 1.1 引用特性 引用必须初始化 一个变量可以有多个引用 引用一旦引用一个实体&#xff0c;就不能引用其他实体 int main() {int a 10, C 20;int& b a;b c; // 赋值&#xff1f;还是b变成c的别名&#xff1f;return 0; }1.2 常引用 引用权限可以平移或缩小…

有没有免费靠谱的配音软件?(不带广告)

免费配音软件在当今社会中越来越受到人们的关注和喜爱。随着科技的不断发展和智能手机的普及&#xff0c;配音软件成为了人们生活中不可或缺的一部分。无论是在职场中需要制作视频配音&#xff0c;还是在社交媒体上发布个人动态&#xff0c;配音软件都能帮助我们实现文字转语音…

以太坊搭建私有链(非常详细!!!)

我的系统&#xff1a;CentOS7 64位 我喜欢宝塔的直观&#xff1a; /www/server/panel/pyenv/bin/python3.7 -m pip install --upgrade pip yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed84…

【APP VTable】和市面上的 Table 组件一样,都是接收表格[] 以及数据源[]

博主&#xff1a;_LJaXi Or 東方幻想郷 专栏&#xff1a; uni-app | 小程序开发 开发工具&#xff1a;HBuilderX 这里写目录标题 表格组件USE 表格组件 <template><view class"scroll-table-wrapper"><view class"scroll-table-container"…

使用 excel 快速拼接省市区镇街村居五级区划完整名称

你知道的越多&#xff0c;你不知道的越多 点赞再看&#xff0c;养成习惯 如果您有疑问或者见解&#xff0c;欢迎指教&#xff1a; 企鹅&#xff1a;869192208 文章目录 前言数据准备excel 函数附件 前言 之前做了国家区划的映射关系&#xff0c;在其过程中&#xff0c;使用代码…

JAVA-编程基础-12-01-创建多线程的3种方式

JAVA-编程基础-12-创建多线程的3种方式 文章目录 JAVA-编程基础-12-创建多线程的3种方式创建一个类继承Thread类&#xff0c;并重写run方法创建一个类实现Runnable接口&#xff0c;并重写run方法实现Callable接口&#xff0c;重写call()方法&#xff0c;这种方式可以通过Future…

亚马逊云代码AI助手CodeWhisperer使用教程

一、CodeWhisperer 简介 1、CodeWhisperer是一款基于机器学习的通用代码生成器&#xff0c;由Amazon出品&#xff0c;可以给我们提供代码建议。 2、CodeWhisperer 基于各种上下文线索提供建议&#xff0c;包括光标在源代码中的位置、位于光标前面的代码、注释&#xff0c;以及…

MR混合现实情景实训教学系统在旅游管理专业中的应用

在旅游管理专业中&#xff0c;MR混合现实情景实训教学系统的主要应用包括但不限于以下几个方面&#xff1a; 1. 实地考察的替代&#xff1a;对于一些无法实地考察的景点或设施&#xff0c;学生可以通过MR系统进行虚拟参观&#xff0c;从而了解其实际情况。这不仅可以减少时间和…

Banana Pi BPI-W3 RK3588开源硬件开发板 Debian11详解

1. 简介 RK3588从入门到精通Debian 是⼀种完全⾃由开放并⼴泛⽤于各种设备的 Linux 操作系统。Rockchip在官⽅Debian发⾏版的基础上构建和适配了相关硬件功能 2. 环境介绍 硬件环境&#xff1a; ArmSoM-W3 RK3588开发板软件版本&#xff1a; OS&#xff1a;ArmSoM-W3 Debian…

Java中配置RabbitMQ基本步骤

在Java中配置RabbitMQ&#xff0c;需要遵循以下步骤&#xff1a; 1.添加依赖 在项目的pom.xml文件中添加RabbitMQ的Java客户端依赖&#xff1a; <dependency><groupId>com.rabbitmq</groupId><artifactId>amqp-client</artifactId><versio…

搜维尔科技:Varjo-最自然和最直观的互动

创建真实生活虚拟设计 Varjo让你沉浸在最自然的混合和虚拟现实环境中。 世界各地的设计团队可以聚集在一个摄影现实的虚拟空间中,以真实的准确性展示新的概念-实时的讨论和迭代。这是一个充满无限创造潜力的新时代,加速了人类前所未有的想象力。 虚拟现实、自动反应和XR设计的…

虹科案例 | 2016款别克昂科拉车发动机偶尔无法起动

作者&#xff1a;建辉汽车诊断中心 梁建辉 梁建辉&#xff0c;TechGear汽车诊断学院优秀学员&#xff0c;从事汽车维修工作15年&#xff0c;现自营“建辉汽车诊断中心”门店。 故障现象 一辆2016款别克昂科拉车&#xff0c;搭载LFF发动机&#xff0c;累计行驶里程约为8.6万km。…

【LeetCode每日一题】——1379.找出克隆二叉树中的相同节点

文章目录 一【题目类别】二【题目难度】三【题目编号】四【题目描述】五【题目注意】六【题目示例】七【题目提示】八【题目进阶】九【解题思路】十【时间频度】十一【代码实现】十二【提交结果】 一【题目类别】 广度优先搜索 二【题目难度】 简单 三【题目编号】 1379.找…

分享一下微信小程序的文章中怎么添加营销活动

在数字化时代&#xff0c;小程序已经成为企业营销的重要工具。通过小程序&#xff0c;企业可以提供更加便捷、高效的服务&#xff0c;吸引更多的用户和客户。本文将以小程序营销活动为主题&#xff0c;介绍如何在小程序文章中加入营销活动&#xff0c;提高品牌知名度和销售额。…

DAY32 122. 买卖股票的最佳时机 II + 55. 跳跃游戏 + 45.跳跃游戏 II

122. 买卖股票的最佳时机 II 题目要求&#xff1a;给定一个数组&#xff0c;它的第 i 个元素是一支给定股票第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你可以尽可能地完成更多的交易&#xff08;多次买卖一支股票&#xff09;。 注意&#xff1a;你不能同时…

基于springboot实现漫画网站管理系统项目【项目源码+论文说明】计算机毕业设计

基于Springboot实现漫画网站管理系统演示 摘要 首先,论文一开始便是清楚的论述了系统的研究内容。其次,剖析系统需求分析,弄明白“做什么”,分析包括业务分析和业务流程的分析以及用例分析,更进一步明确系统的需求。然后在明白了系统的需求基础上需要进一步地设计系统,主要包括…

Docker从入门到实战

Docker基本概念 1、解决的问题 1、统一标准 应用构建 ○ Java、C、JavaScript ○ 打成软件包 ○ .exe ○ docker build … 镜像应用分享 ○ 所有软件的镜像放到一个指定地方 docker hub ○ 安卓&#xff0c;应用市场应用运行 ○ 统一标准的 镜像 ○ docker run 容器化技术 …