ArcGIS Engine 10 开发(有书签版)⑤ esri china内部文档,请勿外传制定及修订记录版本完成日期编写/修订纪要编写者备注文档目录结林雪淋V0.12011.34构刘宇完控件介V02201148绍和空间数刘宇据库的介绍完善栅格数V032011.5.18刘宇据介绍完善符号化V042011.6.25刘宇介绍完善网络分V0.52011.7.18刘宇析功能完善参考系V0.6201826刘宇的介绍完善几何对V0.720119.3刘宇象的介绍⑤ esri china内部文档,请勿外传目录ArcGIs介绍2和 ArcGIS Engine开发相关的c#知识…103使用控件创建第一个桌面应用程序空间数据库4705几何对象和空间参考垂香垂中看垂·。B垂垂。。,看中看垂··垂。。垂中中看垂垂垂中垂垂41216矢量数据空间分析……垂垂●中垂看。看垂垂垂看垂垂。垂看垂垂中中看·1537符号化1698栅格数据分析202编辑23910地图输出,.........261ArcG| S Eng ine实战264安装部署305⑤ esri china内部文档,请勿外传1 ArcGIS介绍1.1 ArcGIs软件架构ArcPadArcGIs标准测览器M。bieEngineArcGIsExplorerArcInfoArcEditor块行Online gisNetworkArcviewArcReadArcGis serverArcgIS「 ArcSDE文件DBMSArcGIS是ESR在全面整合了GS与数据库、软件工程、人工智能、网络技术及其它多方面的计箅机主流技术之后,成功地拦出了代表Gs最高技术水平的全系列Gs产品。 ArcGIS是一个全面的,可伸缩的Gs平台,为用户枸建一个完善的GS系统提供完整旳解决方案。 ArcGIS的基本体系能够让用户在任何需要的地方部署Gs功能和业务逻辑,无论是在桌面、服务器、还是在野外。桌面Gs( ArcGIS Desktop)一 ArcGIs桌面Gs软件产品是用来编辑、设计、共享、管理和发布地理信息和概念。ArGS桌面可伸缩的产品结构,从 ArcReader,向上扩展到 ArcView、 ArcEditor和 ArcInfo。目前 ArcInfo被公认为是功能最强大的Gs产品。通过一系列的可选的软件扩展模块, ArcGIS Desktop产品的能力还可以进一步得到扩展。嵌入式GS( Embedded g|S)一 ArcGis Eng ine是一个完的嵌入式Gls组件库和工具包,开发者能用它创建一个新的、或扩展原有的可定制的桌面应用程序。使用 ArcGiS Engine,开发者能将Gs功能嵌入到已有的应用程序中,如基于工业标准的产品以及一些商业应用,也可以创建自定义的应用程序,为组织机⑤ esri china内部文档,请勿外传构中的众多用户提供Gs功能。服务器Gs( Server Is)一ArcG| S Server、 ArcIMS和 ArcSDE用于创建和管理基于服务的Gs应用程序,在大型机构和互联閃上众多用户之间共享地理信息。 ArcGIS Server是一个中心应用服务器,它包含个可共享的Gs软件对象库,能在企业和web计算框架中建立服务器端的Gs应用。 Arc Ms是通过开放的 nternet协议发布地图、数据和元数据的可伸缩的閃络地图服务器。 ArcSDE是在各种关系型数据库管理系统中管理地理信息的高级空间数据服务器。移动Gs( Mobile Gis)一 Arc Pad,支持GPS的无线移动设备,越来越多地应用在野外数据采集和信息访问中。AcGs桌面和 ArcGIS Engine可以运行在便携式电脑或平板电脑上,用户可以在野外进行数据采集、分析和乃至制定决策。12ArcG| S Eng ine介绍ArcGIS Engine是一组完备的并且打包的嵌入式G|S组件库和工昊库,开发人员可用来创建新的或扩展已有的桌面应用程序。使用 ArcGIS Engine,开发人员可以捋Gis功能嵌入到已有的应用软件中,如自定义行业专用产品;或嵌入到商业生产应用软件中,如 Mirosoftf word和Exce;还可以创建集中式自定义应用软件,并捋其发送给机构内的多个用户。ArcGIS Eng ine由两个产品组成:构建软件所用的开发工臭包以及使已完成的应用程序能够运行的可再发布的 Runtime(运行时环境)。ArcG| S Engine开发工具包是一个基于组件的软件开发产品,可用于构建自定义Gs和制图应用软件。它并不是一个终端用户产品,而是软件开发人员的工具包,适于为 WindowsUNⅩ或 Linux用户构建基础制图和综合动态Gis应用软件。 ArcGIS Eng ine Runtime是一个使终端用户软件能够运行的核心Arα bjects组件产品,并且捋被安装在毎一台运行 ArcGISε ngine应用程序的计算机ArcGIS Engine是基于cOM技术的可嵌入的组件库和工具包, ArcGIS Eng ine可以帮助我们很轻松的构建白定义应用程序⑤ esri china内部文档,请勿外传使用 Arcgis engine,开发人员可以将Gs功能嵌人到已有的应用软件中,如自定乂行业专用严品或嵌人到商业生严应用软件中,如 Mirosoftf word和Exce;还可以创建集中式自定义应用软件,并将其发送给机枸内的多个用户。ArcG| S Engine由两个产品组成面向开发人员的软件开发乞( arcGIS Engine Developer kit)面向最终用户的运行时( ArcGIS Engine RuntimeArcGis Engine开发工具包是一个基于组件的软件开发产品可用于构建自定义GS和制图应用软件。它并不是一个终端用户产品,而是软件开发人员的工臭包,支持四种开发环境(C+,COM,NET,以及Jave),适于为 Windows、NⅨ或Liuκ用户构建基础制图和综合动态GS应用软件。ArcGIsε ngine Runtime是一个使终端用户软件能够运行的核心 ArcObjects组件产品,并且捋被安装在每一台运行 ArcGIS Engin应用程序的计算机上。ArcGIS Engine的逻辑体系结构Base Services包含了 ArcGIS Eng ine中最核心的 ArcObjects组件,几乎所有的G|s组件需要调用它们,如 GeometExtensionsry和 Display等。Developer◆ Data AccessComponents包含了访问矢量或栅格数据的 GeoDatabase所有的接口和类组件。Presentation◆ Map PresentationData包含了GS应用程序用于数据显示、数据符号化、要秦枟注和专颎图制作等需要的接口和类组件εAccess◆ Develper ComponentsBaseServices包含了进行快速开发所需要的全部可视化控件,如 Map Control、 PageLayoutControl、 Scene Cantrol、GlobeContro、 TOCControl、 Toolbar Control、 Symbo logy Contro和 License Contro控件等,除了这些,该库还包括大量可以有 Tool bar control调用的内置 commands、 tools、Mnus,它们可以极大地简化二次开发工作◆ Extensions在图中我们可看出, ArcGIS Eng ine的开发体系是一条纵线,功能丰富,层次清晰,最上层的 Extensi。ns⑤ esri china内部文档,请勿外传包含了许多高级开发功能,如 GeoDatabase Update、空间分析、三维分析、闋络分析、 Schematics逻辑示意图以及数据互操作等。 ArcGIS Engine标准版并不包含这些 ArcObjects许可,他们只能作为扩展存在,需要特定的 License才能运行。扩展模块3D三维分析Spatial罕间分析Network网络分析Maplex智能标注Data Interoperabil|ty数据互操作Schematics逻辑示意图Tracking跟踪分析Geostatistical地理统计分析注意:ArcGIS Engine运行时是可伸缩的,这种可伸缩性体现在AcG| S Engine运行时的级别上,从标准版本直到企业版本。标准的 ArcG S Eng ine运行时提供所有 ArcGIs应用程序的核心功能。这个级别的 ArcGISEngine运行时可以操作几种不同的栅格和矢量格式、进行地图表达和创建以及通过执行各种空间或属性查询查找要秦。这个级别的 ArcGIS Engine运行时还可以进行基本数据创建、编辑 Shapefile和简单的个人地理数据库( Personal Geodatabase)及GIS分析但是如果遇到全业级数据库( ArcGIS SDE)数据库的编辑以及复杂数据模型的创建(网络,拓扑)就需要εη nterprise GcodatabaseUpdate许可. ArcGIS Engine运行时的标准许可相当于 ArcGIs桌面Vew级别的功能,而 Enterpr ise Geodatabase Update许可相当于 ArcGis桌面 Editor级别的功能⑤ esri china内部文档,请勿外传13 ArcGiS Engine中的类库ArcGis Engine开发中,为了更好的管理议些coM对象,ESR|将这些coM对象放在不同的组件库中,而他们被物理的防盜bin目录下的d中,而逻辑上被分散到不同的命名空间中,下面我们详纽对一些类库进行介绍:VersionVersion庳是 ArcGis10新出来的一个类库,该类库包含了捋独立应用程序绑定到特定的AcG|s系列产品的函数和方法,该类库是在运行〓 ngine的应用程序的时侯System库是AcGs架构中最底层的厍。该库包含了暴露组成 ArcGIs的其它库所使用的服务的组件。System库中定义了许多接口,它们可以由开发者来买现。 Aolnitializer对象在 Systerm中定义;所有开发者必须使用该对象在使用 Engine功能的应用程序中初始化和 uninitialize ArcG| s Engine。开发者不扩展该库,但可以通过实现其中的接口来扩展 ArcGIs系统。SystemESystemU库中包含了可在 ArcGis Engine中扩展的用户界面组件的接口定义,包括 COmmand、|Tool和「 Too Contro接囗开发者使用这些接口扩展U组仵。该库所包含的对象是 utility对象,开发者可用于简化某些用户界面的开发。开发者不扩展该库,但可以通过实现其中的接口来扩展AcGs系统。GeometryGeometry庳处理存储在特征类( feature classes)或其它图形要素( graphical elemeηts)中的特征的g∞ ometry或 shape。大多数用户交互的基本几何对象有 Point、 Multi Point、 Polyline和 Polygon。除了这些顶层的实体,还有作为 Polylines和 Polygons构建模块的几何体( geometries)。这些是组成几何体的基元tprimitives) o它们是 Segments、 Paths和 Rings。 Poly ines和 Polygons由形成一条Path的依次相连的 Segments组成。一个 Sogment包含两个不同的点,起点和终点,和一个定义从起点到终点的曲线的要素类型。这种 segments有 Circulararc、Line、 EIlipticArc和 Bezier curve。所有的几何对象都可以有与它们顶点相关的Z、和Mo⑤ esri china内部文档,请勿外传基本的几何对象都支持几何操作,如 Buffer和Cip。开发者不可以扩展几何基元。Gls中的实体是指现实世界中的特征;这些现买世界中的特征的位由具有空间参考的几何体来定义。投影和地理坐标系统的空参考对象都包含在 Geometry库中。开发者可以通过在空间参考间添加新的空间参考和投影来扩展空间参考系统。DisplayDisplaγ库包含了用于Gs数据显示的对象。除了负责实际图像输出的主要显示对象,该库中还包含了表示颜色和符号的对象,这些颜色和符号用于控制显示上所绘制实体的属性。库中也包含了为用户在与显示交互时提供可视化反馈的对象。开发者大都通过类似于Ma或 PageLayout对象提供的视图与显示交互。该库的所有部分都可以被扩展,常被扩展的有符号、颜色和显示反馈{ disp lay feedbacks)OutputOutput库被用于创建图形输岀到设备,如打印机、绘图仪和硬拷贝格式,如增强型图元文件' enhancemetafiles和栅格影像格式(PG、BMP等)。开发者使用该库和 ArcGIs系统其它部分中的对象来创建图形输出。通常这些是 Display和 Carto库中的对象。开发者可以扩展 output库用于定制的设备和输出格式GeoDatabaseGeoDatabase库提供了用于 geodatabase的编程 APIc Geodatabase是一个构建在标准工业关系和对象数据库技术基础上旳地理教据储存库。厍中的对象为ArεGS攴持的所有教据湶提供了统-的编程模型。GeoDatabase厍定义了许多由架构中较高层次数据源提供者买现的接□。开发者可以扩展 geodatabase来支持特殊的数据对象( Features、 Classes等)类型。此外,还可以使用 Plug InData Source对象添加自定义的矢量数据源。 geodatabase攴持的 native数据类型不可以被扩展。Data SourcesFileυ ata SourcesFile库包含用于基于文件数据源的Geυ anabasθA丨的实现。这些基于文件的数据源包括shape|e、 coverage、TN、CAD、SDC、 ArcGIS StreetMapM和VF开发者不能扩展 Data SourcesFile库。DataSourcesDBData GDB库包含了用于数据库数据源的 GeoDatabase AP的实现。这些数据源包括 MicrosoftAccess和sDE@软件支持的 RDBMSs。开发者不能扩展 Data SourcesGDE库。Data SourceOleDB