曾浩銘 劉康 王禧增



摘要:隨著Android手機操作系統的飛速發展,Android系統及應用程序被越來越多的人認識并使用。在校園場景下,上學放學時段時,人流瞬時激增,造成道路不通暢,嚴重影響正常的日常生活。教學樓自習區域人員分散,尋找合適的課室需要花費不少的時間。為了解決上述問題,改善空間上的人流分布,方便生活;開發了這個系統。系統調用百度地圖SDK實現校園內的道路顯示。通過應用與數據庫的互聯互通實現了人流量記錄以及查詢和反饋,方便用戶提早做好時間安排。
關鍵詞:人流量;安卓;應用程序;數據庫;設計與實現
中圖分類號:TP311.5;X799.3? ? ? 文獻標識碼:A
文章編號:1009-3044(2021)30-0101-03
開放科學(資源服務)標識碼(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 背景
由于我國高校辦學的歷史較長,因受制于當時社會經濟和交通的整體發展水平[1],道路較為狹窄。在上學放學的高峰期,主干道難以承受瞬間激增的人流,道路極易產生擁堵現象,不僅對同學的生活產生不便,也存在非常大的安全隱患,一旦有學生不慎摔倒,便可能引發踩踏等安全事故。飯堂和自習區域由于其自身特性,人流量集中激增于特定的一些時間段,如果不錯峰,會導致時間過多的浪費在尋找空閑的位置上。
目前人流量監控系統已經在國內外的多個領域得到了非常廣泛的應用,在一些發達國家,通過在各種商業場所收集數據信息,人流量分析結合客流和消費系統,可以提高銷售率,增加經濟效益。人流量是商業經營情況的重要指標,準確可靠的人流量統計能為商業決策提供強大的支持,有利于管理層適時調整經營戰略,以最快速度響應市場的變化[2]。而在國內,針對商業綜合體、品牌連鎖店、圖書館、展館、景區公園、住宅小區等應用場景,根據其不同的環境情況和需求;企業都分別做出了與之特點相對應的客流量解決方案。在大學生創新創業項目中,也有利用視頻監控系統來設計實現的實驗室入室管理系統等。然而在閱讀論文的過程中,仍未發現有在整體的校園場景下的人流量數據收集與應用的實例。
2 技術手段
2.1 Android系統
系統是基于Android開發的。Android基于Linux技術開發,由操作系統、用戶界面和應用程序組成,允許開發人員自由開發、修改源代碼[3]。主要適用于移動設備,例如手機、平板,智能手表等。與蘋果的應用程序開發相比,安卓的門檻要低得多,只需要把手機用數據線連接上電腦即可安裝自己編寫應用。
2.2 SQLITE數據庫
系統中使用的數據庫為SQLiTE,它是一個進程內的數據庫,實現了自給自足的、無服務器的、零配置的、事務性的數據庫引擎。其使用方法相當簡單,只需要在程序代碼中SQL語句寫成字符串的形式,將其作為值傳入函數即可將其執行。
2.3 Android Studio軟件
系統所使用的開發工具是Android Studio。Android Studio是Google公司在2015年推出的基于Intelli J IDEA的Android開發環境[4]。它為用戶提供了集成的安卓開發工具,內置了安卓模擬機可以非常方便地進行開發與調試。
2.4 百度地圖API
系統中地圖的展示使用了百度地圖SDK,百度地圖api是百度地圖為開發者開發應用軟件而推出的一套應用調用接口,可以方便地為開發者提供各種服務,包括本地地圖的展現,路線導航、定位、地址編碼、路線規劃、搜索定位等[5]。通過調用地圖接口,可以訪問百度地圖提供的數據和服務,構建地圖類應用程序。
3 系統設計
該系統設計有四個模塊,在進入系統后首先進入登錄模塊,完成注冊或輸入用戶名登錄后進入主界面,共有三個功能模塊,分別實現了地圖展示、飯堂的人流量實時查詢與上報以及自習區域的人流量實時查詢與上報。整體界面采用了tablelayout與viewpager結合的技術實現了包含標簽的滑動視圖。系統各部分如圖1所示。
4 系統實現
4.1 歡迎與登錄模塊
用戶在手機系統主界面點擊應用圖標后,進入本系統。首先進入splashActivity實現的“歡迎界面”。在設置的延遲后結束其生命周期,并利用intent可以在不同activity中傳遞消息的機制,啟動新的Activity,跳轉進入登錄模塊。用戶在界面中向EditText輸入賬號密碼等用戶信息進行注冊或登錄操作。在登錄操作中,利用游標得到數據庫中是否存在用戶輸入的信息;若存在,則跳轉至主界面,否則以toast提示登錄失敗。在注冊操作中,將輸入的信息以bean的方式傳入SQL語句,并更新數據庫作為新的一行,由于數據庫的特性,將用戶名作為主鍵,可以保證用戶無法用同樣的用戶名重復注冊。注冊完成后,提示注冊成功并跳轉至主界面。登錄模塊流程圖如圖2所示。
4.2 界面實現
程序的各個界面是由XML文檔編寫的,類繼承自Fragment。
為了在程序中實現通過水平手指手勢或滑動在標簽頁之間進行切換,在系統中使用了安卓提供的ViewPager組件達到了“水平分頁”的目的。將布局掛接到PagerAdapter,使用TabLayout做出標簽頁,最終將TabLayout與ViewPager使用setupWithViewPager()方法關聯。
4.3 查詢與上報
“飯堂”區間與“自習區域”區間的人流量上報與查詢過程極其相似,在此一并闡述。用戶點擊界面中的按鈕來使用所需要的功能,根據用戶點擊的按鈕,系統進入不同的分支邏輯。如果用戶此時需要查詢某一地點的人流量情況,則根據用戶使用Spinner所選擇的地點以及其他屬性,將其作為數據對象寫入SQL語句中,執行后將查詢結果以toast輸出。如果是上報,則將用戶在Spinner中選定的值傳入SQL語句,更新數據庫,以toast告知用戶已寫入數據庫。查詢和上報功能模塊的流程圖如圖3所示。
4.4 地圖顯示
首先需要在項目中配置SDK,添加依賴項,添加混淆文件等。然后直接在JAVA代碼中添加MapView來展示地圖,通過并使用BaiduMapOptions對象設置經緯度坐標,來改變地圖初始化后的顯示的初始位置。
4.5 數據庫
為了方便數據的存儲與查詢,選擇了Android Studio內置的Sqlite數據庫。
用戶通過系統與數據庫進行數據交換。在人流量的問題上,一個地點的屬性包括:“門牌號”可以唯一標識一個房間,用戶上報情況時的時間,當前時段累計的上傳用戶總數,當前時段由用戶上報數據的人流量權數。由上傳用戶總數和用戶上報數據,可以得到給查詢用戶的返回值。圖4為系統的數據庫E-R圖。
數據庫表中共有四個數據成員,分別是Char類型的Id、Datetime類型的Time_submit、int類型的Sum_people和sum。其中,Id是表的主鍵,用于唯一標識地點;Time_submit記錄用戶的上報時間;Sum_people記錄上報的總用戶人數,作為計算權值的數據來源;sum記錄用戶上報的人流量數據。表1為該系統的數據庫結構的數據表。
5 結束語
本文主要介紹了“智行礦大”:面向校園生活的人流量監控系統設計與實現。該系統使用JAVA語言編寫,頁面之間的切換使用了google提供的viewpager組件,引入了百度的sdk實現地圖顯示功能。使用SQLite數據庫實現了用戶登錄、實時查詢和上報各個場景下人流量的功能。
在安卓模擬器中,應用程序可以非常穩定的運行,各個功能區間都能實現其設計要求。用戶可以通過應用程序上傳數據至數據庫,也可以在點擊查詢后快速準確的獲得返回的數據。
系統的不足在于:數據的來源全部依靠用戶的上報,雖然在設計中有依據各個用戶的上報計算權值的方法,但是其可靠性和及時性都得不到充分保障。問題可能還出現在如果當前地點沒有用戶上報,則無法獲取該位置的準確狀況。
未來可以考慮通過教室內的攝像頭來獲取各個教室的人流量信息,這樣的數據來源是準確且具有時效性的。同時,系統所收集的數據也可以對合理安排校園內的人流空間分布有一定的指導作用。
參考文獻:
[1] 況亞勇.高校校園交通安全的問題及對策[J].產業與科技論壇,2020,19(18):222-223.
[2] 覃汝宏.綜合性商業建筑智能化特點分析及新技術應用[J].智能建筑與城市信息,2013(9):54-56.
[3] 張勇.基于Android 平臺的短信發送器實現探秘[J].科學與財富,2013(11):325.
[4] 余亮,王紅,王元航.基于Android Studio的智慧校園多媒體管理App設計[J].電子世界,2020(12):114-115.
[5] 張孝良,曾慶濤,唐明杰,等.基于圖數據庫和百度地圖的快遞物流系統的設計與實現[J].北京印刷學院學報,2021,29(2):141-149.
【通聯編輯:謝媛媛】