陳繼培,吳 劍,高 珅
(1.湖北省國土測繪院,湖北 武漢 430001)
地質公園是以具有特殊地質科學意義、稀有的自然屬性、較高的美學觀賞價值,具有一定規模和分布范圍的地質遺跡景觀為主體,融合其他自然景觀與人文景觀而構成的一種獨特的自然區域[1]。其建設的首要目的是保護公園內的地質遺跡。近年來,地質公園的概念被進一步擴展,地質旅游成為地質公園內最核心的內容之一,并迅速發展[2]。
地質公園本身系統復雜、類型多樣,地質旅游體現了其科普功能,挖掘地質文化內涵還有很大的發展空間[3]。隨著地質旅游工作的深入,游客對其提出了更高的要求。游客渴望在旅游中獲得地學知識,同時希望在旅游前能對地質公園的總體風貌進行大致了解。目前,很多的地質公園已建立了自己的網站,但基本以圖文為主,游客很難對公園產生立體直觀的印象。隨著三維GIS和傾斜攝影技術的發展,對地質公園進行三維建模,進而在網絡上提供三維瀏覽服務,將使游客的迫切需求成為可能。本文基于三維引擎Cesium研發了一套三維地質公園導覽系統,為在線瀏覽三維地質公園提供了可行的技術方法。
遠安縣是全國首批國家級重點保護古生物化石集中產地,落星村被譽為“中國化石第一村”,出土了2.5億年前的“湖北鱷”化石。該動物化石僅在湖北省發現,是世界獨一無二的特殊類群。以遠安古生物化石為核心,遠安縣于2018年2月成功申報了湖北遠安化石群國家地質公園,公園面積約為500 km2,結構上可概括為“一館兩園兩點”,其中“一館”為遠安縣地質博物館;“兩園”為張家灣三疊紀水生爬行動物化石園和荷花鎮奧陶紀頭足類化石園;“兩點”為鹽池河巖崩景點和望家沖石林景點。本文以湖北遠安化石群國家地質公園為試點,展開系統的研究與開發。
系統以Cesium三維引擎技術為基礎,實現了地質公園三維模型的讀取和識別,同時融合公園二維專題數據和VR全景數據,為游客提供了逼真的虛擬現實體驗,達到了地質公園在線導覽的目的。系統采用B/S架構,客戶端應采用支持WebGL的谷歌Chrome瀏覽器、火狐FireFox瀏覽器、360瀏覽器等。系統后端采用輕量級的容器Spring框架,前端以VUE和Cesium為基礎實現二三維模型數據的渲染顯示。系統技術架構主要包括瀏覽器客戶端、服務層和數據層3個部分,如圖1所示。

圖1 系統技術架構圖
系統設計的目標是實現在線瀏覽三維地質公園,能展示地質公園的基礎設施、三維建筑、化石模型,同時能對地址公園的設施、地質旅游信息進行查詢。系統包括圖層管理、空間量測、信息查詢、全景瀏覽、我的地圖等模塊,其中圖層管理模塊負責二三維數據的加載顯示,包括公園基礎設施、景區范圍、路網、地名、河流、地質災害點、化石三維模型、傾斜攝影等數據;空間量測模塊負責三維環境空間距離的測量,包括距離測量、面積測量、三角測量;信息查詢模塊負責公園矢量數據信息的查詢,包括屬性查詢和空間查詢;全景瀏覽模塊通過真實影像的方式實現虛擬瀏覽,能與二維矢量進行關聯顯示;我的地圖模塊包括視角標簽和圖上標繪兩個功能,視角標簽負責記錄當前三維視角,便于瀏覽場景時能快速定位到其他景點,圖上標繪用于游客標記自己的感興趣內容(如旅游點位等),進行個性化展示。
作為新一代的開源三維引擎框架,Cesium通過HTML5網頁標準和WebGL技術規范實現動態的三維場景顯示和渲染[4],無需安裝插件即可創建具有最佳性能、精度、視覺質量和易用性的世界級三維地球影像和地圖,并具有豐富的開源社區內容[5]。Cesium支持多種視圖,能以二三維進行展示;支持加載3D Tiles和glTF格式數據,海量傾斜、點云模型數據以及符合OGC標準的WMS、WMTS等地圖服務[5]。Cesium接口豐富,通常只需調用接口即可滿足三維模型業務需求。
系統在HTML5平臺中利用Cesium和WebGL圖形渲染器進行可視化交互開發[6]。程序運行時,客戶端發出請求命令,從服務器提取瓦片數據,服務器響應接收并傳回客戶端,客戶端解析文件并調用圖形繪制方法將其渲染在網頁上,實現三維可視化交互[7]。
地質公園三維模型數據分為傾斜攝影數據和化石模型數據。傾斜攝影通過無人機平臺搭載五鏡頭航測相機,同時從多角度獲取地質公園建筑的真實影像信息,并在ContextCapture中將傾斜數據導出為Cesium引擎支持的3D Tiles格式數據。傾斜攝影數據能為游客展示符合人眼視覺的真實直觀的世界,細節程度高,可看到真實的地形和房屋等地物信息[8]。化石模型通過相機多角度采集化石實景照片,再利用三維建模軟件自動合成模型數據。PhotoScan三維建模軟件操作簡單,只需導入照片、對齊照片、生成密集點云、生成紋理等步驟即可自動完成數據制作。本文采用PhotoScan軟件完成化石數據的建模,導出的化石數據成果為obj格式,由于Cesium僅支持glTF格式模型,因此需通過obj2gltf工具將其轉換為glTF格式。
全景虛擬技術是一種運用數碼相機對現有場景進行多角度環視拍攝,再利用計算機進行后期縫合,并加載播放程序來完成的三維虛擬展示技術。全景對計算量和存儲量要求不高,在旅游場景瀏覽中應用較廣,其重點是圖像拼接。全景是通過普通相機拍攝,再將得到的一系列重疊照片鑲嵌拼接而成的,因此對拍攝照片有一定的技術規范要求,拍攝角度、焦距、拍攝間隔、照片重疊度等均需根據現場環境進行調整。
全景技術包括拍攝點位選取、相機拍攝、全景圖合成、照片修正等步驟,具體流程如圖2所示。本文采用PTGui軟件合成全景圖,再對全景圖進行Photoshop調色、地物消除、補天等處理,最終通過720云平臺進行全景發布。

圖2 全景技術流程圖
圖層管理是系統數據的展示窗口,可進行加載、關閉、更改透明度等操作,加載后的數據能在三維地球上進行疊加顯示。圖層管理功能以天地圖影像和地形為基礎底圖,疊加顯示傾斜、化石等三維模型數據以及公園基礎設施、村莊路網、地質等二維矢量數據。系統加載三維模型和二維矢量效果如圖3所示。

圖3 三維模型和二維矢量加載圖
空間量測是對場景中的點進行空間量測,主要包括空間距離量測、空間面積量測和三角量測??臻g距離量測的實現原理為;監聽鼠標左鍵點擊事件獲取起始點位坐標信息,根據空間坐標繪制實體線,再調用fromDegrees、Distance方法獲取其空間點位之間的距離。
信息查詢是對公園的基礎設施數據、旅游路線等內容進行信息查詢,包括屬性查詢和空間查詢。屬性查詢在輸入框內輸入要查詢的信息,并與數據庫進行模糊匹配,然后列表顯示查詢結果,同時在地圖上以圖標展示其位置??臻g查詢是當游客點擊地圖上的圖標時,系統會利用Cesium events API監聽到點擊事件,再通過pickPosition獲取點擊位置,若該處有信息被定義,則通過彈出框顯示該地物的詳細信息。
全景瀏覽是在三維視圖里瀏覽VR全景數據,實現了二維數據與VR全景的交互顯示。VR全景URL地址事先以字段的形式存儲在公園二維矢量數據中,查詢公園二維數據的同時即可瀏覽該點位的VR數據。VR全景瀏覽效果如圖4所示。

圖4 VR全景瀏覽圖
我的地圖包括視角標簽和圖上標繪兩個功能,其中視角標簽能快速定位到興趣點,實現景區、景點等位置的切換;圖上標繪是在地圖上繪制感興趣的點、線等內容。視角標簽和圖上標繪的實現方式為;將當前視角和圖上繪制點以JSON文件的形式保存到客戶端本地;調用時客戶端對JSON文件進行解析,并通過Cesium圖上繪制實現加載顯示。
Cesium開源框架能加載不同類型的矢量和三維模型數據,無需插件即可在瀏覽器端實現可視化三維場景的構建。本文以Cesium開源框架為基礎,結合GIS和Web前端技術,開發了圖層管理、空間量算、信息查詢等模塊,實現了地質公園的三維在線瀏覽,交互性好、運行流暢,為游客帶來了全新的視覺體驗,能為構建三維地質公園提供可行的技術方法。