Arcengine 培训资料附录
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
ArcEngine开发入门-6
库
GlobeControl.ocx
3.1 SceneControl 控件命令
命令和工具
Pan, zoom, fly, set observer, select
工具条
ControlsSceneSceneToolbar
库
esriSceneControl.ocx esri3DAnalyst.olb
参考 对象模型图,技术文档或Categories.exe
3.2 GlobeControl控件命令
命令和工具
Pan, zoom, fly, target, select
工具条
ControlsGlobeGlobeToolbar ControlsGlobeRotateToolbar
OnDoubleClick OnSceneReplaced /OnGlobeReplaced OnKeyDown/Up OnMouseDown/Move/Up
ITOCBuddyEvents
ActiveViewChanged/Replaced
SceneGraph/GlobeDisplay 事件
Scene/Globe SceneGraph/GlobeDisplay SceneViewer/GlobeViewer
Camera/GlobeCamera
4、3D控件:数据
几种方式
直接加载3D文件
获得 MapDocument 使用LayerFactoryHelper
访问MapDocument
从mxd, lyr, pmf文件访问图层
使用ObjectCopy 或IBasicMap
通过LayerFactoryHelper访问数据
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开发-自定义图层类型 (5)ArcGIS Engine开发-取得ArcMap文档缩略图 (5)ArcSDE中直接取得图层几何类型 (6)ArcGIS Server常见问题之一 (7)IFeatureLayer.DataSourceType Property [C#] (13)IQueryFilter接口中的SubFileds属性的使用 (14)用程序实现从带高程的点数据到等高线的转换 (15)空间查询的实现 (16)创建带Z值的Feature (17)在AO或者ENGINE中为SHAPEFILE添加SPATIAL INDEX (21)把一个图层ILayer数据COPY到三维Scenecontrol控件中(进行相关操作) (22)vb + arcgis engine 用raster生成等值线源码 (24)关于IIdentify定义时只能找到面而不能找到点和线的问题 (33)使用ArcGIS Engine来实现地图的点击查询并闪烁 (34)空间查询的实现 (36)如何在同一图层中做缓冲选择 (37)怎么样使用Engine来保存Mxd文件(几种情况)? (38)在ArcGIS Engine开发时如何改变标注字段 (39)对shape文件添加字段 (40)在ArcGisEngine 开发中如何在Toolbar控件上添加Combobox等其他控件 (42)自相交对象的处理 (43)在图中加入采集点 (44)创建拓扑类、投影等等。
(45)如何解决shape出现无法导入SDE数据库现象? (46)怎么显示布局控件的标尺 (47)把shape转为polylines (47)为什么不能编辑raster属性表或添加字段? (48)使用ArcGIS将GTOPO30 DEM数据转换到栅格数据 (48)旋转地图 (49)给geodatabase或shapefile定义一个投影 (51)ArcGIS Engine中Undo、Redo命令的使用 (51)创建带Z值的Feature (52)在Ao中如何通过查询获得ITable (55)关于多个实体联合(union)的使用 (56)在Ao中如何通过查询获得ITable (57)在Visual Basic中实现ICommand接口 (58)使用ArcObjects程序按照顶点来分割一条线 (60)使用AO加载Raster Catalog (62)把不同层的几次的选择结果加到一个选择集中 (63)如何为ArcObjects扩展出"GroupRenderer"的效果来? (64)在AO或者ENGINE中为SHAPEFILE添加SPATIAL INDEX (70)如何ArcObject的环境中用程序实现3D环境中的查询功能 (71)截取任意范围地图区域 (73)使用AO新增记录的3种方法 (77)如何在ArcEngine环境中的SceneControl中实现查询功能 (78)删除FeatureClass中满足一定条件的Feature问题及解决办法! (80)创建孤立的要素类和数据集中的要素类 (81)SUM Color of vertex symbols in edit (83)要素动态跟踪的算法 (85)同时闪烁满足条件的记录n次 (89)旋转地图 (92)转载-AO代码〔Display) (97)在arcEngine中标注字段属性数据 (102)IfeatureSelection:SelectFeatures方法介绍 (103)AO基本函数集合(很多函数功能) (106)AO画一个多边形 (113)AO画带节点的线 (114)AO计算Polygon的面积 (115)AO缓冲区查询 (116)AO画一个圆 (117)AO查询被选中的实体 (119)AO绘制带节点橡皮筋线条 (121)AO绘制橡皮筋多边形 (126)AO绘制缓冲区 (129)vb+ao鹰眼图代码 (130)如何利用ao编辑shape文件的某个属性的属性值 (132)MO作为B/S客户端控件的开发 (133)MO作为B/S服务器端的开发 (136)两点间画线 (138)创建Personal Geodatabase (139)ArcObject学习的重要工具--Object Model Diagrams (141)ArcObject学习的重要工具--Object Model Diagrams (二) (142)AO开发感想 (144)AO中的组件库(1) (146)ArcGIS Engine开发-自定义图层类型用ArcGIS Engine开发的一个特别就是面向接口编程,每组接口代表了对象在某个方面的特性,表现为一个方法、属性或事件。
ArcGIS Engine的开发与部署培训资料
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开发包包括了支持开发任务所需要的所有的开发资源。
ArcGIS Engine基础开发教程(bbs整理)
图3 1.6加载MXD地图文档数据
单击F5键运行程序,然后单击打开MXD地图文档按钮打开MXD地图文档,如图4所示:
第2页 共4页
2010-8-14 23:20
ArcGIS Engine基础开发教程(1)——创建第一个ArcGIS Engin...
file:///E:/webScrapBook/data/20100814002622/index.html
第3页 共4页
2010-8-14 23:20
ArcGIS Engine基础开发教程(1)——创建第一个ArcGIS Engin...
file:///E:/webScrapBook/data/20100814002622/index.html
图6 1.8体验使用编辑功能
运行应用程序,可见工具条多了一个和ArcMap中功能类似的编辑工具集,开始对面图层进行编辑 创建一个新的面图元,如图7所示。
第2页 共15页
2010-8-14 23:22
3.1地图
3.1.1Map对象
Map对象是ArcGIS Engine的主要对象,本章将给大家介绍地图组成结构,如何创建地图,如何 对组成地图的对象进行操作,在介绍这些内容时尽量结合ArcMap学习效果会更好。
在Map对象上能显示的图形有两类一类是地理数据,一类是元素。地理数据包括矢量类型的要素 数据,栅格数据,Tin等表面数据等,这些数据都保存在Geodatabase或数据文件如shapefile 中,它们是用于GIS分析制图的源数据;
很多人是不熟悉ArcGISDesktop就开始从网上Down代码修改代码开始了自己的开发之旅,包括 我,我大学时代是MapInfo的粉丝,一直没学过ArcGIS。这是非常不科学的,因为 ArcGISDesktop就是从AO开发起来的,你只有掌握了ArcGISDesktop的使用,才能很容易理解 AO接口提供的功能。实际上ArcGIS Engine二次开发说白了就是在ArcGISDesktop所提供的功 能和业务相结合进行的创新性开发。所以熟悉 ArcGISDesktop以及ArcGIS数据模型对学习ArcGIS Engine二次开发非常重要! 祝大家学习愉快!
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
你能构建哪些类型的应用程序?
第三章 ArcGIS Engine基础
3.1.4 使用 ESRI Object 浏览器
列表类、接口、属性和方法
• 位置:<ArcGIS installation folder>\ArcGIS\Developer Kit\tools\EOBrowser.exe
3.2 理解对象模型图(OMD)
3.2.1 ArcObject 的对象模型图
不能用于创建一个新的对象,即不能用new关键字来产生对象 OMD中:用没有阴影的3D矩形表示普通类 可以从其他对象中获取对象实例 IRow pNewRow; pNewRow = pTable.CreateRow();
生
成
组件类 (CoClass)
可以直接创建,用new关键字
IMap pMap; pMap = new Map();
COM的优越性
使得编程技术难度和工作量降低,降低开发周期和 成本
使得软件的复用性得到提高
语言独立,可以使用任何一种语言编写COM组件
• 语句——面向过程——面向对象
学习ArcGIS Engine需要了解的COM内容
COM不是接口,也不是类,它是一种二进制级别的组件通信 标准 符合COM标准的对象称为COM对象,COM对象是实现了很多接 口的对象,它可以以DLL或者EXE文件形式存在
COM是创建类的一个标准 COM类可以在不同的工程中重用
不依赖于具体的开发语言
所有的 ArcObjects 都是 COM 类 ArcObjects基于COM技术构建
对象连接与嵌入技术 (OLE) OLE DB技术 ActiveX 技术是 COM 技术的一种封装 DCOM 和 COM+
ArcGIS Engine10.0轻松入门级教程(1)——必备基础知识
ArcGIS Engine10.0轻松入门级教程(1)——必备基础知识分类:ArcEngine开发2012-06-13 22:56 2173人阅读评论(3) 收藏举报目录(?)[-]1. ArcGIS、ArcObjects和ArcGIS Engine简介1. ArcGIS简介2. ArcObject简介3. ArcSIS Engine简介1. ArcGIS Engine Software Developer Kit2. ArcGIS Engine Runtime3. ArcGIS Engine的功能4. net平台5. 接口编程思想6. QI六月的某一天,骄阳似火,夜幕已悄悄降临,坐在电脑前回想自己的大学四年时光,或痛心疾首,或微微憨笑,感概万千,在GIS专业学习了4年,有很多收获,也有很多遗憾,幸而考上了研究生可以继续深造。
于是乎心里的雄心一下被激发了,总结自己的所学知识,打算重新开始,把ArcGIS Engine写一本入门级的教程,为初学者少做弯路,也为自己总结下知识,更为打发着无聊时光。
以上为序,语无伦次自娱自乐!PS:本教程虽为入门及教程,但也要求你有入门级的知识,如果你是哲学专业的,那我也无力回天啊!还有本教程素材全部来源于互联网,版权未知,要我说感谢的话:感谢CCTV,感谢MTV……就此打住。
1 ArcGIS、ArcObjects和ArcGIS Engine简介1.1ArcGIS简介ArcGIS提供了一个可伸缩的框架,可以为独立用户或者多用户,既可以在桌面端也可以在服务器端提供GIS。
ArcGIS 9是用来构建一个完整GIS应用的GIS软件产品集成。
它是基于共享的GIS软件组件——ArcObjects。
ArcGIS 9由以下四部分组成:1)ArcGIS Desktop——高级GIS应用的集成2)ArcGIS Engine——根据应用程序接口来构建基本应用的嵌入式GIS组件库3)ArcGIS Server——在企业级或者网络框架下构建服务器端GIS应用的平台,用来构建Web服务和Web应用4)ArcIMS——通过公开的因特网协议来发布地图、数据和元数据的GIS Web服务器每一个GIS框架同样包含ArcSDE网关,这是在关系数据库(RDBMS)上组织地理数据的接口。
ArcGIS_Engine培训教程
ArcGIS Engine类库图
ArcGIS Engine类库:1、System
System类库是ArcGIS系统结构中最底层的类库。 System类库包含了构成为ArcGIS的其他类库提供服 务的组件。 System类库中定义了大量开发者可以实现的接口, 如AoInitializer对象就是在System类库中定义的, 所有开发者必须使用这个对象来初始化ArcGIS Engine。
包括Servlet、ColdFusion、ASP等多种Web Server端技术,同时 开发了有望成为未来Internet环境中GIS通用语言的ArcXML,为空
间数据跨厂商跨平台的广泛交流和共享打下了坚实的基础。
2、ArcGIS 的服务器端
ArcSDE
ArcSDE是ESRI的空间数据库引擎,用于对海量空间数据及其属性数据的管
目
1 2 3 4 5 6 7 8 9 10
录
ArcGIS体系结构 ArcGIS Engine是什么 ArcGIS Engine的主要功能 ArcGIS Engine类库 ArcGIS Engine控件 对象模型图的阅读 什么是地理数据库 ArcGIS Engine开发环境与流程 ArcGIS Engine许可与部署 开发综合实例
通过代码或应用工具配置
ArcGIS Engine Runtime产品
ArcGIS Engine运行时包含:
标准Engine Runtime
Engine扩展
企业GeoDatabase编辑 更新要素和编辑方案 空间分析 3D分析 StreetMap USA
标准Engine功能
目
1 2 3 4 5 6 7 8 9 10
录
ArcGIS体系结构 ArcGIS Engine是什么 ArcGIS Engine的主要功能 ArcGIS Engine类库 ArcGIS Engine控件 对象模型图的阅读 什么是地理数据库 ArcGIS Engine开发环境与流程 ArcGIS Engine许可与部署 开发综合实例
牟乃夏ArcEngine教程-第3章_地图操作基本功能
1. 空间数据与工作空间
• 工作空间
• 数据加载需要先打开相对应的工作空间。 • IWorkspace接口:IWorkspace接口定义了访问工作空间各种属性的方法,如工作 空间的连接属性等。通过IWorkspace接口可实例化现有数据集和创建新数据集。 由于WorkSpace是一个普通类,要获得WorkSpace,需要通过工作空间工厂 (WorkspaceFactory)来创建。 • IWorkspaceFactory接口:IWorkspaceFactory接口定义了创建、打开工作空间的方 法和对工作空间工厂信息成员的访问。用户可通过工作空间工厂管理不同类型 的工作空间,所有的工作空间对象都可通过此接口产生。 • IWorkspaceFactory接口的Create方法可产生一个新的工作空间对象,不同类型的 WorkspaceFactory对象,其Create方法产生的工作空间对象是不同的。 • IWorkspaceShapefileFactory接口的Open方法和OpenFromFile方法可以用于打开一 个已经存在的工作空间,Open方法用于打开一个SDE数据库,OpenFromFile方法 用于打开一个文件类型的数据,如*据与工作空间
• 1.空间数据
• 在GIS软件中,空间数据有多种不同的存在形式。按照不同的划分标准可 以分为矢量数据和栅格数据、GIS格式的地理数据与非GIS格式的数据 (如CAD格式等)、空间数据库数据(如个人数据库、ArcSDE数据库等) 和文件数据(ShapeFile格式、Coverage格式)等。
核心代码
3.数据加载
• 使用ControlsOpenDocCommandClass加载地图 • 使用ArcGIS Engine中封装好的类库资源 ControlsOpenDocCommandClass实现地图文档的加载的核心代码如 下:
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 将传 递到输出要素类
输入图层和叠加图层都必须是多边形图层,还可以设置它 们的精度等级。
第八章 ArcEngine的基本知识
2.3 ArcEngine功能
显示具有多个图层 地图漫游和缩放 识别地图上的要素 搜索和查找地图上的要素 显示字段值的文本标注 绘制航空相片或卫星影像 绘制描述性文本 用线,框,区域,多边形和圆选择要素 选择与某些要素的距离在一定范围内的要素 用SQL表达式查找和选择要素
2.3 ArcEngine功能
4.ArcEngine类库
5. Server类库:Server类库包含允许用户连接并操作ArcGIS
Server的对象.开发人员用GISServerConnection对象来访 问ArcGIS Server.通过GISServerConnection可以访问 ServerObjectManager对象.用这个对象,开发人员可以操 作ServerContext对象,以处理运行于服务器上的 ArcObjects.开发人员还可以用GISClient类库与ArcGIS Server进行交互.
2.1 ArcEngine概览
MapControl:类似于ArcMap桌面应用软件的数据视图界面, 用于容纳各种地图对象. PageLayoutControl:类似于ArcMap桌面应用软件的地图编 排界面,用于容纳各种地图编排对象. TocControl:服务于"buddy"控件,包括MapControl, PageLayoutControl,ReaderControl,SceneControl或 G1obeControl.用树形视图交换显示"buddy"控件显示的 地图,图层和符号的内容. ToolbarControl:服务于"buddy"控件,包括MapControl, PageLayoutControl,ReaderControl,SceneControl, GIobeControl.是为"buddy"控件提供各种服务的命令, 工具和菜单的面板.
《ArcGISEngine开发从入门到精通》第2章ArcGISEngine中的控件资料
CurrentTool。放大工具的实现过程是:通过 ToolbarControl获取其“伙伴控件”,然后在 MapControl上提供显示终端用户拉动鼠标所画的框, 并改变MapControl的显示范围。
ToolbarControl一般要与一个“伙伴控件”协同工作,并 有一个控件命令选择集,以便快速提供功能强大的 GIS应用程序。ToolbarControl不仅提供了部分用户界 面,而且还提供了部分应用程序框架。ArcGIS Desktop 应用程序,如ArcMap、ArcGlobe和ArcScene等具有强 大而灵活的框架,包括诸如工具条、命令、菜单、泊 靠窗口和状态条等用户界面组件,这些框架使终端用 户可以通过改变位置、添加和删除这些用户界面组件 来定制应用程序。
第2章 ArcGIS Engine中的控件
Forwithy New
为了快速构建一个GIS应用程序,ArcGIS Engine给开 发者提供了一些可视化控件,如制图控件、3D控 件、框架控件等。ArcGIS控件可以通过两种方式 建立应用程序,其一,ArcGIS控件可以嵌入到现 有的应用程序中以增强制图功能;其二,ArcGIS 控件可用于创建新的独立应用程序。
息。 • Object:返回MapControl控件。
IMapControl2 mapControl2; mapControl2 = axMapControl1.Object as IMapControl2;
mapControl2 = axMapControl1.GetOcx() as IMapControl2; IMapControl3 mapControl3; mapControl3 = axMapControl1.Object as IMapControl3; mapControl3 = axMapControl1.GetOcx() as IMapControl3;
ArcEngine平台基础
ArcEngine类库:Display
• • • • 用于控制地图显示、用户交互。 包含用于显示GIS数据的对象。 包含符号、颜色等用来控制显示的对象。 包含显示交互提供给用户可视化反馈对 象。
ArcEngine类库:Server
• 用来连接并操作ArcGIS Server。 • 连接ArcGIS Server,并访问ArcGIS Server的ServerObjectsManager对象。 • 操作ArcGIS Server的ServerContext对象。
ArcEngine类库:GISClient
• 允许开发者使用Web服务。 • 可以连接到ArcIMS。 • 支持以无状态方式或者通过Web目录操 作ArcGIS Server对象的编程模型。
ArcEngine类库:DataSourcesFile
• 包含用于基于文件数据源的GeoDatabase API实现。 • 文件格式为:shapefile、coverage、TIN、 CAD、SDC、StreetMap和VPF。
ArcEngine类库:SystemUI
• 包含用户界面组件接口定义。如: Icommand、Itool和IToolControl接口。 • 开发者使用这些接口来扩展UI组件。 • 包含的对象是一些使用工具对象,通过 使用这些 对象来简化用户界面的开发。
ArcEngine类库:Geometry
• 处理存储在要素类中的要素几何图形或 形状或其他图形元素。如:Point、 MultiPoint、Polyline、Polygon等。 • 存储构成几何要素的子要素。如: Segement、Path、Ring等。 • 存储几何要素的空间参考对象。包括: 投影坐标和地理坐标系统等。
• • • • • • • • • • • • • • • • • • 显示多个图层 地图漫游和缩放 识别地图上的要素 显示字段值的文本标注 绘制航空相片或卫星影像 绘制描述性文本 用线、框、区域、多边形和圆选择要素 选择与某些要素的距离在一定范围的要素 用结构化查询语言表达式查找和选择要素 定制地图的专题显示方式 动态显示实时或时间序列数据 转换地图的坐标系统 在要素几何形状上执行几何操作以创建缓冲区、计算差异、发现交叉、合并和求异等。 处理要素形状或者旋转地图 创建和更新地理要素及其属性 地图制图输出 3D显示、空间分析 ……
牟乃夏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应用培训材料目录
ArcGIS应用培训材料1、专题地图制作专题2、空间数据编辑和拓扑维护专题3、栅格数据分析专题4、矢量数据分析专题5、数字高程模型应用专题6、网络分析专题专题1 专题地图制作一、实验目的1、了解专题地图的组成要素;2、新建图层和修改图层的符号样式;3、熟悉专题地图的各种表现形式;4、掌握专题符号的制作方法;5、熟悉添加和修改注记的方法;6、使用ArcMap Layout(布局)界面制作专题地图的基本操作;二、实验准备实验数据位置:Training Material -> 专题制图专题预备知识:1、专题地图的组成要素包括:图层、符号、注记、图名、图例、图廓等;2、图层包括点、线、面不同的几何类型,图中省域是面状地物,公路是线状地物,城市是点状地物;3、符号可以从符号库中直接挑选,如果没有合适符号,则需自行设计;4、ArcMap中有两种视图:数据视图和地图布局视图;5、注记设计对于地图可视化质量至关重要;三、实验内容与步骤第1步渲染图层要素在ArcMap中新建地图文档,加载[空间分析] 扩展模块及[空间分析工具栏]加载实例1中图层:[省会城市、主要公路、国界线、省级行政区],将地图文档保存到实例1下,名称为:ChinaMap采用唯一值符号描述[省级行政区]面状要素在[图层列表面板](TOC)中右键点击图层:[省级行政区],执行[属性]命令,在出现的[图层属性]对话框中,点击[符号-Symbology]选项页,如下图所示,渲染参数设置为:[类别->unique value,字段值设置为:NAME ] 。
点击[添加全部值]按钮,将<所有其它值>前检查框的勾去掉。
采用单一符号描述[主要公路]线状要素显示图层:[主要公路],在[TOC]中右键点击图层:[主要公路],执行[属性]命令,在出现的[图层属性]对话框中将渲染方式设置为[single symbol],点击[符号设置]按钮(如下图)在[符号选择器]对话框中选择一种线状符号(如下图所示),Tips:1、了解Reference Scale的作用。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ArcGIS developer eloping Applications with ArcGIS Engine
ArcGIS developer resources
A-2
Desktop API support The ArcGIS desktop applications are COM clients. Therefore to extend the ArcGIS framework with your own customizations, your components need to be COM compliant. Any development environment that can adhere to the COM specification can be used: Visual Basic, Visual C++, DelphiTM. In addition, the .NET API may be used as it offers backward COM compatibility. The native COM type libraries are packaged as .OLB files. Therefore if you use an API other than COM, such as .NET, object proxies are used to communicate with the native ArcObjects components. In .NET, the object proxies can be created using wrapper classes, contained with interop assemblies. ESRI has supplied these interop assemblies for you. When choosing an development environment, many factors may influence your decision. The predominant factor may be experience and skill level with the language. Other factors may include performance, security and application requirements.
Developing Applications with ArcGIS Engine
ArcGIS developer resources
A-4
ESRI interop assemblies Each ArcGIS type library has an equivalent .NET interop assembly, to allow development with the .NET API. It is important to note that these ESRI-provided assemblies are marked as Primary Interop Assemblies (PIA). PIA indicates that an Interop assembly has been provided by the publisher of COM types. PIAs are always strongly named; they are digitally signed to guarantee unique identity semantics. It is mandatory that you use the ESRI's interop assemblies. Creating your own assemblies is possible but risky, as you may experience undesirable behavior. If the .NET Framework 1.1 is installed on the machine, all ESRI interop assemblies will be registered in the Global Assembly Cache (GAC) during the ArcGIS installation. By placing the interop assemblies inside the GAC prevents you from having to import the assemblies yourself and also prevents the assemblies from being copied to your local directory each time they are referenced by another project. Further information If you are new to .NET and COM interop and would like further information regarding ArcGIS development using the .NET API, the ArcGIS Developer Help offers detailed documentation. Within the ArcGIS Developer Help, go to Development Environments > .NET for a listing of articles.
Developing Applications with ArcGIS Engine
ArcGIS developer resources
A-5
Java API The ArcGIS 9.0 Java API provides interoperability with ArcObjects, allowing developers to access ArcObjects as though they were Java objects. The API is not limited to any specific Java Virtual Machine (JVM) or platform, and uses standard Java Native Interface (JNI) to access ArcObjects. The API exposes the complete functionality of ArcObjects via Java classes and interfaces. The Java API provides proxy classes that are generated from ArcObjects component type libraries (TLB) which allow interoperability with all of the underlying components. These proxy classes expose ArcObjects properties, methods, and events via their Java equivalents. The Java API is used in two ESRI developer products, ArcGIS Engine and ArcGIS Server. In order to develop with the ArcGIS SDK for Java you must have the Java 2 Software Development Kit (J2SDK) installed. All of your J2SDK tools are located in the J2SDK install directory. Java Native Interfaces (JNI) Even though Java programs are designed to run on multiple platforms, there may be times where the standard Java class library doesn't support platform-dependent features needed by a particular application or a Java program needs to implement a lower-level program and have the Java program call it. JNI is a standard cross-platform programming interface provided by the Java language. It enables you to write Java programs that can operate with applications and libraries written in other programming languages, such as C or C++. This is the technology used to bridge native ArcObjects with the Java API in ArcGIS.
Developing Applications with ArcGIS Engine
ArcGIS developer resources
A-3
ArcGIS Desktop libraries With ArcGIS 8.x there was one core library called esriCore.olb where the ArcObjects type information was held. With ArcGIS 9.x, esriCore.olb has been split into smaller, more manageable and modular libraries. Classes of similar functionality are grouped inside a particular library. For example, geometry classes such as points, lines, polygons have been placed inside a type library called Geometry. Map and Layer classes are located inside the Carto library. The Library Locator utility is one of many resources that can be used to locate the desired library. The libraries have been split between UI and non-UI components. The UI prefixed libraries pertain to application framework components, such as the MxDocument, and COMPropertySheet. Objects contained in non-UI prefixed libraries offer the GIS functionality, and can be accessed by ArcGIS Engine and ArcGIS Desktop applications.