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、地图查询分析案例。

  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选项。
相关文档
最新文档