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

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

评论

您正在使用哪个版本的Gdal?

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

您的文件GDB创建于哪个版本的ArcGIS?

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

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

#1 楼

2017年12月更新

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

2015年7月更新

由于QGIS中FileGDB支持的某些元素已经更改,现在该带些答案了。我现在正在运行QGIS 2.10.0-比萨。它是使用OSGeo4W安装程序安装的。

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



FileGDB驱动程序:使用来自ESRI的FileDB API SDK-读/写到ArcGIS 10及更高版本的FGDB,

OpenFleGDB驱动程序:在GDAL中可用> = 1.11-对ArcGIS 9及更高版本的FGDB的只读访问权限

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


打开FileGDB驱动程序


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


从OSGeo4W下载并运行osgeo4w-setup-x86.exe(用于32位)或osgeo42-setup-x86_64.exe(用于64位)。单击高级安装,然后从Internet安装。选择您的根和本地软件包目录,然后选择您的连接类型,在本例中为“直接连接”。单击下一步后,它将显示一个带有多个折叠菜单的屏幕。

展开“桌面”菜单。查找“ qgis:Quantum GIS(桌面)”的条目。在“新建”(New)列中,从“跳过”(Skip)更改条目,以显示版本2.10.0-1。

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

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

浏览到文件地理数据库并选择目录。单击“打开”

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

如您所见,选定的图层已加载。使用Esri驱动程序,可以进行编辑。如果您使用Open FileGDB驱动程序,则数据是只读的。

作为参考,这是我安装的QGIS中的“关于”窗口,其中显示了软件版本和GDAL / OGR库正在使用。


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

评论


FileGDBAPI.dll是gdal-filegdb软件包的一部分,应该已经安装在%osgeo4w_root%\ bin中。不幸的是,单单这在我的系统上还是不够的。

–马特·威尔基
2012年5月28日19:04

找到了错误,这真是个麻烦:FileGDB SDK不支持自定义坐标系(gdal#4578)。人们希望这不是长期存在的局限性。为在idea.arcgis.com/ideaView?id=087E00000004DpoIAE上修复它进行投票

–马特·威尔基
2012年5月31日19:53

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

–获得空间
2014年4月2日在17:24

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

– T. Wayne Whitley
15-10-22在18:50

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

–tudorbarascu
17年8月12日在8:48

#2 楼

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

要在QGIS中打开地理数据库,请确保选择“添加矢量层”,“源类型=目录”,源应为“ OpenFileGDB”或“ ESRI FileGDB”。然后,只需浏览至所选的* .gdb文件夹,按“打开”,这些图层将被加载到您的目录中。 ,但它支持FileGDB <= 10.0,这是一个很大的好处,并且具有“自定义预测”。

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

评论


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

– LarsH
15年1月29日在22:20

#3 楼




如果您使用的是Mac,则可以按照以下说明从头开始编译filegdb驱动程序。 ://.github.com/OSGeo/homebrew-osgeo4mac同样,正如现在许多人所说,您可以使用不使用ESRI二进制文件的OpenFileGDB驱动程序。请注意,这是一个对规范的工作方式进行了反向工程的项目,而不是ESRI认可的项目(仍然很高兴有替代方法,它代表了令人赞叹的工作)。

评论


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

– Pavel V.
2014年3月14日在12:54

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

–拉吉·亚瑟(Ragi Yaser Burhum)
15年7月20日在12:55

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

–Simbamangu
15年7月22日在7:11

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

–拉吉·亚瑟(Ragi Yaser Burhum)
15年7月27日在17:30

#4 楼


下载并运行OSGEO4W安装程序(建议使用32位版本)
使用“桌面安装”选项运行一次,以安装QGIS(以及所需的任何其他桌面程序)。
之后完成所有操作后,从“开始”菜单再次运行OSGEO4W安装程序,选择“高级安装”,然后继续进行选择软件包的安装程序部分。向下滚动到“ gdal-filegdb”软件包,然后在此屏幕快照中单击“保留”的位置:软件包已安装,您将需要单击它,直到其中的文本与它左侧的“当前”数字匹配。


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


评论


嘿,谢谢,我是否应该使用32位甚至使用64位Windows?

–花蜜
2014年1月21日14:03

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

– Dan C
2014年1月21日14:58

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

– Matthias Kuhn
2014年1月21日15:35

#5 楼

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

几天前,我从2.8切换到了。 x到2.10.1-比萨希望摆脱我的问题中所述的文件地理数据库问题。不幸的是,没有成功。在不同的pc上,arcgis 10.1和另一个具有arcgis 10.3的文件显示,尝试打开仅包含具有自定义CRS要素类的filegdb会返回以下错误:
“无效的数据源:D:\ xxxx \ yyy \ zzzz.gdb不是有效或无法识别的数据源”文章和此处的某些评论/回答指出,已实现了通过OpenFileGDB的自定义CRC支持-在我的系统上不起作用(gdal-filegdb:OGR FileGDB驱动程序1.11.2-1) filegdb包含任何表-只是这些表显示在“选择要添加的矢量层”列表中,并将自定义CRC和非自定义数据与如下所示混合:

arccatalog:


qgis 2.10:



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

#6 楼

很好,在2019年,您无需执行上述操作,
它已在qgis 3.6中得到支持。 1:单击添加矢量按钮(红色圆圈)




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




步骤3:选择所有图层(红色圆圈)



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

#7 楼

对于使用QGIS 3.X的macOS Mojave(10.14)用户,使用osgeo4mac中的Homebrew安装fileGDB GDAL驱动程序,然后适当地链接路径以指向QGIS使用的gdalplugins目录:


brew tap osgeo/osgeo4mac
brew install osgeo-gdal-filegdb
注意Homebrew显示的插件目录:

通过运行ogrinfo --formats验证安装是否成功,并验证是否列出了FileGDB:

将编译的驱动程序文件链接到相应的gdalplugins目录。

这样做的首选方法是从编译的ogr_FileGDB.dylib到QGIS应用程序包内创建符号链接(ln -s source_file dest_file)。

以我为例:ln -s /usr/local/Cellar/osgeo-gdal-filegdb/2.4.1_1/lib/gdalplugins/2.4/ogr_FileGDB.dylib /Applications/QGIS3.4.app/Contents/Resources/gdal/gdalplugins/2.4

或者,在QGIS 3.X中,转到“首选项->系统->环境”并创建一个名为GDAL_DRIVER_PATH的自定义变量,该变量设置为Homebrew提供的目录(在我的情况下为/usr/local/lib/gdalplugins)。请注意,这种方法会破坏QGIS应用程序包中的所有其他GDAL插件。重新启动后,您应该在“当前环境变量”部分中看到该变量以粗体显示:


现在您应该在Vector Directory数据源类型列表中看到ESRI FileGDB,并且还能够将图层导出为FileGBD类型: