浅谈ArcGIS开发模式
Esri公司推出的ArcGIS产品是一个非常强大的体系,里面包含ArcGIS Desktop、ArcGIS Server、ArcGIS Engine、ArcSDE、ArcGIS Online等,那么这些产品不仅仅包含基础平台软件,也包含供用户二次开发的组件,那么这些组件也包含C/S、B/S、移动端的,下面就简单的给大家说一下,也让初学者有一个简单的了解。
C/S架构
主要是应用于局域网方面,一般是安装开发软件,一般情况下机器都不连互联网,主要处理数据编辑、数据入库、地图整饰等对机器性能要求比较高,那么这种开发模式包含
ArcGIS Engine\ArcObject(后简称AO)Spatial SQLArcSDE APIFileGeodatabase APIArcGIS Runtime(10.1版本)(先归到这里吧)B/S架构
主要应用于局域网或者互联网,一般情况下使用浏览器,主要是进行数据查询、分析等
ADF(基本不用了)WebAPIArcGIS API for JavaScript针对现在火爆的移动开发
Mobile API for Windows PhoneMobile API for AndroidMobile API for IOS各种API相关的下载地址:http://support.esrichina.com.cn/support/download/software/
因为本人对B/S和移动端没有多少开发经验,就根据自己的理解简单介绍一下C/S的开发模式,其他的大家感兴趣的参考帮助吧。
从上面的图我们可以看出,针对ArcGIS提供的三种GDB类型,AO都可以进行操作,FileGDB API直观看出只能操作FileGDB,剩下的SQL和ArcSDE API只能操作ArcSDE GDB,因为ArcGIS Runtime我没怎么用过,ArcGIS10.1才有,先不做讨论。
看看都能做什么?
AO:可以这么说,凡是ArcGIS Desktop能够做的,AO都可以搞定,ArcGIS Engine开发(有些功能因为许可问题不能实现),这种开发模式就是开发系统或者在桌面的基础上增加相关功能。
空间SQL:对ArcGIS简单对象(点、线、面、多点、多片)进行查询、编辑(增删改),编辑支持ArcGIS版本和非版本,不支持复杂对象(拓扑、几何网络等),支持影像
ArcSDE API:其实跟SQL类似,但是多了关于ArcSDE管理、投影转换、Schema、XML对象操作等
FileGeodatabase API:FGDB创建删除、数据编辑、属性查询、简单空间查询等
开发语言
AO:.Net(C#、VB)、Java、QT、C++(有些根据版本不同不再支持)
SQL:会写SQL语句即可
ArcSDE API:Java、C++
FileGeodatabase API:C++
系统部署
AO:在ArcGIS Desktop机器上使用VBA、AddIn、Python或者其他
ArcGIS Engine:开发的话安装ArcGIS Engine Developkit,部署的话安装ArcGIS Engine Runtime
SQL:不同的数据库配置不太相同,以oracle为例,需要引用相关的dll或者so文件
ArcSDE10.1配置Oracle 监听器来使用SQL操作ST_Geometry
怎么配置 Oracle 侦听器来使用SQL操作ST_Geometry
FileGeodatabase API:把相关的dll加载上去即可
ArcSDE API:因为C++我没有用过,java的也没有怎么部署过,应该和普通java开发引用包部署类似开发效率
以下是我的一个同事做的相关测试在如下环境进行测试比较AO和SQL的效率
上面的是支持ArcGIS Desktop开发
上面的ArcGIS Engine就可以用
PS参考:
File Geodatabase API开发及空间SQL应用
SQL访问Geodatabase
ArcSDE SDK介绍
File Geodatabase API介绍
-------------------------------------------------------------------
版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!
------------------------------------------------------------------