基于PDA的GIS系统研究与开发

时间:2022-07-29 11:36:11

基于PDA的GIS系统研究与开发

[摘 要]本文首先介绍了使用移动终端的GIS系统的开发环境,然后介绍了系统的功能设计和数据库设计,并就开发过程中关键的三个部分――通信编程、地图绘制、路径选择进行了详细分析。

[关键词]GIS系统 研究 开发

中图分类号:TP311.52 文献标识码:A 文章编号:1009-914X(2014)07-0314-01

引言

手机、平板电脑等移动终端设备,近年来发展迅猛,移动终端已经成为网络浏览的一种新趋势,因此,选用PDA作为移动GIS系统的终端,在掌上电脑上安装嵌入式的Windows CE操作系统。这一系统环境可以实现数据的计算和管理工作,并可以通过无线信号接入网络,符合移动式GIS系统平台的功能要求。本文在此开发环境下,通过研究符合PDA使用要求的GIS系统的实现过程,分析了系统的功能设计和数据库设计,例如:GIS地图的绘制、浏览和信息查询等。并就开发过程中的三大关键问题――通信编程、地图绘制、路径选择进行了详细分析。

1.系统开发环境

操作系统选用Windows CE。该系统是32位的嵌入式操纵系统,Windows CE与处理器无关,采用Unicode字符集。它的兼容性和拓展性都非常优秀,支持网络功能和各类外设,键盘、触摸屏、串并口、打印机、USB、PCMCIA卡等都能支持。在编程上Windows CE支持ATL和MFC,但不支持STL。开发内存的选择上,PDA的内存比台式机低,一般是ROM×RAM(32×32M)。

在开发工具包上,选择了eMbedded VC++、Windows CE Platform SDK软件包、Windows CE Service软件包、Windows2000工具包、Office2000工具包、Visual Studio工具包和ActiveSync 3.1。

2.系统设计

(1)功能设计

有一部分GIS系统用户需要随时随地通过系统了解定位信息,移动终端的发展帮助我们有机会实现这一需求。 如图1所示,用户可以通过PDA上的操作界面,将 MIF、 SHP 、 DXF等格式的数据转换为系统所要求的格式。然后对数据进行处理,并以地图的形式表现出来。系统的功能包括绘制地图、修改地图中的信息,浏览地图、查询地图中的信息和测距分析。

其中绘制地图功能包括:绘制矢量元素和地理要素,例如:点、线、圆、方等基本几何图形和道路、建筑物等地图元素。本系统中的绘制地图,运用了图层的概念,不同的信息在不同的图层展现,最后叠加起来形成用户见到的地图。通过对图层的修改来编辑地图。修改的内容包括地图元素的添删改查,整体移动,元素的捕捉和复制等。另外为了方便用户编辑地图,系统中封装了很多基础操作类,包括水平线、竖直线、矩形框等等。最后,在地图的查询上提供信息双向查询等功能。

(2)数据库设计

GIS系统的数据主要是地图数据,例如各公司、医院、商铺、学校等信息点,还有道路、河流等地图元素。数据库设计使用了MapInfo的数据模型和access数据库相结合的方式,MapInfo数据模型中属性数据和空间数据的存储形式是分开的,属性数据的保存格式为.TAB和.DAT格式,空间数据的保存格式是系统自行设定的,两者通过ID相关联。

由于MapInfo的空间数据没有拓扑关系,因此为了建立道路的拓扑网络,我们采用了Arc-Node结构,它的优势在于可以简洁的展现道路网络拓扑关系。它的原理在于运用一些小段的直线表示曲折的道路,这些小段曲线就是所谓的Arc,而线的两端就是Node。

为了将系统中的地图元素信息保存下来,我们又利用了Access数据库。在系统中当本次无法完成所有测图工作时,将已测的信息保存,第二天,可以通过Access中的数据找到昨天完成的部分,继续测图工作,以保证地图的完整性。

3.关键技术开发

在本系统的开发过程中,采用了MapX Mobile开发工具,这是一个ActiveX控件,提供了一些放大、缩小等基本操作函数,通过对该控件进行配置,可以完成地图的显示和查看等功能,另外例如测距之类稍微复杂一些的功能可以通过编程开发来实现。在实现过程中主要存在三个难点,首先是通信编程,其次是地图绘制,最后是路径选择。

(1)通信编程

由于GIS系统对信息的及时性要求较高,所以需要采取多线程的通信方式,主线程需要完成打开串口通信资源、配置参数、数据实时接收、后台数据和前台数据的交互。其中串行口的通信类似于文件操作,例如:CreateFile()函数打开串行接口,ReadFile()和WriteFile()读写串行接口,CloseFile()关闭串行接口。

面对多线程可能造成的冲突问题,设计的过程中采用建立同步机制的方法来解决,同步机制包括使用等待函数来监测对象之间的同步;设置事件对象,将同步对象设置为有信号的同步对象、无信号的事件对象和销毁事件对象等。

在通信编程的实现中运用API函数对串口进行操作。实现方式包括查询方式和事件驱动方式。本系统选用了事件驱动方式来完成通信编程的工作。

在系统的通信过程中选用了全站仪,例如:索佳SET22D型号,它包括一个五针接口和九针的转接线,通过这个就能和PDA的九针通信线沟通,获得用于观测的距离信息、设备信息等数据。

(2)地图绘制

在绘制地图的开发上,采用了面向对象的设计方法,将图形元素封装成一个对象。并设计了点类、直线类、曲线类等基础对象。由这些基础类组成了道路、建筑物等等地图元素,因此保存地图元素时只需要保存这些类的数据就可以了,节约了存储资源和编码工作量。

实时绘图的设计是利用用户坐标系绘制的,首先要做的就是将PDA设备坐标转换成用户坐标。由于在PDA中设备坐标与逻辑坐标始终一致的。所以只需进行设备坐标与用户坐标的转换。在转换的过程中,由于用户坐标未变,只是改变设备坐标,因此可以完成地图的移动和缩放功能。

除了在系统中可以随时随地的查看地图、缩放地图外,还能够对地图进行修改操作。由于系统的设计上采用了面向对象的设计,因此只需要取得当前操作的对象,就能够对该对象进行删除或者移动操作。并且在地图绘制或者编辑的过程中,利用access数据库存放编辑操作的数据,以保证地图绘制的完整性。

(3)路径选择

系统会针对用户不同需求,采取不同的路径规划方案,例如最短路径规划,可以细分为最短“经济距离”、最短“物理距离”、最短“时间距离”,一般GIS系统会选用Dijkstra算法,对路径进行优化,但本系统并未如此。因为Dijkstra算法采用邻接矩阵的方式对路网进行优化,这在存储和效率上都不是最优方案。本文采用Arc-Node结构建立了路网,然后对该路网进行最短路径分析,这样可以保证系统的运行效率。

结语

通过本文对基于PDA的GIS系统进行分析,我们可以了解系统的开发环境、系统的功能设计和数据库设计,并了解本系统设计中遇到的困难,为同类系统的研究开发提供参考,但本系统的开发还存在一些不足之处,例如,系统是C/S结构,无法实现随时随地通过PDA浏览器访问,这不便于用户使用系统。在第二阶段的开发中,一定会注意改进,使得本系统在实际工作中更便于用户操作。

上一篇:班主任观念转变之我见 下一篇:荣华一矿选煤矿厂降低介耗的途径