对比
GeoPackage 与 GeoJSON
两者都表示地理数据,但 GeoPackage 是基于 SQLite 的多图层容器,GeoJSON 则是表示地理要素的 JSON 文本格式。
应该选择哪种格式?
需要打包多个图层和瓦片、SQL 查询或离线使用时选 GeoPackage;需要易读的要素交换和 Web API 时选 GeoJSON。
适用于 GeoPackage
在单个文件中分发和使用地理空间数据
- 为 GIS 或离线使用组合矢量要素、栅格瓦片和属性
适用于 GeoJSON
交换地理要素及属性
- 网络地图中的点、线和多边形
基本信息
| 项目 | GeoPackage | GeoJSON |
|---|---|---|
| 扩展名 | .gpkg | .geojson, .json |
| MIME 类型 | application/geopackage+sqlite3 | application/geo+json |
| 常见用途 | 在单个文件中分发和使用地理空间数据 | 交换地理要素及属性 |
| 打开方式 | 使用支持 GeoPackage 的 GIS 软件(如 QGIS)打开,并检查图层、坐标参考系和扩展。SQLite 工具可能能显示其表,但解释几何和地图瓦片需要兼容软件。 | 用支持 GeoJSON 的地图工具或文本编辑器打开,并在地图上检查位置和形状。 |
| 导出或转换 | 可以导出为 GeoJSON、Shapefile 或 MBTiles。目标格式未必保留所有图层、属性、坐标参考系或瓦片;导出后应检查要素数量、坐标、属性和地图显示结果。 | 转换时在目标工具中检查坐标顺序、坐标参考系、几何图形及属性。 |
按用途选择
为 GIS 或离线使用组合矢量要素、栅格瓦片和属性
在单个文件中分发和使用地理空间数据
GeoPackage网络地图中的点、线和多边形
交换地理要素及属性
GeoJSON关键点 1
GeoPackage 遵循 OGC SQLite 架构,可包含矢量要素、栅格瓦片和属性表;GeoJSON 用 JSON 表示要素和属性。
进一步了解差异关键点 2
GeoPackage 在一个文件中支持多张表和 SQL 访问;GeoJSON 是易读文本,便于传给 Web 地图和 API。
进一步了解差异进一步了解差异
若需要可移植的数据库容器来收纳多个图层、瓦片并进行 SQL 查询,尤其是在离线环境中,可选 GeoPackage。若要通过 Web 工具交换较小的要素集合或直接检查文本,可选 GeoJSON。请核对坐标参考假设、扩展和目标软件支持情况。
- GeoPackage 是符合 OGC 架构的 SQLite 数据库;GeoJSON 使用 Feature 和 FeatureCollection 对象,坐标采用 RFC 规定的 WGS 84 经度和纬度。
- GeoPackage 可打包多个图层和栅格瓦片矩阵,并用 SQL 查询属性。GeoJSON 易于序列化和阅读,但不定义数据库查询或瓦片金字塔。
- SQLite 文件不一定是 GeoPackage,可选扩展也可能影响互操作性。GeoJSON 使用方应遵守 RFC 坐标顺序和 WGS 84 前提。
常见问题
GeoJSON 能保存栅格地图瓦片吗?
GeoJSON 表示地理要素和属性,不定义标准瓦片金字塔;GeoPackage 则有保存栅格瓦片的标准选项。
所有 SQLite 数据库都是 GeoPackage 吗?
不是。它必须符合 GeoPackage 架构和元数据要求;任意 SQLite 文件都不自动符合该标准。