Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

Is anyone aware of any plugins, or any other way to connect and view data from an ArcSDE database in Quantum GIS desktop?

share|improve this question
    
Removed the gis tag; it's "meta" for this site: blog.stackoverflow.com/2010/08/the-death-of-meta-tags –  JasonBirch Aug 13 '10 at 23:28
    
How does MapServer do it? It's C and OGR based, and so is QGIS. Maybe there's a way like Matt Wilkie says. –  Duarte Carreira Nov 17 '10 at 12:15
add comment

5 Answers 5

up vote 4 down vote accepted

It may be possible to build a bridge through GDAL/OGR's ArcSDE driver. It's not compiled in by default and needs some pieces of the ESRI SDE C API to connect. So to build this driver you need to have a copy of the SDE C API developer kit from ESRI. If memory serves, there is a pre-compiled sde driver floating around that can use ArcInfo Workstation installed on the local machine in place of the SDK.

Sources:

share|improve this answer
    
I think the ArcInfo thing was only for reading ArcInfo binary coverages from GDAL. It has long since been deprecated. –  Howard Butler Sep 29 '11 at 14:44
add comment

I am glad to say I have it working! I'm using QGIS 1.7 from OSGeo4W:

1) get the ogr_sde.dll (compile it from Tamas http://vbkto.dyndns.org/sdk/, you also need some ArcSDE sdk files)
2) replace the gdal18.dll used by qgis with the one you compiled above
3) put ogr_sde.dll in C:\OSGeo4W\bin\gdalplugins\1.8
4) create an .vrt file with your ArcSDE connection and feature classe details
5) add the vrt to QGIS, and voila!

Thing is, ogr takes a long time to connect. But viewing is ok. Just the connecting part is way too slow. Maybe someone figures out a parameter for the connection to speed it up.

Duarte

EDIT: forgot you also have to copy the following DLLs from your compilation in step 1: xerces-c_28.dll, spatiallite.dll and openjpeg.dll. You also need the ArcSDE libs: sde.dll, sg.dll, and pe.dll. Just put them in C:\OSGeo4W\bin.

EDIT 2: more info here: http://www.qgis.org/wiki/Connecting_to_ArcSDE_databases.

EDIT 3: the conection time is no longer a problem. Just a matter of correct connection string in the vrt. See the link for examples.

share|improve this answer
    
If you want SDE rasters, you want the gdal_sde.dll as well... –  Howard Butler Sep 29 '11 at 14:44
add comment

If you use Postgres as your backend DB of ArcSDE, you have the option of storing spatial data in ST_Geometry (SDE spatial format) or PG_Geometry (PostGIS spatial format). If you store the data in PostGIS enabled DB and specify the PG_Geometry option when you import the data (optionally you can edit dbtune, I believe, to set PG_Geometry as the default), you will be able to connect to the data via an SDE connection or via a desktop client that can connect directly to PostGIS (such as QGIS)

share|improve this answer
add comment

You can connect directly to the underlying database (PostGIS, Oracle or personal geodatabase), there should be no need (and maybe no way) to use ArcSDE as middle-ware.

share|improve this answer
add comment

There is currently no way. If you were to use one of the Java based FOSS4G tools it should be possible using the SDE connector in geotools. I think this is how geoserver connects to SDE.

There is currently no data provider in the C++ world that plugs in to QGIS

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.