需要从多个文件夹快速添加多个图层到QGIS项目


12

我已经下载了几个图像Zip文件(每个文件的内容分别是jp2,jpg,jpw,xml,htm和.dbf,.prj,.sbn,.sbx,.shp,.shx),并希望快速将该图像添加到我在QGIS 2.6.1中的工作项目。我试图避免不得不浏览并分别添加每个文件。因为每个文件都位于不同的文件夹中,所以我无法找到一次添加多个文件的方法。


所以您的文件夹中有zip文件,或者您已经提取了zip文件的内容?我正在为后一种情况详细说明答案。恐怕前一种情况将需要一些(Python)脚本。
赫尔曼·卡里略

我已经提取了内容。
reevesii 2015年

Answers:


23

您需要的是QGIS插件全部加载它们。除了一次从多个目录加载文件之外,您还可以:

  • 在QGIS目录中反映目录结构(通过嵌套图层组)。
  • 应用字母数字过滤器,以便仅加载与过滤器匹配的图层(考虑正则表达式)。
  • 仅加载某些几何图形或栅格类型(例如,仅加载多边形矢量或多波段栅格)。
  • 仅加载某些文件扩展名(例如,仅加载.shp文件)。
  • 仅加载位于给定边界框内或与给定边界框相交的图层。

和更多。请查看https://github.com/gacarrillor/loadthemall了解更多详细信息。

在此处输入图片说明


@GermánCarrillo似乎是满足我需要的完美插件,但是当我尝试加载文件时,出现错误:“没有KML文件可以使用此过滤器从基本目录加载。请更改这些参数,然后重试”。我使用的是QGIS 2.14.2,所有过滤器均已关闭,我选择的地图包含两个地图,每个地图都有一个kml文件(只是为了测试,我要导入一个更大的数据集)。
汉尼斯·莱德根

@HannesLedegen您是否尝试使用“ Interesects”过滤器而不是“ Contains”?如果这不起作用,请在该项目的GitHub页面上打开一个新期刊,详细介绍所有内容。
赫尔曼·卡里略

2

作为使用插件的替代方法,您可以为“添加图层”命令提供以分号分隔的文件列表。您可以通过以下方式创建此类列表:

cd /d <Path_to_the_directory_where_your_files_are>
dir *.shp /s /b >All.txt

这为您提供了一个名为的文件All.txt,其中包含具有特定扩展名的所有文件的路径(您可以根据所使用的文件使用不同的掩码),其中每个文件都位于新行中。

D:\Data\01\data01_1.shp
D:\Data\01\data01_2.shp
D:\Data\02\data02_1.shp
D:\Data\02\data02_2.shp

然后,只需;使用文本编辑器(例如Notepad ++)替换所有换行符,然后将结果粘贴到Add Vector Layer...对话框中即可。

对于Notepad ++,您需要将替换模式更改为Extended并替换\r\n;。您将获得一个如下所示的文件:

D:\Data\01\data01_1.shp;D:\Data\01\data01_2.shp;D:\Data\02\data02_1.shp;D:\Data\02\data02_2.shp

0

在Linux上,您可以提取.shp文件列表并将其直接输入“导入向量”对话框中:

#on the command line
ls /home/yourpath/*/*shp|tr "\n" '@'|sed 's/@/" "/g'|sed 's/^/"/g'

在此处输入图片说明

我发现它在QGIS Docker下非常有用,因为出于某种原因“全部加载”插件未显示其对话框。

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.