QGIS|如何正确分发成果数据?

QGIS 如何正确分发成果数据?

为什么做了一幅漂亮的地图,分发给别人,打开后没有看到我本机上相同的样子?这个问题实际上是如何正确分发自己的成果数据的问题。

首先要明确的是,在QGIS中,数据源存储的是点、线、面等空间要素,具体表现为一个个数据文件,如Shapefile文件。样式(Style)是数据在地图窗口中的表达方式,包括颜色、符号、线型等,数据源有了样式之后叫做图层。所以,数据源和图层是两个存在一定关系,但又不能完全划等号的概念。

分发成果数据时,应根据需求确定打包分发的内容。如果接收方只要数据本身,不关心数据可视化效果,那么直接将数据源打包拷贝给他即可。如果接收方想要的是一幅漂亮的地图,那么除了数据源,还要把图层的样式一起分发给接收方,才能得到相同的地图可视化效果。

这里我们讨论第二种情况,即如何正确分发数据源和图层样式。

 01 成果数据

本文要分发数据成果内容包括:

矢量数据面图层:NaturalEarth提供的ne_110m_admin_0_countries。

地图:根据ne_110m_admin_0_countries图层的 "GDP_MD_EST"(GDP)和"POP_EST"(人口)字段制作的两个专题地图。 

  •  着色图:根据人均GDP分级并按照国家面要素着色。

  • 饼图:用饼图的颜色表示人均GDP,饼的大小代表国家的人口数。

 02 保存数据源

数据成果分发时,一般建议在硬盘单独建立目录存储本次分发的所有内容,例如,本文的成果目录为:“H:\数据成果\”。

在【浏览】面板右键点击要保存的数据,选择【导出图层】->【到文件】,打开【矢量图层另存为】对话框。

在【矢量图层另存为】对话框中,【格式】保持默认的“ESRI Shapefile”,点击【文件名称】右侧的【…】按钮,设置保存的路径:“H:\数据成果\ne_110m_admin_0_countries.shp”,点击【OK】按钮。

因为ESRI的Shapefile文件几乎是默认的GIS行业数据交换标准格式,因此在数据成果提交时一般提供Shapefile。Shapefile文件由多个不同扩展名的文件构成,文件比较多,有时需要事先打包。

如果接收方也用QGIS,那么强烈推荐使用GeoPackage格式进行数据共享。GeoPackage格式可以看作一个文件型数据库,以单个文件存储多个图层,非常方便数据的拷贝。

在【矢量图层另存为】对话框中做如下设置即可将图层导出为Geopackage格式:

Geopackage格式以*.gpkg为扩展名,多个图层保存在一个文件中,只需拷贝*.gpkg文件,即可实现多个图层数据共享。

 03 保存与打开图层样式

数据集打包以后,开始处理图层样式分发的问题。QGIS中,图层样式可以保存在三种文件中:项目文件(Project File)、图层定义文件(*.qlr)和图层样式文件(*.qml)。

  • 项目文件(Project File)

QGIS的项目文件(*.qgz)保存了当前QGIS窗口的工作状态,包括所打开的数据(图层)路径、图层符号和样式、地图窗口坐标参照系、打印布局、矢量化设置、关联属性表等。点击菜单【项目】->【保存】或者【项目】->【另存为】,即可保存当前QGIS窗口的所有状态。

在弹出的【另存工程为】对话框中设置项目文件存储的名称和路径,点击【保存】。

将整个“H:\数据成果\”文件夹打包,即可用于成果分发。

作为拿到数据成果一方,需要按照如下步骤打开项目文件:

点击工具栏的【打开工程】按钮,在弹出的【选择一个QGIS工程文件打开】对话框中,找到项目文件“数据成果.qgz”,双击打开。

大多数情况下,打开项目文件会遇到【处理不可用图层】对话框,提示有些图层不可用,并在对话框中列出了图层的名称、类型、数据源(对矢量数据来说为OGR)以及数据源的路径。下方提供【保留不可用图层】、【移除不可用图层】、【浏览】和【应用更改】四个按钮。

实际上,弹出该对话框主要是因为QGIS找不到图层对应的数据源了。仔细观察数据源的路径,发现该路径是数据制作者电脑上的路径,与接收方存储数据的路径不同,QGIS自然找不到数据了。

选择图层,点击【浏览】按钮修复数据源路径。

在弹出的【选择要替换……的文件】对话框中,找到数据源在本机上的路径,点击【打开】按钮。返回到【处理不可用图层】,可以看到数据源路径随之改变为刚设置的路径。

将出错图层的路径替换完毕后,点击【应用更改】按钮,然后点击右上角的【X】关闭对话框。

返回到QGIS主窗口,即可看到数据已经正常打开。

在打开项目文件时如果直接关闭【处理不可用图层】对话框,将会看到一个空的地图窗口,【图层】面板中列出图层名称和相应的样式,图层名称的右侧出现按钮,将鼠标悬停到按钮上,提示“不可用图层!未找到图层数据源,单击设置新数据源”。

此时点击,弹出【选择数据源】对话框,找到正确的数据源位置,也可以修复图层错误。

  • QGIS图层定义文件

QGIS的图层定义文件(*.qlr)是一个XML格式文件,保存了图层的数据源链接和图层的样式信息。

在【图层】面板中右键点击需要共享的图层,选择【导出】->【另存为图层定义文件】。

在弹出的【Save as Layer Definition File】对话框中,设置存储的路径和文件名称,如“H:\数据成果\countries-rulebase.qlr”,点击【保存】关闭对话框。

对于拿到数据的一方,可以直接在【浏览】面板中找到图层定义文件的位置,拖拽到地图窗口中。

同样,如果数据源的路径跟提供方路径不一样,在【图层】面板中会出现(不可用图层!)提示,按照上面修复数据源的步骤修复该图层即可。

  • 图层样式文件(QGIS Style File,*.qml)

图层样式文件(QGIS Style File)是以XML格式存储的文件,保存了图层样式信息,包括符号化定义、符号大小、旋转角度、标签、透明度、混合模式等内容。

在【图层】面板中右键点击图层名称,依次选择【导出】->【另存为QGIS图层样式文件…】,弹出对话框。

在【另存为QGIS图层样式文件】对话框中,设置存储路径和文件名称,如:“H:\数据成果\country-rulebase.qml”,点击【保存】按钮关闭对话框。

按照同样步骤依次保存其他图层的样式文件。然后与数据源一起打包分发。

对于拿到数据的一方,首先在【浏览】面板中找到数据源,拖拽到地图窗口中。

QGIS使用随机颜色对数据进行渲染。在【图层】面板中右键点击图层名称,打开属性对话框。

切换到【符号化】标签页,点击左下角的【样式】按钮,展开下拉菜单,选择【加载样式…】。

在弹出的【数据库样式管理】对话框中,点击【文件】右侧的【…】按钮,找到图层样式文件,将路径填入文本框中。点击【加载样式】按钮,点击右上角【X】返回属性对话框。

在属性对话框中可以看到样式已经加载,点击【OK】按钮,关闭对话框返回地图窗口。

图层样式加载完成后效果如下图:

为什么地图背景没有改变?这是因为地图背景为项目属性所设置,与图层无关,因此图层样式文件和图层定义文件不会保存地图背景颜色,需要单独设置。

点击菜单【项目】->【特性】,打开项目属性对话框,切换到【通用】标签页,点击【背景颜色】设置地图背景。

最终效果如下:

建议采用项目文件(Project File)的方式进行QGIS的数据和地图成果分发。如果项目文件与数据源文件在同一目录下,则项目文件采用相对路径存储数据源路径,可以避免在打开项目文件时找不到图层的情况。


版权声明

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

猜你喜欢

转载自blog.csdn.net/QGISClass/article/details/108994001