AE与AO的区别

  在ArcGis9.0之前,ArcObject还不是一个独立的产品,一直捆绑在Desktop产品中,只要你购买了desktop产品中的一个,你就可 以使用arcboject开发。从ArcGis9.0开始,ESRI公司推出了ArcGis Engine它使得ArcObject可以作为独立的产品使用。如果你所以开发一个让其他用户使用的产品,只需要购买ArcGis Engine开发就行。ArcGis Engine包括ArcGis Runtime和ArcObject sdk(for   dotnet、vb、C++、java)。这样你就不需要购买昂贵的desktop去开发。

  经常听到AO(ArcObject)开发与AE(ArcGis Engine)开发,本质没什么不同的,都在使用ArcObject。AE使用ArcGis Runtime这个运行时来运行程序,AO则需要desktop产品支持。AE几乎包含所有的ArcGis的组件,能够嵌入其他程序,开发自己的程序。所 以,AO开发的程序必须安装desktop才能运行,而AE开发的只需要安装运行时ArcGis Runtime,这两个价格相差是很大的。

  所以不要认为AE开发不需要ArcObject。

很明显,这个包里除了desktop产品还有开发人员资源即ArcObject SDK。没有Runtime,注意到没?

这个是ArcGIS Engine DevelopKit 10安装包,没有desktop系列产品,但是有Runtime,以及各种sdk。

所以,现在你应该很了解AE和AO的差别了吧?只不过是运行自己的程序的依赖不同而已,一个是昂贵的Desktop产品,一个是比较便宜的带有Engine Runtime的开发包。

  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一般指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。

参考文章

1. WhuGisExp. AE与AO的区别.

2. 稚眼看人生. AO与AE简介及其区别与联系

时间: 2024-10-23 03:31:52

AE与AO的区别的相关文章

J2EE(java)后台调用ArcGIS Engine(AE)的部署和代码

arcgis的BS开发解决方案一直是个坑,主推的地图服务查询速度慢,需要异步,功能少.相对来说主要用于CS的AE功能更强大全面,只是部署有点复杂 本文软件环境: win7 sp1 64位 MyEclipse 10,jdk 1.6.45 32位,tomcat 6.0.41 32位,ArcGIS Desktop 10.0(或ArcGIS Engine) 1.1.1.   安装软件 ArcGIS Desktop或ArcGIS Engine Runtime 建议装desktop,因为AE Runtime

C#控制台下的AO程序

好几年没写过控制台程序了(上一次是大二时写坐标转换时用过),因为我觉得用户难以接受没有良好操作界面的应用程序,我不想偷懒,今天来将应用程序改写为控制台程序,记录一下,忘记的内容: 1.数据的交互 不管什么程序,都应该有数据的交互,用户的输入.程序的输出. 输入:Console.ReadLine();[单个字符用:Console.Read();] 输出: Console.WriteLine; 2.F5一闪而过 C#控制台应用程序执行结果一闪而过,在末尾加了Console.ReadLine();或C

Opencv源码之平面点集的最小包围圆

平面点集的最小包围圆 --Cracent整理 2016.5.28 目录 1.问题背景.... 1 2.算法及原理.... 1 3.算法(摘自OPENCV)... 1 4.基础数学知识.... 7 三角形的外心.... 7 三角形的三条垂直平分线必交于一点.... 7 三角形的外心的性质.... 7 三角形的内心.... 8 证明.... 8 性质.... 8 三角形的垂心.... 8 三角形的三条高必交于一点.... 9 三角形的垂心的性质.... 9 三角形的重心.... 10 三角形的三条中

js - 基础 之 预编译总结

js运行步骤 语法解析(检查有无语法错误) 预编译 解释运行(将 js 翻译成计算机识别的语言(0.1组成),翻译一行执行一行) 预编译 [全局]: 创建 GO( Grobal Object ) 对象 找变量声明 找函数声明 [函数]: 创建 AO( Activation Object ) 对象(执行上下文): 找形参和变量声明,将形参和变量名作为 AO 对象的属性名,值为 undefined(有重复的名称只写一个即可): 将形参与实参值统一(用实参的值替换 undefined): 在函数体中找

ArcObjects与ArcEngine的联系与区别

ArcObjects与ArcEngine的联系与区别 AO一般指的是桌面产品开发组件,需要在桌面环境中才能够使用,最典型的就是嵌入式VBA开发.但是这样带来的弊端和OFFICE等相关软件一样明显,就是软件成本高,需要用户购买整套桌面版的产品才能进行二次开发. AE是ESRI推出的单独的开发包,和JAVASDK的角色相同,开发好应用程序后,部署在安装了AERUNTIME(和JRE类似)的环境中即可,用户不需再购买新的桌面版产品,AE不但提供了更多控件与更灵活的开发方式,还为用户节省了成本,使用起来

AE 栅格数据使用总结

RasterBand)的数据组成,一个波段就是一个数据矩阵.对于格网数据(DEM数据)和单波段的影像数据,表现为仅仅只有一个波段数据的栅格数据集,而对于多光谱影像数据则表现为具有多个波段的栅格数据集.栅格编目(RasterCatalog)用于显示某个研究区域内各种相邻的栅格数据,这些相邻的栅格数据没有经过拼接处理合成一副大的影像图... 两个星期以来一直与栅格数据打交道,对AO的栅格部分应该有了一定的理解,下面是自己的一点体会,希望高手指教:-) 1.栅格数据的存储类型 栅格数据一般可以存储为E

re.match re.search re.findall区别

re正则表达式里面,常用的三种方法的区别. re.macth和search匹配得到的是match对象,findall得到的是一个列表. match从字符串开头开始匹配,search返回与正则表达式匹配的第一个子串,findall则返回所有匹配到的. 如果要匹配的东西是字符串中唯一的只有一个或者直线那个取一个,最好不用findall,findall能匹配所有必然会查找整个字符串,search找到一个就结束查找了.废话不多说,选取一个页面源码大的网页,例如获取新浪网页的编码. #coding=utf

AO中的GraphicsLayer---------元素的容器

come from AO中的GraphicsLayer---------元素的容器 图形元素(Graphic Element)是存储于GraphicsLayer中的,本文主要涉及的接口和类主要有以下几种: IGraphicsContainer.IGraphicsLayer.ICompositeGraphicsLayer.GraphicsSubLayer类.CompositeGraphicsLayer类. GraphicsSubLayer类主要实现了接口IGraphicsContainer.IGr

云主机和VPS的区别(转载)

什么叫云主机,要了解什么是云主机,其实就是在谈架构.像我其实根本不配谈神马架构之说,所以我只是简单介绍下,具体想更深入地了解,请自己努力升级吧. VPS,虚拟服务器,就是在一台物理服务器(我们称之为母鸡)上根据某种虚拟方式划分出虚拟机,说白了,和你自己在你的电脑上装个Virtualbox,开几个虚拟机没啥区别.也就是说,这个VPS是依赖于这台母鸡的,一旦母鸡挂了,那你的VPS肯定会挂.另外,这台母鸡上的所有的VPS全部依赖于母鸡的资源,平分母鸡的资源(当然这要看VPS服务商如何去划分VPS了),