陳 浩 艾廷華
(武漢大學(xué) 資源與環(huán)境科學(xué)學(xué)院, 湖北 武漢 430079)
隨著我國城市化進程不斷推進,交通擁堵、環(huán)境惡化、公共基礎(chǔ)設(shè)施分布不均衡等一系列社會問題日益嚴峻。為解決這些城市化問題,智慧城市在云計算、物聯(lián)網(wǎng)技術(shù)、傳感器技術(shù)的發(fā)展下逐步形成,這些互聯(lián)網(wǎng)技術(shù)領(lǐng)域的支撐技術(shù)為智慧城市的建設(shè)提供了硬件條件,但要更好地發(fā)揮其在城市規(guī)劃、建設(shè)、管理上的智慧功能,還需要城市空間數(shù)據(jù)支持,作為信息系統(tǒng)運行的“血液”,城市空間數(shù)據(jù)應(yīng)滿足多尺度表達的需要,既要考慮宏觀上的大區(qū)域空間格局分析,也有微觀層上的細節(jié)化信息分析。同時,為服務(wù)城市豎向規(guī)劃、多視角景觀分析及全方位的空間體驗,智慧城市的空間數(shù)據(jù)表達應(yīng)當(dāng)為多維特征。在智慧城市的建設(shè)當(dāng)中,三維地圖作為表達、傳輸和研究地理信息的方式和載體[1],是所有智慧城市管理的基礎(chǔ),更是關(guān)鍵環(huán)節(jié)。建筑物作為三維地圖當(dāng)中的核心組成單元,如何實現(xiàn)建筑物數(shù)據(jù)表達的多維與多尺度這兩大條件成為智慧城市建設(shè)的關(guān)鍵。
在大尺度需求下,海量的城市三維建筑模型堆集在一起,導(dǎo)致渲染加載速度慢、視覺效果混亂,影響讀者對空間信息的快速獲取。目前針對城市三維建筑模型的研究主要集中于單個建筑模型的簡化,通過細節(jié)特征的過濾和紋理粗化得到簡化表達,盡可能保持模型原有的幾何和表面特征,從而提高計算機渲染效率[2-3]。同時,通過多細節(jié)層次(Levels of Detail, LOD)模型對建筑物進行逐次顯示模型細節(jié)也是一種可行的策略,能有效減少模型數(shù)據(jù)全量加載帶來的壓力,提高渲染效率[4-5],該方法在建筑信息建模(Building Information Modeling,BIM)技術(shù)中有城市地理標(biāo)記語言((City Geography Markup Language, CityGML))標(biāo)準(zhǔn)規(guī)定了各LOD層次表達的技術(shù)要求,但該標(biāo)準(zhǔn)只是簡單地疊加/移除不同層次的細節(jié),缺乏幾何特征的融合抽象。因此,要在網(wǎng)絡(luò)環(huán)境下提高三維建筑物模型可視化效果,必須對三維建筑物模型進行多種抽象概括,既有細節(jié)特征的化簡,也有鄰近目標(biāo)的融合,同時還要顧及語義特征上的相似。
不同于二維數(shù)據(jù)的綜合化簡,三維數(shù)據(jù)的綜合不僅要顧及輸入數(shù)據(jù)的粒度特征,還要顧及可視化渲染軟件平臺的技術(shù)特征。鑒于Cesium成為三維空間數(shù)據(jù)可視化表達的重要平臺,本研究提出一種基于Cesium系統(tǒng)平臺的城市建筑物三維地圖綜合及多尺度可視化的方法。Cesium是一種輕量級的web端開源三維開發(fā)框架,其3DTiles的三維數(shù)據(jù)規(guī)劃標(biāo)準(zhǔn)高效實現(xiàn)了三維數(shù)據(jù)的流式傳輸和海量三維模型渲染。該框架支持三維數(shù)據(jù)常見文件格式,適配現(xiàn)行大部分瀏覽器,因而常被用于各行業(yè)三維信息化平臺建設(shè)。本文在該框架的基礎(chǔ)上,通過三維建筑物模型的制圖綜合,提高了三維數(shù)據(jù)的可視化展示效果。
Cesium 是一款基于Webgl實現(xiàn)的三維開源框架,兼容于大部分瀏覽器,同時支持3D、2.5D、和2D圖形的展示,并且不需要安裝任何插件[6-7]。該框架擁有完善的對于三維模型、地形、影像、矢量、注記、點云等的可視化支持,數(shù)據(jù)源可以通過WMTS、GeoJSON、地形服務(wù)等形式進行加載。同時Cesium還支持數(shù)據(jù)的動態(tài)展示,利用時間軸將模型或數(shù)據(jù)的狀態(tài)與時間結(jié)合,為讀者創(chuàng)建出逼真的虛擬場景,使得Cesium成為三維空間數(shù)據(jù)可視化表達的重要平臺。WebGIS領(lǐng)域中還有其他幾款基于WebGL開發(fā)的可視化框架,如Openlayers、MapboxGL等,但這些框架的偏向功能有所差異,OpenLayers是通過canvas進行地圖渲染,其針對的是二維地圖數(shù)據(jù),主要提供地理信息系統(tǒng)(Geographic Information System,GIS)二維數(shù)據(jù)的展示與交互。MapboxGL則是偏向于大量的地圖切片數(shù)據(jù)的渲染,該框架支持開發(fā)者定制個性化地圖,其所針對的是地圖的渲染。而Cesium是偏向于三維數(shù)據(jù)的渲染,支持多源數(shù)據(jù)在三維可視化任務(wù)中進行落圖展示,同時提供了一系列的接口以實現(xiàn)用戶交互。
Cesium為城市三維建筑物模型提供了高效的渲染引擎,制定了3DTiles數(shù)據(jù)格式將城市三維建筑數(shù)據(jù)集以分塊、分層的數(shù)據(jù)組織形式進行渲染,可以最大限度地減輕瀏覽器及圖形處理器的壓力。此外,Cesium還支持對城市三維建筑物的樣式選擇和交互式選擇,能夠通過樣式選擇批量處理建筑模型的紋理、著色等參量,也能實現(xiàn)對單個建筑物塊的移除等操作或通過單個建筑物ID獲取建筑物對應(yīng)的信息?;谠摽蚣軐崿F(xiàn)三維建筑物的可視化,能以較低的開發(fā)成本在瀏覽器中展示海量三維城市建筑物模型,同時還具有靈活的交互方式和良好的視覺體驗。
從原理上,Cesium三維數(shù)據(jù)的可視化機制可以分為全量加載和按需加載。全量加載是針對數(shù)據(jù)體量少且范圍較小的數(shù)據(jù),如矢量圖形、單體三維模型、注記信息等,對于這類數(shù)據(jù)可以一次性全部獲取并在瀏覽器進行渲染,但會消耗較大的內(nèi)存。而按需加載則是對小比例尺的數(shù)據(jù)建立LOD多細節(jié)層次模型,再依據(jù)客戶端當(dāng)前地圖顯示的范圍按需加載數(shù)據(jù),這樣可以有效減少數(shù)據(jù)量對于內(nèi)存的消耗,同時提高渲染效率,一般適用于大范圍的地形、三維模型和點云等,但無法從根源上解決地圖縮編過程產(chǎn)生的數(shù)據(jù)堆集從而影響視覺效果的問題,而城市空間信息平臺既要從宏觀層面體現(xiàn)出大區(qū)域的空間格局,也要在微觀層上展現(xiàn)細節(jié)信息,為此我們需要在建筑物加載過程中進行制圖綜合。
建筑物作為三維地圖當(dāng)中的核心組成單元,當(dāng)?shù)貓D由大比例尺縮編為小比例尺時,如果建筑物數(shù)據(jù)的間距、寬度均僅以同等比例縮小,相鄰的建筑物會堆集在一起,從而造成視覺效果混亂,難以從宏觀上進行大區(qū)域的空間格局分析。同時,在Web端小比例尺下全量加載三維建筑物,網(wǎng)絡(luò)數(shù)據(jù)傳輸及客戶端渲染都會面臨著巨大壓力。因此,為保證地圖內(nèi)容的易讀性、一覽性,并滿足三維空間要素多尺度表達、減輕數(shù)據(jù)存儲與網(wǎng)絡(luò)傳輸負載的需求,需要在地圖比例尺縮編過程中進行制圖綜合。
制圖綜合是以概括、抽象的形式反映出制圖對象帶有規(guī)律性的類型特征,保留本質(zhì)主要的地理要素,舍去次要的、非本質(zhì)的地理要素,從而減少冗余的地圖空間數(shù)據(jù),它是空間數(shù)據(jù)尺度變換、集成與融合、分析與挖掘等的基本手段之一[8-9]。在城市尺度下實現(xiàn)三維空間數(shù)據(jù)的多尺度表達,其綜合過程主要分為兩步:
一是基于建筑物個體相互間的距離關(guān)系將建筑物群分為若干個組,讓組內(nèi)建筑物的聯(lián)系比跨組間建筑物的相關(guān)性要近,對于相關(guān)性聯(lián)系的考慮,即建筑物個體間的距離關(guān)系,本文將遵循格式塔原則進行分組計算,綜合考慮建筑物的面積大小、幾何形狀以及排列方向間的關(guān)系[10],同時結(jié)合建筑物的語義信息,比如由于醫(yī)院和學(xué)校等建筑的功能性不同在聚類時可以考慮分別合并,而騎樓等幾何形狀相對特殊的建筑也應(yīng)當(dāng)予以區(qū)分。在分組結(jié)果的基礎(chǔ)上進行選取、化簡、合并和典型化等綜合操作。
二是,在三維場景中進行建筑物綜合過程中,還需要對視點位置進行考慮,讀者在不同的位置以不同的方向進行觀察會有不同的視覺感受,透視投影有近大遠小的視覺效果,會因為視點和建筑物距離的不同,使建筑物的大小和建筑物間的距離有不同的視覺效果。如圖1所示,a、b在幾何上的長度其實是相等的,但是因為a更靠近觀察點,所以視覺上距離更遠。在綜合時,遠離視點的建筑物群由于透視投影,建筑物之間的視覺距離比較近,應(yīng)該進行合并,靠近近視點建筑物實際距離雖然相同,但因為視覺感受上距離較遠,不需要合并;離視點遠的建筑物因為近大遠小的透視效應(yīng),視覺上會變小甚至難以辨認,有可能需要將其刪除,距離視點較遠的建筑物的細節(jié)也會更加難以辨認,需要進行更大尺度的綜合化簡。
圖1 視點對建筑物距離的影響
與行業(yè)規(guī)范一致,cesium框架下的電子地圖瓦片數(shù)據(jù)劃分為20級,三維模型的可視等級范圍為設(shè)定為14~20級以減少數(shù)據(jù)渲染壓力。為實現(xiàn)多尺度三維建筑物數(shù)據(jù)的可視化表達,需要將建筑物數(shù)據(jù)的綜合級別與電子地圖瓦片數(shù)據(jù)的不同級別作關(guān)系映射。如表1所示,本文將三維建筑物模型的可視化表達分為三個等級,其中L1為原始未綜合數(shù)據(jù),L2與L3分別對應(yīng)不同綜合尺度,L3比L2的綜合程度更大。
表1 瓦片級別與綜合級別映射關(guān)系
本文實驗采用城市三維建筑白模數(shù)據(jù)(廣州地區(qū))進行可視化實驗,該區(qū)域建筑物數(shù)量為45 268個。白模作為城市三維建筑模型的初期數(shù)據(jù)產(chǎn)品,存儲了建筑物的位置、高度、形狀、面積、樓房層數(shù)和語義信息。白模產(chǎn)品的三維可視化實現(xiàn),是由二維的建筑物基底面輪廓通過結(jié)合高度屬性進行拉伸實現(xiàn)的。后期將白模數(shù)據(jù)作為基礎(chǔ),進行紋理的貼圖等操作,可以進一步完善城市空間信息平臺建設(shè)。
基于空間鄰近、形狀細節(jié)特征對多層次二維數(shù)據(jù)進行構(gòu)建,利用Delaunay三角網(wǎng)探測建筑物間的鄰近關(guān)系,把城市道路作為綜合的約束條件,保證綜合前后建筑物群的總體分布態(tài)勢以及城市的基本結(jié)構(gòu)特征,如圖2(a)所示。綜合考慮建筑物的面積大小、幾何形狀以及排列方向間的關(guān)系,結(jié)合建筑物的語義信息以及三維視點位置對建筑物構(gòu)建最小生成樹,如圖2(b)所示。通過設(shè)置不同的剪枝閾值,對建筑物進行聚類分組,可以得到不同級別下的聚類結(jié)果。即所設(shè)定的L2、L3級別的綜合力度通過剪枝閾值進行設(shè)定,如圖2(c)所示。將所有大于剪枝閾值的邊剪斷,保留下來的 最小生成樹 (Minimum Spanning Tree,MST)邊作為連接建筑物的聚類結(jié)果,有MST邊連接的建筑是一類建筑物,實現(xiàn)建筑物的聚類,最后針對各個建筑物聚類簇進行合并,如圖2(d)所示,并對建筑物幾何形狀進行綜合并更新建筑物的高度。
圖2 建筑物聚類過程
基于Cesium的三維城市化模型可視化實現(xiàn)主要包括數(shù)據(jù)格式轉(zhuǎn)換、坐標(biāo)系統(tǒng)以及三維建筑貼地調(diào)整。
3D Tiles是Cesium團隊定義的用于海量三維空間數(shù)據(jù)流式傳輸及快速渲染的三維數(shù)據(jù)格式。該格式是在glTF格式的基礎(chǔ)上,結(jié)合了LOD結(jié)構(gòu)后得到的產(chǎn)品,其在形式上與二維瓦片地圖的組織形式有所類似。本文采用CesiumLab工具對經(jīng)過綜合操作的建筑物數(shù)據(jù)集進行格式轉(zhuǎn)換,在轉(zhuǎn)換過程當(dāng)中,將三維建筑物數(shù)據(jù)集的坐標(biāo)系統(tǒng)一為Cesium框架支持的WGS84坐標(biāo)系。而通過cesium的應(yīng)用程序接口(Application Programming Interface,API)接口加載3Dtiles數(shù)據(jù)集,由于數(shù)據(jù)獲取途徑不一致,部分的三維數(shù)據(jù)模型原數(shù)據(jù)中會有因地形起伏造成的模型底部位置高程不一致,導(dǎo)致沒有緊貼三維地圖地面。該情況下需要利用創(chuàng)建平移矩陣法對模型進行貼地調(diào)整。同時對于坐標(biāo)位置信息缺失的建筑模型,也可通過該方法,結(jié)合地圖底圖的紋理,將模型調(diào)整至地圖合適的地理位置。
如圖3所示,在多尺度的情況下,如果不對建筑物進行綜合,當(dāng)?shù)貓D比例尺較小時,三維建筑物的顯示十分細碎且過于密集,許多建筑物的細節(jié)難以辨認。同時,網(wǎng)頁渲染效率較低,加載數(shù)據(jù)后需要等待一段時間才能渲染完成。本文對三維建筑物進行綜合后,當(dāng)?shù)乩淼讏D為最詳細時,建筑物也顯示最詳細的級別。隨著地圖比例尺的變小,如圖4~5所示,展示經(jīng)過不同程度的綜合操作的三維建筑物模型,其中,L1即原數(shù)據(jù)的建筑物數(shù)量為45 268個,L2的建筑物數(shù)量為20 407個,L3的建筑物數(shù)量為7 125個,有效提高渲染效率,在大區(qū)域下體現(xiàn)出建筑物的空間分布特性和集群特征,同時隨著比例尺的縮小能呈現(xiàn)出細節(jié)信息,為城市空間信息平臺的建設(shè)提供了基礎(chǔ)。
圖3 L1級別三維建筑物可視化
圖4 L2級別三維建筑物可視化
圖5 L3級別三維建筑物可視化
本文基于Cesium系統(tǒng)平臺,結(jié)合了多層次二維數(shù)據(jù)基礎(chǔ)與三維視覺感知條件,提出了一種城市建筑物三維地圖綜合及多尺度可視化的方法,有效緩解瀏覽器的渲染壓力,實現(xiàn)了城市三維建筑物數(shù)據(jù)的多維與多尺度表達。文中以建筑物個體作為單元進行考慮,今后可以從更細粒度的層面進行探究,如針對單個三維建筑物的化簡、建筑物紋理的化簡或室內(nèi)要素的綜合。