基于Android的智能手机室内导航路径规划设计
2017-11-02林育曼潘敏洁卓伟鹏
林育曼 潘敏洁 卓伟鹏 饶 浩
(1.韶关学院教育技术系,广东 韶关 512005;2.韶关学院信息科学与工程学院,广东 韶关 512005)
基于Android的智能手机室内导航路径规划设计
林育曼1潘敏洁2卓伟鹏2饶 浩2
(1.韶关学院教育技术系,广东 韶关 512005;2.韶关学院信息科学与工程学院,广东 韶关 512005)
路径规划是室内导航的基本要素之一。本文探讨了运用Fengmap Android SDK进行室内导航路径规划的设计与实现的方法,实践证明系统能够实现路径导航并提供导航线路的文字描述,表明建立室内导航系统的有效性与可行性。
室内导航;路径规划;SDK
1 引言
随着智能手机的普及,用手机导航已成为人们习以为常的生活习惯。大型的室内场所,例如购物中心、车站、地铁站、机场、医院等,室内导航服务也在逐渐发展普及。室内导航作为地图导航的“最后一公里”,成为线下与线上行业共同的一个难题[1]。如何有效地解决室内导航问题是目前研究的一个重要方向。
目前室内导航系统和方法的研究主要是基于室内wifi、RFID[2]、蓝牙4.0[3]等技术,在国外室内行业中,苹果公司于2013年推出了基于低功耗蓝牙模块的iBeacon方案,在应用到室内定位方面,iBeacon可以通过三角定位原理感知到用户的位置。谷歌手机地图6.0版在一些地区加入了室内导航功能,此方案主要依靠GPS、WiFi信号、手机基站以及一些“盲点”(室内无GPS信号的地方)的具体位置完成室内的定位。
而国内市场,高德是国内第一个正式发布室内地图的图商,高德在2015宣布开放室内地图SDK提供室内场景浏览、楼层切换、室内外地图切换等功能。百度地图4.0中,开始布局室内定位,并和高德、万达在室内地图领域进行合作。蜂鸟视图也发布了室内地图引擎SDK版本,开发者可以通过调用FengMapSDK接口,快速集成室内地图展示、查询、覆盖物、路径规划等功能。
路径规划是室内导航的基本能力之一,本文主要探讨如何实现室内导航路径规划的设计与具体实现。
2 室内导航路径规划的设计与实现
2.1 导航地图开发工具包的选择
Android是一个对第三方软件完全开放的平台,开发者在为其开发程序时拥有更大的自由度。在Android系统中,软件开发工具包就是Android SDK。Android SDK最大的特点在于Android手机系统的开放性和服务免费。
蜂鸟SDK提供基础地图以及种类繁多的工具,在需求明确之后开始实现地图以及附加功能,主要是加载地图,能够随意浏览并搜索地图上标识的建筑物。再添加分楼层显示地图,2D/3D视图切换等控件辅助用户浏览地图,改善用户体验。因此,本次开发选择了蜂鸟SDK:Fengmap Android SDK,并在此基础上进行二次开发。
2.2 室内导航路径规划的设计与实现
2.2.1 室内导航开发基本配置设计
室内导航开发首先需要对相关SDK初始化,并完成地图的添加,具体步骤如下:
(1)添加地图布局文件
android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/mapview"> (2)初始化SDK 在应用程序创建时初始化SDK引用的Context全局变量。 public class MainApplication extendsApplication{ public void onCreate(){ FMMapSDK.init(this); Super.onCreate(); } } 2.2.2 室内导航路径规划的实现 路径规划是导航应用中一个核心功能[4],Fengmap Android SDK支持根据起点和终点坐标规划路线功能,实现路径规划功能最根本的在于找到起始点和终点坐标,在此应用中的体现就是stGroupId(起始点楼层)、stCoord(起始点坐标)、endGroupId(终点楼层)、endCoord(终点坐标)。 (1)初始化路径分析对象,具体代码如下: try{ mNaviAnalyser=FMNaviAnalyser.getFMNaviAnalyserByPath(path); }catch(FileNotFoundException pE){ pE.printStackTrace(); }catch(FMObjectException pE){ pE.printStackTrace(); } (2)添加起始点与终点,进行路径规划,具体代码如下: int stGroupId=起始点楼层; FMMapCoord stCoord=new FMMapCoord(X,Y); int endGroupId=终点楼层; FMMapCoord endCoord=new FMMapCoord(X,Y); 根据设置的起始点和起始楼层进行路径分析,分析成功,返回路径经过的坐标点集 mLineLayer=mFMMap.getFMLayerProxy().getFMLine-Layer();//创建线图层 mFMMap.addLayer(mLineLayer); //添加线图层 int type=mNaviAnalyser.analyzeNavi(stGroupId,stCoord,endGroupId,endCoord,FMNaviAnalyser.FMNaviModule.MODULE_SHORTEST);//根据起始点坐标和楼层id等信息进行路径规划 if (type == FMNaviAnalyser.FMRouteCalcuResult.ROUTE_SUCCESS){ ArrayList ArrayList for(FMNaviResult r:results){ int groupId=r.getGroupId(); FMSegment s=new FMSegment(groupId,r.get-PointList()); segments.add(s); }//构造路径规划线所需数据 FMLineMarker lineMarker=new FMLineMarker(segments); mLineLayer.addMarker(lineMarker); 路径规划效果显示如图1所示。 2.2.3 室内导航路径规划文字描述的实现 在应用中除了显示导航线路以外,还增加了路径的文字描述功能,通过描述路径走向,更能直观地引导使用者更快抵达目的地。路径的文字描述要建立在路径规划的基础上[5],根据设置的起始点和起始楼层进行路径分析,分析成功后,返回路径经过的坐标点集。同时可根据结果集获取路径描述等信息,具体代码如下: //路径分析:传入起点和终点坐标和起点Id进行楼层分析 int type=mNaviAnalyser.analyzeNavi(stGroupId,stCoord,endGroupId,endCoord,FMNaviAnalyser.FMNaviModule.MODULE_SHORTEST); if (type == FMNaviAnalyser.FMRouteCalcuResult.ROUTE_SUCCESS){ ArrayList datas=mNaviAnalyser.getNaviDescription-Data();//得到路径分析后的结果集 if(datas.isEmpty()){ return; } for(FMNaviDescriptionData data:datas){ Log.d("distance",""+data.getDistance()); } } 最后,应用中可获得路径文字描述显示如图2所示。 图2 路径规划文字描述 实践研究表明,基于Android的室内导航路径规划通过使用蜂鸟SDK进行二次开发,实现了对起始点和终点坐标的获取,并完成了相应的路径规划,同时能够根据路径规划给出对应的文字描述,表明建立室内导航系统的有效性与可行性。 [1]庄莹,黄丽娜,郑恒杰,等.二维码定位技术支持下的室内导航电子地图的设计与实现——以武汉大学图书馆为例[J].测绘通报,2017(05):125-128,142. [2]陈攀.LBS与RFID结合实现图书馆室内定位导航方法初探[J].现代情报,2016,36(02):114-119. [3]陈朝钦,洪少华,李振荣,等.基于ZigBee定位的室内停车场导航系统[J].现代计算机(专业版),2017(13):63-66. [4]徐彪,蒋朝阳,朱健铭,等.智能轮椅室内导航路径规划算法[J].计算机系统应用,2015,24(08):171-175. [5]林巍凌.引入导航网格的室内路径规划算法[J].测绘科学,2016,41(02):39-43. Design of Path Planning forAndroid Smartphone Indoor Navigation Lin Yuman1Pan Minjie2Zhuo Weipeng2Rao Hao2 Path planning is one of the basic elements of indoor navigation.Fengmap Android SDK is used for path planning for Android smartphone indoor navigation.Path navigation and text description of navigation line can be implemented in the system.The effectiveness and feasibility of indoor navigation system are described. indoor navigation;path planning;SDK TN966 A 1008-6609(2017)08-0019-03 林育曼(1978-),女,广东潮安人,硕士,副教授,研究方向为教育信息化、信息技术应用。 2017年广东省攀登计划项目,项目编号:pdjh2017b0455。3 结语
(1.Department of Instructional Technology,Shaoguan University,Shaoguan 512005,Guangdong;2.School of Information Science and Engineering,Shaoguan University,Shaoguan 512005,Guangdong)