ArcGIS Engine二次开发入门

合集下载

ArcEngine二次开发入门介绍

ArcEngine二次开发入门介绍
独立的产品。
2021/5/27
4
AO的功能
通过AO你可完成以下GIS功能:
❖ 空间数据的显示、查询检索、编辑和分析;
❖ 创建各种专题图和统计报表;
❖ 高级的制图和输出功能;
❖ 空间数据管理和维护;
❖ ……
2021/5/27
5
AO编程基础----COM




COM是Component Object Model的缩写

属性
哑铃形状的图标
Property Get
(read)

Property Set
(write)
方法
2021/5/27
18
设置属性

属性传值: 大部分 ArcObjects的属性
属性保存了一个对象的值或者一个拷贝
不需要使用Set关键字
= "Port Moresby" 'No Set keyword

2021/5/27
27
ArcGIS Engine 组成
两个产品:
❖ Engine开发包是创建自定义的GIS和制图应
用的工具包
❖ Engine运行时是为了运行自定义的Engine应
用的可分发的ArcObjects.
2021/5/27
28
ArcGIS Engine 开发包


组件,APIs,工具的集合,开发人员可以用来创建高级的
平台上。
COM通常的发布形式是:以win32动态链接库(DLL)或可执
行文件(EXE)的形式发布。
2021/5/27
6
COM的目标和特性

ArcEngine二次开发入门介绍

ArcEngine二次开发入门介绍

ArcObjects OMD图表上的虫洞
概念上,这是一个对象模型 事实上, 被分别在几张图表里存放
虫洞表现了图表与图表间的连接关系
虫洞
Element on ArcMap OMD
FeatureLayer on Map Layer OMD
例子: MxDocument > Map > layer
或者通过另一个类的实例化来创建对象。
在OMD中的关系类型主要有: 类型继承(AT和yBpe为in普h通eri类ta对nc象e),C为组件类对象,D为一普通类, 创建(Inst如an下tia面tio代n码): 组成(ComAp=osBit.iwornit)eA:()对象间的主次关系
) 关联(AssAoc=iaCtio.wnrsiteA()
*
Layer
ILayer pLayer = pMap. get_Layer(1);
// Is( pLayer is IFeatureLayer ) {
FeatureLayer
MessageBox.Show( "Yes!, it’s a feature layer" ); }
从当前的文档中取得聚焦的Map (active data frame)
MxDocument 可以包含一些 Maps ( * )
从一个 Map中取得图层对象
MxDocument
图层对象有多种的类型 ( )
*
Map
IMxDocument pMxDoc = LoadMxdDoc (@"c:\Temp\test.mxd"); IMap pMap = pMxDoc.FocusMap;
������ GeoTransformations(地理变换)对象等。

优-ArcEngine基础开发教程C#二次开发ArcGis

优-ArcEngine基础开发教程C#二次开发ArcGis

pPolyline.AddGeometry(pPath as IGeometry, ref o, ref o); 2.4.4.2Polylgon 几何对象
2Polylgon 对象是由一个或多个 Ring 对象的有序集合,它可以是由单个 Ring 对象构成,也可以使用多个 Ring 组成如下图所示。其中 Ring 可以分为 Outer Ring(外环)和 Inner Ring(内环)之分。外环和内环都是有方向的, 它们的区别是外环的方向是顺时针的,内环的方向是逆时针。Polygon 通常用来代表有面积的多边形矢量对象, 如行政区,建筑物等。
pPoint1.Y = 100; //定义第二个点
IPoint pPoint2 = new PointClass();
pPoint2.X = 200;
pPoint2.Y = 200; //创建一个 Line 对象
ILine pLine= new LineClass(); //设置 Line 对象的起始终止点
1.6 加载 MXD 地图文档数据 单击 F5 键运行程序,然后单击打开 MXD 地图文档按钮打开 MXD 地图文档,如图 4 所示:
04/04/2011
本文由 fxlcoco 编写 ESRI BBS GIS 大讲堂首发 第 2 页,共 80 页
山东农业大学资源与环境学院
世界有我精彩-【侯志伟】整理
山东农业大学资源与环境学院
地理信息系统08-3
世界有我精彩-【侯志伟】整理
ArcGIS Engine 基础开发教程(1)——创建第一个 ArcGIS Engine 桌面应用程序 1 创建第一个 ArcGIS Engine 桌面应用程序 ArcGIS Engine9.3 提供了丰富的 GIS 组件方便用户快速的定制开发一个 GIS 应用程序,无需写代码即可实现 GIS 数据加载,地图操作等功能甚至可以实现高级编辑以及空间分析功能。接下来使用 ArcGIS Engine9.3 提供了 MapControl Application 模块来创建第一个 ArcGIS Engine 桌面应用程序,并为桌面应用应用程序提供编辑功能。 1.1 目标 1.创建第一个 ArcGIS Engine 桌面应用程序 2.为应用程序添加编辑功能。 1.2 准备工作 1 .IDE:Visual Studio 2005/2008 2. ArcGIS Engine Developer kit 9.3 3. 制作 ArcGIS 实验数据地图文档 MXD 1.3 设计流程图

ArcEngine二次开发入门

ArcEngine二次开发入门

符号
ISymbol:符号 IMarkerSymbol:点状符号 ILineSymbol:线状符号(线型) IFillSymbol:填充符号(填充图案)

SimpleMarkerSymbol
ISimpleMarkerSymbol CreateSimpleMarkerSymbol(IRgbColor rgbColor, esriSimpleMarkerStyle inputStyle) { if(rgbColor == null || inputStyle == null) { return null; } ISimpleMarkerSymbol simpleMarkerSymbol = new SimpleMarkerSymbolClass(); simpleMarkerSymbol.Color = rgbColor; simpleMarkerSymbol.Style = inputStyle; return simpleMarkerSymbol; }
}
添加栅格图层
void AddRasterFileToMap(string rasterFolder, string rasterFile) { IRasterLayer layer = new RasterLayerClass(); layer.CreateFromFilePath(rasterFolder + "\\" + rasterFile); = rasterFile; m_mapControl.AddLayer(layer, 0); }


IFeatureRenderer
ISimpleRenderer:简单渲染(所有要素采 用相同的渲染方式) IUniqueValueRenderer:唯一值分类渲染 IClassBreaksRenderer:连续值分级渲染

第6章ArcGISEngine二次开发矢量数据空间分析

第6章ArcGISEngine二次开发矢量数据空间分析

3.2 添加引用和代码
向工程中添加 SystemUI 、System、Geometry、GeoDatabase、 Display、DataSourcefile、DataSourceGDB、Carto和 Controls 对 象的引用,如下图:
最后是为两种种不同叠置方法添加代码,依次双击叠置求和与叠 置求交,在相应的区域添加函数调用,以叠置求和为例:
叠置分析是将同一地区、同一比例尺的两个或两个以上数据层 进行叠置,生成一个新的数据层, 使新数据层的各要素具有各叠 置层要素的多重属性或与之相关联的属性信息的一种空间分析方 法。这里重点是同一地区、同一比例尺、当然坐标系统还必须一 致。上面就是叠置分析中最常见的两种方法。
其中:Overlay_Union 是给叠置求和按钮定义的名称,Union() 是定义的求交函数,这里表示调用函数。求交函数 Union()中 输入以下代码:
运行结果如下(以叠置求和为例):
3.4 小结
其中的分析数据 states.shp 是 ArcGIS 软件本身自带数据,而 AnalysisShapefile.shp 文件是自己创建的叠置分析文件,利用 ArcCatalog 在选定的文件夹中新建一个 shp 文件,选定为Polygon, 设置坐标系统与 states.shp 文件一致,在 ArcMap 中对其进行编辑, 保存即可。
3.1 添加控件
创建一个新VB工程, 向Form1中拖放一个LicenseControl 和 MapControl以及两个Button控件,如下图:
然后对 MapControl 控件的属性进行设置,将进行叠置分析的 两图层绑定到其中,对两个 Button 控件进行设置,更改 Text 属性分别为:叠置求和和叠置求交,更改它们的名称分别为: Overlay_Union 、 Overlay_Intersect 。

ArcGIS Engine二次开发入门

ArcGIS Engine二次开发入门
请您在Private Sub AxMapControl1_OnMouseDown函数中添加 如下代码:
if (e.button == 1)
this.axMapControl1.Extent = this.axMapControl1.TrackRectangle();
else if (e.button == 2)
图25 重置工具箱
图26 选择项…
图27 选择工具箱项
图28 选择工具箱项
添加好MapControl和LicenseControl之后,调整Form1和MapControl的位置 与大小,如下图所示:
图29 窗体布局
添加地图
在MapControl上单击鼠标右键,选择“属性”,则会弹出MapControl的属性设 置面板,在之前也介绍过,通过这个面板可以完成许多简单的工作。
– 沿着线选择或者选择矩形、某一范围内、多边形等 内部的要素
– 选择距离在某一范围内的要素 – 利用SQL语言来寻找和选择要素 – 利用专题地图来渲染要素,如唯一值法、分级法和
点状密度法
– 动态显示实时地图或者时序数据 – 根据地理编码来寻找位置 – 转换您地图的坐标系
– 根据几何操作来生成缓冲区、计算差值,或者进行 求交、求并等运算
using ESRI.ArcGIS.Carto; using ESRI.ArcGIS.Geodatabase; 如下图所示:
图36 引用添加位置
图37 添加引用对话框
之后在控件TextBox的事件中选择KeyUp,在KeyUp事件中添加以下代码:
this.axMapControl1.Extent = this.axMapControl1.TrackRectangle(); else if (e.button == 2)

ArcGISEngine二次开发:从入门到精通

ArcGISEngine二次开发:从入门到精通

ArcGISEngine⼆次开发:从⼊门到精通ArcGIS Engine是ArcGIS的⼀套软件开发引擎,可以让程序员创建⾃定义的GIS桌⾯程序。

它是ESRI在ArcGIS9版本才开始推出的新产品,它是⼀套完备的嵌⼊式GIS 组件库和⼯具库,使⽤ArcGIS Engine开发的GIS应⽤程序可以脱离ArcGIS Desktop⽽运⾏。

>>ArcGIS Engine与国⼟资源:ESRI在线⽀持:最好的帮助⽂档其实是arcobject sdk帮助⽂档和samples.....但是,有⼀本参考书还是必要的。

本书共16章。

第⼀部分为基础篇:第1~9章,主要是控件。

第⼆部分为应⽤提⾼篇:空间分析。

第10章。

第三部分:第11~12章,实例应⽤。

第四部分为空间数据库的操作。

第1章开发基础ArcGIS的类库总体可以分为界⾯控件类和操作组件类。

控件和组件是不⼀样的,控件是有界⾯的,组件是没有界⾯的。

所以它们的引⽤⽅式是不⼀样的。

需要注意它们的区别。

具体可以看:OM组件System类库:System类库是Engine中最底层的类库。

SystemUI类库:主要定义了ArcGIS系统中所使⽤的⽤户界⾯组件类型。

Geometry类库:包含了核⼼⼏何对象,如点、线、多边形及其⼏何类型和定义。

Display类库:包含了⽀持向输出装置绘制符号体系的组件。

Server类库:包含了⽤于获取到ArcGIS Server的连接的对象。

Output类库:包含了⽣成输出所必须的对象,通常是从地图或页⾯布局输出到打印机、绘图仪,或导出到⽂件中。

Geodatabase类库:Geodatabase类库:包含了所有与数据访问相关的定义的类型,为地理数据提供了编程API,是建⽴在标准⼯业关系型和对象关系数据库技术之上的地理数据库。

GISClient类库:DataSourcesFile类库:DataSourcesGDB类库:DataSourcesOleDB类库:DataSourcesRaster类库:GeoDatabaseDistributed类库:Carto类库:Carto类库:该类库⽀持地图的创建和显⽰,PageLayout 对象是地图及其底图元素的容器。

ArcGIS二次开发学习内容

ArcGIS二次开发学习内容

第一篇、基础篇:第一章、ArcGIS体系介绍1、ArcGIS概述;2、ArcGIS二次开发方式、应用范围和优缺点第二章、ArcGIS二次开发软件安装和配置1、ArcGIS Desktop10安装;2、ArcEngie10安装;3、ArcServer10安装和配置;4、开发工具VS2010安装第二篇:ArcEngine开发第三章、Arcengine开发方式入门,1、搭建开发环境:1.1、ArcEngine的LIC使用,1.2、使用代码代替LIC设置;2、ArcEngine控件使用:2.1、Map Control控件,2.2、PageLayoutControl控件,2.3、ToolbarControl使用,2.4、TOCControl使用3、ArcEngine开发,ArcMap等桌面的应用程序:3.1、BaseCommd 命令应用和使用,3.2、BaseTool工具开发应用和使用,3.3、BaseToolbar工具条应用和开发,3.4BaseMenu菜单的应用和开发,3.5、DockableWindow浮动窗口的应用和开发,3.6、Addin应用和开发,第四章、地图显示 4.1、数据加载;4.2、地图符号化;4.3、制作专题图;4.4、地图的注记和标注;4.5、地图的投影第五章Geoprocessor(GP)使用5.1、GP调用基本方法;5.2、GP错误异常处理;5.3、GP数据处理案例;5.4、GP数据分析案例;5.5、GP调用数据模型案例第六章、数据查询和分析 6.1、一般的查询分析;6.2、空间缓冲区分析第七章、地图打印输出7.1、按纸张打印;7.2、指定比例打印;7.3、切割打印;7.4、批量生成Mxd导出图片,批量打印实现;7.5、地图打印综合案例第八章、Python 8.1、Python语言;8.2、Python在ArcGIS应用;8.3、Python和数据模型(ModelBuilder);8.4、Pyhon中批量处理第三篇:ArcGIS Server 开发第九章、ArcGIS Server 开发入门9.1、ArcGIS Server开发方式介绍;9.2、ArcGIS Server配置和性能优化;9.3、ArcGIS Server地图服务发布;9.4、ArcSDE数据的连接和使用;9.5、Silverlight开发入门第十章、ArcGIS server 控件使用10.1、资源管理控件;10.2、地图显示控件;10.3、其他相关控件;10.4、自定义Tool和Command;第十一章、ArcGIS 11.1、地图选择和定位;11.2、地图的图层控制;11.3、地图符号Server地图操作使用和各种专题图操作;11.4、数据的基本编辑第十二章、ArcGIS Server GP的调用12.1、ArcGIS Server GP调用方式;12.2、ArcGIS Server GP调用工具箱的工具;12.3、ArcGIS Server GP调用自定义的数据模型;12.4、ArcGIS Server GP服务发布第十三章、ArcGIS Server Silverlight开发13.1、Silverlight数据展示;13.2、把其他数据(如Google Earth)叠加到当前数据窗口;13.3、在线编辑(Web Editing);13.4、时态感知(Time-Aware);13.5、地图服务增强(Map Service)第十四章、ArcGIS Server开发案例14.1、地图缓冲区分析;14.2、地图网络分析(最短路径和服务区分析);14.3、地图查询分析案例。

ArcGIS Engine第一章 二次开发概述

ArcGIS Engine第一章 二次开发概述
AO开发出来的系统不是独立的产品,它必须以ArcGIS Desktop为后台基础。 这是AO和ArcEngine最主要的区别
ArcEngine是基于AO组件库的,即AO构建了ArcEngine,但ArcEngine是独 立于应用程序的AO编程环境,应用与ArcGIS Desktop应用程序框架之外的 ArcGIS组件
ColdFusion、ASP等多种Web Server端技术,同时开发了有望成为未来
Internet环境中GIS通用语言的ArcXML,为空间数据跨厂商跨平台的广
泛交流和共享打下了坚实的基础。
ArcSDE
2、ArcGIS 的服务器端
ArcSDE是ESRI的空间数据库引擎,用于对海量空间数据及其属性数据的管
开发组件:用于快速应用程序开发的高级用户接口控 件和用于高效开发的一个综合帮助系统。
扩展模块:AE标准版并不包含这些ArcObjects的许可,他们只能作为阔赞 存在,需要特定的License才能运行。
地图浏览
地图制作 数据查询
标准功能
数据分析
所有的开发控件
—MapControl, PageLayout, Toolbar, TOC, ArcReader
2、ArcGIS 的服务器端
用户的空间数据和应用可以通过ArcIMS 在 Intranet/Internet环境中进
行发布和共享。ArcIMS提供用户在服务器端可以以影像方式或矢量数据
流方式进行数据发布。客户端用户通过工业标准的通用浏览器即可对
ArcIMS服务站点进行访问和交互操作。ArcIMS支持包括Servlet、
没有ArcGIS桌面应用框架或对话框 需要许可授权
通过代码或应用工具配置

实习指导书_第五章_ArcGIS Engine二次开发入门

实习指导书_第五章_ArcGIS Engine二次开发入门

第五章ArcGIS Engine二次开发入门5.1 ArcGIS、ArcObjects和ArcGIS Engine简介5.1.1 ArcGIS简介ArcGIS提供了一个可伸缩的框架,可以为独立用户或者多用户,既可以在桌面端也可以在服务器端提供GIS。

ArcGIS 9是用来构建一个完整GIS应用的GIS软件产品集成。

它是基于共享的GIS软件组件——ArcObjects。

ArcGIS 9由以下四部分组成:●ArcGIS Desktop——高级GIS应用的集成●ArcGIS Engine——根据应用程序接口来构建基本应用的嵌入式GIS组件库●ArcGIS Server——在企业级或者网络框架下构建服务器端GIS应用的平台,用来构建Web服务和Web应用●ArcIMS——通过公开的因特网协议来发布地图、数据和元数据的GIS Web服务器图 1 ArcGIS产品结构图每一个GIS框架同样包含ArcSDE网关,这是在关系数据库(RDBMS)上组织地理数据的接口。

ArcGIS是构建地理信息系统的平台。

ArcGIS 9在地理数据处理、3D可视化表达和开发工具方面做了新的扩展。

两个新的产品——ArcGIS Engine和ArcGIS Server在这个版本中发布,是ArcGIS成为一个应用程序及服务端开发的完整产品。

●使用ArcGIS能够开发出一系列的产品,开发者可以:●配置/定制ArcGIS的应用,例如ArcMap和ArcCatalog●扩展ArcGIS的结构和数据模型●利用ArcGIS Engine在其他应用程序中嵌入地图和GIS功能●使用ArcGIS Engine构建并部署桌面版应用程序●使用ArcGIS Server构建Web服务和应用ArcGIS系列产品是通过称之为ArcObjects的软件组件加以构建和扩展的。

ArcObjects 包括一系列不同的程序组件,从高度封装的组件(例如独立的geometry objects)到低级组件(例如能够同已有的ArcMap文档集成的地图组件)。

ArcGIS二次开发

ArcGIS二次开发

第一章z开发基础1.1组件对象模型在明确讨论COM之前,有必要先一般性地思考一下软件组件使用的广泛性。

在软件组件背后有许多的驱使因素,但最基本的就是软件开发是个昂贵和耗时的风险行为。

在理想的世界里,假如曾经写了一段代码,然后通过不同的开发工具一次一次的反复使用它,这种情况是可能的,即便是在最初的开发者不能预见的环境下也能使用。

理想情况下,对最初开发者生成的函数功能的改变能在不需要目前用户改变和重编译他们的代码情况下实现。

早期重用代码块的尝试就是创建类库的进展,这些类库通常用C++开发。

早期的尝试有很多的限制,较为明显的是:共享系统组件的困难(共享二进制C++组件是非常困难的——大部分的尝试是共享源代码);不重新编译就很难保存和更新C++组件的问题;缺乏好的建模语言和工具以及属性接口和定制工具。

为了解决这样那样的一些问题,许多软件工程师开始采用基于组件的方法进行系统开发。

一个软件组件就是一个可重用代码的二进制单元。

已经出现了几个不同但相互重叠的开发和共享组件标准。

微软的COM已成为建立交互式桌面应用程序事实上的标准。

在互联网上,JavaBean是可行的技术。

对象管理组(OMG)制定了粗粒度层次上适用于应用程序互操作的公用对象请求代理架构(CORBA)。

为了理解COM(以及所有基于COM的技术),认识到其不是一种面向对象语言而是一个协议或标准是非常重要的。

COM不仅仅是一种技术,还是软件开发的一种方法论。

COM定义了一种连接软件组件或模型的协议。

通过使用这种协议,可以建立能在分布式系统中动态交互的可重用软件组件。

COM还定义了一种称作基于接口的编程模式。

对象封装了能体现定义良好的接口后每个实例化对象特征的操作方法和数据。

这增强了系统开发的结构化和安全性,因为一个对象的客户并不知道某个特定方法如何实现的任何细节。

COM不规定应如何构建一个应用程序。

语言、结构和实现细节都由使用COM的应用程序开发人员决定。

ArcGIS Engine二次开发入门(课堂PPT)

ArcGIS Engine二次开发入门(课堂PPT)
“Members”指的是接口下的成员,这包括属性、方法等。这里我们不能一一给您列举出来,而是挑选一 个作为例子讲解。 例如我们看到“Search”成员,这是一个方法,通过对“Search”的描述,我们可以得到,“Search”方 法将“返回一个object cursor,其中包含经过特定的查询条件得到的要素对象”。通过这个描述,我们可 以大概得出,通过“Search”方法,我们可以从一个要素集中按照一定的查询条件得到一些特定的要素,供 后续使用。为了获得更加详细的描述,我们点击
.
72
.
73
如上图所示,对象模型图展示了每个对象内的各类之间的接口,继承、派生关系,属性及方法之 间的联系等,是对整个对象最完整的定义。对象模型图可视化的表达了ArcObjects的继承关系, 因而您能识别关键对象,查看哪些对象之间具有联系(如对象的创建关系),理解接口继承和派 生类型的定义,并且找出实现了一个类所实现的全部接口。参考对象模型图与参看帮助系统中具 体的接口所获得的信息是一致的,只不过查看具体的接口信息将更方便获得具体的使用方法,属 性设置方法等,而参看对象模型图是从全局来把握整个对象,更容易找出各接口之间的联系和调 用方式等。 对象模型图的放置路径为“X:\Program Files\ArcGIS\DeveloperKit\Diagrams”(X代表ArcGIS 安装所在的盘符)。 对象模型图的书写类似于UML图,对象模型图中也对其基本规则也有所解释,因而UML的具体语 法规则、定义等这里不再赘述,如果需要更加详细的信息,您可以参考UML方面的相关书籍,或 者参考《Exploring ArcObjects》中的相关章节。
.
3
5.6 BaseTool开发实例
.
4
.

ArcGis__Engine_二次开发教程

ArcGis__Engine_二次开发教程

基于.net的ArcGIS Engine介绍-类库
1、SystemUI类库 2、Geometry类库 3、Display类库 4、Server类库 5、。。。
.NET平台概述
.NET开发平台包括.NET Framework 和 Visual 。 Visual 是一套完整的开发工具, 用于生成ASP Web应用程序、Web Services 、桌面应用程序和移动应用 程序。 .NET Framework是生成、部署和运行 Web服务及应用程序的平台。其具有两 个主要组件:通用语言运行时 (Common Language Runtime ) 和.NET Framework类库。
2、COM是开发软件组件的一种方法。
ArcGIS Engine介绍-体系结构
Arc Engine功能层次上由以下五 个组成部分:
• 基本服务:由GIS核心Arc Objects构成,如要素几 何体和显示。 • 数据存取:Arc Engine可以对许多栅格和矢量格式 进行存取,包括强大而灵活的地理数据库。 • 地图表达:包括用于创建和显示带有符号体系和标 注功能的地图的Arc Objects,以及包括创建自定 义应用程序的专题图功能的Arc Objects。 • 开发组件:用于快速应用程序开发的高级用户接口 控件和用于高效开发的一个综合帮助系统。 • 运行时选项:Arc Engine运行时可以与标准功能或 其他高级功能一起部署。
第一章 开发基础
制作人:邱洪钢 2010年2月
目录
一、组件对象模型 二、ArcGIS Engine介绍
三、.NET平台概述
四、 基于.NET的ArcGisEngine的开发 五、本章小结
组件对象模型
1、COM,即组件对象模型,是关于

优-ArcEngine基础开发教程C#二次开发ArcGis

优-ArcEngine基础开发教程C#二次开发ArcGis

优-ArcEngine基础开发教程C#二次开发ArcGisArcGIS Engine基础开发教程(1)——创建第一个ArcGIS Engine 桌面应用程序1创建第一个ArcGIS Engine桌面应用程序ArcGIS Engine9.3提供了丰富的GIS组件方便用户快速的定制开发一个GIS应用程序,无需写代码即可实现GIS 数据加载,地图操作等功能甚至可以实现高级编辑以及空间分析功能。

接下来使用ArcGIS Engine9.3提供了MapControl Application模块来创建第一个ArcGIS Engine桌面应用程序,并为桌面应用应用程序提供编辑功能。

1.1目标1.创建第一个ArcGIS Engine桌面应用程序2.为应用程序添加编辑功能。

1.2准备工作1 .IDE:Visual Studio 2005/2008 2. ArcGIS Engine Developer kit 9.3 3. 制作ArcGIS实验数据地图文档MXD 1.3设计流程图1.4制作地图文档在ArcMap中加载数据后,点击保存生成一个*.mxd地图文档,如图1所示:1.5创建第一个ArcGIS Engine桌面应用程序在Visual Studio2008中新创建项à选择àArcGISàEngineàMapControl Application,点击确定,如图2所示:可以看到在Visual Studio中看到在新创建的项目中自动加载了ToolBarControl、T ocControl、LicenseControl、MapControl四个ArcGIS Engine控件以及一个.NET ToolStripMenuItem菜单控件,如图3所示:1.6加载MXD地图文档数据单击F5键运行程序,然后单击打开MXD地图文档按钮打开MXD 地图文档,如图4所示:可以看到应用程序把MXD地图文档加载到MapControl地图上,可以使用ToolbarControl提供的常用GIS 功能如:放大,缩小,信息查询等功能。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

图25 重置工具箱
图26 选择项…
图27 选择工具箱项
图28 选择工具箱项
添加好MapControl和LicenseControl之后,调整Form1和MapControl的位置 与大小,如下图所示:
图29 窗体布局
添加地图
在MapControl上单击鼠标右键,选择“属性”,则会弹出MapControl的属性设 置面板,在之前也介绍过,通过这个面板可以完成许多简单的工作。
图24 工具箱
如果您在工具箱中找不到MapControl, 则请依次尝试以下两种解决方案。首先 单击工具栏,待工具箱弹出之后,在工 具箱的任意位置上单击鼠标右键,从弹 出菜单中选择“重置工具箱”。如果这 一步操作之后仍然无法看到MapControl ,则请滑动工具栏右侧的滚动条至最底 部,找到“常规”选项卡,然后在“常 规”选项卡上单击鼠标右键,在弹出菜 单中单击“选择项(I)…”,在弹出的 对话框中找到“AxLicenseControl”和 “AxMapControl”,将这两项前的复选 框打上勾,最后点击确定即可(如果在 “.NET Framework组件”这个面板中找 不到这两项,则选择“COM 组件”面板 ,在“ESRI LicenseControl”和“ESRI MapControl”前面打勾)。
Wuhan University School of Remote Sensing and Information Engineering
GIS工程设计开发综合实习
——基于C#.NET和AO/AE的GIS设计与开发
张文、黄长青 武汉大学遥感信息工程学院
Wuhan University School of Remote Sensing and Information Engineering
– 沿着线选择或者选择矩形、某一范围内、多边形等 内部的要素
– 选择距离在某一范围内的要素 – 利用SQL语言来寻找和选择要素 – 利用专题地图来渲染要素,如唯一值法、分级法和
点状密度法
– 动态显示实时地图或者时序数据 – 根据地理编码来寻找位置 – 转换您地图的坐标系
– 根据几何操作来生成缓冲区、计算差值,或者进行 求交、求并等运算
图23 新建项目对话框
添加控件及引用
点击编译器最左侧的“工具箱”,在弹出的选择项中找到“ArcGIS Windows Forms”项,单击其中的MapControl,之后在Form1的空白处 单击鼠标左键不放并拖拽鼠标,直到调整MapControl到合适的大小再 松开鼠标(您也可以直接在工具箱中双击MapControl,该控件则会自 动加入到Form1中)。用同样的方法,再将LicenseControl添加到 Form1中。
Part 5:
ArcGIS Engine二次开发入门
2
ArcGIS Engine二次开发入门
5.1 ArcGIS Engine简介 5.2 ArcGIS Engine开发起步 5.3 属性查询 5.4 空间查询 5.5 BaseCommand开发实例 5.6 BaseTool开发实例 5.7 通过代码添加图层 5.8 构建一个简单的GIS应用 5.9 问题解决方法及帮助文档的使用
C#.NET,也无需担心,这个例子将从零开始引导您一步 一步完成任务。
创建一个新的工程
首先打开Microsoft Visual Studio 2005,点击菜单栏中的“ 文件”—>“新建项目”,在弹出的对话框中选择新建一个 C#的Windows应用程序,之后更改项目名称为 “MapView”,更改文件的路径为个人实习文件夹,点击 “确定”即可。
剖面分析和最短距离分析
5.2 ArcGIS Engine开发起步——第一个简单的 地图显示程序
这个例子将引导您创建第一个简单的地图显示程序,并添 加基本的缩放和漫游功能。如果您之前没有接触过ArcGIS Engine的开发,那么这个例子是您迈入ArcGIS Engine二次 开发大门的极好例子,如果您之前没有接触
三维可视化等
ArcGIS Engine Runtime中的3D选项让您 通过使用Scene和Globe控件来有效的表 cene和Globe文档 – 展示交互性的透视图,包括漫游、缩放、旋
转、倾斜、模拟飞行以便于表达和分析 – 显示真实世界的表面要素,例如楼房 – 展示视域和可见范围分析、场景高度内插、
3
5.1 ArcGIS Engine简介
ArcGIS Engine的功能十分强大。作为ArcGIS Engine开发者,您可以实现以下列出的和其他 更多的功能,这包括:
– 用多个图层来显示地图,例如道路、水系、边界等 – 地图的漫游和缩放 – 地图上要素的确认 – 地图上要素的查询和定位 – 根据属性值显示注记 – 根据航片或者卫片显示图像 – 绘制几何图形,例如点、线、弧、多边形 – 添加描述性的文字
空间建模和分析
空间建模和通过增加ArcGIS Engine Runtime中 的Spatial选项,您能够扩展ArcGIS Engine的功 能。这个选项(Spatial选项)能提供一系列强 劲的空间建模和分析功能。您能够创建、查询 、表达和分析基于象元的栅格数据,能够集成 栅格和矢量数据进行分析,能够从已有数据挖 掘出新的信息,能够从多层数据中查询信息, 能够在ArcGIS Engine应用程序中完美集成基于 象元的栅格数据和矢量数据。
– 编辑要素形状或者旋转地图 – 创建并更新要素的几何形状及其属性
编辑要素(Editing Features)
ArcGIS Engine开发包让您构建出能创建、 修改和删除geodatabase中矢量要素或者 shapefile文件的应用程序。标准的ArcGIS Engine Runtime能够让编辑shapefile文件或 者personal geodatabase中简单要素的程序运 行。然而,要构建企业级geodatabase的全 部功能,就需要ArcGIS Engine Runtime中 的Geodatabase Update选项。
相关文档
最新文档