在QGIS中安装文件地理数据库(* .gdb)支持吗?


158

我花了大约两天时间来找到在QGIS(或任何其他开源软件)中打开GDB(Esri地理数据库)的方法,但仍然没有成功。

我已经下载了最新的OSGeo4W安装程序,并尝试了安装程序-快速桌面安装-所有软件包以及高级安装incl gdal-filegdb。

您能否描述更详细的过程,包括安装以及如何在QGIS中打开.gdb(OSGeo4W安装)?


1
您正在使用哪个版本的Gdal?
内森(Nathan W)

首先,我安装了osgeo4w-setup-Express桌面安装-我猜想下载最新的库进行安装。在“高级安装”中,我尝试了gdal 1.9.1-RC2-1和1.9.0-3。谈到gdal-filegdb,目前只有1.9.0-1版本。
米罗(Miro)

您的文件GDB创建于哪个版本的ArcGIS?
获得空间

2
好吧,这可能就是问题- “文件GDB必须是ArcGIS版本10,不支持9.3.1。” -我不知道ESRI文件地理数据库(FileGDB)的版本,我只是得到了数据。要通过安装并在版本10中查找和测试一些数据,请告知。
米罗,2012年

2
您是否尝试按照以下步骤操作,看看能走多远?仅仅因为链接已经存在两年了,并不意味着它仍然不相关。据我所记得,对于2.0.1的安装与答案中的说明非常相似。
MAJ742 2014年

Answers:


178

2017年12月更新

现在,您只需将.gdb文件(目录)拖放到QGIS中即可。这是对文件地理数据库的只读访问权限。如果您需要写访问权限,请进一步阅读。

2015年7月更新

现在是时候让这个答案更具最新性了,因为QGIS中FileGDB支持的某些元素已经改变。我现在正在运行QGIS 2.10.0-比萨。它是使用OSGeo4W安装程序安装的。

发生的变化是,在基本安装QGIS时,默认情况下使用Open FileGDB驱动程序启用了File GDB只读访问。首先要指出的一点必须归功于@SaultDon。
可以使用通过OGR_FileGDB库安装的FileGDB驱动程序来启用读/写访问。安装QGIS或单独安装时,需要使用以下过程启用该库。有关驱动程序的更多详细信息如下:

添加矢量层时,只需Source Type根据要使用的驱动程序选择即可。
ESRI FileGDB驱动程序 Esri FileGDB驱动程序

打开FileGDB驱动程序 打开FileGDB驱动程序

以下过程更详细地显示了从OSGeo4W安装程序安装QGIS,确保已安装OGR_FileGDB库,然后从文件地理数据库加载图层的步骤。

  1. OSGeo4W下载并osgeo4w-setup-x86.exe以32位或osgeo42-setup-x86_64.exe64位运行

  2. 选择高级安装,然后从Internet安装。选择您的根和本地软件包目录,然后选择您的连接类型,在本例中为“直接连接”。单击下一步后,它将显示一个带有多个折叠菜单的屏幕。 选择安装包

  3. 展开“桌面”菜单。查找“ qgis:Quantum GIS(桌面)”的条目。在“新建”列中,将条目从“跳过”更改为显示版本2.10.0-1。 选择QGIS安装条目

  4. 展开“库”菜单。找到“ gdal-filegdb:OGR FileGDB驱动程序”的条目。在“新建”列中,将条目从“跳过”更改为显示版本1.11.2-1。 选择GDAL文件GDB驱动程序

  5. 单击“下一步”后,它将安装QGIS和所有关联的库。完成此操作后,打开Quantum GIS,然后选择“添加矢量数据”。将选项更改为“目录”。在上面选择驱动程序的位置,如上所示。 选择FileGDB目录和驱动程序

  6. 浏览到文件地理数据库并选择目录。点击“打开” 选择文件GDB位置

  7. 选择一个矢量层,然后按“确定”。请注意,FileGDB API 不支持栅格图像选择矢量层

  8. 如您所见,将加载选定的图层。使用Esri驱动程序,可以进行编辑。如果您使用Open FileGDB驱动程序,则数据为只读。 QGIS中已加载的矢量层

  9. 供您参考,这是我安装的QGIS中的“关于”窗口,其中显示了软件的版本以及所使用的GDAL / OGR库。 QGIS关于窗口

此安装是在Windows 7 64位计算机上执行的。对于以前的安装程序,结果不一致。切换到32位或64位安装程序可能已改变了这一点。OSGeo上的该主题讨论了人们遇到的一些老问题:主题


1
FileGDBAPI.dllgdal-filegdb软件包的一部分,应该已经安装在了%osgeo4w_root%\bin。不幸的是,单单这在我的系统上还是不够的。
马特·威尔基

4
找到了错误,这真是个大麻烦:FileGDB SDK 不支持自定义坐标系gdal#4578)。人们希望这不是长期存在的局限性。为在idea.arcgis.com/ideaView?id=087E00000004DpoIAE上
马特·威尔基

5
@danagerous-这个答案是在QGIS 1.8是当前安装版本时编写的。如您所显示,当前版本到为止2.2.0。确保安装该库的过程和步骤保持不变,但是您始终希望使用可用于QGISgdal-fgdb库和该库的最新版本。
2014年

1
很好,谢谢。...当您只需要立即启动并运行时,像这样的文档至关重要。
T. Wayne Whitley

1
您也可以将.gdb文件拖放到QGIS中。
tudorbarascu

42

如果您已运行QGIS并根据GDAL 1.11.0对其进行了编译,则现在它通过OpenFileGDB驱动程序具有本机FileGDB支持。

要在QGIS中打开地理数据库,请确保选择“添加矢量层”,“源类型=目录”,并且源应为“ OpenFileGDB”或“ ESRI FileGDB”。然后,只需浏览至所选的* .gdb文件夹,按“打开”即可将图层加载到您的目录中。

当前存在一些局限性,例如无法写入FileGDB,但它支持<= 10.0的FileGDB,这是一个很大的好处,并且具有“自定义预测”。

正在进行的反向工程规范可在GitHub上找到,用于OpenFileGDB驱动程序。


1
感谢您发布此信息……它比其他答案要短得多(我也很感谢,但是如果不再需要执行所有这些步骤,我将
不胜

16

如果您使用的是Mac,则可以按照以下说明从头开始编译filegdb驱动程序

更新:距此答案已有2年了,您可能现在想尝试一下:https : //github.com/OSGeo/homebrew-osgeo4mac另外,正如现在许多人所言,您可以使用不使用OpenFileGDB驱动程序。 ESRI二进制文件可完成此任务。请注意,这是一个对规范的工作方式进行了逆向工程的项目,而不是ESRI认可的项目(仍然很高兴有替代方法,它代表了惊人的工作)。


1
链接的页面依赖于它的第一个链接(“从ESRI网站下载SDK”),该链接现已失效。
Pavel V.

好吧,答案是从2012年开始的。:)在过去的三年中,发生了许多变化。您可以使用自制程序进行编译,而无需任何特殊魔术,并且OSGeo Windows发行版中也提供了该程序。
Ragi Yaser Burhum 2015年

1
您可以编辑并提供有关如何使用自制程序进行编译的说明吗?特别是-自制程序安装是否与KyngChaos gdal-complete安装程序兼容?
Simbamangu

如果您使用自制软件,则应远离KyngChaos二进制文件,否则在编译过程中可能会遇到问题,因为最终将使用gdal的多个版本。
Ragi Yaser Burhum 2015年

5
  • 下载并运行OSGEO4W安装程序(建议使用32位版本)

  • 使用“桌面安装”选项运行一次,以安装QGIS(以及所需的任何其他桌面程序)。

  • 完成所有这些之后,从“开始”菜单再次运行OSGEO4W安装程序,选择“高级安装”,然后继续进行选择软件包的安装程序部分。向下滚动到“ gdal-filegdb”软件包,然后在此屏幕快照中单击显示“保持”的位置:

在此处输入图片说明

它说“保持”,因为我已经安装了软件包,您将要单击它,直到其中的文本与它左侧的“当前”数字匹配为止。

  • 单击“下一步”,您需要同意一些许可条款,然后完成安装并完成。

嘿,谢谢,即使我使用的是64位Windows,我也应该使用32吗?
pitcherofnectar

32位OSGEO安装将在64位Windows版本上正常运行,这就是我在Win7 x64上使用的功能,并且一切正常。64位OSGEO安装可能也可以正常工作,但是许多安装它的软件包都不相同,我对其中的一些遇到了问题。
Dan C

希望您在bugtracker中报告了您的问题。仅供参考,还有一些仅32位的问题(例如,由于较旧的Qt库在复杂的几何结构方面存在一些问题)。YMMV
Matthias Kuhn

5

3个月前,我遇到了一个相关的问题/问题(请参阅:win-version中的qgis 2.8.1 arcgis filegdb不完整列表

几天前,我已经从2.8.x切换到2.10.1-Pisa,希望摆脱我的问题中所述的文件地理数据库问题。不幸的是没有成功。

从那时起,我想出的是:自定义坐标系似乎仍然存在问题!我在不同PC上使用用arcgis 10.1创建的filegdb和在另一个pc上使用arcgis 10.3创建的filegdb的测试显示,尝试打开仅包含具有自定义CRS要素类的filegdb会返回以下错误:
无效数据源:D:\ xxxx \ yyy \ zzzz.gdb不是有效或公认的数据源

...两个驱动程序(FileGDB驱动程序OpenFileGDB驱动程序)都返回相同的错误!
同时可以使FileGDB SDK支持自定义坐标系吗?文章和此处的某些评论/回答指出,已实现了通过OpenFileGDB的自定义CRC支持-在我的系统上不起作用(gdal-filegdb:OGR FileGDB驱动程序1.11.2-1)

如果filegdb包含任何表-仅这些表显示在“选择要添加的矢量层”列表中,并将自定义CRC和非自定义数据与如下所示混合

arccatalog:

filegdb内容arccatalog

qgis 2.10:

filegdb内容qgis(FileGDB驱动程序和OpenFileGDB驱动程序)

我的个人结论:始终使用标准CRC!!!


1

很好,在2019年,您不需要执行上述操作,qgis 3.6已支持它。

简单易用的3个步骤:

步骤1:点击添加矢量按钮(红色圆圈)

在此处输入图片说明


步骤2:选择目录,openFileGDB和文件路径(红色箭头)

在此处输入图片说明


步骤3:选择所有图层(红色圆圈) 在此处输入图片说明


做完!!!!! 您只需将所有图层添加到qgis

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.