【ArcGIS 10.5 产品白皮书】第四章 ArcGIS开发包---ArcGIS Engine

在许多应用中,用户需要通过定制应用或者在现有应用中增添GIS逻辑来实现对GIS的需求,而这些应用程序常常是运行在Windows和Linux上,ArcGIS Engine则被用来建立这样一些应用程序。ArcGIS Engine是ArcObjects组件跨平台应用的核心集合,它提供多种开发的接口,可以适应.NET,Java和C++等开发环境。开发者可以使用这些组件来开发和GIS相关的地图应用,应用程序可以建立并且部署在Microsoft Windows和Linux等通用平台上,这些应用程序包括从简单的地图浏览到高级的GIS编辑程序。

1. ArcGIS Engine的功能

· ArcGIS Engine支持在文档和电子表格中嵌入GIS功能,比如在Excel添加地图控制功能。

· ArcGIS Engine 可以开发嵌入式应用:如在我们的业务系统中需要相关的GIS功能。

· ArcGIS Engine 可以开发独立的GIS应用,如果我们要开发一个完全独立的GIS应用,比如:数据入库系统。

· ArcGIS Engine 可以和ENVI集成,实现GIS和遥感的一体化应用,比如:土地利用变化监测系统。

· ArcGIS Engine支持平板电脑并开发高级的编辑功能,注重于GIS字段编辑的应用程序(定制的轻量级ArcGIS Desktop应用)。

· ArcGIS Engine根据用户需求可以开发出含有专业的GIS功能的应用,如包含网络分析,空间分析,3D分析等。

· ArcGIS Engine可以作为ArcGIS GIS Server或者ArcGIS Online的客户端,可以访问SOAP或者REST方式的服务。

· 有了ArcGIS Engine,开发人员可以更灵活性的开发出自己想要的GIS应用程序。开发人员可以使用Microsoft .NET,C++或者Java等众多交互式开发环境行业标准中的一种来建立独有的应用程序或者将ArcGIS Engine嵌入到现有的软件中来专门处理GIS的应用。



GIS客户端可以从简单的浏览器访问过渡到专业的GIS桌面端,比如Basic和Advanced,ArcGIS Engine为需要访问有丰富GIS功能的最终用户提供了能够将GIS逻辑集成到中间件应用的能力。

许多应用程序需要简单的,而又能满足用户应用的功能界面。并且用户要访问高级的GIS逻辑来执行一些特殊的任务。比如,许多组织机构有简单的数据编辑需求而不需要全部的GIS桌面功能。

定制专用的GIS应用是专门为特殊的用户来开发的。用户界面的设计以满足用户的GIS功能需求为主,而不以GIS为核心建立的专业程序。为了达到这个目的,软件开发人员需要一个可编辑的工具包,能够在编程时支持普通的GIS功能。



ArcGIS Engine开发的应用程序

2. ArcGIS Engine包含的内容

ArcGIS Engine是为编程人员开发客户化应用程序的组件包,它全面包含了组件式GIS的类库。使用ArcGIS Engine,开发人员可以将GIS的功能融合到许多的应用程序中,比如Microsoft Word和Excel,也可以将其加入到其它用户的GIS应用解决方案中。

ArcGIS Engine可以用于Windows和 Linux等操作系统上,同时也支持多种的应用程序开发环境比如.NET,通用C++平台以及Java开发者常用的Eclipse™ 和 JBuilder。

ArcGIS Engine包括许多可以用来进行定制应用程序开发的用户接口和工具(在ArcObjects软件库中)。

ArcGIS Engine包含有两个部分:

ArcGIS Engine开发工具包(ArcGIS Engine Developer Kit)是由开发人员来开发客户化应用程序的一系列工具,这个工具包是EDN软件协议的一部分;

ArcGIS Engine(以前是ArcGIS Engine 运行时,ArcGIS Engine Runtime,在ArcGIS 10.1中改名为ArcGIS Engine)是一组包含ArcGIS Engine核心组件的工具,以及扩展模块。它能够为最终用户提供一个运行 ArcGIS Engine开发的应用程序的环境。

ArcGIS Engine运行时是根据部署的软件数量而独立销售的运行时许可。安装有ArcGIS Desktop的计算机允许运行需要ArcGIS Engine运行时的应用程序,因此ArcGIS Desktop(Basic,Standard或Advanced)的用户可以运行由ArcGIS Engine 开发的程序。其它想要使用由ArcGIS Engine开发的应用程序的用户则必须购买并安装ArcGIS Engine运行时软件。



ArcGIS Engine是由编程人员开发出客户化的应用程序,并且可以被部署到许多最终用户的计算机上。

3. ArcGIS Engine开发工具包

ArcGIS Engine开发工具包(ArcGIS Engine Developer Kit)是一组制图组件和开发资源,允许程序员在现有的应用程序上添加动态的地图和GIS功能,或者开发出全新的定制化地图及GIS解决方案。

EDN包含有ArcGIS Engine开发工具包。这个工具包提供许多接口从而能够访问大量的ArcObjects组件(用来构建ArcGIS的最基础的组件),包括一些可以用来开发高质量地图用户界面的常用控件和许多用来处理地理信息的的工具。

这些可视化的控件能够以.NET控件,Java Beans组件和ActiveX控件的形式提供给用户使用。开发者工具包支持Windows和Linux等操作系统,并且还是EDN产品关键的一部分。

编程人员在计算机上安装过ArcGIS Engine开发工具包后就可以在他们所使用的开发环境中直接使用了。ArcGIS Engine将控件、工具、工具条和类库等自动添加到开发环境中,方便程序员进行嵌入式GIS应用的开发。

用ArcGIS Engine进行应用程序的开发一般都要从ArcGIS Desktop(Basic,Standard或Advanced)开始,利用桌面产品的制图,数据编辑和空间处理模型等功能。例如,Basic用户创建并共享了一些地图的数据给ArcGIS开发人员。开发人员利用ArcGIS Engine就可以开发出定制的应用包含有ArcMap文档,一些地图处理工具,以及其它的客户化软件功能。



这是在.NET下开发的定制的ArcGIS Engine应用程序例子。该程序包含了内容列表控件、菜单、和工具条,并包含控件分析查询等功能。

开放的接口支持编程语言和开发框架

ArcGIS Engine提供对C++,.NET和Java的支持,这样开发者可以选择自己熟悉的开发框架和计算机操作系统来进行工作。


ArcGIS Engine支持多种计算机平台和编程语言

ArcGIS Engine开发工具包组件

ArcGIS Engine开发工具包组件包括三个关键的GIS逻辑功能:

· 控件

· 工具条和工具

· 组件库



ArcGIS Engine开发包提供控件,工具条和组件

· 控件

控件是ArcGIS Engine的用户接口组件,可以嵌入到应用程序中进行使用。例如,可以将绘图控件和内容列表控件添加到定制的应用程序中用来进行地图的展现和交互。

· 工具条和工具

工具条包括一组能够在应用程序中与地图和地理信息进行交互的GIS工具,与地图交互的工具包括有漫游,缩放,识别,选择和编辑等,这些工具通过工具条出现在应用程序的界面中。由于有了丰富的通常用工具和工具条,使得开发定制的应用程序的过程得更加简单。开发人员可以容易的选择需要的工具拖曳到定制应用程序或者是其它的与地图交互的自定义应用程序中。

· 类库

Object libraries是一组逻辑上可编程的ArcObjects组件集合,有绘图上的几何类库,GIS数据源和空间数据库类库等。

程序员可以在Windows和Linux等系统平台的集成开发环境中使用这些类库,能够开发出难易程序不同的应用程序。这些类库也是用来开发ArcGIS Desktop和ArcGIS GIS Server的类库。

这些ArcObjects库为开发者提供了所有的ArcGIS功能,并且能够和主流的开发环境很好的结合在一起,比如C++,Java和.NET等。

4. ArcGIS Engine的扩展能力

ArcGIS Engine(以前的ArcGIS Engine Runtime,现在更名为ArcGIS Engine)运行时具有许多种扩展的能力,可以用来进行额外应用功能的开发。它所支持的扩展功能与ArcGIS桌面产品的扩展是一样的。另外,当这些扩展被使用的时候,都需要相对应的ArcGIS Engine运行时的授权。

ArcGIS Data Interoperability for Engine-数据互操作扩展,Data Interoperability扩展可以让你轻而易举地使用和分发不同格式的数据。

ArcGIS Engine Geodatabase Update-数据库访问扩展,GDB Update扩展为用ArcGIS Engine开发的应用增加了编辑和更新空间数据库的能力。它可以用来开发定制的GIS编辑应用。这些附加的功能都是通过企业级空间数据库类库进行数据存取的。

ArcGIS Network Analyst for Engine-网络分析扩展,Network扩展提供基于网络的空间分析能力,包括路径、旅行方向、最近设施和服务区域分析。开发人员可以使用它构建和部署网络应用。

ArcGIS Spatial Analyst for Engine-空间分析扩展,Spatial扩展提供一套强大的功能,用于创建、查询和分析基于像素的栅格数据。使用Spatial扩展可以从现有数据推导出有价值的信息、确认空间关系、找到适宜位置、计算旅行代价表面以及执行大量的栅格地理处理操作.

ArcGIS 3D Analyst for Engine-三维分析扩展,3D扩展为ArcGIS Engine运行时的环境中增加了3D分析和显示的功能。增加的功能包括场景和全球可视化的开发者控件和工具,同样的,这些功能都由一组3D类库来支持。

ArcGIS Schematics for Engine:Schematics扩展能够从空间数据库中或者具有清楚的连通性属性的网络数据中直接生成、展示并且可以更改的逻辑示意图表。

ArcGIS Maplex for Engine,Maplex扩展基于地图应用的高级标注布局功能和冲突检测机制。它可以用来生成存放在地图文档里的文字信息或者是以注记图层存放在空间数据库中。

ArcGIS Tracking Analyst for Engine:Tracking扩展可以进行实时和历史数据的展现以及基于时间的分析。



基于网络分析模块开发的芜湖智能交通系统

5. 使用ArcGIS Engine开发应用程序

开发人员在他们所使用的集成的开发环境中利用ArcGIS Engine来开发应用程序:

· 开发人员使用Microsoft Visual Studio

在ArcGIS 10.5中.NET开发利用社区,专业和企业版的Visual Studio 2013或2015提供开发支持。之前的版本已经不在支持。.NET 4.5是ArcGIS 10.5最低要求。

· Java开发人员使用Eclipse,Sun ONE Studio,或者Borland JBuilder

开发人员在IDE环境中注册过ArcGIS Engine开发组件后,就可以建立基于窗体的应用程序,添加ArcGIS Engine组件及编写一些代码就可以使用了。

比如Java开发者可以开发出专门用来进行GIS绘图的应用程序,添加地图控件、内容列表控件和相关的工具条即可。开发人员能够运用地图控件及其它附加的按键与的ArcMap.mxd文件结合起来完成GIS任务。开发好的应用程序可以部署给多个用户使用。
1.png


6. 部署ArcGIS Engine应用程序

用ArcGIS Engine开发好的应用程序可以安装在两种ArcGIS环境中。

ArcGIS Engine运行时能够允许ArcGIS Engine的应用程序正常使用。

拥有ArcGIS Desktop许可授权(Basic,Standard或Advanced)环境也可以正常使用ArcGIS Engine开发的应用程序;

ArcGIS Engine运行时可以安装并配置到许多台计算机上。每台计算机可以单独运行一个授权,也可以采用类似桌面产品的浮动许可模式,满足不同的用户需求。ArcGIS Engine运行时的扩展也需要相对应的许可文件。

7. 应用ArcGIS Engine

ArcGIS Engine可以用来开发多种GIS应用程序,并且可以将GIS功能集成到所有的应用当中。某些GIS部门需要为最终的用户开发出专门用来查看与他们业务相关应用的GIS浏览工具。在其它情况下,GIS功能可以和其它的信息工具结合起来共同执行关键的任务或者工作流程。

例如,某个城市的政府部门要开发一系列能够从GIS数据库中读取出地块信息进行浏览的应用功能,并将这些功能集成到日常的工作流程之中,诸如审批,征税,规划检查等。



ArcGIS Engine开发环境 (VC++)

2.png


ArcGIS Engine组件可以集成到Microsoft Word文档和Microsoft Excel表单中。



油田官网安全卫士系统

0 个评论

要回复文章请先登录注册