您好,欢迎访问三七文档
当前位置:首页 > 行业资料 > 其它行业文档 > arcgis开发教程
内容使用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桌面应用程序-21.动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桌面应用程序-25.设置控件Anchor属性,使控件大小随窗口变化而变化二创建桌面应用程序6.创建第一个ArcGISEngine桌面应用程序-2privatevoidForm1_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桌面应用程序-2usingESRI.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桌面应用程序-2privatevoidForm1_Load(objectsender,EventArgse){stringfilename=E:\\上课资料\\测绘08-GIS开发\\map\\SD.mxd;if(axMapControl1.CheckMxFile(filename)){axMapControl1.LoadMxFile(filename);//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可以分为以下几种:文件系统工作区(FilesystemWorkspace),Shapefile和ArcInfo的Workspace属于这种;本地数据库工作区(LocalDatabaseWorkspace),例如MicrosoftAccess中存储的个人地理数据库;远程数据库工作区(RemoteDatabaseWorkspace),例如存放在Oracle、DB2等中需要使用ArcSDE的相关组件来方位的地理数据库。三地图基本操作实现1.加载图层数据——ShapeFile文件Workspace类从某种意义上来说
本文标题:arcgis开发教程
链接地址:https://www.777doc.com/doc-2898326 .html