当前位置:首页>> >>


基于ArcGISEngine的基础地理信息系统设计与实现.rar

收藏

资源目录
    文档预览:
    编号:20180915222315127    类型:共享资源    大小:124.48KB    格式:RAR    上传时间:2018-09-15
    尺寸:148x200像素    分辨率:72dpi   颜色:RGB    工具:   
    20
    金币
    关 键 词:
    基于 ArcGISEngine 基础 地理信息系统 设计 实现
    资源描述:
    目 录摘要 ....................................................(1)0引言 ...................................................(1)1 GIS简介 ..............................................(1)2 组件式 GIS............................................(2)2.1 组件技术的引入 ............................................(2)2.2 组件式 GIS.................................................(3)3 地理信息系统的开发模式 ................................(5)4 ArcGISEngine简介 ....................................(5)5 .NET介绍 ..............................................(6)6 基础地理信息系统总体设计 ..............................(7)6.1 系统目标与功能 .............................................(7)6.2 系统的数据库设计 ...........................................(9)7 系统功能实现示例 .....................................(9)7.1 查询功能的实现 ............................................(9)7.2 缓冲区功能的实现 .........................................(11)7.3 注记功能的实现 ...........................................(13)8 结语 ................................................(14)参考文献 ...............................................(15)Abstract..................................................................................................(16)第 1 页 (共 16 页)基于 ArcGIS Engine的基础地理信息系统设计与实现作 者:冀春艳指导教师: 李 丹摘要:以信息科学和技术为代表的当代高新技术的发展,正在影响着一个国家和地区产业与经济的发展,地理信息科学与技术是其重要的体现,并且正在向智能化的方向发展。地理信息系统是由计算机硬件、软件等组成的系统,该系统用于支持空间数据的采集、管理、处理、分析、建模和显示,以便解决复杂的规划和管理问题。随着计算机软件的不断发展,对地理信息系统的开发方法也越来越多样化,而基于组件式 GIS 的开发是当今时代的潮流。本文主要介绍了基于 COM 技术的 ArcGIS Engine 开发平台对于基础地理信息系统的设计与实现。首先介绍了研究背景与其意义,接着论述了组件式 GIS 的引入及其与传统 GIS 相比所具有的优点,并对 ArcGIS Engine 二次开发工具进行了详细的介绍了,然后论述了基础地理信息系统的总体设计,并对部分系统功能进行了示例实现,从而体现了 ArcGIS Engine 强大的地理信息系统开发能力。关键词:GIS;基础地理信息系统;组件技术;ArcGIS Engine引言地理信息系统已经广泛应用于众多领域,为各行业提供了高效的空间信息处理能力和强大的决策支持服务。这就需要 GIS 开发人员构建专业且易于使用的 GIS 软件,不仅要有通用的 GIS 功能和专业领域功能,还要有友好的交互式操作,从底层开始构建这些专业系统,不仅耗费时间,而且增加软件的开发成本。组件式 GIS 把GIS 技术同嵌入式技术融合在一起,形成嵌入式地理空间集成平台,是 GIS 研究的重要趋势和 GIS 产业发展的方向之一。ArcEngine 是ArcGIS Engine 的简称,是 ESRI 公司开发的一组完备且可以打包的嵌入式 GIS 组件库。开发人员可以在应用程序中创建或扩展 GIS 的功能,自定义专业产品。因此在通用的开发平台下嵌入 GIS 功能,能很好的满足广大 GIS 用户的需求。1 GIS 简介地理信息系统(Geographic Information System 或Geo-Information system,GIS)有时又称为“地学信息系统”或第 2 页 (共 16 页)“资源与环境信息系统” 。它是一种特定的十分重要的空间信息系统。它是在计算机硬、软件系统支持下,对整个或部分地球表层(包括大气层)空间中的有关地理分布数据进行采集、储存、管理、运算、分析、显示和描述的技术系统。地理信息系统处理、管理的对象是多种地理实体、地理现象数据及其空间关系数据,包括空间定位数据、图形数据、遥感图像数据、属性数据等,用于分析和处理在一点地理区域内分布的地理实体、现象及过程,解决复杂的规划、决策和管理问题。简言之,地理信息系统是对空间数据进行采集、编辑、存储、分析和输出的计算机信息系统。地理信息有多种来源和不同特点,地理信息系统要具有对各种信息处理的功能。2 组件式 GIS2.1 组件技术的引入GIS 软件技术的发展历程为:GIS 模块↓集成式 GIS↓ 模块化 GIS↓ 核心式 GIS↙↘ 组件式 GIS WebGIS图 1 GIS 软件发展历程在 GIS 技术发展的早期,由于受到技术的限制,GIS 软件往往只能满足于某些功能要求的一些模块,没有形成完整的系统,而且第 3 页 (共 16 页)各个模块之间不具备协同工作的能力。随着理论和技术的发展,各种 GIS 模块开始集成,并形成了大型 GIS 软件包,即集成式 GIS 出现,这是 GIS 发展的一个重要里程碑。它集成了 GIS 的各项功能,形成了独立完整的系统,不过由于系统复杂,庞大,从而导致成本高,难以与其他应用或系统集成。随后又出现了模块化 GIS,它把GIS 按照功能划分为一系列模块,运用于统一的基础环境之上。模块化 GIS 具有强大的工程针对性,便于开发和应用,用户可以根据需要选择模块,但是集成式 GIS 和模块式 GIS 都存在这样一个缺点:它难于管理信息系统以及专业应用模块集成高效,无缝的 GIS 应用。为克服这个缺点,就提出了核心式 GIS 的概念。这种 GIS 设计为操作系统的基本扩展,例如在 Windows 操作系统上的核心式 GIS,它提供了一系列的动态链接库(DLL) ,以便开发时采用现有的高级编程语言,通过应用接口程序(API)访问内核所提供的 GIS 功能。但是,核心式 GIS 提供的组件过于底层,在开发时增加了一定的难度,同时也不适应可视化程序设计的潮流。随着计算机软件技术的发展,GIS 组件化发展到了一个全新的阶段,组件式 GIS 应时而生。2.2 组件式 GIS 组件式 GIS(COMGIS)的基本思想是把 GIS 的各大功能模块根据性质划分为几个控件,每个控件完成不同的功能各个 GIS 控件之间,以及 GIS 控件与其他非 GIS 控件之间,可以方便的通过面向对象的可视化的软件按开发工具集成起来,形成最终的 GIS 应用。控件就如同一堆各式各样的积木,他们分别实现不同的功能(包括 GIS 和非 GIS 功能) ,根据需要把实现各种功能的“积木”搭建起来,就构成了应用系统。它是基于组件对象平台,以一组具有某种标准通信接口,允许跨语言应用的组件,同传统的 GIS 相比较,它具有以下特点:1) 小巧灵活、价格便宜由于传统 GIS 结构的封闭性,往往使得软件本身变得越来越庞大,不同系统的交互性差,系统的开发难度大。在组件模型下,各组件都集中地实现与自己最紧密相关的系统功能,用户可以根据实际需要选择所需控件,最大限度地降低了用户的经济负担。。组件第 4 页 (共 16 页)化的 GIS 平台集中提供空间数据管理能力,并且能以灵活的方式与数据库系统连接。在保证功能的前提下,系统表现得小巧灵活,而其价格仅是传统 GIS 开发工具的十分之一,甚至更少。这样,用户便能以较好的性能价格比获得或开发 GIS 应用系统。2) 无须专门 GIS 开发语言,直接嵌入 MIS 开发工具传统 GIS 往往具有独立的二次开发语言,对用户和应用开发者而言存在学习上的负担。而且使用系统所提供的二次开发语言,开发往往受到限制,难以处理复杂问题。而组件式 GIS 建立在严格的标准之上,不需要额外的 GIS 二次开发语言,只需实现 GIS 的基本功能函数,按照 Microsoft 的 ActiveX 控件标准开发接口。这有利于减轻 GIS 软件开发者的负担,而且增强了 GIS 软件的可扩展性。GIS 应用开发者,不必掌握额外的 GIS 开发语言,只需熟悉基于Windows 平台的通用集成开发环境,以及 GIS 各个控件的属性、方法和事件,就可以完成应用系统的开发和集成。目前,可供选择的开发环境很多,如 Visual C++、Visual Basic、Visual FoxPro、Borland C++、Delphi、C++ Builder 以及 Power Builder等都可直接成为 GIS 或 GMIS 的优秀开发工具,它们各自的优点都能够得到充分发挥。这与传统 GIS 专门性开发环境相比,是一种质的飞跃。3) 强大的 GIS 功能新的 GIS 组件都是基于 32 位系统平台的,采用 InProc 直接调用形式,所以无论是管理大数据的能力还是处理速度方面均不比传统 GIS 软件逊色。小小的 GIS 组件完全能提供拼接、裁剪、叠合、缓冲区等空间处理能力和丰富的空间查询与分析能力。4) 开发简捷由于 GIS 组件可以直接嵌入 MIS 开发工具中,对于广大开发人员来讲,就可以自由选用他们熟悉的开发工具。而且,GIS 组件提供的 API 形式非常接近 MIS 工具的模式,开发人员可以像管理数据库表一样熟练地管理地图等空间数据,无须对开发人员进行特殊的培训。在 GIS 或 GMIS 的开发过程中,开发人员的素质与熟练程度是第 5 页 (共 16 页)十分重要的因素。这将使大量的 MIS 开发人员能够较快地过渡到GIS 或 GMIS 的开发工作中,从而大大加速 GIS 的发展。5) 更加大众化组件式技术已经成为业界标准,用户可以象使用其他 ActiveX控件一样使用 GIS 控件,使非专业的普通用户也能够开发和集成GIS 应用系统,推动了 GIS 大众化进程。组件式 GIS 的出现使 GIS不仅是专家们的专业分析工具,同时也成为普通用户对地理相关数据进行管理的的可视化工具。总之,组件式 GIS 是通过对象、属性、方法和事件进行交互。空间对象的相互关系,几何对象之间的集成关系,对象间的组成关系,对象之间的逻辑上的关联关系等,只要了解清楚了 ComGIS 内存对象之间的关系和基本概念利用已知熟悉的任何一门面向对象的可视化开发工具,两者结合,就可以开发出功能强大的 GIS 应用系统。3 地理信息系统的开发模式目前常用的 GIS 开发模式主要有三种:独立开发,单纯二次开发,集成二次开发。由于独立开发难度太大,单纯二次开发受 GIS工具提供的编程语言的限制,效果不理想,因此,结合 GIS 工具软件与当今可视化开发语言的集成二次开发方式就成为 GIS 应用开发的主流方式。优点是既可以充分利用 GIS 工具软件对空间数据的管理,分析功能,又可以利用其它可视化开发语言具有的高效,方便等编程优点,集二者之所长,不仅能大大提高应用开发效率,而且使用可视化软件开发工具开发出来的应用程序具有更好的外观效果更强大的数据库功能、可靠性好、易于移植、便于维护,尤其是以COM 技术利用 GIS 功能组件进行集成开发,更能表现出这些优势。不过这种方法唯一的缺点是前期投入比较大,需要同时购买 GIS 工具软件和可视化编程软件,但“工欲善其事必先利其器”,这种投资非常值得。4 ArcGISEngine 简介ArcEngine 组件产品发布之前,ESRI 公司提供的是 ArcObjects第 6 页 (共 16 页)公用组件库,它是基于 Microsoft COM 技术开发的一套 COM 组件对象集,是专门为开发人员提供的二次开发组件。该组件集提供来了几乎全部的底层 GIS 功能,就连 ArcGIS 软件本身都是使用ArcObjects 的组件开发出来的。但是使用 ArcObjects 开发时,需要依附于 ArcGIS 平台,开发人员只有在安装了 ArcGIS 产品以后,才能利用其提供的组件对象进行开发。ArcEngine 提取了 ArcObjects 组件库中的核心功能,对ArcObjects 中的大部分接口、类、库进行封装所构成嵌入式组件。ArcEngine 中的组件接口、方法、属性与 ArcObjects 是相同的。ArcEngine 是独立的嵌入式开发平台,开发人员无需 ArcGIS Desktop 支持;其具备灵活、速快的开发和功能扩展能力,功能完善,稳定性较好。无论是 ArcEngine 还是 ArcObjects 都具有面向对象的特性,他们都支持类、对象、继承等面向对象的特性。同时类下面还定义了不同的接口,接口中包含了不同的方法和属性,接口之间有接口查询和接口继承。例如接口查询就是从对象的一个接口查询到另一个接口定义的属性和方法。而要满足两个接口之间可以进行接口查询,条件是他们要同属于一个类。本论文以全国某一时期采集的基础地理数据为基础,采用.NET 为开发平台,实现了 GIS 基础信息系统开发,探讨了基于 ArcEngine 的基础地理信息系统的基本原理和系统功能的实现过程。5 .NET 介绍.NET 是 Microsoft XML Web services 平台。XML Web services 允许应用程序通过 Internet 进行通讯和共享数据,而不管所采用的是哪种操作系统、设备或编程语言。Microsoft .NET 平台提供创建 XML Web services 并将这些服务集成在一起之所需。对个人用户的好处是无缝的、吸引人的体验。.NET Framework 是由微软开发,一个致力于敏捷软件开发(Agile software development)、快速应用开发(Rapid application development)、平台无关性和网络透明化的软件开发平台。NET 包含许多有助于互联网和内部网应用迅捷开发的技术。.NET 框架是微第 7 页 (共 16 页)软公司继 Windows DNA 之后的新开发平台。.NET 框架是以一种采用系统虚拟机运行的编程平台,以通用语言运行库(Common Language Runtime)为基础,支持多种语言(C#、VB.NET、C++、Python 等)的开发。.NET 也为应用程序接口(API)提供了新功能和开发工具。这些革新使得程序设计员可以同时进行 Windows 应用软件和网络应用软件以及组件和服务(web 服务)的开发。.NET 提供了一个新的反射性的且面向对象程序设计编程接口。.NET 设计得足够通用化从而使许多不同高级语言都得以被汇集。6 基础地理信息系统总体设计6.1 系统目标与功能系统的目标是开发出一个区域基础地理信息查询及制图的系统,系统的开发采用了 c/s 模式。.NET 平台下,C#是作为第一语言,集中了所有关于软件开发和软件工程的所有最新成果,且与 ArcEngine 有很好的兼容性,因此本系统采用 C#语言进行基于 ArcEngine 的二次开发。系统具有以下功能:1) 数据编辑与入库;提供数据预处理,数据入库功能,并提供数据编辑,入库的回滚功能。提供一定的数据质量检查,包括数据一致性、数据的完整性检查等功能。这些检查渗透在编辑、入库等具体操作中,保证入库数据的有效性。同时,实现多种数据更新方式,包括按图层、图幅更新数据等。本功能还实现了数据的输出接口,可以实现与外部系统数据的共享。2)查询分析功能查询分析子模块主要负责对数据进行各种查询与分析工作。具体功能包括:属性查询,实体查询(点,线,矩形,任意多边形),简单查询,条件查询、空间查询、距离量测、面积量测。运行条件:必须设置可查询图层,即在进行数据查询前必须设置你要查询的对象可能所在的图层,没有被设置的图层不允许进行数据查询,即图层必须可见。3)制图输出功能第 8 页 (共 16 页)本功能主要负责将主界面的图,按照三种不同的方式进行输出:标准图幅的输出、屏幕可见区图的输出、包括可见区的完整图幅输出,在输出界面进行地图的整饰,达到标准的输出效果。输出子模块功能包括:添加相应的制图输出要素,有模板、图例、指北针、文字,图片等,对显示的地图进行整饰。页面设置,主要是按照打印机的纸张进行页面设置。4) 视图管理功能主要包括常用的图形视图操作的功能,如放大、缩小、全图、全屏显示,按照图层范围显示,按照数据单元范围显示,视图漫游等基本功能。另外包括系统部分数据视图和窗口的管理功能。5) 元数据管理城市基础地理数据库元数据根据数据库的更新进行更新,本模块在不影响整体系统稳定性的基础上,实现元数据的录入、编辑和检索功能,并能根据需要对元数据进行合并、导入、导出等功能。6) 用户管理用户管理实现对登录系统用户的基础管理工作。包括增加用户、注销用户、修改用户权限等。系统对登陆的用户有严格而完整的权限控制机制。用户权限建立在操作系统和数据库管理系统之上,系统可以根据具体的操作模块和功能进行权限设置,同时针对数据的读、写、修改、删除进行严格权限控制,并提供日志管理功能,及时跟踪用户对数据的使用情况,防止用户对系统数据的非法利用,便于系统维护。基础地理信息系统第 9 页 (共 16 页)数据的编辑与入库数据的查询与分析制图输出功能视图管理功能元数据管理用户管理图 2 系统功能模块图6.2 系统的数据库设计数据库是基于 GIS 的各种应用系统的核心组成部分。本系统采用 GeoDataBase 来统一管理空间数据和属性数据。GeoDataBase 是第三代数据库,其最大的特点就是一个基于面向对象型的关系数据库。图层数据主要是以 FeatureClass 的形式存储在 GeoDataBase 中,而图层的分类依据是根据其几何形状分为 point,polyline,polygon这三种类型;要素的其他属性信息则由其代表的现实地物的基本信息来确定,这些基本信息是用户比较关心的信息。如人口,面积等。7 系统功能实现示例系统采用了用户熟悉的 Windows 界面风格,运用对话框,工具条等操作方式,利用.NET 的图形用户界面设置成适合专业使用的用户界面。以以下几个功能为例:7.1 查询功能的实现查询功能包括属性查询和空间查询。属性查询是通过设置属性字段的条件,获得符合条件的要素,并在图层中闪烁,高亮显示;该查询主要用到 IQueryFilter 等接口,而空间查询分为点击查询,
    展开阅读全文
    1
      金牌文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:基于ArcGISEngine的基础地理信息系统设计与实现.rar
    链接地址:http://www.gold-doc.com/p-185888.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服客服 - 联系我们
    copyright@ 2014-2018 金牌文库网站版权所有
    经营许可证编号:浙ICP备15046084号-3
    收起
    展开