GIS二次开发 教学大纲
- 格式:doc
- 大小:136.50 KB
- 文档页数:19
《GIS设计开发课程设计》教学大纲课程代码:8256013 课程类别:专业必选学分:2实践周数:2一、目的与任务GIS二次开发课程设计是在学生学习专业课程的基础上,开设的一门专业综合实习课,该课程以程序设计开发为主,涉及到面向对象程序设计的一般知识,开发环境及编程语言,及GIS系统中常用的数据组织方式、地图的表达、可视化、查询以及系统设计等多方面综合性知识。
因此它需要学生了解面向对象程序设计,开发环境及编程语言,掌握GIS地图的表达、可视化、查询等的实现方式。
该课程注重理论基础知识和基本技能的掌握和应用,创新意识和动手能力的培养,自我学习能力的提咼。
适用专业:GIS专业。
二、内容与要求利用ArcEngine组件,结合C#或VB. net开发环境,设计并实现华农校园地理信息系统。
2. 1系统需求分析1、华农校园图的可视2、校园内各主要地点的查询(学生日常生活相关的地方):教学楼,院系,行政单位,校医院,学生宿舍,食堂,运动场,银行,超市等3、量算分析(距离量算,面积量算)4、统计分析、专题图表达(如各校区的学生人口分布图,男女比例图)5、空间分析(如缓冲区分析)6、最短路径查询(步行、坐校巴或开车)7、补充:选址分析。
女口:新建某超市,考虑哪些因素,如何定点,如:新建教学楼,考虑哪些因素,如何定点8、补充:校巴线路合理规划:根据学生出行,学生宿舍的位置,进行校巴线路规划(要求经过每个主要区域)2. 2系统功能分解依据系统的需求分析,对功能进行分解,确定实验项目的具体内容要求。
3、1、 数据的打开可视1.1前期准备工作:数据1. 2功能实现文件:打开、保存视图显示功能:放大、缩小、漫游、全屏等 图层的管理、维护、顺序的变化、增加、删除 图层的符号化表达2、 校园内各主要兴趣点的查询2. 1前期数据准备工作(1) 兴趣点数据图层的设计,如包含字段信息:名称,简介等(2) 图层数的确定(3) 数据的采集,数据的录入2. 2功能实现实现图文双向查询。
MAPGIS二次开发讲义成熟实用的地理信息系统(GIS)的重要标志就是它提供给用户的二次开发能力。
MAPGIS提供完整的二次开发函数库。
用户完全可以在MAPGIS平台上开发面向各自领域的应用系统。
操作系统、MAPGIS开发库及MAPGIS应用程序的相互关系如下图所示:MAPGISMAPGIS应用程序空间分析窗口操作…图库操作图形、图象I/O开发库工作区管理MAPGIS二次开发函数库包括下表所列部分,这些库函数都支持Window3.某,Window95和NT操作系统。
MAPGIS二次开发函数库支持的语言包括Borlandc++,Viualc++,Viualbaic等高级语言程序设计环境。
函数库名称动态库文件32位函数库(支持Window95,NT)c,c++连接文件工作区基础函数图形显示输出工作区管理函数图形窗口操作空间分析函数地图库读取显示图形编辑函数ba32.dllMapdp32.dllw32_area.dllW32_oper.dllW32_anly.dllD32_view. dllMaped32.dllBa32.libMapdp32.libW32_area.libW32_oper.libW32_anl y.libD32_view.libMaped32.lib表1MAPGIS函数库c,c++说明文件Win_area.hMap_out.hWin_area.hWin_oper.hSpc_anly.hDb_view.hMapedi t.hvb说明文件W32_area.baMapdp32.baW32_area.baW32_oper.baW32_anly.baMaped32.ba Window3.某、Window95、WindowNT基于MAPGIS平台的应用程序MAPGIS二次开发函数采用匈牙利命名法,即动宾结构命名法,并且所有函数都以下横线开始,以便和Window函数以及其他语言函数明显区别开来,如_GetLin表示取线实体;在ViualBaic环境下,由于ViualBaic语言不能识别以下横线开始的函数名,所以库函数都以字母b开始,如bGetLin表示取线实体。
《GIS二次开发课程设计》报告院(系土木工程学院专业地理信息系统小组成员吴波,黄聪,蔡劼,米锐,房海峰,黄罡起讫日期2010.01.04—2010.01.17 目录1 系统实现目标 ....................................2 系统需求分析 ....................................3 系统设计 ........................................3.1 总体设计 ..........................................................................3.2 数据库设计 ......................................................................3.3 平台选择 ..........................................................................3.4 详细设计 ..........................................................................4 功能实现 ........................................4.1 地图载入 ............................................................................4.2 添加图形要素 .....................................................................4.3 通过图形查属性………………………………………………4.4 通过属性查询图形……………………………………………4.5 通过位置查询图形……………………………………………4.6 缓冲区分析……………………………………………………附件 ..............................................1 系统实现目标通过本系统的实施,建立公共灾害信息查询系统,主要针对于火灾和交通事故。
《GIS二次开发》课程课间实验报告实验项目:基于Arcengine10.1开发环境搭建及入门程序姓名:吴静学号631201040229班级:测绘工程专业2012级 2 班指导教师:刘国栋学习日期:2015年05月21日测量与空间信息处理实验一、实验内容 (1)二、实验目的 (1)三、软件平台 (1)四、实验步骤 (1)4.1打开Visual Studio 2010并创建应用程序项目 (1)4.2添加ArcEngine相关的引用z (2)4.3了解工具箱的控件 (2)4.4添加控件至窗体 (3)4.4.1 MenuStrip菜单栏 (3)4.4.2 ToolBarControl工具栏 (4)4.4.3 StatusSrtip状态栏 (5)4.4.4 TOCControl与MapControl (5)4.4.5 AxLicenseControl控件 (5)4.5 编辑控件属性 (5)4.5.1 ToolbarControl属性设置 (6)4.5.2 TOCControl属性设置 (6)4.5.3 MapControl属性设置 (6)4.5.4配置license (7)4.6检查license (7)4.7运行应用程序 (8)五、实验小结 (8)一、实验内容运用Visual Studio 2010 创建出一个类似于ARCMAP主界面的桌面应用程序二、实验目的2.1熟悉Visual Studio 的工作环境,学会建立工作项目;2.2通过对控件的添加,熟悉和掌握ArcEngine中各控件的作用;2.3对空间的属性进行变化,从而进一步了解可视化的意义。
三、软件平台Visual Studio 2010(包含ArcEngine 10.1的相关控件)四、实验步骤4.1打开Visual Studio 2010并创建应用程序项目首先打开Visual Studio 2010,选择Visual C#编程语言,创建一个Windows 窗体应用程序项目,如图4-1所示:图一创建Visual C#的Windows窗体应用程序4.2添加ArcEngine相关的引用z在菜单栏中选择“项目”,再选择“添加引用”,再在弹出的添加引用窗口中选择“.NET”,找到ESRI相关组件,选中并确定,即完成ArcEngine 10.1的相关组件在Visual Studio 2010中的添加。
ArcGIS Engine二次开发实习初级讲义目录1 ArcGIS、ArcObjects和ArcGIS Engine简介.................................................................... - 3 -1.1 ArcGIS简介 ................................................................................................................ - 3 -1.2 ArcObjects简介 .......................................................................................................... - 4 -1.3 ArcGIS Engine简介.................................................................................................... - 5 -2 ArcGIS控件介绍.................................................................................................................... - 7 -2.1 ArcGIS控件简介 ........................................................................................................ - 7 -2.2重要控件简介............................................................................................................... - 9 -3 ArcGIS Engine二次开发入门 ............................................................................................ - 16 -3.1 ArcGIS Engine开发起步——第一个简单的地图显示程序 .................................. - 16 -3.2 属性查询.................................................................................................................... - 23 -3.3 空间查询.................................................................................................................... - 27 -3.4 BaseCommand开发实例 .......................................................................................... - 36 -3.5 BaseTool开发实例.................................................................................................... - 38 -3.6通过代码添加图层..................................................................................................... - 42 -3.7基于比例尺显示地图................................................................................................. - 44 -3.8 构建一个简单的GIS应用........................................................................................ - 46 -4.问题解决方法及帮助文档的使用........................................................................................ - 58 -4.1使用ArcObjects开发帮助系统............................................................................... - 58 -4.2阅读对象模型图(Object Model Diagram)......................................................... - 62 -1 ArcGIS、ArcObjects和ArcGIS Engine简介1.1 ArcGIS简介ArcGIS提供了一个可伸缩的框架,可以为独立用户或者多用户,既可以在桌面端也可以在服务器端提供GIS。
《GIS二次开发》课程标准一、课程说明注:1.课程类型(单一选项):A类(纯理论课)/B类(理论+实践)/C类(纯实践课)2.课程性质(单一选项):必修课/专业选修课/公共选修课3.课程类别(单一选项):公共基础课/专业基础课/专业核心课4.合作者:须是行业企业人员,如果没有,则填无二、课程定位本课程是测绘与地理信息系统专业的一门专业核心课程。
是一门实践性很强的课程,必须通过上机操作才能掌握所学的知识,强调讲授与上机操作相结合,保证学生有充分的上机条件。
通过本课程的学习,学生能够掌握计算机网络语言和ArcGISEngine相关方面的特点,掌握它们的主要应用领域和发展方向,具备一种基于C#语言开发的ArcGIS产品二次开发能力,为后续的学习,打下良好基础。
三、设计思路本课程按照学生掌握GIS应用开发技能的顺序进行组织,坚持以理论够用为度,以培养学生掌握GIS二次开发技能为主,将课程知识点与学习任务整合到设计的项目中,通过上机实践,让学生掌握C#语言实现对GIS的二次开发。
其总体设计思路是:以C#作为开发语言,结合大量实例,掌握ArcGISEngine10.0进行GIS二次开发的方法、过程和技巧。
主要包括ArcGISEngine接口的概念,利用ArcGISEngine构建GIS基本框架的方法,在ArcGISEngine环境下空间数据访问与查询、符号化显示与符号库定制、外部属性数据操作与专题图制作、地图整饰与打印输出、空间数据裁剪、地形分析、地图配准,以及空间数据图饰符号标注等功能的实现方法。
四、课程培养目标通过本课程的学习,让学生掌握GIS二次开发应具备的相关技能,学会C#开发工具,对GIS进行二次开发的方法,为测绘与地理信息专业后续课程提供支撑。
1.专业能力完成的安装与配置完成ArcGISEngine10.0的安装完成ArcGISEngine基础控件的加载完成GIS地图数据加载完成GIS地图符号化完成GIS地图的整饰与输出2.方法能力本课程在教学过程中,以学生为主体,通过案例教学、任务驱动教学、分组讨论教学、问题探究教学等教学方法,让学生主动参与到教学过程中,以编写代码为主,不断激发学习者的学习兴趣,让学生在不断地分析问题,解决问题,推理与判断过程中,提高学习效果,达到培养实际职业技能的培养目标。
第一章GIS软件开发基础◆本章节的主要内容一、地理信息系统定义、类型和构成二、地理信息系统的研究内容三、地理信息系统的功能(一)基本功能:1、数据采集与输入、编辑2、数据存储与管理3、数据处理与变换4、空间分析与统计(二)应用功能:资源调查、城乡规划、灾害监测四、GIS软件的发展与技术五、GIS软件的开发模式1.常见开发模式➢独立开发➢单纯二次开发➢集成二次开发2.三种开发模式比较及优缺点3.GIS软件开发模式的选择六、GIS软件的开发内容七、GIS软件开发的相关技术◆本章节的教学目的及要求目的:通过本章节的学习使学生对地理信息系统定义、类型和构成,以及GIS的功能,开发模式,开发内容等有一个基本的了解要求:使学生对本课程的GIS开发基础有一个基本的了解,为后续章节打下基础课时:2个课时◆本章节的教学重点、教学难点重点:地理信息系统定义、类型和构成,GIS的功能,GIS开发模式比较与选择难点:GIS软件的发展趋势,以及GIS开发模式比较与选择◆本章节的主体教学方式、方法主体教学方式:多媒体教学◆本章节的思考题1.GIS的定义?2.GIS常见的开发模式有哪些,其各自优缺点如何?3.GIS的功能有哪些?第二章ArcEngine 基本原理——组件对象模型◆本章节的主要内容一、ArcGIS整体架构二、ArcEngine与ArcObject的关系与区别三、ArcEngine的体系结构1.ArcEngine的库结构,ArcEngine 具有哪些功能2.ArcGIS Engine 产品和扩展四、对象组件模型COM定义,COM类,COM接口2.学习ArcEngine需要了解的COM内容五、如何阅读OMD1.OMD(Object Model Diagram 对象模型图)2.如何阅读一个OMD对象模型图3.类的类型4.类的相互关系5.接口、属性、方法的图标六、ArcEngine软件安装说明七、ArcEngine在VB 或.net环境中的应用实例八、ArcGIS的二次开发——VBA◆本章节的教学目的及要求目的:通过本章节的学习使学生对课程中所使用的ArcEngine控件有一个整体的了教,同时,对学习和使用ArcEngine控件的所必须了解的COM、OMD知识有较清楚的认识,为后面基于ArcEngine控件的开发奠定理论基础。
要求:使学生对ArcEngine,COM、OMD有较清楚的认识,为后续章节打下基础课时:2个课时◆本章节的教学重点、教学难点重点:ArcEngine的体系结构,ArcEngine与ArcObjects的区别和联系,COM、OMD 基础知识。
难点:ArcEngine的体系结构,COM理解和认识◆本章节的主体教学方式、方法主体教学方式:多媒体教学◆本章节的思考题1.ArcEngine与ArcObjects的区别和联系?2.ArcEngine 具有哪些功能?3.学习ArcEngine需要了解有关的COM内容?4.ArcEngine的体系结构?◆本章节的实践要求:1.安装ArcEngine,ArcGIS软件2.安装.net平台第三章用户界面定制--VBA开发◆本章节的主要内容一、VBA开发环境1.使用客户化对话框(Customize dialog box )2.VB编辑环境(Visual Basic Editor )3.VBA开发实例:创建工具栏(P25)二、Application对象1.Application对象简介2.Application 应用实例➢显示Application应用程序的名称➢打开一个文档三、ThisDocument对象1.Document对象简介2.IMxDocument 应用实例四、定制ArcMap的界面1.定制状态栏2.定制浮动窗口(DockableWindow)3.设置快捷键4.创建CommandBars和CommandBar五、UIControl的使用1.UIButtonControl、UIToolControl、UIEditBoxControl、UIComboBoxControl2.实例、添加一个“Tool”风格的工具(图形放大)六、使用Extension扩展ArcGIS七、VB语法介绍八、运行环境配置九、帮助文档◆本章节的教学目的及要求目的:通过本章节的学习使学生掌握VBA开发的基本步骤,能够利用VBA开发对ArcGIS 软件进行用户界面定制。
要求:使学生对VBA开发的环境、基本步骤有、方法有较清楚的认识,可利用VBA实现用户界面定制。
课时:2个课时◆本章节的教学重点、教学难点重点:理解VBA开发中ArcGIS的Application和ThisDocument两个全局变量,掌握ArcGIS中添加工具的方法,创建宏的方法。
难点:ArcGIS中添加工具的方法,创建宏的方法。
◆本章节的主体教学方式、方法主体教学方式:多媒体教学和实践教学相结合◆本章节的思考题1.ArcGIS的全局变量Application和ThisDocument的作用?◆本章节的程序实践要求:1.上机实习VBA开发:打开一个文档2.上机实习VBA开发:添加一个“Tool”风格的工具(图形放大)3.上机实习VBA开发:定制状态栏4.上机实习VBA开发:定制浮动窗口(DockableWindow)第四章ArcEngine的控件◆本章节的主要内容一、常用控件简介二、MapControl控件1.MapControl控件的接口介绍2.MapControl控件与MxD文件3.鼠标与控件的交互4.数据选择5.鹰眼程序三、PageLayoutControl控件1.控件简介2.PageLayoutControl操作MXD文件3.PageLayout控件与Map控件联动4.在PageLayout里面绘制要素5.绘制MapSurround对象6.将版式保存为文件四、TocControl控件1.控件简介2.控件成员及函数3.控件的事件五、ToolBarControl控件1.控件简介2.控件的事件3.控件的属性修改4.控件内嵌的命令、菜单、工具5.控件中AddItem命令的参数意义6.在ToolBar上右击显示Customize对话框,添加工具按钮7.ToolBarMenus的使用➢在MapControl上,右击弹出上下文菜单ToolBarMenus➢在TocControl上,右击弹出上下文菜单ToolBarMenus 六、三维控件1.三维控件简介2.SceneControl3.GlobeControl4.SceneControl 与GlobeControl的不同与联系5.三维控件的基本功能实现➢3D 控件中打开文档操作➢3D 控件的事件➢设置垂直放大因子◆本章节的教学目的及要求目的:通过本章节的学习使学生了解ArcEngine中常用控件的功能、接口和方法,并掌握如何使用MapControl,PageLayoutControl,TocControl,ToolBarControl 控件进行系统开发。
要求:使学生学会利用MapControl,PageLayoutControl,TocControl,ToolBarControl 控件提供的各种接口和方法,搭建一简单的GIS原型系统。
课时:6个课时◆本章节的教学重点、教学难点重点:MapControl控件打开MxD文件的多种方法鹰眼程序的实现PageLayoutControl操作MXD文件PageLayout控件与Map控件联动TocControl的事件ToolBarControl控件内嵌的命令、菜单、工具ToolBar上右击显示Customize对话框的代码上下文菜单ToolBarMenus的使用SceneControl 与GlobeControl的不同与联系三维控件的基本代码示例。
难点:MapControl控件打开MxD文件的多种方法鹰眼程序的实现PageLayout控件与Map控件联动上下文菜单ToolBarMenus的使用SceneControl 与GlobeControl的不同与联系◆本章节的主体教学方式、方法主体教学方式:多媒体教学和实践教学相结合◆本章节的程序实践要求:1.上机实习:利用ArcEngine的控件,进行系统界面搭建2.上机实习课本中的MapControl的每一个实例(打开mxd文件,鹰眼程序等)3.上机实习课本中的PageLayOutControl的每一个实例4.上机实习课件中TOCControl控件的实例5.上机实习课件中ToolBarControl控件的实例6.上机实习课件中GlobalControl控件的实例7.上机实习课件中SenceControl控件的实例第五章地图是如何组成的◆本章节的主要内容一、M ap的双重身份1.Map简介2.Map类所实现的接口➢IMap接口:管理图层,图形要素(代码实例讲解)➢IGraphicsContrainer接口:管理图形元素(代码实例讲解)➢IActiveView接口:负责图形的显示(代码实例讲解)➢其他接口二、数据以层划分—Layer1.图层对象的ILayer 接口2.要素图层FeatureLayer的使用➢IFeatureLayer接口管理要素图层的数据源(代码实例讲解)➢IGeoFeatureLayer接口负责要素的显示属性,例如要素的着色和标准等功能➢IGeoDataset接口管理地理要素集,仅提供两个属性Extent SpatialReference ➢IFeatureSelection接口负责管理一个图层中要素选择集的方法和属性(代码实例讲解)➢IFeatureLayerDefinition接口定义一个新的图层。
利用CreateSelectionLayer方法,将已有图层中选择集中的要素转换为一个新的图层(代码实例讲解)➢ILayerFields接口可以获得要素图层的字段情况➢IIdentify接口获得图层中单个要素的属性的捷径方法(代码实例讲解)3.往地图中加入CAD文件➢以矢量数据的方式加载(代码实例讲解)➢以栅格数据方式加载,作为背景图层使用(代码实例讲解)4.TIN图层--显示三维信息三、地图显示的幕后人—ScreenDisplay对象1.ScreenDisplay常用的接口方法和属性2.ScreenDisplay对象——绘制线符号实例四、E lement对象—可显示的和不可显示的图形1.图形元素(Graphic Element)GroupElement,MarkerElement,LineElement,TextElement2.创建各图形元素(代码实例讲解)◆本章节的教学目的及要求目的:通过本章节的学习使学生了解ArcEngine中地图是如何组成的,掌握构成地图的Map,Layer类相应的接口,方法,属性,以及地图显示ScreenDisplay类和元素 Element类的相关接口方法。