我现在正在使用QGIS 2.18,其中包括对GeoPackage格式的支持。

我知道GeoPackage就像Shapefile的替代品,但事实并非如此,因为GeoPackage具有数据库功能。同时,GeoPackage不能完全替代SpatiaLite,因为它没有空间查询和功能。此外,Spatialite还支持GeoPackage。

因此,在QGIS编辑的上下文中,什么时候使用GeoPackage有意义(并从SpatiaLite访问GeoPackage来实现Spatial SQL任务),什么时候更好地使用Spatialite?

评论

我对这个问题也很感兴趣。请记住,由于第一次编辑后出现锁定错误,当前对geopackage-support的支持受到限制。

但这已经解决了吗?没有对2.18产生麻烦。

不幸的是,我确实使用2.18.3

我确实使用旧的错误跟踪器中编写的过程对2.18.3进行了测试,无法重现。在什么情况下您遇到了问题?

在首次使用GeoPackage编辑后,我也遇到了锁定错误,但仅当我在2.18.3中使用新的DWG / DXF导入时才遇到。我可以成功导入DWG,并最初编辑创建的GeoPackage(例如,使用Vector Bender插件对其进行地理定位)。但是,一旦我关闭QGIS项目并重新打开,切换编辑按钮就会变灰,并且GeoPackage无法再次编辑。

#1 楼

QGIS中的GeoPackage和SpatiaLite之间的比较。目前,将GeoPackage与QGIS结合使用并不是真正有效的方法。但是,更改可能会非常快(请参阅添加内容!)。

关于新QGIS 2.99别名QGIS 3的一些新增内容,2017年11月(也进行了比较):GeoPackage现在可以正常使用,而在QGIS 3中没有任何问题。确实遇到了一些可能与QGIS开发人员版本有关的小问题。 SpatiaLite最具问题的问题也已解决。现在可以删除列,而无需任何其他解决方法。两者仍然不支持通过GUI进行栅格写入,这并不是一个大问题,因为数据库中的栅格并不是主要目的。两种格式都是非常好的工作格式。 GeoPackage的重点是传输格式,而SpatiaLite的重点是基于文件的简单数据库系统,其中包含用于构建本地数据存储的许多工具(因为RDBMS比文件格式更像是RDBMS)。 :


事务性SQL和视图(但视图在使用软件中实现的方式有所不同)
“多合一”矢量层,符号体系和文本,栅格
与shapefile相比几乎没有限制的属性表
有时需要VACUUM(特定于数据库的数据存储)
大多数几何类型(如曲线)

> GeoPackage:


是基于SQLite的OGC标准,这意味着在不同软件中的实现应更加一致;例如符号系统将来可能会在使用SLD样式的情况下在QGIS和ArcMap中起作用
pretty young(2014),在QGIS中,它的一些问题一直存在,直到2.18(更新:QGIS 3中的良好支持)
允许反对SpatiaLite的“普通”用户轻松删除QGIS中的列。
现在,DB-Manager不能很好地使用它,并且栅格
支持仅限于读取单个集成栅格(否
写入(使用QGIS 2.18.3)(更新:DB-Manager现在可以与geopackage一起使用)
视图在QGIS中不起作用,但是当不用于许多用户之间共享时,通过虚拟层并不是一个太大的问题(更新:仍然没有视图,因为QGIS 3可以实际创建视图,但之后无法读取它们)地理处理工具不允许附加到现有文件(只能替换整个文件)(更新:现在可以使用)

SpatiaLite:


是SQLite的扩展,在GI软件中以不同的方式实现(主要是由于驱动程序和版本问题)
到现在为止,它已经更好地集成到QGIS中了。
在QGIS中,如果没有不复杂的SQL查询,就无法删除列,但对于某些用户来说,“代码”已经太多了(更新:QGIS 3现在就这样做)大约5MB的空间)
很多其他工具(视图,可能会创建道路网络,许多导入/导出格式,ST_Queries等)


评论


您是否打算仅在QGIS或其他软件中使用GeoPackage或SpatiaLite? SpatiaLite还支持所有不带QGIS的gaia-gis.it/gaia-sins/spatialite-sql-latest.html独立版本。

–user30184
17年2月13日在17:59



我主要将SpatiaLite与QGIS一起使用,还与SpatiaLite-GUI一起使用。我确实在我的QGIS培训课程中对其进行了介绍。唯一的问题是为初学者删除列的问题。我没有在ArcGIS培训中介绍它,因为在某些机构中,FileGeodatabase是必须执行的(有10%的地方不是shapefile仍然是最新技术……)。我开始在高级QGIS课程中宣布GeoPackage,但是上面已经写了一些缺点。但是,由于GDAL具有良好的实现方式,因此直到QGIS具有所需的按钮都不会太久。

–哑光
17年2月14日在7:08

如您所知,您的比较是关于QGIS使用情况的。我想强调一点,通过“投递栏”案例来判断SpatiaLite或GeoPackage是否更好是非常QGIS特定的。 SQLite本身不直接支持此操作sqlite.org/lang_altertable.html。 SpatiaLite和GeoPackage都可以使用相同的解决方法,即使某些软件可能会错过这些按钮。

–user30184
17年2月14日在9:17

我把它放在有关QGIS的原始问题的上下文中。专栏文章的重点是一个示例,我希望该标准将导致程序中更一致的使用,因为这是“普通”用户的主题。不知道使用SpatiaLite是否可以实现这一目标,因为即使在几年之后,集成程度仍然如此不同。最后,对我来说,这可能是一种新的标准化传输格式(GeoPackage)。 SpatiaLite更像是具有内置功能(ST查询,大量数据导入选项,网络...)的GIS。

–哑光
17年2月14日在9:37

GeoPackage和SpatiaLite均基于SQLite。

– Matthias Kuhn
18年4月5日在11:18