好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于增强现实技术的移动LBS系统的设计与实现-移动应用.docx

8页
  • 卖家[上传人]:I***
  • 文档编号:208668906
  • 上传时间:2021-11-07
  • 文档格式:DOCX
  • 文档大小:95.82KB
  • / 8 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 基于增强现实技术的移动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(tags[i].lat,tags[i].lng);map.addOverlay(createMarker(latlng,i+1));}}图4客户端实现效果图5Web端实现效果4结语本文设计并实现的如图4、5所示基于增强现实的移动LBS系统,能满足客户使用位置服务并使用现实观感增强信息获取质量的需求,整个系统采用Java语言实现,具有良好的可移植性、可扩展性和平台无关性,利用J2EE技术搭建的服务器数据库平台,具有良好的系统API,并且全面支持XML/HTML语言进行数据请求,便于其他移动。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.