欢迎来到天天文库
浏览记录
ID:21999970
大小:58.00 KB
页数:7页
时间:2018-10-26
《基于arcgis engine的gis软件开发方法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于ArcGISEngine的GIS软件开发方法一、引言由于GIS可以同时提供表征地理位置的图形信息和空间对象的属性信息,以及其独有的空间分析功能,目前已被广泛应用于测绘、遥感、国土、国防、资源、环境、交通、水利、电力、地质、农业、林业、城市规划与管理、生活信息服务等领域。GIS已经成为一项服务于信息化建设、生产、生活、科研的技术工具,如何快速、低成本地开发出满足应用需求的GIS系统已经引起GIS软件开发商、公司、企业及科研院所的关注。目前许多专业的GIS软件开发商都推出了自己的二次开发产品,如Esri公司先后推出了MapObject、ArcOb
2、jects和ArcGISEngine;MapInfo公司推出了MapX;国内的Su-perMap、MapGIS及GeoStar也都具备二次开发的功能。在二次开发平台选型中没有最好的,只有最合适的,各类产品都有自己的优势与劣势。但当前主流的二次开发产品还属于全球GIS行业的领头羊Esri公司的ArcGISEngine产品,它具有简洁、灵活、易用、可移植性强、开发成本低等优点,受到了GIS人员的喜爱。但由于ArcGISEngine开发方式多样、类库庞大、接口众多等原因,使得开发者很难在短期内掌握好,最终导致开发出的系统结构不合理、性能差、界面不美观等
3、。为此,本文基于以往多个GIS项目的开发经验以及对ArcGISEngine的深入研究,由浅入深地介绍了利用ArcGISEngine开发GIS软件的方法。希望给GIS同行们带来有益的借鉴作用。二、ArcGISEngine概述ArcGISEngine是美国Esri公司发布的一款GIS二次开发产品,它是目前GIS业界最为著名的组件式GIS开发产品。它是对ArcGISDesktop开发包ArcObjects组件集中的大部分接口、类、库进行封装后构成的独立的嵌入式组件,不依赖ArcGISDesk¬top桌面平台。它由两部分组成:面向开发人员的开发工具包Ar
4、cGISenginedeveloperkit和面向最终用户的运行时环境ArcGISengineruntime11。ArcGISEngine可以在不同开发语言环境(、.、Ja-va、C++)下开发,它提供了一系列可以在ArcGISDesktop框架之外使用的GIS组件和可视化控件,它包含20多个类库,比如Geometry、Display、Geodata¬base、System、Carto等,用户通过引用各个类库中的接口并配合控件的使用,可以方便地实现GIS功能,这使得开发者能够将精力集中到解决应用程序中的业务逻辑中,而不是从头开始开发GIS功能。开
5、发人员可以将定制的GIS功能嵌入到已有的应用软件中或创建自定义应用软件0。三、ArcGISEngine组件应用方法1.类库体系结构ArcGISEngine从功能层次上划分为以下五个部分:①基础服务:由GIS核心ArcObjects构成,几乎所有GIS应用程序都需要;②数据存取:对矢量和栅格数据进行存取;③地图表达:实现地图的标注、符号化及专题图的渲染;④地图分析:提供空间建模与分析功能;⑤开发者组件:用于开发应用程序的界面控件,如制图控件、3D控件、工具条、TOC等。针对不同方面的功能,ArcGISEngine提供了相图1中,System类库是A
6、rcGIS最底层的组件库,该类库包含为构成ArcGIS的其他类库提供服务的组件;SystemUI库包含用户界面组件接口定义,这些用户界面组件可以在ArcGISEngine中进行扩展,比如Imand和ITool;Geometry类库包含了核心几何对象,如点、线、多边形等,并且定义和实现坐标系统的空间参考对象;Display类库包含了支持向输出设备绘制符号的组件;Server类库包含允许用户连接并操作ArcGISServer的对象;Output类库用于创建图形输出到诸如打印机和绘图仪等设备,或以文件的方式导出,如导出为栅格图像格式(JPG、BMP等)
7、。Geodatabase类库为地理数据库提供了编程API,支持多种类型对象(如Feature、tables、-aplayers和renders可作用于所有支持的数据类型。Location类库包含了与位置数据操作相关的对象,位置数据可以是路径事件或地理编码位置;NetFile方法实例化一个对象来创建。上述三种类之间的关系有四种(如图2所示):①继承(inheritance):图中的空心三角箭头表示继承关系;②组成(position):图中的菱形表示组成关系;③关联(association):图中的线表示关联关系;④实例化(instantiation
8、):图中的虚线箭头表示实例化关系。接口定义了一个对象能做什么,它实现了一组功能的属性、方法及事件。ArcGISEngine中,一个接口由
此文档下载收益归作者所有