曾浩銘 劉康 王禧增



摘要:隨著Android手機(jī)操作系統(tǒng)的飛速發(fā)展,Android系統(tǒng)及應(yīng)用程序被越來(lái)越多的人認(rèn)識(shí)并使用。在校園場(chǎng)景下,上學(xué)放學(xué)時(shí)段時(shí),人流瞬時(shí)激增,造成道路不通暢,嚴(yán)重影響正常的日常生活。教學(xué)樓自習(xí)區(qū)域人員分散,尋找合適的課室需要花費(fèi)不少的時(shí)間。為了解決上述問(wèn)題,改善空間上的人流分布,方便生活;開(kāi)發(fā)了這個(gè)系統(tǒng)。系統(tǒng)調(diào)用百度地圖SDK實(shí)現(xiàn)校園內(nèi)的道路顯示。通過(guò)應(yīng)用與數(shù)據(jù)庫(kù)的互聯(lián)互通實(shí)現(xiàn)了人流量記錄以及查詢和反饋,方便用戶提早做好時(shí)間安排。
關(guān)鍵詞:人流量;安卓;應(yīng)用程序;數(shù)據(jù)庫(kù);設(shè)計(jì)與實(shí)現(xiàn)
中圖分類號(hào):TP311.5;X799.3? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2021)30-0101-03
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Campus Scene Oriented Pedestrian Volume Monitor System Design and Implementation
ZENG Hao-ming, LIU Kang, WANG Xi-zeng
(School of Mechanical Electronic and Information Engineering, China University of Mining and Technology-Beijing, Beijing 100083, China)
Abstract: With the rapid development of the Android mobile operation system, more people are familiar with Android Systems and software. On the campus,during students go to a classroom and after class period, pedestrian volume increase immediately cause traffic jam, influence a lot in daily life. In the self-study area of teaching building, people stay in many different classrooms. It will take some time to find a proper classroom. In order to solve the problems upon, improve the pedestrian lay on space, comfort peoples life; the system if developed. System use SDK provided by BaiduMap to show paths on the campus. By connecting with the Database,the application manages to record pedestrian volume, data collected can be select and feedback, it will help users to make time arrangements in advance.
Key words: pedestrian volume; android; application; database; design and implementation
1 背景
由于我國(guó)高校辦學(xué)的歷史較長(zhǎng),因受制于當(dāng)時(shí)社會(huì)經(jīng)濟(jì)和交通的整體發(fā)展水平[1],道路較為狹窄。在上學(xué)放學(xué)的高峰期,主干道難以承受瞬間激增的人流,道路極易產(chǎn)生擁堵現(xiàn)象,不僅對(duì)同學(xué)的生活產(chǎn)生不便,也存在非常大的安全隱患,一旦有學(xué)生不慎摔倒,便可能引發(fā)踩踏等安全事故。飯?zhí)煤妥粤?xí)區(qū)域由于其自身特性,人流量集中激增于特定的一些時(shí)間段,如果不錯(cuò)峰,會(huì)導(dǎo)致時(shí)間過(guò)多的浪費(fèi)在尋找空閑的位置上。
目前人流量監(jiān)控系統(tǒng)已經(jīng)在國(guó)內(nèi)外的多個(gè)領(lǐng)域得到了非常廣泛的應(yīng)用,在一些發(fā)達(dá)國(guó)家,通過(guò)在各種商業(yè)場(chǎng)所收集數(shù)據(jù)信息,人流量分析結(jié)合客流和消費(fèi)系統(tǒng),可以提高銷售率,增加經(jīng)濟(jì)效益。人流量是商業(yè)經(jīng)營(yíng)情況的重要指標(biāo),準(zhǔn)確可靠的人流量統(tǒng)計(jì)能為商業(yè)決策提供強(qiáng)大的支持,有利于管理層適時(shí)調(diào)整經(jīng)營(yíng)戰(zhàn)略,以最快速度響應(yīng)市場(chǎng)的變化[2]。而在國(guó)內(nèi),針對(duì)商業(yè)綜合體、品牌連鎖店、圖書(shū)館、展館、景區(qū)公園、住宅小區(qū)等應(yīng)用場(chǎng)景,根據(jù)其不同的環(huán)境情況和需求;企業(yè)都分別做出了與之特點(diǎn)相對(duì)應(yīng)的客流量解決方案。在大學(xué)生創(chuàng)新創(chuàng)業(yè)項(xiàng)目中,也有利用視頻監(jiān)控系統(tǒng)來(lái)設(shè)計(jì)實(shí)現(xiàn)的實(shí)驗(yàn)室入室管理系統(tǒng)等。然而在閱讀論文的過(guò)程中,仍未發(fā)現(xiàn)有在整體的校園場(chǎng)景下的人流量數(shù)據(jù)收集與應(yīng)用的實(shí)例。
2 技術(shù)手段
2.1 Android系統(tǒng)
系統(tǒng)是基于Android開(kāi)發(fā)的。Android基于Linux技術(shù)開(kāi)發(fā),由操作系統(tǒng)、用戶界面和應(yīng)用程序組成,允許開(kāi)發(fā)人員自由開(kāi)發(fā)、修改源代碼[3]。主要適用于移動(dòng)設(shè)備,例如手機(jī)、平板,智能手表等。與蘋(píng)果的應(yīng)用程序開(kāi)發(fā)相比,安卓的門(mén)檻要低得多,只需要把手機(jī)用數(shù)據(jù)線連接上電腦即可安裝自己編寫(xiě)應(yīng)用。
2.2 SQLITE數(shù)據(jù)庫(kù)
系統(tǒng)中使用的數(shù)據(jù)庫(kù)為SQLiTE,它是一個(gè)進(jìn)程內(nèi)的數(shù)據(jù)庫(kù),實(shí)現(xiàn)了自給自足的、無(wú)服務(wù)器的、零配置的、事務(wù)性的數(shù)據(jù)庫(kù)引擎。其使用方法相當(dāng)簡(jiǎn)單,只需要在程序代碼中SQL語(yǔ)句寫(xiě)成字符串的形式,將其作為值傳入函數(shù)即可將其執(zhí)行。
2.3 Android Studio軟件
系統(tǒng)所使用的開(kāi)發(fā)工具是Android Studio。Android Studio是Google公司在2015年推出的基于Intelli J IDEA的Android開(kāi)發(fā)環(huán)境[4]。它為用戶提供了集成的安卓開(kāi)發(fā)工具,內(nèi)置了安卓模擬機(jī)可以非常方便地進(jìn)行開(kāi)發(fā)與調(diào)試。
2.4 百度地圖API
系統(tǒng)中地圖的展示使用了百度地圖SDK,百度地圖api是百度地圖為開(kāi)發(fā)者開(kāi)發(fā)應(yīng)用軟件而推出的一套應(yīng)用調(diào)用接口,可以方便地為開(kāi)發(fā)者提供各種服務(wù),包括本地地圖的展現(xiàn),路線導(dǎo)航、定位、地址編碼、路線規(guī)劃、搜索定位等[5]。通過(guò)調(diào)用地圖接口,可以訪問(wèn)百度地圖提供的數(shù)據(jù)和服務(wù),構(gòu)建地圖類應(yīng)用程序。
3 系統(tǒng)設(shè)計(jì)
該系統(tǒng)設(shè)計(jì)有四個(gè)模塊,在進(jìn)入系統(tǒng)后首先進(jìn)入登錄模塊,完成注冊(cè)或輸入用戶名登錄后進(jìn)入主界面,共有三個(gè)功能模塊,分別實(shí)現(xiàn)了地圖展示、飯?zhí)玫娜肆髁繉?shí)時(shí)查詢與上報(bào)以及自習(xí)區(qū)域的人流量實(shí)時(shí)查詢與上報(bào)。整體界面采用了tablelayout與viewpager結(jié)合的技術(shù)實(shí)現(xiàn)了包含標(biāo)簽的滑動(dòng)視圖。系統(tǒng)各部分如圖1所示。
4 系統(tǒng)實(shí)現(xiàn)
4.1 歡迎與登錄模塊
用戶在手機(jī)系統(tǒng)主界面點(diǎn)擊應(yīng)用圖標(biāo)后,進(jìn)入本系統(tǒng)。首先進(jìn)入splashActivity實(shí)現(xiàn)的“歡迎界面”。在設(shè)置的延遲后結(jié)束其生命周期,并利用intent可以在不同activity中傳遞消息的機(jī)制,啟動(dòng)新的Activity,跳轉(zhuǎn)進(jìn)入登錄模塊。用戶在界面中向EditText輸入賬號(hào)密碼等用戶信息進(jìn)行注冊(cè)或登錄操作。在登錄操作中,利用游標(biāo)得到數(shù)據(jù)庫(kù)中是否存在用戶輸入的信息;若存在,則跳轉(zhuǎn)至主界面,否則以toast提示登錄失敗。在注冊(cè)操作中,將輸入的信息以bean的方式傳入SQL語(yǔ)句,并更新數(shù)據(jù)庫(kù)作為新的一行,由于數(shù)據(jù)庫(kù)的特性,將用戶名作為主鍵,可以保證用戶無(wú)法用同樣的用戶名重復(fù)注冊(cè)。注冊(cè)完成后,提示注冊(cè)成功并跳轉(zhuǎn)至主界面。登錄模塊流程圖如圖2所示。
4.2 界面實(shí)現(xiàn)
程序的各個(gè)界面是由XML文檔編寫(xiě)的,類繼承自Fragment。
為了在程序中實(shí)現(xiàn)通過(guò)水平手指手勢(shì)或滑動(dòng)在標(biāo)簽頁(yè)之間進(jìn)行切換,在系統(tǒng)中使用了安卓提供的ViewPager組件達(dá)到了“水平分頁(yè)”的目的。將布局掛接到PagerAdapter,使用TabLayout做出標(biāo)簽頁(yè),最終將TabLayout與ViewPager使用setupWithViewPager()方法關(guān)聯(lián)。
4.3 查詢與上報(bào)
“飯?zhí)谩眳^(qū)間與“自習(xí)區(qū)域”區(qū)間的人流量上報(bào)與查詢過(guò)程極其相似,在此一并闡述。用戶點(diǎn)擊界面中的按鈕來(lái)使用所需要的功能,根據(jù)用戶點(diǎn)擊的按鈕,系統(tǒng)進(jìn)入不同的分支邏輯。如果用戶此時(shí)需要查詢某一地點(diǎn)的人流量情況,則根據(jù)用戶使用Spinner所選擇的地點(diǎn)以及其他屬性,將其作為數(shù)據(jù)對(duì)象寫(xiě)入SQL語(yǔ)句中,執(zhí)行后將查詢結(jié)果以toast輸出。如果是上報(bào),則將用戶在Spinner中選定的值傳入SQL語(yǔ)句,更新數(shù)據(jù)庫(kù),以toast告知用戶已寫(xiě)入數(shù)據(jù)庫(kù)。查詢和上報(bào)功能模塊的流程圖如圖3所示。
4.4 地圖顯示
首先需要在項(xiàng)目中配置SDK,添加依賴項(xiàng),添加混淆文件等。然后直接在JAVA代碼中添加MapView來(lái)展示地圖,通過(guò)并使用BaiduMapOptions對(duì)象設(shè)置經(jīng)緯度坐標(biāo),來(lái)改變地圖初始化后的顯示的初始位置。
4.5 數(shù)據(jù)庫(kù)
為了方便數(shù)據(jù)的存儲(chǔ)與查詢,選擇了Android Studio內(nèi)置的Sqlite數(shù)據(jù)庫(kù)。
用戶通過(guò)系統(tǒng)與數(shù)據(jù)庫(kù)進(jìn)行數(shù)據(jù)交換。在人流量的問(wèn)題上,一個(gè)地點(diǎn)的屬性包括:“門(mén)牌號(hào)”可以唯一標(biāo)識(shí)一個(gè)房間,用戶上報(bào)情況時(shí)的時(shí)間,當(dāng)前時(shí)段累計(jì)的上傳用戶總數(shù),當(dāng)前時(shí)段由用戶上報(bào)數(shù)據(jù)的人流量權(quán)數(shù)。由上傳用戶總數(shù)和用戶上報(bào)數(shù)據(jù),可以得到給查詢用戶的返回值。圖4為系統(tǒng)的數(shù)據(jù)庫(kù)E-R圖。
數(shù)據(jù)庫(kù)表中共有四個(gè)數(shù)據(jù)成員,分別是Char類型的Id、Datetime類型的Time_submit、int類型的Sum_people和sum。其中,Id是表的主鍵,用于唯一標(biāo)識(shí)地點(diǎn);Time_submit記錄用戶的上報(bào)時(shí)間;Sum_people記錄上報(bào)的總用戶人數(shù),作為計(jì)算權(quán)值的數(shù)據(jù)來(lái)源;sum記錄用戶上報(bào)的人流量數(shù)據(jù)。表1為該系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)的數(shù)據(jù)表。
5 結(jié)束語(yǔ)
本文主要介紹了“智行礦大”:面向校園生活的人流量監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)。該系統(tǒng)使用JAVA語(yǔ)言編寫(xiě),頁(yè)面之間的切換使用了google提供的viewpager組件,引入了百度的sdk實(shí)現(xiàn)地圖顯示功能。使用SQLite數(shù)據(jù)庫(kù)實(shí)現(xiàn)了用戶登錄、實(shí)時(shí)查詢和上報(bào)各個(gè)場(chǎng)景下人流量的功能。
在安卓模擬器中,應(yīng)用程序可以非常穩(wěn)定的運(yùn)行,各個(gè)功能區(qū)間都能實(shí)現(xiàn)其設(shè)計(jì)要求。用戶可以通過(guò)應(yīng)用程序上傳數(shù)據(jù)至數(shù)據(jù)庫(kù),也可以在點(diǎn)擊查詢后快速準(zhǔn)確的獲得返回的數(shù)據(jù)。
系統(tǒng)的不足在于:數(shù)據(jù)的來(lái)源全部依靠用戶的上報(bào),雖然在設(shè)計(jì)中有依據(jù)各個(gè)用戶的上報(bào)計(jì)算權(quán)值的方法,但是其可靠性和及時(shí)性都得不到充分保障。問(wèn)題可能還出現(xiàn)在如果當(dāng)前地點(diǎn)沒(méi)有用戶上報(bào),則無(wú)法獲取該位置的準(zhǔn)確狀況。
未來(lái)可以考慮通過(guò)教室內(nèi)的攝像頭來(lái)獲取各個(gè)教室的人流量信息,這樣的數(shù)據(jù)來(lái)源是準(zhǔn)確且具有時(shí)效性的。同時(shí),系統(tǒng)所收集的數(shù)據(jù)也可以對(duì)合理安排校園內(nèi)的人流空間分布有一定的指導(dǎo)作用。
參考文獻(xiàn):
[1] 況亞勇.高校校園交通安全的問(wèn)題及對(duì)策[J].產(chǎn)業(yè)與科技論壇,2020,19(18):222-223.
[2] 覃汝宏.綜合性商業(yè)建筑智能化特點(diǎn)分析及新技術(shù)應(yīng)用[J].智能建筑與城市信息,2013(9):54-56.
[3] 張勇.基于Android 平臺(tái)的短信發(fā)送器實(shí)現(xiàn)探秘[J].科學(xué)與財(cái)富,2013(11):325.
[4] 余亮,王紅,王元航.基于Android Studio的智慧校園多媒體管理App設(shè)計(jì)[J].電子世界,2020(12):114-115.
[5] 張孝良,曾慶濤,唐明杰,等.基于圖數(shù)據(jù)庫(kù)和百度地圖的快遞物流系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].北京印刷學(xué)院學(xué)報(bào),2021,29(2):141-149.
【通聯(lián)編輯:謝媛媛】