李江 蔣文潔
(1.三江學(xué)院,江蘇 南京 210012;2.江蘇蘇海信息科技(集團(tuán))有限公司,江蘇 南京 210000)
自全球知名的咨詢公司麥肯錫提出“大數(shù)據(jù)”時代以來,互聯(lián)網(wǎng)與信息化領(lǐng)域的快速發(fā)展讓人們逐漸認(rèn)識到網(wǎng)絡(luò)大數(shù)據(jù)的背景意義[1]。帶有定位信息的數(shù)據(jù)量呈現(xiàn)爆炸性增長的態(tài)勢,加上現(xiàn)代測繪技術(shù)(衛(wèi)星、航空飛機(jī)、飛艇、無人機(jī)等)以及各種可穿戴設(shè)備的發(fā)展,網(wǎng)絡(luò)簽到、軌跡數(shù)據(jù)、物流數(shù)據(jù)等與空間位置有關(guān)的數(shù)據(jù)飛速增加[2]。更重要的是,伴隨著互聯(lián)網(wǎng)與人的生活緊密相關(guān),人的行為實(shí)時制造數(shù)據(jù),這些數(shù)據(jù)交織在一起就形成海量數(shù)據(jù)[3]。
科技的發(fā)展帶動了警力數(shù)字化裝備的提升,警力定位、移動、聲視頻對講等都配備現(xiàn)代化、信息化的系統(tǒng)軟件,每時每刻都在產(chǎn)生大量數(shù)據(jù),如何有效地分析數(shù)據(jù),提升數(shù)據(jù)的利用價(jià)值,合理劃分安排警力資源,提高安保、出警效率是警務(wù)系統(tǒng)管理部門的重要工作職能。整理與合理利用大數(shù)據(jù),可以提高生活水平,而一成不變,只會堆積耗費(fèi)資源與帶寬,所以在參與警務(wù)系統(tǒng)的開發(fā)中,歸納總結(jié)了有效的技術(shù)方法,使用輕量級的WebGIS,即可實(shí)現(xiàn)大數(shù)據(jù)的展示與分析。
本文主要從技術(shù)方面,介紹利用OpenLayers 代碼庫,實(shí)現(xiàn)大數(shù)據(jù)的實(shí)時獲取、整理、展示、分析功能,從代碼視角構(gòu)建輕量級WebGIS 應(yīng)用。
WebGIS 是互聯(lián)網(wǎng)技術(shù)應(yīng)用于地理信息系統(tǒng)(GIS)開發(fā)的產(chǎn)物,是傳統(tǒng)GIS 在網(wǎng)絡(luò)上的延伸和發(fā)展,具有傳統(tǒng)GIS 的特點(diǎn),可以實(shí)現(xiàn)空間數(shù)據(jù)的檢索、查詢、制圖輸出、編輯等GIS 基本功能,同時通過互聯(lián)網(wǎng)對地理信息數(shù)據(jù)進(jìn)行發(fā)布和應(yīng)用,以實(shí)現(xiàn)空間數(shù)據(jù)的共享和互操作,是互聯(lián)網(wǎng)上地理信息發(fā)布、共享和交流協(xié)作的基礎(chǔ)。WebGIS 使GIS 的功能得以擴(kuò)展,具有易操作性、跨平臺性、良好的擴(kuò)展性以及信息分布共享等特性[4]。
OpenLayers 是一個用于開發(fā)WebGIS 客戶端的JavaScript 包,可以實(shí)現(xiàn)標(biāo)準(zhǔn)格式發(fā)布的地圖數(shù)據(jù)訪問,其設(shè)計(jì)之意是為互聯(lián)網(wǎng)客戶端提供強(qiáng)大的地圖展示功能,為地理空間數(shù)據(jù)的信息化處理提供極大的便利[5-6]。OpenLayers 采用面向?qū)ο蠓绞介_發(fā),并使用來自Prototype.js 和Rico 中的一些組件,開發(fā)者可以通過OpenLayers 在瀏覽器中實(shí)現(xiàn)對地圖數(shù)據(jù)的豐富操作。
目前,主流地圖上的應(yīng)用開發(fā),一般以B/S(瀏覽器/服務(wù)器)模式呈現(xiàn),即把業(yè)務(wù)應(yīng)用集中在服務(wù)器上開發(fā),瀏覽器負(fù)責(zé)展示。瀏覽器可以用PC 端、平板端、移動設(shè)備端等,如上模式即保證瀏覽端不需要安裝應(yīng)用,且把煩瑣的計(jì)算分析等應(yīng)用分配給強(qiáng)大硬件支撐的服務(wù)器端,保障了瀏覽器端的輕量級。
在警務(wù)系統(tǒng)的大數(shù)據(jù)展示與分析實(shí)現(xiàn)中,我們采用html5+js 實(shí)現(xiàn)瀏覽器端(即前端),用.net 的MVC 框架實(shí)現(xiàn)服務(wù)器端,采用portgresql+postgis 存儲業(yè)務(wù)數(shù)據(jù)。本文僅介紹前端的實(shí)現(xiàn)。
本節(jié)將以可運(yùn)行代碼段方式,按順序介紹實(shí)現(xiàn)大數(shù)據(jù)在WebGIS 上的展示分析,主要包括大數(shù)據(jù)實(shí)時獲取、大數(shù)據(jù)在前端的展示、大數(shù)據(jù)的熱區(qū)分析、大數(shù)據(jù)的移動模擬。
大數(shù)據(jù)的產(chǎn)生有很多種方式,由于涉及數(shù)據(jù)隱私等相關(guān)問題,數(shù)據(jù)的實(shí)時獲取根據(jù)業(yè)務(wù)需求而需要獲取授權(quán)等。本次項(xiàng)目的數(shù)據(jù)來源是警務(wù)工作設(shè)備產(chǎn)生的數(shù)據(jù),設(shè)備內(nèi)置應(yīng)用會將位置數(shù)據(jù)實(shí)時推送至服務(wù)器端,從而組成龐大的大數(shù)據(jù)記錄。實(shí)時獲取原理是當(dāng)數(shù)據(jù)庫記錄有更新時,則利用JS 類庫去提取。目前,主流用WebSocket 實(shí)時動態(tài)獲取數(shù)據(jù),也就是采用通信方式監(jiān)聽數(shù)據(jù),數(shù)據(jù)發(fā)生變化即通信開始連接工作。
WebSocket 在完成連接并初始化之后,開始接收數(shù)據(jù)平臺推送來的信息,有新的位置信息便會立刻推送,應(yīng)用端使用onmessag()方法進(jìn)行實(shí)時監(jiān)聽。
獲取實(shí)時推送數(shù)據(jù)后,需要在瀏覽器(即Web)上展示,數(shù)據(jù)展示的基礎(chǔ)是電子地圖,因行業(yè)的不同,可能需要展示不同的背景地圖(即GIS),因此,大數(shù)據(jù)最終需要展示于WebGIS 上。
前端通過服務(wù)器端應(yīng)用,從數(shù)據(jù)庫取得數(shù)據(jù)后,將所有數(shù)據(jù)直接展示在地圖上,可能是無序繁雜的,需要根據(jù)數(shù)據(jù)的業(yè)務(wù)特征進(jìn)行分類與整理,然后再按業(yè)務(wù)的合理性進(jìn)行展示。因此,需要先定義數(shù)據(jù)格式,再進(jìn)行數(shù)據(jù)拼裝,最后進(jìn)行展示。
3.2.1 定義數(shù)據(jù)格式
在Web 端,JSON 是比較主流的交換數(shù)據(jù)格式,具體可自擬。
3.2.2 數(shù)據(jù)拼裝
傳遞來的數(shù)據(jù),需要根據(jù)定義的格式進(jìn)行拼裝,然后才能交付標(biāo)準(zhǔn)化的數(shù)據(jù),如下示例。 });
3.2.3 數(shù)據(jù)展示
在完成數(shù)據(jù)的拼裝后,即可把標(biāo)準(zhǔn)化的數(shù)據(jù)作為數(shù)據(jù)源,賦予容器進(jìn)行展示,如下示例。
var ws = new WebSocket(“警員實(shí)時位置信息服務(wù)數(shù)據(jù)源地址”);
大數(shù)據(jù)進(jìn)行邏輯拼裝后,可以分類、聚合或指定條件在地圖上展示,即完成大數(shù)據(jù)在WebGIS 的初級功能。專題圖是GIS 的分析手段之一,因?yàn)閳D表以比較直觀的方式展示數(shù)據(jù)的結(jié)構(gòu)要素,與數(shù)字表格相比,不精準(zhǔn)但直觀,所以專題圖在GIS 分析中經(jīng)常采用,它提供給決策管理層很直觀的數(shù)據(jù)感受。項(xiàng)目使用的熱區(qū)專題圖,即根據(jù)大數(shù)據(jù)分析指定時段全區(qū)警力的部署、執(zhí)行、圍欄狀況等。
熱區(qū)專題圖可聚合多種大數(shù)據(jù),采用漸進(jìn)的色帶來表現(xiàn)數(shù)據(jù)熱區(qū)情況,可以直觀展現(xiàn)空間數(shù)據(jù)的疏密程度或頻率高低。大數(shù)據(jù)拼裝、提取時,可依照小時、日、月、季等限制要素,然后根據(jù)數(shù)據(jù)情況在WebGIS 上實(shí)現(xiàn)熱區(qū)分析效果圖。
項(xiàng)目所涉及的大數(shù)據(jù)是人員的實(shí)時位置數(shù)據(jù),需要模擬數(shù)據(jù)的移動情況,分析人員的警務(wù)活動情況,分析設(shè)定電子圍欄的安全性等。我們在開發(fā)工作中,需要獲取指定對象的位置數(shù)據(jù),通過拼裝形成軌跡,然后把數(shù)據(jù)按照OpenLayers 的要求創(chuàng)建數(shù)據(jù)源,在地圖容器上疊加,并采用移動模擬方法進(jìn)行模擬,從而實(shí)現(xiàn)人員移動的效果。
本文介紹了利用OpenLayers 技術(shù)方法實(shí)現(xiàn)大數(shù)據(jù)在輕量級WebGIS 上的展示與分析,包括數(shù)據(jù)的實(shí)時獲取、熱區(qū)分析和移動模擬等方面。目前市場上有不少WebGIS 類庫,可擴(kuò)展實(shí)現(xiàn)數(shù)據(jù)豐富的可視化分析、大數(shù)據(jù)挖掘計(jì)算等。
數(shù)據(jù)展示是呈現(xiàn)大數(shù)據(jù)的基本要素,把數(shù)據(jù)用活是大數(shù)據(jù)最終存活深度的展現(xiàn)。每時每刻、日益增長的數(shù)據(jù)給了社會壓力,同樣也帶來無窮機(jī)遇,大數(shù)據(jù)研究已遍布多學(xué)科,作為應(yīng)用的開發(fā)者,希望研究者有更多高效的算法、合理的模型能為開發(fā)所用,同時開發(fā)者也應(yīng)把數(shù)據(jù)、服務(wù)呈現(xiàn)給社會。