FileGDB

Build GDAL with FileGDB Support

Download the API / SDK

  •  http://www.esri.com/apps/products/download/#File_Geodatabase_API_1.3 (you will need an 'ESRI Global Account')
    • available downloads:
      • File Geodatabase API 1.3 version for Windows (Visual Studio 2008)
      • File Geodatabase API 1.3 version for Windows (Visual Studio 2010)
      • File Geodatabase API 1.3 version for Windows (Visual Studio 2012)
      • File Geodatabase API 1.3 version for Linux 32-bit
      • File Geodatabase API 1.3 version for Linux 64-bit
      • File Geodatabase API 1.3 version for Mac 64-bit

Compile

Windows (Visual Studio 2008) - FileGDB driver as a plugin

You may compile filegdb as a plugin for GDAL:

1. Compile GDAL with the FGDB section commented

2. Now edit your nmake.opt (or add it in nmake.local) so it contains something like the following (pay attention to the FGDB_SDK path):

     FGDB_ENABLED = YES
     FGDB_PLUGIN = YES
     FGDB_SDK = $(GDAL_HOME)\..\FileGDB_API_VS2008_1_0Final
     FGDB_INC = $(FGDB_SDK)\include
     FGDB_LIB = $(FGDB_SDK)\lib\FileGDBAPI.lib

3. Next, cd to the /ogr/ogrsf_frmts/filegdb directory

4. Execute the following:

     nmake /f makefile.vc plugin

A file named ogr_FileGDB.dll should be generated.

5. You will also need the file: FileGDB_API_VS2008_1_0Final/bin/FileGDBAPI.dll

Windows (Visual Studio 2008) - FileGDB driver built inside gdalXX.dll

1. Edit your nmake.opt (or add it in nmake.local) so it contains something like the following (pay attention to the FGDB_SDK path and let FGDB_PLUGIN commented):

     FGDB_ENABLED = YES
     #FGDB_PLUGIN = YES
     FGDB_SDK = $(GDAL_HOME)\..\FileGDB_API_VS2008_1_0Final
     FGDB_INC = $(FGDB_SDK)\include
     FGDB_LIB = $(FGDB_SDK)\lib\FileGDBAPI.lib

2. Compile GDAL

3. You will also need the file: FileGDB_API_VS2008_1_0Final/bin/FileGDBAPI.dll

Unix (Tested on Ubuntu 8.04 and trunk 22708)

FileGDB is supported through ./configure

Assuming you've installed libFileGDBAPI library under the default location, the procedure of adding FileGDB support to GDAL/OGR is relatively simple.

First, you need to append the FileGDB_API path (e.g., /usr/local/FileGDB_API/lib) to /etc/ld.so.conf. Next, update the dynamic linker with: sudo ldconfig. Finally, provide GDAL/OGR configure with the path to the FileGDB installation (replace /usr/local/FileGDB_API with whereever you extracted FileGDB_API_<version>.tar.gz) prefix:

$ cd /path/to/gdal
$ ./configure --with-fgdb=/usr/local/FileGDB_API
$ make
# make install

Testing the driver

To test if the driver is been loaded, make sure that the path to ogr_FileGDB.dll is defined with the GDAL_DRIVER_PATH environmenet variable and FileGDBAPI.dll is found in your path, and then execute the following (look for "FileGDB" in the results):

.\> ogrinfo --formats
Supported Formats:
  -> "FileGDB" (read/write)
  -> "ESRI Shapefile" (read/write)
  -> "MapInfo File" (read/write)
  -> "UK .NTF" (readonly)
  -> "SDTS" (readonly)
  -> "TIGER" (read/write)
  -> "S57" (read/write)
  -> "DGN" (read/write)
  -> "VRT" (readonly)
  -> "REC" (readonly)

Note for Unix when note compiled as plugin: The order in supported formats (and I think order in which drivers are attempted) is slightly different.

$ ogrinfo --formats
Supported Formats:
...
  -> "PostgreSQL" (read/write)
  -> "PCIDSK" (read/write)
  -> "FileGDB" (read/write)
  -> "XPlane" (readonly)
...

Then test with a sample file (such as here):

  ogrinfo test_fgdb.gdb
    INFO: Open of `test_fgdb.gdb'
      using driver `FileGDB' successful.
      1: basetable_2 (None)
      2: basetable (None)
      3: base_table1 (None)
      4: test_lines (3D Multi Line String)
      5: more_test_lines (3D Multi Line String)
      6: test_points (3D Point)
      7: test_areas (3D Multi Polygon)

Note: FileGDB_API 1.0 only supports a FileGDB created with ArcGIS>=10.0. If you try accessing a FileGDB created with an earlier ArcGIS version you will get the following error:

  ERROR 1: Error: Failed to open Geodatabase (This release of the GeoDatabase is either invalid or out of date.)

Open Tickets

(May also show tickets about ArcObjects? Driver which can also read FileGDB but requires an ArcObjects? license)

#3332
[PATCH] Add ArcObjects OGR driver to allow reading of GeoDatabase (e.g FileGDB) FeatureClasses
#4189
FileGDB emits cryptic error message when attempting to write a value longer than the field size
#4578
GDAL/OGR filegdb layer visibility
#5689
GDAL failed to open a Chinese path FileGDB file

Attachments