符晨曦 ,程 鋼,2 ,董文帥 ,岳俊升 ,張清蘭
(1.河南理工大學(xué) 測(cè)繪與國土信息工程學(xué)院,河南 焦作 454000;2.礦山空間信息技術(shù)國家測(cè)繪地理信息局重點(diǎn)實(shí)驗(yàn)室,河南 焦作 454000)
隨著中國社會(huì)的快速轉(zhuǎn)型和變遷,家庭呈現(xiàn)小型化趨勢(shì),家庭結(jié)構(gòu)由家族式縮小為父母子女式,家庭內(nèi)非勞動(dòng)力人口與勞動(dòng)力人口之比快速攀升[1]。隨之帶來的是家庭成員的監(jiān)護(hù)問題,尤其是老人、兒童等弱勢(shì)群體的安全監(jiān)護(hù)問題。弱勢(shì)群體走失、被拐背后隱藏的一個(gè)關(guān)鍵信息是位置信息,如何借助專業(yè)學(xué)科知識(shí)解決這個(gè)社會(huì)實(shí)際問題現(xiàn)實(shí)而迫切。
近些年來,基于位置的服務(wù)(Location Based Service, LBS)受到越來越多的關(guān)注。該技術(shù)將定位技術(shù)、移動(dòng)通訊技術(shù)、地理信息系統(tǒng)技術(shù)和互聯(lián)網(wǎng)技術(shù)相結(jié)合[2],借助全球衛(wèi)星導(dǎo)航定位系統(tǒng)(Global Navigation Satellite System, GNSS)或無線電通訊網(wǎng)絡(luò)進(jìn)行定位,獲取用戶位置信息,并在地理信息系統(tǒng)平臺(tái)支持下為用戶提供相應(yīng)服務(wù)[3]。地理圍欄(Geo-fencing)是LBS的一個(gè)新應(yīng)用,通過被監(jiān)護(hù)者的實(shí)時(shí)位置與虛擬圍欄的關(guān)系,判斷被監(jiān)護(hù)者的安全狀態(tài),進(jìn)行軌跡跟蹤,并根據(jù)情況進(jìn)行必要預(yù)警[4]。智能手機(jī)具有定位模塊,便于隨身攜帶,是實(shí)現(xiàn)地理圍欄技術(shù)的合適載體。
針對(duì)當(dāng)前已有的監(jiān)護(hù)系統(tǒng)功能單一、多對(duì)象監(jiān)控查看不便、消息反饋不及時(shí)等不足之處[5],本文基于智能終端系統(tǒng),設(shè)計(jì)開發(fā)一種可對(duì)多個(gè)監(jiān)護(hù)對(duì)象同時(shí)進(jìn)行監(jiān)護(hù),對(duì)基于GNSS和GIS技術(shù)的定位、跟蹤顯示、圍欄分析以及超速、超時(shí)、摔倒等實(shí)時(shí)檢測(cè)技術(shù)和方法進(jìn)行探索。
本文設(shè)計(jì)的系統(tǒng)采用C/S模式,由兩個(gè)客戶端和一個(gè)服務(wù)器組成。兩個(gè)客戶端分別是被監(jiān)護(hù)端和監(jiān)護(hù)端。被監(jiān)護(hù)端主要負(fù)責(zé)收集被監(jiān)護(hù)者的移動(dòng)狀態(tài)數(shù)據(jù)并實(shí)時(shí)將數(shù)據(jù)上傳到服務(wù)器,進(jìn)行超速、摔倒分析并在緊急情況時(shí)向監(jiān)護(hù)端發(fā)送預(yù)警通知。監(jiān)護(hù)端根據(jù)從服務(wù)器下載的被監(jiān)控端數(shù)據(jù)利用空間分析技術(shù)實(shí)時(shí)顯示被監(jiān)控端的位置,判斷其與虛擬地理圍欄的關(guān)系,進(jìn)行危險(xiǎn)性分析。服務(wù)器負(fù)責(zé)在后臺(tái)存儲(chǔ)數(shù)據(jù)、審核信息、查詢系統(tǒng)日志以及被監(jiān)護(hù)端和監(jiān)護(hù)端之間的信息傳輸。
服務(wù)器與客戶端之間的通信采用HTTP協(xié)議的JSP技術(shù)[6],數(shù)據(jù)同步通過HTTP的POST方式實(shí)現(xiàn),其中客戶端的請(qǐng)求方式是HTTP的Request方式,服務(wù)端的應(yīng)答方式是HTTP的Response方式[7],數(shù)據(jù)格式是JSON。
系統(tǒng)主要有注冊(cè)登錄、個(gè)人中心、路徑導(dǎo)航、移動(dòng)狀態(tài)采集、移動(dòng)狀態(tài)顯示和安全狀態(tài)預(yù)警等6個(gè)功能模塊,其中,注冊(cè)登錄、個(gè)人中心、路徑導(dǎo)航布置在監(jiān)護(hù)端和被監(jiān)護(hù)端;移動(dòng)狀態(tài)采集、超速預(yù)警和摔倒預(yù)警布置在被監(jiān)護(hù)端,移動(dòng)狀態(tài)顯示、安全圍欄預(yù)警功能布置在監(jiān)護(hù)端;用戶信息和狀態(tài)數(shù)據(jù)存儲(chǔ)、中轉(zhuǎn)和管理由服務(wù)器端完成。系統(tǒng)功能結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)功能結(jié)構(gòu)概圖
系統(tǒng)工作主要的業(yè)務(wù)流程如下:
1)注冊(cè)及建立監(jiān)護(hù)關(guān)系。監(jiān)護(hù)者和被監(jiān)護(hù)者分別在監(jiān)護(hù)端和被監(jiān)護(hù)端進(jìn)行注冊(cè),被監(jiān)護(hù)者注冊(cè)后會(huì)從服務(wù)器獲得一個(gè)用于身份識(shí)別的唯一標(biāo)識(shí)符,監(jiān)護(hù)者登錄系統(tǒng)后通過添加唯一標(biāo)識(shí)符的方式與多個(gè)被監(jiān)護(hù)端形成監(jiān)護(hù)關(guān)系。
2)被監(jiān)護(hù)端將移動(dòng)狀態(tài)數(shù)據(jù)獲取、上傳,超速、摔倒預(yù)警。被監(jiān)護(hù)端獲取本機(jī)的位置、速度、加速度等數(shù)據(jù),并將位置、速度數(shù)據(jù)實(shí)時(shí)上傳至服務(wù)器。根據(jù)速度、加速度數(shù)據(jù)結(jié)合相應(yīng)的算法判斷被監(jiān)護(hù)者是否處于正常移動(dòng)速度和是否摔倒,在其處于危險(xiǎn)狀態(tài)時(shí)通過自動(dòng)發(fā)短信的方式向監(jiān)護(hù)者發(fā)出求助信息。
3)監(jiān)護(hù)端獲取被監(jiān)護(hù)者路徑數(shù)據(jù),進(jìn)行圍欄判斷及預(yù)警。監(jiān)護(hù)端預(yù)先設(shè)置好安全區(qū)域和安全路線等安全圍欄,再結(jié)合從服務(wù)器下載得到的被監(jiān)護(hù)端的位置數(shù)據(jù),利用GIS分析方法判斷被監(jiān)護(hù)者是否在安全區(qū)域內(nèi)或移動(dòng)時(shí)是否偏離了安全路線,當(dāng)被監(jiān)護(hù)者離開安全區(qū)域或安全路線時(shí),監(jiān)護(hù)端會(huì)收到安全預(yù)警通知。監(jiān)護(hù)者接收到求助信息或安全預(yù)警通知后可通過路徑導(dǎo)航功能查詢到達(dá)被監(jiān)護(hù)者的最優(yōu)路徑。
在個(gè)人自愿的基礎(chǔ)上,未成年子女和行動(dòng)不便的老人可以允許其父母或子女實(shí)時(shí)查看自己的位置,并進(jìn)行安全監(jiān)護(hù)。系統(tǒng)數(shù)據(jù)包含必要的監(jiān)護(hù)與被監(jiān)護(hù)人信息、監(jiān)護(hù)關(guān)系、被監(jiān)護(hù)人的位置和路徑信息,需要借助數(shù)據(jù)進(jìn)行存儲(chǔ)和管理。這些數(shù)據(jù)是進(jìn)行安全分析、信息推送等工作的基礎(chǔ)。根據(jù)系統(tǒng)功能設(shè)計(jì),本文對(duì)服務(wù)器數(shù)據(jù)庫進(jìn)行了設(shè)計(jì),主要包括4個(gè)數(shù)據(jù)表,分別是監(jiān)護(hù)端用戶信息表、被監(jiān)護(hù)端用戶信息表、監(jiān)護(hù)關(guān)系對(duì)應(yīng)表、被監(jiān)護(hù)端數(shù)據(jù)表。監(jiān)護(hù)端用戶信息表(見表1)作用是記錄監(jiān)護(hù)者信息。被監(jiān)護(hù)端用戶信息表(見表2)作用是記錄被監(jiān)護(hù)者信息。監(jiān)護(hù)關(guān)系對(duì)應(yīng)表(見表3)存儲(chǔ)的是監(jiān)護(hù)端和被監(jiān)護(hù)端之間的對(duì)應(yīng)關(guān)系。被監(jiān)護(hù)端數(shù)據(jù)表(見表4)是一類表,每一個(gè)被監(jiān)護(hù)端有一個(gè)表,表名為被監(jiān)護(hù)端的唯一標(biāo)示符,表內(nèi)的信息主要是記錄被監(jiān)護(hù)端在某個(gè)時(shí)間點(diǎn)上的位置、速度信息。
表1 監(jiān)護(hù)端用戶信息表
表2 被監(jiān)護(hù)端用戶信息表
表3 監(jiān)護(hù)關(guān)系對(duì)應(yīng)表
表4 被監(jiān)護(hù)端數(shù)據(jù)表
移動(dòng)軌跡顯示、安全區(qū)域和安全路線繪制、路徑導(dǎo)航等功能都需要地圖的支持。因此,需要設(shè)置地圖圖層。監(jiān)護(hù)端和被監(jiān)護(hù)端都需要的地圖服務(wù)圖層有:
1)底圖圖層。底圖采用調(diào)用SuperMap在線地圖API的方式獲取得到,作為基礎(chǔ)地圖放置在MapActivity類中。
2)路徑導(dǎo)航圖層。該圖層為路徑導(dǎo)航模塊提供支持。當(dāng)觸發(fā)路徑導(dǎo)航按鈕時(shí),圖層上會(huì)顯示出從起點(diǎn)到終點(diǎn)的到達(dá)路徑。
僅存在于監(jiān)護(hù)端的地圖服務(wù)圖層有:
1)位置圖層。該圖層中有位置標(biāo)記,當(dāng)觸發(fā)被監(jiān)控端位置按鈕時(shí),地圖中被監(jiān)控端的當(dāng)前位置處會(huì)出現(xiàn)位置標(biāo)記;當(dāng)觸發(fā)本機(jī)位置按鈕時(shí),地圖中本機(jī)的當(dāng)前位置處會(huì)出現(xiàn)位置標(biāo)記。
2)軌跡圖層。該圖層為顯示被監(jiān)控端移動(dòng)軌跡提供支持。
3)安全圍欄圖層。監(jiān)護(hù)者可在該圖層上創(chuàng)建、編輯、保存安全圍欄。
監(jiān)護(hù)與被監(jiān)護(hù)關(guān)系的建立與維護(hù),需要通過監(jiān)護(hù)端和被監(jiān)護(hù)端的雙層設(shè)置來共同完成。
監(jiān)護(hù)者通過添加家庭成員功能與被監(jiān)護(hù)者建立監(jiān)護(hù)關(guān)系。添加時(shí)需要輸入被監(jiān)護(hù)端的唯一識(shí)別符、用戶名和密碼,輸入的信息會(huì)上傳至服務(wù)器,服務(wù)器會(huì)進(jìn)行審核,只有三者都一致,才會(huì)啟動(dòng)監(jiān)護(hù)功能。這些信息只有被監(jiān)護(hù)端知道,監(jiān)護(hù)端只有在被監(jiān)護(hù)端許可時(shí)才可獲知,在一定程度上保障被監(jiān)護(hù)端的信息安全。
當(dāng)被監(jiān)護(hù)者不會(huì)使用手機(jī)時(shí),經(jīng)被監(jiān)護(hù)者同意后,可由監(jiān)護(hù)者完成被監(jiān)護(hù)端的注冊(cè)和監(jiān)護(hù)與被監(jiān)護(hù)關(guān)系的建立,在此之后,只需打開程序放置在后臺(tái)運(yùn)行即可,被監(jiān)護(hù)者無需進(jìn)行過多操作。
需要獲取的被監(jiān)護(hù)端的移動(dòng)狀態(tài)數(shù)據(jù)有位置、速度和加速度。實(shí)時(shí)位置及速度采用無線定位技術(shù)中的GPS定位和基站定位結(jié)合的方式獲取[8]。GPS定位效果較好,但當(dāng)衛(wèi)星信號(hào)不能達(dá)到較好的定位效果時(shí),需要由基站定位來彌補(bǔ)。通過二者獲取的位置數(shù)據(jù)是經(jīng)緯度,將其進(jìn)行坐標(biāo)轉(zhuǎn)換后,上傳至服務(wù)器。加速度由智能移動(dòng)終端上內(nèi)嵌的加速度傳感器實(shí)時(shí)獲取,得到的是X,Y,Z三軸方向上的加速度分量[9]。其中,X軸表示手機(jī)左右方向,Y軸表示手機(jī)前后方向,Z軸表示垂直于手機(jī)的方向。加速度數(shù)據(jù)為摔倒預(yù)警提供數(shù)據(jù)支持,需保存在被監(jiān)護(hù)端本機(jī),無需上傳至服務(wù)器。
安全圍欄預(yù)警技術(shù)路線是首先繪制安全圍欄,其次從服務(wù)器下載設(shè)定時(shí)間間隔內(nèi)的被監(jiān)護(hù)端位置數(shù)據(jù)集,然后判斷被監(jiān)護(hù)端位置是否在安全圍欄內(nèi),若不在安全圍欄內(nèi)則發(fā)出預(yù)警。
根據(jù)被監(jiān)護(hù)端日?;顒?dòng)范圍,繪制安全圍欄,安全圍欄有安全區(qū)域和安全路線兩種形式,繪制時(shí),前者以多邊形要素顯示,后者以線型緩沖區(qū)顯示??蓪?duì)已經(jīng)繪制的圖形進(jìn)行編輯、保存到本機(jī)內(nèi)存等操作。從服務(wù)器端獲取被監(jiān)控端在設(shè)定的最近一段時(shí)間間隔內(nèi)的位置數(shù)據(jù)集,將其與安全圍欄同時(shí)顯示在當(dāng)前地圖圖層上,并根據(jù)點(diǎn)與多邊形的幾何關(guān)系判斷被監(jiān)控端是否在安全圍欄內(nèi),當(dāng)點(diǎn)在多邊形內(nèi)部和多邊形邊緣上均認(rèn)為是在安全圍欄內(nèi)。當(dāng)被監(jiān)護(hù)端不在安全圍欄內(nèi),監(jiān)護(hù)端會(huì)及時(shí)收到彈窗通知。
本文采用的開發(fā)環(huán)境如下:服務(wù)器軟件是SuperMap iServer 8C;客戶端是Android操作系統(tǒng),版本為4.0.3,集成開發(fā)工具是Android studio,開發(fā)語言為Java[12],開發(fā)平臺(tái)為SuperMap iMobile 8C for Android,開發(fā)中使用到的該平臺(tái)的模塊見表5。
在對(duì)系統(tǒng)進(jìn)行運(yùn)行和測(cè)試時(shí),需要具有良好的網(wǎng)絡(luò)環(huán)境,以保證客戶端和服務(wù)器的正常連接,另外對(duì)智能移動(dòng)終端的要求是:Android系統(tǒng),版本為4.0.3及以上,運(yùn)行內(nèi)存為1 G及以上,含有GNSS定位功能和加速度傳感器,可以發(fā)送短信。
3.2.1 用戶注冊(cè)
注冊(cè)登錄功能是為了驗(yàn)證用戶是否為合法用戶,保障用戶信息安全。注冊(cè)登錄功能流程見圖2。注冊(cè)時(shí),先與服務(wù)器中的數(shù)據(jù)庫建立連接,再通過執(zhí)行SQL語句向用戶信息表中插入新用戶的信息,同時(shí)通過SQL循環(huán)語句比對(duì)數(shù)據(jù)庫中已有的數(shù)據(jù)來判斷用戶是否已存在,若已存在則返回錯(cuò)誤提示信息。登錄時(shí),同樣要先連接數(shù)據(jù)庫,再執(zhí)行SQL語句驗(yàn)證輸入的用戶名和密碼是否與數(shù)據(jù)庫中保存的信息一致,若一致則進(jìn)入功能界面,否則返回錯(cuò)誤提示信息。
表5 系統(tǒng)開發(fā)中主要使用的Supermap模塊
圖2 注冊(cè)登錄功能流程
3.2.2 安全圍欄的繪制與管理
對(duì)安全圍欄的操作包括創(chuàng)建、命名、保存、選擇顯示、編輯、刪除等,通過調(diào)用SuperMap iMobile 8C(2017) for Android中數(shù)據(jù)模塊的Geometry類實(shí)現(xiàn)這些操作。測(cè)試結(jié)果見圖3。
3.2.3 圍欄安全性判斷
調(diào)用SuperMap iMobile 8C(2017) for Android中數(shù)據(jù)模塊的Geometry類實(shí)現(xiàn)點(diǎn)與多邊形位置關(guān)系內(nèi)的判斷,以及調(diào)用PopupWindow類實(shí)現(xiàn)彈窗預(yù)警。當(dāng)點(diǎn)不在多邊形內(nèi)時(shí),認(rèn)為被監(jiān)護(hù)端不在安全區(qū)域內(nèi),此時(shí)系統(tǒng)會(huì)收到彈窗預(yù)警,測(cè)試結(jié)果見圖4。
3.2.4 移動(dòng)狀態(tài)顯示模塊
從服務(wù)器端獲取被監(jiān)控端在設(shè)定的最近一段時(shí)間間隔內(nèi)的位置數(shù)據(jù)集,并保存在本地內(nèi)存中,利用正則表達(dá)式提取出速度、坐標(biāo)信息。將點(diǎn)狀位置數(shù)據(jù)集存入類DatasetVector中,調(diào)用該類的convertToLine()方法,將點(diǎn)狀數(shù)據(jù)轉(zhuǎn)換為線狀數(shù)據(jù),并存放入線狀數(shù)據(jù)集中,從而得到移動(dòng)軌跡。最后調(diào)用Ondraw()方法在地圖圖層上進(jìn)行顯示,測(cè)試結(jié)果見圖5。
3.2.5 路徑導(dǎo)航模塊
路徑導(dǎo)航功能的作用有兩點(diǎn):1)監(jiān)護(hù)人員收到預(yù)警通知后,通過該功能選擇最優(yōu)路徑達(dá)到被監(jiān)護(hù)者所在的地點(diǎn);2)該功能引導(dǎo)被監(jiān)護(hù)者找到回家或到達(dá)學(xué)校的路。監(jiān)控端的路徑導(dǎo)航起點(diǎn)是本機(jī)當(dāng)前位置,終點(diǎn)是被監(jiān)控端當(dāng)前位置。被監(jiān)控端起點(diǎn)是本機(jī)當(dāng)前位置,終點(diǎn)是預(yù)設(shè)的常用地址位置。該功能通過調(diào)用SuperMap iMobile 8C(2017) for Android中導(dǎo)航模塊和網(wǎng)絡(luò)分析實(shí)現(xiàn)。以監(jiān)護(hù)端為例進(jìn)行模擬測(cè)試,所用的網(wǎng)絡(luò)數(shù)據(jù)集為北京市路網(wǎng)數(shù)據(jù)集,測(cè)試結(jié)果見圖6。
圖3 安全圍欄繪制與管理界面
圖4 安全圍欄預(yù)警界面
3.2.6 摔倒及超速預(yù)警模塊
當(dāng)被監(jiān)護(hù)端的速度超出預(yù)設(shè)速度,或加速度不在正常范圍時(shí),被監(jiān)護(hù)者有超速或摔倒危險(xiǎn),此時(shí),被監(jiān)護(hù)端通過Intern組件調(diào)用發(fā)送短信的Activity程序向監(jiān)護(hù)者自動(dòng)發(fā)送預(yù)警短信。測(cè)試時(shí),攜帶被監(jiān)護(hù)端模擬超速和摔倒情況,監(jiān)護(hù)端收到短信預(yù)警通知。
圖5 移動(dòng)狀態(tài)顯示界面
圖6 路徑導(dǎo)航界面
本文在充分考慮弱勢(shì)人群外出時(shí)可能遇到的安全狀況基礎(chǔ)上,設(shè)計(jì)一種基于智能移動(dòng)終端的家庭成員安全監(jiān)護(hù)系統(tǒng),在不需要額外購買智能設(shè)備的條件下,能夠同時(shí)對(duì)多個(gè)家庭成員的移動(dòng)狀態(tài)進(jìn)行遠(yuǎn)程實(shí)時(shí)監(jiān)控,并可以根據(jù)移動(dòng)狀態(tài)數(shù)據(jù)對(duì)被監(jiān)護(hù)者的安全狀態(tài)進(jìn)行判斷,在遇到安全問題時(shí)自動(dòng)向監(jiān)護(hù)者發(fā)出預(yù)警通知。這使得被監(jiān)護(hù)者的外出安全狀況不受時(shí)間和空間的限制,能夠被實(shí)時(shí)關(guān)注、監(jiān)護(hù),也解放監(jiān)護(hù)人員的時(shí)間,在不降低安全性的前提下給予監(jiān)護(hù)雙方自由與空間。