日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

亲友定位助手--具备实时共享位置的智能手机定位地图软件的设计

發(fā)布時(shí)間:2024/3/24 编程问答 51 豆豆
生活随笔 收集整理的這篇文章主要介紹了 亲友定位助手--具备实时共享位置的智能手机定位地图软件的设计 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

本項(xiàng)目的出發(fā)點(diǎn)就是針對(duì)如何解決位置的實(shí)時(shí)共享問(wèn)題,使得人們組隊(duì)外出游玩時(shí)的安全性得到保障,還有讓每個(gè)家庭成員之間可以隨時(shí)隨地地查看其他成員的位置,特別是讓老人、小孩的安全得到家人的實(shí)時(shí)監(jiān)護(hù)。除此之外,還在軟件中增加了一些使用的功能,比如:軌跡記錄,記錄所走過(guò)的路線,以免走錯(cuò)路難以脫險(xiǎn),有備無(wú)患;運(yùn)動(dòng)功能,特有計(jì)步功能,根據(jù)不同的體形,路面等因素調(diào)節(jié)靈敏度;自由設(shè)置步長(zhǎng);自由設(shè)置體重等參數(shù);語(yǔ)音提示,使應(yīng)用更加人性化。

1、項(xiàng)目的整體設(shè)計(jì)與實(shí)現(xiàn)

?整個(gè)軟件項(xiàng)目的設(shè)計(jì)主要分成用戶(hù)注冊(cè)、登錄以及用戶(hù)基本信息的管理;定位地圖的實(shí)現(xiàn)以及其中的放大縮小、普通地圖和衛(wèi)星地圖切換實(shí)現(xiàn);軌跡記錄并回現(xiàn);運(yùn)動(dòng)計(jì)步;語(yǔ)音提示;親戚朋友之間實(shí)時(shí)位置共享等幾部分來(lái)完成。

項(xiàng)目中總共使用到的平臺(tái)有Bmob后端云,實(shí)現(xiàn)用戶(hù)注冊(cè)、登錄、信息管理以及軟件的版本更新;高德地圖開(kāi)放平臺(tái),實(shí)現(xiàn)地圖的相關(guān)功能;科大訊飛開(kāi)放平臺(tái),實(shí)現(xiàn)語(yǔ)音提示功能。

軟件分為服務(wù)器端和客戶(hù)端,本系統(tǒng)的服務(wù)器端主要通過(guò)Bmob的云平臺(tái)實(shí)現(xiàn),客戶(hù)端用戶(hù)界面設(shè)計(jì)則通過(guò)Android實(shí)現(xiàn),主要分為五大模塊:登錄注冊(cè),定位導(dǎo)航,軌跡記錄,語(yǔ)音提示,運(yùn)動(dòng)計(jì)步和實(shí)時(shí)共享位置。點(diǎn)擊相應(yīng)模塊,即可實(shí)現(xiàn)相應(yīng)的功能。界面簡(jiǎn)單,易操作。

2、Bmob后端云平臺(tái)

?Bmob可以開(kāi)發(fā)一個(gè)云存儲(chǔ)的移動(dòng)應(yīng)用軟件,給應(yīng)用軟件快速添加一個(gè)安全靈活的后臺(tái)管理系統(tǒng),方便瀏覽終端保存的各種信息。

當(dāng)用戶(hù)打開(kāi)App時(shí),首先進(jìn)入用戶(hù)登錄頁(yè)面,若未注冊(cè),則點(diǎn)擊注冊(cè)按鈕進(jìn)入注冊(cè)頁(yè)面進(jìn)行注冊(cè),再返回登錄頁(yè)面。登錄成功后,進(jìn)入用戶(hù)主界面視圖。

登錄注冊(cè):將手機(jī)App安裝后,進(jìn)入登錄頁(yè)面,若沒(méi)注冊(cè),則先注冊(cè)后登錄。此功能主要使用Bmob后端云數(shù)據(jù)庫(kù),寫(xiě)入用戶(hù)數(shù)據(jù)和讀取用戶(hù)信息實(shí)現(xiàn)。登錄時(shí)查詢(xún)User表輸入用戶(hù)名和密碼與該表的數(shù)據(jù)項(xiàng)匹配一致,則完成登錄,進(jìn)入主界面,登錄和注冊(cè)界面如圖1所示。


圖1 登錄注冊(cè)

使用Bmob后臺(tái)實(shí)現(xiàn)用戶(hù)登錄的部分代碼如下:

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(); //結(jié)束登陸界面} else { ToastUtils.showToast(UserLoginActivity.this,"登錄失敗:"+ e.toString());} } });

3、高德地圖開(kāi)放平臺(tái)

?高德地圖開(kāi)放平臺(tái)將高德地圖專(zhuān)業(yè)的定位、地圖、導(dǎo)航等位置能力和LBS服務(wù)開(kāi)放出來(lái),因此,利用高德地圖提供的定位SDK可以讓軟件實(shí)現(xiàn)準(zhǔn)確的定位,從而讓軌跡記錄和實(shí)時(shí)共享位置等功能的實(shí)現(xiàn)得到保障。

地圖定位導(dǎo)航:利用高德地圖提供的API接口,我們可通過(guò)GPS、Internet實(shí)現(xiàn)定位。單獨(dú)使用GPS定位,需要打開(kāi)手機(jī)的GPS定位,適用于室外。單獨(dú)采用Internet,只要聯(lián)網(wǎng)即可。綜合考慮,我們采用兩者結(jié)合方式,即可準(zhǔn)確、快速地實(shí)現(xiàn)定位功能。

本軟件的主界面即是實(shí)時(shí)顯示當(dāng)前位置的定位地圖界面,如圖2所示。


圖2 主界面

軟件的主界面即實(shí)時(shí)顯示當(dāng)前的位置,同時(shí)主界面地圖上還包含了一些控件,如獲取當(dāng)前定位、放大、縮小、普通地圖與衛(wèi)星地圖切換等按鈕。除此之外,還有一個(gè)記錄軌跡功能的開(kāi)啟和結(jié)束按鈕,此按鈕在點(diǎn)擊時(shí)會(huì)有語(yǔ)音提示。在主界面的左上角有一個(gè)顯示側(cè)邊欄菜單選項(xiàng)的按鈕。菜單上總共有個(gè)人信息查看、我的軌跡、運(yùn)動(dòng)、位置圈和設(shè)置等選項(xiàng),每一個(gè)選項(xiàng)里面實(shí)現(xiàn)了相對(duì)應(yīng)的功能,讓用戶(hù)操作更加方便,易懂。

主界面定位功能實(shí)現(xiàn)的部分代碼如下:

publicvoid activate(OnLocationChangedListener listener) {mListener = listener;//初始化定位mLocationClient = newAMapLocationClient(getApplicationContext());//初始化定位參數(shù)mLocationOption = newAMapLocationClientOption();//設(shè)置定位模式----高精度模式:會(huì)同時(shí)使用網(wǎng)絡(luò)定位和GPS定位,優(yōu)先返回最高精度的定位結(jié)果 mLocationOption.setLocationMode(AMapLocationMode.Hight_Accuracy);//設(shè)置定位間隔mLocationOption.setInterval(2000);//設(shè)置是否返回地址信息mLocationOption.setNeedAddress(false);//給客戶(hù)端對(duì)象設(shè)置定位參數(shù)mLocationClient.setLocationOption(mLocationOption);//啟動(dòng)定位mLocationClient.startLocation();//設(shè)置定位回調(diào)監(jiān)聽(tīng)mLocationClient.setLocationListener(mLocationListener);}//聲明定位回調(diào)監(jiān)聽(tīng)器AMapLocationListener mLocationListener =new AMapLocationListener() {@Overridepublic voidonLocationChanged(AMapLocation amapLocation) {if (amapLocation != null) {if(amapLocation.getErrorCode() == 0) {if (mListener!= null) {mListener.onLocationChanged(amapLocation);}}}}};

4、科大訊飛開(kāi)放平臺(tái)

科大訊飛開(kāi)放平臺(tái)是推出的以語(yǔ)音交互技術(shù)為核心的人工智能開(kāi)放平臺(tái)。語(yǔ)音技術(shù)實(shí)現(xiàn)了人機(jī)語(yǔ)音交互,使人與機(jī)器之間溝通變得像人與人溝通一樣簡(jiǎn)單。語(yǔ)音技術(shù)主要包含語(yǔ)音合成和語(yǔ)音識(shí)別兩項(xiàng)技術(shù)。本軟件中集合了科大訊飛的在線語(yǔ)音合成SDK,從而實(shí)現(xiàn)軟件中的語(yǔ)音提示功能,使應(yīng)用更加人性化。

在線語(yǔ)音合成的基本參數(shù)設(shè)置如下:

if(mEngineType.equals(SpeechConstant.TYPE_CLOUD)){mTts.setParameter(SpeechConstant.ENGINE_TYPE,SpeechConstant.TYPE_CLOUD);// 設(shè)置在線合成發(fā)音人mTts.setParameter(SpeechConstant.VOICE_NAME,voicer);//設(shè)置合成語(yǔ)速mTts.setParameter(SpeechConstant.SPEED,"50");//設(shè)置合成音調(diào)mTts.setParameter(SpeechConstant.PITCH,"50");//設(shè)置合成音量mTts.setParameter(SpeechConstant.VOLUME,"80"); }

5、軌跡記錄

在戶(hù)外活動(dòng)或者游玩時(shí),可能經(jīng)常會(huì)走到陌生的環(huán)境中,那么為了在這種情況下可以正確的辨別方向,不易迷失,這就需要對(duì)使用者所走過(guò)的路線進(jìn)行記錄保存,在需要的時(shí)候進(jìn)行重現(xiàn)路線,以免走錯(cuò)路難以脫險(xiǎn),有備無(wú)患。

在主界面上的點(diǎn)擊開(kāi)始記錄軌跡按鈕,同時(shí)會(huì)有語(yǔ)音提示“開(kāi)始記錄軌跡”,這時(shí)應(yīng)用將在后臺(tái)開(kāi)啟一個(gè)服務(wù),將使用者不斷移動(dòng)位置時(shí)更新的經(jīng)緯度信息保存到集合中,只要位置一旦更新,就把新位置的經(jīng)緯度保存起來(lái),直到使用者再次點(diǎn)擊主界面的停止記錄軌跡按鈕,這時(shí)將停止保存經(jīng)緯度,同時(shí)將集合中的信息全部寫(xiě)入到SD卡文件中,并將此后臺(tái)服務(wù)關(guān)閉。當(dāng)經(jīng)緯度信息成功保存到文件中時(shí),會(huì)有語(yǔ)音提示“軌跡保存成功”,提示使用者已經(jīng)將當(dāng)前的記錄的軌跡保存成功,可以在“我的軌跡”選項(xiàng)卡中查看。

點(diǎn)擊“我的軌跡”可以查看到歷史所有保存的軌跡,而且每一個(gè)軌跡都顯示了軌跡保存時(shí)的時(shí)間,方便使用者查看。當(dāng)點(diǎn)擊任意一個(gè)軌跡時(shí),將把該軌跡的起點(diǎn)、終點(diǎn)以及路線繪制在界面上,同時(shí)顯示當(dāng)前的位置,可以更加清晰的知道當(dāng)前位置與軌跡之間的偏差,幫助用戶(hù)更好的回到原地,避免走失。同時(shí)還可以將地圖切換成衛(wèi)星地圖,在衛(wèi)星地圖上顯示軌跡,讓使用者更加清除的知道自己身處何處,使安全性得到更大的提升。

以下是軌跡記錄功能開(kāi)發(fā)測(cè)試的案例,如圖3所示。


圖3 軌跡記錄回現(xiàn)

6、運(yùn)動(dòng)計(jì)步

目前,運(yùn)動(dòng)越來(lái)越受到人們的青睞,特別是智能手機(jī)里的計(jì)步功能更加是受到人們的喜愛(ài)。人們喜歡記錄自己每天走過(guò)的步數(shù)并將其與朋友進(jìn)行計(jì)較,這已經(jīng)成為了人們?nèi)粘I畹囊环N娛樂(lè)方式。因此,本軟件中也增加了一個(gè)特有的計(jì)步功能,緊隨時(shí)代腳步的時(shí)髦功能,這將會(huì)深受用戶(hù)喜愛(ài)。

本軟件中的運(yùn)動(dòng)計(jì)步功能可以根據(jù)使用者的體形、當(dāng)時(shí)的路面情況等因素來(lái)調(diào)節(jié)靈敏度,設(shè)置步長(zhǎng)、體重等參數(shù),根據(jù)不同使用者的實(shí)際情況進(jìn)行設(shè)置,可以讓軟件記錄出來(lái)的行程、熱量、步數(shù)等更加精確。

點(diǎn)擊“運(yùn)動(dòng)”可以進(jìn)行運(yùn)動(dòng)計(jì)步功能界面,在界面的右上角有一個(gè)設(shè)置按鈕,點(diǎn)擊可以進(jìn)行參數(shù)的設(shè)置,設(shè)置完成點(diǎn)擊保存,那么以后計(jì)步得到的數(shù)據(jù)將會(huì)按照設(shè)置保存的數(shù)據(jù)進(jìn)行計(jì)算,從而得到更加精確的數(shù)據(jù)并顯示給使用者。在運(yùn)動(dòng)界面點(diǎn)擊“開(kāi)始運(yùn)動(dòng)”和“結(jié)束運(yùn)動(dòng)”按鈕可以實(shí)現(xiàn)計(jì)步的開(kāi)始和結(jié)束,同時(shí)會(huì)有語(yǔ)音提示“開(kāi)始運(yùn)動(dòng)”和“運(yùn)動(dòng)結(jié)束”。

以下是運(yùn)動(dòng)計(jì)步功能開(kāi)發(fā)測(cè)試的案例,如圖4所示。


圖4 運(yùn)動(dòng)計(jì)步

7、實(shí)時(shí)共享位置

戶(hù)外活動(dòng)時(shí)朋友之間位置的實(shí)時(shí)共享可以避免掉隊(duì)、走失等意外事件,家庭成員之間位置的實(shí)時(shí)共享可以讓老人、小孩等的位置得到實(shí)時(shí)監(jiān)護(hù),因此,位置得到實(shí)時(shí)的共享具有很重要的意義。

本軟件中設(shè)計(jì)了一個(gè)“位置圈”的功能,顧名思義就是位置實(shí)時(shí)共享的圈子。使用者可以根據(jù)不同的情況創(chuàng)建不同的位置圈,同一位置圈中的成員彼此之間可以實(shí)時(shí)共享自己的位置和查看彼此的位置。創(chuàng)建位置圈的用戶(hù)即為該圈的圈長(zhǎng),圈長(zhǎng)有最高的權(quán)限,可以對(duì)該圈進(jìn)行解散操作,非圈長(zhǎng)的用戶(hù)無(wú)法執(zhí)行此操作,只能是自己退出該圈。

創(chuàng)建位置圈和搜索加入位置圈的界面如圖5所示。


圖5 創(chuàng)建搜索位置圈

?

點(diǎn)擊“位置圈”可以查看當(dāng)前加入的所有位置圈,點(diǎn)擊每一個(gè)位置圈都可以進(jìn)入到該位置圈的信息列表界面,在此界面中可以查看到有關(guān)位置圈的所有信息,也可以進(jìn)行一些相關(guān)的操作設(shè)置,比如“加載到地圖上”可以選擇是否在主界面上顯示該位置圈中其他有共享其位置的成員的位置,“共享我的位置”即可以選擇是否將自己當(dāng)前的位置共享給此位置圈中的其他成員。位置圈的基本信息界面如圖6所示。


圖6 位置圈的基本信息

在位置圈信息界面中可以查看該位置圈中的所有成員以及修改自己在位置圈中的昵稱(chēng),圈員顯示界面和修改昵稱(chēng)界面如圖7所示。


圖7 圈員顯示昵稱(chēng)修改

8、用戶(hù)基本信息管理

用戶(hù)基本信息的管理可以讓用戶(hù)隨時(shí)修改、更新自己的信息,其中包括性別、年齡、綁定手機(jī)號(hào)碼、修改登錄密碼等等。點(diǎn)擊“設(shè)置”選項(xiàng)可以進(jìn)入基本信息修改、更新界面,在此界面中根據(jù)自己的需要進(jìn)行設(shè)置,設(shè)置保存后的信息將保存到Bmob后臺(tái)管理服務(wù)器中,同時(shí)還會(huì)將信息同步到“個(gè)人信息”選項(xiàng)卡中。用戶(hù)基本信息設(shè)置界面如圖8所示。


圖8 用戶(hù)基本信息設(shè)置

總結(jié)

以上是生活随笔為你收集整理的亲友定位助手--具备实时共享位置的智能手机定位地图软件的设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。