ArcGIS Engine入门教程_第一章_引言

1
分享 2016-03-11
1 引言

1.1 ArcGIS 产品总览

ArcGIS为用户提供了一整套功能强大的GIS框架,本文将主要关注如何快速的使用ArcGIS Engine构建GIS应用程序。ArcGIS Engine对于应用系统中需要加入地理信息功能的用户来说是一个非常好的选择。

ArcGIS的产品体系庞大而繁杂,一般情况下,我们将ArcGIS产品体系归为ArcGIS桌面平台产品、ArcGIS服务器平台产品、ArcGIS开发平台产品、ArcGIS云平台产品、ArcGIS移动平台产品、ArcGIS商业集成产品等几大类,如下图,我们常用的ArcGIS for Desktop、ArcGIS Engine、ArcGIS for Server、Web API、Portal for ArcGIS这些主流产品都包含在内,对于ArcGIS用户来说,只需要了解主流产品以及与其所从事行业相结合的产品和技术即可。

ArcGIS 桌面平台产品主要为GIS专业人士提供信息制作和使用的工具,利用它可以实现从简单到复杂的GIS任务。主要产品有ArcGIS for Desktop以及ArcGIS Pro。ArcGIS for Desktop是一套完整的专业级GIS桌面应用程序,也是ArcGIS软件体系的核心产品,而ArcGIS Pro是ArcGIS 10.3 推出的一款全新的桌面应用程序,该软件采用Ribbon风格,界面清新,是原生的64位应用程序。

ArcGIS 开发平台产品为开发者提供了灵活多样的扩展能力。功能强大的Engine开发包提供了多种开发接口,可以实现从简单的地图浏览到复杂的GIS编辑、分析系统的开发;Web APIs和ArcGIS Runtime SDKs为用户提供了基于移动设备和桌面的、轻量级应用的多样化开发选择,同时提供了一体化的资源帮助平台ArcGIS for Developers网站,为开发者访问各种在线资源、获取ArcGIS开源代码提供了方便快捷的通道。

ArcGIS 服务器平台产品可以通过Web Services在网络上提供GIS资源和功能服务,其发布的GIS服务遵循广泛采用的Web访问和使用标准。ArcGIS for Server是基于SOA架构的GIS服务器,通过它可以跨企业或跨互联网以服务形式共享二三维地图、空间数据库和地理处理工具等GIS资源,并允许多种客户端(如Web端、移动端、桌面端等)使用这些资源创建GIS应用。Portal for ArcGIS是ArcGIS 10.2家族中的新成员,是一个综合性的GIS门户,集地图、服务、应用于一身,为用户提供了一个与ArcGIS Online功能相似的共享与协同的平台。

1.2 ArcGIS Engine 简介

2004年,美国ESRI发布ArcGIS Engine,ArcGIS Engine开发包提供了一系列可以在ArcGIS for Desktop框架之外使用的GIS组件。ArcGIS Engine的出现对于需要使用ArcObjects的开发人员来说是个福音,因为ArcGIS Engine发布之前,基于ArcObjects的开发只能在庞大的ArcGIS for Desktop框架下进行。

ArcGIS Engine是基于COM技术的可嵌入的组件库和工具包,构建在核心的ArcObjects之上,完全可扩展,它提供多种开发的接口,可以适应.NET,Java和C++等开发环境。开发者可以使用这些组件来开发和GIS相关的地图应用,应用程序可以建立并且部署在Microsoft Windows和Linux等通用平台上。ArcGIS Engine可以实现如下功能:
  • ArcGIS Engine 开发嵌入式应用。开发人员可以将GIS功能嵌入到已有的专业应用软件或嵌入到商业软件中,比如在Microsoft Word和Excel中添加地图控制功能。
  • ArcGIS Engine 开发独立的GIS应用。可以开发一个完全独立的GIS应用,比如:数据入库系统,三维管线系统,智能交通系统等。
  • ArcGIS Engine可以作为ArcGIS for Server或者ArcGIS Online的客户端,访问SOAP或者REST方式的服务。
  • ArcGIS Engine 还可以和ENVI集成,实现GIS和遥感的一体化应用,比如:土地利用变化监测系统。


通过ArcGIS Engine,开发人员可以更灵活的开发出自己想要的GIS应用程序。开发人员可以使用Microsoft .NET,C++或者Java等开发平台来建立独立的应用程序或者将ArcGIS Engine嵌入到现有的软件中。

1.3 ArcGIS Engine组成部分

ArcGIS Engine由一个软件开发工具包(ArcObjects SDK)和一个运行时(ArcGIS Engine Runtime,需要注意,ArcGIS 10.1 版本推出了一个全新的产品—ArcGIS Runtime,为了避免混淆,以前的ArcGIS Engine Runtime从10.1版本起更名为ArcGIS Engine)组成。 ArcGIS Engine 的逻辑体系结构:

 

1. 基本服务—由GIS核心的ArcObjects构成,几乎所有GIS应用程序都需要,如几何图形操作(Geometry)和显示(Display)。
2. 数据存取—ArcGIS Engine可以对多种栅格和矢量数据格式进行存取,包括强大的地理数据库。
3. 地图分析—高级空间查询和SQL查询。
4. 地图表达—创建和显示带有符号体系和标注功能的地图及创建自定义应用程序的专题制图功能。
5. 开发组件—地图控件,制图控件,3D控件,工具条控件等,用于快速开发应用程序的界面控件。

ArcObjects SDK(ArcGIS Engine Developer Kit),主要是面向开发人员,提供了和开发环境的集成,开发帮助,类库,对象模型图,代码示例等,下图是开发包总览。



ArcObjects SDK除了可以进行Engine开发,还可以进行ArcGIS for Desktop的扩展,例如添加一些新的功能,改变Desktop的已有功能,定制Desktop的界面等。当然利用ArcObjects SDK以及Desktop产品的许可(Basic、Standard、Advanced三个级别)也可以构建控制台和winform程序,但是需要特别注意:不能使用任何地图控件!比如IMapControl、IToolbarControl、ITOCControl、ILicenseControl等,因为这些控件只能在Engine产品下使用。

ArcGIS Engine的另一个组成部分就是其运行时(Engine Runtime)。ArcGIS Engine 开发的所有应用程序在运行时都需要相应级别的ArcGIS Engine运行时。ArcGIS Engine运行时有两种版本级别—标准版(ArcGIS Engine)和高级版(ArcGIS Engine with Geodatabase Update extension)

Engine标准许可。
提供所有ArcGIS应用程序的核心功能。这个级别的ArcGIS Engine运行时可以创建、编辑、删除Shapefile和Personal/File Geodatabase中的简单对象,制作专题图,执行空间或属性查询,以及进行部分空间分析运算。

GeoDatabase Update高级许可。
GeoDatabase Update许可包含Engine标准许可,除此之外,如果需要编辑Enterprise Geodatabase中的数据或者编辑复杂对象如拓扑、几何网络、注记、关系类、镶嵌数据集等时也需要使用Geodatabase Update高级许可。

除了上面两种主许可,与ArcGIS for Desktop类似,ArcGIS Engine还提供了扩展许可。如Spatial Analyst、 3D Analyst、 Network Analyst、 Data Interoperability、Tracking Analyst等。特别注意,在使用这些扩展功能时,除了程序中需要检出相应的扩展许可外,机器上还必须具有这些扩展许可。

特别注意:如果是进行Engine开发的话,需要授权Engine Developerkit 单机许可,该许可包含Engine主许可和所有扩展许可。

ArcGIS Engine的授权文件(*.prvc)控制用户可以使用哪些功能。ArcGIS Engine的功能是否可用需要根据授权文件而定。授权完成后,可以在ArcGIS Administrator里查看该机器上具有哪些许可。

总的说来,如果是开发人员需要安装ArcObjects SDK和ArcGIS Engine,并且授权Engine Developer Kit开发许可;如果是最终用户,也就是只运行Engine程序,不开发,则只需要安装ArcGIS Engine,并且授权Engine许可(如果开发程序中用到了扩展许可,部署机上也需要具有相应的扩展许可)即可。

1.4 读者定位与预期效果

本资料是适合这样的用户阅读:

· 具备ArcGIS for Desktop的使用经验;
· 使用过ArcGIS的若干种数据格式;
· 对ArcGIS空间数据组织有一定的了解;
· 对ArcGIS for Desktop的制图表达具备初步认识;
· 了解C#编程语言和面向接口编程。

通过阅读本学习资料,让用户能够迅速了解ArcGIS Engine的组成部分,掌握ArcGIS Engine的许可机制,了解ArcGIS Engine能完成哪些任务,掌握如何搭建起ArcGIS Engine开发环境,并能够开发典型的GIS应用程序,获取解决问题的途径,为用户进一步深入开发指导方向,提供深入学习的方式和渠道。
 
本教程各章节连接:
ArcGIS Engine入门教程_第一章_引言: https://zhihu.geoscene.cn/?/article/532
ArcGIS Engine入门教程_第二章_类库介绍: https://zhihu.geoscene.cn/?/article/533
ArcGIS Engine入门教程_第三章_软件安装: https://zhihu.geoscene.cn/?/article/534
ArcGIS Engine入门教程_第四章_创建Engine应用程序: https://zhihu.geoscene.cn/?/article/535
ArcGIS Engine入门教程_第五章_添加数据: https://zhihu.geoscene.cn/?/article/536
ArcGIS Engine入门教程_第六章_实现右键菜单: https://zhihu.geoscene.cn/?/article/537

3 个评论

Arcengine开发对于初学者来讲,的确是个难题,如何组建已有的各个功能模块是首要解决的问题,而在这个过程中读懂每个代码含义就成了关键
@_@
很清晰哦

要回复文章请先登录注册