第九章 地图基本操作的实现
4. IFeatureClass:主要负责获得或设置要素类的属性. 属性:
2.1 打开图层数据
2.1 打开图层数据
2.1 打开图层数据
方法:
2.1 打开图层数据
思考:如何利用对话框打开ShapeFile文件? 思考:如何利用对话框打开ShapeFile文件? ShapeFile文件
2.1 打开图层数据
操作演示
1.6 TOCControl和ToolbarControl
1.7建立不带ToolbarControl的应用程序
虽然建立带有ToolbarControl的应用程序可快速提高 类似于ArcGIS Desktop应用程序框架那样的框架组成 部分,但有时应用程序可能并不需要ToolbarControl:
ToolbarControl的可视化外观可能不符合应用程序需要 不需要实现ToolbarControl的命令对象 应用程序中已经有一个现有的应用程序框架 ToolbarControl及其驻留的命令不宜于跨多个"伙伴控件" 使用.
2.编程实现
1. 打开图层数据 2. 基本操作
2.1 打开图层数据
ArcEngine支持多种文件类型,矢量数据如: ArcInfo Coverage,ESRI Shapefile,AutoCAD的 DXF和DWG文件等,栅格数据如BMP,GRID等 .此外还支持企业数据库中的矢量和栅格文件以 及个人数据库文件如ACCESS等.
2.1 打开图层数据
2.1 打开图层数据
2.1 打开图层数据
IRasterLayer pRasterLayer = new RasterLayerClass(); pRasterLayer.CreateFromFilePath("D:\\GISData\\SDJT.JPG"); axMapControl1.AddLayer(pRasterLayer); axMapControl1.Refresh();
第九章 地图基本操作的实现
主要内容
使用ArcEngine控件开发
编程实现
1.使用ArcEngine控件开发
ArcEngine提供大量高级开发控件,使开发人员可 以建立或扩展GIS应用程序和创建高质量的地图用 户界面.包括MapControl,PageLayoutControl, ReaderControl,TOCControl和ToolbarControl. GlobeControl和SceneControl也可以获得,但使 用这两个控件的应用程序必须具有ArcEngine的3D 分析选项授权.
1.2 ArcGIS控件主题和概念
1.3 MapControl和PageLayoutControl
MapControl和PageLayoutControl对应于ArcMap桌面应用 程序的"数据"和"布局"视图.用ArcMap创作的地图 文档可以装载到这两个控件中. 地图文档可在设计时通过这两个控件的属性页设置,控件 可以被设置为"链接"或"包含"地图文档;地图文档也 可以使用LoadMxFile方法通过编程装载到控件中. MapControl和PageLayoutControl不仅可以读取地图文档, 还可以写入地图文档(*.mxd).
2.1 打开图层数据
方法:
2.1 打开图层数据
2. IFeatureWorkspace:主要负责创建和打开各种类型的数 据源或者其他工作区水平的对象. 方法:
2.1 打开图层数据
3. IFeatureLayer:主要负责控制要素层的通用方面. 属性:
2.1 打开图层数据
方法:
2.1 打开图层数据
2.1 打开图层数据
主要组件接口IWorkspaceFactory,IFeatureWorkspace, IFeatureClass,IFeatureLayer的属性和方法介绍(参见帮 助文件).
2.1 打开图层数据
1. IWorkspaceFactory:主要负责创建和打开工作区的函数 以及提供该WorkspaceFactory的相关信息. 属性:
2.2 地图的基本操作
1. IEnvelope接口:Envelopes是包含特定元素在内的矩形框.所有的几何 对象通过X的最大最小值和Y的最大最小值都有一个Envelope.
2.2 地图的基本操作
2.2 地图的基本操作
2.2 地图的基本操作
2. IMapctrol2接口:主要负责控制Mapcontrol控件.
1.2 ArcGIS控件主题和概念
伙伴控件:ToolbarControl和TOCControl都要与另一个 "伙伴控件"协同工作. 控件命令:ArcEngine提供了一系列命令,工具和菜单与 ArcGIS控件协同工作;开发人员也可以通过创建自定义命 令,工具和菜单来扩展ArcEngine提供的命令集. 地图制作:ArcGIS Desktop应用程序可用于预制作能被装 载到ArcGIS控件中的文档,以便快速生产高质量的地图.
1.使用ArcEngine控件开发
什么是ArcGIS控件 ArcGIS控件主题和概念 MapControl和PageLayoutControl GlobeControl和SceneControl ReaderControl TOCControl和ToolbarControl 建立不带ToolbarControl的应用程序
1.1 什么是ArcGIS控件
ArcGIS控件是高级开发组件,首先允许开发人员建立和扩 展GIS应用程序,其次提供图形用户界面. MapControl,PageLayoutControl,TOCControl, ReaderControl,ToolbarControl,GlobeControl和 SceneControl都可以作为ActiveX控件,.NET Windows控 件和Visual JavaBean获得. ArcGIS控件可以通过两种方式建立应用程序.首先,可以 嵌入到现有的应用程序中以增加制图功能;其次,可用于 创建新的独立应用程序.
2.1 打开图层数据
思考:如何利用对话框打开栅格数据文件? 思考:如何利用对话框打开栅格数据文件?2.2 地图的基本操作
放大,缩小,漫游和全图显示是GIS,电子地图, 图形处理,图像处理等软件必备的基本功能,是用 户通过有限的屏幕窗口去认识无限的地理空间必须 具备的工具,是进行这类软件开发时必须开发的功 能. 进行放大和缩小操作时,主要用到IEnvelope接口, 而漫游和全图显示主要用IMapcontro2接口.
2.1 打开图层数据
添加ShapeFile文件一般要用到WorkspaceFactory ,FeatureWorkspace,FeatureClass, FeatureLayer等组件类或者抽象类.
2.1 打开图层数据
1.Workspace类
2.1 打开图层数据
2. WorkspaceFactory类
1.6 TOCControl和ToolbarControl
TOCControl要与一个"伙伴控件"协同工作."伙伴控 件"可在设计时通过TOCControl属性页设置或在驻留 TOCControl的容器被显示时用SetBuddyControl方法通过 编程设置. ToolbarControl要与一个"伙伴控件"协同工作."伙伴 控件"可在设计时通过ToolbarControl属性页设置或在驻 留ToolbarControl的容器被显示时用SetBuddyControl方 法通过编程设置. ToolbarControl可以驻留操作其"伙伴 控件"显示的命令,工具和菜单.
3. FeatureLayer类
4. FeatureClass类
2.1 打开图层数据
IWorkspaceFactory pWorkspaceFactory; IFeatureWorkspace pFeatureWorkspace; IFeatureClass pFeatureClass; IFeatureLayer pFeatureLayer; pWorkspaceFactory = new ShapefileWorkspaceFactoryClass(); pFeatureWorkspace = pWorkspaceFactory.OpenFromFile("D:\\GIS-Data",0) as IFeatureWorkspace; pFeatureClass = pFeatureWorkspace.OpenFeatureClass("地级市辖区_region"); pFeatureLayer = new FeatureLayerClass(); pFeatureLayer.FeatureClass = pFeatureClass; axMapControl1.AddLayer(pFeatureLayer); axMapControl1.Refresh();
2. 缩小
IEnvelope pEnvelope; pEnvelope = axMapControl1.Extent; pEnvelope.Expand(0.5,0.5,true); axMapControl1.Extent = pEnvelope; axMapControl1.Refresh();
1.5 ReaderControl
ReaderControl对应于ArcReader桌面应用程序的"数据" 和"布局"视图及其内容表(TOC).该控件还包含 ArcReader桌面应用程序使用的内部窗口和工作,如Find 窗口和Identify工具等.用ArcMap桌面应用程序创造并用 ArcGIS Publisher扩展模块发布的发布地图文档(PMF)若 在发布时设置为允许装载到定制的ArcReader应用程序中, 则可以装载到ReaderControl中. ReaderControl中有一个简单的自包含对象模型,提供 ArcReader桌面应用程序所以功能而不需要访问ArcObjects.