http://www.gissky.net- GIS空间站

我要投稿 投稿指南 RSS订阅 网站资讯通告:
搜索: 您现在的位置: GIS空间站 >> 技术专栏 >> 地理信息 >> 正文

关于CAD和GIS集成解决方案

作者:spark wa…    文章来源:http://www.cnblogs.com/SPARK-WANG/    点击数:    更新时间:2007-1-10
摘要:

本文转自:http://www.cnblogs.com/SPARK-WANG/

几年前我发表过一篇如何从CAD移植到ArcGIS的文章,参见http://www.esrichina-bj.cn/library/arcnews14/new14-CAD.htm。但是在实际应用中,我们往往遇到的是CADGIS进行集成整合的问题,因此,在本文中,将主要从以下三个方面讨论CADGIS的集成解决方案。 

一、           CADGIS集成应用的发展趋势 

     从目前主流的CADGIS厂商应用产品来看,CADGIS融合的趋势越来越明显,这也符合应用整合的发展需求。ESRI的桌面产品ArcGIS已集成了水晶报表、FMEPDFGoogle等多项数据接口,对于CAD的数据集成也是各个版本全部集成。可以预料,只要有新的CAD版本出来,ESRI肯定会在新版本或以补丁的形式提供支持。而Bently公司更是推出MicrostationV8产品,号称提供DWG数据支持比AutoCAD软件做的更好,来强化不同数据格式间的融合。其实,在GIS的发展历程中,对于不同来源的数据整合从来就没有间断过,从OGC提供统一的数据规范,一直到各个软件厂商不断加强对其他数据格式的支持,可以毫不夸张地印证“数据就是GIS基础”这一不变命题。GIS到底是什么,能够为我们提供什么,这是很多用户迄今为止还在迷惑和深思的问题。投入巨大,收益又没有体现的特别明显,为什么?我想一个主要的原因,还是在于GIS的基础-数据这一关。GIS的发展从来都是一个系统工程,作为多源数据集成平台的角色也将越来越明显,因此各大厂商的集成整合方案都将是一个大而全的工具包,你想要的,以后将都会有。但是,我如果只是想喝杯奶,就非得养头牛吗?至少,我不用去开个养牛场才行吧。因此,对于很多应用而言,如何能针对目前的应用基础现状,提供一种切实可行的解决办法,才是用户真正需要和期待的。以下的讨论将主要就这个问题展开。 

二、           CADGIS集成工具

1.   ESRI ArcSDE CAD Client

     ArcSDE CAD ClientESRI提供一款ArcSDE免费扩展模块,用来提供AutoCADMicrostation访问SDE数据的接口,这实际上是ESRI没有强调的CADGIS解决方案,原因在于CAD Client不能编辑ArcGIS Geodatabase。但是,在许多应用流程中只需要创建一个简单的GIS数据库(Geodatabase所具有的高级功能如拓扑等并不是必需的),而CAD环境作为一个实用熟悉的操作环境(我更相信GIS作为一个系统工程中人的决定性,不仅仅对于系统开发者,更是对于系统应用者,想想有多少用户愿意费心思去琢磨一个新玩意),可以借助于ArcSDE CAD Client,从AutoCADMicrostation中访问SDE数据,允许你从ArcSDE数据库查询和取出数据到你客护端的CAD会话中,此外,CAD Client也允许你编辑和存储ArcSDE简单要素(对于ArcSDE Geodatabase要素只提供读功能)

     CAD Client在安装完成后,将自动集成到AutoCADMicrostation的应用界面中,并提供了5个接口函数来提供SDE连接/断开、数据取出、存储、查询和设置功能。它不是一个GIS应用端程序,不提供数据编辑和空间分析及制图等功能(这部分工作由CAD来完成,CAD Client只是提供了SDE数据源)。CAD Client实际上是基于ArcSDE3.X技术,因此对于后来的Geodatabase数据模型无法支持,只提供简单要素和CAD实体的存储。

目前,ArcSDE CAD Client提供对AutoCADMicrostation主线产品所有版本的支持,包括AutoCAD2005AutoCAD2006,以及最新的MicrostationV8。通常,用户在使用CAD Client时都需要利用其提供的5个接口函数,在CAD环境进行用户界面和应用流程定制。

2.      Bently ArcGIS ConnectorAutoDesk CAD Client

       Bently基于ESRIArcobjects技术,采用了离线编辑的方式来提供对SDE Geodatabase数据模型的支持,并可将数据编辑后返回给ArcSDE geodatabase。由于采用了ArcObjects技术,该工具将是比较庞大的,分发和部署将存在问题,该工具是作为Bently的一套完整解决方案提供的,因此从费用上而言是昂贵的。此外,Autodesk也提供了一种CAD Client, ESRIArcSDE CAD Client类似,也是基于SDE C API技术。

3.      Oracle Spatial扩展模块

       BentlyAutoDesktop公司都提供了基于Oracle Spatial扩展模块的接口,可以对利用Oracle Spatial存储和管理的GIS数据进行访问,而Oracle10G的发布使这一趋势越发加快。但是,由于数据存储为Oracle Spatial后,ESRI客户端将只能浏览数据,无法对数据进行编辑,而目前国内大多数GIS数据库都是基于ESRI技术建设的,因此这种解决方案将会遇到很大的障碍。

4.      基于文件数据格式的集成

     目前,BentlyAutoDesktop公司都提供了对ESRI Shapefile文件格式的读写功能,可以在CAD环境中对Shape文件进行编辑和存储。但是从管理的需要而言,这种需求只能满足一些简单应用。

5.      通过WEB Service技术

     基于快速发展的WEB ServiceCAD客户可以将通过WEB发布的GIS数据集成到本地应用中来(如GOOGLEArcIMSArcGIS Server)。但是这种应用主要是GIS数据的查询和浏览,而且目前这种应用还没有太大的用途。

三、           轻量级的CADGIS集成方案

       以上解决方案,除了大规模部署存在的费用成本外,不可否认的是实用性困扰。现在的软件和解决方案是越做越大,诚如本文讨论的中心问题,“要喝奶,非得开个养牛场吗?。。。”
     从用户需求的角度出发,大多时候应该是够用易用就可以了,而不是一个大而全的解决方案,因此轻量级的集成方案应该满足价格和实用两项要求。最近,接触了Bently公司的PowderDraft软件,这是一款轻量级的MicrostationV8,除了不支持三维建模等高级功能外,具有编辑制图打印等多种功能,最关键的是它是免费的,这对于规划、工程设计和市政设施管理等用户而言是有着巨大吸引力的。而GIS作为空间数据的基础平台,又为这些应用提供了强大的数据支持,那么从CADGIS的集成就是必须要解决的问题。由于ArcSDE CAD Client不支持MicrostationAutoCAD的轻量级产品,因此借助于ESRI CAD Client工具是无法完成的。ESRI SDE Client除了提供CAD Client工具外,也提供了SDEC APIJAVA API,通过这些API函数,可以完成所有的CAD Client功能,并且提供更为高级的应用扩展。CAD Client采用了ActiveX自动化服务器技术,完成CADSDE的通信,在这里,我们采用了生成DLL的办法,即利用VCSDE C API封装为多个接口函数,以DLL的形式提供给VBAMDL等进行调用,通过MDL定义用户界面和显示制图及编辑,DLL只提供数据访问存取通道。通过DLL,在PowerDraft环境下可以完成SDE数据多种方式的调用(按图幅、自定义范围、属性、按缓冲区大小等),并可以在数据编辑完成后保存回SDE数据库。

          对于后台SDE数据库的管理,我们开发了ArcSDE Manager软件(参见http://www.cnblogs.com/SPARK-WANG/archive/2006/10/26/spark-wang.html)。利用ArcSDE Manager,管理人员可以方便地管理和监控SDE空间数据库的各种应用,并及时做出调整,这样对于数据安全和优化数据访问效率是非常有帮助和必要的。

      通过这种将数据访问和应用剥离的方式,可以在所有的CAD环境下完成对SDE数据源的各类访问需求,这样既可以满足用户实际应用需要,又可以最大限度地减少建设成本,因此有着很大的应用前景。

Tags:CAD,GIS集成  
责任编辑:gissky
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 中国地图