是否可以使用QGIS连接到ArcSDE?


13

是否有人知道任何插件,或以其他任何方式从QGIS桌面中的ArcSDE数据库连接和查看数据?


您可以直接连接到基础数据库(PostGIS,Oracle或个人地理数据库),不需要(也许没有办法)将ArcSDE用作中间件。
昏暗

MapServer是如何做到的?它基于C和OGR,QGIS也是如此。也许有一种像Matt Wilkie所说的方法。
杜阿尔·卡雷拉

如果存储空间数据SDEBINARY而不是存储本地的oracle SDO_GEOMETRYST_GEOMETRY数据类型,我认为唯一的读取方法是通过ArcSDE?我们在Geoserver中遇到了这个问题,其中只有SDO_GEOMETRY使用Oracle连接才能查看设置的表,对于其他遗留数据,我们必须使用ArcSDE插件。
凯斯(Kes)

Answers:


4

可以通过GDAL / OGRArcSDE驱动程序来构建网桥。默认情况下未编译它,并且需要一些ESRI SDE C API进行连接。因此,要构建此驱动程序,您需要具有ESRI的SDE C API开发人员工具包的副本。如果有内存可用,则有一个预编译的sde驱动程序浮动,可以使用本地计算机上安装的ArcInfo Workstation代替SDK。

资料来源:


我认为ArcInfo只是用于从GDAL中读取ArcInfo二进制coverage。早已不推荐使用。
霍华德·巴特勒

6

我很高兴地说我正在工作!我正在使用OSGeo4W的QGIS 1.7:

  1. 得到ogr_sde.dll(从Tamas编译,您还需要一些ArcSDE SDK文件)
  2. gdal18.dll上面编译的qgis 替换qgis使用的
  3. ogr_sde.dllC:\OSGeo4W\bin\gdalplugins\1.8
  4. .vrt使用ArcSDE连接和要素类详细信息创建文件
  5. 将vrt添加到QGIS中,瞧!

事实是,ogr需要很长时间才能建立连接。但是查看就可以了。只是连接部分太慢了。也许有人会找出连接的参数以加快连接速度。

编辑:忘记了,您还必须从步骤1中的编译中复制以下DLL xerces-c_28.dllspatiallite.dll以及openjpeg.dll。您还需要ArcSDE的库:sde.dllsg.dll,和pe.dll。只要把它们放进去C:\OSGeo4W\bin

编辑2:此处提供更多信息:http : //www.qgis.org/wiki/Connecting_to_ArcSDE_databases

编辑3:连接时间不再是问题。只需在vrt中设置正确的连接字符串即可。有关示例,请参见链接。


如果您需要SDE栅格,还需要gdal_sde.dll ...
Howard Butler

为了回应投诉,我刚刚删除了Tamas链接,该链接最初发布时是一个不错的资源,但是现在转到404页,该页上宣传一些令人反感的内容。您知道它的当前网站吗?
流行

2

如果将Postgres用作ArcSDE的后端数据库,则可以选择以ST_Geometry(SDE空间格式)或PG_Geometry(PostGIS空间格式)存储空间数据。如果将数据存储在启用了PostGIS的DB中,并在导入数据时指定PG_Geometry选项(我相信可以编辑dbtune(将PG_Geometry设置为默认值),可以通过SDE连接连接到数据。或通过可直接连接到PostGIS的桌面客户端(例如QGIS)


-3

目前没有办法。如果要使用基于Java的FOSS4G工具之一,则应该可以在geotools中使用SDE连接器。我认为这是geoserver连接到SDE的方式。

当前,在C ++世界中没有可以插入QGIS的数据提供程序


大家好-在您进一步投票之前。请看看我回答这个问题的日期。
TheSteve0

我怀疑这已经被否决了,因为它的答案似乎不再有效。如果它不再有效,那么我建议将其删除。如果它仍然存在,或者可以被修改为再次成为当前,那么那将有助于扭转下降的投票。
PolyGeo
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.