ArcEngine地图基本操作的实现.ppt_第1页
ArcEngine地图基本操作的实现.ppt_第2页
ArcEngine地图基本操作的实现.ppt_第3页
ArcEngine地图基本操作的实现.ppt_第4页
ArcEngine地图基本操作的实现.ppt_第5页
已阅读5页,还剩54页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第九章地图基本操作的实现 地理信息系统设计与开发 本章内容 使用ArcEngine控件开发创建桌面应用程序地图基本操作实现 一使用ArcEngine控件开发 ArcEngine提供大量高级开发控件 使开发人员可以建立或扩展GIS应用程序和创建高质量的地图用户界面 包括MapControl PageLayoutControl ReaderControl TOCControl和ToolbarControl GlobeControl和SceneControl也可以获得 但使用这两个控件的应用程序必须具有ArcEngine的3D分析选项授权 一使用ArcEngine控件开发 嵌入式组件 可拖放到可视化设计环境提供的容器窗体或对话框中 并可调整控件的大小和位置 属性页 右键单击控件并选择 属性 菜单项 ArcObjects 每个控件为其封装的ArcObjects上频繁使用的属性和方法提供了快捷方式 每个控件还有一个执行公共任务的帮助方法 事件 每个控件都会响应终端用户的键盘和鼠标交互而触发事件 响应发生在控件内的行为会触发一些其他事件 1 ArcGIS控件主题和概念 一使用ArcEngine控件开发 1 ArcGIS控件主题和概念 伙伴控件 ToolbarControl和TOCControl都要与另一个 伙伴控件 协同工作 控件命令 ArcEngine提供了一系列命令 工具和菜单与ArcGIS控件协同工作 开发人员也可以通过创建自定义命令 工具和菜单来扩展ArcEngine提供的命令集 地图制作 ArcGISDesktop应用程序可用于预制作能被装载到ArcGIS控件中的文档 以便快速生产高质量的地图 一使用ArcEngine控件开发 2 MapControl和PageLayoutControl MapControl和PageLayoutControl对应于ArcMap桌面应用程序的 数据 和 布局 视图 用ArcMap创作的地图文档可以装载到这两个控件中 地图文档可在设计时通过这两个控件的属性页设置 控件可以被设置为 链接 或 包含 地图文档 地图文档也可以使用LoadMxFile方法通过编程装载到控件中 MapControl和PageLayoutControl不仅可以读取地图文档 还可以写入地图文档 mxd 一使用ArcEngine控件开发 3 GlobeControl和SceneControl GlobeControl和SceneControl对应于ArcGlobe和ArcScene桌面应用程序的三维试图 用ArcGlobe和ArcScene应用程序创作的Globe和Scene文档可以分别装载到GlobeControl和SceneControl中 这两个控件都具有内置的导航功能 运行终端用户移动三维视图和可视化三维数据 而不必使用控件命令 要使用内置的导航工具 必须通过属性页或者编程设置Navigate属性 一使用ArcEngine控件开发 4 ReaderControl ReaderControl对应于ArcReader桌面应用程序的 数据 和 布局 视图及其内容表 TOC 该控件还包含ArcReader桌面应用程序使用的内部窗口和工作 如Find窗口和Identify工具等 用ArcMap桌面应用程序创造并用ArcGISPublisher扩展模块发布的发布地图文档 PMF 若在发布时设置为允许装载到定制的ArcReader应用程序中 则可以装载到ReaderControl中 ReaderControl中有一个简单的自包含对象模型 提供ArcReader桌面应用程序所有功能而不需要访问ArcObjects 一使用ArcEngine控件开发 5 TOCControl和ToolbarControl TOCControl要与一个 伙伴控件 协同工作 伙伴控件 可在设计时通过TOCControl属性页设置或在驻留TOCControl的容器被显示时用SetBuddyControl方法通过编程设置 ToolbarControl要与一个 伙伴控件 协同工作 伙伴控件 可在设计时通过ToolbarControl属性页设置或在驻留ToolbarControl的容器被显示时用SetBuddyControl方法通过编程设置 ToolbarControl可以驻留操作其 伙伴控件 显示的命令 工具和菜单 返回 二创建桌面应用程序 1 目标 创建第一个ArcGISEngine桌面应用程序加载MXD文档 2 准备工作 VisualStudio2005 2008ArcGISEngineDeveloperkit9 2制作ArcGIS实验数据地图文档MXD 二创建桌面应用程序 3 设计流程图 二创建桌面应用程序 4 创建第一个ArcGISEngine桌面应用程序 1 二创建桌面应用程序 可以看到新创建的项目中自动加载了ToolBarControl TocControl LicenseControl MapControl四个ArcGISEngine控件以及一个 NETStatusStrip控件 4 创建第一个ArcGISEngine桌面应用程序 1 二创建桌面应用程序 5 加载MXD地图文档数据 1 二创建桌面应用程序 6 创建第一个ArcGISEngine桌面应用程序 2 1 动VisualStudio NET 并从新建项目对话框中创建一个新的VisualC Windows应用程序 项目 2 将项目命名为 DEMO 并选择位置存取该项目 3 在 工具箱 的 Windows窗体 标签栏中单击右键 然后从上下文菜单中选择 选择项 VS2005 添加 移除项 I VS2003 或者工具 选择工具箱 4 在 选择工具箱 中选择 NETFramework组件 并复选 AxMapControl AxPageLayoutControl AxTOCControl 和 AxToolbarControl 单击确定按钮 这样所选择的控件将显示在工具箱的Windows窗体标签栏中 二创建桌面应用程序 6 创建第一个ArcGISEngine桌面应用程序 2 二创建桌面应用程序 6 创建第一个ArcGISEngine桌面应用程序 2 二创建桌面应用程序 6 创建第一个ArcGISEngine桌面应用程序 2 5 设置控件Anchor属性 使控件大小随窗口变化而变化 二创建桌面应用程序 6 创建第一个ArcGISEngine桌面应用程序 2 privatevoidForm1 Load objectsender EventArgse this Location newPoint 0 0 axToolbarControl1 Left this Left axToolbarControl1 Width this Width axToolbarControl1 Top menuStrip1 Height axTOCControl1 Left this Left axTOCControl1 Top axToolbarControl1 Top axToolbarControl1 Height axTOCControl1 Width this Width 6 axTOCControl1 Height this Height axToolbarControl1 Top axToolbarControl1 Height axMapControl1 Top axTOCControl1 Top axMapControl1 Height axTOCControl1 Height axMapControl1 Left this Left axTOCControl1 Width axMapControl1 Width this Width axTOCControl1 Width 二创建桌面应用程序 6 创建第一个ArcGISEngine桌面应用程序 2 usingESRI ArcGIS SystemUI privatevoidForm1 Load objectsender EventArgse axToolbarControl1 AddItem esriControls ControlsMapZoomInTool 1 1 true 0 esriCommandStyles esriCommandStyleIconOnly axToolbarControl1 AddItem esriControls ControlsMapZoomOutTool 1 1 false 0 esriCommandStyles esriCommandStyleIconOnly axToolbarControl1 AddItem esriControls ControlsMapZoomInFixedCommand 1 1 false 0 esriCommandStyles esriCommandStyleIconOnly axToolbarControl1 AddItem esriControls ControlsMapZoomOutFixedCommand 1 1 false 0 esriCommandStyles esriCommandStyleIconOnly 二创建桌面应用程序 6 创建第一个ArcGISEngine桌面应用程序 2 privatevoidForm1 Load objectsender EventArgse string E 上课资料 测绘08 GIS开发 map SD mxd if axMapControl1 CheckMxFile axMapControl1 LoadMx usingESRI ArcGIS Carto IActiveViewactiveViw axMapControl1 MapasIActiveView activeViw Extent axMapControl1 FullExtent axMapControl1 Refresh axTOCControl1 SetBuddyControl axMapControl1 axToolbarControl1 SetBuddyControl axMapControl1 返回 三地图基本操作实现 加载图层数据地图显示基本控制 三地图基本操作实现 1 加载图层数据 ArcEngine支持多种文件类型 矢量数据如 ArcInfoCoverage ESRIShapefile AutoCAD的DXF和DWG文件等 栅格数据如JPG TIFF BMP GRID等 此外还支持企业数据库中的矢量和栅格文件以及个人数据库文件等 三地图基本操作实现 1 加载图层数据 ShapeFile文件 添加ShapeFile文件一般要用到Workspace WorkspaceFactory FeatureWorkspace FeatureClass FeatureLayer等组件类或者抽象类 三地图基本操作实现 1 加载图层数据 ShapeFile文件 Workspace类 Workspace类表示工作区 它是空间数据和非空间数据集的容器 它是一个类 因此不能被直接创建 而只能从别的对象那里获得 它提供了使用和创建新的数据集的方法 根据esriWorkspace的不同 Workspace可以分为以下几种 文件系统工作区 Workspace Shapefile和ArcInfo的Workspace属于这种 本地数据库工作区 LocalDatabaseWorkspace 例如MicrosoftAccess中存储的个人地理数据库 远程数据库工作区 RemoteDatabaseWorkspace 例如存放在Oracle DB2等中需要使用ArcSDE的相关组件来方位的地理数据库 三地图基本操作实现 1 加载图层数据 ShapeFile文件 Workspace类 从某种意义上来说 我们可以简单地认为一个工作区对应ArcInfo的一个工作区 一个包含Shapefile文件的文件夹 Workspace实现了26个接口 每个接口又有各自的方法和属性 我们在具体应用中往往根据需要选择性地使用这些方法和属性来达到我们的目的 三地图基本操作实现 1 加载图层数据 ShapeFile文件 WorkspaceFactory类 WorkspaceFactory是Workspace的调配者 通过它用户可以打开工作区 它支持对工作区浏览和管理的方法 同时它也能够连接到远程工作区 从它派生出很多类 如ArcInfoWorkspaceFactory CadWorkspaceFactory Shape等 三地图基本操作实现 1 加载图层数据 ShapeFile文件 FeatureLayer类 要素层 要素Feature的集合及其可视化表达 FeatureClass类 要素类 它是具有行为和属性的空间实体的集合 要素类中所有的要素都有同样地属性字段 另外 它有一个专门存放几何图形的字段 三地图基本操作实现 1 加载图层数据 ShapeFile文件 主要组件接口IWorkspaceFactory IFeatureWorkspace IFeatureClass IFeatureLayer的属性和方法介绍 参见帮助文件 三地图基本操作实现 1 加载图层数据 ShapeFile文件 IWorkspaceFactory IWorkspaceFactory 主要负责创建和打开工作区的函数以及提供该WorkspaceFactory的相关信息 三地图基本操作实现 1 加载图层数据 ShapeFile文件 IFeatureWorkspace IFeatureWorkspace 主要负责创建和打开各种类型的数据源或者其他工作区的对象 三地图基本操作实现 1 加载图层数据 ShapeFile文件 IFeatureLayer IFeatureLayer 主要负责控制要素层的通用方面 三地图基本操作实现 1 加载图层数据 ShapeFile文件 IFeatureClass IFeatureClass 主要负责获得或设置要素类的属性 三地图基本操作实现 1 加载图层数据 ShapeFile文件 IFeatureClass IFeatureClass 主要负责获得或设置要素类的属性 三地图基本操作实现 1 加载图层数据 ShapeFile文件 privatevoid打开矢量ToolStripMenuItem Click objectsender EventArgse IWorkspaceFactorypWorkspaceFactory IFeatureWorkspacepFeatureWorkspace IFeatureClasspFeatureClass IFeatureLayerpFeatureLayer pWorkspaceFactory newShape pFeatureWorkspace pWorkspaceFactory OpenFromFile E 上课资料 测绘08 GIS开发 map 0 asIFeatureWorkspace pFeatureClass pFeatureWorkspace OpenFeatureClass 区域 pFeatureLayer newFeatureLayerClass pFeatureLayer FeatureClass pFeatureClass pFeatureLayer Name 区域 axMapControl1 AddLayer pFeatureLayer axMapControl1 Refresh usingESRI ArcGIS Geodatabase usingESRI ArcGIS Carto usingESRI ArcGIS DataSourcesFile 三地图基本操作实现 1 加载图层数据 ShapeFile文件 privatevoid打开矢量ToolStripMenuItem Click objectsender EventArgse IWorkspaceFactorypWorkspaceFactory IFeatureWorkspacepFeatureWorkspace IFeatureClasspFeatureClass IFeatureLayerpFeatureLayer pWorkspaceFactory newShape pFeatureWorkspace pWorkspaceFactory OpenFromFile E 上课资料 测绘08 GIS开发 map 0 asIFeatureWorkspace pFeatureClass pFeatureWorkspace OpenFeatureClass 区域 pFeatureLayer newFeatureLayerClass pFeatureLayer FeatureClass pFeatureClass IDatasetpDataset pFeatureClassasIDataset pFeatureLayer Name pDataset Name ILayerpLayer pFeatureLayerasILayer axMapControl1 Map AddLayer pLayer axMapControl1 Refresh 思考 如何利用对话框打开ShapeFile文件 三地图基本操作实现 1 加载图层数据 栅格数据 栅格数据是GIS中重要的数据源之一 有很强的表达能力 可以描述许多目标和事物 如高程和植被等 一般的栅格数据有卫星图像 扫描的地图 照片等 由于存储格式的不同 栅格数据可以分为bmp tif jpg grid等 这些都可为ArcGIS所支持 实际应用中 可将它们作为图层添加到工程中 然后进一步利用和分析 三地图基本操作实现 1 加载图层数据 栅格数据 IRasterLayer IRasterLayer 创建和修改栅格数据层 三地图基本操作实现 1 加载图层数据 栅格数据 IRasterLayer 三地图基本操作实现 1 加载图层数据 栅格数据 usingESRI ArcGIS DataSourcesRaster CreateFromprivatevoidopengrid Click objectsender EventArgse IRasterLayerpRasterLayer newRasterLayerClass pRasterLayer CreateFrom E 上课资料 测绘08 GIS开发 map SDJT JPG axMapControl1 AddLayer pRasterLayer axMapControl1 Refresh 三地图基本操作实现 1 加载图层数据 栅格数据 CreateFromDatasetprivatevoidopengrid Click objectsender EventArgse string E 上课资料 测绘08 GIS开发 map string SDJT JPG IWorkspaceFactoryworkspcFac newRasterWorkspaceFactory IRasterWorkspacerasterWorkspc IRasterDatasetrasterDatst newRasterDatasetClass IRasterLayerrasterLay newRasterLayerClass rasterWorkspc workspcFac OpenFrom 0 asIRasterWorkspace rasterDatst rasterWorkspc OpenRasterDataset rasterLay CreateFromDataset rasterDatst axMapControl1 AddLayer rasterLay axMapControl1 Refresh 三地图基本操作实现 1 加载图层数据 三地图基本操作实现 1 加载图层数据 三地图基本操作实现 2 地图显示基本控制 放大 缩小 漫游和全图显示是GIS 电子地图 图形处理 图像处理等软件必备的基本功能 是用户通过有限的屏幕窗口去认识无限的地理空间必须具备的工具 是进行这类软件开发时必须开发的功能 进行放大和缩小操作时 主要用到IEnvelope接口 而漫游和全图显示主要用IMapControl2接口 三地图基本操作实现 2 地图显示基本控制 IEnvelope接口 Envelopes是包含特定元素在内的矩形框 所有的几何对象通过X的最大最小值和Y的最大最小值都有一个Envelope IEnvelope 三地图基本操作实现 2 地图显示基本控制 IEnvelope 三地图基本操作实现 2 地图显示基本控制 IEnvelope 三地图基本操作实现 2 地图显示基本控制 IMapControl2 IMapctrol2接口 主要负责控制Mapcontrol控件 三地图基本操作实现 2 地图显示基本控制 IMapControl2 三地图基本操作实现 2 地图显示基本控制 放大 ZoomIn usingESRI ArcGIS Geometry privatevoidZoomIn Click objectsender EventArgse IEnvelopepEnvelope pEnvelope axMapControl1 Extent pEnvelope Expand 0 5 0 5 true axMapControl1 Extent pEnvelope axMapControl1 Refresh 三地图基本操作实现 2 地图显示基本控制 放大 ZoomIn usingESRI ArcGIS Geometry usingESRI ArcGIS Controls privatevoidaxMapControl1 OnMouseDown objectsender ESRI ArcGIS Controls IMapControlEvents2 OnMouseDownEvente axMapControl1 MousePointer esriControlsMousePointer esriPointerZoomIn IEnvelopeIEnvTrc IEnvTrc axMapControl1 TrackRectangle axMapControl1 Extent IEnvTrc 三地图基本操作实现 2 地图显示基本控制 放大 ZoomIn usingESRI ArcGIS Display usingESRI ArcGIS Geometry usingESRI ArcGIS Carto usingESRI ArcGIS Controls privateINewEnvelopeFeedbackm feedBack privateIPointm point privateBooleanm isMouseDown privateIActiveViewm pActiveView privatevoidaxMapControl1 OnMouseDown objectsender ESRI ArcGIS Controls IMapControlEvents2 OnMouseDownEvente m pActiveView axMapControl1 ActiveView m point m pActiveView ScreenDisplay DisplayTransformation ToMapPoint e x e y axMapControl1 MousePointer esriControlsMousePointer esriPointerPageZoomOut m isMouseDown true 三地图基本操作实现 2 地图显示基本控制 放大 ZoomIn privatevoidaxMapControl1 OnMouseMove objectsender ESRI ArcGIS Controls IMapControlEvents2 OnMouseMoveEvente if m isMouseDown return if m feedBack null m feedBack newNewEnvelopeFeedbackClass m feedBack Display m pActiveView ScreenDisplay m feedBack Start m point m feedBack MoveTo m pActiveView ScreenDisplay DisplayTransformation ToMapPoint e x e y 三地图基本操作实现 2 地图显示基本控制 privatevoidaxMapControl1 OnMouseUp objectsender ESRI ArcGIS Controls IMapControlEvents2 OnMouseUpEvente if m isMouseDown return IEnvelopepEnvelope if m feedBack null pEnvelope m pActiveView Extent pEnvelope Expand 2 2 true pEnvelope Cent

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论