​ 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个一级节点如下图:

各个节点的内容说明如下:

  1. Qgis:根节点,所有工程文件元素的父节点,记录工程文件的保存时间、工程名称、作者和QGIS的版本。

  2. homePath:工程主目录,在【工程属性】->【通用】中设置。

  3. Title:工程标题,在【工程属性】->【通用】中设置。

  4. Autotransaction:自动创建事务。事务编辑指的是在所支持的数据库中,来自同一数据库的编辑状态是同步的,并在服务器端事务中执行。启用后,源自相同数据库连接的图层将被归入同一个事务组。它们的编辑状态会自动同步,对这些图层的更改会被立刻发送到数据源。目前仅支持Postgre、GPKG、Spatialite和Oracle数据库。在【工程属性】->【数据源】中设置。

  5. evaluateDefaultValues:是否在数据源端求默认值。当数字化一个新要素时,是否自动计算数据库定义的字段默认取值。启用后将尽早赋予默认值。目前仅支持Postgre、GPKG、Spatialite和Oracle数据库。在【工程属性】->【数据源】中设置。

  6. Trust:数据源没有元数据时是否信任工程而不进行图层检查。通过跳过PostgreSQL图层中的数据 检查来加快工程的载入。在QGIS服务器环境、工程包含巨大的数据库视图或者实体化视图时,不检查图层将有效提高载入速度。在【工程属性】->【数据源】中设置。

  7. projectCrs:工程的坐标参照系定义,决定地图窗口所使用的坐标参照系。

  8. layer-tree-group:包含的所有图层组定义,由具体的图层组成。

  9. snapping-settings:捕捉设置。

  10. Relations:保存图层或者属性表的关联信息。

  11. Mapcanvas:地图画布的相关属性,如名称、可视范围、坐标参照系、地图单位等。地图画布用于显示图层,并与地图交互,是QGIS中最重要的用户界面元素,一个地图窗口对应一个地图画布。

  12. projectModels:地理处理模型,以XML格式保存在工程中。

  13. Legend:图例定义。包含多个图例图层,每个图层图例存储其名称、是否显示要素个数、绘制顺序、可见性和默认是否展开等属性。

  14. mapViewDocks:地图主窗口以外的其他地图窗口。

  15. mapViewDocks3D:三维地图窗口。

  16. main-annotation-layer:注记图层。每个工程包含一个注记图层,用于绘制所添加的注记,总是位于所有图层的上方且总是可见。

  17. Projectlayers:工程所引用的所有图层,由多个地图图层(maplayer)子节点组成。每个maplayer的元素为图层属性的定义,由图层范围(extent)、图层唯一标识(id)、图层关联的数据源(datasource)、关键字列表(keywordList)、图层名称(layername)、图层坐标参照系(srs)、元数据信息(resourceMetadata)、数据源提供者(provider)等组成,实际上是将图层属性对话框中的设置以XML格式存储。

  18. Layerorder:图层的渲染顺序。按照元素从下到上渲染,因此越在下面的元素越先绘制和渲染。

  19. Properties:工程属性,包括工程的默认样式(DefaultStyles)、数字化(Digitizing)、默认选中要素颜色和地图背景色(Gui)等,实际上是将工程属性对话框的选项以XML格式存储。

  20. dataDefinedServerProperties:数据定义服务器参数属性。

  21. visibility-presets:地图主题的属性,包含主题名称、每个图层所使用的样式、是否可见、是否展开。

  22. transformContext:坐标变换设置。

  23. projectMetadata:此节点记录工程的元数据。

  24. Annotations:注记集合。每个注记生成一个节点,描述注记的内容和样式。

  25. Layouts:打印布局节点,由多个布局(Layout)子节点组成,每个布局对于工程中的一个布局窗口。

  26. Bookmarks:空间书签。

  27. ProjectViewSettings:工程预定义比例尺。

  28. ProjectTimeSettings:工程的时态设置,包括开始时间、结束时间、时间单位、是否开启时间累积等属性。

  29. ProjectDisplaySettings:坐标和方位格式设置,对应的属性可在【工程属性】->【通用】标签下的“坐标和方位显示”->“方位格式”中查看。

工程文件大多数的一级节点包含一个或多个子节点。例如展开Projectlayers节点,其子节点由工程所引用的图层(maplayer)节点组成,里面详细描述了图层的属性,如下图:

由此可见,工程文件包含了当前QGIS会话的详细内容,如果您对这些内容足够熟悉,可以不通过QGIS而用文本编辑器对工程文件进行修改,其效果与使用QGIS界面修改相同。


版权声明

本文欢迎转载,转载时请注明出处。

QGIS基本功 | 19 QGIS工程文件剖析相关推荐

  1. QGIS基本功 | 21 QGIS工程文件属性设置(2)——坐标参照系、变换、默认样式、数据源、关系和变量

    今天继续分享工程文件属性的设置,包括工程坐标参照系.变换.默认样式.数据源.关系和变量六个部分.  01 坐标参照系 工程坐标参照系定义了当前地图窗口所使用的坐标系,决定了如何将数据从其底层原始坐标绘 ...

  2. QGIS基本功 | 22 QGIS工程文件属性设置(3)——宏、QGIS服务

    今天将继续分享QGIS 3.16工程文件属性的设置,包括宏(Macros)和QGIS服务器两个部分.  01 宏(Macros) [工程]->[属性]->[宏]标签页提供工程文件相关联的宏 ...

  3. QGIS基本功|5 QGIS图层进阶(二)- 连接属性表

    GIS界流行一句话:人类活动80%的信息与地理位置有关.然而,我们得到的数据中有很大一部分却没有地理几何图形,而是一张张文字和数字组成的表格,例如,统计局每年发布的统计年鉴.如何将这些表格定位到地图上 ...

  4. QGIS管网水力模型inp文件制图初探

    本文主要讲述了如何使用QGIS加载管网水力模型,并进行节点筛选,再制图显示的过程. 我所接触的供水管网水力模型文件格式为inp,使用EPANET软件打开,然而它的制图形式不太美观,因此我查找了一些资料 ...

  5. Qt中使用的工程文件(.pro文件)

    第一种常用方式: #模块设置,一般设置为app(生成应用程序,默认),subdirs(生成makefile文件编译subdirs指定的子文件夹),lib(生成库文件) TEMPLATE = app # ...

  6. 内核链表list.h文件剖析

    内核链表list.h文件剖析 一.内核链表的结构[双向循环链表] 内核链表的好主要体现为两点,1是可扩展性,2是封装.可以将内核链表复用到用户态编程中,以后在用户态下编程就不需要写一些关于链表的代码了 ...

  7. STM32添加项目所需要的工程文件

    文章目录 解读示例工程文件 模仿示例工程文件创建项目所需要的工程文件 在keil4中把新建文件添加到工程中 工程文件的删除 下载杨桃电子提供的通用工程模板 杨桃32学习笔记,本文图片文字皆为转述 解读 ...

  8. 基于现有工程解读stm32的工程文件

    文章目录 解读32的工程文件 常用工具栏介绍 杨桃32学习笔记,本文图片文字皆为转述 解读32的工程文件 (1)CMSIS文件夹下包含两个c文件,对arm内核和整个单片机系统的基础文件,官方提供的不需 ...

  9. VS2010 ,工程文件减肥

    写一个bat文件来清理VS2010工程文件. 将其放入到工程文件夹下,双击即可自动将sdf,ipch等占用空间很大的文件删除. 这样的方式较之于转移浏览数据库文件的位置而言更为灵活一些,不用特别的设置 ...

最新文章

  1. 独家 | 图解BiDAF中的单词嵌入、字符嵌入和上下文嵌入(附链接)
  2. POJ 3181 Dollar Dayz DP
  3. mybatis+spring+c3p0+maven+ehcache
  4. 数据结构:单链表和双向链表
  5. 使用控制结构——循环语句——基本循环
  6. Oracle的SGA与系统vm.nr_hugepages不匹配导致的故障
  7. linux 驱动 printk 输出变量格式
  8. ZStack实践汇 | 制造业企业IT经理的虚拟化方案选型经历
  9. SoapUI 入门指南
  10. 机器人技术基础pdf
  11. 强烈推荐APP破解常用工具集合!
  12. TDTX云笔记--TDTX个人简历
  13. 【学习笔记】Baby Step Giant Step算法及其扩展
  14. 计算机桌面文件在哪个文件夹,电脑微信文件夹储存在什么位置?
  15. 《Java零基础入门到精通(集合,泛型,IO,反射,JVM, 源码)【渡一教育】》思维导图版笔记(完结)
  16. NR基础1-NR帧结构
  17. omnet结果分析anf文件
  18. idea从零到精通08之IDEA常用插件、提升开发效率
  19. 北京UI设计培训,为什么要学5个月以上
  20. 薪酬管理系统数据库设计

热门文章

  1. 【经验】画动漫人物脸部需要注意些什么?
  2. 学院信息维护-查询学院信息02
  3. linux/ubuntu护眼宝/护眼工具/亮度调节之:brightness-controler
  4. 基于matlab的pid调节论文,毕业论文 基于matlab的智能PID控制器的设计与仿真
  5. php如何删除数组中的空元素,php - 删除空数组元素
  6. 【Python】初识Python
  7. mysql强制索引查询_MySQL FORCE INDEX 强制索引使用
  8. LivePlayer播放器安装与使用
  9. 北大青鸟培训第二周第三天:HTML和CSS相关知识 (持续更新)
  10. unity屏幕后处理全家桶之color grading