ArcGIS Engine组件式开发设计报告

合集下载

基于Arc GIS Engine 的GIS 开发的系统设计与实现

基于Arc GIS Engine 的GIS 开发的系统设计与实现

0 引言目前,地理信息系统已广泛地应用于众多领域,为各个相关行业提供了高效的空间信息处理能力和强大的决策支持服务。

为满足需求,GIS 开发人员需要具有构建领域专用且易于使用的应用软件的能力,软件需将广泛应用的GIS 技术与友好用户的经验结合起来。

这些软件如果从头开始构建,将是一项繁冗的开发工作,会很耗费时间,并且成本不菲。

现阶段,组件技术已经广泛的被引人到GIS 软件的设计与开发中,使得高效便捷的开发应用型地理信息系统成为现实。

国内外著名的GIS 厂商都相继推出了他们的Gls 组件,其中以ESRI 公司的组件产品Arcobjects 最为著名。

ArcGIS Engine 是一组打包的核心Arcobjects 组件,相比ArcobjectS 降低了开发难度,也大大提高了GIS 应用程序的开发效率。

因此,本文主要以ArcGIs Engin 。

为研究对象,剖析其系统开发方法,并作出最终的开发实例。

1 ArcGIS Engine 开发简介ArcGIS 是一组集成家庭式的GIS 软件产品,可在单项工程、工作组以及企业级项目中用于发布完善的、可升级的GIS 系统。

它是基于一个可共享的GIS组件一Arc ohjects 的公用库来构建的。

Arcobjects 是基于Microsoft COM 技术所构建的一系列COM 组件产品,不是为最终用户而是专门为开发人员提供的二次开发软件,通过Arcobjects ,用户可以非常方便地开发出功能强大的GIS应用系统。

但它不是一个独立的应用产品,不能脱离ArcGIS 平台,只有在购买ArcGIS 产品后,才能利用其提供的组件对象进行应用开发。

ArcGIs Engine是一组完备的并且打包的嵌人式GIS 组件库和工具库,开发人员可用来创建新的或扩展已有的桌面应用程序。

使用ArcGIS Engine ,开发人员可以将GIS 功能嵌入到已有的应用软件中,或嵌人到商业生产应用软件中,还可以创建集中式自定义应用软件,并将其发送给机构内的多个用户。

ArcGIS Engine实验报告2

ArcGIS Engine实验报告2

徐州师范大学测绘学院实验报告实验名称: 菜单的添加及其实现课程: ArcGIS Engine班级:姓名:学号: ********试验日期: 2011.10.18一、实验目的1.能够掌握应用程序菜单项添加的方法与步骤。

2.学会添加一些程序代码来实现菜单相关功能的实现。

3.学会程序的编译调试。

二、实验内容三、基于桌面GIS应用程序框架, 通过相应的设置和添加一些程序代码来实现菜单的添加, 并能够实现菜单的相应功能。

四、实验操作1.添加菜单在设计视图中, 单击菜单栏, 会出现“请在此处键入”的提示, 单击提示就可以键入菜单名称, 如“文件”, 再单击“文件”, 即可输入其下拉子菜单, 如下所示:同上操作, 同时添加新建(New )、打开(Open )、添加数据(AddData )、保存(Save )、另存为(SaveAs )、退出(Exit )这些菜单。

可以在属性面板中的Text 属性中, 把菜单名设置为中英文形式, 如“打开O pen ”, 带下划线的O 表示此项菜单的快捷键是字母O , 设置方法是在相应字母前加上“& ”字符, 如“打开&Open ”。

但这种快捷键只在打开此下拉菜单时才有效, 即当你单击“文件”菜单弹出下拉菜单时, 按下字母O 就可以定位到“打开”菜单。

还有一种在程序运行时都有效的全局快捷键, 可以在属性面板中的“ShortCutKeys ”中设置。

还可以在属性面板中的Image 属性中设置菜单图标。

单击Image 那一行右边的按钮, 弹出如下菜单。

选择“项目资源文件”, 再单击导入就可以选择图标了。

最终效果如下所示。

2.实现相关菜单首先定义指针(写在public partial class 3sdnMap 下面即可):private ESRI.ArcGIS.Controls.IMapControl3 m_mapControl = null;private ESRI.ArcGIS.Controls.IPageLayoutControl2 m_pageLayoutControl = null;private IMapDocument pMapDocument;若以上指针无效, 请添加以下引用:using ESRI.ArcGIS.Carto;using ESRI.ArcGIS.Controls;using ESRI.ArcGIS.esriSystem;using ESRI.ArcGIS.Display;using ESRI.ArcGIS.Geometry;using ESRI.ArcGIS.SystemUI;在设计视图中的属性面板中, 选择Form1 , 即主窗体, 单击事件按钮(闪电形状的那个按钮), 打到“Load ”事件并双击, 添加此事件。

10-2 Engine控件开发 (1)

10-2 Engine控件开发 (1)

类似于ArcGIS中的版面视图 封装了PageLayout组件类。 提供了如下辅助功能:
管理该控件的外观、显示以及属性页; 添加、查找组件中的元素( elements ); 加载地图文档; 从其它应用程序中拖拽数据到该控件; 打印。

接口
打开MXD文件
元素 (element) 操作
MapControl
属性页:零编程
右键上下 文菜单
主要接口
IMapControlDefault IMapControl2 IMapControl3 IMapControl4 IMapControlEvents2
MapControl
IMapControl2 : IDispatch IMapControl3 : IMapControl2 IMapControl4 : IMapControl3 IMapControlEvents 2 : IDispatch

显示所有图层及其符号 控制图层的可见性 “伙伴控件” MapControl、PageLayoutControl、 ReaderControl、SceneControl、 GlobeControl ITOCBuddy IActiveView 设置“伙伴控件” TOC属性页 SetBuddyControl
public void AddElement ( IElement pElement, object Geometry, object Symbology, object Name, int ZOrder );
MapFrames MapSurroundFrames GraphicElements
axMapControl1.Refresh(esriViewDrawPhase.esriViewGraphics, element, Type.Missing); //Refresh an element axMapControl1.Refresh(esriViewDrawPhase.esriViewGraphics, Type.Missing, envelope); //Refresh an envelope

组件式GIS-实验报告1 - 2013版

组件式GIS-实验报告1 - 2013版

组件式GIS实验报告册学年:2013 -2014__ 学期:第二学期专业:地理系新系统班级:地信112学号:110716223姓名:师明圣指导教师:尹涛山东交通学院土木工程系二零一三年实验报告1 GIS基本功能设计地点:土木楼时间: 2013-04-18 节次: 1一、实验目的1.安装配置组件式GIS开发环境2.设计GIS基本功能二、实验内容1.实验01 SuperMap Objects 安装,开发环境VS2010 安装2.实验02地图浏览功能设计3.实验03量算设计4.实验04基本查询设计5.实验05空间查询设计三、实验结果1.实验01 SuperMap Objects 安装,开发环境VS2010 安装结果: 在VS2010 C#开发环境下建立的第一个项目,在设计窗体上添加SuperMap Objects核心控件后,整个设计环境的截图。

截图:2.实验02地图浏览功能设计设计的地图浏览功能及其代码:private void Form1_Load(object sender, EventArgs e){axSuperMap1.Connect(axSuperWorkspace1.CtlHandle);String sp;sp = @"D:\supermap\Samples\World\World.smw";bool a, b;a = axSuperWorkspace1.Open(sp, "");b = axSuperMap1.OpenMap("世界”);if (!a){MessageBox.Show("打开工作空间失败”);}if(!b)MessageBox.Show("打开地图失败”);}系统运行截图:3.实验03量算设计坐标、距离、面积、方位角等量算功能代码:private void button1_Click(object sender, EventArgs e){axSuperMap1.Action = seAction.scaZoomIn;}private void button2_Click(object sender, EventArgs e) {axSuperMap1.Action = seAction.scaZoomOut;}private void button3_Click(object sender, EventArgs e) {axSuperMap1.Action = seAction.scaPan;}private void button4_Click(object sender, EventArgs e) {axSuperMap1.ViewEntire();}private void button5_Click(object sender, EventArgs e) {axSuperMap1.Action = seAction.scaZoomFree;}面积量算截图:4.实验04基本查询设计图查属性代码:private void button6_Click(object sender, EventArgs e) {axSuperMap1.Action = seAction.scaSelect;}private void axSuperMap1_GeometrySelected(object sender, AxSuperMapLib._DSuperMapEvents_GeometrySelectedEvent e){soSelection objs;soRecordset objr;objs = axSuperMap1.selection;objr = objs.ToRecordset(false);objr.MoveFirst();String str;str = objr.GetFieldValue("Country").ToString();MessageBox.Show(str);}属性查图代码:private void button7_Click(object sender, EventArgs e){string str;soDataset objt;soDatasetVector objDtv;soRecordset obj;Double dRatio;dRatio = 2;objt = this.axSuperWorkspace1.Datasources["World"].Datasets["Countries" ];objDtv = (SuperMapLib.soDatasetVector)objt;str = "country like '*" + this.textBox2.Text + "*'"; obj = objDtv.Query(str, true, null, "");this.axSuperMap1.selection.FromRecordset(obj);this.axSuperMap1.EnsureVisibleRecordset(obj,dRatio);this.axSuperMap1.Refresh();}图查属性截图:属性查图截图:5.实验05空间查询设计空间查询算子:ExtentOverlap,LineCross,Containing,ContainedBy ,Overlap, Disjoint ,Touch,Identical,AreaIntersect,CentroidInPolygon ,CommonPoi nt,CommonLine,ContainedByNoEdgeTouch ,ContainingNoEdgeTouch,C ontainOrOverlap,PointInPolygon,CommonLineOrOverlap,CommonPoint OrLineCross,AreaIntersectNoEdgeTouch,空间查询功能代码:private void axSuperMap1_Tracked(object sender, EventArgs e){soGeometry objSearchGeo = axSuperMap1.TrackedGeometry;soDatasetVector objDtv;if (objSearchGeo == null){MessageBox.Show("未获得用搜索的对象");return;}soStyle objStyle = new soStyleClass();objStyle.PenColor =(uint)ColorTranslator.ToOle(Color.Red);axSuperMap1.TrackingLayer.AddEvent(objSearchGeo, objStyle, "");objDtv = (SuperMapLib.soDatasetVector)axSuperWorkspace1.Datasources["Worl d"].Datasets["Countries"];soRecordset objSearchRd;objSearchRd = objDtv.QueryEx(objSearchGeo, seSpatialQueryMode.scsLineCross, "");if (objSearchRd.RecordCount == 0){MessageBox.Show("没有找到条件");return;}axSuperMap1.selection.FromRecordset(objSearchRd);this.axSuperGridView1.Connect(objSearchRd);axSuperGridView1.Refresh();axSuperMap1.TrackingLayer.Refresh();axSuperMap1.Refresh();}}空间查询运行截图:五、学了如果地图或空间打开失败时的判断方法以及提示;如图所示:1,有事打开时,不显示地图,可能打开了supermapdesk,先关掉他实验十一 SuperGridView 控件2,为变量使用别名:3,数据源如果是字母,要注意大小写;。

arcengine实习报告

arcengine实习报告

arcengine,实习报告篇一:GIS开发实习报告学号1221030205实习报告GIS程序设计实习起止日期: XX 年 7 月13 日至 XX年 7 月 19 日学班成生姓名级绩吴馁 12级地信2 班指导教师(签字)地质与测绘学院XX年 7 月 20 日GIS程序设计实习一、实习目的通过GIS程序设计实习,使学生了解需求分析、项目管理方案设计、系统总体设计以及系统详细设计、系统实施、运行和维护等阶段要完成的具体工作;掌握在C#和ArcEngine环境下构建应用型地理信息系统的方法。

二、实习内容熟悉开发环境:Visual Studio XX; C#; Arc Engine功能需求分析基于组件技术开发应用型地理信息系统组件式技术已成为当今软件技术的潮流之一。

组件式GIS软件的基本思想是把GIS各大功能模块划分为几个控件。

各个GIS控件之间,以及GIS控件与其他非GIS控件之间,可以方便地通过可视化的软件开发工具集成起来,形成最终的GIS应用。

重点完成的工作包括:1)建立ArcGIS Engine 应用程序框架;2)实现对矢量数据(Shape File格式)的访问;3)实现采用简单、唯一值、分类等多种方式对面状矢量数据进行渲染(Render)。

三、实习步骤:实习一:初识ArcGIS Engine 开发环境1、新建一个Windows窗体应用程序2、在新建窗体中添加控件在工具箱中选择添加toolbarcontrol,TOCControl,MapControl控件在解决方案资源管理器中双击在主函数中添加();使得文件可以加载到MapControl中。

右击toolbarcontrol选择属性,如图选择Items选项,添加如图控件右击MapControl属性,在General的map document中添加要加载的地图文件通过以上步骤添加的控件还只是单独存在,而我们的程序需要各控件间协同工作,因此要进行控件绑定。

ArcEngine程序设计实验报告

ArcEngine程序设计实验报告

ArcEngine程序设计实验报告基于与ArcEngine开发的地理信息系统ArcEngine程序设计实验报告学号:200725809 姓名:阙泽胜专业方向:GIS设计与开发一、实验要求利用ArcEngine组件,结合VB或.NET开发环境,设计并实现一个小型GIS系统。

1)使用控件要求:MapControl,ToolBarControl,TocControl等2)系统的功能模块1. 文件:打开、保存、退出2. 插入:文本、点、线、面、CAD、表、指北针、图例、图片3. 常用工具:选择、取消选择、放大、移图4. 专题制图:单值渲染、分级渲染、图表渲染5. 视图方式:地图视图、页面视图、场景视图、Global视图、鹰眼视图(导航图)其他功能:编辑表,查询等3)参考数据:WorldData文件中的World.mxd、dj-lu.dwg图、如琴湖.jpg和myDB. mdb。

二、实验步骤及结果1.搭建系统框架,实现基本功能系统主界面采用如下架构,上面部分为菜单条和工具条,左面部分为图层管理,中间部分为MapControl控件,右边上面为鹰眼导航图,下边为选择查询功能见图2-11基于与ArcEngine开发的地理信息系统图2-12.关键功能实现(1) 加载CAD图CAD文件的加载有两种形式:一是要素图层,即以矢量数据的方式加载,二是栅格图层,即以栅格数据方式加载,以作背景图层使用。

如下图2-2所示:2基于与ArcEngine开发的地理信息系统实现思路:1) 窗体Load事件中加载:AxMapControl1复制到AxMapControl2。

yerCount ,用AxMapControl2.Map.AddLayer(yer(i))实现图层复制.Private Sub AxMapControl1_OnMapReplaced(ByVal sender As Object, ByVal eAs ESRI.ArcGIS.Controls.IMapControlEvents2_OnMapReplacedEvent) HandlesAxMapControl1.OnMapReplacedDim pmap As IMappmap = AxMapControl1.MapDim i As IntegerFor i = yerCount - 1 To i = 0 Step -1AxMapControl3.Map.AddLayer(yer(i))NextokBtn.SetBuddyControl(AxMapControl1)AxMapControl1.Refresh()AxMapControl3.Refresh()End Sub2)AxMapControl1_OnExtentUpdated事件,即当:1),定义设置矩形的边线颜色。

地理信息系统(GIS)软件工程实习报告—Arc Engine 二次开发 地图显示 Java实现

地理信息系统(GIS)软件工程实习报告—Arc Engine 二次开发 地图显示  Java实现

目录一、内容及要求说明 (1)1.1 内容介绍 (1)1.2 要求说明 (1)二、环境配置 (1)2.1 Arc Objects SDK for Java Platform配置 (1)2.2 Java平台配置及Arc Objects插件安装 (2)三、基于Arc Objects的Java语言二次开发 (4)3.1 系统框架设计 (4)3.2 系统功能设计 (5)3.3 系统功能实现 (6)四、开发总结 (11)一、内容及要求说明1.1 内容介绍本课程实习要求主要是熟悉基于ArcGIS的AE或是AO二次开发过程,了解ArcGIS二次开发体系。

1.2 要求说明本课程二次开发主要实现ArcGIS数据格式地图显示、缩放、平移等基础功能;另外要求实现根据数据的省份字段进行地图复杂查询,并高亮且居中显示查询结果;开发语言不限,可使用C#、Java及VB等;ArcGIS SDK采用AE或AO都可;二、环境配置2.1 Arc Objects SDK for Java Platform配置本人采用基于Arc Objects的Java语言的开发模式,所以为方便开发,需要配置Arc Objects SDK for Java Platform的开发环境。

本人采用【arcgis.desktop完全中文版】.ESRI.ArcGIS.10.CS.iso安装软件,并采用arcGIS10.0kegen注册机进行破解。

(1)ArcGIS许可管理器安装本人采用虚拟光驱Deamon Tools加载ISO镜像文件,打开后进入初始安装选择界面,如图1所示。

第一步安装ArcGIS许可服务器打开后进入初始安装选择界面,选择安装ArcGIS许可管理器,直接点击根据提示进行安装。

图1. 初始安装选择界面第二步进行破解。

首先打开“注册机”,如图2所示,功能选择arc/info,版本不用说:10.0;然后点击右下角的所有,把产生的注册信息全部复制到:安装ArcGIS许可管理器下的目录\License10.0\bin下的service.txt中。

基于ArcGIS Engine的GIS开发

基于ArcGIS Engine的GIS开发

ArcGIS Engine开发包的组成 开发包的组成
工具条和工具
• 提供了于地图和地理信息交互的工具,如 平移、缩放、点击查询和与地图交互的各 种选择工具。 • 在应用界面上展现为工具条。简化了开发 过程。
Outline
• • • • ArcGIS Engine的概述 Engine的概述 ArcGIS Engine的结构 Engine的结构 开发控件 许可和部署
= 核心功能
• esriLicenseProductCodeEngineGeoDB = 核心功能+geodatabase update
部 署
• 单独安装、配置ArcGIS Engine Runtime • 在应用程序安装中部署好ArcGIS Engine Runtime
谢谢
包含两个部分
• ArcGIS Engine Developer Kit • ArcGIS Engine Runtime
ArcGIS Engine的功能 的功能
• 读取所有支持的ESRI数据格式包括 读取所有支持的ESRI数据格式包括 geodatabase • 地图制作(创建和编辑MXD) 地图制作(创建和编辑MXD) • ArcGIS 级别的绘图 • 查询和分析 • 地理编码 • 简单编辑(shp 和pGDB) 简单编辑(shp
基于ArcGIS Engine的GIS开发 基于 的 开发
赵彦博
Topics
• • • • ArcGIS Engine的概述 Engine的概述 ArcGIS Engine的结构 Engine的结构 控件 许可和部署
ArcGIS Engine
• 是ArcGIS 9 中的新产品
◦ 在ArcGIS系列产品中 ArcGIS系列产品中
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ArcGIS Engine 组件式开发系统设计报告1. 系统设计目的对于本门课程进行系统的了解和加深,能将MapControl 、PageLayoutControl 、TOCControl 和ToolBarControl 控件集成起来,建立一个GIS 应用系统,实现一些简单的操作,例如数据的加载,地图的交互操作,空间查询,缓冲区分析,地图的打印输等功能。

2. 系统设计内容● 能加载几种常用格式的地图数据。

● 创建了自己的自定义命令、工具和菜单,实现鹰眼功能,拉框显示,地图漫游,地图标注,数据选择,并能绘制点、线、面。

● 调整TOCControl 控件中图层的显示顺序,并可以点击右键打开属性表。

● 可新建点、线、面图层。

● 实现了属性查图功能,并进行要素的选择,将选择的要素高亮显示出来。

● 能进行地图制图,可设置格网点、格网线,改变背景颜色,设置图例,比例尺,指北针,并进行地图的输出。

● 实现了空间分析中的缓冲区分析。

3. 主要系统模块示意图空间查询GIS 应用系统创建图层地图交互操作地图输入地图制图空间分析地图输出4.实现功能简介按照数据处理的流程,可将本系统分为七大模块:(1)地图输入模块:可加载shp、jpg、tif、bmp格式的地图数据并在主视图上同时显示多个图层。

此功能包含的类有GeoMapOp。

(2)地图交互操作模块:里面功能的定义都在类GeoMapOp中,然后在Form1窗体中进行调用。

●实现鹰眼操作:可在主视图和鹰眼地图上同步显示,主视图变化后鹰眼视图能保持一致,可通过鹰眼地图定位主视图。

●拉框显示:用户可通过鼠标拉框放大显现地图。

●地图漫游:用户可以通过鼠标将放大后的地图进行平移操作。

●地图放大:用户可通过鼠标点击实现地图的放大。

●全图显示:可用鼠标拖动地图。

●绘制点、线、面:用户可通过鼠标点击来给图上添加点、线、面。

●地图标注:用户可通过鼠标点击来添加地图标注。

●数据选择:用户可将选择的要素高亮显示出来。

(3)创建图层:此功能里的代码都没有在类里面出现,都是在窗体中定义的。

里面包含创建点图层,线图层,面图层。

●创建点图层:用户可通过鼠标点击此项创建一个点图层文件,并保存。

●创建线图层:用户可通过鼠标点击此项创建一个线图层文件,并保存。

●创建面图层:用户可通过鼠标点击此项创建一个点面层文件,并保存。

(4)地图制图:此功能的代码在类GeoMap和主窗体Form中都有出现。

●格网点设置:用户可触动鼠标显示格网点。

●格网线设置:用户可触动鼠标显示格网线。

●改变背景颜色:用户可触动鼠标改变制图区域的背景颜色。

●设置图例:用户可通过点击此项加载该地图对应的图例。

●设置比例尺:用户可通过点击此项加载比例尺。

●设置指北针:用户可通过点击此项加载指北针。

(5)空间查询:创建了一个选择属性的窗体SpaceSearch,在窗体中添加需要的按钮。

并在SpaceSearch.cs中对各个按钮进行定义。

在主窗体中对类进行调用。

(6)缓冲区分析:新建一个创建缓冲区的窗体CreatBuffer,一个元素控制类ElementsControls,一个分析类analysis,一个ARCGIS下的BseCommend类型的缓冲区输出类CmBufferToShapefile。

在工具箱中往CreatBuffer窗体中添加需要的按钮,并对各个按钮进行定义。

在窗体CreatBuffer中用到了类analysis和类ElementsControls 。

最终和主窗体连接在一起。

完成缓冲区分析。

(7)地图输出:地图输出,此处指做了地图的打印。

包含的类有printer,Paper,PageLayoutControl。

5.开发流程5.1创建一个工程命名GIS实习从工具箱中给Form窗体中添加需要的控件。

创建了多个类,进行封装。

在GeoMapOp.cs类中,主要封装了打开地理数据的方法,设置了颜色,定义了地图操作的方法,定义加载MXD文档的方法,指北针,图例,比例尺等方法。

在GeoMapComm.cs类和ClearFeaSele.cs中,主要是自定义命令的开发,对于本系统而言,主要就是两个自定义命令的设计,分别是“清除当前活动工具”,“清除当前地图选择要素”。

在地理数据加载的这个功能中,把加载数据方法AddGeoMap()封装在了GeoMapOp.cs类中,在Form1.cs中,通过实例化类对象MapData,来调用该方法实现数据的加载。

部分代码如下图所示:5.2 实现鹰眼功能主要实现了使“主视图与鹰眼视图数据保持一致,使鹰眼视图加载地图全图,在鹰眼视图中绘制红色矩形框,主视图显示范围为鹰眼视图中红色矩形框的范围,鼠标左键移动红色矩形框,右键可以重绘红色矩形框,改变它的大小,即改变主视图中的显示范围”等功能。

部分代码如下:5.3 图层控制及查看属性表调整图层显示顺序及右键打开属性表的方法在Form1中。

部分代码如下:5.4 添加自定义工具对于自定义命令、工具,本系统有两个自定义命令“清除当前活动工具”,“清除当前地图选择要素”,其分别分装在GeoMapComm.cs类与ClearFeaSele.cs 中。

5.5 地图制图下的一系列命令运行后的界面:5.6 制图功能设计系统设计地图制图这部分内容时,实现了格网点设置,格网线设置,背景颜色改变,边框及添加地图比例尺,图例,指北针,地图的打印输出等功能。

其中格网点,格网线设置,背景颜色的改变,及地图图例,指北针,比例尺的设置代码均放在类GeoMapOp中,在窗体Form1中进行调用。

5.7 空间查询系统中在空间查询下实现属性查图该功能也是通过新建一个Windows窗体SpaceSearch,然后对它进行实例化,通过Show()方法弹出进行实现,属性查图的运行界面如下:高亮显示查询的要素,如下:5.8 制图输出地图打印输出设计中,通过新建Windows窗体PrintForm1,在上面放置控件与按钮来设置打印对话框。

页面设置界面:打印预览界面打印界面:5.9 空间分析对于空间分析功能的开发,系统只是设计缓冲区分析功能。

创建建缓冲区的界面:确定后,生成缓冲区:6.总结通过对设计系统GIS实习的完成,在设计上我还存在很多不足之处。

问题主要存在不能很好地把代码分装在不同的类中,导致程序很乱。

因为这是个小程序,想要找个代码可能还好找点,要是个大程序这样的设计肯定是不行的。

由于能力不够,设计中还有很多功能不能实现,在界面的设计上也崔在菜单栏混乱,没有规则,让大家看着不舒服。

AE组件式开发及应用以前从来没有接触过,通过这学期的学习和同学们的热心帮助,我对这门课的理论知识和实际操作有了些了解,可以做一些简单的界面,虽然学的很吃力,但看到成果时候的兴奋是没有办法言语的。

最后,要感谢李老师的悉心指导和严格要求。

(1)地图输入模块:接口有IMap,IActiveView,IMapDocument,IDisplayTransformation通过实例化类来加载地图。

IRasterLayer ,IRasterWorkspace,IWorkspaceFactory,IRaster,IRasterDataset,IWorkspace,IRasterPyramid,ILayer(2)地图交互操作模块:实现鹰眼操作、拉框显示、地图漫游、地图放大、全图显示、绘制点、线、面、地图标注、数据选择。

TOCControl,ILayer,IMap,IActiveView,IBasicMap,IGeoFeatureLayer,IWorkspaceName,IDatasetName,IDataLayer,IWorkspaceFactory,IWorkspace,IFeatureWorkspace,IFeatureClass,IFeatureCursor,IFeature。

IEnvelope ,IPoint,IGraphicsContainer ,IRectangleElement,IElement,IRgbColor,ILineSymbol,IFillSymbol,IFillShapeElement 。

IGraphicsContainer,ISimpleFillSymbol,IPolygon,ILineElement,ISimpleLineSymbol,IPolyline,ISimpleMarkerSymbol,IMarkerElement。

,ITextElement。

ISelectionEnvironment,IGraphicsContainer。

(3)创建图层:用到的接口有IWorkspaceFactory,IFeatureWorkspace,IFeatureClass,IDataset,IFields,IFieldsEdit,IField,IFieldEdit,IGeometryDef,IGeometryDefEdit,ISpatialReferenceFactory2,IGeographicCoordinateSystem,ISpatialReference。

ISnapGrid,ISnapGuides,IPage,IRgbColor,IPageLayout。

(4)地图制图:PageLayoutControl,IPageLayout。

ILegend2,ILegendFormat,ITextSymbol. IGraphicsContainer,IActiveView,IFrameElement,IMapFrame,UID,IMapSurroundFrame,IMapSurround,IScaleBar,IElement,IEnvelope。

IMarkerNorthArrow,IMarkerSymbol。

(5)空间查询:创建了一个选择属性的窗体SpaceSearch,在窗体中添加需要的按钮。

并在SpaceSearch.cs中对各个按钮进行定义。

在主窗体中对类进行调用。

IMap,IFeatureLayer,IFeatureCursor,ITable,ITableSort,ICursor,IDataStatistics,ILayerFields,IFields,(6)缓冲区分析:新建一个创建缓冲区的窗体CreatBuffer,一个元素控制类ElementsControls,一个分析类analysis,一个ARCGIS下的BseCommend类型的缓冲区输出类CmBufferToShapefile。

在工具箱中往CreatBuffer窗体中添加需要的按钮,并对各个按钮进行定义。

在窗体CreatBuffer中用到了类analysis 和类ElementsControls 。

最终和主窗体连接在一起。

相关文档
最新文档