基于PDA的GIS动态地理信息交互系统架构设计
来源:岁月联盟
时间:2010-08-30
0 引言
移动地理信息系统是GIS在嵌入式的系统基础上面向专业领域的应用拓展,它利用今天机领域最前大的趋势:移动计算和无线通信技术,改变地理信息的处理方式,并且与地理信息服务紧密联系在一起,是技术、信息、服务的集成。 已有的移动地理信息系统通常基于LBS(Location Based Service)技术,能够给人们基于定位信息的丰富的其他相关信息,此类系统服务全面,但是仍然难以满足所有用户的需要,在一些特殊场合,基于保密通信和安全性的考虑,更需要一种适应于自定义的、可以实时响应控制台的命令的系统,该系统由使用方可以轻松定制,并且具有自定义的保密服务功能。 Windows Mobile是一个开放的移动设备操作系统,同时也是最佳的行业应用平台之一,具有良好的平台扩展性,可以与微软的各种服务器产品结合来构建各种消息方案和移动平台。同时又拥有强大的安全架构支持和远程强制IT策略。Microsoft .NET Compact Framework的出现,又使应用程序具有良好的安全性和可移植性,同时也给开发带来了高效性。 本文针对自定义的保密通信GIS系统的需要提出了一种基于Windows Mobile的实时动态交互系统架构。1 相关技术简介
1.1 Web Services
Web服务是一个可以用URI来标志的软件系统,它采用XML格式的信息来定义和描述对外的公共接口和绑定,通过标准的HTTP协议来传输数据,可以方便的跨越Intranet或者Internet网段,通过适当的配置还可以使访问轻易的穿透防火墙。由于Web Services通常设计为面向服务的接口,所以只需要向其发送命令来完成某一项服务的请求,就可以很方便地来访问远程服务器上提供的各种封装好的服务,来获取数据或向服务器提交数据。由于Windows Mobile的存储能力有限和它的移动性,往往需要通过访问服务器来获取和同步最新的数据,而在Windows Mobile程序中通过Web Service可以很方便的获取数据和结构化的数据集。1.2 WEP
WEP(Wired Equivalent Privacy),即有线对等加密,是对在两台设备间无线传输的数据进行加密的方式,用以防止非法用户窃听或侵入无线。该技术使用RC4算法来加密数据包,RC4是一个同步流式对称加密系统,由一个密钥流生成算法来生成密钥流,然后与明文进行异或得到秘文,使用相同的密钥流,再对秘文进行一次异或,即可以得到明文信息。由于该算法使用了一种状态数组和密钥调度算法来模仿随即的密钥调用,所以使预测用来加密明文的密钥比较困难,从而保护了密钥。1.3 SQL Mobile
SQL Mobile是微软公司为Windows CE、Pocket PC等移动设备提供的关系型数据库产品,以前被称作SQL Server CE,SQL Server 2005 Mobile Edition推出时改为 SQL Mobile。 SQL Mobile主要包括设备端与服务器端两个部分。SQL Mobile的设备端是运行于Windows CE设备上的,包括SQL Mobile数据库文件、数据库引擎以及SQL Mobile Client Agent等。其中SQL Mobile数据库是以文件的形式存储在Windows CE设备上的,数据库文件的扩展名为sdf。一个sdf文件中包括一个完整的数据库,其中包含多张数据表和其他数据信息。1.4 GIS.NET
美国Geoframeworks公司基于.net平台的GIS类库,支持桌面和Pocket PC两种运行平台,其中的地图组件可以加载ESRI的Shape标准格式的地图,还支持多种辅助信息图层的加载和显示。2 系统架构设计方案
2.1 地图模块整体架构
利用GIS.NET的Map组件,可以加载后缀名为.shp和.dbf格式的ESRI标准格式的地图文件,分别生成空间位置图层ShapeLayer和属性信息图层AnnotationLayer。其他辅助信息图层主要有:经纬网络层(GridLayer):该图层负责给地图加载经纬网络,可以控制网格的疏密程度。符号标记图层(AdornmentLayer):该图层负责给地图上面的相关位置加载具有一定意义的图标,使得位置的显示更易于用户的理解。 卫星图像图层(ImageLayer):该图层负责将拍摄的卫星图片转换成位图信息并基于给定的坐标表示范围嵌入到指定的地图中,从而实现地图的匹配和配准。 基于GIS.NET的图层创建机制,可以创建自定义图层,其为包含一系列动态的数据元素和对象的动态信息图层组,通过与SQL Mobile进行交互实现图层内建对象的位置和属性的更新,其与静态图层和辅助图层自下而上存在于地图组件中。自定义图层可以克服原地图组件只加载和显示静态图层的缺点,极大的提高了对动态地理对象的处理的灵活性,从而为该系统对动态地理元素之间的协作分析提供了可能。2.2 动态信息图层组内部架构:
动态信息图层组的内部架构如下图所示: 下面自上而下对动态信息图层组的元素进行分析:GPSPositionLayer : 基于PDA客户端的GPS位置信息显示图层,可以将GPS接收机中获取的实时的经纬度坐标以图标的形式显示在该图层上,并且当GPS位置信息改变的时候,对该位置的显示进行同步更新。 NetPositionLayer : 当一组人员使用PDA执行任务的时候,PDA之间的信息传递与交互就显得非常重要,该图层的数据通过无线传递并且实时更新SQL Mobile的记录,从而获取其他PDA用户的位置信息,并一同显示该图层上面,进而构建了一个动态的网络拓扑结构,PDA使用者可以同时看到自己的同伴的位置与自己的当前位置的空间关系。2.3 自定义图层的实现
GIS.NET中的地图组件相当于图层的容器,对于每一类型的图层都是对Layer类继承实现的,Layer类定义了图层这一对象包含的成员变量、属性、方法和事件。图层设计的基本思想就是绘图操作,即根据不同的图层功能设计不同的图形显示方案,绘图的操作主要基于GDI的方法进行完成,以动态路线显示图层为例给出示意代码,动态的实现效果主要是当SQL Mobile的相关记录项的改变时,通过触发器来通知相关的图层,并且实时更新图层内部绘图所用的数据和对象属性:public class DynamicRouteLayer : Layer{ //构造函数、图层属性、定义成员变量部分的代码 protected override void OnRender(WorldGraphics g) {//当地图组件放大和缩小时候,引起图层内部的绘图操作for (int i = 0; i < countSegment;i++) this.DrawGridLine(g, i.ToString(), segment[i]); } private void DrawGridLine(WorldGraphics g, string labelText, Segment line){g.DrawLine(this._pen, line);//具体绘图函数}}2.4 地图动态元素分析例程的实现
地图动态元素的的分析例程主要进行对地图动态元素进行空间和时间上的分析和预测,然后将结果提交给动态分析显示层,具体流程如下:其中拓扑分析算法主要进行点线面元素的空间位置关系的分析,时间分析算法主要进行瞬时速度以及目标的存在时间的分析,趋势分析算法基于当前的任务目标以向导的方式给以提示,不同的算法的实现取决于系统的设计需求。这类算法目前都已有比较成熟的实现,这里不在一一详述。