稚眼看人生分享 http://blog.sciencenet.cn/u/blsm 在科学网品味科学,在博客中享受生活

博文

【GIS知识系列】(2):AO与AE简介及其区别与联系

已有 8239 次阅读 2011-10-3 11:52 |个人分类:科苑星空|系统分类:科研笔记| ArcGIS, 开发, ESRI

一、AO与AE简介

 

AO全称为ArcObjects,是一组组件对象库,号称是“世界上继微软之后第二庞大的类库!”我们所熟悉的ArcGIS桌面产品,ArcGIS Desktop(ArcMap,ArcCatalog……)都是AO的产品,也就是说都是用AO开发出来的。

AE全称为ArcEngine,是用于嵌入式开发的组件类库,或叫开发包,可以供使用者在现有的MS系统中嵌入地图服务等功能。AE从类库或是从体系架构上来说,是AO的子集,其功能没有AO那么强大,但凡是在ArcGIS Desktop中能实现的功能,用AE开发基本都能实现。

AO是基于COM技术的,因此,凡是支持COM技术的IDE环境或语言都可以应用AO或是AE进行开发,如用VB VC .Net。

AO和AE开发很相像,因为AE是AO的子集的缘故,但由于AE的定位是开发包,因此比AO少了很多UI的东西,就是少了许多图形界面的工具及对话框,不过功能不差,开发人员需根据自己需要利用AE进行“组装”。这是在开发方法和功能方面,在最终程序的部署过程中由于所需要的运行环境不同,因此需要在运行你程序的机器上安装ArcGIS Desktop(提供AO环境)或是ArcEngine RunTime,由于这两者的价格相差甚远,因此大家都会选用AE做开发,说白了AE开发出来的程序可以脱离ArcGIS平台环境。

 

二、AO与AE区别与联系

 

提到AO一般指ArcGIS Desktop版本的组件开发集,但由于需要安装ArcGIS桌面版软件后才能安装这些组件开发集,它是所有版本中组件最全的版本,所以如果想对ArcGIS产品及其开发有个详尽的了解,学习AO是最恰当的。

AO版本包括了所有的类库,其中包括ArcMap、ArcMapUI、ArcCatalog、ArcCatalogUI等组件库,这些组件库必须在安装了桌面版软件后才能使用。
由于使用AO开发的程序必须安装桌面版软件,这使得它的开发成本大大增加。

出于产品策略上的考虑,ESRI将AO中的某些组件集单独封装出来,起名为AE,使用AE开发的软件需要在一个RUNTIME下运行,而不需要安装ArcGIS软件。

因此,将AO和AE二者区别与联系总结如下:

联系

1、ArcEngine包括核心 ArcObjects的功能,其是对AO中的大部分接口、类、库进行封装所构成嵌入式组件。

2、AE中的组件接口、方法、属性与AO是相同的。

区别

1:开发环境:

①ArcObjects必须依赖与ArcGIS Desktop桌面平台,即购买安装了ArcGIS Desktop的同时,安装ArcObjects,才能利用AO进行开发。

②ArcEngine是独立的嵌入式组件,不依赖ArcGIS Desktop桌面平台,直接安装ArcEngine runtime和Developer Kit后,即可利用其在不同开发语言环境下开发。

2:功能: AO的功能更强大,AE的功能相对弱些,AE 不具备AO的少部分功能。

 

Other:脚本语言VBA、Python

 

1、定义

Visual Basic For Application(VBA)是微软VB的子集,一种通用的自动化语言,逐渐成为工业标准,微软诸多系统都内嵌VBA环境。

Python是阿姆斯特丹国家数学和计算机科学研究所Guido Van Rossum于1991年第一次公开发行的一门脚本语言,它集成了诸多语言的特性,如ABC,Molula等等。是一门动态脚本语言。

2、做ArcGIS开发上的一些区别和联系

VBA:ArcGIS Desktop产品内嵌了一套VBA环境,可通过Tools->Macors->Visual Basic Editor菜单进入,进入VBA环境后,会发现和VB的IDE环境基本相同。基于VBA,用户可以对ArcGIS Desktop产品进行定制,如:菜单加载些什么选项等等,最重要的是可以基于VBA运用AO开发自己关心而ArcGIS所没有提供的功能,由于此VBA属ArcGIS自身内嵌,所以开发是基于AO进行的。

Python:是ArcGIS 9后被包含在桌面产品的安装包中,9.2之前,大家多用Python语言来写批处理,而9.2之后为ArcToolBox中的每个工具都提供了Batch功能,不用大家在自己写脚本来做批处理工作了。利用Python可以很好的调用GP(Geoprocesing)工具及Model builder创建的Model,关于Python开发,很好的例子是ArcToolBox中的带有文件表示的工具,可以鼠标右键打开,查看源码,因为这些工具都是用Python写的。

关于VBA开发和Python的写法,帮助中都会有,不过对于定制开发而言,多会首选ArcGIS内嵌的VBA。

 

学无止境,不断前进!


https://wap.sciencenet.cn/blog-200036-492868.html

上一篇:Idea and the first one——屠呦呦获奖有感
下一篇:中国竟然还有这样的科学家!
收藏 IP: 159.226.110.*| 热度|

1 陈小润

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...
扫一扫,分享此博文

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-5-1 05:39

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部