Opened 12 years ago

Closed 8 years ago

#4007 closed enhancement (fixed)

Add full ESRI file geodatabase support

Reported by: msmitherdc Owned by: rburhum
Priority: normal Milestone:
Component: OGR_SF Version: svn-trunk
Severity: minor Keywords: fgdb, esri, ogr
Cc: rburhum

Description

While fitting the OGR model, add support for read/write points, lines, polys (and multi types) with possible support for domains.

Change History (10)

comment:1 by Even Rouault, 12 years ago

Cc: rburhum added

Would you have by chance samples of FGDB (version 10) with the various geometry types you mention ? AFAIR, the examples provided with the FGDB API only contains points. On the net, I've found various FGDB but they are all in versions before 10, and thus incompatible with the FGDB API.

comment:2 by warmerdam, 12 years ago

Ragi,

Can you confirm that the FGDB API doesn't read older file geodatabases? That would be very very disappointing.

in reply to:  2 comment:3 by rburhum, 12 years ago

Replying to warmerdam:

Ragi,

Can you confirm that the FGDB API doesn't read older file geodatabases? That would be very very disappointing.

It is correct that ESRI's FileGDB API doesn't work with older FileGDBs. The reason is that the beta API uses the new GDB metadata tables available in 10 - it doesn't read the traditional GDB_* tables from previous versions.

So before any of pre-10 FileGDBs can be read with ESRI's free FileGDB API, they have to be "upgraded" to 10 using ArcCatalog's "Upgrade GeoDatabase" button.

As far as the geometries supported - it is only working with points. I am waiting for the next version of the API to have the geometry accessor functions. Of course, the other option is to parse the binary buffer by modifying the geometry code in shapelib.

comment:4 by Even Rouault, 12 years ago

I have move recently in ogr/ogrpgeogeometry.h/.cpp the code used by the PGeo driver to parse the geometry blob (to be usable by the MDB driver). I'd assume that it could be reused for the FGDB driver as well.

in reply to:  4 comment:5 by rburhum, 12 years ago

Replying to rouault:

I have move recently in ogr/ogrpgeogeometry.h/.cpp the code used by the PGeo driver to parse the geometry blob (to be usable by the MDB driver). I'd assume that it could be reused for the FGDB driver as well.

That looks *exactly* to be what I need! Is there a version that goes the other way around, too? (ogrgeometry->shapebin)

I am in crunch mode this week, but I can get to it this weekend.

comment:6 by Even Rouault, 12 years ago

For the other way round (ogrgeometry -> shapebin), to the best of my knowledge, this doesn't exist in a direct reusable form. The closest is the code in the shapefile driver (shape2ogr.cpp + shpopen.c), but this writes directly in the .shp file, not in a buffer. But inspiration could certainly be taken from that code.

comment:7 by rburhum, 12 years ago

Owner: changed from warmerdam to rburhum

comment:8 by rburhum, 12 years ago

I didn't add support for domains yet, but I committed code (r22117 in trunk) so that it would work with all geometry types. I do not have a FileGDB with polygons and polylines to test sufficiently, but once I get confirmation from the list that this works I will close this ticket.

comment:9 by Jukka Rahkonen, 8 years ago

Anybody there to confirm that this ticket can be closed?

comment:10 by Even Rouault, 8 years ago

Resolution: fixed
Status: newclosed

Not sure what domains are, but this could be in a more dedicated ticket.

Note: See TracTickets for help on using tickets.