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

文章目录

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

前言

地图制图是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.mzph.cn/news/116496.shtml

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

相关文章

小知识(5) el-table行样式失效问题

一、实现效果 子级呈现不同颜色去区分 二、最初代码 tips: 我这里使用的vue3 elementplus <el-table :row-class-name"tableRowClassName" >... </el-table>function tableRowClassName({ row, rowIndex }) {if (row.children.length 0) {return …

Django 地址接口开发

应用 Mixin 混合类进行收货地址接口开发 python ../manage.py startapp address继承了mixins扩展类&#xff0c;进到里面可以稍微看下源码 该方法帮我们实现了获取验证及保存的功能 address/views from rest_framework.generics import GenericAPIView from rest_framewo…

移动端滚动穿透与滚动溢出解决方案

滚动穿透 问题描述 在移动端 WEB 开发的时候&#xff08;小程序也雷同&#xff09;&#xff0c;如上录屏所示&#xff0c;如果页面超过一屏高度出现滚动条时&#xff0c;在 fixed 定位的弹窗遮罩层上进行滑动&#xff0c;它下面的内容也会跟着一起滚动&#xff0c;看起来好像事…

PC连wifi,网线连接旭日X3派以共享网络

PC电脑连好wifi&#xff0c;找到【控制面板->网络和Internet->网络和共享中心->查看网络状态和任务->更改适配器设置】 找到WLAN&#xff0c;右键【属性->共享】勾上允许&#xff0c;然后【确定】。 现在去与PC通过网线连接好的X3派上配置&#xff1a; 参考&a…

SAP MM学习笔记38 - 入库/请求自动决济(ERS - Evaluated Receipt Settlement)

之前的章节学习了请求书的方方面面&#xff0c;这一章来个终章&#xff0c;入库/请求自动决济&#xff1a;&#xff09;。 1&#xff0c;什么是 ERS ERS&#xff0c;即 入库/请求自动决济&#xff0c;是 自動決済&#xff08;Automatic Settlement&#xff09;功能的一种。 以…

python之Cp、Cpk、Pp、Ppk

目录 1、Cp、Cpk、Pp、Ppk 2、python计算 1、Cp、Cpk、Pp、Ppk Cp Process Capability Ratio 可被译为“过程能力指数” Cpk Process Capability K Ratio 可被译为“过程能力K指数” Pp Process Performance Ratio 可被译为“过程绩效指数” Ppk Process Performance K Ra…

我的创作纪念日 - 第四年

机缘 几乎自己的所有文章都用同一个模板&#xff0c;虽然高效&#xff0c;但也乏味&#xff0c;就让每年都有一次例外吧。 不知不觉已经过去了四年了&#xff0c;虽然很早就在CSDN查阅资料&#xff0c;但是真正落笔创作是在4年前。那个时候自己已经是一个从事培训讲师&#x…

ETL实现实时文件监听

一、实时文件监听的作用及应用场景 实时文件监听是一种监测指定目录下的文件变化的技术&#xff0c;当产生新文件或者文件被修改时&#xff0c;可实时提醒用户并进行相应处理。这种技术广泛应用于数据备份、日志管理、文件同步和版本控制等场景&#xff0c;它可以帮助用户及时…

桥梁结构健康监测系统落地方案

桥梁结构健康监测的意义是多方面的。首先&#xff0c;它可以实时采集桥梁的结构数据&#xff0c;并对其进行处理和分析&#xff0c;以确定结构损伤的位置、评估桥梁的健康状况&#xff0c;并预测承载力的发展趋势。这有助于及时发现桥梁的结构问题和潜在风险&#xff0c;为采取…

JAVA入门总结回顾

1.常用的DOS命令&#xff1a;DOS窗口常用命令-CSDN博客 2.检查jdk是否安装成功&#xff1a;在cmd中输入java -version或者java或者javac。出现相应的对应显示内容。 3.JDK&#xff0c;JRE之间的关系&#xff1a;JDK是JAVA的开发工具包&#xff0c;JRE是JAVA的的运行环境。JRE…

rabbitMQ(3)

RabbitMq 交换机 文章目录 1. 交换机的介绍2. 交换机的类型3. 临时队列4. 绑定 (bindings)5. 扇形交换机&#xff08;Fanout &#xff09; 演示6. 直接交换机 Direct exchange6.1 多重绑定6.2 direct 代码案例 7. 主题交换机7.1 Topic 匹配案例7.2 Topic 代码案例 8. headers 头…

Kubernetes-进阶(Pod生命周期/调度/控制器,Ingress代理,数据存储PV/PVC)

Kubernetes-进阶 Pod详解 每个Pod中都可以包含一个或多个容器&#xff0c;这些容器可以分两类 用户程序所在容器&#xff0c;数量用户决定Pause容器&#xff0c;这是每个Pod都会有的一个根容器&#xff0c;它的作用有两个 可以以它为依据&#xff0c;评估整个Pod的健康状态可以…

itbuilder软件在线设计数据库模型,AI与数据库擦出的火花

今天要介绍一款强大的软件&#xff0c;它就是itBuilder软件&#xff0c;一款在线设计数据库模型软件&#xff0c;借助人工智能提高效率&#xff0c;可以生成CRUD代码并推送至开发工具中&#xff1b;它涵盖了几乎所有语言&#xff0c;如Java、Python、JavaScript等&#xff0c;并…

4种实用的制作URL 文件的方法

很多小伙伴有自己的博客、淘宝或者共享文件网站&#xff0c;想要分享、推广自己的网址做成url文件&#xff0c;让别人点击这个url文件直接访问自己的网站。URL文件其实就一个超级链接&#xff0c;制作的方法很多&#xff0c;这里列举4种。 收藏网站直接拖拽 1.第一种&#xf…

drf-过滤、排序、异常处理、自封装Response

过滤 过滤就是根据路由url?后的信息过滤出符合&#xff1f;后条件的数据而非全部&#xff0c;比如…/?nameweer就是只查name是weer的数据&#xff0c;其余不返回。 1、安装&#xff1a;pip3 install django-filter2、注册&#xff1a;在settings.py中的app中注册django-filt…

服务器数据恢复-某银行服务器硬盘数据恢复案例

服务器故障&分析&#xff1a; 某银行的某一业务模块崩溃&#xff0c;无法正常使用。排查服务器故障&#xff0c;发现运行该业务模块的服务器中多块硬盘离线&#xff0c;导致上层应用崩溃。 故障服务器内多块硬盘掉线&#xff0c;硬盘掉线数量超过服务器raid阵列冗余级别所允…

【T3】畅捷通T3备份账套提示:超时已过期,错误‘53‘文件不存在。

【问题描述】 针对畅捷通T3软件&#xff0c;进行账套备份&#xff08;账套输出&#xff09;的时候&#xff0c; 先是提示”超时已过期“&#xff1b; 点击确定后&#xff0c;再次提示&#xff1a;运行时错误53&#xff0c;文件未找到。 最终导致账套备份/输出失败。 【解决…

windows10下pytorch环境部署留念

pytorch环境部署留念 第一步&#xff1a;下载安装anaconda 官网地址 &#xff08;也可以到清华大学开源软件镜像站下载&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/&#xff09; 我安装的是下面这个&#xff0c;一通下一步就完事儿。 第二步&#x…

Java中配置RabbitMQ基本步骤

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

NLP入门——语言结构/语言建模

一、Linguistics 语言学 wordsmorphology 形态学&#xff1a;词的构成和内部结构研究。如英语的dog、dogs和dog-catcher有相当的关系morpheme 语素&#xff1a;最小的语法单位&#xff0c;是最小的音义结合体lexeme 词位&#xff1a;词的意义的基本抽象单位&#xff0c;是一组…