地理信息系统基本功能开发技术课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《地理信息系统基本功能开发技术课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 地理信息系统 基本功能 开发 技术 课件
- 资源描述:
-
1、GISGIS设计与开发设计与开发草环学院农资系草环学院农资系 努尔麦麦提努尔麦麦提.艾尔肯艾尔肯 2014年年3月月第二章第二章GISGIS基本功能开发技术基本功能开发技术v主要内容主要内容lArcGISArcGIS开发平台介绍开发平台介绍lArcGIS EngineArcGIS Engine的组件的组件lGISGIS基本功能开发基本功能开发l信息检索功能的设计与实现信息检索功能的设计与实现1,ArcGIS 产品组成v四个关键部分:四个关键部分:ArcGIS DesktopArcGIS EngineArcGIS ServerArcIMSArcGIS第一节 ArcGIS 开发平台介绍v2.1.1
2、,ArcGIS简介1,ArcGIS 9产品组成第一节 ArcGIS 开发平台介绍2,ArcObjects与ArcGIS产品2,ArcObjects与ArcGIS产品3,ArcObjects组件库vArcObjects组件库有3000多个对象可供开发人员调用,其中有细粒度的小对象,例如:Geometry对象,也有粗粒度的大对象,例如:Map对象v可以通过ArcObjects来扩展ArcGIS Desktop,定制ArcGIS Engine应用,使用ArcGIS Server实现企业级GIS应用v采用ArcObjects可以在多种编程环境中开发,包括C+、支持COM的编程语言、.NET、Java等
3、3,ArcObjects组件库v可以应用ArcGIS Desktop SDK来扩展ArcGIS Desktop的功能,如添加新的工具、定制用户界面、增加新的扩展模块等,甚至对ArcGIS Desktop应用程序进行完全扩展以提高专业GIS生产能力vArcGIS Server实现了一套标准的Web GIS服务,支持企业级应用,可以建立集中式的GIS服务器来实现GIS功能,发布基于Web的GIS应用,执行分布式GIS运算等v2.1.2 ArcGIS的开发方式v1)VBA开发vVBA自动包含了ESRI对象库参考,用户可以编写并调试在ArcMap或ArcCatalog中使用的VB宏以及ESRI的对象库
4、,宏命令可以将VB的功能和GIS的功能集成起来。v可以使用ArcObjects的所有组;v其运行离不开ArcGIS系统框架;第一节 ArcGIS 开发平台介绍v2.1.2 ArcGIS的开发方式v2)插件开发v采用COM技术开发基于AE的标准DLLv3)基于COM的可执行应用程序开发第一节 ArcGIS 开发平台介绍v2.1.3 ArcGIS ArcGIS EngineEngine简介简介vArcGIS Engine是一个简单的、独立于应用程序的ArcObjects编程环境。其SDK提供了一系列嵌入式、应用于ArcGIS Desktop应用程序框架之外的ArcGIS组件。vArcGIS Eng
5、ine是开发人员用于建立自定义应用程序的嵌入式GIS组件的一个完整类库第一节 ArcGIS 开发平台介绍一,ArcGIS Engine的功能v 分图层显示专题图,如:道路,河流,行政边界等v 浏览、缩放地图v 查看地图上特征要素的信息v 在地图上显示文本注记v 在地图上叠加卫星影像或航摄影像v 在地图上绘制点、线、面几何体v 通过矩形、圆形或多边形选中地图上的要素v 通过SQL语句查找要素v 用各种渲染方式绘制图层,如分级渲染、柱状图渲染、点密度渲染、按比例尺渲染等v 动态绘制实时数据v 转换空间数据的坐标系v 编辑空间数据v 空间建模与分析二,ArcGIS Engine的组成v 基本服务-几
6、乎所有GIS应用程序都需要的GIS核心模块ArcObjects构成,如几何要素和显示v 数据存取-可以对栅格和矢量格式,包括Geodatabase进行数据的存取操作v 地图表达-创建和显示带有符号、注记的地图和专题图v 开发组件-快速开发应用程序的界面控件v 扩展模块-ArcGIS Engine运行时,可以与标准功能或其他高级功能一起部署ArcGIS Engine由一个软件开发工具包(由一个软件开发工具包(SDK)和)和一个运行时(一个运行时(Runtime)组成)组成二,ArcGIS Engine的组成vArcGIS Engine Developer KitArcGIS Engine Dev
7、eloper Kitv是一个基于组件的开发产品,主要面向开发人员,能与开发环境集成,提供了开发帮助、类库对象模型以及代码示例等vArcGIS Engine的另一个组件就是其运行时。在部署应用程序时,必须安装相应版本的ArcGIS Engine运行时二,ArcGIS Engine的组成vArcGIS Engine的授权文件*.ecp.ecp文件文件 授权文件控制用户可以使用哪些功能v例如:编辑空间数据 ArcGIS Engine开发包使得用户可以创建、修改或者删除在Geodatabase或者shapefile中的矢量要素。标准ArcGIS Engine Runtime可以编辑shapefile和
8、简单的Personal Geodatabase要素,若需要编辑Enterprise Geodatabase数据,则应使用Geodatabase Update扩展第二节,ArcGIS Engine的组件v一,ArcGIS Engine包含的主要控件:MapControlMapControl PageLayoutControlPageLayoutControl SceneControlSceneControl GlobeControlGlobeControl ToolbarControlToolbarControl TOCControlTOCControl SymbologyControlSymb
9、ologyControl LicenseControlLicenseControl ToolbarControlToolbarControl二,组件的加载v示例:如何使用MapControl,ToolbarControl,TOCControl如何向工具栏添加ArcGIS Engine内置的工具和命令三,MapControl控件vMapControl的功能 管理控件的外观、显示属性和地图属性 添加并管理控件中的数据层 装载Map文档(mxd)到控件中 从其他应用程序拖放数据到控件中 显示绘制图形v实现的主要接口 IMapControlDefault IMapControl2 IMapContro
10、l3 IMapControlEvents2(事件接口)三,MapControl控件vIMapControlDefault接口 该接口是地图控件的缺省接口,多数开发环境自动使用这个接口定义的属性、方法,这个接口也代表了控件最新版本的接口 如果需要使用这个接口,则用如下代码:IMapControlDefault pMapControl;pMapControl=axMapControl1.Object as IMapControlDefault;三,MapControl控件vIMapControl2接口 这个接口是任何一个与MapControl相关的任务的出发点,如设置控件外观,设置Map对象或控件
11、的显示属性,添加或者管理数据图层、地图文档,在控件上绘制图形和返回Geometry等 控制控件外观界面的属性:Appearance、BorderStyle、BackColor 方法:获取Geometry对象:TrackLine,TrackPolygon,TrackRectangle,TrackCircle 在控件上绘制图形:DrawShape,DrawText三,MapControl控件vIMapControl3接口 该接口继承于IMapControl2,增加了8个属性和1个方法 CustomProperty:设置自定义控件属性 DocumentFilename:返回MapControl装入的
12、地图文档的文件名 DocumentMap:返回MapControl最后装入的地图名称 KeyIntercept:返回或设置MapControl截取键盘按键的信息 Object:返回潜在的MapControl控件三,MapControl控件v当使用IMapControl2接口时:IMapControl2 pMapControl;pMapControl=axMapControl1.Object as IMapControl2;v或pMapControl=axMapControl1.GetOcx()as IMapControl2;三,MapControl控件vShowMapTips:确定是否显示地图
13、的Map TipsvTipDelay:设置Map Tips的延迟时间vTipStyle:设置Map Tips的显示样式vSuppressResizeDrawing():当控件尺寸发生变化时组织数据实时重绘三,MapControl控件vIMapControlEvents2接口事件接口,定义了MapControl能够处理的全部事件,如OnMouseDown,OnAfterDraw,OnMouseMove等,其他如OnAfterscreenDraw是绘屏结束后触发的事件,OnExtentUpdated是地图的Extent属性发生变化时触发的事件四,PageLayoutControl控件v1)Page
14、对象v-管理PageLayout对象中页面v2)SnapGrid对象v-用于摆放元素而设置的辅助点,便于使用者对齐元素v3)RulerSettings对象v-辅助尺v4)MapSurround对象五,ToolbarControl控件v主要用于提供操作地图对象的工具条,是一个集成多种控制地图操作的控件。vToolbarControl上添加工具v1)通过向导添加;v2)通过代码添加;五,ToolbarControl控件v主要接口:IToolbarControl,IToolbarControlDefaultIToolbarControlEventsvToolbarControl上可以驻留三类命令:v
15、1)实现了Icommand的单击命令;v2)实现了ICommand和ITool的命令工具;v3)实现了ICommand和IToolControl接口的工具控件,用户界面组件;六,TOCControl控件v 是一个集成图层控制操作的控件,一般是通过与其他几个地图显示控件相互关联一起工作。vSetBuddyControl(object obj)vTOCControl通过上述函数来关联其他控件。vstring strToolID=;vstrToolID=esriControlTools.ControlsMapZoomInTool;v this.axToolbarControl1.AddItem(st
16、rToolID,-1,-1,false,0,esriCommandStyleIconOnly);vstrToolID=esriControlTools.ControlsMapZoomOutTool;vaxToolbarControl1.AddItem(strToolID,-1,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);vstrToolID=esriControlTools.ControlsMapZoomInFixedCommand;vaxToolbarControl1.AddItem(strToolID,-1,-1,false
17、,0,esriCommandStyles.esriCommandStyleIconOnly);vstrToolID=esriControlTools.ControlsMapZoomOutFixedCommand;vaxToolbarControl1.AddItem(strToolID,-1,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);vstrToolID=esriControlTools.ControlsMapPanTool;vthis.axToolbarControl1.AddItem(strToolID,-1,-1,fals
18、e,0,esriCommandStyles.esriCommandStyleIconOnly);vstrToolID=esriControlTools.ControlsMapFullExtentCommand;vaxToolbarControl1.AddItem(strToolID,-1,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);vstrToolID=esriControlTools.ControlsMapZoomToLastExtentBackCommand;vaxToolbarControl1.AddItem(strToo
19、lID,-1,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);vstrToolID=esriControlTools.ControlsMapZoomToLastExtentForwardCommand;v axToolbarControl1.AddItem(strToolID,-1,-1,false,0,esriCommandStyles.esriCommandStyleIconOnly);六,TOCControl控件v2.2.7控件之间的关联v1)通过向导关联v2)通过代码关联 第二节,ArcGIS Engine的组件七,控件之间
20、的关联v示例1:v1)通过向导关联七,控件之间的关联v示例2:v2)通过代码关联vSetBuddyControl(Object 被关联控件);第三节 GIS基本功能的设计开发v2.3.1图层的加载 在ArcEngine中需要使用MapControl来显示地理数据,用TOCControl进行图层操作。MapControl控件中可以添加各种常用数据格式,如:SHP、mdb、CAD数据、Coverage数据、TIN数据等。u Shapefile数据是一种比较常用的,而且是容易获得(从其他格式的数据转换而来)的文件数据格式。u Shapefile采用早期的dBase数据的管理模式,即以文件夹作为数据库
21、,文件夹下的文件组成了数据库中的表,对于Shapefile文件来说就是图层。u 一个Shapefile图层至少需要三个文件:*.SHP,*.SHX,*.DBF,它们分别用于存储空间数据、空间索引信息和属性数据。1 加载图层加载图层使用属性向MapControl中添加图层v 在窗体上添加MapControl控件成功后,在控件上点击右击查看其属性框。打开属性对话框的”Map”选项卡,点击 按钮可以任意加载几个图层。1 加载图层加载图层使用程序动态地添加图层 图层的常规加载方法首先向工程里添加如下引用:ESRI.ArcGIS.DataSourcesFile;ESRI.ArcGIS.GeoDataBa
展开阅读全文