在我的项目中,我使用了来自不同目录的大量地理数据。
现在我想将QGIS项目交给同事(例如CD上)。形状从不同的目录自动复制到一个目录?

评论

我知道这个问题很老,但是如果有任何选择可以将所有层都写到一个公用文件夹中,我仍然会很感兴趣还是有其他“最佳实践”来处理该问题?我的意思是,我总是可以在创建临时层后再直接使用它们,然后使用它们,但是...

#1 楼

您正在寻找效果很好的QConsolidate插件。它将所有内容转移到一个目录中,并重写.QGS项目文件(一个XML文件)以指向新的源位置。必须在设置对话框中启用“同时显示实验性插件”。

-效果很好。注意:


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


#2 楼

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

测试的插件为:


QConsolidate 0.2.1
QPackage 1.3
重定位器0.9
<在Windows 10上的QGIS 2.18.14 64位上运行了测试

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

QConsolidate


FileGDB:未复制或翻译(数据丢失)。项目文件仍引用图层
空间:翻译为SHP
地理包装:未经翻译即可复制
地理翻译:完整无缺地复制
QPackage



/> FileGDB:转换为SHP
空间代码:转换为SHP
Geopackage:转换为SHP
GeoTiff:完整无缺地拷贝
FileGDB:转换为SHP,项目文件中的路径不正确
空间符号:转换为SHP,项目文件中的路径不正确
Geopackage:转换为SHP,项目文件中的路径错误:完整无缺地复制

在这三个版本中,QPackage看起来效果最好。数据库连接和Web服务层未经测试。

#3 楼

我不知道QGIS本身的方法,但是项目文件(.qgs)只是一个文本文件。因此,一种原始但有效的方法是将所有内容手动复制到一个目录中,然后使用查找和替换或正则表达式指向新目录来更改.qgs文件中的<datasource></datasource>标签。如果您有许多不同的文件/目录,一种选择是在python中自动进行搜索,方法是搜索.qgs文件中的每个标签,将每个具有该名称的相关文件复制到目录中,然后替换.qgs标记新目录。

#4 楼

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

#5 楼

现在的QGIS(3.14+,可能是3.10以后的版本)有另一个打包矢量层的选项-处理中的“打包层”算法。这不会将整个项目另存为一个包,但是您可以将所有样式以及图层一起保存,从而带走了很多方法。
输入图层的选项将显示画布中所有图层的列表。

...然后选择输出的位置。