李 光
(天津市测绘院,天津 300381)
全球卫星导航系统(global navigation satellite system,GNSS)提供了覆盖全球范围、全天候、高精度的定位导航服务,目前,随着GNSS技术、通信技术的发展和硬件成本的降低,基于GNSS的跟踪定位服务逐渐由特殊领域走向普通大众,被广泛应用于城市巡检作业监督、车辆调度、车辆导航定位等领域,成为空间位置服务(location based services,LBS)的重要内容之一,LBS是通过电信移动运营商的无线电通讯网络或外部定位方式(本文即GNSS)获取移动终端用户的位置信息,在地理信息系统(geographic information system,GIS)平台(本文即天地图)的支持下,为用户提供相应服务的一种增值业务,LBS业务需要提供两方面支持:基于GIS平台的实时定位和与位置相关的服务,由此可知,实现基于GIS平台的实时定位跟踪是LBS的关键所在。
因此,本文采用天地图提供的地图数据服务,开发了基于B/S(Browser/Server,即浏览器和服务器结构)模式的GNSS定位跟踪平台以及Windows CE手持终端下的客户端软件,客户端与定位跟踪服务平台之间采用通用分组无线服务技术(general packet radio service,GPRS)方式进行网络数据传输。
系统由B/S实时定位跟踪平台和手持终端两部分组成,逻辑架构图如图1所示。系统平台采用三层B/S结构,基于.NET技术开发系统应用平台,整个平台分为表示层、逻辑层和数据层;手持终端采用配有Windows CE操作系统的GNSS手持机。BS平台各部分功能作用如下所述:
表示层:用户直接操作的是界面表示层,即B/S平台中的Browser,用户的应用程序是一个通用的浏览器软件,通过该层不同层次的用户输入请求操作的参数,系统将处理的结果显示在浏览器界面,同时发布系统的公告通知等。
逻辑层:该层位于表示层和数据层之间,一是对各类数据请求进行相应的处理,管理系统用户信息;二是接受来自浏览器的请求,进行数据处理,地图操作,用户实时定位、跟踪;三是对历史轨迹查询,根据用户所有的跟踪定位点绘制规定时段内的轨迹图。
数据层:用来定义、维护、访问和更新数据,并管理和满足应用服务对数据的请求,该层负责解析业务逻辑层所发出的数据请求,执行相关的操作。
采用三层结构模式,使系统各层协调工作,具备了很高的稳定性、延展性和执行效率,并且便于维护和升级扩展。
图1 系统逻辑架构图
总体设计的目标是明确系统的总体架构和系统运作数据流,系统由三个子软件模块组成,包括运行于手持GNSS终端上的定位数据采集与发送软件、运行于服务器的数据接收软件和基于B/S模式的天地图跟踪平台,三者之间通过数据库联系起来。系统总体架构如图2所示。
手持GNSS终端软件需要实现的功能包括,GNSS定位功能,美国国家海洋电子协会(nation-al marine electronics associationNMEA 数据解码功能以及无线GPRS传输功能。本论文采用中海达Q5地理信息采集终端[2]作为实验的硬件平台,其采用的是Windows CE操作系统,因此本文手持GNSS终端软件基于此操作系统进行编写;数据库是系统的重要组成,是系统运行的纽带,终端实时用户将定位信息实时传回服务器入库,与此同时,内业天地图跟踪平台用户则通过浏览器实时向数据库请求手持终端定位数据,完成对手持终端的定位跟踪,因此设计高效、简洁的数据表至关重要;定位跟踪平台需要对手持GNSS终端进行实时跟踪,为了使得用户能够直观的了解终端的实时位置情况,本文设计天地图平台作为服务器窗口,用于展绘终端实时位置。该平台依托于国家地理信息公共服务平台 “天地图”,以天地图服务接口实现二次开发,该平台所有的地图操作、在线跟踪和历史轨迹查询都以天地图为地理底图。
图2 系统架构及数据流图
终端端软件从Windows CE手持机的COM串口读取NMEA0183格式的GNSS实时定位数据,进行解码得到终端的位置、速度、移动方向以及协调世界时(coordinated universal time,UTC)等信息,然后对部分有效信息进行自定义编码并通过GPRS发送至服务器;数据接收程序负责响应终端连接请求并接收解码终端回发的定位数据,将得到的用户信息、位置存入数据库;天地图跟踪平台则提供给浏览器端用户数据查询接口,实时从数据库读取用户位置并基于天地图实时位置展绘。
手持GNSS终端输出的是NMEA0183格式的定位数据,这是美国国家海洋电子协会为海用电子设备制定的标准格式,目前已成为GNSS导航设备统一的标准协议。NMEA数据标准有0180、0182和0183这三种,0183可以认为是前两种的升级,也是目前使用最为广泛的一种。NMEA0183协议采用ASCII码,其串行通信默认参数为:波特率4 800bit/s,数据位8bit,开始位1bit,停止位1bit,无奇偶校验。解码程序中使用Serial-Port类定义对象,用该对象打开终端串口,并读取COM端口输出的NMEA数据,根据NMEA数据结构,逐一提取系统所需定位信息。
如图2所示,在实际应用中,往往是多个GNSS终端同时在线,同时天地图跟中平台也会向系统服务器发出数据请求,为了实现所有请求实时数据处理,系统服务器必须对各个请求操作实现并行处理,本文引入多线程技术来实现这一过程。
在实现多测站观测数据并行解码的过程中,首先通过一个主线程对各个GNSS终端和天地图跟踪平台进行监听,一旦监听到终端向系统服务器发出的请求后,则为该外业终端开辟一个子线程,有多少外业终端请求就有多少个子线程同时工作,每一个子线程负责一个测站观测数据的解码计算过程,主线程负责以时间片为单位使处理器在多个子线程之间不断切换,直到所有测站的数据请求完成,最后结束主线程。由于处理器运行速度很快,因此几乎所有子线程都在同时运行,这样就实现了多个测站观测数据的并行解码,算法流程如图3所示。
图3 多线程技术实现流程图
以天地图为底图的跟踪平台采用B/S架构,传统Web应用程序工作模式是首先载入页面,然后,用户执行一定的操作,比如单击一个链接,在用户等待的时候,页面就将用户的动作提交到服务器端的程序那里处理,此时整个页面数据清空,用户处于等待状态,屏幕通常是一片空白,直到结果发送回来,Web应用程序重新载入整个页面。
图4为传统Web应用模式,这种传统的Web应用程序工作模式使得本文的实时监控平台运行速度变慢,用户体验降低,因为底图 “天地图”的数据量较大,需要一遍一遍的重复加载整个页面,这样就导致页面不变的数据也要重新加载显示,这些重复的数据给服务器、网络和客户端造成了很多额外负担,因此传统的Web工作模式并不适合本文设计的B/S监控平台,需要引入一种技术实现页面局部重新加载,实现地理底图之类数据量较大且一直不变的数据内容则保持不变,在页面与服务器的交互过程中,服务器仅仅返回部分变化的数据,浏览器接收到数据之后,进行局部更新显示即可。
图4 传统Web应用模式
图5 AJAX Web应用模式
如图5所示,AJAX Web应用模式,加入AJAX引擎的Web应用程序工作模式,每次用户操作之后,首先通过JavaScript脚本进入AJAX引擎,AJAX将请求以异步的方式发送给服务器,与此同时,浏览器端对支持用户继续使用,而不会出现空白等待服务器响应的状态。用户只更新页面中局部内容时,服务器将结果以XML数据格式返回浏览器,首先进入AJAX引擎,再利用后台JavaScript和CSS脚本更新页面内容,这样前台页面看起来保持原样,不会影响前台加载速度。
本文天地图定为跟踪平台每隔3s需要对数据库信息进行访问,并更新页面以达到实时跟踪的效果,页面刷新非常频繁,因此设计本文系统时引入了AJAX技术,主要应用于含有天地图加载的页面上,这样可以避免天地图数据的重复的刷新、加载。下面以实时监控功能模块为例,阐述AJAX技术如何在其中发挥作用的,整个页面的交互过程如图6。
图6 基于AJAX技术的监控页面交互流程图
图7 用户实时监控图
图8 用户轨迹查询
测试选地在山东某地,且底图采用 “天地图山东”API接口,手持终端采用中海达Q5接入系统。如图7所示,登陆天地图定位跟踪平台可以看到用户名为 “张三”的在线用户,从地图上能清晰的对终端位置进行实时定位,并且通过信息框的形式展示该用户的基本信息和实时经纬度,并且当终端移动时,地图上的标记每3s刷新一次,达到对用户的实时定位跟踪;平台同时可在线查询用户历史轨迹,如图8所示,选择用户名 “张三”并选择轨迹所在时间段点击查询,测试时候终端移动1次,也就是采集了两个点的位置信息,因此轨迹为一条直线,轨迹放大显示见图8。
随着天地图的推广与应用,基于天地图的位置服务将越来越多的被推向市场,无论是社交服务、团购服务还是专业测绘服务,这些基于天地图的位置服务功能首要问题都是解决基于天地图的实时定位跟踪,GNSS实时定位跟踪是位置服务系统的重要组成部分,是实现位置服务的基础。本文设计的系统整合了GNSS、天地图和GPRS技术,利用GPRS网络的数据传输功能实现手持GNSS终端和监控中心之间的通信,实现了内业平台用户对GNSS终端的实时定位跟踪;利用多线程技术实现多用户并行处理,保证系统能实时响应用户需求,测试表明,系统运行能够准确的对多个流动客户端进行位置监控,而且成本较低、结构简单、系统覆盖面广、使用维护费用低且可靠性较高,可拓展并广泛应用于天地图位置服务领域、物流车辆监控以及船舶导航调度等位置服务的诸多领域。
[1] 何婷婷,罗晓曙,廖志贤,等.基于 GPS&GPRS车辆实时监控系统的设计[J].现代电子技术,2011,34(17):193-195.
[2] 谭巧林,谭建军,刘俊.基于 GPS、GPRS和 GIS的远程医疗监护系统的设计与实现[J].测绘科学,2011,36(6):216-218.
[3] 黄光玉,沈占锋,骆剑承,等.车辆监控的信息管理系统设计及其关键技术分析[J].测绘科学,2007,32(1):100-102.
[4] 王继周,李成名.嵌入式移动 GIS研究[J].测绘科学,2005,30(4):48-50.
[5] 董星宏,和朝霞,段锋.“天地图”在地震行业中的应用初探[J].地震研究,2011,34(4):552-557.
[6] 钱德俊,张哲,胡晨.NMEA0183协议解析[J].电子器件,2007,30(2):698-701.
[7] 任保刚,陈波,王仁礼.用多线程实现GPS接收机与PDA在 Windows CE下的串口通信[J].测绘与空间地理信息,2005,28(4):57-60.
[8] 刘旭光.基于AJAX与JAVASCRIPT技术在网页中传递数据的实现[J].淮北煤炭师范学院学报:自然科学版,2010,31(1):51-55.