陳 嘉,趙祖亮,郭鴻飛,趙廣玉,馬靜麗,劉 哲
(1. 新華通訊社,北京 100031; 2. 北京捷泰天域信息技術(shù)有限公司,北京 100028;3. 中國(guó)農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院,北京 100083)
?
基于格網(wǎng)的多比例尺海量數(shù)據(jù)空間渲染方法
陳 嘉1,趙祖亮3,郭鴻飛1,趙廣玉2,馬靜麗2,劉 哲3
(1. 新華通訊社,北京 100031; 2. 北京捷泰天域信息技術(shù)有限公司,北京 100028;3. 中國(guó)農(nóng)業(yè)大學(xué)信息與電氣工程學(xué)院,北京 100083)
實(shí)現(xiàn)海量農(nóng)業(yè)數(shù)據(jù)的空間可視化和快速渲染是理解農(nóng)業(yè)數(shù)據(jù)、探究農(nóng)業(yè)生產(chǎn)和農(nóng)村發(fā)展空間分布規(guī)律的前提。本文針對(duì)如何在Web上實(shí)現(xiàn)海量農(nóng)業(yè)數(shù)據(jù)的高效渲染,通過(guò)對(duì)比3種流行的海量數(shù)據(jù)空間渲染方法,提出了一種基于格網(wǎng)的多比例尺海量數(shù)據(jù)空間渲染方法,較完整地實(shí)現(xiàn)了農(nóng)業(yè)大數(shù)據(jù)可視化分析中數(shù)據(jù)點(diǎn)快速顯示、多尺度動(dòng)態(tài)渲染,以及無(wú)數(shù)據(jù)壓蓋顯示等需求。通過(guò)對(duì)該方法的空間渲染效率和效果進(jìn)行對(duì)比分析,表明該方法可為農(nóng)業(yè)大數(shù)據(jù)的空間可視化分析提供高效的渲染手段。
農(nóng)業(yè)大數(shù)據(jù);空間可視化;格網(wǎng)
農(nóng)業(yè)生產(chǎn)經(jīng)營(yíng)活動(dòng)具有很強(qiáng)的空間規(guī)律性,絕大多數(shù)農(nóng)業(yè)大數(shù)據(jù)均含有空間位置信息,如行政村、農(nóng)村合作社信息、農(nóng)戶活動(dòng)軌跡、農(nóng)產(chǎn)品價(jià)格監(jiān)測(cè)點(diǎn)數(shù)據(jù)、農(nóng)業(yè)氣象站點(diǎn)數(shù)據(jù)、基本農(nóng)田分布、品種種植推廣,以及測(cè)土配方施肥數(shù)據(jù)等[1]。以點(diǎn)狀數(shù)據(jù)為例,包括位置信息的農(nóng)業(yè)大數(shù)據(jù)少則數(shù)萬(wàn)條,多則上千萬(wàn)條,如何基于WebGIS技術(shù)高效實(shí)現(xiàn)海量農(nóng)業(yè)數(shù)據(jù)的空間可視化和快速渲染,是理解農(nóng)業(yè)數(shù)據(jù)、探究農(nóng)業(yè)生產(chǎn)和農(nóng)村發(fā)展空間分布規(guī)律的前提[2-3]。因此,國(guó)內(nèi)外開(kāi)發(fā)人員設(shè)計(jì)和實(shí)現(xiàn)了多種海量數(shù)據(jù)的空間渲染技術(shù)[4-6],其中較為常見(jiàn)的有3種。第1種是服務(wù)器端渲染技術(shù)(如圖1所示)。服務(wù)器端渲染技術(shù)將數(shù)據(jù)以服務(wù)的方式提供給客戶端進(jìn)行展現(xiàn),其優(yōu)點(diǎn)是支持利用查詢條件來(lái)定義顯示的內(nèi)容,并實(shí)時(shí)返回地圖,網(wǎng)絡(luò)傳輸?。蝗秉c(diǎn)是數(shù)據(jù)量大時(shí),生成地圖速度慢,數(shù)據(jù)點(diǎn)之間的顯示容易相互壓蓋、不美觀[7-8]。第2種是瀏覽器端聚合渲染技術(shù)(如圖2所示)。瀏覽器端渲染技術(shù)將數(shù)據(jù)直接傳送到客戶端進(jìn)行展示,該方法有效規(guī)避了數(shù)據(jù)壓蓋顯示的弊端,效果美觀;但在海量數(shù)據(jù)面前會(huì)出現(xiàn)網(wǎng)絡(luò)傳輸量大、時(shí)間長(zhǎng)的問(wèn)題,并且前端聚合統(tǒng)計(jì)計(jì)算花費(fèi)時(shí)間長(zhǎng),瀏覽器內(nèi)存占用大,甚至?xí)绊懙貓D的基本操作[9]。第3種瀏覽器端麻點(diǎn)渲染技術(shù)(如圖3所示)。瀏覽器端麻點(diǎn)渲染技術(shù)在一些地圖平臺(tái)廣泛采用,但數(shù)據(jù)量很大的時(shí)候也容易出現(xiàn)瀏覽器卡死的現(xiàn)象,并且數(shù)據(jù)密集時(shí)顯示不美觀[10]。上述3種數(shù)據(jù)空間渲染技術(shù),均不能完整地解決大數(shù)據(jù)可視化分析時(shí)對(duì)于點(diǎn)數(shù)據(jù)的快速顯示、條件查詢支持、多比例尺動(dòng)態(tài)渲染,以及無(wú)數(shù)據(jù)壓蓋顯示的需求。針對(duì)上述問(wèn)題,本文提出了一種全新的基于格網(wǎng)的多比例尺海量數(shù)據(jù)空間渲染技術(shù),為農(nóng)業(yè)大數(shù)據(jù)的空間可視化分析提供高效的渲染手段。
圖1 服務(wù)器端渲染技術(shù)效果
圖2 瀏覽器端聚合渲染效果
1. 示例數(shù)據(jù)
本文采用兩套數(shù)據(jù)進(jìn)行基于格網(wǎng)的多比例尺海量數(shù)據(jù)空間渲染技術(shù)的測(cè)試。第1套數(shù)據(jù)是全國(guó)興趣點(diǎn)數(shù)據(jù),數(shù)據(jù)量達(dá)2000萬(wàn)條;第2套數(shù)據(jù)是黑龍江省農(nóng)業(yè)企業(yè)與農(nóng)村合作社點(diǎn)狀數(shù)據(jù),數(shù)據(jù)量約9.37萬(wàn)條,內(nèi)容包括全省農(nóng)村合作社、農(nóng)業(yè)企業(yè)的名稱及其所在市縣街道(村),以及相應(yīng)的經(jīng)緯度。
2. 技術(shù)路線
基于格網(wǎng)的多比例尺海量數(shù)據(jù)空間渲染技術(shù)路
線,如圖4所示。其技術(shù)流程及基本原理如下:
圖3 瀏覽器端麻點(diǎn)渲染效果
1) 海量數(shù)據(jù)上傳:將具有X、Y坐標(biāo)的海量點(diǎn)數(shù)據(jù),直接上傳到服務(wù)器上。
2) 多比例尺格網(wǎng)計(jì)算:后臺(tái)中通過(guò)比例尺進(jìn)行格網(wǎng)計(jì)算、數(shù)據(jù)格網(wǎng)歸類。首先預(yù)置多級(jí)比例尺(如將比例尺劃分為0~18級(jí)),以及每級(jí)格網(wǎng)大小(如以屏幕4×4=16個(gè)像素為一個(gè)格網(wǎng));確定了比例尺級(jí)別和格網(wǎng)大小之后,在每個(gè)級(jí)別之下都以每16個(gè)像素為一個(gè)格網(wǎng)進(jìn)行計(jì)算,根據(jù)目標(biāo)數(shù)據(jù)位置計(jì)算出所屬格網(wǎng),然后將格網(wǎng)ID、比例尺、level、格網(wǎng)中心位置記錄到目標(biāo)數(shù)據(jù)中。
圖4 技術(shù)路線
海量數(shù)據(jù)的多比例尺格網(wǎng)預(yù)置完成后,便可根據(jù)用戶的空間或?qū)傩圆樵儣l件返回渲染結(jié)果:
1) 空間查詢條件:前端設(shè)置空間查詢條件,基于當(dāng)前視圖窗口進(jìn)行查詢,此外還可以同時(shí)進(jìn)行屬性查詢。依據(jù)查詢條件和比例尺,通過(guò)http請(qǐng)求傳入后臺(tái)。
2) 實(shí)時(shí)分組統(tǒng)計(jì):根據(jù)查詢條件,后臺(tái)進(jìn)行數(shù)據(jù)過(guò)濾。對(duì)具有格網(wǎng)屬性的數(shù)據(jù)進(jìn)行分組統(tǒng)計(jì),該統(tǒng)計(jì)計(jì)算是實(shí)時(shí)進(jìn)行的,這樣就計(jì)算出了每個(gè)格網(wǎng)所包含的點(diǎn)數(shù)據(jù)量。
3) 實(shí)時(shí)聚類計(jì)算:定義聚合計(jì)算時(shí)的最小容差(如以50 px距離為容差)。從屏幕原點(diǎn)開(kāi)始找具有點(diǎn)數(shù)據(jù)的格網(wǎng),與該格網(wǎng)中心距離小于50 px的其他周邊格網(wǎng)都參與合并統(tǒng)計(jì),此時(shí)合并計(jì)算后的點(diǎn)符號(hào)位置根據(jù)格網(wǎng)分組數(shù)值的權(quán)重會(huì)發(fā)生一定的變化,這樣同時(shí)避免了后續(xù)前端繪制時(shí)出現(xiàn)點(diǎn)符號(hào)壓蓋的問(wèn)題。依此類推,尋找下一個(gè)不在50 px距離內(nèi)的格網(wǎng),并進(jìn)行聚類計(jì)算。聚類計(jì)算完成之后,將計(jì)算結(jié)果通過(guò)JSON格式返回到前端,主要是聚合數(shù)值、點(diǎn)符號(hào)坐標(biāo)。
后臺(tái)往前端返回?cái)?shù)據(jù)時(shí),利用了Gzip壓縮技術(shù)[11]。通過(guò)Gzip進(jìn)行數(shù)據(jù)壓縮,可將數(shù)據(jù)壓縮至1/6大小(根據(jù)實(shí)際情況不同壓縮大小不同),從而極大降低了網(wǎng)絡(luò)傳輸?shù)呢?fù)擔(dān),可將查詢結(jié)果快速返回到前端。
4) 定義渲染規(guī)則:前端定義數(shù)據(jù)渲染的規(guī)則,渲染規(guī)則可以根據(jù)需求進(jìn)行調(diào)整。默認(rèn)規(guī)則如下:
a. 200≤聚合統(tǒng)計(jì)數(shù)值,紅色圓圈表示,大小為45 px;
b. 100≤聚合統(tǒng)計(jì)數(shù)值<200,藍(lán)色圓圈表示,大小為35 px;
c. 50≤聚合統(tǒng)計(jì)數(shù)值<100,藍(lán)色圓圈表示,大小為30 px;
d. 10≤聚合統(tǒng)計(jì)數(shù)值<50,藍(lán)色圓圈表示,大小為25 px;
e. 2≤聚合統(tǒng)計(jì)數(shù)值<10,藍(lán)色圓圈表示,大小為20 px;
f. 1=聚合統(tǒng)計(jì)數(shù)值,默認(rèn)顏色,默認(rèn)大小。
5) 渲染圖層數(shù)據(jù):前端對(duì)后臺(tái)傳回的JSON數(shù)據(jù)進(jìn)行解析,并且基于相應(yīng)的開(kāi)發(fā)接口對(duì)圖層進(jìn)行了功能擴(kuò)展,通過(guò)擴(kuò)展的GraphicsLayer方法能夠直接進(jìn)行數(shù)據(jù)展示[12]。
基于格網(wǎng)的多比例尺海量數(shù)據(jù)空間渲染技術(shù),其關(guān)鍵技術(shù)有:①預(yù)計(jì)算海量數(shù)據(jù)的多比例尺格網(wǎng)時(shí),只需分配不同比例尺上數(shù)據(jù)所在格網(wǎng)中心位置,再無(wú)其他數(shù)據(jù)處理,當(dāng)數(shù)據(jù)有增、刪、改等操作時(shí),相比其他空間渲染方法而言,其處理成本低很多,維護(hù)成本也低;②在接到條件查詢請(qǐng)求后,可通過(guò)實(shí)時(shí)聚類算法,在某一比例尺下對(duì)數(shù)據(jù)點(diǎn)重新組合,避免出現(xiàn)壓蓋顯示的現(xiàn)象。兩項(xiàng)關(guān)鍵技術(shù)相互配合,彌補(bǔ)了現(xiàn)有海量數(shù)據(jù)渲染方法的不足。
1. 海量數(shù)據(jù)渲染效率對(duì)比
通過(guò)對(duì)比,相同的環(huán)境下(見(jiàn)表1),基于格網(wǎng)的多比例尺海量數(shù)據(jù)空間渲染技術(shù)在數(shù)據(jù)量達(dá)到2000萬(wàn)時(shí),地圖的渲染仍然游刃有余,而通過(guò)聚客戶端聚合渲染技術(shù),則最多能支持10萬(wàn)條數(shù)據(jù)的渲染,并且此時(shí)的地圖操作已經(jīng)很困難了。對(duì)于同一操作請(qǐng)求下,兩個(gè)方法的繪制效率也有明顯的差別:使用瀏覽器端渲染方法的請(qǐng)求響應(yīng)時(shí)間為13.2 s,而使用本文中的大數(shù)據(jù)渲染方法的請(qǐng)求響應(yīng)時(shí)間僅為2.8 s(如圖5所示)。
表1 海量數(shù)據(jù)渲染效率對(duì)比的測(cè)試環(huán)境
本例中使用的是2000萬(wàn)條的數(shù)據(jù)渲染和地圖操作,當(dāng)然還可以支持更多數(shù)據(jù),其響應(yīng)速度與后臺(tái)數(shù)據(jù)庫(kù)的數(shù)據(jù)組織有關(guān)。如果將數(shù)據(jù)分布于多臺(tái)機(jī)器存儲(chǔ),還可以大大提高海量數(shù)據(jù)的渲染速度。
2. 海量數(shù)據(jù)空間查詢和渲染效果
基于格網(wǎng)的多比例尺海量數(shù)據(jù)空間渲染技術(shù)支持根據(jù)條件查詢來(lái)返回渲染效果,通過(guò)相應(yīng)的where條件語(yǔ)句即可進(jìn)行多字段過(guò)濾。渲染結(jié)果中,不同的渲染符號(hào)代表了不同的聚合統(tǒng)計(jì)數(shù)值規(guī)模。200以上是紅色,200以下是藍(lán)色,且200以下會(huì)根據(jù)數(shù)值賦予不同大小的渲染符號(hào)。
通過(guò)圖6可以看出,渲染結(jié)果的計(jì)算是基于當(dāng)前可視范圍實(shí)時(shí)進(jìn)行的。結(jié)果中,能夠看到每次計(jì)算的請(qǐng)求耗時(shí)情況、當(dāng)前參與計(jì)算的點(diǎn)個(gè)數(shù)、聚合統(tǒng)計(jì)計(jì)算有多少、沒(méi)有參與聚合統(tǒng)計(jì)的點(diǎn)個(gè)數(shù)。
圖5 兩種海量數(shù)據(jù)渲染技術(shù)效率對(duì)比
圖6 基于格網(wǎng)的多比例尺海量數(shù)據(jù)渲染效果
通過(guò)對(duì)幾種空間渲染技術(shù)的效率和效果測(cè)試,其對(duì)比結(jié)果見(jiàn)表2。
表2 海量數(shù)據(jù)空間渲染方法參數(shù)對(duì)比
需要說(shuō)明的是,由于點(diǎn)符號(hào)是根據(jù)格網(wǎng)進(jìn)行多次聚合計(jì)算的位置,除了最大比例尺狀態(tài)下,每個(gè)點(diǎn)符號(hào)的位置是格網(wǎng)中心;比例尺越大,點(diǎn)符號(hào)與原始點(diǎn)的真實(shí)位置越接近。這種處理在大幅提高渲染效率的同時(shí),能夠客觀反映原始海量數(shù)據(jù)的空間分布情況。
通過(guò)上述分析可知,基于格網(wǎng)的多比例尺海量數(shù)據(jù)空間渲染技術(shù)相比其他渲染技術(shù),具有較大的優(yōu)勢(shì)。其主要特色如下:
1. 多比例尺格網(wǎng)實(shí)時(shí)計(jì)算
在不同比例尺下,根據(jù)用戶上傳數(shù)據(jù)的空間位置,實(shí)時(shí)計(jì)算數(shù)據(jù)所屬格網(wǎng),然后進(jìn)行聚合統(tǒng)計(jì)計(jì)算。算法簡(jiǎn)單,時(shí)間損耗小。
2. 基于統(tǒng)計(jì)結(jié)果的實(shí)時(shí)渲染
每次的數(shù)據(jù)渲染,都依據(jù)當(dāng)前比例尺、當(dāng)前可視范圍、當(dāng)前所屬格網(wǎng)進(jìn)行實(shí)時(shí)聚合統(tǒng)計(jì)。該方法有效地降低了大數(shù)據(jù)量實(shí)時(shí)計(jì)算所帶來(lái)的時(shí)間損耗,基于當(dāng)前視圖和格網(wǎng)的統(tǒng)計(jì)能夠減少計(jì)算次數(shù),從而滿足實(shí)時(shí)要求。
3. 前端展示直觀,網(wǎng)絡(luò)傳輸小
定義了前端最小容差,每次比例尺變化時(shí)根據(jù)格網(wǎng)實(shí)時(shí)進(jìn)行聚類計(jì)算(合并統(tǒng)計(jì)結(jié)果),大幅減少網(wǎng)絡(luò)傳輸量,此外還可以避免前端渲染時(shí)出現(xiàn)點(diǎn)符號(hào)之間的壓蓋顯示問(wèn)題。
4. 支持多字段查詢
用戶上傳的數(shù)據(jù)中如果包含了多個(gè)屬性字段,則可以通過(guò)組合條件來(lái)對(duì)這些數(shù)據(jù)進(jìn)行篩選,靈活、方便地過(guò)濾前端的可視化結(jié)果。
5. 維護(hù)成本低
用戶對(duì)數(shù)據(jù)進(jìn)行的增、刪、改等操作,能夠在前端直接顯示變化,不需要額外的工作,且不會(huì)影響前端的渲染效果。
[1] 溫孕江. 農(nóng)業(yè)大數(shù)據(jù)研究的戰(zhàn)略意義與協(xié)同機(jī)制[J]. 高等農(nóng)業(yè)教育, 2013, 11(11): 3-6.
[2] 孟小峰,慈祥. 大數(shù)據(jù)管理:概念、技術(shù)與挑戰(zhàn)[J]. 計(jì)算機(jī)研究與發(fā)展, 2013, 50(1): 146-169.
[3] 王元卓,靳小龍,程學(xué)旗. 網(wǎng)絡(luò)大數(shù)據(jù):現(xiàn)狀與展望[J]. 計(jì)算機(jī)學(xué)報(bào), 2013, 36(6): 1125-1138.
[4] 周文生,毛鋒,胡鵬. Web環(huán)境下地理空間數(shù)據(jù)的開(kāi)放式表達(dá)體系研究[J]. 武漢大學(xué)學(xué)報(bào)(信息科學(xué)版), 2004, 29(1): 43-47.
[5] 劉榮高,莊大方,劉紀(jì)遠(yuǎn). Web環(huán)境下實(shí)現(xiàn)空間數(shù)據(jù)表達(dá)的框架研究[J]. 測(cè)繪學(xué)報(bào), 2001, 30(3): 266-280.
[6] 陳生,曾行吉,梁軍. 基于GIS的統(tǒng)計(jì)數(shù)據(jù)可視化研究[J]. 計(jì)算機(jī)工程與設(shè)計(jì), 2008, 29(14): 3757-3759, 3762.
[7] Esri.ArcGIS for Server產(chǎn)品介紹[EB/OL].[2015-01-01].http:∥www.esrichina.com.cn/2015/0107/2818.html.
[8] ArcGIS Resources.ArcGIS Help - ArcGIS for Server Help[EB/OL].[2015-06-10].http:∥resources.arcgis.com/en/help/main/10.2/#/Welcome_to_the_ArcGIS_10_2_for_Server_Windows_Help/0154000002np 000000/.
[9] GeoQ位置智能平臺(tái)[EB/OL].[2015-06-01].http:∥www.geoq.cn/.
[10] 百度LBS開(kāi)放平臺(tái)[EB/OL].[2015-06-01].http:∥developer.baidu.com/map/.
[11] Gzip維基百科[EB/OL].[2015-05-01].https:∥en.wikipedia.org/wiki/Gzip.
[12] ArcGIS Resources ArcGIS for Developers-ArcGIS API for JavaScript[EB/OL].[2015-06-01].https:∥developers.arcgis.com/javascript/.
[13] Tomcat官網(wǎng)網(wǎng)站[EB/OL].[2015-05-01].http:∥tomcat.apache.org/.
[14] Solr官方網(wǎng)站[EB/OL].[2014-12-01].http:∥lucene.apache.org/solr/.
[15] Lucene官方網(wǎng)站[EB/OL].2012-12-01[2015-04-02].http:∥lucene.apache.org/.
Multi-scale Rendering Method of Massive Geospatial Data Based on Grid
CHEN Jia,ZHAO Zuliang,GUO Hongfei,ZHAO Guangyu,MA Jingli,LIU Zhe
2016-05-25
國(guó)家自然科學(xué)基金青年項(xiàng)目(41301075);新華社提升移動(dòng)互聯(lián)網(wǎng)用戶體驗(yàn)關(guān)鍵技術(shù)研究項(xiàng)目(0716-1441XH110449)
陳 嘉(1984—),男,碩士,工程師,主要從事媒體數(shù)據(jù)分析及可視化的相關(guān)技術(shù)研究。E-mail:chenjia@xinhua.org
劉 哲。E-mail:liuz@cau.edu.cn
陳嘉,趙祖亮,郭鴻飛,等.基于格網(wǎng)的多比例尺海量數(shù)據(jù)空間渲染方法[J].測(cè)繪通報(bào),2016(11):60-63.
10.13474/j.cnki.11-2246.2016.0366.
P237
B
0494-0911(2016)11-0060-04