1、ArcGISArcGIS WORD文档使用说明:ArcGIS 来源于PDFWORD 本WOED文件是采用在线转换功能下载而来,因此在排版和显示效果方面可能不能满足您的应用需求。如果需要查看原版WOED文件,请访问这里ArcGIS 文件原版地址:ArcGIS|PDF转换成WROD_PDF阅读器下载ArcGIS Engine 二次开发实习初级讲义ArcEngine 二次开发实习初级讲义目录1 ArcGIS、ArcObjects 和 ArcGIS Engine 简介 . - 3 ArcGIS 简介 . - 3 ArcObjects 简介 . - 4 ArcGIS Engine 简介 . - 5 2
2、ArcGIS 控件介绍 . - 7 ArcGIS 控件简介 . - 7 重要控件简介. - 9 3 ArcGIS Engine 二次开发入门 . - 16 ArcGIS Engine 开发起步第一个简单的地图显示程序 . - 16 属性查询. - 23 空间查询. - 27 BaseCommand 开发实例 . - 36 BaseTool 开发实例. - 38 通过代码添加图层 . - 42 基于比例尺显示地图 . - 44 构建一个简单的 GIS 应用 . - 46 4.问题解决方法及帮助文档的使用 . - 58 使用 ArcObjects 开发帮助系统 . - 58 阅读对象模型图(Obj
3、ect Model Diagram) . - 62 -2-ArcEngine 二次开发实习初级讲义1 ArcGIS、ArcObjects 和 ArcGIS Engine 简介 、 ArcGIS 简介ArcGIS 提供了一个可伸缩的框架,可以为独立用户或者多用户,既可以在桌面端也可 以在服务器端提供 GIS。ArcGIS 9 是用来构建一个完整 GIS 应用的 GIS 软件产品集成。它 是基于共享的 GIS 软件组件ArcObjects。ArcGIS 9 由以下四部分组成: ArcGIS Desktop高级 GIS 应用的集成 ArcGIS Engine根据应用程序接口来构建基本应用的嵌入式 G
4、IS 组件库 ArcGIS Server在企业级或者网络框架下构建服务器端 GIS 应用的平台,用来 构建 Web 服务和 Web 应用 ArcIMS通过公开的因特网协议来发布地图、 数据和元数据的 GIS Web 服务器图 1 ArcGIS 产品结构图 每一个 GIS 框架同样包含 ArcSDE 网关,这是在关系数据库(RDBMS)上组织地理数 据的接口。 ArcGIS 是构建地理信息系统的平台。ArcGIS 9 在地理数据处理、3D 可视化表达和开 发工具方面做了新的扩展。 两个新的产品ArcGIS Engine 和 ArcGIS Server 在这个版本 中发布,是 ArcGIS 成为一
5、个应用程序及服务端开发的完整产品。 使用 ArcGIS 能够开发出一系列的产品,开发者可以: 配置/定制 ArcGIS 的应用,例如 ArcMap 和 ArcCatalog 扩展 ArcGIS 的结构和数据模型 利用 ArcGIS Engine 在其他应用程序中嵌入地图和 GIS 功能-3-ArcEngine 二次开发实习初级讲义使用 ArcGIS Engine 构建并部署桌面版应用程序 使用 ArcGIS Server 构建 Web 服务和应用 ArcGIS 系列产品是通过称之为 ArcObjects 的软件组件加以构建和扩展的。 ArcObjects 包括一系列不同的程序组件,从高度封装的
6、组件(例如独立的 geometry objects)到低级组 件 (例如能够同已有的 ArcMap 文档集成的地图组件) 这些组件为开发者集成了大量的 GIS 。 功能。 ArcGIS 9 的全线产品都具备开发功能(Engine,Server 和 Desktop) 。作为一个开发 者,您能够使用标准程序框架结合 ArcObjects 来扩张 ArcGIS Desktop;能够用 ArcGIS Engine 定制应用;能够使用 ArcGIS Server 构建企业级的 GIS 应用。图 2 ArcGIS 开发结构图 ArcGIS Desktop 包含了一些列的 Windows 桌面应用程序 (例
7、如, 地图、 目录、 工具箱、 地球方面的应用) ArcGIS Desktop 包含了三种功能级别 。 (ArcView, ArcEditor 和 ArcInfo) , 使用 ArcGIS Desktop 开发包能够进行客户化和扩展。 ArcGIS Desktop 的软件开发包(software developer kit,SDK)包含在 ArcView, ArcEditor 和 ArcInfo 内,支持 COM(Component Objects Model,组件对象模型)和.NET 程序框架。许多开发者利用 Desktop SDK 扩展功能,创建新的 GIS 工具,定制用户界面, 完善 A
8、rcGIS Desktop 应用中专业 GIS 产品的扩展功能。 ArcGIS Server 不仅定义和实现了一系列标准的 GIS Web 服务(例如,地图、数据访 问、地理编码等) ,同时还支持利用 ArcObjects 进行企业级的服务端应用开发。 ArcGIS Server 开发包让开发者能构建 GIS 服务器用来向多用户提供可供访问的 GIS 功能,能通过客户端对大型 GIS 中央服务器进行处理,能构建和分发 GIS Web 应用,能进 行分布式 GIS 运算。 ArcObjects 简介ArcObjects 是 ArcGIS Desktop 的开发平台。-4-ArcEngine 二次
9、开发实习初级讲义ArcGIS Desktop 是一系列 GIS 软件系统:ArcInfo,ArcEditor 和 ArcView。这些系统 服务于 GIS,例如地理数据组织、控件编辑、分级可视化等功能。 ArcGIS Desktop 系统包含一系列的应用,例如 ArcCatalog、ArcMap、ArcToolBox 和 ArcScene,并且能够集成大量不同的扩展产品,例如 ArcGIS Spatial Analyst(空间分析模 块) ,ArcGIS Geostatistical Analyst(地理统计分析模块) ,ArcGIS 3D Analyst(三维分析 模块)等。 ArcObje
10、cts 是使用微软的组件对象模型(Component Objects Model,COM)书写。 因此,凡是支持 COM 标准的开发语言都能使用 ArcObjects。您能向 ESRI(Environment System Research Institute,环境系统研究所)的开发者一样,使用同样的方式来扩展 ArcObjects 中的任何一部分。 ArcGIS Engine 简介ArcGIS Engine 是开发者用来构建应用程序的一整套嵌入式 GIS 组件。使用 ArcGIS Engine,您可以将一些 GIS 功能嵌入到已有的应用程序中,这包括 Microsoft Office 产品,
11、 例如 Word 和 Excel, 建造有针对性的客户应用程序用来将高级 GIS 系统与他人分享。 ArcGIS Engine 由一个软件开发包(software development kit,SDK)和一个给所有 ArcGIS 应用 提供平台的运行许可(runtime)构成。 构成 ArcGIS Engine 的五部分分别如下: 1 )基本服务几 乎任何 GIS 应用都 需要的核心 GIS ArcObjects, 例如几 何 (geometry) ,显示(display)等。 2)数据访问ArcGIS Engine 提供许多栅格和矢量数据的访问方式,包括与 geodatabase 相当的能
12、力和灵活性。 3)地图表达ArcObjects 使用符号、注记和专题地图来生成和表达地图。 4)开发组件用来快速定制应用开发程序的高度封装用户接口以及开发过程中全面 的帮助系统。 5)运行许可ArcGIS Engine 运行许可可以部署标准功能或者加入一些附加的高级 功能。 这中间除了运行许可之外的任何一部分,都打包集成到 ArcGIS Engine 开发包(SDK) 中。ArcGIS Engine 运行许可及其选项,尽管是开发完整的 GIS 应用程序中的一部分,但 包含了应用部署,所以被单独打包。 ArcGIS Engine Software Developer Kit ArcGIS Eng
13、ine SDK 是用来开发和部署 GIS 及地图方面应用程序的组件化软件开发产 品。ArcGIS Engine SDK 不是终端产品而是共应用开发者使用的软件包。它能构建基本的 地图浏览或者全面的、动态的 GIS 编辑工具。使用 ArcGIS Engine SDK,作为开发者,您 在定制地图功能接口方面有空前的自由。您可以使用许多 API 中的一些来构建独一无二的 应用程序或者将 ArcGIS Engine 组建与其他软件组建整合,来实现地图和用户需要的其他 信息之间的完美结合。 使用 ArcGIS Engine, 地图既能够作为应用程序的核心, 也可以作为一个可选项。 例如, 如果您的应用主
14、要是数据库中的商务信息,当您查询数据库的时候,ArcGIS Engine 能够将 您感兴趣的商业信息在地图上高亮显示定位出来。 ArcGIS Engine SDK 提供了大量的 GIS 组件, 或者称为 ArcObjects, 按照之前的介绍, 包括基本服务、数据访问和地图表达。之前提到的 ArcGIS Engine 的第四部分,也就是开 发组件,也包含在 SDK 中间。这些都是用来构建一个高质量地图接口的开发控件。下面列-5-ArcEngine 二次开发实习初级讲义出的 ArcGIS 控件,或者说可视化控件,用来辅助应用程序开发(下文将针对控件进行更加 详细的介绍) 。 MapControl
15、 PageLayoutControl SceneControl GlobeControl ToolbarControl TOCControl ReaderControl ToolbarControl 中所用到的 commands(命令) 、tools(工具)和 menus(菜单) ArcGIS Engine Runtime ArcGIS Engine 的最后一部分是运行许可。所有用 ArcGIS Engine SDK 构建出的应用 程序都需要不同级别的 ArcGIS Engine 运行许可才能够正常运行。ArcGIS Engine Runtime 是 ArcGIS Desktop(ArcGIS
16、 桌面版)构建的平台,如果得到 ArcGIS Engine 应用开发许 可, ArcGIS Desktop 的用户就能够执行基本的基于 Engine 的应用。 ArcGIS Engine Runtime 从标准功能到企业级功能之间有许多不同的选择。 ArcGIS Engine 的功能 ArcGIS Engine 的功能十分强大。 作为 ArcGIS Engine 开发者, 您可以实现以下列出的 和其他更多的功能,这包括: 用多个图层来显示地图,例如道路、水系、边界等 地图的漫游和缩放 地图上要素的确认 地图上要素的查询和定位 根据属性值显示注记 根据航片或者卫片显示图像 绘制几何图形,例如点、
17、线、弧、多边形 添加描述性的文字 沿着线选择或者选择矩形、某一范围内、多边形等内部的要素 选择距离在某一范围内的要素 利用 SQL 语言来寻找和选择要素 利用专题地图来渲染要素,如唯一值法、分级法和点状密度法 动态显示实时地图或者时序数据 根据地理编码来寻找位置 转换您地图的坐标系 根据几何操作来生成缓冲区、计算差值,或者进行求交、求并等运算 编辑要素形状或者旋转地图 创建并更新要素的几何形状及其属性 编辑要素(Editing Features) ArcGIS Engine 开发包让您构建出能创建、修改和删除 geodatabase 中矢量要素或者 shapefile 文件的应用程序。 标准的
18、 ArcGIS Engine Runtime 能够让编辑 shapefile 文件或者 personal geodatabase 中简单要素的程序运行。然而,要构建企业级 geodatabase 的全部-6-ArcEngine 二次开发实习初级讲义功能,就需要 ArcGIS Engine Runtime 中的 Geodatabase Update 选项。 空间建模和分析 通过增加 ArcGIS Engine Runtime 中的 Spatial 选项,您能够扩展 ArcGIS Engine 的功 能。这个选项(Spatial 选项)能提供一系列强劲的空间建模和分析功能。您能够创建、查 询、表达
19、和分析基于象元的栅格数据,能够集成栅格和矢量数据进行分析,能够从已有数据 挖掘出新的信息,能够从多层数据中查询信息,能够在 ArcGIS Engine 应用程序中完美集 成基于象元的栅格数据和矢量数据。 例如,您能够: 将要素(如点、线或者面)转化成栅格图 基于距离或者要素、栅格间的关系来创建栅格缓冲区 根据点状要素生成密度图 生成等高线、坡度、可视化区域、方向和山体阴影 栅格图的分类及显示 兼容 TIFF,BIL,IMG,USGS DEM,SDTS,DTED 等标准格式及多种其他格式 数据 三维可视化等 ArcGIS Engine Runtime 中的 3D 选项让您通过使用 Scene 和
20、 Globe 控件来有效的表 达和分析区域及全球数据。您能够从多个不同的视点查看表面;您能够查询表面,决定从某 个选中的位置看, 哪些要素是可见的; 您能够将栅格和矢量数据贴在表面以构建真实的透视 影像。 例如,您能够: 显示 Scene 和 Globe 文档 展示交互性的透视图,包括漫游、缩放、旋转、倾斜、模拟飞行以便于表达和分 析 显示真实世界的表面要素,例如楼房 展示视域和可见范围分析、场景高度内插、剖面分析和最短距离分析2 ArcGIS 控件介绍在 ArcGIS Engine 的二次开发中,ArcGIS 控件给我们提供了具体的开发环境和方法。 在 ArcGIS Engine 中共有 7
21、 个控件, 另外在部署过程中还有一个 LicenceControl。 下面将首 先介绍 ArcGIS 控件,再详细介绍实习中可能用到的 MapControl,TOCControl 以及 ToolbarControl。 ArcGIS 控件简介ArcGIS 的控件是高度集成化的,首先能够让开发者构建和扩展 ArcGIS 的功能,其次 能够提供图形用户界面(graphical user interface,GUI) 。 下列展示出的每一个 ArcGIS 控件都可以被作为 ActiveX 控件,.NET 控件或者可视化 的 JavaBean: MapControl类似于“数据” PageLayoutC
22、ontrol-7-ArcEngine 二次开发实习初级讲义ToolbarControl TOCControl(Tablet of Contents Control) SceneControl GlobeControl ReaderControl 使用 ArcGIS 控件,可以用两种方式来构建应用程序,首先,ArcGIS 控件可以被嵌入 到已有的应用程序中,将地图相关的功能作为辅助添加进去,或者其次,ArcGIS 控件可以 用来创建一个独立的应用程序。不管使用哪种方式,一个独立的 ArcGIS 控件能够被嵌入到 已有程序中或者 TOCControl 和 ToolbarControl 能够和其他
23、ArcGIS 控件联合使用,提供应 用程序的部分框架。 对于所有的 ArcGIS 控件来说,有一些共同的主题、概念和应用方法等,在有效的使用 这些控件来构建应用程序之前,有必要先有一定的理解。嵌入式控件( 嵌入式控件(Embeddable Components) ) 每个 ArcGIS 控件都是一个可嵌入的控件, 能被放置到提供可视化编程环境的窗体或者 对话框内。被放置之后,这些 ArcGIS 控件能够连同别的嵌入式控件(例如命令按钮,下拉 列表框等)一样重新定义尺寸和位置以构建应用程序中的用户界面。 属性页( 属性页(Property Pages) ) 当每一个 ArcGIS 控件被放置到窗
24、体或者对话框中之后,鼠标右键点击控件,从弹出菜 单中选择“Properties” (属性) ,都会分别弹出一系列的属性页。这些属性页提供了控件的 部分属性和方法,并且允许开发者不使用或使用极少的代码来完成应用开发。 ArcObjects 每一个 ArcGIS 控件都封装了一些粗粒度(coarse grained)的 ArcObjects 以简化用户 的开发工作,但同时也提供了访问高粒度(finer grained)ArcObjects 的方法。例如, PageLayoutControl 控件封装了 PageLayout 对象(PageLayout Object) 。PageLayout 对 象
25、包含了至少一个 MapFrame 元素,其中有一个包含有多层矢量图、要素或者通常所说的 Layer 对象的 Map 对象。每一个 ArcGIS 控件提供了封装在 ArcObjects 中最频繁使用的属 性和方法的访问方法。例如,MapControl 中的 SpatialReference(空间参考)属性项,提 供了设置地图对象中空间参考属性的方法。每一个 ArcGIS 控件同时也有一些实现简单任务 的方法。例如,MapControl 有 AddShapeFile(用来添加 ShapeFile 文件)方法。ArcGIS 控件是典型应用开发的起点, 不仅因为它们提供用户界面, 同时也提供对象模型的
26、直接方法。 事件( 事件(Events) ) 每一个 ArcGIS 控件都能相应终端用户的键盘和鼠标操作。 其他的事件用于相应控件内 部的操作。例如,当一个地图文件被载入到 MapControl 中时,会触发 OnMapReplaced 事 件,或者说当一个对象被拖拽到 MapControl 上时,会触发 OnOleDrop 事件。 伙伴控件(Buddy Controls) 伙伴控件( ) ToolbarControl 和 TOCControl 需要和其他“伙伴控件”协同工作。通常说来, “伙伴 控件”指的是 MapControl,PageLayoutControl,ReaderControl,SceneControl 或者 GlobeControl。 “伙伴控件”可以在设计时通过控件的属性页来设置(在支持属性页的编译-8-ArcEngine 二次开发实习初级讲义环境中设置)或者在程序中用 SetBuddyControl 方法来设置。 控件命令( 控件命令(Control Commands) ) ArcGIS Engine 提供了与 ArcGIS 控件一起工作的一系列命令(commands) ,工具 (tools)和菜单(menus) 。例如,MapControl 和 PageLayoutControl 可
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1