吳瑞龍,王明省,何華貴,張鵬程,林 鴻,龔 磊
(1.武漢市自然資源和規劃信息中心,湖北 武漢 430014;2.廣州市城市規劃勘測設計研究院,廣東 廣州 510060)
目前關于熱力圖研究多側重于熱力圖的前端渲染和優化實現,依賴于前端的交互信息,如前端的屏幕顯示范圍或者前端的地圖縮放級別,這些研究都是基于靜態專題圖,利用現有GIS 服務器制作專題熱力圖,然后發布為地圖服務,服務端的處理一般只是依賴于屬性的查詢過濾,將查詢后的數據一次性返回渲染,沒有做聚合的處理來壓縮數據,熱力圖的渲染效率還比較低下[1-15];另外,現有研究更多是基于無約束條件的熱力圖,針對時空大數據,較少考慮時空約束條件下交互式的實時生成熱力圖的研究,不能滿足用戶特定需求[16],難以通過服務的形式提供交互式的實時生成熱力圖,比如針對用戶感興趣的某個特定時間段,特定時間區域,不能實時的生成熱力圖。
為此,本文提供一種顧及約束的交互式熱力圖生成方法,該方法允許在給定約束條件下對空間點數據進行過濾,實現數據的動態篩選,并利用距離容差和DBSCAN 聚類算法按照其空間分布進行聚合,達到快速生成熱力圖的目的,同時設計了交互式熱力圖服務的RESTful 接口,能夠有效滿足交互式熱力圖服務的需求,具有一定的應用價值。
本文技術方案采用B∕S 模式架構,統一了客戶端熱力圖服務訪問的請求。服務端根據請求進行實時計算并返回熱力圖計算結果,實現熱力圖可視化和計算的前后端分離。
1)由客戶端發起帶約束條件的熱力圖服務請求,服務端對約束條件進行解析,包括空間約束和非空間約束,服務端按照約束條件對空間點要素進行初步篩選過濾。
2)對空間位置較近或重疊的點要素按給定的距離容差去重并累加權重,再利用DBSCAN密度聚類算法進行空間聚類,計算相同類簇樣本集的幾何重心位置和權重。
3)將結果合并轉換為GeoJSON 格式數據,返回給前端框架如OpenLayers、Leaflet 進行加載渲染實時生成熱力圖。總體技術方案流程如圖1所示。

圖1 總體技術方案流程圖
根據地理學第一定律,空間地物之間的相關性與地理位置距離有關,地理位置較近的相關性越大,反之相關性越小,因此對于地理空間樣本點距離較近或重疊的情況,本文首先對樣本數據按照給定的距離容差進行合并,累加其權重,在服務端通過距離容差對空間位置較近或重疊的數據進行排除,實現了數據的一次性過濾,排除部分數據干擾,減少了數據計算量,有效提高計算效率。具體計算方法如表1所示。

表1 按照距離容差合并算法描述
DBSCAN 是一種基于密度的空間聚類算法,可以按照空間距離對點樣本進行聚類,該算法能夠發現任意形狀點簇,聚類速度快,同時也表達了空間點的聚集程度,適合用于本文的實時熱力圖可視化表達,該算法主要涉及2 個參數:一是領域半徑Eps,該參數作為類簇搜索的距離依據,通過初始中心點按照鄰域半徑進行判斷,形成一個類簇的閉包;另一個是MinPts,該值作為聚類的密度約束,是在給定點鄰域內的最少點個數。結合總體技術路線,本文后端服務基于DBSCAN 聚類的處理流程如圖2 所示。

圖2 服務端空間聚類處理流程圖

基于以上技術路線,本文參照標準WMS 規范設計了交互式熱力圖服務HMS規范,服務返回結果集使用GeoJSON格式,滿足地理信息服務數據交換與共享的需要,可適用于主流的WebGIS 前端渲染框架,詳細定義如表2、3所示。

表2 熱力圖服務HMS規范列表
熱力圖服務請求示例如下:
http:∕∕localhost∕mapserver∕HMS?VERSION=1.0&REQUEST=GetHeatMap&LAYER=’SSDJ’&PROPERTY-NAME=name&SQL_FILTER=” name='Blaine'” &SPATIAL_FILTER=‘Polygon((3 1,4 4,2 4,3 1))’

表3 GetHeatmap操作請求方法實現參數列表
商事登記主體數量一定程度體現了區域經濟發展水平的高低,通過對商事登記主體的大數據挖掘分析,有助于了解地區經濟的活躍情況和產業發展狀況,如何直觀動態地對產業分布現狀進行可視化表達有著重要意義。本文實驗數據來源于廣州市政府數據統一開放平臺,共約10萬條,數據格式為CSV,通過脫敏清洗處理后包含的字段有:注冊號、名稱、主營項目類別、經營范圍、成立日期等,使用高德地圖地理編碼Web 服務API,利用名稱字段將其轉換為地理坐標落圖,數據源部分示例如表4 所示,全部數據落圖效果如圖3所示。

表4 商事登記主體數據部分樣例

圖3 商事登記主體落圖示意圖
本文應用系統開發基于Windows10 環境,前端使用OpenLayers3 框架,后臺開發及算法實現基于Java JDK1.8 版本,熱力圖服務HMS 實現基于Vert.x 的Http模塊,空間數據的存儲和運算使用開源數據庫PostgreSQL和PostGIS插件。系統以B∕S架構模式開發,支持主流瀏覽器訪問,系統部分截圖如圖4 所示。主要實現的功能有:

圖4 部分系統截圖
1)按照給定空間范圍實時顯示熱力圖,包括任意拉框范圍、矩形范圍、圓形范圍。
2)按照給定屬性條件實時顯示熱力圖,包括商事登記主體的主營項目類別,經營范圍類型,成立日期等。
3)熱力圖樣式設置,包括熱力圖半徑大小調整和顏色設置。
本文從實際應用場景出發,在顧及約束條件下服務端對空間點數據進行動態篩選并根據距離容差進行合并,實現一次過濾;基于DBSCAN 的空間聚類算法,按照樣本數據的空間密度聚類,實現二次過濾,同時計算同一類簇的重心坐標和權重值,既保留了樣本數據的聚集程度信息,表達了其空間分布情況,又減少了數據的計算量,提高了計算效率,達到實時動態生成熱力圖的目的,最后以服務的形式給出交互式熱力圖服務接口設計。應用實踐表明,本文方法能夠高效、準確地滿足約束條件下交互式熱力圖服務需求,有一定的適用性和通用性,同時本文研究還存在不足,如對于DBSACN參數的選取,后續將進一步研究改進。