GeoPackage-简介¶
介绍¶
GeoPackage编码标准描述了一套规则和惯例,用于在SQLite数据库中存储矢量特征、图像分幅矩阵集、栅格地图分幅矩阵集和非空间表格数据。本标准还描述了扩展GeoPackage能力的规则。
- 历史
GeoPackage 1.0于2014年1月被批准为标准。GeoPackage 1.1于2015年8月被批准为标准。GeoPackage 1.2于2017年8月被批准为标准。
- 版本
1.2是当前最新版本
- 测试套件
测试套件存在于 OGC repository.
与其他OGC标准的关系¶
由于GML被序列化为XML,因此非常适合跨网络的地理空间数据交换。相比之下,GeoPackage更适合存储和随机访问文件系统上的地理空间数据。GeoPackage实现了OGC OpenGIS®简单功能接口标准(SFS),该标准为应用程序在关系数据库或对象关系数据库中存储和访问要素数据提供了一种通用方法。
例子¶
让我们看两个GeoPackage文件的例子。这两个文件都可以从 this website . 这些文件包括:
states10.gpkg,包含美国各州及其属性的矢量特征数据
蓝大理石.gpkg它包含图像的平铺矩阵集。
要查看文件的结构,请下载这些文件并使用基本的SQLite3命令行实用程序打开它们。
在Windows上,SQLite3必须从 here。
在Ubuntu/Debian上,SQLite3必须使用
sudo apt-get install sqlite3
或下载自 here。在Mac OS X上,SQLite3预装在较新版本上,可以从终端应用程序打开或从 here。
首先运行以下命令 sqlite3 states10.gpkg
从终端打开states10.gpkg GeoPackage。
SQLite3应用程序运行后,使用以下命令列出GeoPackage中的表 .tables
。请注意,将列出数据库中包含的表的名称。
现在通过运行以下命令关闭SQLite3应用程序 .quit
接下来,运行以下命令 sqlite3 bluemarble.gpkg
从终端打开蓝大理石.gpkg GeoPackage。
SQLite3应用程序运行后,使用以下命令列出GeoPackage中的表 .tables
。请注意,这些表与states10.gpkg GeoPackage中的表不同。这是因为states10.gpkg文件只包含向量特征,而蓝大理石.gpkg文件包含图像的平铺矩阵集。
现在通过运行以下命令关闭SQLite3应用程序 .quit
下面是显示步骤和输出的屏幕截图。
大多数表是可选的,只对特定类型的数据集是必需的。这就是为什么蓝大理石.gpkg数据库中有一些表不在states10.gpkg数据库中。下图显示了GeoPackage的强制表和可选表。
尽管SQLite3命令行实用程序可以列出GeoPackage中包含的表并查询非空间属性,但SQLite3无法读取地理空间内容。GeoPackage阅读器需要同时查看和查询空间和非空间内容。OGC website 包含提供GeoPackage读写功能的软件应用程序列表。
使用免费的开源QGIS应用程序,通过vector file loader按钮打开states10.gpkg文件。
一旦QGIS加载了GeoPackage,它将显示美国的州边界。作为一个GeoPackage阅读器,QGIS能够读取几何图形、空间参考系和其他地理空间内容。
现在我们来看看特性属性。右键单击图层名(显示为statesQGIS),然后从弹出菜单中选择“打开属性表”。
statesGIS数据集中所有功能的属性都显示在属性表中。现在可以像桌面GIS中的任何其他要素数据集一样查询和修改数据。
细节:
在SQLite数据库中实现
基于OGC OpenGIS®Simple Features Interface Standard(SFS),要素几何图形以众所周知的文本(WKT)编码
支持矢量特征数据和图像和地图的平铺矩阵集
用于编码尺寸、重量和功率(SWaP)受限的地理空间数据的理想格式