1 概述
随着3G业务在中国的全面铺开, 智能手机性能和用户群体的不断上升,将互联网强大的应用服务能力扩展到终端上,为用户随时随地的提供信息服务是社会信息化发展的必然趋势。GIS技术也由传统的基于单机应用向基于互联网应用做转变。随着智能手机的迅猛发展,智能手机平台将成为GIS技术互联网应用新的应用平台。
2 Android
Android 是基于Linux内核的操作系统,是Google 公司在2007 年11 月5 日公布的手机操作系统,早期由Google 开发,后由开放手持设备联盟(Open Handset Alliance)开发。它采用了软件堆层(software STack,又名以软件叠层)的架构,主要分为三部分。底层Linux内核只提供基本功能;其他的应用软件则由各公司自行开发,部分程序以Java 编写。目前Android SDK已发布了2.2 版本,与以往的版本相比,不管是功能上还是应用程序的执行运行速度上都做了大大的改进和提高。
3 车载监控管理平台的总体架构
车辆监控系统是由车载终端、数据中心、监控终端和地图服务器四个部分组成。车载终端把采集的GPS 定位信息和车辆状态信息通过GPRS 网络传给数据中心,并由数据中心保存该信息和转发给监控终端,监控终端得到信息后,结合地图服务器提供的地图信息进行显示,直观的展现监控车辆的当前状态,并下达指令给车载终端。(见图1)
图1 车载监控管理系统架构
3.1 车载终端
车载终端主要由GPS信号接收模块、数据处理模块和GPRS模块构成。GPS信号模块主要是接收来自定位卫星的GPS信号,数据处理模块采集GPS信号模块的GPS信号并定时通过GPRS模块向后台监控中心发送GPS定位数据实现实时监控。
3.2 数据中心
数据中心包括中心数据库、数据通讯服务两个部分。中心数据库存放GPS数据及其他的数据;数据通讯服务基于C/S 模式,主要功能是维护车载终端、监控终端与数据中心的连接,并承担车载终端数据与监控终端数据交互的桥梁。
3.3 监控终端
监控终端是利用智能手机(Android 智能手机)上的监控管理系统与数据中心服务器连接,接收车载终端转发数据,并下发控制指令。监控管理平台是C/S模式的应用程序,为用户提供一个基于地图的监控管理平台,包括车辆后台管理和车辆监控系统两个部分,车辆监控系统的主要功能包括电子地图服务、车辆实时监控跟踪、车辆历史轨迹回放、车辆围栏服务、报警处理模块等。具体设计见第4 节。
3.4 地图服务器
地图服务器在该系统中指的是Google 公司提供的地图服务器。监控终端利用Google Android 系统中自带的Google API 插件直接访问地图服务器,提供监控用户需要的电子地图,为用户的监控提供直观的可视化地理信息。
4 基于Android 的监控管理系统设计
基于Android 的监控管理主要包括监控和管理两大部分。管理是车辆相关信息的管理,包括驾驶员基本信息、车辆基本信息、用车记录、警报记录等;监控是以电子地图为显示方式对车辆进行监控,功能包括车辆位置实时跟踪、车辆历史轨迹回放、车辆围栏设置、报警信息处理等。以下重点主要是对基于地图的车辆监控设计进行讨论。
4.1 Google API 插件
Google API 插件是Android SDK 开发环境的扩展,通过该插件,Android 应用程序可以轻松地访问Google 服务和数据。该插件的核心功能是地图外部库,可以通过其将功能强大的地图功能添加到Android应用程序中。
4.2 车辆实时监控
用户在电子地图上实时监控车辆位置。本系统是通过Android 上的Google API 插件调用地图服务器栅格图像数据给予地图显示。(见图2)用户希望实时的监控车辆,并把其车辆位置信息显示在地图之上。首先需要用户选择车辆,向服务器发起实时监控请求,中心服务器在接收到车载终端发回的定位信息后,就转发给监控端。得到定位信息后,通过Google API 插件获取当前位置的相关地图并呈现在用户面前。整个过程是中心服务器和Google 地图服务器协同工作的结果,高效的把分布式网络资源整合在一起。
图2 车辆实时监控流程
4.3 历史轨迹回放
历史轨迹回是重现车辆某一段时间内的行驶情况,在地图上已点、线的形式表现出来。监控系统首先需要向中心服务器发起请求,请求某辆车某一时间段内的历史数据。中心服务器在接收到请求后从数据库中查询在这一段时间内的车辆历史数据,打包发给监控端。监控端再调用插件获取地图信息进行显示。(见图3)这里,中心服务器发回的历史数据可能不是车载终端某段时间内的所有数据。在请求的某段时间内,车辆可能停留在某一位置或者在一个较小的范围活动,此时监控终端就没有必要把这段的数据全部显示出来,只需把这些点当做一个位置显示出来即可,避免了历史轨迹回放时,车辆终端停留在电子地图某一位置过长时间,给用户“死机”的假象,提高了用户的直观感受,也减少了中心服务器与监控端之间数据传输。
图3 历史轨迹回放流程
值得注意的是当历史数据过多时,监控端接收数据时需要较长的传输时间,为了避免用户过多的等待,中心数据服务器可以把数据分包分批发送,让监控端一边接收数据,一边显示数据,采用异步进行的方式,从而提高系统的工作效率。