龙源期刊网 http://www.qikan.com.cn
基于MapX的GIS程序设计开发
作者:卢颖
来源:《中国科技博览》2013年第30期
摘要:根据有关GIS开发与设计的内容,简述MapX组件进行开发的过程,使用在VS2010开发平台之上利用MapX组件构造一个GIS应用系统,完成基本的地图载入、显示、漫游、图层管理、查询及其它功能。在对基于组件设计开发基本了解的情况下,进行GIS开发。大方面来讲是在VS2010平台下运用C#,并引用MapX组件进行编码实现一个简单的地图处理的一系列功能。
关键: MapX组件开发; VS应用; 数据显示; 数据查询 一、功能设计
对设计软件的功能进行描述,要求能够按照类别和层次画出功能模块层次图。
在完成基本功能基础上,也添加了自己独有的功能板块。所要构造的GIS应用系统实现的主要功能分为五个板块。
第一个板块为文件处理板块。包含了数据集的导入和保存、新建一个空图层、打开一个图层以及将文件输出为BMP格式。
第二个板块为数据基本处理板块。包含了对载入地图实现放大、缩小、漫游等基本操作,以及鹰眼设计。
第三个板块为图元处理板块。包括点元素、线元素以及面元素在指定图层中的添加,还有对长度以及面积的测量。
第四个板块为数据查询板块。包括图元的单个选择以及多个并选、全局数据的查询以及单个图层数据的查询。
第五个板块为专题地图的制作。主要是根据所选的属性对所选图层进行专题地图的制作。 根据数据的流向来分类,下面列出了一个较为系统的流程图以及功能设计和分类: 二、开发流程
考虑到功能实现所需要调用的方法、实现的难易度以及实现的大致结构框架等,将以上的功能进行归纳总结后,得到了以下的开发流程图。
龙源期刊网 http://www.qikan.com.cn
具体的程序开发流程如下: (一)创建工程
打开Microsoft Visual Studio2010,创建一个Visual C#的Windows窗体应用程序。并在创建的工程中,利用选择工具箱项来将事先安装的MapInfo MapX V5组件添加到工具箱中。在对话框中试着创建一个MapX窗体,若创建成功,则新建工程成功了。 (二)界面分布
根据所需实现的功能,来选择所需的控件,并拉拽到对话框中。对各个控件进行具有一定的美学以及实用价值的设计后,大致的界面框架就出来了。这里只是设计了一个主对话框,小的对话框会在后续的程序完善过程中,根据所要实现功能的需求进行创建。接下来的工作便是将这些空白的控件进行功能的实现。
大概分为几个大框架:菜单选项栏、图标栏、图层显示窗口、图层信息显示窗口、鹰眼窗口、被选择图元窗口、被选图元信息窗口以及信息显示栏。 (三)数据导入与输出、显示与管理功能以及数据绑定
数据的导入与输出应该是数据处理的最基本的功能。这里的数据导入与输出包含了数据集、图层的导入以及数据集的保存。而显示与管理功能包含了对于图层的放大、缩小、平移等基本操作以及鹰眼的实现。
在数据的导入的同时,需要对数据进行绑定过程,将图层中的数据进行导入,为下一步的查询做出准备。
对于鹰眼的开发过程,下面用流程图来进行具体的讲解: (四)空间分析、对象的编辑以及图层的管理、图元的选择
这一部分的内容包括距离与面积的测量,点、线、面的创建及图元的删除,以及新家空白图层。
在对距离与面积的测量过程中,首先调用的是划线以及画面工具,同时一步步记录鼠标所点击的位置,同时记录此时的距离或面积,在对话框下标出进行显示。 点线面的创建均是调用MapXLib自带函数,较为简便。
图元的选择功能是为了后面的查询功能做准备,主要是实现单个图元的高亮选择、矩形高亮选择图元以及圆形高亮选择图元。
龙源期刊网 http://www.qikan.com.cn
(五)图元的查询
在此程序中,图元的查询相较于其它来说较为复杂,并且做了一个图元选择的过滤功能,下图将画出图元查询的开发思想:
在查询功能实现的过程中由于对图层属性有所更改,所以,还应额外设置一个botton按钮,将设置更改会起始状态,以免造成难以恢复原始状态的局面。 (六)专题地图的制作
专题地图的制作首先需要获得所选的图层,再得到所选图层的属性信息,让操作者选择用何种属性来进行专题地图的制作,然后便是根据属性来进行分类以及图例的制作等了。 (七)功能以及界面的完善
在大致功能都实现以后,自行体验软件,了解软件的不足,并尽力加以改进。本着美观、实用的原则,将刚开始初略创建的整体布局加以修改,得到较为满意的结果。 个人简介:卢颖(1993-)女,汉族,湖北荆州人,武汉大学在读本科生。