亲友定位助手--具备实时共享位置的智能手机定位地图软件的设计
本項目的出發(fā)點就是針對如何解決位置的實時共享問題,使得人們組隊外出游玩時的安全性得到保障,還有讓每個家庭成員之間可以隨時隨地地查看其他成員的位置,特別是讓老人、小孩的安全得到家人的實時監(jiān)護。除此之外,還在軟件中增加了一些使用的功能,比如:軌跡記錄,記錄所走過的路線,以免走錯路難以脫險,有備無患;運動功能,特有計步功能,根據(jù)不同的體形,路面等因素調(diào)節(jié)靈敏度;自由設置步長;自由設置體重等參數(shù);語音提示,使應用更加人性化。
1、項目的整體設計與實現(xiàn)
?整個軟件項目的設計主要分成用戶注冊、登錄以及用戶基本信息的管理;定位地圖的實現(xiàn)以及其中的放大縮小、普通地圖和衛(wèi)星地圖切換實現(xiàn);軌跡記錄并回現(xiàn);運動計步;語音提示;親戚朋友之間實時位置共享等幾部分來完成。
項目中總共使用到的平臺有Bmob后端云,實現(xiàn)用戶注冊、登錄、信息管理以及軟件的版本更新;高德地圖開放平臺,實現(xiàn)地圖的相關功能;科大訊飛開放平臺,實現(xiàn)語音提示功能。
軟件分為服務器端和客戶端,本系統(tǒng)的服務器端主要通過Bmob的云平臺實現(xiàn),客戶端用戶界面設計則通過Android實現(xiàn),主要分為五大模塊:登錄注冊,定位導航,軌跡記錄,語音提示,運動計步和實時共享位置。點擊相應模塊,即可實現(xiàn)相應的功能。界面簡單,易操作。
2、Bmob后端云平臺
?Bmob可以開發(fā)一個云存儲的移動應用軟件,給應用軟件快速添加一個安全靈活的后臺管理系統(tǒng),方便瀏覽終端保存的各種信息。
當用戶打開App時,首先進入用戶登錄頁面,若未注冊,則點擊注冊按鈕進入注冊頁面進行注冊,再返回登錄頁面。登錄成功后,進入用戶主界面視圖。
登錄注冊:將手機App安裝后,進入登錄頁面,若沒注冊,則先注冊后登錄。此功能主要使用Bmob后端云數(shù)據(jù)庫,寫入用戶數(shù)據(jù)和讀取用戶信息實現(xiàn)。登錄時查詢User表輸入用戶名和密碼與該表的數(shù)據(jù)項匹配一致,則完成登錄,進入主界面,登錄和注冊界面如圖1所示。
圖1 登錄注冊
使用Bmob后臺實現(xiàn)用戶登錄的部分代碼如下:
finalBmobUser bUser = new BmobUser(); bUser.setUsername(u_name); bUser.setPassword(u_md5_password); bUser.login(newSaveListener<BmobUser>() {@Override publicvoid done(BmobUser bmobUser, BmobException e) {if (e == null) { ToastUtils.showToast(UserLoginActivity.this, bUser.getUsername() + "登陸成功"); Intent intent = newIntent(UserLoginActivity.this, MainActivity.class); startActivity(intent); UserLoginActivity.this.finish(); //結束登陸界面} else { ToastUtils.showToast(UserLoginActivity.this,"登錄失敗:"+ e.toString());} } });
3、高德地圖開放平臺
?高德地圖開放平臺將高德地圖專業(yè)的定位、地圖、導航等位置能力和LBS服務開放出來,因此,利用高德地圖提供的定位SDK可以讓軟件實現(xiàn)準確的定位,從而讓軌跡記錄和實時共享位置等功能的實現(xiàn)得到保障。
地圖定位導航:利用高德地圖提供的API接口,我們可通過GPS、Internet實現(xiàn)定位。單獨使用GPS定位,需要打開手機的GPS定位,適用于室外。單獨采用Internet,只要聯(lián)網(wǎng)即可。綜合考慮,我們采用兩者結合方式,即可準確、快速地實現(xiàn)定位功能。
本軟件的主界面即是實時顯示當前位置的定位地圖界面,如圖2所示。
圖2 主界面
軟件的主界面即實時顯示當前的位置,同時主界面地圖上還包含了一些控件,如獲取當前定位、放大、縮小、普通地圖與衛(wèi)星地圖切換等按鈕。除此之外,還有一個記錄軌跡功能的開啟和結束按鈕,此按鈕在點擊時會有語音提示。在主界面的左上角有一個顯示側邊欄菜單選項的按鈕。菜單上總共有個人信息查看、我的軌跡、運動、位置圈和設置等選項,每一個選項里面實現(xiàn)了相對應的功能,讓用戶操作更加方便,易懂。
主界面定位功能實現(xiàn)的部分代碼如下:
publicvoid activate(OnLocationChangedListener listener) {mListener = listener;//初始化定位mLocationClient = newAMapLocationClient(getApplicationContext());//初始化定位參數(shù)mLocationOption = newAMapLocationClientOption();//設置定位模式----高精度模式:會同時使用網(wǎng)絡定位和GPS定位,優(yōu)先返回最高精度的定位結果 mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);//設置定位間隔mLocationOption.setInterval(2000);//設置是否返回地址信息mLocationOption.setNeedAddress(false);//給客戶端對象設置定位參數(shù)mLocationClient.setLocationOption(mLocationOption);//啟動定位mLocationClient.startLocation();//設置定位回調(diào)監(jiān)聽mLocationClient.setLocationListener(mLocationListener);}//聲明定位回調(diào)監(jiān)聽器AMapLocationListener mLocationListener =new AMapLocationListener() {@Overridepublic voidonLocationChanged(AMapLocation amapLocation) {if (amapLocation != null) {if(amapLocation.getErrorCode() == 0) {if (mListener!= null) {mListener.onLocationChanged(amapLocation);}}}}};
4、科大訊飛開放平臺
科大訊飛開放平臺是推出的以語音交互技術為核心的人工智能開放平臺。語音技術實現(xiàn)了人機語音交互,使人與機器之間溝通變得像人與人溝通一樣簡單。語音技術主要包含語音合成和語音識別兩項技術。本軟件中集合了科大訊飛的在線語音合成SDK,從而實現(xiàn)軟件中的語音提示功能,使應用更加人性化。
在線語音合成的基本參數(shù)設置如下:
if(mEngineType.equals(SpeechConstant.TYPE_CLOUD)){mTts.setParameter(SpeechConstant.ENGINE_TYPE,SpeechConstant.TYPE_CLOUD);// 設置在線合成發(fā)音人mTts.setParameter(SpeechConstant.VOICE_NAME,voicer);//設置合成語速mTts.setParameter(SpeechConstant.SPEED,"50");//設置合成音調(diào)mTts.setParameter(SpeechConstant.PITCH,"50");//設置合成音量mTts.setParameter(SpeechConstant.VOLUME,"80"); }
5、軌跡記錄
在戶外活動或者游玩時,可能經(jīng)常會走到陌生的環(huán)境中,那么為了在這種情況下可以正確的辨別方向,不易迷失,這就需要對使用者所走過的路線進行記錄保存,在需要的時候進行重現(xiàn)路線,以免走錯路難以脫險,有備無患。
在主界面上的點擊開始記錄軌跡按鈕,同時會有語音提示“開始記錄軌跡”,這時應用將在后臺開啟一個服務,將使用者不斷移動位置時更新的經(jīng)緯度信息保存到集合中,只要位置一旦更新,就把新位置的經(jīng)緯度保存起來,直到使用者再次點擊主界面的停止記錄軌跡按鈕,這時將停止保存經(jīng)緯度,同時將集合中的信息全部寫入到SD卡文件中,并將此后臺服務關閉。當經(jīng)緯度信息成功保存到文件中時,會有語音提示“軌跡保存成功”,提示使用者已經(jīng)將當前的記錄的軌跡保存成功,可以在“我的軌跡”選項卡中查看。
點擊“我的軌跡”可以查看到歷史所有保存的軌跡,而且每一個軌跡都顯示了軌跡保存時的時間,方便使用者查看。當點擊任意一個軌跡時,將把該軌跡的起點、終點以及路線繪制在界面上,同時顯示當前的位置,可以更加清晰的知道當前位置與軌跡之間的偏差,幫助用戶更好的回到原地,避免走失。同時還可以將地圖切換成衛(wèi)星地圖,在衛(wèi)星地圖上顯示軌跡,讓使用者更加清除的知道自己身處何處,使安全性得到更大的提升。
以下是軌跡記錄功能開發(fā)測試的案例,如圖3所示。
圖3 軌跡記錄回現(xiàn)
6、運動計步
目前,運動越來越受到人們的青睞,特別是智能手機里的計步功能更加是受到人們的喜愛。人們喜歡記錄自己每天走過的步數(shù)并將其與朋友進行計較,這已經(jīng)成為了人們?nèi)粘I畹囊环N娛樂方式。因此,本軟件中也增加了一個特有的計步功能,緊隨時代腳步的時髦功能,這將會深受用戶喜愛。
本軟件中的運動計步功能可以根據(jù)使用者的體形、當時的路面情況等因素來調(diào)節(jié)靈敏度,設置步長、體重等參數(shù),根據(jù)不同使用者的實際情況進行設置,可以讓軟件記錄出來的行程、熱量、步數(shù)等更加精確。
點擊“運動”可以進行運動計步功能界面,在界面的右上角有一個設置按鈕,點擊可以進行參數(shù)的設置,設置完成點擊保存,那么以后計步得到的數(shù)據(jù)將會按照設置保存的數(shù)據(jù)進行計算,從而得到更加精確的數(shù)據(jù)并顯示給使用者。在運動界面點擊“開始運動”和“結束運動”按鈕可以實現(xiàn)計步的開始和結束,同時會有語音提示“開始運動”和“運動結束”。
以下是運動計步功能開發(fā)測試的案例,如圖4所示。
圖4 運動計步
7、實時共享位置
戶外活動時朋友之間位置的實時共享可以避免掉隊、走失等意外事件,家庭成員之間位置的實時共享可以讓老人、小孩等的位置得到實時監(jiān)護,因此,位置得到實時的共享具有很重要的意義。
本軟件中設計了一個“位置圈”的功能,顧名思義就是位置實時共享的圈子。使用者可以根據(jù)不同的情況創(chuàng)建不同的位置圈,同一位置圈中的成員彼此之間可以實時共享自己的位置和查看彼此的位置。創(chuàng)建位置圈的用戶即為該圈的圈長,圈長有最高的權限,可以對該圈進行解散操作,非圈長的用戶無法執(zhí)行此操作,只能是自己退出該圈。
創(chuàng)建位置圈和搜索加入位置圈的界面如圖5所示。
圖5 創(chuàng)建搜索位置圈
?
點擊“位置圈”可以查看當前加入的所有位置圈,點擊每一個位置圈都可以進入到該位置圈的信息列表界面,在此界面中可以查看到有關位置圈的所有信息,也可以進行一些相關的操作設置,比如“加載到地圖上”可以選擇是否在主界面上顯示該位置圈中其他有共享其位置的成員的位置,“共享我的位置”即可以選擇是否將自己當前的位置共享給此位置圈中的其他成員。位置圈的基本信息界面如圖6所示。
圖6 位置圈的基本信息
在位置圈信息界面中可以查看該位置圈中的所有成員以及修改自己在位置圈中的昵稱,圈員顯示界面和修改昵稱界面如圖7所示。
圖7 圈員顯示昵稱修改
8、用戶基本信息管理
用戶基本信息的管理可以讓用戶隨時修改、更新自己的信息,其中包括性別、年齡、綁定手機號碼、修改登錄密碼等等。點擊“設置”選項可以進入基本信息修改、更新界面,在此界面中根據(jù)自己的需要進行設置,設置保存后的信息將保存到Bmob后臺管理服務器中,同時還會將信息同步到“個人信息”選項卡中。用戶基本信息設置界面如圖8所示。
圖8 用戶基本信息設置
總結
以上是生活随笔為你收集整理的亲友定位助手--具备实时共享位置的智能手机定位地图软件的设计的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: [luoguP1507] NASA的食物
- 下一篇: 使用二进制位来控制权限,表设计