基于Android平台的海医校园导航系统设计与实现*

2016-10-24 01:54罗才鲜余远波王国树
办公自动化 2016年10期
关键词:导航系统路线客户端

罗才鲜 余远波 王国树

(海南医学院 医学信息学院 海口 571101)

基于Android平台的海医校园导航系统设计与实现*

罗才鲜余远波王国树

(海南医学院医学信息学院海口571101)

在移动互联网时代,基于Android平台开发的手机APP软件越来越成熟,直接影响到人们的日常活动。文章是以海南医学院空间信息为基础数据,利用PHP、JavaScript及XML技术实现基于百度地图API的校园导航系统。校园内外用户通过Android手机客户端查询自身的位置、任意两点间的步行导航路径等信息。系统最终是做成手机APP形式,操作界面简洁直观,校园导航应用主要是面向校园师生、外部来访人员等,解决了她们对校园不熟悉的众多问题,同时也帮助她们快速的认识校园、融入校园。

校园导航GPS百度地图API路径规划

一、引言

近年来,Android操作系统在智能手机应用中越来越成熟,份额也越来越多。根据市场分析机构Strategy Analytics公布了2014年第二季度智能手机操作系统全球分布情况。报告显示,目前Android操作系统的全球市场份额已达84.6%(有史以来最高比重),而iOS、WP等系统占比均有所下滑。使用的操作系统球中,占全球份额近85%。同时在2014年中国Android智能手机市场硝烟弥漫,除了厂商间的竞争,不同操作系统阵营间的竞争也更加剧烈,但是从统计数据来看,Android智能手机的销量在中国智能手机市场的占比要远远高于苹果iOS及微软Windows Phone系统的市场份额。

国内外对在Android平台上开发校园导航系统应用这领域的研究并不是很多。在国外,比如∶美国加州大学的一些研究人员正在研究一个交互式地图应用[1]。该应用是可以为用户提供对选择的建筑物进行放大、定位和查看建筑中的房间。但是该应用不能为用户提供从某一地点到目的地点的最短路径。加利福尼亚大学的校园地图的功能和本课题研究的地图功能基本相同[1]。该应用是用户通过打开网页浏览器打开地图,用户可以在地图上选择当前位置到目的地,当用户的信息提交后就会在地图上显示出到达目的地的最短路劲。但是要打开网页浏览器才能使用,这样不仅浪费用户的时间而且携带非常的不方便。在国内,各高校对于校园导航的研究基于PC机的比较多。如清湖大学虚拟校园、华中科技大学校园导航系统[2]。相比之下,大部分高校在Android系统上对校园导航研究都缺少,目前,Android操作系统在智能手机中的发展是越来越成熟,而使用PC机开发校园导航已经不能满足用户的需求。

如今,随着国内各高校的发展,校园内的教学楼、学生食堂、学生公寓等它们的布局错综复杂,即使在学校工作、生活的老师或者学生也未必能清楚对学校的了解,对于学校新生以及外来访人员更是带来诸多的不便。为了跟上学校发展的步伐,海南医学院也设计了基于Android平台的海医校园导航系统,本系统是在百度地图开放平台的基础上进行的二次开发,实现了一个操作性强、实用性强的校园应用程序。

二、百度地图API简介

百度地图JavaScript API[3]是一套由JavaScript语言编写的应用程序接口,它能帮助编程人员在网站中构建功能丰富、交互性强的个性化地图应用程序[4],支持PC端和移动端基于浏览器的地图应用,包含了构建地图基本功能的各种接口,提供了诸如本地搜索、路线规划等数据服务。2013年4月,百度地图的开发新增Key验证机制,即自V1.5版本起,JavaScript API引导文件增加key验证(对应参数为ak),用户需先申请Key,才可使用V1.5版本API服务。

三、系统设计

1、系统体系结构

系统客户端使用百度地图Android SDK开发,服务器端以APP的形式向客户端提供服务,使用的地图信息是由调用百度地图API。服务器端的可以分成路径结点管理、地图放大倍数数据管理及为客户端提供的查询等。客户端的功能可以分为导航功能、定位功能、路线查询功能等。导航功能主要是在校园地图上输入起点、终点即可导出校园步行路径,校园地图可以随意自动、缩放等。定位功能的应用不仅限制于在校园内,在校外同样可以定位到当前的位置,提供类似指南针的图标,当用户在移动时该图标随之移动。路线查询功能主要是为用户提供最佳路径到达目的地,同时也能查看当前附近的建筑物、其他路线等。

2、系统流程

本系统目前是对用户开放使用,所以不需要设计账号密码登陆,直接进入主界面;主界面是调用百度地图为载体的综合查询显示界面,界面包括三部分,分别是顶部为操作栏、中间是地图显示区域已以及底部菜单栏;用户可以在顶部的操作栏上根据校园地图上的建筑物标记输入起点和终点后点击步行导航就能显示导航路径;地图显示区域主要是查看校园的建筑物及周围路线同时也能平移地图;在底部菜单栏设置缩放按钮,是对地图的进行倍数的放大或者缩小,目前地图只能放大到10米;另外本系统还提供定位服务,定位当到前位置和显示方向;用户所操作的信息数据向本地服务器和百度地图服务器发出数据请求,服务器收到请求后再经过业务处理,最后将请求结果返回到客户端,用户就能在地图上看到相应的结果。

系统流程如图1所示∶

3、数据库设计

系统导航这模块功能主要涉及到路线规划方案。由于地图实数据量过于庞大,步行导航路径规划需要借助地第三方平台提供的数据和API支持[5]。同时步行路线规划也属于本地化数据需要服务器端提供支持,其主要存储的是路线信息、建筑物点信息等。为了设计的方便,服务器端和客户端的数据使用的数据库都MySQL。

四、系统分析与设计

1、路径算法实现

路径算法的选择是本系统首要考虑的问题。道路网中任意两个结点之间的最短路径常用的算法有广度优先算法(Breadth-First-Search)、深度优先算法(Depth-First-Search)、Dijkstra算法[6]及A*启动搜索算法[7]。广度优先算法和深度优先算法在展开子节点时均属于盲目型搜索,也就是说,它不会选择哪个节点在下一次搜索中更优而去跳转到该节点进行下一步的搜索。Dijkstra算法采用了和宽度优先搜索类似的思想。A*算法其实是在宽度优先搜索的基础上引入了一个估价函数,每次并不是把所有可扩展的结点展开,而是利用估价函数对所有未展开的结点进行估价,从而找出最应该被展开的结点,将其展开,直到找到目标结点为止。

本系统的动态路径规划算法建立在传统Dijkstra算法和A*算法的基础上,采用双向A*路径的搜索算法[8]。双向A*算法是在传统的A*算法和Dijkstra算法的基础上采用正反向同时搜索的策略[9]。当有一节点是正向搜索和反向搜索同时到达时完成搜索,算法停止。使用双向搜索不仅能减少搜索结点,还能缩短规划时间。

2、校园地图导航实现

在百度地图开放平台上申请秘钥·Android SDK,获取地图,通过在地图上相应景点的经纬度绘制建筑点,然后在经过Android转换工具Project类的MapView.getProject()方法转换成屏幕上的点的坐标位置,然后依次连接成线。在主界面的下拉框选择起点和终点点击步行导航按钮即可实现海南医学院校园步行导航。

(1)校园地图

在方案设计中,我们采用的是在百度地图的基础上进行二次开发,根据设计的需求在此基础上实现相关功能。使用百度地图的API,可以使用JavaScript将从百度地图中获取地图,甚至可以在地图上图像上叠加显示用户自己的数据,如在地图图像上显示路径。本系统针对的是校园内的导航,当用户到达校园某建筑物时,可选择与另一建筑物进行导航,这样就会给用户使用带来很大的便利。校园地图的实现部分代码为∶

android∶layout_width="match_parent"

android∶layout_height="match_parent">

android∶id="@+id/id_bmapView"

android∶layout_width="fill_parent"

android∶layout_height="fill_parent"

android∶clickable="true"/>

(2)路线规划

路线规划实质上就是路线设计。地图中将现有的校园里面所有的建筑物信息都添加进数据里面,然后需要计算路线的时候再把数据调取出来经过路径算法运算得出路径。实现的部分代码为∶

private void setBoxRoutePlan(){

mSearch=RoutePlanSearch.newInstance();

mSearch.setOnGetRoutePlanResultListener(this);

mWalk.setOnClickListener(new OnClickListener(){

public void onClick(View v){

if(mBaiduMap!=null){

mBaiduMap.clear();//清除上一次的导航路线

String str_stNode=mRoutePlanStart

.getSelectedItem()

.toString();

String Str_enNode=mRoutePlanEnd

.getSelectedItem()

.toString();

if(str_stNode==Str_enNode){

Toast.makeText(getActivity(),"起点终点不能一样!!",Toast.LENGTH_LONG).show();

}else{

if(str_stNode=="我的位置"){

PlanNode stNode=PlanNode.withLocation(new LatLng(mLatitude,mLongtitude));

PlanNode enNode=PlanNode.withCityNameAndPlaceName("海口",Str_enNode);

mSearch.walkingSearch((new WalkingRoutePlanOption()). from(stNode).to(enNode));

}else{

PlanNode stNode=PlanNode.withCityNameAndPlaceName("海口",str_stNode);

PlanNode enNode=PlanNode.withCityNameAndPlaceName("海口",Str_enNode);

mSearch.walkingSearch((new WalkingRoutePlanOption()). from(stNode).to(enNode));

});

五、结束语

本文设计的基于Android平台的海医校园导航系统是为了在校师生(特别是新生)以及外来访问人员带来方便外,还能迅速的了解海医校园。本系统与传统导航相比,实现了海医校园导航以及现有智能终端(如Android版本手机)的直接运行,还提供了GPS定位服务。除此之外,本系统界面简洁直观、实用性强、易维护、可扩展等。一个手机APP的应用,除了功能解决用户的问题,还能提高用户的办事效率、节约时间。

[1]熊志军.Android在高校学生信息服务系统中的应用研究[D].硕士学位论文.江西∶南昌大学,2010.

[2]邬琦,林靖,杨江涛.基于Android的校园导航系统路径规划的研究与应用[J].电脑知识与技术2014,10(06)∶1294-1298.

[3]百度.百度地图API开发指南[EB/OL].http://developer. baidu.com/map/,[2015].

[4]梁广荣,黎红.基于百度地图API的虚拟校园实现[J].廊坊师范学院学报,2012,12(6)∶47-49.

[5]杨伟龙,李步德,谢俊鹏.校园导航系统最短路径的实现[J].邵阳学院学报,2014,35(4)∶20-23.

[6]刘玉伟,刘爱莲,谢涛,等.基于Android平台的人员定位与监控系统的设计与实现[J].郑州轻工业学院学报∶自然科学版,2012,27(6)∶17

[7]韩平阳,肖云魁,姚遵恩,等.车辆导航系统中路线寻优算法研究[J].军事交通学院报,2010,12(2)∶75.

[8]夏国平.基于Android的车载智能导航系统的研究与设计[D].成都∶电子科技大学,2012.

[9]马欢,景志勇,李建勇,等.基于Android的智能导航系统的实际与实现[J].郑州轻工业学院学报,2015,30(3/4)∶79-81.

罗才鲜(1993~),女,本科生,研究方向为基于位置的服务(LBS);

余远波(1981~),男,硕士,副教授,研究方向为计算机应用;

王国树(1996~),男,本科生,研究方向是基于位置的服务(LBS)。

Design and Implementation of the Hainan Medical College Campus Navigation System Based on Android Platform

Luo CaixianYu YuanboWang Guoshu
(Hainan Medical College of Medical InformaticsHaikou571101)

In the mobile Internet era,mobile APP software becomes more and more mature based on the Android platform,a direct impact on people's daily activities.This article is based on the information of spatial data of Hainan Medical College,using PHP,JavaScript and XML technology-based Baidu Maps API campus navigation system.Campus and external users via Android mobile client queries its location within the navigation route information between any two points.Phone system will eventually be made in the form of APP,simple and intuitive user interface,campus navigation application is mainly for school teachers and students,staff and other external visitors to solve their campus are not familiar with the many problems,while also helping them to quickly recognize the campus,and convergence into campus.

Campus NavigationGPSBaidu maps APIPath planning

TP311

A

160429-7261

∶国家级大学生创新创业训练计划项目(项目编号∶201411810051;);海南医学院创新性实验计划项目(项目编号∶HYCX201312)。

猜你喜欢
导航系统路线客户端
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
北斗卫星导航系统专名的确定与保护
美食新路线
北斗卫星导航系统
闻鸡起舞
找路线
媒体客户端的发展策略与推广模式
伽利略导航系统再发两颗导航卫星
新华社推出新版客户端 打造移动互联新闻旗舰