论文关键词:增强现实,基于地理位置服务,服务,空间信息,移动应用
0引言
LBS,即LocationBasedService,是指在移动环境下,利用GIS技术、空间定位技术和网络通信技术,为移动对象提供基于空间地理位置的信息服务。目前阶段,国内出现的该项业务,主要采用GPS定位建立用户关联,是在传统的社交服务所拥有的时间、人物、事件之外,引入第四个维度:地点,以期使用户的网络生活和真实世界得以紧密结合。
增强现实(AugmentedReality,简称AR),是通过借助计算机图形和可视化技术生成虚拟对象,并通过传感技术将虚拟对象准确的“放置”在真实环境中,达到虚拟图形和现实环境融为一体的效果。近年来以智能手机为代表的手持设备发展迅速,具有性能强大的传感器,GPS和指南针等功能的终端已完全满足了增强现实的硬件要求。
在这种条件下,尝试将增强现实引入LBS社交,可在原有的四维环境中加入视觉元素,利用终端为地球上任何三维视觉角度贴上媒体标签,其他用户也可以利用搭载该技术的终端,在观看周围环境的真实图像时,同时获知这些信息。增强现实技术利用GPS坐标、加速器给出的终端与地面角度,以及指南针确定的摄像头朝向,确定一个唯一“向量”,并通过该“向量”标识当前的终端空间状态,获取空间信息。巧妙的绕开了类似应用对图像识别功能的依赖,对终端的CPU资源和通讯能力要求大大降低。
当前阶段,二者结合的应用受到GPS定位精度和Web服务质量等问题的限制,仍有许多中间环节亟需解决。首先,项目的实现需建立在10m级别精度范围内,数据传输需一定带宽保证;其次,作为增值服务,基础用户数量和终端硬件配置成为瓶颈。本文针对上述问题,选取了具有便携方便、普及率高等特点的Android平台部署客户端软件,利用传感器优良的特性结合GoogleAPI构造出基本能够满足精度要求的实现方法。采用Web-LBS架构搭建服务器端平台,设计独立的通信协议,运用数据库存取,实现了一种实际可操控的信息构造和发布机制,使其成为一个通用且便于扩展的LBS系统。
1移动LBS系统的设计
1.1系统结构设计
基于WebService的LBS系统分为两个部分,由移动终端上具备AR实现能力的客户端以及服务器数据处理平台构成。服务器数据处理平台集成了LBS应用系统的共性,实现业务逻辑与系统数据处理相分离,并提供具有稳定可扩展特性的API接口。图1显示了LBS系统的逻辑结构图。移动客户端通过传感器采集相关地理位置信息,封装成HTTP请求报文,通过LBS服务器的统一入口点,即API应用服务器,它负责将用户终端的请求信息用规范格式转发给数据处理组件。数据处理组件主要负责位置服务的综合处理,为整个系统运行提供数据业务支持。
移动客户端软件由空间信息采集模块、数据库存储模块、网络信息处理模块及AR呈现模块组成,各模块间实现数据处理流完成虚拟信息的生成。空间信息采集模块用于驱动各传感器,获取GPS或GSM坐标、电子罗盘方向和加速器角度确定的摄像头朝向等空间参数,并传送给网络信息处理模块。网络信息处理模块将参数封装成请求报文交由LBSAPI应用服务器处理,并等待返回信息,进行解析。AR呈现模块通过生成虚拟信息图像和摄像头真实图像叠加呈现效果。数据库存储模块用于本地用户文件的保存。
图1LBS系统逻辑结构图
服务器数据处理平台在设计过程中参考J2EE结构模型,并采用了组件式的设计方式,将整个平台划分成综合管理模块、位置信息处理模块、接口层处理模块3大部分。功能子模块独立封装,并对外提供统一规定的接口函数以供调用,可实现在多种不同终端平台上提供业务支持。
1.2系统工作流程设计
基于增强现实的LBS系统工作流程如图2所示。首先,用户通过登录客户端进行操作,利用网络交互提供用户注册和认证。然后由AR显示模块和信息采集模块相配合,搭建用户发布信息的工作空间,驱动传感器工作,提供GPS(在较弱环境下改为GSM基站定位)、陀螺仪及加速器参数,传递给网络信息处理模块,进行封装。封装的报文通过POST方法传递给LBSAPI,并等待服务器数据处理平台返回响应报文。
图2LBS系统工作流程示意图
客户端在接受响应报文后,实现XML文件解析,提取关键结点相关内容,交由AR显示模块进行虚拟图形生成。该部分采用获知当前摄像头朝向以及当前终端所处空间状态将虚拟信息放置在用户工作空间内,实现叠加,到达呈现数据的理想效果。
2移动LBS客户端的实现
2.1系统开发环境及自定义工具类的使用
采用Eclipse+AndroidSDK作为系统的开发环境。Eclipse是一个开放源代码的可扩展开发平台。它可以看成一个框架和一组服务,用于通过插件组件构建开发环境。Android是用于移动设备的软件堆栈,包括操作系统、中间件和关键应用程序。AndroidSDK提供了必需的工具及API,用于开发在Android驱动设备上运行的应用程序。
在程序编写过程中,首先实现构造以下类供系统各模块调用:
(1)DBUtil:负责用户本地信息的存储与读取,提高系统运行效率。
(2)HttpPost:网络通信部分,负责信息的发送与收取。
(3)ParseXml:XML实现服务器端响应请求文件的解析。
(4)GPSManager/GSMManager:用户地理位置定位服务管理。
(5)MainView:实现虚拟图像及信息的生成及显示。
2.2各模块具体功能实现
(1)数据库处理实现