基于增强现实技术的移动LBS系统的设计与实现_移动应用.doc_第1页
基于增强现实技术的移动LBS系统的设计与实现_移动应用.doc_第2页
基于增强现实技术的移动LBS系统的设计与实现_移动应用.doc_第3页
基于增强现实技术的移动LBS系统的设计与实现_移动应用.doc_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

基于增强现实技术的移动LBS系统的设计与实现_移动应用 论文摘要:基于位置服务(LBS, Location Based Service)发展迅速,利用增强现实技术开发LBS系统,对人机界面与GIS服务整合具有重要的理论和现实意义。在此基础上,设计了一个空间信息服务的构建与发布机制,利用智能终端配备的传感装置,在Android平台手持设备下扩展增强现实功能,融合真实场景和虚拟信息,搭建远程Web服务器完成数据交互,得到了整体基于Web服务的LBS原型系统。论文关键词:增强现实,基于地理位置服务,服务,空间信息,移动应用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)数据库处理实现采用轻量级数据库Sqlite3。它具有零配置、自由共享、完整Unicode支援等特点。首次运行时,其能够自动在用户目录创建并生成数据文件。以后每次访问时,将首先读取本地信息,并在网络流畅后与网络数据同步。退出时自动保存用户信息。(2)用户定位模块此模块是LBS系统应用的核心所在。用于LBS采集用户当前位置空间信息的基础参数及相应处理方法。分为GPS定位与GSM基站定位两部分,二者作为交叉辅助的功能模块,在运行过程中优先调取GPS进行精确定位,无法开启GPS时利用GSM基站作为后援启用。GPS模块实现的主要实现代码如下:publicGPSManager()locationManager=(LocationManager)Context.getSystemService(Context.LOCATION_SERVICE);/通知操作系统,需要使用定位服务locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,0,0,LocationListener);/设置定位数据的提供者可以是GPS卫星或者GSM基站LocationListenermLocationListener=newLocationListener()publicvoidonStatusChanged(Stringprovider,intstatus,Bundleextras);/监听器在地理位置、提供者等发生变化时做出相应的响应动作(3)网络信息处理模块客户端采用ArrayList格式向服务器端发出数据请求,反馈得到XML数据流。系统采用DOM解析数据流。DOM将XML文档作为树形结构,而树叶被定义为节点,实现如下:得到DOM解析器的工厂实例DocumentBuilderFactory.newInstance();通过DocumentBuilderFactory实例的静态方法得到DOM解析器;把待解析的XML文档转为输入流,以便DOM解析器解析;解析输入流得到一个org.w3c.dom.Document对象,以后的处理对Document对象进行;得到XML文档的根节点,获取内容。(4)AR显示模块调用终端系统函数,采用CameraPreview作为背景,计算信息与用户所处地理位置距离和角度。3LBS服务器平台的实现3.1分布组件开发和框架的使用平台开发采用Struts2框架进行架构,完成业务逻辑设计。为实现LBS应用数据处理平台与数据库交换数据,实现了一套访问DAO(DataAccessObjects)。采用Servlet调用响应函数生成轻量级的数据交换格式JSON(JavaScriptObjectNotation)数据包,实现信息在GoogleMap上的动态显示。如图3显示,Web前端页面用于实现数据呈现,所有HTTP请求都被传送到Web应用服务器的中心控制器ActionServlet,分发到不同的Action中进行处理。在处理过程中,调用不同的数据模型完成信息处理,再由中心控制器实现不同导向。LBSAPI应用服务器同样采用J2EE构架,提供手机客户端访问LBSAPI服务器的统一函数接口,根据不同请求,返回相应数据信息,完成手机客户端与服务器的数据交换。图3Struts2框架构成为实现对象模型和关系模型的分离,在Web应用服务器实现中,使用了类似Hibernate的数据库访接口,实现数据分离,提高服务器功能的高内聚。如UserDao实现用户的信息处理,当用户登录LBS-Web服务器时,会初始化UserDao对象实现对象模型和数据模型转换。TagDao用于处理用户发布的媒体信息的对象模型和数据模型的转换。3.2GoogleAPI的调用和信息动态显示GoogleMap调用方法,采用Javascript实现,完成了数据在地图上基于地理位置的显示。为保证服务器的数据传输到Map上,先需要在Servlet上产生JSON数据包,发送到前端页面,再使用脚本进行解析,最后调用相应的API发布数据。脚本解析JSON数据方法如下,在前端页面解析JSON数据包获得相应的数据,xmlHttp=newXMLHttpRequest()生成对象,通过xmlHttp.responseText获得从服务器返回的数据,随后由脚本进行解析,最后使用GoogleMapAPI的map对象,调用方法生成Maker显示在Googlemap上。 JSON数据包的解析和GoogleMap显示的部分代码如下:if(xmlHttp.readyState=4)vartags=eval(+xmlHttp.responseText+);varmap=newGMap2(document.getElementById(“map_canvas”);/初始化地图functioncreateMarker(latlng,number)/生成一个Maker/根据JSON的包含的对象个数生成Makers,显示在地图上for(vari=0;ivarlatlng=newGLatLng(tagsi.lat,tagsi.lng);map.addOverlay(createMarker(latlng,i+1);图4客户端实现效果图5Web端实现效果4结语本文设计并实现的如图4、5所示基于增强现实的移动LBS系统,能满足客户使用位置服务并使用现实观感增强信息获取质量的需求,整个系统采用Java语言实现,具有良好的可移植性、可扩展性和平台无关性,利用J2EE技术搭建的服务器数据库平台,具有良好的系统API,并且全面支持XML/HTML语言进行数据请求,便于其他移动终端平台的调用和扩展。部署在Android平台上的移动客户端软件是对增强现实技术和终端传感装置的合理运用。此外,系统设计界面友好,具有良好的用户体验,不仅具有一定的实用价值,而且将对LBS平台的业务开发和科学管理起到积极作用。参考文献1 王子桢,孙亚夫. 移动定位业务的开发J. 微计算机应用, 2006(1):23-25.2 Buehler K. OGC and LBS over viewOL. /dvdl

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论