基于Android平台移动导航定位的研究与设计
2014-09-06孟文超张宁
孟文超,张宁
(重庆邮电大学 通信与信息工程学院, 重庆400065)
基于Android平台移动导航定位的研究与设计
孟文超,张宁
(重庆邮电大学 通信与信息工程学院, 重庆400065)
随着无线网络技术的发展和Android平台移动智能终端的普及,各具特色的基于位置的服务应用接踵而至。由于全球定位系统GPS应用领域的不断延伸和扩展,传统的LBS仅限于单方位置信息呈现,已不能满足人们日益增长的社交网络需求,实现移动导航定位具有现实的意义,开发基于Android平台的LBS具有巨大潜力。本文提出一种新的LBS应用场景——移动导航定位,并结合Android平台应用程序开发的特点及结合百度Map API,借签C/S软件设计模式设计一款方便实用的移动导航定位应用系统。
Android平台; LBS;Map API; 移动导航定位
引 言
当前基于位置服务的发展方向正趋向于个性化和本地化,不同的人群对基于位置的服务的功能和性能等方面都有不同的需求[2]。目前提供导航服务的系统只是人与物或者物与物之间的导航,对于日常生活中两个或者多个好友在一个陌生的城市,因为不熟悉彼此找不到或者容易走错路导致不能见面,以及动态了解物流动态所在的位置的相关软件还没有出现,本文基于Android平台结合百度Map API相关功能设计实现一款移动导航定位服务系统,从而为用户提供功能更加方便、界面更加友好的移动导航定位服务[3]。
1 系统设计方案
本文采用典型的C/S设计模式即客户端和服务器结构,提出了一种更轻巧、简便的系统设计方案,如图1所示。客户端安装相应的应用软件,远程服务器存储数据,客户端向服务器请求服务,服务器向客户端提供服务。以电子地图为基础,集成用户位置需求,综合利用无线通信网络(TD-SCDMA/LTE)、有线网络的优势,实现多方用户移动导航定位。
图1 系统设计图
利用百度Map API技术构建位置服务系统,通过采用服务器、数据服务器、客户端三层结构来设计。客户端主要实现的功能包括地图基本功能操作,包括加载地图、浏览地图、地图缩放、POI查询及移动导航定位地图显示。服务器用主要于处理客户端注册、验证登陆、服务查询请求并响应,利用Map API将移动位置地理信息显示地图上。数据服务器主要被服务器存取用户信息和各种空间数据。该系统运行稳定,成本低,具有理论的可行性和实际的可用性。
2 关键技术研究
2.1 Android平台及应用开发
Android是一个由Linux+Java构成的移动设备软件框架,它包括一个操作系统、中间件和一些关键应用。采用了分层的架构,如图2所示。从架构图看,Android分为4层,分别是应用程序层、应用程序框架层、系统运行库层和Linux核心层,具有平台标准化、用户可定制以及服务免费等特色[4]。
图2 Android平台结构图
Android程序的载体是各个应用程序包,而程序运行的主体是各种“组件”。从应用程序的角度,各个组件对外的联系是程序处理的一个关键问题[5],组件接口包括与用户的接口和与其他包的接口两部分内容。Android 的应用程序是用 Java 语言开发的,其编程语言完全开源免费,基于此平台,对此系统进行开发设计。
2.2 GPS定位技术
现代教学模式逐渐向着开放化、综合性方面发展.高中物理教学也在不断的变革中探索,努力寻找适合现代教学模式的节奏和方式,给学生带来更加全面的发展.应当发现,学生的学习习惯和思维习惯很大程度上受到原始教学方法的影响,尽管填鸭式的教学模式限制了学生思维的拓展,但能够保证传统意义上的教学质量,侧面也体现了教师的教学水平.目前情况来看,新时代下学生的智力水平较往年有较大的提高,传统方式无法满足学生的需求,他们渴望自由的教学模式和宽松的学习环境.本文将从“对分课堂”在物理教学实施中的现状出发,简述高中物理“对分课堂”实施的具体方法,发现问题并提出解决问题的方法,探索促进高中物理“对分课堂”更加有效的方法.
移动终端的定位是通过检测移动终端和基站之间传播信号的特征参数来获取几何位置,再根据移动终端定位进行定位估计位置。GPS全球定位系统是由美国国防部在20世纪70年代开始联合研制的新型卫星导航系统[6],由 24 颗定位卫星组成,所有卫星分布比较独特,轨道高,兼具测时和测距的功能。GPS 全球定位系统实现了全球覆盖,各种气象条件下的全天候工作,定位精度高,定位导航可实时连续。定位卫星的这种分布便于需要导航的设备在全球的任意地点、任意时间都可同时观测到4颗以上的通信卫星,并能保持良好的定位解算精度。今天的智能手机平台大多都配备了全功能的 GPS 接收机及配套应用,根据高速运动的卫星瞬间位置作为已知的数据,采用空间距离后方交会的方法,确定待测点的准确位置。
2.3 百度地图API
图3 地图定位原理图
百度地图API针对移动终端特别开发出百度地图移动版API,百度移动地图API是基于移动互联网设备的应用程序接口,支持Android平台。与此同时,移动地图免费对外开放地图SDK和定位SDK API,若需要在同一个工程中同时使用地图SDK和定位SDK,需先申请同一个key,接口使用无次数限制。
地图SDK是一套基于Android平台的应用程序接口,可以使用该套 SDK开发适用于Android系统移动设备的地图应用,通过调用地图SDK接口,可以轻松访问百度移动地图服务和数据,构建功能丰富、交互性强的地图类应用程序。同时百度移动地图定位SDK是一个提供基础定位API的第三方平台,为各类应用提供定位能力,提升用户体验。通过移动地图API,用户可以再移动终端上便捷、轻松、准确地访问百度地图服务和数据。地图定位原理如图3所示。
百度移动地图采用GPS、基站、Wi-Fi信号进行定位。当应用程序向SDK发起服务请求时,SDK会根据应用的客观因素(GPS、基站、Wi-Fi信号)的实际情况(如是否开启GPS、是否连接网络、是否有信号等)来生成相应地理信息依据进行响应。
3 系统的功能设计
本文的研究目的是实现好友共享地理信息的移动导航定位系统,通过后台的推送服务,更新并发送给其好友,并在客户端上通过百度Map上显示出来。只要用一个账号和密码登陆,使用者就匹配数据库相关数据就可以加载好友列表,并进行位置共享进而实现移动导航功能,系统整体功能架构如图4所示。
图4 系统功能架构图
3.1 客户端功能设计
图5 客户端设计架构图
系统客户端模块包括数据接收模块、登录模块、注册模块、定位模块和移动导航模块,客户端设计架构图如图5所示。代码实现语言采用Java,IDE是Eclipse,数据库是MySQL,Android开发工具是android-sdk-windows。
当用户登录客户端经过GPS模块接收位置信息模块,并存储在数据库里,通过DataProcess处理线程进行处理,最后通过DataProcess发送广播给UI界面Activity,Activity根据当前的状态判断是否要马上更新地图信息。
在客户端,图层显示包括地图静态图层、Poi图层、天气图层、移动导航图层。地图图层是展示的是平面地理信息图层;POI图层展示的是兴趣点搜索结果信息图层;移动导航图层展示的是当前在线所有允许分享位置好友经纬度位置信息及最优路径。
3.2 服务器功能设计
服务器负责接受用户的登陆、注册请求,并推送好友相关的信息,其主要功能包括用户上线处理、下线处理、更新地理位置信息、获取位置信息天气、用户会话、好友移动导航、添加好友,删除好友等功能。
用户上线处理:用户请求登录,得到用户所有信息,并让所有在线好友得到上线通知。
更新地理位置信息:当前用户的地理位置信息发生改变时,通过终端GPS获取当前位置信息,并通过地图数据库实时显示在地图上。
好友移动导航:将允许可见实时在线用户信息的当前位置经纬度按照“用户账号—位置经纬度”一对一结构格式返回至客户端地图上,并根据路径规划算法实时移动导航。
添加好友:根据用户账号发送好友请求时,同意为好友则显示在对方好友列表里,可以进行会话和移动导航。
删除好友:用户选择删除好友后,该好友马上在我的好友列表上消失,会话和移动导航功能同时删除。
3.3 数据库设计
数据库设计是指在给定的应用环境下提供最优的数据模型,采用基于逻辑设计与物理设计相结合的方式抽象应用和数据,从而建立数据库应用系统,有效地存储相关数据,满足用户的应用实际需求。由于MySQL支持开源、多用户、多线程以及成本低、速度快、体积小等优势,而移动导航定位系统应为实时性要求高,故本系统采用MySQL数据库系统。
该系统的数据库主要是为了用户信息以及相应地理位置信息,包括登录用户账号、用户名、登陆密码,经纬度等,在用户信息表中存储信息如表1所列。
4 功能性测试
在无线通信网络或Wi-Fi环境下利用Android平台的智能终端GPS模块获取地理信息,在Android SDK2.3模拟器下完成主要功能功能性测试。登录界面如图6所示,定位界面如图7所示,移动导航界面如图8所示,经分析,用户登录验证、定位功能、移动导航定位等功能均满足预期设计。
表1 用户信息表
图6 登录界面
图7 定位界面
图8 移动导航界面
结 语
[1] 王明才,姚承宽.位置服务在我国的应用和发展[J].河北师范大学学报,2009, 33(5):688-692.
[2] 潘可贤.手机个人位置服务LBS业务的应用开发[J].信息技术,2009(10):133-137.
[3] Mark L Murphy. The Busy Coder’s Guide to Android Development[M]. Commons Ware: LLC ,2008.
[4] 杨丰盛. Android 应用开发揭秘[M]. 北京:机械工业出版社, 2010.
[5] http://developer.android.comlindex.html.
[6] 崔和宏.移动定位技术概述[J].科技信息,2008(20):402,356.
孟文超(硕士研究生),主要研究方向为嵌入式系统应用开发、移动通信协议开发;张宁(硕士研究生),主要研究方向为移动通信协议开发。
(责任编辑:高珍 收修改稿日期:2013-12-24)
Mobile Navigation and Positioning Applications Based on Android Mobile Terminal
Meng Wenchao, Zhang Ning
(School of Information and Communication Engineering, Chongqing University of Posts and Telecommunication, Chongqing 400065, China)
With the popularization of intelligent Android mobile terminals and the development of wireless network technology, the characteristic Location-Based Services (LBS) applications followed. Due to the rapid extension of GPS application domain, the traditional LBS limited to unilateral location information presentation could not meet the growing demand for social network. The mobile navigation and positioning has important practical significance. It has a big potential to develop the application of GPS based on Android. This paper presents a new application scenarios on LBS combined with the characteristics of the Android platform application development and Baidu Map API, making use of the C/S software design pattern to design practical and convenient mobile navigation positioning application system.
Android platform; LBS; Map API; navigation and positioning
TP311.1
A