GeoPackage的基本概念

标识地理包

A GeoPackage 是一种 SQLite Database 文件,其中包含 .gpkg extension 。如果不确定文件是否为SQLite数据库,可以使用二进制或文本编辑器查看文件的起始字节,并查看它们是否声明 "SQLite format 3"

打开地理包

打开GeoPackage的方式有多种。

  • 要使用命令行SQL界面,请考虑使用“sqlite”命令 (SQLite )。

  • 要使用图形SQL界面,请考虑 DB Browser for SQLite

  • 要使用Web应用程序,请考虑使用 NGA's application 只要GeoPackage文件不太大即可。

  • 对于使用桌面应用程序,有许多选项。我们建议您选择最适合您的操作环境的GeoPackage实施。一种开放源码的替代方案是 QGIS

  • 有许多GeoPackage API,包括以下内容: * GDAL / OGR * The GeoPackage-Java library

GeoPackage社区尝试维护可操作的GeoPackage实现列表,此列表可在 implementations page 。有关实施地理包的特定产品和产品版本的其他信息,还可以在http://www.opengeospatial.org/resource/products.上找到您可以按GeoPackage标准的特定版本进行搜索。注:搜索所有实施产品。

创建地理包

同样,如果您希望从头开始或从现有源文件(如shapefile或.csv)创建新的GeoPackage,以下是一些建议:

  • 要使用直接SQL访问,请从 empty geopackage template

  • 要使用桌面应用程序,请参阅上面的实现列表

  • 要使用命令行程序,请考虑 GDAL 矢量和栅格实用程序

  • blog post (标题为“使用参考数据创建GeoPackage”一节)提供了一个示例,描述了使用ogr2ogr创建GeoPackage的步骤。该帖子还提供了有关如何添加 SpatiaLite 扩展以在SQLite中启用进一步的空间分析。

    注意:为了实现最大的互操作性,请从数据库标识符(表名、列名等)开始。具有小写字符,并且仅使用小写字符、数字0-9和下划线 (_ )。

检查GeoPackage版本

使用DB Browser等直接SQL接口是检查GeoPackage版本的最简单方式。SQLite使用 "pragma" statements 实现非标准SQL函数。这些语句可以像任何其他SQL语句一样执行,并且在相关的情况下,它们返回一个结果集。您需要了解的两个用法是:

  • PRAGMA application_id
    • 1196444487(32位整数值0x47504B47或 GPKG ASCII),适用于GPKG 1.2和更高版本

    • 1196437808(32位整数值0x47503130或 GP10 ASCII)用于GPKG 1.0或1.1

  • PRAGMA user_version
    • 对于1.2版和更高版本,这将返回一个整数,表示版本号,格式为MMmmPP(MM=主要版本,mm=次要版本,PP=补丁)。因此1.2等于10200。

运行可执行测试套件

这个 GeoPackage Executable Test Suite (ETS)是一个一致性测试套件,用于验证GeoPackage数据容器的结构和内容。要运行ETS,请执行以下操作:

  1. 打开该站点(以上链接)。

  2. 使用提供的链接创建帐户。

  3. 登录。

  4. 创建新会话。

  5. 选择GeoPackage 1.2规范(或更高版本(如果可用))。

  6. 使用URL框或文件上载提供文件。

  7. 选择“开始”按钮。

ETS是托管在 GitHub Repository