高文智 王勁松 謝煒 林立俊 中國石油大學(xué)勝利學(xué)院
高校作為一個特殊群體,自行車使用率較高。隨著新生與畢業(yè)生的不斷更替,各大高校校園內(nèi)廢舊自行車不斷增加,這些廢舊自行車不僅對學(xué)校的空間利用及美麗整潔產(chǎn)生較大的影響,而且對高校秩序管理和學(xué)生日常生活帶來了一定的影響。
如何合理利用這些資源,變廢為寶就顯得尤為重要。通過對各大高校的統(tǒng)計發(fā)現(xiàn),降低新生對新自行車的需求是問題的關(guān)鍵。將這些閑置自行車改造并結(jié)合市面已有的共享單車APP開發(fā)一款適合大學(xué)校園的共享單車系統(tǒng),并利用互聯(lián)網(wǎng)+思維把自行車位置進行共享,那么如何將自行車共享就是系統(tǒng)的關(guān)鍵。自行車位置的獲取方式有兩種:一種是通過用戶手機定位,用戶的位置就是自行車的位置;另一種是通過智能車鎖自帶定位芯片進行定位。
由于自帶定位芯片的智能鎖成本較高不適合用在本項目中,所以本項目就第一種定位方式進行研究。選取合適的自行車初始投放點,用戶在使用系統(tǒng)時,系統(tǒng)通過獲取用戶的位置信息,并將位置發(fā)送到服務(wù)器,當(dāng)用戶停止使用系統(tǒng)時,結(jié)束回傳位置信息。這樣用戶在使用系統(tǒng)時便可以通過周邊檢索功能查找附件的自行車。
共享單車系統(tǒng)通過用戶的手機獲取自行車位置,當(dāng)用戶使用自行車時,系統(tǒng)將獲取到的位置信息上傳至軌跡管理平臺,系統(tǒng)通過檢索軌跡管理平臺中的自行車,并將自行車位置標(biāo)注到地圖上,用戶打開手機藍(lán)牙建立與自行車鎖模塊的連接,通過掃描自行車二維碼開鎖,系統(tǒng)自動獲取用戶的位置并發(fā)送到軌跡管理平臺。用戶手動鎖車結(jié)束計費,并停止發(fā)送位置信息。校園共享單車系統(tǒng)組成如圖2-1所示,由服務(wù)器,自行車端,手機端三部分組成。
圖2-1 系統(tǒng)組成圖
校園共享單車系統(tǒng)主要功能如下:
(1)地圖加載
用戶在進入系統(tǒng)時,首先展示相應(yīng)的地圖信息,并定位用戶當(dāng)前的位置信息。
(2)自行車查找
找車功能為用戶搜索出周邊一定范圍內(nèi)的自行車信息,方便用戶尋找適合自己位置的自行車。并提供地圖和導(dǎo)航功能,正確指引用戶到達(dá)目的地。
(3)用車
用戶通過掃描自行車鎖二維碼開鎖用車,開鎖成功后開始計費。
(4)還車
用戶通過手動關(guān)閉自行車鎖,并在共享單車APP中確認(rèn)結(jié)束行程。
(5)個人管理
用戶可以查看騎行信息以及通過微信、支付寶等兩種方式進行線上充值。
系統(tǒng)功能模塊采用自上而下的結(jié)構(gòu)化設(shè)計方法,能夠清晰的認(rèn)識到系統(tǒng)層次之間的關(guān)系。校園共享單車APP功能主要涵蓋7大功能,包括:用戶注冊與登陸、地圖顯示功能、周邊自行車的查找、掃碼開鎖功能、行程管理功能、付費功能。系統(tǒng)功能設(shè)計結(jié)構(gòu)如圖2-2所示。
圖2-2 系統(tǒng)功能結(jié)構(gòu)圖
使用DrawerLayout+NavigationView實現(xiàn)側(cè)滑側(cè)滑展示個人管理界面,首先需要導(dǎo)入v4.design包,然后在布局文件中使用DrawerLayout作為外包裝,側(cè)滑菜單頁面使用NavigationView。設(shè)置DrawerLayout中headerLayout屬性和menushuxing調(diào)整布局文件和菜單文件,然后在menu中添加點擊事件。
3.1.1 登錄
系統(tǒng)使用驗證登錄,用戶進入系統(tǒng)后,可以側(cè)滑打開菜單進行登錄;用戶在點按掃碼按鈕,當(dāng)用戶沒有登錄,系統(tǒng)將跳轉(zhuǎn)至登錄頁面,待用戶登錄成功后返回重新進入系統(tǒng)主界面。將用戶的個人信息保存到數(shù)據(jù)表中,注冊成功后系統(tǒng)自動登陸。
3.1.2 我的行程
系統(tǒng)會在用戶手機中用SQLite創(chuàng)建一個數(shù)據(jù)表,用戶存儲從系統(tǒng)獲得的騎行信息。用戶在使用該功能時,查詢表中記錄信息可得所有的騎行記錄。
3.1.3 軌跡回放
用戶在結(jié)束行程時,可以查看騎行軌跡。調(diào)整糾偏和糾正里程計算參數(shù),并綁定騎行線路提高軌跡的精確度,然后使用queryHistoryTrack()將獲取到的信息繪制到地圖上,如圖3-1所示。
圖3-1 個人行程圖
3.2.1 定位
常用的定位方式有兩種:一種是采用內(nèi)置GPS定位芯片;另一種是采用基站+GPRS。第一種定位精度高,不易受外界因素影響,但是價格較高,不適合用在本系統(tǒng)中。系統(tǒng)采用第二種定位方式,用戶的位置獲取通過使用類LocationClient和BDLocationClient來獲取,并將位置信息保存以備系統(tǒng)使用。自行車位置的獲取通過用戶的手機,用戶在使用自行車時,系統(tǒng)將周期回傳自行車位置至鷹眼軌跡管理平臺。
3.2.2 周邊自行車的查找
如圖3-2所示,周邊自行車的查找是系統(tǒng)通過類LocationClient和BDlocationlClient,獲取用戶的位置信息,通過接入百度地圖的鷹眼軌跡服務(wù)利用EntityListRequest中的queryEntityList()方法來搜索Entity位置信息,然后使用百度地圖SDK將entity以自行車覆蓋物形式添加到地圖上。
圖3-2 周邊檢索圖
3.2.3 導(dǎo)航
APP主界面地圖上方搜索選項是導(dǎo)航的圖標(biāo),點擊該圖標(biāo)按鈕,輸入終點位置進入導(dǎo)航界面,系統(tǒng)導(dǎo)航有兩種方式,一種是通過APP內(nèi)置導(dǎo)航方式,通過導(dǎo)入百度地圖導(dǎo)航SDK來實現(xiàn);另一種是通過將導(dǎo)航起始位置發(fā)送手機自帶的地圖軟件實現(xiàn)導(dǎo)航。以滿足不同用戶的使用習(xí)慣。
開鎖在整個校園共享單車系統(tǒng)中占有中有重要的地位。當(dāng)前市面使用的主流開鎖方式有兩種:一種使用傳統(tǒng)的機械鎖,適應(yīng)性強,成本低,但是車輛已易丟失,密碼易破解,漏洞較大;另一種使用藍(lán)牙車鎖,通過匹配用戶與智能車鎖進行連接,減少了開鎖流程,提高了開鎖效率。本研究中采用的車鎖方案為來智能藍(lán)牙車鎖。
3.3.1 掃描二維碼
掃碼功能實現(xiàn)由有多種方式。模塊中主要用到的類為Googlezxing庫中的CaptureActivity,通過調(diào)用該類,實現(xiàn)對二維碼的解析,系統(tǒng)將解析的值保存以備系統(tǒng)的
3.3.2 開鎖
用戶在掃碼之前開啟手機藍(lán)牙建立與自行車端的連接,然后將獲取到的二維碼信息發(fā)送至系統(tǒng)后臺,系統(tǒng)通過手機將開鎖指令下發(fā)并開啟藍(lán)牙鎖,開鎖流程如圖3-2所示。
圖3-3 開鎖流程圖
用戶開鎖成功后APP進入二級界面,通過獲取手機的IMEI唯一標(biāo)識碼作為系統(tǒng)的entity信息,通過設(shè)定軌跡定位周期和回傳周期(回傳周期最大不能超過定位周期的10倍,回傳周期不能小于定位周期的整數(shù)倍)節(jié)省電量和流量。
3.4.1 entity的選擇
接入鷹眼軌跡平臺服務(wù),自行車的位置需要使用一個entity信息。該entity應(yīng)具有唯一性和穩(wěn)定性,當(dāng)用戶在注銷賬號時,容易造成entity的空余,顯然該方式不滿足。通過使用手機IMEI值充當(dāng)自行車的entity信息,IMEI是手機的唯一標(biāo)示,通過獲取用戶手機的權(quán)限,取得手機的IMEI值,核心代碼如下:
TelephonyManager telephonyManager=(TelephonyMa nager) getSystemService(context.TELEPHONY_SERVICE);
3.4.2 獲取騎行信息
通過定義三個變量,時間、距離、費用存儲用戶的騎行信息。使用類BMKMapPoint將系統(tǒng)獲取到的位置進行定義,通過CLLocationDistance來計算相隔兩點之間距離。
還車過程是整個系統(tǒng)的重要環(huán)節(jié)之一。自行車的歸還影響著自行車精度。由于采用基站+GPRS的定位方式,自行車的位置信息依賴于用戶手機,通過建立手機端與自行車鎖之間的藍(lán)牙連接,設(shè)置彈窗和震動提示,當(dāng)用戶遠(yuǎn)離自行車時提醒用戶在手機端結(jié)束行程。用戶在結(jié)束行程后,系統(tǒng)停止回傳位置信息并結(jié)束計費。此時自行車出于離線狀態(tài),可以被系統(tǒng)檢測到。用戶還車圖如圖3-5所示。
圖3-5 還車圖
本文主要就高校閑置自行車的大量堆積現(xiàn)象進行分析并提出了相應(yīng)的解決方案,針對方案中相關(guān)的核心技術(shù)實現(xiàn)方式進行介紹,最終對APP進行運行測試。測試結(jié)果表明所實現(xiàn)的功能能滿足設(shè)計需要。
[1]宋超. 手機停車APP系統(tǒng)的設(shè)計與實現(xiàn)[D].吉林大學(xué),2016.
[2]房愛軍. 基于藍(lán)牙的無源鎖系統(tǒng)設(shè)計[D].南京師范大學(xué),2015.
[3]2016年中國共享單車市場研究報告.
[4]Apterking 體驗共享單車后對于Locman技術(shù)實現(xiàn)的幾點思考http://www.jianshu.com/p/7f16bcc0e42b.
[5]曾大堃.手機GPS定位頻率對交通出行信息提取精度的影響研究[D].西南交通大學(xué),2016