15.1. 打开数据
作为开源软件生态系统的一部分,QGIS构建在不同的库基础之上,这些库与自己的提供程序相结合,提供读取和编辑多种格式的功能:
矢量数据格式包括地理包、GML、GeoJSON、GPX、KML、逗号分隔值、ESRI格式 (形状文件、地理数据库…)、MapInfo和MicroStation文件格式、AutoCAD DWG/DXF、GRASS等。请参阅 支持矢量格式 的完整列表。
栅格数据格式包括GeoTIFF、JPEG、ASCII Gridded XYZ、MBTiles、R或Idrisi栅格、GDAL Virtual、SRTM、Sentinel数据、ERDAS IMAGINE、ArcInfo二进制网格、ArcInfo ASCII 网格等。请参阅 支持栅格格式 的完整列表。
数据库格式包括PostgreSQL/PostGIS、SQLite/SpatiaLite、Oracle、MS SQL Server、SAP HANA、MySQL等。
Web地图和数据服务 (WM(T)S、WFS、WCS、CSW、XYZ瓦片、ArcGIS服务等) 也由QGIS提供程序处理。有关内容的更多信息,请参阅 Working with OGC / ISO protocols 。
您可以从存档文件夹读取支持的文件,并使用QGIS本地格式,如QML文件 (QML - QGIS样式文件格式) 以及虚拟和存储图层。
GDAL 和QGIS本地提供程序支持80多种矢量和140多种栅格格式。
备注
由于各种原因,并非所有列出的格式都可以在QGIS中使用。例如,有些需要外部专有库,或者您的操作系统的GDAL/OGR安装程序可能无法支持想要使用的格式。要查看可用格式的列表,请在命令行运行 ogrinfo --formats
(矢量) 和 gdalinfo --formats
(栅格) ,或在QGIS菜单 中查验。
在QGIS中,不同的数据格式使用不同的工具打开数据集,主要在 图层管理 工具栏 (通过 菜单激活) 中获取。但是,所有这些工具都指向同一对话框,即 数据源管理器 对话框,您可以使用 数据源管理器工具栏 上的 打开数据源管理器 按钮或按 Ctrl+L 打开该对话框。 数据源管理器 对话框 (图 15.1) 提供了统一的界面来打开基于文件的数据以及QGIS支持的数据库或Web服务。
菜单或从除了这个主要入口点之外,还可以使用 数据库管理器 插件,它提供了分析和操作连接数据库的高级功能。有关数据库管理器功能的更多信息,请参阅 DB Manager Plugin 。
还有许多其他工具 (本地或第三方插件),可以帮助您打开各种数据格式。
本章仅介绍QGIS中默认提供的用于加载数据的工具。主要聚焦 数据源管理器 对话框,但除了介绍每个选项卡之外,还将探索基于数据提供程序或格式特性的工具。
15.1.1. 浏览器面板
浏览器 是快速方便地将数据添加到工程中的主要方式之一。它有以下几种途径:
在这两种情况下,无论图层类型 (栅格、矢量、表) 或数据源格式 (普通或压缩文件、数据库、Web服务) 如何, 浏览器 都可以帮助您在文件系统中导航并管理地理数据。
15.1.1.1. 探索界面
在浏览器面板的顶部,可以找到一些按钮来帮助您执行以下操作:
过滤浏览器 搜索指定数据。输入搜索关键词或通配符,浏览器将过滤树,只显示匹配数据库表、文件名或文件夹的路径 -- 其他数据或文件夹不会显示。请参阅 图 15.2 中的浏览器面板 (2) 示例。可以区分或不区分大小写,也可以设置为:
正常: 显示包含搜索文本的项
通配符: 使用
?
和/或*
字符精确搜索指定搜索文本的位置正则表达式
浏览器 面板中的条目是按层级结构组织的,并有几个顶级条目:
收藏夹 可以在其中放置指向常用位置的快捷方式
空间书签 可以在其中储存常用的地图范围 (请参阅 Bookmarking extents on the map)
工程主目录: 快速访问存储与工程相关 (大部分) 数据的文件夹。默认值是工程文件所在的目录。
文件系统和文件系统根目录中的 主 目录。
连接本地或网络驱动器
之后是容器/数据库类型和服务协议,具体取决于您的平台和底层库:
15.1.1.2. 与浏览器项交互
浏览器支持在浏览器中拖放,从浏览器拖放到画布和 图层 面板,从 图层 面板拖放到浏览器中的图层容器 (例如地理包)。
可以展开浏览器中的工程文件项,显示该工程中包含的完整图层树 (包括组)。工程项的处理方式与浏览器中的任何其他项相同,因此可以在浏览器中拖放 (例如,将图层项复制到地理包文件中),也可以通过拖放或双击将其添加到当前工程中。
在 浏览器 面板中的某个元素上单击鼠标右键,即可打开该元素的上下文菜单。
对于文件系统目录条目,上下文菜单提供以下内容:
要在所选条目中创建:
目录...
地理包...
形状文件...
添加到收藏夹: 收藏夹文件夹可以随时重命名 (重命名收藏条目...) 或移除 (移除收藏条目) 。
从浏览器中隐藏: 隐藏文件夹可以从 设置切换为可见
快速扫描此目录
打开目录
在终端打开
工程属性...
目录属性...
对于可以在工程中充当图层的子条目,上下文菜单将支持条目。例如,对于非数据库、非基于服务的矢量、栅格和网孔数据源:
添加图层到工程
图层属性
删除 "<name of file>"...
或在文件资源管理器中显示
文件属性
在 图层属性 条目中,您将发现 (类似于将图层添加到工程后在 矢量 和 栅格 图层属性中发现的内容):
图层的 元数据 。元数据组: 来自数据源的信息 (如果可以, 路径 将是到源的超链接)、 识别 、 范围 、 访问 、 字段 (用于矢量图层) 、 波段 (用于栅格图层) 、 联系人 、 链接 (用于矢量图层) 、 参考 (用于栅格图层) 、 历史 。
预览 面板
矢量源的属性表 (在 属性 面板中)。
要使用 浏览器 将图层添加到工程中,请执行以下操作:
如上所述启用 浏览器 后,将显示包含文件系统、数据库和Web服务的浏览器树。在数据库和Web服务呈现之前,您可能需要进行连接 (请参阅专用章节)。
在列表中查找图层。
使用上下文菜单、双击其名称,或将其拖放到 地图画布 中。您的图层现在已添加到 图层面板 ,并且可以在地图画布上查看。
小技巧
直接从浏览器打开QGIS工程
也可以双击其名称或拖放到地图画布,直接从浏览器面板打开QGIS工程。
加载文件后,可以使用地图导航工具对其进行缩放。要更改图层的样式,请双击图层名称或右键单击图例中的名称,然后从上下文菜单选择 图层属性 对话框。有关为矢量图层设置符号的详细信息,请参阅 Symbology Properties 章节。
,打开右键单击浏览器树中的项可以帮助您:
对于文件或表,显示其元数据或在您的工程中打开。表甚至可以被重命名、删除或清空。
对于文件夹,可以将其标记到您的收藏夹,或从浏览器树中隐藏。隐藏文件夹可以在
选项卡进行管理。管理 空间书签: 书签可以作为
XML
文件创建、导出和导入。创建与数据库或Web服务的连接。
刷新、重命名或删除架构。
还可以通过简单拖放将文件导入数据库,或将表从一个架构/数据库复制到另一个。第二个浏览器面板可用于避免拖动时长时间滚动,只需选择文件并从一个面板拖放到另一个面板即可。
小技巧
从操作系统文件浏览器中通过简单拖放将图层添加到QGIS
您还可以通过将文件从操作系统文件浏览器拖放到 图层面板 或地图画布来将文件添加到工程中。
15.1.2. 数据库管理器
数据库管理器 插件是另一个用于集成和管理QGIS支持的空间数据库格式 (PostGIS、SpatiaLite、地理包、Oracle Spatial、MS SQL Server、Virtual图层) 的工具。通过 菜单激活。
连接到数据库并显示其结构和内容
预览数据库表
通过双击或拖放将图层添加到地图画布
从QGIS浏览器或其他数据库向数据库添加图层
创建SQL查询并将其输出添加到地图画布
创建 虚拟图层
有关数据库管理器功能的更多信息,请参阅 DB Manager Plugin 。
15.1.3. 基于提供程序加载工具
除了浏览器面板和数据库管理器 (QGIS提供的用于添加图层的主要工具) 之外,您还可以找到特定于数据提供程序的工具。
备注
一些 外部插件 还提供了在QGIS中打开特定文件格式的工具。
15.1.3.1. 从文件加载图层
要从文件加载图层,请执行以下操作:
在 数据源管理器 对话框中打开图层类型选项卡,即单击 打开数据源管理器 按钮 (或按 Ctrl+L) 并启动目标选项卡或:
单击 ... 浏览 按钮
导航到文件系统并加载支持的数据源。按住 Ctrl 键并单击对话框中的多个项目,或者按住 Shift 键单击范围中的第一个和最后一个项目来选择项目范围,这样可以同时加载多个图层。只有受支持的格式才会显示在格式过滤器中。可以通过选择
所有文件
(下拉菜单中的顶级项) 加载其他格式。点击 打开 将选中的文件加载到 数据源管理器 对话框中
点击 添加 将文件加载到QGIS,并将其显示在地图视图中。 图 15.7 显示了加载
alaska.shp
文件后的QGIS。
备注
为了加载矢量和栅格文件,GDAL驱动程序提供了定义打开操作的功能。当选择文件时,将显示这些内容。有关选项的详细说明,请参阅 https://gdal.org/drivers/vector/ 、 https://gdal.org/drivers/raster 。如果在QGIS中选择了文件,带有超链接的文本将直接指向所选文件类型的文档。
备注
由于某些格式如 MapInfo (.tab
) 或 Autocad (.dxf
) 允许在单个文件中混合不同类型的几何图形,因此在加载此类数据集会打开一个对话框,选择要使用的几何图形,以便每个图层有一个几何图形类型。
添加矢量图层 和 添加栅格图层 选项卡允许从 文件 其他源类型加载图层:
您可以加载特定的矢量格式,如
ArcInfo Binary Coverage
、UK. National Transfer Format
, 以及US Census Bureau
或OpenfileGDB
的原始TIGER格式。要执行此操作,请选择 目录 作为 源类型 。在这种情况下,点击 ... 浏览 后可以在对话框中选择目录。使用 数据库 源类型,可以选择现有的数据库连接或创建一个所选数据库类型的连接。一些支持的数据库类型是
ODBC
,Esri个人地理数据库
,MS SQL Server
以及PostgreSQL
或MySQL
。点击 新建 按钮将打开 创建新OGR数据库连接 对话框,该对话框的参数可以在 创建存储的连接 中查找。点击 打开 从可用的表中进行选择,例如启用PostGIS数据库。
协议: HTTP、云及其他 源类型可以打开存储在本地或网络的数据,可以是公共访问或商业云存储服务的私有存储桶中的数据。支持的协议类型包括:
15.1.3.2. 加载网孔图层
网孔是一种具有时态和其他构件的非结构化网格。空间构件包含2D或3D空间中的顶点、边和面的集合。有关网孔图层的详细信息,请参阅 Working with Mesh Data 。
要将网孔图层添加到QGIS,请执行以下操作:
- 对话框,方法是从 菜单或单击
点击 ... 浏览 按钮选择文件。请查看支持的 各种格式 。
选择文件,然后点击 添加 按钮。图层添加将使用本地网孔渲染。
如果选中的文件包含多个网孔图层,将显示一个对话框,提示您选择要加载的子图层。进行选择并点击 确定 按钮,图层将使用本地网孔渲染加载。也可以将其加载到群组中。
15.1.3.3. 导入分隔文本文件
可以使用上述工具加载分隔文本文件 (例如 .txt
, .csv
, .dat
, .wkt
)。这样,它们将显示为简单的表格。有时,分隔文本文件可能包含您想要可视化的坐标/几何图形。这就是 添加分隔文本图层 的设计目的。
单击 ... 浏览 按钮选择要导入的分隔文本文件 (例如
qgis_sample_data/csv/elevp.csv
) 。在 图层名 字段中,提供用于工程中图层的名称 (例如
高程
) 。配置设置以满足您的数据集和需求,如下所述。
文件格式
选择文件后,QGIS就会尝试用最近使用的分隔符解析文件,识别字段和行。为了使QGIS能够正确解析文件,选择正确的分隔符非常重要。您可以通过以下选项指定分隔符:
记录和字段
其他一些合适的选项可用于数据识别:
字段类型检测
QGIS尝试检查可选附属CSVT文件的内容 (请参阅: GeoCSV specification) 并扫描整个文件,以确保所有值都可以正确转换而自动检测字段类型 (除非未勾选 检测字段类型 ),回退字段类型为文本。
检测到的字段类型显示在数据样例预览表中的字段名称下,如有必要可以手动更改。
支持以下字段类型:
布尔型
被解析为布尔值的不区分大小写的文字对是1
/0
,true
/false
,t
/f
,yes
/no
非负整数 (整数)
非负整数 (整数 - 64位)
小数
: 双精度浮点数日期
时间
日期和时间
文本
几何图形定义
解析文件后,将 几何图形定义 设置为
图层设置
此外,您还可以启用:
使用子集索引 可以提高 子集筛选 的性能 (在图层属性中定义时)。
最后,单击 添加 将图层添加到地图。在我们的示例中,名称为 Elevation
的点图层被添加到工程中,其行为与QGIS中的任何其他地图图层类似。该图层是对 .csv
源文件 (因此链接到该文件) 进行查询的结果,需要 保存 才能在磁盘上获得空间图层。
示例数据
在设置解析属性时,示例数据预览会根据应用的设置进行更新。
此外,在示例数据表中,可以覆盖自动确定的列类型。
15.1.3.4. 导入DXF或DWG文件
DXF
和 DWG
文件可以通过浏览器面板的简单拖放添加到QGIS中。系统将提示您选择要添加到工程中的子图层。添加的图层具有随机样式属性。
备注
对于包含多种几何图形类型 (点、线和/或多边形) 的DXF文件,图层名称将生成为 <filename.dxf> entities <geometry type> 。
为了在QGIS中保留dxf/dwg文件结构及其符号,您可能需要使用专用的
工具,并允许:将元素从图形文件导入到地理包数据库。
将导入的元素添加到工程中。
在 DWG/DXF导入 对话框,要导入图形文件内容,请执行以下操作:
输入 目标包 的位置,即储存数据的新地理包文件。如果提供了现有文件,则会盖写该文件。
指定图形文件中数据的坐标参照系。
使用 导入 按钮选择要使用的DWG/DXF文件 (每个地理包一个)。地理包数据库将自动填充图形文件内容。根据文件的大小,这可能需要一些时间。
将 .dwg
或 .dxf
数据导入地理包数据库后,对话框下半部分的框架将填充导入文件的图层列表。在此,可以选择要添加到QGIS工程的图层:
15.1.3.5. 导入开放街道地图矢量
开放街道地图项目之所以受欢迎,是因为许多国家没有免费的地理数据,比如数字路线图。OSM项目的目标是根据GPS数据、航空摄影和当地知识创建免费可编辑的世界地图。为了支持这一目标,QGIS提供了对OSM数据的支持。
使用 浏览器面板, 可以将 .osm
文件加载到地图画布,在此情况下,您将看到一个对话框,用于根据几何图形类型选择子图层。加载的图层将包含 .osm
文件中几何图形类型的所有数据,并保留 osm
文件的数据结构。
15.1.3.6. SpatiaLite图层
第一次从SpatiaLite数据库加载数据时,首先执行以下操作:
这将打开一个窗口,允许您连接到QGIS已知的SpatiaLite数据库 (从下拉菜单中选择),或者定义与新数据库的新连接。要定义新连接,请单击 新建 ,然后使用文件浏览器指向SpatiaLite数据库,该数据库是扩展名为 .sqlite
的文件。
QGIS还支持SpatiaLite中的可编辑视图。
15.1.3.7. GPS
有几十种不同的文件格式用于存储GPS数据。QGIS使用的格式称为GPX (GPS交换格式),这是一种标准的交换格式,可以在同一文件中包含任意数量的航点、路径和轨迹。
使用 ... 浏览 按钮选择GPX文件,然后使用复选框选择要从该GPX文件加载的要素类型。每个要素类型都将加载在一个单独的图层中。
有关GPS数据操作的更多信息,请访问 使用GPS数据 。
15.1.3.8. GRASS
GRASS GIS Integration 章节介绍了使用GRASS矢量数据的方法。
15.1.4. 图层元数据搜索面板
图层元数据搜索面板允许浏览已注册元数据提供程序中的图层元数据,并将其添加到工程。
列表可以按文本、当前工程和地图画布范围进行过滤。
元数据的来源是通过图层元数据提供程序系统实现的,该系统可以通过插件进行扩展。
QGIS提供了开箱即用的图层元数据提供程序,用于从允许元数据存储的连接中检索元数据 (更多信息请参阅 将元数据保存到数据库) 。
15.1.5. QGIS自定义格式
QGIS提供了两种自定义格式:
15.1.6. QLR - QGIS图层定义文件
可以在图层上下文菜单使用 图层定义文件 (QLR - .qlr
) 。
QLR格式可以与其他QGIS用户共享 "完整" 的QGIS图层。QLR文件包含指向数据源的链接,以及为图层设置样式所需的所有QGIS样式信息。
QLR文件显示在浏览器面板中,可用于将图层 (及其保存的样式) 添加到图层面板。还可以将QLR文件从系统文件管理器拖放到地图画布。
15.1.7. 连接到Web服务
使用QGIS,可以访问不同类型的 OGC Web 服务 (WM(T)S, WFS(-T), WCS, CSW 等)。借助 QGIS Server 还可以发布此类服务。 QGIS服务器指南/手册 包含对这些功能的描述。
15.1.7.1. 使用矢量瓦片服务
可以通过 数据源管理器 对话框的 矢量瓦片 选项卡或 浏览器 面板中 矢量瓦片 条目的上下文菜单添加矢量瓦片服务。服务可以是 新建通用连接... 或 新建ArcGIS矢量瓦片服务连接... 。
您可以通过添加以下内容来设置服务:
名称
URL: 通用服务的类型为
http://example.com/{z}/{x}/{y}.pbf
,基于ArcGIS的服务类型是http://example.com/arcgis/rest/services/Layer/VectorTileServer
。该服务必须提供.pbf
格式的瓦片。最小缩放级别 和 最大缩放级别: 矢量瓦片具有金字塔结构。通过使用这些选项,可以从瓦片金字塔单独生成图层。然后,这些图层将用于在QGIS中渲染矢量瓦片。
对于墨卡托投影 (OpenStreetMap矢量瓦片使用),缩放级别 0 以 1:500.000.000 的比例表示整个世界。缩放级别 14 表示的比例为 1:35.000。
样式URL: 指向 MapBox GL JSON 样式配置的URL。如果提供,那么每当将连接中的图层添加到QGIS时,就会应用该样式。对于Arcgis矢量瓦片服务连接,URL会覆盖服务器配置中指定的默认样式配置。
认证 配置 (如有必要)
引用
图 15.16 显示了带有MapTiler行星矢量瓦片服务配置的对话框。
可以通过 数据源管理器 对话框中的 矢量瓦片 条目或 浏览器 面板中的上下文菜单将配置保存到 .XML
文件 (保存连接) 。同样,也可以从文件 (加载连接) 添加配置。
设置与矢量瓦片服务的连接后,可以:
编辑 矢量瓦片连接设置
移除 连接
在 浏览器 面板的条目上右键单击,还可以:
添加图层到工程: 双击也可以添加图层
查看 图层属性... 并访问元数据以及由服务提供的数据预览。将图层加载到工程后,可以使用更多设置。
15.1.7.2. 使用XYZ瓦片服务
可以通过 数据源管理器 对话框的 XYZ 选项卡或 浏览器 面板中 XYZ瓦片 条目的上下文菜单添加XYZ服务。点击 新建 (分别 新建连接) 并提供:
名称
URL
认证 配置 (如有必要)
最小缩放级别 和 最大缩放级别
引用
瓦片分辨率: 可接受的值为 未知 (无缩放), 标准 (256x256 / 96DPI) 和 高 (512x512 / 192DPI)
插值: 按照预定义的编码方案将WMTS/XXYZ栅格数据集转换为单波段浮点类型的栅格图层。支持的方案有 默认 (不进行转换), MapTiler地形RGB 和 Terrarium地形RGB 。所选转换器将把RGB源值转换为每个像素的浮点值。加载后,该图层将显示为单波段浮点栅格图层,可以使用QGIS常见的 栅格渲染器 进行样式设置。
默认情况下,QGIS提供一些默认可随时使用的XYZ瓦片服务:
Mapzen Global Terrain: 允许直接访问工程的全球DEM源。更多信息和资源,请访问 https://registry.opendata.aws/terrain-tiles/
OpenStreetMap: 访问世界2D地图。 图 15.17 显示了具有 OpenStreetMap XYZ 瓦片服务配置的对话框。
可以通过 数据源管理器 对话框中的 XYZ瓦片 条目或 浏览器 面板中的上下文菜单将配置保存到 .XML
文件 (保存连接) 。同样,也可以从文件 (加载连接) 添加配置。
开放街道地图的XML文件如下所示:
<!DOCTYPE connections>
<qgsXYZTilesConnections version="1.0">
<xyztiles url="https://tile.openstreetmap.org/{z}/{x}/{y}.png"
zmin="0" zmax="19" tilePixelRatio="0" password="" name="OpenStreetMap"
username="" authcfg="" referer=""/>
</qgsXYZTilesConnections>
设置与XYZ瓦片服务的连接后,可以:
编辑 XYZ连接设置
移除 连接
在 浏览器 面板的条目上右键单击,还可以:
- ,
添加图层到工程: 双击也可以添加图层
查看 图层属性... 并访问元数据以及由服务提供的数据预览。将图层加载到工程后,可以使用更多设置。
XYZ瓦片服务示例:
OpenStreetMap单色: URL:
http://tiles.wmflabs.org/bw-mapnik/{z}/{x}/{y}.png
, 最小缩放级别: 0, 最大缩放级别: 19。谷歌地图: URL:
https://mt1.google.com/vt/lyrs=m&x={x}&y={y}&z={z}
, 最小缩放级别: 0, 最大缩放级别: 19。Open Weather Map Temperature: URL:
http://tile.openweathermap.org/map/temp_new/{z}/{x}/{y}.png?appid={api_key}
最小缩放级别: 0, 最大缩放级别: 19。
15.1.7.3. 使用 ArcGIS REST 服务器
可以通过 数据源管理器 对话框的 ArcGIS REST Server 选项卡或 浏览器 面板中 ArcGIS REST 服务器 条目的上下文菜单添加 ArcGIS REST 服务器。点击 新建 (分别 新建连接) 并提供:
名称
URL
共享终端URL
内容终端URL
认证 配置 (如有必要)
引用
备注
设置相应Portal终端URLS集的 ArcGIS Feature Service 连接后,可由浏览器面板中的内容组进行浏览。
如果连接设置了Portal终端,在浏览器展开连接将显示 “组” 和 “服务” 文件夹,而不是通常显示服务的完整列表。展开组文件夹将显示用户所属的所有内容组的列表,每个内容组都可以展开以显示属于该组的服务条目。
可以通过 数据源管理器 对话框中的 ArcGIS REST Server 条目将配置保存到 .XML
文件 (保存连接) 。同样,也可以从文件 (加载连接) 添加配置。
设置与 ArcGIS REST Server 的连接后,可以: