?

基于Android的智能手機室內導航路徑規劃設計

2017-11-02 02:24林育曼潘敏潔卓偉鵬
電腦與電信 2017年8期
關鍵詞:文字描述蜂鳥韶關

林育曼 潘敏潔 卓偉鵬 饒 浩

(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){

ArrayListresults=mNaviAnalyser.getNaviResults();

ArrayListsegments=newArrayList<>();

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 路徑規劃文字描述

3 結語

實踐研究表明,基于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
(1.Department of Instructional Technology,Shaoguan University,Shaoguan 512005,Guangdong;2.School of Information Science and Engineering,Shaoguan University,Shaoguan 512005,Guangdong)

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。

猜你喜歡
文字描述蜂鳥韶關
蜂鳥——致苔絲
廣東韶關曲江區總工會“夏送清涼”慰問13000余名職工
韶關札記
蜂鳥
微寫作
微寫作
微寫作
從生態翻譯學視角看韶關旅游景點的再譯
蜂鳥
數形結合,突破電路中的圖像問題
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合