基于ArcGISEngine组件开发教程_第1页
基于ArcGISEngine组件开发教程_第2页
基于ArcGISEngine组件开发教程_第3页
基于ArcGISEngine组件开发教程_第4页
基于ArcGISEngine组件开发教程_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、目录 TOC o 1-3 h z u HYPERLINK l _Toc286709573 1 简介 PAGEREF _Toc286709573 h 2 HYPERLINK l _Toc286709574 1.1 ArcGIS 9概述 PAGEREF _Toc286709574 h 2 HYPERLINK l _Toc286709575 1.2 读者定位及预期效果 PAGEREF _Toc286709575 h 3 HYPERLINK l _Toc286709576 1.3 ArcGIS Engine PAGEREF _Toc286709576 h 4的特点 HYPERLINK l _Toc28

2、6709577 1.4ArcGIS引擎组件 PAGEREF _Toc286709577 h 4 HYPERLINK l _Toc286709578 2 软件安装 PAGEREF _Toc286709578 h 6 HYPERLINK l _Toc286709579 2.1 安装前的准备 PAGEREF _Toc286709579 h 6 HYPERLINK l _Toc286709580 2.2 安装Visual Studio 2005 PAGEREF _Toc286709580 h 6 HYPERLINK l _Toc286709581 2.3 安装ArcGIS Engine Runtime

3、9.3 PAGEREF _Toc286709581 h 11 HYPERLINK l _Toc286709582 2.4 安装 ArcGIS Engine Developer Kit For Microsoft .NET Framework 9.3 PAGEREF _Toc286709582 h 15 HYPERLINK l _Toc286709583 2.5 ArcGIS Engine Developer Kit PAGEREF _Toc286709583 h 18的授权介绍ArcGIS 9 概述ArcGIS 为用户提供了一整套强大的 GIS 框架。本文将重点介绍如何使用 ArcGIS En

4、gine 快速构建和发布自定义 GIS 应用程序。对于需要在应用系统中添加地理信息功能的用户来说,ArcGIS Engine 是一个非常不错的选择。在 ArcGIS 9 系列产品中,ArcGIS Desktop、ArcGIS Engine 和 ArcGIS Server 都是基于核心组件库 ArcObjects 构建的。ArcObjects组件库有3000多个对象供开发者调用,包括细粒度的小对象,如Geometry对象;以及粗粒度的大对象,如Map对象,开发者可以通过这些对象对文档(mxd、3dd、sxd等)进行操作和控制,并与空间数据库进行交互。 ArcObjects 组件库为开发者集成了大

5、量的 GIS 功能,可以快速帮助开发者开发 GIS 项目。由于ArcGIS Desktop、ArcGIS Engine、ArcGIS Server都是基于ArcObjects构建的应用程序,所以ArcObjects的开发经验对于这三个产品的开发者来说是通用的。开发者可以通过ArcObjects扩展ArcGIS Desktop,定制ArcGIS Engine应用,使用ArcGIS Server实现企业级GIS应用。 ArcGIS 可以在各种编程环境中开发,包括:C+、支持 COM 的编程语言、.NET、Java 等。ArcGIS Desktop 的开发工具包 (SDK) 包含在 ArcView、

6、ArcEditor 和 ArcInfo 中,支持 COM 和 .NET 开发。用户可以应用ArcGIS Desktop SDK来扩展ArcGIS Desktop的功能,例如添加一些新工具、自定义用户界面、添加新的扩展模块等。ArcGIS Server 实现了一组标准的 Web GIS 服务(例如:制图、访问数据、地理编码等)以支持企业级应用程序。 ArcGIS Server SDK 使开发人员能够构建集中式 GIS 服务器来实现 GIS 功能、发布基于 Web 的 GIS 应用程序以及执行分布式 GIS 操作。2004年,美国ESRI发布了ArcGIS Engine。 ArcGIS Engin

7、e 开发工具包提供了一系列可在 ArcGIS Desktop 框架之外使用的 GIS 组件。 ArcGIS Engine的出现对于需要使用ArcObjects的开发者来说是一个福音,因为在ArcGIS Engine发布之前,基于ArcObjects的开发只能在庞大的ArcGIS Desktop框架下进行。学习定位和预期结果此信息旨在供以下用户阅读:使用 ArcGIS Desktop 的经验,使用了 ArcGIS 的几种数据格式,对ArcGIS空间数据组织有一定的了解。初步了解 ArcGIS Desktop 的制图表示。了解 C# 编程语言。通过阅读本学习资料,用户可以快速了解ArcGIS En

8、gine的组成部分,了解ArcGIS Engine可以完成哪些任务,掌握如何搭建ArcGIS Engine开发环境,开发典型的GIS应用,获得解决问题的方法。对用户进一步深入开发指导,提供深度学习方法和渠道。ArcGIS Engine 的特点开发者可以使用ArcGIS Engine开发包实现以下功能:分层显示专题地图,如道路、河流、行政边界等。浏览和缩放地图在地图上查看有关要素的信息在地图上搜索和查找要素在地图上显示文本注释在地图上叠加卫星或航空图像在地图上绘制点、线、多边形几何按矩形、圆形或多边形选择地图上的要素通过 SQL 语句查找特征使用各种渲染方式绘制地图图层,如:层次渲染、直方图渲染

9、、点密度渲染、比例渲染等。动态绘制实时数据,例如实时 GPS 坐标。变换空间数据的坐标系。ArcGIS Engine 的授权文件 (*.ecp) 控制用户可以使用哪些功能。能否使用 ArcGIS Engine 功能取决于用户自己的授权文件。编辑空间数据。 ArcGIS Engine 开发工具包使用户能够在地理数据库或 shapefile 中创建、修改或删除矢量要素。标准 ArcGIS Engine 运行时可以编辑 Shapefile 和简单的个人地理数据库功能。如果您需要编辑企业级地理数据库数据,则需要使用地理数据库更新扩展。空间建模与分析。 ArcGIS Engine 空间扩展模型提供了强大

10、的空间建模和空间分析功能。用户可以创建、查询、分析栅格数据,进行综合的栅格和矢量分析,并从栅格数据中提取各种信息。ArcGIS Engine 的组件ArcGIS Engine 由软件开发工具包 (SDK) 和运行时 (Runtime) 组成。ArcGIS Engine从功能层面可以分为以下五个部分:1、基础服务由GIS核心ArcObjects组成,几乎所有GIS应用都需要,如要素几何、显示等。2. 数据访问ArcGIS Engine 可以访问许多栅格和矢量格式,包括强大的地理数据库。3. 地图表示创建和显示带有符号和标签的地图。4. 开发组件用于快速应用程序开发的接口控件。5. 运行时选项Ar

11、cGIS Engine 运行时可以使用标准功能或其他高级功能进行部署。ArcGIS Engine Developer Kit是一款基于组件的开发产品,主要面向开发者,提供与开发环境的集成、开发辅助、类库对象模型图、代码示例等。ArcGIS Engine 的另一个组件是它的运行时。使用 ArcGIS Engine 开发工具包构建的所有应用程序在运行时都需要适当级别的 ArcGIS Engine 运行时。ArcGIS Engine 运行时有多个版本级别,从标准版一直到企业版。标准引擎运行时提供所有 ArcGIS 应用程序的核心功能。此级别的 ArcGIS Engine 运行时可以处理多种不同的栅格

12、和矢量格式、地图表示,并创建要素以通过执行各种空间或属性查询来查找要素。此级别的 ArcGIS Engine 运行时还可以执行基本数据创建、编辑 Shapefile 以及简单的个人地理数据库和 GIS 分析。编辑企业地理数据库扩展。 ArcGIS Engine 运行时企业级地理数据库编辑器增加了创建和更新多用户企业级地理数据库的功能。 ArcGIS Engine的其他扩展包括:Spatial Analysis Extension、3D Analysis Extension、Network Analysis、StreetMap Extension等。软件安装在开发 ArcGIS Engine 程

13、序之前,需要先部署开发环境。本文的ArcGIS Engine开发示例以C#语言为例。选择Visual Studio 2005作为C#的集成开发环境。 ArcGIS Engine开发环境的搭建需要按照以下步骤顺序进行:安装 Visual Studio 2005安装 ArcGIS Engine Runtime9.3为 Microsoft .NET Framework 9.3 安装 ArcGIS Engine 开发工具包ArcGIS Engine 开发工具包具有支持多种开发语言的开发工具包。用户可以使用VB6、VC+、C#、Java等开发ArcGIS Engine。每种语言都有对应的 ArcGIS

14、Engine Developer Kit 安装包。本文主要以C#为例。注意:安装ArcGIS Engine Developer Kit For Microsoft .NET Framework需要操作系统已经安装了.Net Framework 2.0,因为安装时ArcGIS Engine Developer Kit For Microsoft .NET Framework会检测本地是否安装了.Net Framework 2.0 .如果安装,ArcGIS Engine 的 .Net 类库将安装在系统上。如果没有检测到.Net Framework 2.0,则系统不会安装ArcGIS Engine的

15、.Net类库;具体表现为ArcGIS Engine的安装目录下会有一个DotNet文件夹。如果该文件夹存在,说明本地系统已经安装了ArcGIS Engine的.Net类库。这里我们需要安装开发环境,选择Visual Studio 2005作为开发工具,在安装Visual Studio 2005的过程中会自动安装.Net Framework 2.0。安装前的准备Visual Studio 2005 安装 CD 或安装文件。ArcGIS Engine Runtime9.3的安装光盘或安装文件。ArcGIS Engine Developer Kit For Microsoft .NET Framew

16、ork 9.3 的安装 CD 或安装文件。ArcGIS Engine 开发工具包的许可文件。安装 Visual Studio 2005将 Visual Studio 2005 安装 CD 放入 CD-ROM 驱动器。找到SETUP.EXE文件,双击运行,点击“安装Visual Studio 2005”。在弹出的安装向导界面,点击下一步。勾选“我接受许可协议中的条款”,然后单击“下一步”。在左侧面板中选择“自定义”。默认安装路径为C:Program FilesMicrosoft Visual Studio 8。如果需要修改安装路径,点击“浏览”,最后点击“下一步”。为了加快安装速度和节省磁盘空间

17、,可以去掉Visual C+、Visual J+和Microsoft SQL Server 2005 Express前面的勾,点击“安装”。安装程序开始安装组件,请耐心等待几分钟。单击“完成”。点击“退出”。至此 Visual Studio 2005 安装完成。安装 ArcGIS Engine Runtime9.3如果在安装 Visual Studio 2005 后直接安装 ArcGIS Engine Developer Kit,系统会提示您先安装 ArcGIS Engine Runtime 9.3 或 ArcGIS Desktop 9.3。让我们开始安装 ArcGIS Engine Runt

18、ime 9.3。将 ArcGIS Engine Runtime 9.3 安装光盘放入光驱,或者找到安装文件。找到Setup.exe文件,双击运行,在弹出的对话框中点击“下一步”。勾选“我接受许可协议”,然后单击“下一步”。点击下一步”。ArcGIS Engine Runtime 默认安装在 C:Program FilesArcGIS 路径下。如果您需要更改安装路径,请单击“浏览”并选择安装文件夹。点击下一步”。ArcGIS程序需要使用Python,默认安装在C:Python24路径下。如果您需要更改安装路径,请单击“浏览”并选择安装文件夹。点击下一步”。点击下一步”。安装程序开始安装,请耐心等

19、待几分钟。安装完成后,点击“完成”。为 Microsoft .NET Framework 9.3 安装 ArcGIS Engine 开发工具包将 ArcGIS Engine Developer Kit For Microsoft .NET Framework 9.3 安装 CD 放入 CD-ROM 驱动器。双击 ESRI.exe,然后在对话框中单击“ArcGIS Engine Developer Kit For Microsoft .NET Framework”。点击下一步”。勾选“我接受许可协议”;点击下一步”。安装程序会安装一些本地开发文档、代码示例、一些小工具、Visual Studio

20、2005模板等,点击“下一步”。点击下一步”。安装程序开始安装。单击“完成”。已安装 ArcGIS Engine SDK for Microsoft .Net Framework。将弹出一个对话框,开始注册 ArcGIS Engine SDK。ArcGIS Engine 开发工具包的许可继续上面的安装,点击“Finish”按钮后,出现如下界面,点击“Register Now”在注册选项中,选择以下使用授权文件进行注册,点击“下一步”单击“浏览”。在“打开文件”对话框中,浏览到授权文件所在的文件夹,选择授权文件,授权文件的扩展名通常为*.ecp,点击“打开”。点击下一步”。点击“完成”,ArcG

21、IS Engine Developer Kit授权完成使用 2D 控件ArcGIS Engine 9.3 提供了一些非常强大的控件来帮助开发者快速开发自己的 GIS 应用程序,例如:地图控制页面布局控件场景控制地球控制工具栏控件TOC控制SymbologyControl(9.3 版中的新功能)许可证控制本章以示例程序为例,讲解如何使用 ArcGIS Engine 开发 GIS 应用程序。本例主要练习有:如何使用 MapControl、ToolbarControl、TOCControl,如何将 ArcGIS Engine 设置的工具和命令添加到工具栏,如何浏览 mxd 地图文档,如何将 shap

22、efile 文件添加到地图控件,如何添加通过 lyr 文件层,如何读取要素类的属性信息并在网格控件中显示。地图浏览本示例不编写任何代码创建一个地图浏览小程序,可以打开mxd地图文档、缩放、漫游地图、点击查询属性等。从开始菜单启动Visual Studio 2005,启动画面如下。从菜单“文件”-“新建”中选择项目。从此步骤创建一个 C# 项目。在弹出的新建项目对话框中,首先选择Visual C#,然后在模板中选择Windows应用程序,将项目命名为“MapViewer”,然后点击浏览按钮指定存放项目文件的路径,本例为放入“C:src”文件夹,点击“确定”。创建 MapViewer 项目后,该项

23、目会自动创建一个名为 Form1 的表单。示例如下。右键单击表单并选择属性。在右侧的属性列表中找到“Text”属性,输入“MapViewer”。表单的标题更改为 MapViewer。拖动表格右下角使表格变大,点击左侧“工具箱”在弹出的工具箱中找到“ArcGIS Windows Forms”选项卡,点击选项卡前面的加号,展开选项卡,依次双击“ToolBarControl”“TOCControl”“MapControl”“LicenseControl”。用鼠标拖动Form1窗体界面上的各个控件,使各个控件如下图所示。选择ToolBarControl控件,在属性窗口中找到Dock属性,点击下拉按钮,

24、选择Top部分,如下图。同ToolBarControl的操作,设置TOCControl和MapControl的Dock属性分布为Left和Fill。设置完成后,效果如下图所示。至此,Form1表单的界面布局设置就完成了。窗体顶部是工具栏,左侧是图层列表,主工作区是地图控件。右键单击窗体上的 ToolbarControl,然后单击属性菜单。在弹出的对话框中,首先将 Buddy 属性设置为 axMapControl1,然后单击 Items 选项卡。在项目选项卡中,单击添加按钮。在左侧的类别中选择通用,然后双击右侧的打开工具。这样,打开工具就添加到了工具栏中。在左侧依次选择地图查询和地图导航,在工具

25、栏中添加识别、放大、缩小等工具。添加完成后,效果如下,点击确定按钮。右键单击 LicenseControl,然后单击属性菜单。浏览已选择 ArcGIS Engine 的弹出对话框。如果您需要其他扩展模块的权限,可以选中右侧相应的复选框,然后单击“确定”按钮。右键单击窗体上的 TocControl,然后选择属性菜单。将 Buddy 属性设置为 axMapControl1。单击确定按钮。在“调试”菜单中,单击“开始调试”菜单以运行程序。程序运行界面如下。单击工具栏上的第一个按钮。在弹出的对话框中浏览到一个 mxd 文档,然后单击打开按钮。地图文档中包含的图层被加载到地图控件和图层列表控件中。单击工

26、具栏上的识别工具,用鼠标点击地图上的某个要素,弹出的识别对话框显示被点击要素的属性信息。添加 shp 数据。就在 3.1 节中,我们在不编写代码的情况下生成了一个地图浏览小程序。让我们使用代码添加数据。在VS2005工具箱中,展开菜单和工具栏,双击MenuStrip控件,这样就在窗体中添加了一个菜单控件。点击菜单。输入“Add shp”作为菜单标题,输入“menuAddShp”作为菜单名称。选择“添加shp”菜单,点击属性框中的事件按钮,双击事件列表中的Click事件。自动生成的事件处理方法如下图所示,我们在方法中输入处理代码。让我们开始使用 ArcGIS Engine 进行编码。首先,您需要

27、添加对 ArcGIS 的引用。在解决方案管理器中右键单击“添加引用”。在对话框中选择ESRI.ArcGIS.DataSourcesFile、ESRI.ArcGIS.Geodatabase类库,点击确定按钮。在 Form1.cs 源代码文件中,在源代码顶部,输入以下代码以导入命名空间。使用System.IO;使用ESRI.ArcGIS.DataSourcesFile;使用ESRI.ArcGIS.Geodatabase;使用ESRI.ArcGIS.Carto;将以下代码添加到菜单的 Click 事件处理程序中。将 shapefile 添加到地图控件有多种方法,本示例的步骤如下:创建工作区工厂。打开

28、 shapefile 工作区。打开要素类。创建要素图层。关联图层和要素类。添加到地图控件。privatevoid menuAddShp_Click (对象致者, EventArgs e)IWorkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory ();IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile( D:GIS-Data , 0);IFeatureWorkspace pFeatureWorkspace = pWorkspace作为IFeatureWorksp

29、ace ;IFeatureClass pFC = pFeatureWorkspace.OpenFeatureClass( continent.shp );IFeatureLayer pFLayer = new FeatureLayerClass ();pFLayer.FeatureClass = pFC;pFLayer.Name = pFC.AliasName;ILayer pLayer = pFLayer作为ILayer ;IMap pMap = axMapControl1.Map;pMap.AddLayer(pLayer);axMapControl1.ActiveView.Refresh(

30、);注意:上述代码 pWorkspaceFactory.OpenFromFile(D:GIS-Data, 0) 中的符号导致转义字符“”被视为普通字符。在键盘上按F5,开始调试,点击“添加shp”菜单,将continent.shp添加到地图控件中。目前该功能只能在D:GIS-Data文件夹下添加continent.shp文件。为了让用户浏览磁盘目录来加载指定的shp文件。下面做一些改进。从工具箱向窗体添加一个 OpenFileDialog 控件。将原来的 Click 事件处理代码更新为以下代码:privatevoid menuAddShp_Click (对象致者, EventArgs e)IW

31、orkspaceFactory pWorkspaceFactory = new ShapefileWorkspaceFactory ();openFileDialog1.Filter = shapefile文件(*.shp)|*.shp ;openFileDialog1.InitialDirectory = D:GIS-Data ;openFileDialog1.Multiselect = false ;DialogResult pDialogResult = openFileDialog1.ShowDialog();if (pDialogResult != DialogResult .OK)

32、返回;字符串pPath = openFileDialog1.FileName;字符串pFolder =路径.GetDirectoryName(pPath);字符串pFileName =路径.GetFileName(pPath);IWorkspace pWorkspace = pWorkspaceFactory.OpenFromFile(pFolder, 0);IFeatureWorkspace pFeatureWorkspace = pWorkspace作为IFeatureWorkspace ;IFeatureClass pFC = pFeatureWorkspace.OpenFeatureC

33、lass(pFileName);IFeatureLayer pFLayer = new FeatureLayerClass ();pFLayer.FeatureClass = pFC;pFLayer.Name = pFC.AliasName;ILayer pLayer = pFLayer作为ILayer ;IMap pMap = axMapControl1.Map;pMap.AddLayer(pLayer);axMapControl1.ActiveView.Refresh();按键盘上的F5键,运行调试,点击“添加shp”菜单,在弹出的对话框中,选择任意一个shp文件,点击确定,将shp文件加

34、载到地图控件中。通过 lyr 文件添加图层如何添加 shp 数据在 3.2 中已经介绍过了。本节将介绍通过 lyr 文件添加数据。 lyr 文件可以是在 ArcMap 中制作的图层,其中已经包含图层符号化、标注和可见比例等信息。将“Add lyr”菜单添加到菜单,名称更改为 menuAddLyr。为 menuAddLyr 菜单添加 Click 事件处理程序。添加lyr文件的步骤是通过打开文件对话框浏览到一个lyr文件,然后通过地图控件的方法(AddLayerFromFile)直接加载。privatevoid menuAddLyr_Click( object sender, EventArgs

35、e)openFileDialog1.Filter = lyr文件(*.lyr)|*.lyr ;openFileDialog1.InitialDirectory = D:GIS-Data ;openFileDialog1.Multiselect = false ;DialogResult pDialogResult = openFileDialog1.ShowDialog();if (pDialogResult != DialogResult .OK)返回;字符串pFileName = openFileDialog1.FileName;axMapControl1.AddLayerFromFile

36、(pFileName);axMapControl1.ActiveView.Refresh();按 F5 开始调试。运行界面如下,点击Add lyr菜单。选择continent.lyr 图层文件并单击打开。加载完成后的界面如下图所示。要素类属性视图以上述方式添加菜单“Layer Attributes”,菜单的Name属性为menuAttributes。添加点击事件Click事件处理方法如下。该方法当前为空,以下步骤将填充代码。右键单击 MapViewer 项目,现在添加 - Windows 窗体。在“添加选项”对话框中,选择 Visual C# 项目项,为模板选择 Windows 窗体,然后输入 FrmAttributeTable.cs 作为名称。单击添加按钮。DataGridView 控件从工具箱到新窗体。将 DataGridView 的 Dock 属性设置为 Fill。右键单击表单并选择查看代码。为表单添加“加载”事件处理。自动生成的代码如下所示。在 FrmAttributeTable.cs 源代码的顶部添加以下三行代码以导入命名空间。使用ESRI.ArcGIS.Controls;使用ESRI.ArcGIS.Carto;使用ESRI.ArcGIS.Geodatabase;将以下代码添加到表单类。私有AxMapControl m_MapCt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论