符晨曦 ,程 鋼,2 ,董文帥 ,岳俊升 ,張清蘭
(1.河南理工大學 測繪與國土信息工程學院,河南 焦作 454000;2.礦山空間信息技術國家測繪地理信息局重點實驗室,河南 焦作 454000)
隨著中國社會的快速轉型和變遷,家庭呈現小型化趨勢,家庭結構由家族式縮小為父母子女式,家庭內非勞動力人口與勞動力人口之比快速攀升[1]。隨之帶來的是家庭成員的監護問題,尤其是老人、兒童等弱勢群體的安全監護問題。弱勢群體走失、被拐背后隱藏的一個關鍵信息是位置信息,如何借助專業學科知識解決這個社會實際問題現實而迫切。
近些年來,基于位置的服務(Location Based Service, LBS)受到越來越多的關注。該技術將定位技術、移動通訊技術、地理信息系統技術和互聯網技術相結合[2],借助全球衛星導航定位系統(Global Navigation Satellite System, GNSS)或無線電通訊網絡進行定位,獲取用戶位置信息,并在地理信息系統平臺支持下為用戶提供相應服務[3]。地理圍欄(Geo-fencing)是LBS的一個新應用,通過被監護者的實時位置與虛擬圍欄的關系,判斷被監護者的安全狀態,進行軌跡跟蹤,并根據情況進行必要預警[4]。智能手機具有定位模塊,便于隨身攜帶,是實現地理圍欄技術的合適載體。
針對當前已有的監護系統功能單一、多對象監控查看不便、消息反饋不及時等不足之處[5],本文基于智能終端系統,設計開發一種可對多個監護對象同時進行監護,對基于GNSS和GIS技術的定位、跟蹤顯示、圍欄分析以及超速、超時、摔倒等實時檢測技術和方法進行探索。
本文設計的系統采用C/S模式,由兩個客戶端和一個服務器組成。兩個客戶端分別是被監護端和監護端。被監護端主要負責收集被監護者的移動狀態數據并實時將數據上傳到服務器,進行超速、摔倒分析并在緊急情況時向監護端發送預警通知。監護端根據從服務器下載的被監控端數據利用空間分析技術實時顯示被監控端的位置,判斷其與虛擬地理圍欄的關系,進行危險性分析。服務器負責在后臺存儲數據、審核信息、查詢系統日志以及被監護端和監護端之間的信息傳輸。
服務器與客戶端之間的通信采用HTTP協議的JSP技術[6],數據同步通過HTTP的POST方式實現,其中客戶端的請求方式是HTTP的Request方式,服務端的應答方式是HTTP的Response方式[7],數據格式是JSON。
系統主要有注冊登錄、個人中心、路徑導航、移動狀態采集、移動狀態顯示和安全狀態預警等6個功能模塊,其中,注冊登錄、個人中心、路徑導航布置在監護端和被監護端;移動狀態采集、超速預警和摔倒預警布置在被監護端,移動狀態顯示、安全圍欄預警功能布置在監護端;用戶信息和狀態數據存儲、中轉和管理由服務器端完成。系統功能結構如圖1所示。

圖1 系統功能結構概圖
系統工作主要的業務流程如下:
1)注冊及建立監護關系。監護者和被監護者分別在監護端和被監護端進行注冊,被監護者注冊后會從服務器獲得一個用于身份識別的唯一標識符,監護者登錄系統后通過添加唯一標識符的方式與多個被監護端形成監護關系。
2)被監護端將移動狀態數據獲取、上傳,超速、摔倒預警。被監護端獲取本機的位置、速度、加速度等數據,并將位置、速度數據實時上傳至服務器。根據速度、加速度數據結合相應的算法判斷被監護者是否處于正常移動速度和是否摔倒,在其處于危險狀態時通過自動發短信的方式向監護者發出求助信息。
3)監護端獲取被監護者路徑數據,進行圍欄判斷及預警。監護端預先設置好安全區域和安全路線等安全圍欄,再結合從服務器下載得到的被監護端的位置數據,利用GIS分析方法判斷被監護者是否在安全區域內或移動時是否偏離了安全路線,當被監護者離開安全區域或安全路線時,監護端會收到安全預警通知。監護者接收到求助信息或安全預警通知后可通過路徑導航功能查詢到達被監護者的最優路徑。
在個人自愿的基礎上,未成年子女和行動不便的老人可以允許其父母或子女實時查看自己的位置,并進行安全監護。系統數據包含必要的監護與被監護人信息、監護關系、被監護人的位置和路徑信息,需要借助數據進行存儲和管理。這些數據是進行安全分析、信息推送等工作的基礎。根據系統功能設計,本文對服務器數據庫進行了設計,主要包括4個數據表,分別是監護端用戶信息表、被監護端用戶信息表、監護關系對應表、被監護端數據表。監護端用戶信息表(見表1)作用是記錄監護者信息。被監護端用戶信息表(見表2)作用是記錄被監護者信息。監護關系對應表(見表3)存儲的是監護端和被監護端之間的對應關系。被監護端數據表(見表4)是一類表,每一個被監護端有一個表,表名為被監護端的唯一標示符,表內的信息主要是記錄被監護端在某個時間點上的位置、速度信息。

表1 監護端用戶信息表

表2 被監護端用戶信息表

表3 監護關系對應表

表4 被監護端數據表
移動軌跡顯示、安全區域和安全路線繪制、路徑導航等功能都需要地圖的支持。因此,需要設置地圖圖層。監護端和被監護端都需要的地圖服務圖層有:
1)底圖圖層。底圖采用調用SuperMap在線地圖API的方式獲取得到,作為基礎地圖放置在MapActivity類中。
2)路徑導航圖層。該圖層為路徑導航模塊提供支持。當觸發路徑導航按鈕時,圖層上會顯示出從起點到終點的到達路徑。
僅存在于監護端的地圖服務圖層有:
1)位置圖層。該圖層中有位置標記,當觸發被監控端位置按鈕時,地圖中被監控端的當前位置處會出現位置標記;當觸發本機位置按鈕時,地圖中本機的當前位置處會出現位置標記。
2)軌跡圖層。該圖層為顯示被監控端移動軌跡提供支持。
3)安全圍欄圖層。監護者可在該圖層上創建、編輯、保存安全圍欄。
監護與被監護關系的建立與維護,需要通過監護端和被監護端的雙層設置來共同完成。
監護者通過添加家庭成員功能與被監護者建立監護關系。添加時需要輸入被監護端的唯一識別符、用戶名和密碼,輸入的信息會上傳至服務器,服務器會進行審核,只有三者都一致,才會啟動監護功能。這些信息只有被監護端知道,監護端只有在被監護端許可時才可獲知,在一定程度上保障被監護端的信息安全。
當被監護者不會使用手機時,經被監護者同意后,可由監護者完成被監護端的注冊和監護與被監護關系的建立,在此之后,只需打開程序放置在后臺運行即可,被監護者無需進行過多操作。
需要獲取的被監護端的移動狀態數據有位置、速度和加速度。實時位置及速度采用無線定位技術中的GPS定位和基站定位結合的方式獲取[8]。GPS定位效果較好,但當衛星信號不能達到較好的定位效果時,需要由基站定位來彌補。通過二者獲取的位置數據是經緯度,將其進行坐標轉換后,上傳至服務器。加速度由智能移動終端上內嵌的加速度傳感器實時獲取,得到的是X,Y,Z三軸方向上的加速度分量[9]。其中,X軸表示手機左右方向,Y軸表示手機前后方向,Z軸表示垂直于手機的方向。加速度數據為摔倒預警提供數據支持,需保存在被監護端本機,無需上傳至服務器。

安全圍欄預警技術路線是首先繪制安全圍欄,其次從服務器下載設定時間間隔內的被監護端位置數據集,然后判斷被監護端位置是否在安全圍欄內,若不在安全圍欄內則發出預警。
根據被監護端日常活動范圍,繪制安全圍欄,安全圍欄有安全區域和安全路線兩種形式,繪制時,前者以多邊形要素顯示,后者以線型緩沖區顯示。可對已經繪制的圖形進行編輯、保存到本機內存等操作。從服務器端獲取被監控端在設定的最近一段時間間隔內的位置數據集,將其與安全圍欄同時顯示在當前地圖圖層上,并根據點與多邊形的幾何關系判斷被監控端是否在安全圍欄內,當點在多邊形內部和多邊形邊緣上均認為是在安全圍欄內。當被監護端不在安全圍欄內,監護端會及時收到彈窗通知。
本文采用的開發環境如下:服務器軟件是SuperMap iServer 8C;客戶端是Android操作系統,版本為4.0.3,集成開發工具是Android studio,開發語言為Java[12],開發平臺為SuperMap iMobile 8C for Android,開發中使用到的該平臺的模塊見表5。
在對系統進行運行和測試時,需要具有良好的網絡環境,以保證客戶端和服務器的正常連接,另外對智能移動終端的要求是:Android系統,版本為4.0.3及以上,運行內存為1 G及以上,含有GNSS定位功能和加速度傳感器,可以發送短信。
3.2.1 用戶注冊
注冊登錄功能是為了驗證用戶是否為合法用戶,保障用戶信息安全。注冊登錄功能流程見圖2。注冊時,先與服務器中的數據庫建立連接,再通過執行SQL語句向用戶信息表中插入新用戶的信息,同時通過SQL循環語句比對數據庫中已有的數據來判斷用戶是否已存在,若已存在則返回錯誤提示信息。登錄時,同樣要先連接數據庫,再執行SQL語句驗證輸入的用戶名和密碼是否與數據庫中保存的信息一致,若一致則進入功能界面,否則返回錯誤提示信息。

表5 系統開發中主要使用的Supermap模塊

圖2 注冊登錄功能流程
3.2.2 安全圍欄的繪制與管理
對安全圍欄的操作包括創建、命名、保存、選擇顯示、編輯、刪除等,通過調用SuperMap iMobile 8C(2017) for Android中數據模塊的Geometry類實現這些操作。測試結果見圖3。
3.2.3 圍欄安全性判斷
調用SuperMap iMobile 8C(2017) for Android中數據模塊的Geometry類實現點與多邊形位置關系內的判斷,以及調用PopupWindow類實現彈窗預警。當點不在多邊形內時,認為被監護端不在安全區域內,此時系統會收到彈窗預警,測試結果見圖4。
3.2.4 移動狀態顯示模塊
從服務器端獲取被監控端在設定的最近一段時間間隔內的位置數據集,并保存在本地內存中,利用正則表達式提取出速度、坐標信息。將點狀位置數據集存入類DatasetVector中,調用該類的convertToLine()方法,將點狀數據轉換為線狀數據,并存放入線狀數據集中,從而得到移動軌跡。最后調用Ondraw()方法在地圖圖層上進行顯示,測試結果見圖5。
3.2.5 路徑導航模塊
路徑導航功能的作用有兩點:1)監護人員收到預警通知后,通過該功能選擇最優路徑達到被監護者所在的地點;2)該功能引導被監護者找到回家或到達學校的路。監控端的路徑導航起點是本機當前位置,終點是被監控端當前位置。被監控端起點是本機當前位置,終點是預設的常用地址位置。該功能通過調用SuperMap iMobile 8C(2017) for Android中導航模塊和網絡分析實現。以監護端為例進行模擬測試,所用的網絡數據集為北京市路網數據集,測試結果見圖6。

圖3 安全圍欄繪制與管理界面

圖4 安全圍欄預警界面
3.2.6 摔倒及超速預警模塊
當被監護端的速度超出預設速度,或加速度不在正常范圍時,被監護者有超速或摔倒危險,此時,被監護端通過Intern組件調用發送短信的Activity程序向監護者自動發送預警短信。測試時,攜帶被監護端模擬超速和摔倒情況,監護端收到短信預警通知。

圖5 移動狀態顯示界面

圖6 路徑導航界面
本文在充分考慮弱勢人群外出時可能遇到的安全狀況基礎上,設計一種基于智能移動終端的家庭成員安全監護系統,在不需要額外購買智能設備的條件下,能夠同時對多個家庭成員的移動狀態進行遠程實時監控,并可以根據移動狀態數據對被監護者的安全狀態進行判斷,在遇到安全問題時自動向監護者發出預警通知。這使得被監護者的外出安全狀況不受時間和空間的限制,能夠被實時關注、監護,也解放監護人員的時間,在不降低安全性的前提下給予監護雙方自由與空間。