ArcGIS Engine的开发与部署培训资料

合集下载

牟乃夏ArcEngine教程:第1章 ArcGIS Engine编程基

牟乃夏ArcEngine教程:第1章 ArcGIS Engine编程基

1.1 ArcGIS Engine概述
ArcGIS Engine开发工具包的组成
1.1 ArcGIS Engine概述
• ArcGIS Engine运行时
➢ArcGIS Engine运行时是能够保证基于ArcGIS Engine开发的软件正常运行的 ArcObjects组件产品,是运行由ArcGIS Engine开发的应用程序的基础软件 环境。
• 2.CoClass类 • CoClass类,即可创建类。该类可以通过new关键字直接实例化对
象,它的实例对象不依赖其他对象的存在而存在,其生存周期也 不由其它的对象管理。如QueryFilter是一个组件类,可以用new关 键字来创建一个对象。
1.4 对象模型图(OMD图)
• 3. Class类 • Class类,即可实例化类。该类不能直接使用new关键字创建对
1.2 ArcGIS Engine开发资源
• 1.帮助文档
• 【开始】→【所有程序】→【ArcGIS】 →【Developer Help】→【ArcObjects Help for .NET】,即可启动ArcObjects 的帮助系统。
• 2.自带示例
• 在安装完ArcObjects SDK后,在 “..\Program Files\ArcGIS\DeveloperKit10.0\Samples” 文件夹下,包含有许多自带的代码示 例工程,这些都是开发人员学习 ArcGIS Engine开发很好的资源。
1.4 对象模型图(OMD图)
• 2)组合关系 • 组合关系指其中一个类对象是另外一个类对象的组成部分,由组
成对象控制被组成对象的整个生命周期,在OMD图中用实心菱形 表示。
Layer是Map的一部分,当Map消失的时候,Layer也 将不复存在。在ArcGIS Engine中,地图文档由多个地 图组成,工具条控制对象由多个工具项组成,这些

ArcGIS Engine 10入门培训

ArcGIS Engine 10入门培训

几个小的功能的演示
打开地图文档
1,axMapControl1.LoadMxFile(MxdFilePath); 2,命令ControlsOpenDocCommandClass ICommand pOpen = new ControlsOpenDocCommandClass(); pOpen.OnCreate(axMapControl1.Object); pOpen.OnClick();
ArcGIS Engine开发包总揽
2.2 可伸缩的ArcGIS Engine运行时
运行自定义的ArcEngine应用 的可分发的ArcObejcts. ArcGIS Engine Runtime 由最终用户安装 运行ArcEngine应用程序所 必须的 不同级别的运行时许可
• • • • • • 读取所有支持的ESRI数据格式包括geodatabase 地图制作(创建和编辑MXD) ArcGIS 级别的绘图 查询和分析 地理编码 简单编辑(shp 和 pGDB)
ArcEngine系统开发欣赏
二维系统
青岛市环境污染实时检测与动态模拟系统
青岛市环境污染实时检测与动态模拟系统
类库纵览
238
4.4.1 常用控件介绍
ToolbarControl
PageLayoutControl
MapControl
开发控件
• • • • • • • MapControl PageLayoutControl ToolbarControl TOCControl ReaderControl SceneControl GlobeControl
ArcGIS: A Complete GIS
Applications
ArcGIS Desktop ArcGIS Engine ArcGIS Explorer Web Mapping Application ArcGIS Mobile

ArcGIS Engine轻松入门

ArcGIS Engine轻松入门

ArcGIS Engine 轻松入门
Desktop 的功能, 例如添加一些新的工具, 定制用户界面, 增加新的扩展模块等。 ArcGIS Server 实现了一套标准的 Web GIS 服务(例如:制图,访问数据, 地理编码等) ,支持企业级应用。ArcGIS Server SDK 使得开发人员可以建立集 中式的 GIS 服务器来实现 GIS 功能,发布基于 Web 的 GIS 应用,执行分布式 GIS 运算等。 2004 年,美国 ESRI 发布 ArcGIS Engine,ArcGIS Engine 开发包提供了一 系列可以在 ArcGIS Desktop 框架之外使用的 GIS 组件,ArcGIS Engine 的出现 对于需要使用 ArcObjects 的开发人员来说是个福音,因为 ArcGIS Engine 发布 之前,基于 ArcObjects 的开发只能在庞大的 ArcGIS Desktop 框架下进行。
1.3 ArcGIS Engine 的 功 能
开发人员可以使用 ArcGIS Engine 的开发包实现如下功能: 分图层显示专题图,例如:道路,河流,行政边界等。 浏览、缩放地图 查看地图上特征要素的信息 在地图上检索、查找特征要素 在地图上显示文本注记 在地图上叠加卫星影像或航摄影像 在地图上绘制点、线、面几何体 通过矩形、圆形或多边形来选中地图上的要素 通过 SQL 语句来查找要素 使用各种渲染方式来绘制地图图层,例如:分级渲染,柱状图渲染,点 密度渲染,依比例尺渲染等。 动态绘制实时的数据,例如实时的 GPS 坐标点。 转换空间数据的坐标系。 ArcGIS Engine 的授权文件 (*.ecp) 控制用户可以使用哪些功能。 ArcGIS Engine 的功能是否可以使用需要根据用户自己的授权文件而定。 编辑空间数据。ArcGIS Engine 开发包使得用户可以创建、修改或者删除在 Geodatabase 或者 shapefile 中的矢量要素。 标准的 ArcGIS Engine Runtime 可 以 编 辑 Shapefile 和 简单 的 Personal Geodatabase 要 素, 如果 需要 编 辑 Enterprise Geodatabase 数据,需要使用 Geodatabase Update 扩展。 空间建模和分析。ArcGIS Engine Spatial 扩展模型提供了强大的空间建模 和空间分析功能。用户可以创建、查询、分析栅格数据,执行整合的栅格和矢量 分析,从栅格数据中提取各种信息。

ArcEngine开发培训

ArcEngine开发培训

什么是ArcGIS Engine Developer Kit?
是一组可嵌入的GIS组件,开发者可以
用来开发定制自己的应用程序
更容易
开发 部署 分发 是用来开发的产品
ArcGIS Engine 产品和扩展
ArcGIS
Engine Runtime
to run all Engine applications runtime options available
ArcGIS Engine 应用程序开发
课程目标
•ArcObjects 库 •ArcObjects Engine APIs •Engine应用程序开发 •许可
ArcGIS 体系结构
•共享ArcObjects •Engine 包括了ArcObjects的核心功能
ArcGIS 库
共享AO库 有些库不可以共享
������ 如: esriArcMapUI 识别属于不同产品的库 理解库的从属关系 开发工具 ������ ArcGIS Developer Help ������ ESRI Automatic Reference addin
开发控件类库
contains the MapControl, PageLayoutControl, TOCControl(Table of Contents), ToolbarControland, ReaderControltogether with a collection of ControlCommands.
地图分析
高级的空间和SQL查询 地图展现
标注,符号化,
开发组件
专题图渲染
开发包,地图控件,制图控件和3D控
件,工具条,TOC
你能构建哪些类型的应用程序?

Arcengine 培训资料5

Arcengine 培训资料5

Copyright © 2004 ESRI. All rights reserved.
Developing Applications with ArcGIS Engine
5-9
如何运行定制命令(commands)

框架提供可以创建定制命令( commands)能力
如何无缝添加到ToolbarControl
Copyright © 2004 ESRI. All rights reserved.
Developing Applications with ArcGIS Engine
5-10
定制命令( commands): 设置属性


当命令(command )被创建,其属性是可以访问的
ICommand
Name
command的唯一识别ID
Dim toolbarItem As IToolbarItem For i = 0 To AxToolbarControl1.Count - 1 toolbarItem = AxToolbarControl1.GetItem(i) Dim command as ICommand command = mand MsgBox( & toolbarItem.Style & toolbarItem.UID.Value) Next
IToolbarItem
Cmd1
UpdateInterval
Items 加入
组合成
Hale Waihona Puke IToolbarItemTool2
IToolbarItem
Cmd
IToolbarItem
Menu3
Cmd
Command, tool or menu 被创建

ArcGIS Engine基础开发教程(3)

ArcGIS Engine基础开发教程(3)

ArcGIS Engine基础开发教程(3)——学习地图和地图布局Engine, ArcGIS, 教程, 地图, 基础本章是ArcGIS Engine基础开发教程的第三章,主要给大家大致讲解了,地图和地图布局的相关对象。

这些对象非常重要,如果这些基本对象都不熟悉就开始搞ArcGIS Engine开发是不科学的也走不远的。

3地图和地图布局3.1地图3.1.1Map对象Map对象是ArcGIS Engine的主要对象,本章将给大家介绍地图组成结构,如何创建地图,如何对组成地图的对象进行操作,在介绍这些内容时尽量结合ArcMap学习效果会更好。

在Map对象上能显示的图形有两类一类是地理数据,一类是元素。

地理数据包括矢量类型的要素数据,栅格数据,Tin等表面数据等,这些数据都保存在Geodatabase或数据文件如shapefile中,它们是用于GIS分析制图的源数据;图1而元素是另一种可以显示在Map上的对象,它分为两部分一类是图形元素,一类是框架元素,图形元素可以显示出来,而框架元素充当了“容器”的角色。

在ArcMap中可以使用“Draw”工具在Map上直接绘制一个矩形,圆形,文本等对象,在布局视图上也可以给地图添加指北针,图例,比例尺等图形对象,这些都是图形元素。

图2在ArcMap中Map对象是由MXDocument对象的MapFrame对象管理,MapFrame是一个框架元素。

Map对象有双重身份,一方面是数据的管理容器,可以加载地理数据和图形元素,扮演了数据管理器的角色,另一方面它又可以让用户看到这些数据即扮演了数据显示器的角色,当加载数据到Map对象的时候,Map对象是数据的管理者;当改变视图范围,刷新地图的时候它是数据的显示者。

Map对象主要实现的接口由IMap,IGraphicContainer,IActiveView,IMapBookmark等接口。

IMap接口主要用于管理Map对象中的Layer对象,要素选择集对象,MapSourround对象,空间参考等对象。

ArcGIS_Engine基础开发教程(2)

ArcGIS_Engine基础开发教程(2)

ArcGIS Engine基础开发教程(0)——目录1创建第一个ArcGIS Engine桌面应用程序 (6)2几何对象与空间参考 (15)3地图和地图布局 (44)4图层符号化 (64)5地图查询 (91)6.空间分析 (110)7地图输出... 121、下周讲推出第三章和第四章内容。

我只是给大家介绍了入门的知识以及经验,最重要的还是自己敲代码感悟。

很多人是不熟悉ArcGIS Desktop就开始从网上Down代码修改代码开始了自己的开发之旅,包括我,我大学时代是MapInfo的粉丝,一直没学过ArcGIS。

这是非常不科学的,因为ArcGIS Desktop就是从AO开发起来的,你只有掌握了ArcGIS Desktop的使用,才能很容易理解AO接口提供的功能。

实际上ArcGIS Engine二次开发说白了就是在ArcGIS Desktop所提供的功能和业务相结合进行的创新性开发。

所以熟悉ArcGIS Desktop以及ArcGIS数据模型对学习ArcGIS Engine二次开发非常重要!祝大家学习愉快!ArcGIS Engine基础开发教程(1)——创建第一个ArcGIS Engine桌面应用程序ESRI BBS GIS大讲堂首发,转载请注明出处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/20082.ArcGIS Engine Developer kit 9.33.制作ArcGIS实验数据地图文档MXD1.3设计流程图1.4制作地图文档在ArcMap中加载数据后,点击保存生成一个*.mxd地图文档,如图1所示:图11.5创建第一个ArcGIS Engine桌面应用程序在Visual Studio2008中新创建项à选择àArcGISàEngineàMapControl Application,点击确定,如图2所示:图2可以看到在Visual Studio中看到在新创建的项目中自动加载了ToolBarControl、TocControl、LicenseControl、MapControl四个ArcGIS Engine控件以及一个.NET ToolStripMenuItem菜单控件,如图3所示:图31.6加载MXD地图文档数据单击F5键运行程序,然后单击打开MXD地图文档按钮打开MXD地图文档,如图4所示:图4可以看到应用程序把MXD地图文档加载到MapControl地图上,可以使用ToolbarControl 提供的常用GIS功能如:放大,缩小,信息查询等功能。

ArcGIS_Engine二次开发讲义

ArcGIS_Engine二次开发讲义

ArcGIS Engine二次开发实习初级讲义目录1 ArcGIS、ArcObjects和ArcGIS Engine简介.................................................................... - 3 -1.1 ArcGIS简介 ................................................................................................................ - 3 -1.2 ArcObjects简介 .......................................................................................................... - 4 -1.3 ArcGIS Engine简介.................................................................................................... - 5 -2 ArcGIS控件介绍.................................................................................................................... - 7 -2.1 ArcGIS控件简介 ........................................................................................................ - 7 -2.2重要控件简介............................................................................................................... - 9 -3 ArcGIS Engine二次开发入门 ............................................................................................ - 16 -3.1 ArcGIS Engine开发起步——第一个简单的地图显示程序 .................................. - 16 -3.2 属性查询.................................................................................................................... - 23 -3.3 空间查询.................................................................................................................... - 27 -3.4 BaseCommand开发实例 .......................................................................................... - 36 -3.5 BaseTool开发实例.................................................................................................... - 38 -3.6通过代码添加图层..................................................................................................... - 42 -3.7基于比例尺显示地图................................................................................................. - 44 -3.8 构建一个简单的GIS应用........................................................................................ - 46 -4.问题解决方法及帮助文档的使用........................................................................................ - 58 -4.1使用ArcObjects开发帮助系统............................................................................... - 58 -4.2阅读对象模型图(Object Model Diagram)......................................................... - 62 -1 ArcGIS、ArcObjects和ArcGIS Engine简介1.1 ArcGIS简介ArcGIS提供了一个可伸缩的框架,可以为独立用户或者多用户,既可以在桌面端也可以在服务器端提供GIS。

Arcgis_Engine开发从入门到精通_第八章

Arcgis_Engine开发从入门到精通_第八章

栅格图层渲染
1、IRasterRGBRenderer(栅格RGB符号化)
2、RasterUniqueValueRenderer (唯一值符号化)
3、RasterClassfyColorRampRenderer (分类符号化)
4、RasterStretchColorRampRenderer
5、RasterDiscreteColorRenderer (点密度符号化)
谢谢!!

感 谢
通过RasterWorkspaceFactory对象来创建
栅格数据配准
栅格数据的配准主要使用IGeoReference这 个接口来实现。通过ActiveView来进行坐标转 换,将MapControl中点位置转换为地图和影 像图上的坐标。
栅格数据处理
1、栅格数据转换 2、栅格数据变换 3、栅格数据叠置分析 4、栅格数据与矢量数据叠加分析
•第八章 栅格数据
•目录
一、简介 二、访问和创建栅格数据 三、栅格数据配准 四、栅格数据处理 五、栅格图层渲染 六、本章小结
访问和创建栅格数据
对于栅格数据而言,基于文件的工作空间、基于 ACCESS的个人数据、基于企业数据库的工作空间都是 其工作空间,在访问栅格数据时,必须打开一个工作 空间。工作空间必须通过工作空间工厂来创建,可以

GIS技术第十一讲 ArcGIS Engine空间分析(培训)

GIS技术第十一讲 ArcGIS Engine空间分析(培训)

1 求交叠置(Interset)
Intersect_analysis (in_features, out_feature_class, join_attributes, cluster_tolerance, output_type)
output_type:确定输出要素的类型。
➢ 如果输入具有不同几何类型,则输出要素类几何类型默认与具有最低维 度几何的输入要素相同。
out_feature_class :用来设置输出要素的名称和存储路径。 cluster_tolerance :XY容限值,为可选项,没有特殊要求默认即可。
1 求交叠置(Interset)
Intersect_analysis (in_features, out_feature_class, join_attributes, cluster_tolerance, output_type)
第十一讲
本科生选修课《GIS开发技术》
ArcGIS Engine空间分析(2)
内容提纲
1 求交叠置 2 求和叠置 3 擦除叠置 4 同一性叠置 5 更新叠置 6 异或叠置
1 求交叠置(Interset)
交集操作计算两个要素的几何交集,两个要素的公共 部分保留。
输入要素类的属性值将被复制到输出要素类。
join_attributes:确定哪些属性要传递到输出要素类
➢ ALL —输入要素与相关要素的所有属性(包括 FID)都将传递 到输出要素类。这是默认设置
➢ NO_FID —除 FID 外,输入要素与相关要素的其余属性都将 传递到输出要素类
➢ ONLY_FID —输入要素的所有属性与相关要素的 FID 将传 递到输出要素类
输入图层和叠加图层都必须是多边形图层,还可以设置它 们的精度等级。

C#ArcGIS Engine

C#ArcGIS Engine

C#,ArcGIS Engine开发入门教程收藏利用ArcGIS Engine、VS .NET和Windows控件开发GIS应用Dixon整理此过程说明适合那些使用.NET建立和部署应用的开发者,它描述了使用ArcGIS控件建立和部署应用的方法和步骤。

你可以在下面的目录下找到相应的样例程序:<安装目录>\DeveloperKit\Samples\Developer_Guide_Scenarios\ ArcGIS_Engine\Building_an_ArcGIS_Control_Application\Map_Viewer注:ArcGIS样例程序不包含在ArcGIS Engine开发工具包“典型”安装方式中。

如果你没有安装它们,则可以重新运行开发工具包安装向导,选择“定制”或“修改”方式,并选择软件开发包下的样例项进行安装。

一、项目描述利用视窗控件建立应用程序的目标是演示并使你熟悉在微软Visual Studio .NET API中使用标准ArcGIS控件开发和部署GIS应用所需的步聚。

本节中使用了Visual Studio .NET开发环境中的MapControl、PageLayoutControl、TOCControl和ToolbarControl等视窗控件。

COM、Java和C++程序员应该参考如下章节:利用ActiveX建立应用程序、利用可视化JavaBeans 建立应用程序、建立命令行方式的Java应用和建立命令行方式的C++应用。

本节演示了创建查看ArcMap和ArcGIS桌面应用图形文档的GIS应用程序的步骤。

此节包含了以下技术:l 在微软Visual Studio .NET中加载和嵌入ArcGIS控件。

l 向PageLayoutControl和MapControl中加载图形文档。

l 设置ToolbarControl和TOCControl的绑定控件。

l 处理窗口缩放。

l 向ToolbarControl添加ArcGIS Engine命令和工具。

ArcGIS Engine指导书2

ArcGIS Engine指导书2

ArcEngine开发实例二一、实例目标及其实现的主要功能1、学习使用程序代码加入工具栏中的工具项;2、绘图选择图形要素;3、运用treeview控件显示图形要素的基本属性4、画布中的图形随鼠标移动。

二、具体的实现过程及代码1、如指导书中的过程,新建一个C#工程项目,并为默认建立的窗体分别添加“ToolBarControl”“TOCControl”“MapControl”“LicenseControl”控件。

这里不作诸如TOCControl 绑定MapControl任何的窗口操作。

2、添加菜单控件,分别修改其text属性为:“图查属性”,其name属性为“PropertyViaFeature”。

3、如指导书中所示,为工程添加windows类型的窗体,设其name属性为“frmProperty”;在工具箱中“windows所有窗体”中找到“treeview”控件,双击添加到窗体中,同时设其dock属性为fill。

4、添加ArcGIS的引用ESRI.ArcGIS.Geodatabase类库,在第一个窗体的代码窗口导入命名空间:using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.SystemUI;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Display;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Controls;5、在public partial class Form1 : Form代码下添加如下的初始化语句:public IMapControl2 pMapControl;public IToolbarControl2 pToolBarControl;public ITOCControl2 pTocControl;public bool toolSelected = false;6、为窗体添加load事件,并添加以下代码:private void Form1_Load(object sender, EventArgs e){pMapControl = (IMapControl2)axMapControl1.Object;pTocControl = (ITOCControl2)axTOCControl1.Object;pToolBarControl = (IToolbarControl2)axToolbarControl1.Object;pToolBarControl.SetBuddyControl(pMapControl);pTocControl.SetBuddyControl(pMapControl);CreateToolBarItem();}7、为初始化工具栏建立添加按钮的过程:private void CreateToolBarItem(){pToolBarControl.AddItem("esriControls.ControlsOpenDocCommand", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsAddDataCommand", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsMapZoomInTool", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsMapZoomOutTool", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsMapZoomInFixedCommand", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsMapZoomOutFixedCommand", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsMapPanTool", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsMapFullExtentCommand", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsMapZoomToLastExtentBackCommand",-1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsMapZoomToLastExtentForwardCommand", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsSelectFeaturesTool", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsClearSelectionCommand", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsSelectTool", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsMapIdentifyTool", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsMapFindCommand", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);pToolBarControl.AddItem("esriControls.ControlsMapMeasureTool", -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);}8、在第二个窗体的代码窗口导入命名空间:using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.SystemUI;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.Display;using ESRI.ArcGIS.Geodatabase;using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Controls;在public partial class frmProperty : Form下添加如下代码:public IMapControl2 pMapControl;public IEnvelope pEnvelop;public frmProperty(IMapControl2 pFMapControl, IEnvelope pFEnvelop){InitializeComponent();pMapControl = pFMapControl;pEnvelop = pFEnvelop;}public void SelectPropertyViaFeature(){treeView1.Nodes.Clear();for (int i = 0; i < yerCount; i++){IFeatureLayer pFeatureLayer = (IFeatureLayer)pMapControl.Map.get_Layer(i);IFeatureClass pFeatureClass = pFeatureLayer.FeatureClass;ISpatialFilter pSpatialFilter = new SpatialFilterClass();pSpatialFilter.Geometry = pEnvelop;pSpatialFilter.GeometryField = pFeatureClass.ShapeFieldName;pSpatialFilter.SpatialRel = esriSpatialRelEnum.esriSpatialRelIntersects;IFields pFields = pFeatureClass.Fields;IFeatureCursor pFeatureCursor = pFeatureClass.Search(pSpatialFilter, false);TreeNode nodeParent;IFeature pFeature;pFeature = pFeatureCursor.NextFeature();if (pFeature != null){nodeParent = treeView1.Nodes.Add(.ToString());while (pFeature != null){TreeNode nodeSon;for (int j = 0; j < pFields.FieldCount; j++){string fldValue;string fldName;fldName = pFields.get_Field(j).Name;if (fldName == "Shape"){fldValue = Convert.ToString(pFeature.Shape.GeometryType);}elsefldValue = Convert.ToString(pFeature.get_Value(j));nodeSon = nodeParent.Nodes.Add(fldValue);}pMapControl.Map.SelectFeature(pFeatureLayer, pFeature);pFeature = pFeatureCursor.NextFeature();}}}IActiveView pActiveView;pActiveView = (IActiveView)pMapControl.Map;pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGeoSelection, null, null); }private void frmProperty_Load(object sender, EventArgs e){SelectPropertyViaFeature();}9、在第一个窗体的代码编写窗口,为axMapControl1添加OnMouseDown事件,并添加如下程序代码:private void axMapControl1_OnMouseDown(object sender, IMapControlEvents2_OnMouseDownEvent e) {if (e.button == 1 && toolSelected == true){IEnvelope pEnvelop = pMapControl.TrackRectangle();pMapControl.Map.ClearSelection();frmProperty fProperty = new frmProperty(pMapControl, pEnvelop);fProperty.Show();}}10、为菜单PropertyViaFeature添加click事件,并添加如下的程序代码:private void PropertyViaFeature_Click(object sender, EventArgs e){toolSelected = true;}。

Engine 开发手册(1)

Engine 开发手册(1)
该库还包括大量可以有 ToolbarControl 调用的内置 commands、tools、Menus,它们可以极大地简化二次
开发工作。
◆ Extensions
在图中我们可看出,ArcEngine 的开发体系是一条纵线,功能丰富,层次清晰。最上层的 Extensions 包含
了许多高级开发功能,如 GeoDatabase Update、空间分析、三维分析、网络分析、Schematics 逻辑示意图
ometry 和 Display 等。
◆ Data Acce ss
包含了访问矢量或栅格数据的 GeoDatabase 所有的接口和类组件。
◆ Map Pre sentation
包含了 GIS 应用程序用于数据显示、数据符号化、要素标注和专题图制作等需要的接口和类
组件。
问中。ArcGIS 桌面和 ArcGIS Engine 可以运行在便携式电脑或平板电脑上,用户可以在野外进行数据采集、
分析和乃至制定决策。
ArcGIS Engine 介 绍
ArcGIS Engine 是一组完备的并且打包的嵌入式 GIS 组件库和工具库,开发人员可用来创建新的或扩展已
ArcGIS Engine 开发工具包是一个基于组件的软件开发产品,可用于构建自定义 GIS 和制图应用软件。它
并不是一个终端用户产品,而是软件开发人员的工具包,支持四种开发环境(C++, COM, .NET,以及
Java),适于为 Windows、 UNIX 或 Linux 用户构建基础制图和综合动态 GIS 应用软件。
一ArcGIS介绍 1
1、1ArcGIS Engine 中的类库 5
1、2 和ArcGIS Engine开发相关的C#知识
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ArcGIS Engine的开发与部署朱政ESRI中国(北京)有限公司2004年4月目录z ArcGIS9的开发框架z ArcGIS Engine的概念以及功能z ArcGIS Engine的license部署z ArcGIS Engine的开发z实例1 2 3ArcGIS9 概况ArcGIS9 在8版本上扩展的主要功能–地理处理–3D 可视化–开发工具新产品–ArcGIS Engine–ArcGIS ServerArcGIS 9的开发z ArcGIS Enginez ArcGIS Serverz ArcGIS Desktop 上的开发ArcGIS 9 的开发ArcGIS 9 为开发桌面和服务器应用提供了一个完整的系统,它允许开发人员:1 嵌入GIS地图/功能到其他的应用中2 创建和分发自定义的桌面应用3 配置/客户化ArcGIS的应用,比如ArcMap4 扩展ArcGIS 框架和模型5 创建网络服务和应用ArcGIS Desktop ArcGIS Engine ArcGIS ServerArcGIS9 的产品共享ArcObjectsArcGIS9 开发框架z ArcGIS9 建立在ArcGIS8的基础上z ArcGIS9是在新的模块化的框架下建立.–相同的对象–改进的功能z框架改变的几个方面–模块化–多种APIs–跨平台ArcGIS模块化的框架z模块化在ArcGIS9的各个部分中都被考虑了。

z ArcGIS对象模型被组织成一系列的库。

z库是基于功能来分的对象类。

z These libraries definez Type librariesz Name spacesz Java packagesz C++ header filesArcGIS Engine关键特征z标准的GIS框架z有效的license配置方案z跨平台windows unixz跨语言com,.Net,C++,Javaz ArcGIS的扩展功能z开发控件ArcGIS Engine的简介z ArcGIS Engine是为开发商建立应用提供的完整的嵌入式的GIS组件库z ArcGIS Engine由两部分组成:z开发包(开发人员)z运行包(最终用户)分发ArcGIS Engine能做什么?z显示多个图层组成的地图z漫游和缩放地图z查找地图中的要素z用某一字段显示标注z显示航片和遥感影像的栅格数据z绘制几何要素z绘制描述性的文字z沿线,或者用多边形,圆等选择要素z根据一定距离选择要素z通过sql表达式查询要素z渲染要素z动态显示实时数据,或时间序列数据z地图定位z几何操作z维护几何要素z创建和更新地理要素和属性ArcGIS Engine的功能ArcGIS Engine开发包z ArcGIS Engine开发包包括了支持开发任务所需要的所有的开发资源。

z Components–Engine libraries–ArcGIS controlsz APIs–COM, .NET, Java, and C++z Tools–ArcGIS Developer Kit–Documentation–Developer utilitiesArcGIS Engine运行包z ArcGIS Engine运行包包括了支持运行ArcGIS Engine开发的应用程序所需要的资源。

ArcGIS Engine库z System SystemUI GeoAnalystz Geometry 3DAnalystz Display GlobeCorez Server SpatialAnalystz Output GeoStatisticalAnalyst z Geodatabase Publisherz GISClient ArcReaderControlz GeoDatabaseDistributedz DataSourcesFilez DataSourcesOleDBz DataSourcesRasterz Catoz Locationz NetWorkAnalysisz Controls主要Library介绍SystemSystem库是ArcGIS框架中最底层的一个库,它包含了一些被其他库使用的一些组件。

SystemUISystemUI库定义了一些在ArcGIS中被用户界面组件使用的类型。

象Icommand和Itool这样的接口就在这里定义。

Geometry几何库包含了核心的几何对象,比如点,面,线等。

在几何库中还定义和实现了空间参考的对象,包括投影坐标系和几何坐标系。

Display显示库包含了支持在输出设备上显示图形的组件,屏幕显示,符号,颜色等都在这个库中定义。

Controls控件库包含了应用程序开发中用到的控件,包括在控件中使用的命令和工具。

GeometryGeometry库GemetryBagSphereEnvelop Point Multipoint Curve Ray TrianglesTriangleFanTrangleStrip MultiPatch*Segment Path Polycurve BezierCurve CircularArc EllipticArc Line Ring PolygonPolyLineCartoz Carto库包含了为数据显示服务的对象。

PageLayout和Map对象在这个库中,以及支持各种数据类型的图层,渲染。

这个库中也包括了MxdServer和MapServer对象,它们通常被Server用来显示地图数据。

GeoDatabasez GeoDatabase包含了所有相关数据组织的定义类型。

要素,表,网络,TIN都在这个库中定义。

其中一些类型的实现在各自的数据来源的库中。

DataSourcesFileDataSourcesFile库包含了为支持的矢量数据格式提供的工作空间工厂和工作空间.DataSourcesGDBDataSourcesGDB库包含了为存储在RDBMS中的矢量和栅格数据提供的工作空间工厂和工作空间。

GeoDatabaseDistributedGeoDatabaseDistributed库包含了需要执行checkout/checkin的离线GeoDatabase的对象。

DataSourcesOleDBDataSourcesOleDB库为通过OleDB方式提供的数据提供空组空间。

DataSourcesRasterDataSourcesRaster包含了为基于文件方式的栅格数据提供的工作空间工厂和工作空间。

GISClientGISClient库包含了作用于远程GIS服务的对象。

这些远程服务可以有ArcGIS Server和ArcIMS提供。

Server库包含了连接ArcGIS Server的对象,以及管理这个连接的对象。

GeoAnalystGeoAnalyst库包含了核心的空间分析功能,这些功能是在spatialAnalyst和3DAnalyst扩展都会用到的功能。

3DAnalyst3DAnalyst库包含了数据的3d分析对象,也包括显示3d数据,在这个库中有一个控件SceneControl可用。

GlobeCoreGlobeCore库包含了globe数据分析的对象,也包含了显示globe 数据,在这个库中有一个控件GlobeControl可用。

SpatialAnalystSpatialAnalyst库包含了在栅格和矢量数据上执行空间分析的对象。

控件z MapControlz PageLayoutControlz TocControlz ToolbarControlz SceneControlz GlobeControlz ReadControl工具集选择绘图地图打印SceneGlobe标准ArcGIS Engine license部署和分发ArcGIS Engine的两种licensez esriLicenseProductCodeEnginez esriLicenseProductCodeEngineGeoDBArcGIS Engine的其他可用的licensez esriLicenseProductCodeArcViewz esriLicenseProductCodeArcEditorz esriLicenseProductCodeArcInfo用合适的license初始化应用程序z用合适的license初始化应用程序,既能使得应用程序可以到达license许可的功能,也能保证它在分发的任何机子上成功的运行1 检查license是否可用2 检查应用的扩展模块的license是否可用(如果需要)3 用相应的license初始化应用程序控件开发license需求控件运行license需求分发ArcGIS Engine Runtimez直接运行ArcGIS Engine Runtime的Setup z把ArcGIS Engine Runtime Setup包括在你的应用程序的安装程序中把ArcGIS Engine Runtime Setup包括在你的应用程序的安装程序中的方法z At the End of an Msi-base setupz Within a Scripted setupz Within a batchREM Launch MSI Silently -NO UImsiexec.exe /i "%MSI_PATH%" /qnArcGIS Engine Runtime的系统需求z Windows NT sp6az Windows 2000z Windows xp Professionalz Windows 2003 ServerArcGIS Engine 应用z独立的GIS 应用程序–Console–GUI applicationsz嵌入式的应用–GIS in other productsArcGIS Engine开发资源z ArcGIS Developer Help systemz ArcGIS Developer Seriesz ArcGIS Developer Onlinez ESRI Support Centerz TrainingArcGIS Engine 开发帮助z Getting Startedz Developing with ArcGISz ArcGIS Enginez Development Environmentsz Technical Documentsz Add-Insz Developer Toolsz Library Referencez Samples。

相关文档
最新文档