Ticket #3332 (reopened enhancement)

Opened 5 years ago

Last modified 4 years ago

[PATCH] Add ArcObjects OGR driver to allow reading of GeoDatabase (e.g FileGDB) FeatureClasses

Reported by: rburhum Owned by: rburhum
Priority: normal Milestone:
Component: OGR_SF Version: unspecified
Severity: normal Keywords: FileGDB,ArcObjects,AO
Cc: warmerdam, springmeyer

Description

This driver allows reading of FileGDB FeatureClasses? as long as there is an ESRI ArcView? License (or higher) available.

The connection string starts with "AO:" followed by the connection string to be sent to the ArcObjects? Workspace Factory.

For example, to open a FileGDB, the connection string would be "AO:c:\mypath\mydb.gdb"

Similarly, to open a Personal GDB (aka Access), one would use: "AO:c:\somepath\mydb.mdb"

There is also basic support for Enterprise GeoDatabases? (aka ArcSDE). Currently, the only way to support connections is done through an .sde file. "AO:c:\somepath\connfile.sde"

Attachments

gdal_ao.patch Download (65.8 KB) - added by rburhum 4 years ago.
Updated patch for trunk. Also includes build system integration.

Change History

Changed 5 years ago by rburhum

I added the ticket, with the source. Feel free to e-mail me if there are any problems.

Changed 5 years ago by warmerdam

  • cc warmerdam added
  • owner changed from warmerdam to chaitayna
  • component changed from default to OGR_SF

Chaitanya,

Could you please incorporate this driver into trunk? Skimming the patch, I think it only includes the driver directory itself so you may need to update the gdal/ogr/ogrsf_frmts/ makefiles, the OGR registration function and some of the root nmake.opt, configure.in, GDALmake.opt.in.

I understand you don't have ArcObjects?, so we will likely need to depend on Ragi to test any attempted integration.

After a bit of thought, I think it would be ok to only do this initially for windows (skip unix configuration) since I think most interest in this will be for Windows.

Changed 5 years ago by rburhum

I will be happy to test it.

By the way, there is a registration function, in one of the files. I just did not add it to the same place as all the other drivers. I guess it needs to be moved. I have already made a one line change... should I start submitting patches? if so, who do I assign them to?

Changed 5 years ago by warmerdam

Ragi,

Perhaps for now you can add changes in this ticket, till the integration is complete.

Changed 5 years ago by rouault

  • summary changed from Add ArcObjects OGR driver to allow reading of GeoDatabase (e.g FileGDB) FeatureClasses to [PATCH] Add ArcObjects OGR driver to allow reading of GeoDatabase (e.g FileGDB) FeatureClasses

Changed 4 years ago by scitronpousty

What is the status of this commit? I could really use this feature on a lot of projects and it would help me use FOSS4G throughout my organization. Thanks

Changed 4 years ago by rburhum

Hey Steve!

I have a few fixes for this patch as far as ArcObjects? Geometry<->OGR Geometry go. Let me know if you want them...

Changed 4 years ago by springmeyer

hey Ragi, can you post the fixes to this ticket? also I'm noticing the bit.ly link to your binaries appears to be dead:

 http://osgeo-org.1803224.n2.nabble.com/gdal-dev-ArcObjects-OGR-driver-binaries-reads-FileGDB-with-ArcView-license-td4477908.html

Changed 4 years ago by springmeyer

  • cc springmeyer added

Changed 4 years ago by rburhum

Hi Dane,

I'll sync with trunk today/this weekend and include all the fixes I had (the code has been the same and has been in production for 10 months - no mayor issues).

Changed 4 years ago by rburhum

Updated patch for trunk. Also includes build system integration.

Changed 4 years ago by rburhum

Hey Dane,

I updated the patch with the latest fixes. I also integrated with the current build system - I copied the sde settings and replaced them. That means that to generate the driver dll you will need to follow the directions of the wiki to do something similar.

In case you don't want to build it yourself, I just zipped the binaries created from trunk. I tried a few things and they seem to work just fine, however, I don't know what is the current state of trunk, so good luck :)

 http://bit.ly/9mRG2c

Changed 4 years ago by rburhum

  • owner changed from chaitayna to rburhum

Changed 4 years ago by rburhum

  • status changed from new to closed
  • resolution set to fixed

Commited to trunk. Revision 21273

Changed 4 years ago by rouault

  • status changed from closed to reopened
  • resolution fixed deleted

There are build issues when ArcObjects? isn't available :

1) Linux linking is broken since the @XXX@ values for the HAVE_ARCOBJECTS, ARCOBJECTS_LIB and ARCOBJECTS_INC in GDALmake.opt.in have no substution rules in the configure/configure.in. So they aren't substituted and the linking fails because of a dummy "(RCOBJECTS_LIB)" string in the linking line

2) I think (untested) that Windows compilation is also broken because of arcobjects being explicitely set in the DIRLIST line of trunk/gdal/ogr/ogrsf_frmts/makefile.vc. I think it should be $(ARCOBJECTS_DIR) instead

Changed 4 years ago by rburhum

Crap. Sorry. I tested the windows build several times, it works. However, I was just rebooting to Mac to try it out. Fixing it now...

Changed 4 years ago by rburhum

Fixed the build by disabling the driver temporarily. I changed the ARCOBJECTS_DIR though. I will figure out how the configure.in substitution works and re-enable it then.

Note: See TracTickets for help on using tickets.