更新QGIS项目中的文件位置?


15

我为30个不同的客户端提供了大约30个不同的QGIS Project文件。每个都保存到我的计算机上,并且它们所有相关的矢量和栅格文件都保存在本地。

我们现在正在搬办公室和升级计算机。

结果,我需要将所有文件从计算机移至网络驱动器,从而破坏以前的所有文件引用。

除了手动单击每个文件并查找每个新位置以外,还有其他解决方法。

(每个项目可能有数百个链接要更新)

Answers:


20

我不确定您使用的是哪个版本的QGIS,但是在v> 2.0.1中,您可以使用“处理不良图层”对话框,如下所示:

在此处输入图片说明

  1. 按住Ctrl键的同时选择公共目录中的所有图层
  2. 双击您选择的最后一个
  3. 重新路径之一的图层,然后选择打开
  4. 对其他目录重复此过程

这将按目录(不是数据库层)批量更新基于文件的层:

在此处输入图片说明


1
感谢您指出了这一点!自从ArcGIS在几个版本之前添加了“修复数据源”选项以来,我一直在寻找这样的功能。
HeyOverThere 2013年

我不知道您可以一次用一个公共目录更新多个图层。谢谢!
SAnderka

干杯! 这似乎是我在寻找什么。我还没有尝试过,但是今天会做。如果有效,我会接受答案。
Ger

很好,但是似乎无法使用文件地理数据库,因为它只需要文件而不是目录。作为测试,我试图查看一个名为gdb的奥秘文件是否可行,但是在尝试了大多数之后,我放弃了。
约翰斯

对于MacOS上的QGIS 3.2,这似乎不适用于我。我已经尝试使用Command键和Shift键来选择多个文件,但是当我更改一个路径时,似乎并没有手动编辑多个文件。
亚当·斯图尔特

19

QGIS项目文件是简单的文本文件。您可以使用任何文本编辑器搜索和替换内容。

只需查找如何在旧存储位置和新存储位置中引用文件,就知道必须进行哪些更改。

Notepad ++甚至可以一步完成多个文件的批处理。


1
在macOS上的QGIS 3.2上对此进行了尝试,看起来项目文件现在是二进制文件,因此该解决方案不再起作用。
亚当·斯图尔特

2
@AdamStewart .qgz文件只是.qgs文件的压缩版本。您可以将它们解压缩到您的操作系统中,或者选择保存为QGIS 2中的.qgs文件
。– AndreJ

7

如果在移动数据之前使用相对路径链接保存项目,则无需在新项目中修复任何链接。

在QGIS v2.01中,在移动数据之前,请转到“项目”>“项目属性”并选择“相对路径保存”,然后,只要您只是跨数据复制并保留相同的文件夹结构,则从您的网络驱动器。

保存相对路径


不幸的是,结构的第一位至少会有所不同。
Ger

好的,只要项目和数据相对于彼此保存在相同的结构中,即使第一部分发生更改,相对路径仍将起作用。在下面的示例中,只要您将所有内容移动并保持在Work文件夹级别以下,则路径的初始部分可以根据需要不同。项目= C:/Work/Projects/myproj.qgs和数据= C:/Work/Data/myfile.shp
MAJ742 2013年

接受的只是将C://完全更改为网络驱动器。
Ger

我可能已经找到相对路径问题的解决方案。我希望QGIS团队可以检查并解决此问题。在这里看到我的帖子:gis.stackexchange.com/questions/210992/…–
燕麦

1

我发现一个不错的插件可以使用:Qconsolidate(要安装:在插件设置中,首先选中“ experimental plugins”框)。该插件将项目中的所有图层保存到一个文件夹并编辑路径。文件夹和项目可以从任何地方移动和打开。


Qconsolidate imho解决了另一个问题。它创建数据集的副本,而不是将路径更改为新的网络驱动器位置。
昏暗

这是对的。如果您在多个项目中使用大量大型shapefile,则它不是很有用。但是,如果您使用的工作空间很少,并且在许多不同的地图中都有大量的shapefile,那么最好使用一种简单的方法来对它们进行分组和备份。
汉尼斯·莱德根

QPackage也提供类似的技巧,以获取信息。
gisnside
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.