QGIS中是否具有自动功能,可以将项目中的所有文件打包以实现可传输性?


35

在我的项目中,我使用来自不同目录的大量地理数据。现在,我想将QGIS项目交给一位同事(例如CD)。

是否可以将形状从不同目录自动复制到一个目录?


1
自2016年2月5日起,QConsolidate插件可与shapefile,tif栅格和(!)Arc coverage一起正常使用。但是,文件地理数据库要素类(作为点)不会复制到输出文件夹中。
斯图史密斯

Answers:


44

您正在寻找效果很好的QConsolidate插件。它将所有内容传送到单个目录,并重写.QGS项目文件(XML文件)以指向新的源位置。


QConsolidate仍列为实验性-您必须在设置对话框中启用“显示实验性插件”。

但是-效果很好。笔记:

  • 您必须先保存正在处理的项目,然后再尝试将其合并到其他位置。
  • 输出格式将是项目(.QGS)文件,以及一个名为“ layers”的文件夹,其中包含“ layers”(惊奇!)。
  • QConsolidate会将数据库层转换为shapefile,并重写项目文件以引用新的shapefile;
  • 通常,您可能希望在外部/拇指驱动器上共享整合的项目,但请先将其保存在本地硬盘上,因为如果尝试直接整合到慢速介质上,那么进行的许多写操作实际上会使速度变慢。

非常感谢你。QConsolidate正是我想要的。
Hendrik Pehlke 2012年

1
只是寻找相同问题的答案。我猜想使用Qconsolidate和relocator插件,这个主题可以看得很深。但我真的希望重新定位的发展拿起因为QConsolidate似乎是几乎死:(没有一个在2年内提交GitHub的页面上。
马丁

20

我刚刚测试了这三个插件,它们试图对具有一系列基于文件格式的项目文件执行您要求的操作。结果如下:

测试的插件为:

  • Q合并0.2.1
  • QPackage 1.3
  • 定位器0.9

测试已在Windows 10的QGIS 2.18.14 64位上运行

这三个插件都可以毫无问题地处理shapefile,将数据移至目标目录并创建了一个引用数据集本地副本的项目。

Q合并

  • FileGDB:不复制或翻译(数据丢失)。项目文件仍引用图层
  • Spatialite:翻译为SHP
  • 地理包装:无需翻译即可复制
  • GeoTiff:完整复制

Q包装

  • FileGDB:转换为SHP
  • Spatialite:翻译为SHP
  • Geopackage:翻译为SHP
  • GeoTiff:完整复制

搬迁者

  • FileGDB:转换为SHP,项目文件中的路径不正确
  • Spatialite:转换为SHP,项目文件中的路径不正确
  • Geopackage:转换为SHP,项目文件中的路径不正确
  • GeoTiff:完整复制

在这三者中,QPackage似乎表现最好。数据库连接和Web服务层未经测试。


极好的答案-正在考虑类似地更新我的并且发现了这一点。您对重写的.QGS文件本身有什么经验?一段时间前,我对QConsolidate的最后一次体验是提供格式错误的数据和QGS文件目录。
Simbamangu

老实说,我不使用插件,但是会根据需要编写对QGS文件副本的脚本修改。这个答案是基于对客户的一些测试,我认为这会带来更大的好处。
安迪·哈富特

我使用了QPackage,效果很好。我会选择其他方式,但目前对此解决方案感到满意...
Paulo Martinho

6

我不知道QGIS本身的方法,但是项目文件(.qgs)只是一个文本文件。因此,一种原始但有效的方法是将所有内容手动复制到一个目录中,然后<datasource></datasource>使用查找和替换或使用正则表达式来指向新目录来更改.qgs文件中的标记。

如果您有很多不同的文件/目录,一种选择是在python中自动进行搜索,方法是搜索.qgs文件中的每个标签,将每个具有该名称的相关文件复制到目录中,然后替换.qgs标记新目录。


4

现在还有新的relocator插件。(目前也标记为实验性)。使您有机会将项目文件的所有图层保存到一个目录,甚至保存为zip文件。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.