QGIS基本功 | 19 QGIS工程文件剖析
01 工程文件(Project File)
工程文件(Project File)以XML文件存储当前QGIS会话(Session)的所有状态,包含地图相关图层、图层是否可查询、图层属性(符号和样式)、地图窗口的坐标系、打印布局(包括其中元素及其设定)、数字化设置、表关联、宏定义、默认样式、插件设置等。目前,工程文件已经涵盖了QGIS会话的28个方面,其内容还在不断扩展中。
通过工程文件可以方便的存储、重复使用和共享已完成的工作成果。
02 打开、新建和保存工程
打开工程
在windows系统的文件资源管理器中双击工程文件,即可以该文件启动QGIS会话。
如果QGIS已启动,可在【浏览器】面板中定位到工程文件路径,双击或者直接将工程文件拖拽到地图窗口,同样可以打开该工程文件。
点击QGIS工具栏的【打开】按钮或者菜单【工程】->【打开】,浏览到工程文件的磁盘位置,选择要打开的工程文件,是第三种打开工程文件的方法。
新建工程
菜单【工程】->【新建】,或者在工程工具栏点击【新建工程】按钮,可以清除当前的会话内容,打开一个全新的会话,QGIS默认使用“未命名的工程”为新会话命名。
新建工程时,如果当前打开的工程有未保存的修改(标题栏显示 *),则QGIS将弹出对话框提示保存当前的工程改变的内容,点击【Save】按钮保存,【Discard】则放弃对当前工程文件的修改,直接新建,【Cancel】取消将新建工程。
保存工程
当完成对地图的设置,可以使用工具栏的【保存工程】按钮,或者菜单【工程】->【保存】/【另存为】,将当前会话的状态保存到磁盘。
如果该工程为第一次保存,QGIS将提示选择保存的路径和工程文件名称,默认以.QGZ扩展名,这是一种压缩格式的文件。与之对应的是.QGS扩展名,为未压缩工程文件,此时工程文件以XML格式存储,可以用文本编辑器打开并编辑其内容。
03 工程文件剖析
存储格式
工程文件可以保存为*.QGS或者*.QGZ两种后缀格式。*.QGS文件格是XML格式 保存的明码文件,而*.QGZ文件则是zip压缩文件,包含一个QGS文件和一个QGD文件(QGD文件是以SQLite的格式存储与工程关联的辅助数据的数据库,如果没有辅助数据,QGD文件为空)。
将QGZ文件的扩展名修改为zip,可以用解压缩软件打开查看其内容。
默认的存储格式可以在菜单【设置】->【选项】->【通用】->【默认工程文件格式】中设置。
工程文件内容详解
用文本编辑器打开QGS格式的工程文件,可以看到其根节点和28个一级节点如下图:
各个节点的内容说明如下:
Qgis:根节点,所有工程文件元素的父节点,记录工程文件的保存时间、工程名称、作者和QGIS的版本。
homePath:工程主目录,在【工程属性】->【通用】中设置。
Title:工程标题,在【工程属性】->【通用】中设置。
Autotransaction:自动创建事务。事务编辑指的是在所支持的数据库中,来自同一数据库的编辑状态是同步的,并在服务器端事务中执行。启用后,源自相同数据库连接的图层将被归入同一个事务组。它们的编辑状态会自动同步,对这些图层的更改会被立刻发送到数据源。目前仅支持Postgre、GPKG、Spatialite和Oracle数据库。在【工程属性】->【数据源】中设置。
evaluateDefaultValues:是否在数据源端求默认值。当数字化一个新要素时,是否自动计算数据库定义的字段默认取值。启用后将尽早赋予默认值。目前仅支持Postgre、GPKG、Spatialite和Oracle数据库。在【工程属性】->【数据源】中设置。
Trust:数据源没有元数据时是否信任工程而不进行图层检查。通过跳过PostgreSQL图层中的数据 检查来加快工程的载入。在QGIS服务器环境、工程包含巨大的数据库视图或者实体化视图时,不检查图层将有效提高载入速度。在【工程属性】->【数据源】中设置。
projectCrs:工程的坐标参照系定义,决定地图窗口所使用的坐标参照系。
layer-tree-group:包含的所有图层组定义,由具体的图层组成。
snapping-settings:捕捉设置。
Relations:保存图层或者属性表的关联信息。
Mapcanvas:地图画布的相关属性,如名称、可视范围、坐标参照系、地图单位等。地图画布用于显示图层,并与地图交互,是QGIS中最重要的用户界面元素,一个地图窗口对应一个地图画布。
projectModels:地理处理模型,以XML格式保存在工程中。
Legend:图例定义。包含多个图例图层,每个图层图例存储其名称、是否显示要素个数、绘制顺序、可见性和默认是否展开等属性。
mapViewDocks:地图主窗口以外的其他地图窗口。
mapViewDocks3D:三维地图窗口。
main-annotation-layer:注记图层。每个工程包含一个注记图层,用于绘制所添加的注记,总是位于所有图层的上方且总是可见。
Projectlayers:工程所引用的所有图层,由多个地图图层(maplayer)子节点组成。每个maplayer的元素为图层属性的定义,由图层范围(extent)、图层唯一标识(id)、图层关联的数据源(datasource)、关键字列表(keywordList)、图层名称(layername)、图层坐标参照系(srs)、元数据信息(resourceMetadata)、数据源提供者(provider)等组成,实际上是将图层属性对话框中的设置以XML格式存储。
Layerorder:图层的渲染顺序。按照元素从下到上渲染,因此越在下面的元素越先绘制和渲染。
Properties:工程属性,包括工程的默认样式(DefaultStyles)、数字化(Digitizing)、默认选中要素颜色和地图背景色(Gui)等,实际上是将工程属性对话框的选项以XML格式存储。
dataDefinedServerProperties:数据定义服务器参数属性。
visibility-presets:地图主题的属性,包含主题名称、每个图层所使用的样式、是否可见、是否展开。
transformContext:坐标变换设置。
projectMetadata:此节点记录工程的元数据。
Annotations:注记集合。每个注记生成一个节点,描述注记的内容和样式。
Layouts:打印布局节点,由多个布局(Layout)子节点组成,每个布局对于工程中的一个布局窗口。
Bookmarks:空间书签。
ProjectViewSettings:工程预定义比例尺。
ProjectTimeSettings:工程的时态设置,包括开始时间、结束时间、时间单位、是否开启时间累积等属性。
ProjectDisplaySettings:坐标和方位格式设置,对应的属性可在【工程属性】->【通用】标签下的“坐标和方位显示”->“方位格式”中查看。
工程文件大多数的一级节点包含一个或多个子节点。例如展开Projectlayers节点,其子节点由工程所引用的图层(maplayer)节点组成,里面详细描述了图层的属性,如下图:
由此可见,工程文件包含了当前QGIS会话的详细内容,如果您对这些内容足够熟悉,可以不通过QGIS而用文本编辑器对工程文件进行修改,其效果与使用QGIS界面修改相同。
版权声明
本文欢迎转载,转载时请注明出处。
QGIS基本功 | 19 QGIS工程文件剖析相关推荐
- QGIS基本功 | 21 QGIS工程文件属性设置(2)——坐标参照系、变换、默认样式、数据源、关系和变量
今天继续分享工程文件属性的设置,包括工程坐标参照系.变换.默认样式.数据源.关系和变量六个部分. 01 坐标参照系 工程坐标参照系定义了当前地图窗口所使用的坐标系,决定了如何将数据从其底层原始坐标绘 ...
- QGIS基本功 | 22 QGIS工程文件属性设置(3)——宏、QGIS服务
今天将继续分享QGIS 3.16工程文件属性的设置,包括宏(Macros)和QGIS服务器两个部分. 01 宏(Macros) [工程]->[属性]->[宏]标签页提供工程文件相关联的宏 ...
- QGIS基本功|5 QGIS图层进阶(二)- 连接属性表
GIS界流行一句话:人类活动80%的信息与地理位置有关.然而,我们得到的数据中有很大一部分却没有地理几何图形,而是一张张文字和数字组成的表格,例如,统计局每年发布的统计年鉴.如何将这些表格定位到地图上 ...
- QGIS管网水力模型inp文件制图初探
本文主要讲述了如何使用QGIS加载管网水力模型,并进行节点筛选,再制图显示的过程. 我所接触的供水管网水力模型文件格式为inp,使用EPANET软件打开,然而它的制图形式不太美观,因此我查找了一些资料 ...
- Qt中使用的工程文件(.pro文件)
第一种常用方式: #模块设置,一般设置为app(生成应用程序,默认),subdirs(生成makefile文件编译subdirs指定的子文件夹),lib(生成库文件) TEMPLATE = app # ...
- 内核链表list.h文件剖析
内核链表list.h文件剖析 一.内核链表的结构[双向循环链表] 内核链表的好主要体现为两点,1是可扩展性,2是封装.可以将内核链表复用到用户态编程中,以后在用户态下编程就不需要写一些关于链表的代码了 ...
- STM32添加项目所需要的工程文件
文章目录 解读示例工程文件 模仿示例工程文件创建项目所需要的工程文件 在keil4中把新建文件添加到工程中 工程文件的删除 下载杨桃电子提供的通用工程模板 杨桃32学习笔记,本文图片文字皆为转述 解读 ...
- 基于现有工程解读stm32的工程文件
文章目录 解读32的工程文件 常用工具栏介绍 杨桃32学习笔记,本文图片文字皆为转述 解读32的工程文件 (1)CMSIS文件夹下包含两个c文件,对arm内核和整个单片机系统的基础文件,官方提供的不需 ...
- VS2010 ,工程文件减肥
写一个bat文件来清理VS2010工程文件. 将其放入到工程文件夹下,双击即可自动将sdf,ipch等占用空间很大的文件删除. 这样的方式较之于转移浏览数据库文件的位置而言更为灵活一些,不用特别的设置 ...
最新文章
- 独家 | 图解BiDAF中的单词嵌入、字符嵌入和上下文嵌入(附链接)
- POJ 3181 Dollar Dayz DP
- mybatis+spring+c3p0+maven+ehcache
- 数据结构:单链表和双向链表
- 使用控制结构——循环语句——基本循环
- Oracle的SGA与系统vm.nr_hugepages不匹配导致的故障
- linux 驱动 printk 输出变量格式
- ZStack实践汇 | 制造业企业IT经理的虚拟化方案选型经历
- SoapUI 入门指南
- 机器人技术基础pdf
- 强烈推荐APP破解常用工具集合!
- TDTX云笔记--TDTX个人简历
- 【学习笔记】Baby Step Giant Step算法及其扩展
- 计算机桌面文件在哪个文件夹,电脑微信文件夹储存在什么位置?
- 《Java零基础入门到精通(集合,泛型,IO,反射,JVM, 源码)【渡一教育】》思维导图版笔记(完结)
- NR基础1-NR帧结构
- omnet结果分析anf文件
- idea从零到精通08之IDEA常用插件、提升开发效率
- 北京UI设计培训,为什么要学5个月以上
- 薪酬管理系统数据库设计
热门文章
- 【经验】画动漫人物脸部需要注意些什么?
- 学院信息维护-查询学院信息02
- linux/ubuntu护眼宝/护眼工具/亮度调节之:brightness-controler
- 基于matlab的pid调节论文,毕业论文 基于matlab的智能PID控制器的设计与仿真
- php如何删除数组中的空元素,php - 删除空数组元素
- 【Python】初识Python
- mysql强制索引查询_MySQL FORCE INDEX 强制索引使用
- LivePlayer播放器安装与使用
- 北大青鸟培训第二周第三天:HTML和CSS相关知识 (持续更新)
- unity屏幕后处理全家桶之color grading