張玉輝 駱訓(xùn)星
摘? 要:隨著我國(guó)疫情防控政策的調(diào)整,如何有效調(diào)整校園疫情防控措施也成為高校管理亟須解決的問題。系統(tǒng)依據(jù)湖南石油化工職業(yè)技術(shù)學(xué)院疫情防控情況,基于地理圍欄技術(shù),以優(yōu)化高校疫情防控為目標(biāo)而設(shè)計(jì)并實(shí)現(xiàn)。系統(tǒng)采用Android平臺(tái),基于百度地圖技術(shù),實(shí)現(xiàn)了三套子系統(tǒng):學(xué)生APP、老師APP和管理員Web。系統(tǒng)業(yè)務(wù)功能劃分為信息認(rèn)證、終端綁定、軌跡采集、異常推送、異常處理和系統(tǒng)管理。該系統(tǒng)使高校疫情防控更加智能化、便利化與精確化。
關(guān)鍵詞:地理圍欄;軌跡;Android平臺(tái)
中圖分類號(hào):TP311.5? 文獻(xiàn)標(biāo)識(shí)碼:A? 文章編號(hào):2096-4706(2023)12-0032-04
Design and Implementation of Campus Epidemic Situation Prevention and Control System Based on Geofencing
ZHANG Yuhui, LUO Xunxing
(Hunan Petrochemical Vocational Technology College, Yueyang? 414000, China)
Abstract: With the adjustment of China's epidemic situation prevention and control policies, how to effectively adjust the epidemic situation prevention and control measures on campus has become an urgent problem for campus management. According to the situation of epidemic situation prevention and control in Hunan Petrochemical Vocational Technology College, the system is designed and implemented based on the geofencing technology to optimize the epidemic situation prevention and control in colleges and universities. This system realizes three sets of sub-systems based on the Android platform and Baidu map technology: student APP, teacher APP and administrator Web. The service functions of the system are divided into information authentication, terminal binding, track collection, exception push, exception handling and system management. The system makes epidemic situation prevention and control in universities more intelligent, convenient and precise.
Keywords: geofencing; trace; Android platform
0? 引? 言
2019年12月,一場(chǎng)突如其來的新冠疫情席卷全國(guó),致使全國(guó)進(jìn)入緊張的“抗疫”狀態(tài)[1]。隨著新冠病毒毒力的不斷下降,致病性的大大減弱,國(guó)家于2022年12月份全面調(diào)整疫情防控政策,目前未發(fā)現(xiàn)病毒變異株傳播力、免疫逃逸能力和致病力明顯增強(qiáng)的情況,但要慎終抓好疫情防控,繼續(xù)做好重點(diǎn)人群的健康服務(wù)。校園作為人群聚集密度大的場(chǎng)所,由于具有人員復(fù)雜、社會(huì)關(guān)注度高、風(fēng)險(xiǎn)點(diǎn)密集的特點(diǎn)[2],給校園的防疫工作帶來了極大的壓力。
隨著互聯(lián)網(wǎng)技術(shù)的快速發(fā)展,移動(dòng)通信設(shè)備上的功能越來越多[3]。各種藍(lán)牙技術(shù)、Wi-Fi技術(shù)不斷突破,外部設(shè)備和移動(dòng)通信設(shè)備的有利結(jié)合為高校的教學(xué)與管理提供了極大的便利。目前,高校的信息化系統(tǒng)主要用于教務(wù)管理與學(xué)生信息管理,從疫情的出現(xiàn)至今,信息化系統(tǒng)對(duì)于校園疫情的安全與防護(hù)并未提供有效的支持。部分高校為實(shí)現(xiàn)校園疫情防控的智能化,通過引入一套獨(dú)立的物聯(lián)網(wǎng)設(shè)備而實(shí)現(xiàn)。但新設(shè)備無法與現(xiàn)有信息系統(tǒng)有效融合,且需要進(jìn)行物理環(huán)境的改造。針對(duì)上述情況,且基于疫情開放后的防疫政策,本文以Android系統(tǒng)為平臺(tái),結(jié)合GIS,運(yùn)用地理圍欄技術(shù),設(shè)計(jì)并實(shí)現(xiàn)了基于地理圍欄的高校疫情防控系統(tǒng)。
1? 地理圍欄技術(shù)
地理圍欄技術(shù)通過為終端設(shè)備設(shè)置一個(gè)虛擬的地理圍欄,去監(jiān)控終端設(shè)備是否有進(jìn)出地理圍欄的行為,并將報(bào)警信息推送至監(jiān)控用戶或服務(wù)器,實(shí)現(xiàn)對(duì)被監(jiān)控用戶的行動(dòng)管理。地理圍欄可設(shè)置為圓形圍欄、多邊形圍欄、路線圍欄和行政區(qū)圍欄。圓形圍欄監(jiān)控對(duì)象是否進(jìn)出設(shè)定的圓形范圍內(nèi);多邊形圍欄可由管理者自定圍欄形狀,監(jiān)控對(duì)象是否進(jìn)出設(shè)定的多邊形范圍內(nèi);路線圍欄監(jiān)控對(duì)象是否偏離設(shè)定路線一定距離;行政區(qū)圍欄監(jiān)控對(duì)象是否進(jìn)出設(shè)定行政區(qū)域。
本系統(tǒng)的地理圍欄采用了百度的鷹眼軌跡服務(wù),鷹眼軌跡服務(wù)采用衛(wèi)星、Wi-Fi(只需打開Wi-Fi開關(guān),而無須連上Wi-Fi)和基站進(jìn)行綜合定位,并根據(jù)開發(fā)者設(shè)置的定位頻率定期采集軌跡,通過TCP長(zhǎng)鏈接將定位依據(jù)(衛(wèi)星、Wi-Fi、基站信息等)回傳至鷹眼云端,鷹眼云端根據(jù)定位依據(jù)計(jì)算出坐標(biāo)并存儲(chǔ)。鷹眼的定位精度由采用的定位方式?jīng)Q定,衛(wèi)星為10 m,Wi-Fi為24 m,基站為210 m,高精度室內(nèi)定位為1~3 m。當(dāng)移動(dòng)網(wǎng)絡(luò)中斷時(shí),鷹眼會(huì)自動(dòng)緩存軌跡數(shù)據(jù),待再次聯(lián)網(wǎng)時(shí)及時(shí)上傳軌跡數(shù)據(jù),使得即使在終端斷網(wǎng)且無衛(wèi)星信號(hào)時(shí),仍能通過Wi-Fi和基站進(jìn)行補(bǔ)充定位,保證軌跡的完整性。地理圍欄的服務(wù)流程如圖1所示。
2? 設(shè)計(jì)與實(shí)現(xiàn)
2.1? 高校疫情防控系統(tǒng)整體架構(gòu)
本系統(tǒng)基于百度SDK,運(yùn)用了其中的Android地圖SDK和Android鷹眼軌跡SDK,通過Android地圖SDK訪問百度地圖服務(wù)和數(shù)據(jù),構(gòu)建了功能豐富、交互性強(qiáng)的地圖,通過Android鷹眼軌跡服務(wù)構(gòu)建了完整、精確且高性能的軌跡管理系統(tǒng)。
本系統(tǒng)實(shí)現(xiàn)了兩套APP(分別為學(xué)生APP與教師APP)和一套基于Web的管理子系統(tǒng)。學(xué)生APP包括的功能主要有:學(xué)生信息認(rèn)證、終端設(shè)備綁定、軌跡采集和軌跡異常推送。教師APP包括的功能主要有:終端更改審核、軌跡查詢、學(xué)生信息查詢和異常軌跡查詢。管理子系統(tǒng)包括的功能模塊主要有:學(xué)生管理模塊、教師管理模塊、地理圍欄管理模塊和終端管理模塊?;诘乩韲鷻诘母咝R咔榉揽叵到y(tǒng)的總體框架如圖2所示。
2.2? 高校疫情防控系統(tǒng)各功能的設(shè)計(jì)與實(shí)現(xiàn)
2.2.1? 學(xué)生信息認(rèn)證
隨著移動(dòng)通信技術(shù)的發(fā)展與智能終端的普及化[4],各種移動(dòng)智能終端應(yīng)用應(yīng)運(yùn)而生,智能手機(jī)成為學(xué)生學(xué)習(xí)與生活中不可或缺的工具,為了能準(zhǔn)確的實(shí)現(xiàn)對(duì)某位學(xué)生服務(wù),學(xué)生APP在初次使用時(shí),要求學(xué)生輸入正確的學(xué)號(hào),APP向后端應(yīng)用服務(wù)器發(fā)送請(qǐng)求,應(yīng)用服務(wù)器根據(jù)學(xué)號(hào)查詢數(shù)據(jù)庫,并將查詢結(jié)果以JSON格式返回至APP,APP提取返回?cái)?shù)據(jù),如查詢成功,APP將進(jìn)入信息認(rèn)證界面(如圖3所示)。如查詢失敗,表示該學(xué)號(hào)不存在,則無法使用該系統(tǒng)。學(xué)生信息認(rèn)證功能采用集成Bmob庫的方式,實(shí)現(xiàn)手機(jī)短信驗(yàn)證的功能。完成手機(jī)短信驗(yàn)證后,APP將請(qǐng)求應(yīng)用服務(wù)器將此學(xué)號(hào)與該手機(jī)號(hào)碼進(jìn)行綁定,通過繼承Android SDK中SQLiteOpenHelper類,并調(diào)用該子類對(duì)象的getWritableDatabase().insert()方法,將學(xué)生信息保存在終端設(shè)備的本地?cái)?shù)據(jù)庫中,在之后使用中,APP通過查詢?cè)O(shè)備終端的本地?cái)?shù)據(jù)庫自動(dòng)完成認(rèn)證。
2.2.2? 終端設(shè)備綁定
Android是目前市場(chǎng)占有率最高的智能終端操作系統(tǒng),其數(shù)據(jù)處理能力可以滿足人們?nèi)粘I钪械慕^大部分需求[5]。系統(tǒng)選用Android智能手機(jī)作為設(shè)備終端,設(shè)備終端的Wi-Fi無線網(wǎng)卡所包含的MAC地址因其具有唯一性,系統(tǒng)選擇MAC地址作為終端設(shè)備的唯一性標(biāo)識(shí)。MAC地址的獲取通過Android SDK中NetworkInterface類的getByInetAddress()方法獲取,MAC地址默認(rèn)為48位,將48位的MAC地址轉(zhuǎn)換成百度SDK所能識(shí)別的entity字符串,每個(gè)entity表示一臺(tái)終端設(shè)備。終端設(shè)備第一次運(yùn)行系統(tǒng)將進(jìn)行設(shè)備綁定,通過調(diào)用應(yīng)用程序接口將entity提交至應(yīng)用服務(wù)器,并與該學(xué)生進(jìn)行綁定。應(yīng)用服務(wù)器完成設(shè)備與學(xué)生綁定后,學(xué)生APP將entity賦值給百度SDK的Trace對(duì)象,進(jìn)行軌跡服務(wù)的初始化。
2.2.3? 軌跡采集
終端通過百度SDK的LBSTraceClient類的queryRealTimeLoc
()方法或queryLatestPoint()方法(在軌跡追蹤服務(wù)與數(shù)據(jù)采集已開啟的前提下調(diào)用此方法)進(jìn)行定位,系統(tǒng)優(yōu)先啟用定位精度高的衛(wèi)星定位,在衛(wèi)星定位無法成功的情況下,依次選擇Wi-Fi定位或基站定位。系統(tǒng)通過LBSTraceClient類的setInterval(gatherInterval, packInterval)方法設(shè)置位置采集與打包周期,并通過Android SDK中Service服務(wù)實(shí)現(xiàn)在不同時(shí)段采用不同的定位周期與打包周期。為節(jié)省電量和流量,系統(tǒng)在完成多次定位后,再將軌跡數(shù)據(jù)打包并壓縮,并將軌跡數(shù)據(jù)提交至服務(wù)器。在網(wǎng)絡(luò)狀態(tài)良好的情況下,系統(tǒng)將與服務(wù)器建立連接,并進(jìn)行軌跡采集與數(shù)據(jù)提交操作。在軌跡采集的過程中如出現(xiàn)網(wǎng)絡(luò)中斷,無法與服務(wù)器連接時(shí),系統(tǒng)將開啟緩存模式,將采集的數(shù)據(jù)保存到終端的本地?cái)?shù)據(jù)庫中,并監(jiān)聽網(wǎng)絡(luò)狀態(tài),直到網(wǎng)絡(luò)恢復(fù)正常,系統(tǒng)將重新與服務(wù)器建立連接,通過LBSTraceClient中的queryCacheTrack()該終端設(shè)備的緩存軌跡信息,并將緩存的軌跡數(shù)據(jù)上傳至服務(wù)器。系統(tǒng)未限制緩存的數(shù)據(jù)量,只要終端設(shè)備的存儲(chǔ)空間未滿,系統(tǒng)持續(xù)緩存,直到網(wǎng)絡(luò)恢復(fù)正?;蚪K端設(shè)備存儲(chǔ)空間已滿。
2.2.4? 軌跡異常推送
設(shè)備終端超出地理圍欄設(shè)定的范圍時(shí),設(shè)備終端將進(jìn)行異常推送。異常推送至鷹眼SDK,由OnTraceListener監(jiān)聽器中的onPushCallback()推送回調(diào)函數(shù)接收異常信息,在此回調(diào)函數(shù)中通過Android SDK的SmsManager發(fā)送短信至對(duì)應(yīng)老師,并將異常情況上傳至應(yīng)用服務(wù)器進(jìn)行處理。當(dāng)接收異常信息的手機(jī)斷網(wǎng)或網(wǎng)絡(luò)狀態(tài)不好時(shí),會(huì)導(dǎo)致報(bào)警推送失敗,百度鷹眼服務(wù)端將在后續(xù)的10 min之內(nèi)每隔15 s推送一次,直至收到成功響應(yīng)。若10 min之后仍未成功,將不再推送,但報(bào)警記錄將存儲(chǔ)在百度鷹眼服務(wù)端。
2.2.5? 軌跡查詢
為保證數(shù)據(jù)查詢的安全,通過setProtocolType()方法將請(qǐng)求協(xié)議設(shè)置為HTTPS。查詢某位學(xué)生的軌跡信息,首先通過學(xué)號(hào)查詢此生對(duì)應(yīng)的entity,每個(gè)entity對(duì)應(yīng)一臺(tái)設(shè)備終端。軌跡查詢通過鷹眼SDK的LBSTraceClient類對(duì)象的queryEntityList()方法,將對(duì)應(yīng)的entity傳遞給此方法。每次請(qǐng)求可傳遞一個(gè)或多個(gè)entity,實(shí)現(xiàn)一個(gè)或多個(gè)軌跡的查詢。百度鷹眼服務(wù)器將數(shù)據(jù)返回后,將觸發(fā)OnEntityListener監(jiān)聽器,監(jiān)聽器中的onQueryEntityListCallback()方法返回了查詢結(jié)果列表。根據(jù)結(jié)果列表中坐標(biāo)數(shù)據(jù),通過OverlayOptions類轉(zhuǎn)換為路徑線,最后調(diào)用BaiduMap類對(duì)象的addOverlay()方法在地圖上繪制出軌跡圖。軌跡查詢?cè)O(shè)置如圖4所示。
2.2.6? 地理圍欄管理
地理圍欄的管理包括地理圍欄的創(chuàng)建和地理圍欄的刪除。地理圍欄的創(chuàng)建由管理員在鷹眼服務(wù)器端完成,管理員可根據(jù)實(shí)際需求創(chuàng)建圓形圍欄、多邊形圍欄、線型圍欄和行政區(qū)圍欄。以本校的本部校園的實(shí)現(xiàn)為例,創(chuàng)建了多邊形圍欄,如圖5所示。
首先將校園外圍各轉(zhuǎn)角的經(jīng)緯坐標(biāo)以LatLng類對(duì)象添加至集合中,通過鷹眼SDK的CreateFenceRequest類對(duì)象的buildServerPolygonRequest()方法創(chuàng)建鷹眼服務(wù)端多邊形圍欄請(qǐng)求實(shí)例,通過LBSTraceClient類對(duì)象的createFence將多邊形圍欄請(qǐng)求實(shí)例向鷹眼服務(wù)端發(fā)送創(chuàng)建請(qǐng)求,OnFenceListener監(jiān)聽器中的onCreateFenceCallback()回調(diào)函數(shù)接收請(qǐng)求的回調(diào)數(shù)據(jù)。通過onCreateFenceCallback()回調(diào)函數(shù)返回的數(shù)據(jù)對(duì)象,能準(zhǔn)確判斷圍欄創(chuàng)建是否成功。圍欄創(chuàng)建成后,通過調(diào)用返返回?cái)?shù)據(jù)對(duì)象的.getFenceType()與getFenceId()獲取新創(chuàng)建圍欄的類型與key值,并將這些值保存,以用于圍欄的刪除操作。
地理圍欄的創(chuàng)建由管理員在鷹眼服務(wù)器端完成,刪除圍欄首先獲取圍欄的類型與圍欄的key值,圍欄的類型在創(chuàng)建圍欄時(shí)確定,圍欄的key值在成功創(chuàng)建圍欄后返回。如圍欄的類型為服務(wù)器端圍欄,則通過鷹眼SDK的DeleteFenceRequest類調(diào)用buildServerRequest()方法創(chuàng)建服務(wù)器類型的請(qǐng)求;如圍欄的類型為本地圍欄,則通過鷹眼SDK的DeleteFenceRequest類調(diào)用buildLocalRequest()方法創(chuàng)建本地類型的請(qǐng)求。最后通過軌跡客戶端對(duì)象LBSTraceClient向百度服務(wù)器發(fā)送刪除請(qǐng)求,OnFenceListener監(jiān)聽器中的onDeleteFenceCallback ()回調(diào)函數(shù)接收刪除請(qǐng)求的回調(diào)數(shù)據(jù)。通過onDeleteFenceCallback ()回調(diào)數(shù)據(jù)可判斷是否成功刪除圍欄,如刪除成功則清除地圖上欄標(biāo)記點(diǎn),方便系統(tǒng)管理同能直觀判斷圍欄是否存在。
3? 結(jié)? 論
本文基于Android與百度SDK設(shè)計(jì)實(shí)現(xiàn)了基于地理圍欄的高校疫情防控系統(tǒng)。該系統(tǒng)可實(shí)現(xiàn)學(xué)生的活動(dòng)異常管理,為學(xué)校針對(duì)不同疫情態(tài)勢(shì)下的管理工作提供了方便,提升了管理的智能性、及時(shí)性與準(zhǔn)確性。由于系統(tǒng)主要側(cè)重于老師對(duì)學(xué)生的管理,缺少學(xué)生向老師的溝通,可在軌跡采集過程中添加圖片、視頻等數(shù)據(jù)的提交,使學(xué)生能夠及時(shí)告知老師此時(shí)的情況。另一方面,由于Android平臺(tái)出于性能優(yōu)化的原因,如用戶未對(duì)應(yīng)用程序做設(shè)置,則系統(tǒng)會(huì)自動(dòng)關(guān)閉應(yīng)用程序,這會(huì)造成軌跡無法采用,本文將進(jìn)一步基于微信平臺(tái)進(jìn)行開發(fā),以提供更穩(wěn)定、便捷的服務(wù)。
參考文獻(xiàn):
[1] 王慧芳.基于微服務(wù)架構(gòu)的校園疫情防控系統(tǒng)設(shè)計(jì) [J].現(xiàn)代信息科技,2022,6(9):15-18.
[2] 王旭東.智慧校園系統(tǒng)在疫情防控中的應(yīng)用 [J].數(shù)字技術(shù)與應(yīng)用,2022,40(5):202-204.
[3] 王慧芳.基于微服務(wù)架構(gòu)的校園疫情防控系統(tǒng)設(shè)計(jì) [J].現(xiàn)代信息科技,2022,6(9):15-18.
[4] 王靜,劉飛.基于地理圍欄的景點(diǎn)信息推送設(shè)計(jì)與實(shí)現(xiàn) [J].科技視界,2022(21):16-18.
[5] 惠鴻飛.基于安卓平臺(tái)的多源異構(gòu)人員定位導(dǎo)航系統(tǒng)研究 [D].重慶:重慶郵電大學(xué),2021.
作者簡(jiǎn)介:張玉輝(1983.10—),男,漢族,湖南岳陽人,講師,碩士,研究方向:機(jī)器學(xué)習(xí)。