Ist es möglich, mit QGIS eine Verbindung zu ArcSDE herzustellen?

13

Kennt jemand Plugins oder eine andere Möglichkeit zum Verbinden und Anzeigen von Daten aus einer ArcSDE-Datenbank in QGIS Desktop?

Zachary
quelle
Sie können eine direkte Verbindung mit der zugrunde liegenden Datenbank (PostGIS, Oracle oder Personal Geodatabase) herstellen. Die Verwendung von ArcSDE als Middleware sollte nicht erforderlich (und möglicherweise auch nicht möglich) sein.
Underdunkel
Wie macht MapServer das? Es basiert auf C und OGR, ebenso wie QGIS. Vielleicht gibt es einen Weg, wie Matt Wilkie sagt.
Duarte Carreira
Wenn die räumlichen Daten in einem anderen SDEBINARYFormat als dem ursprünglichen Orakel SDO_GEOMETRYoder ST_GEOMETRYDatentypen gespeichert sind , kann sie meines Erachtens nur über ArcSDE gelesen werden. Wir haben dieses Problem mit Geoserver, bei dem SDO_GEOMETRYmit der Oracle-Verbindung nur die Tabellen angezeigt werden können, bei unseren anderen Legacy-Daten müssen wir das ArcSDE-Plugin verwenden.
kes

Antworten:

4

Es kann möglich sein , eine Brücke über den Bau GDAL / OGR ‚s ArcSDE Treiber . Es wird nicht standardmäßig kompiliert und benötigt einige Teile der ESRI SDE C-API, um eine Verbindung herzustellen. Um diesen Treiber zu erstellen, benötigen Sie eine Kopie des SDE C API Developer Kits von ESRI. Wenn Speicher zur Verfügung steht, ist ein vorkompilierter SDE-Treiber im Umlauf, mit dem ArcInfo Workstation anstelle des SDK auf dem lokalen Computer installiert werden kann.

Quellen:

Matt Wilkie
quelle
Ich denke, das ArcInfo-Ding war nur zum Lesen von ArcInfo-Binär-Coverages aus GDAL gedacht. Es ist längst veraltet.
Howard Butler
6

Ich bin froh zu sagen, dass es funktioniert! Ich verwende QGIS 1.7 von OSGeo4W:

  1. ogr_sde.dllHolen Sie sich das (kompilieren Sie es von Tamas, Sie benötigen auch einige ArcSDE SDK-Dateien)
  2. Ersetzen Sie das gdal18.dllvon qgis verwendete durch das oben kompilierte
  3. setzen ogr_sde.dllinC:\OSGeo4W\bin\gdalplugins\1.8
  4. Erstellen Sie eine .vrtDatei mit Ihren ArcSDE-Verbindungen und Feature-Class-Details
  5. füge den vrt zu QGIS hinzu und voila!

Es dauert sehr lange, bis Ogr eine Verbindung herstellt. Aber das Ansehen ist in Ordnung. Nur das Verbindungsteil ist viel zu langsam. Vielleicht findet jemand einen Parameter für die Verbindung, um sie zu beschleunigen.

EDIT: vergessen Sie auch folgende DLLs aus Ihrer Zusammenstellung in Schritt 1 kopieren: xerces-c_28.dll, spatiallite.dllund openjpeg.dll. Sie müssen auch die ArcSDE Libs: sde.dll, sg.dll, und pe.dll. Legen Sie sie einfach in C:\OSGeo4W\bin.

EDIT 2: Weitere Informationen hier: http://www.qgis.org/wiki/Connecting_to_ArcSDE_databases .

EDIT 3: Die Verbindungszeit ist kein Problem mehr. Nur eine Frage der richtigen Verbindungszeichenfolge in der vrt. Beispiele finden Sie unter dem Link.

Duarte Carreira
quelle
Wenn Sie SDE-Raster möchten, möchten Sie auch die gdal_sde.dll ...
Howard Butler
Als Antwort auf eine Beschwerde habe ich gerade den Tamas-Link entfernt, der zu einer guten Ressource ging, als er ursprünglich gepostet wurde, aber jetzt zu einer 404-Seite, auf der für unerwünschten Inhalt geworben wird. Kennen Sie eine aktuelle Site dafür?
Pops
2

Wenn Sie Postgres als Back-End-Datenbank von ArcSDE verwenden, haben Sie die Möglichkeit, räumliche Daten in ST_Geometry (SDE-räumliches Format) oder PG_Geometry (PostGIS-räumliches Format) zu speichern. Wenn Sie die Daten in einer PostGIS-fähigen Datenbank speichern und beim Importieren die Option PG_Geometry angeben (optional können Sie dbtune bearbeiten, um PG_Geometry als Standard festzulegen), können Sie über eine SDE-Verbindung eine Verbindung zu den Daten herstellen oder über einen Desktop-Client, der eine direkte Verbindung zu PostGIS herstellen kann (z. B. QGIS)

wilsongis
quelle
-3

Derzeit gibt es keinen Weg. Wenn Sie eines der Java-basierten FOSS4G-Tools verwenden, sollte es möglich sein, den SDE-Connector in Geotools zu verwenden. Ich denke, so verbindet sich Geoserver mit SDE.

Derzeit gibt es keinen Datenprovider in der C ++ - Welt, der sich in QGIS einfügt

TheSteve0
quelle
Hey Leute - bevor du das mehr ablehnst. Bitte schauen Sie sich das Datum an, an dem ich darauf geantwortet habe.
TheSteve0
Ich vermute, dass dies abgelehnt wird, da es sich um eine Antwort handelt, die anscheinend nicht mehr gültig ist. Wenn es nicht mehr gültig ist, würde ich empfehlen, es zu löschen. Wenn es immer noch aktuell ist oder noch einmal überarbeitet werden könnte, dann sollte dies helfen, die Abwertungen umzukehren.
PolyGeo