【摘 要】本文介紹了二維GIS和三維虛擬場景各自的優(yōu)缺點,提出了通過二三維聯(lián)動技術(shù)結(jié)合兩者優(yōu)點的方法來克服各自的局限性,實現(xiàn)了地理信息二三維一體化系統(tǒng)。
【關(guān)鍵詞】二維GIS 三維場景 二三維一體化
煙草企業(yè)的信息化程度一直走在國內(nèi)企業(yè)的前列,隨著地理信息系統(tǒng)(Geographic Information System簡稱為GIS)技術(shù)在煙草行業(yè)的逐步應(yīng)用,諸多煙草企業(yè)建立了基于GIS的信息管理系統(tǒng),它提高了企業(yè)規(guī)劃的效率、減少了重復(fù)建設(shè)并為企業(yè)生產(chǎn)檢修提供了新的手段。
二維GIS建立在平面地理信息數(shù)據(jù)之上,一般使用的地圖為工程圖,雖然符合目前規(guī)劃、設(shè)計、管理等對地圖的使用習(xí)慣,但無法反映和表達(dá)三維空間的信息,難以為使用者提供一個直觀的三維空間場景。相比之下,三維虛擬場景最大優(yōu)點是增加了z軸上的表現(xiàn)能力,使目標(biāo)對象在三維空間能夠最大程度地真實呈現(xiàn),三維虛擬場景盡管克服了二維GIS的缺點,但是也存在數(shù)據(jù)量大、數(shù)據(jù)獲取和處理困難、與二維數(shù)據(jù)不易順暢結(jié)合以及對各種信息的綜合處理與分析。我們通過對二維三維連動交互機(jī)制的探索,使二維GIS與三維虛擬場景較好地實現(xiàn)了融合,可以揚(yáng)長避短、更好地服務(wù)于煙草企業(yè)。
一、二三維一體化GIS系統(tǒng)構(gòu)建
(一)基本設(shè)計思路和處理流程
煙草企業(yè)二三維一體化GIS系統(tǒng)建立在空間數(shù)據(jù)庫、屬性數(shù)據(jù)庫和其他應(yīng)用數(shù)據(jù)之上;二維部分基于MapGuide,三維部分基于Unity3D;通過中間件技術(shù)FDO和ADO訪問底層數(shù)據(jù)。這種二次開發(fā)方式使得系統(tǒng)的建立和擴(kuò)展具有便捷性和穩(wěn)定性,減少了一個系統(tǒng)從總體開發(fā)需要底層引擎開始開發(fā)的龐大工作量和維護(hù)測試的壓力,大大提高了開發(fā)效率。系統(tǒng)總體結(jié)構(gòu)圖如圖1所示:
(二)二維GIS體系環(huán)境
二維GIS采用MapGuide作為開發(fā)平臺,MapGuide是Autodesk公司為滿足GIS用戶數(shù)據(jù)發(fā)布需要,開發(fā)的Internet網(wǎng)絡(luò)圖形數(shù)據(jù)發(fā)布產(chǎn)品。它是通過Internet和Intranet發(fā)布實時的、內(nèi)容豐富而翔實的地圖和地理數(shù)據(jù)的交互式解決方案。MapGuide架構(gòu)如圖2所示:
(三)三維GIS體系環(huán)境
三維部分采用Unity3D開發(fā)。Unity3D是由Unity Technologies開發(fā)的一個讓開發(fā)者輕松創(chuàng)建諸如三維視頻游戲、建筑可視化、實時三維動畫等類型互動內(nèi)容的多平臺的綜合型開發(fā)工具,它是一個全面整合的專業(yè)三維引擎。Unity3D支持多種格式導(dǎo)入,作為一個友善的專業(yè)開發(fā)工具,引擎腳本編輯支持Javascript、C#、Boo三種腳本語言,可快速開發(fā)、并自由的創(chuàng)造豐富多彩,功能強(qiáng)大的交互內(nèi)容,是三維GIS開發(fā)平臺中比較好的選擇。
二、二維GIS與三維GIS設(shè)計
(一)二維GIS設(shè)計
二維GIS主要實現(xiàn)地圖瀏覽查詢、數(shù)據(jù)統(tǒng)計、二維地圖分析等功能。以MapGuide作為GIS應(yīng)用程序開發(fā)平臺,通過調(diào)用Web Extensions API開發(fā)Web應(yīng)用程序,在WEB應(yīng)用程序中調(diào)用Web Extensions API以FDO(Feature Data Object )方式訪問數(shù)據(jù)源,如空間數(shù)據(jù)等;通過調(diào)用ADO.NET與ORACLE的數(shù)據(jù)連接訪問屬性數(shù)據(jù)庫。
二維部分與三維的主要接口有:
響應(yīng)二維三維一體化接口:根據(jù)三維場景提供的信息,以AJAX異步方式調(diào)用二維GIS信息,實現(xiàn)二維信息的同步。反過來可以二維信息通過AJAX異步調(diào)用方式調(diào)用三維信息實現(xiàn)三維信息的同步。
(二)三維GIS設(shè)計
三維GIS主要實現(xiàn)三維場景的展示、信息的查詢以及與二維GIS的交互。采用3DMAX建模方法建立三維的基本場景;通過空間坐標(biāo)和關(guān)聯(lián)的關(guān)鍵字與二維目標(biāo)對象建立關(guān)聯(lián)關(guān)系;開發(fā)三維控制功能,實現(xiàn)的三維GIS的應(yīng)用;開發(fā)控制接口實現(xiàn)三維GIS與二維GIS的交互。
三維GIS與二維GIS主要交互接口有:
三維管網(wǎng)調(diào)度接口:實現(xiàn)對管網(wǎng)模型的調(diào)度。有三種調(diào)度方式,即專業(yè)控制調(diào)度,區(qū)域控制調(diào)度和距離控制調(diào)度。
位置感知控制接口:實現(xiàn)用戶在場景的定位感知。通過與生產(chǎn)基地平面圖及建筑物室內(nèi)平面圖的坐標(biāo)匹配,顯示用戶實際位置。
三、二維三維一體化的實現(xiàn)機(jī)制
(一)交互設(shè)計
通過映射機(jī)制實現(xiàn)二維電子地圖和三維虛擬場景的交互。其映射原理如下:
ΔX=X-XOffset
ΔY=Y-YOffset
DIR=360-ORIY
上述公式中,(X,Y)為二維/三維中某點坐標(biāo)值,(XOffset,YOffset)為二維與三維坐標(biāo)值差(偏移量),(ΔX,ΔY)為(X,Y)點投影到三維/二維中的坐標(biāo)。ORIY為三維下攝像機(jī)的角度(歐拉角)的Y值,DIR為視點投影到平面上朝向,便于確認(rèn)三維下攝像機(jī)當(dāng)前角度在二維地圖上的投影。
具體實現(xiàn)方式為:選取初始固定位置作為原點,分別取三維GIS平面投影坐標(biāo)和二維GIS平面坐標(biāo),計算二者之間坐標(biāo)系的偏移量作為常量。在二維GIS中或者三維GIS中依據(jù)當(dāng)前坐標(biāo)值與偏移量計算出對應(yīng)的三維GIS坐標(biāo)值或者二維GIS坐標(biāo)值。
(二)二維三維一體化交互通信機(jī)制
考慮到二維GIS模塊和三維GIS模塊的高內(nèi)聚、低耦合的特性,在B/S架構(gòu)上采用基于AJAX技術(shù)的異步式機(jī)制來實現(xiàn)二三維連動。二維三維的交互方式是:
1.三維主導(dǎo)二維
三維場景通過參數(shù)方式發(fā)出命令到前端,前端通過AJAX技術(shù)轉(zhuǎn)到服務(wù)器處理,服務(wù)器根據(jù)請求的指令通過計算將結(jié)果反饋給二維GIS端,二維GIS根據(jù)獲取的信息刷新當(dāng)前地圖和導(dǎo)航圖。參數(shù)結(jié)構(gòu)如表1所示:
2.二維主導(dǎo)三維
二維圖在前端上取到坐標(biāo)、角度以及當(dāng)前區(qū)域后,通過AJAX方式發(fā)送到服務(wù)器端,服務(wù)器端計算三維的坐標(biāo)等信息,將計算結(jié)果反饋給前端,unity3d前端腳本根據(jù)結(jié)果實現(xiàn)三維的跳轉(zhuǎn)以及實體信息顯示等工作。參數(shù)結(jié)構(gòu)如表2所示:
四、系統(tǒng)實現(xiàn)的功能
二維GIS與三維場景的交互主要在二維三維連動、三維瀏覽查詢、二維查詢統(tǒng)計、二維分析以及其他輔助功能方面, B/S 系統(tǒng)各個功能模塊具體描述如下:
⑴三維場景瀏覽:以指定路線或自由路線進(jìn)行瀏覽, 并可控制視點的位置,調(diào)整瀏覽效果等;
⑵管線建筑物信息查詢:在三維場景中查詢管線或建筑物信息;
⑶信息查詢:本區(qū)域內(nèi)管線信息一般查詢和條件查詢;
⑷管線統(tǒng)計:統(tǒng)計廠區(qū)管線數(shù)據(jù),分專業(yè)、性質(zhì)來統(tǒng)計長度等屬性信息;
⑸選中管線統(tǒng)計:統(tǒng)計當(dāng)前選中區(qū)域的管線信息;
⑹剖面分析:分析一段區(qū)域內(nèi)地下管線位置信息;
⑺管線標(biāo)高分析:分析所標(biāo)注管線的標(biāo)高、坐標(biāo)等信息并在地圖上顯示;
⑻緩沖分析:按設(shè)定的距離條件,圍繞建筑物或管線等實體而形成一定多邊形實體緩沖區(qū),實現(xiàn)實體二維空間擴(kuò)展的信息分析
⑼二維主導(dǎo)跳轉(zhuǎn):在二維導(dǎo)航圖上選擇位置實現(xiàn)場景信息的同步跳轉(zhuǎn);
⑽三維主導(dǎo)跳轉(zhuǎn):在三維場景上選擇目標(biāo)位置實現(xiàn)二維地圖和導(dǎo)航圖的同步跳轉(zhuǎn);
⑾二維三維互動:場景瀏覽時二維信息實時變化;
⑿用戶管理:添加、刪除用戶、用戶權(quán)限管理等;
⒀地圖量測:地圖上面積和距離的量測;
五、結(jié)語
二維GIS與三維虛擬場景通過互動機(jī)制的結(jié)合,有效地改善了二維GIS與三維虛擬場景的不足,并將這種技術(shù)應(yīng)用于傳統(tǒng)上的煙草二維地理信息管理系統(tǒng),使得煙草企業(yè)的管理不再盲目和抽象,便于普通用戶或者管理決策者使用,提高了企業(yè)的管理效率。隨著煙廠行業(yè)信息技術(shù)數(shù)字化的不斷發(fā)展,我們將更切實地感受到二三維一體化GIS的重要性。
參考文獻(xiàn):
[1]Autodesk Asia Pte Ltd Autodesk地理信息系統(tǒng)解決方案之MAPGUIDE二次開發(fā)
[2]長寬高(北京)科技有限公司. Unity3D 中文手冊
[3]鄒靜.迎接互聯(lián)網(wǎng)的明天—玩轉(zhuǎn)3D Web. 電子工業(yè)出版社. 2011