隨著三維GIS技術的發展,人們在其可視化能力方面要求不斷提高,在部分應用中,人們不僅要求將場景中物體位置準確描述表達出來,同時還需要保證其逼真性和美觀性在智慧城市階段,三維GIS的構建需要提高效率和速度、降低成本。三維GIS符號化表達系統的設計能夠滿足人們在這些方面的要求。當前人們對三維GIS符號化表達系統的設計非常重視。以ZTMAP為基礎研究三維GIS符號化引擎,展開三維GIS符號化表達系統的設計,應用三維符號,具備有場景操作、空間分析、場景快速搭建以及二三維一體化等方面功能,提高三維GIS應用有效性,本文就此展開了研究分析。
1三維GIS系統應用現狀
在智慧城市階段,人們在三維GIS技術的效率、速度以及成本方面有著越來越高的要求,三維GIS借助虛擬現實技術以及計算機技術等技術手段,就三維空間數據進行相關的處理和管理等方面操作,提高三維GIS數據可視化水平,更好地完成三維空間分析,為地學規劃以及決策等方面問題的解決打下良好的基礎。
當前,三維GIS系統存在有制作周期長、數據多、渲染效率差等不足,這些方面問題主要是因為場景模型借助建模軟件進行制作,模型在數據方面有著非常大的需求量,導致系統效率受到嚴重影響。三維GIS符號化能夠實現對這一問題的有效解決,符號化之后,三維數據不再需要占據過大的空間,能夠提高數據管理以及空間分析方面的規范化和標準化。要提高三維符號化數據表達有效性,更好地完成三維空間場景的分析和操作,已經成為當前GIS系統研發的一個主要方向內容。
2三維GIS符號化表達系統總體設計
2.1系統框架
選擇單機系統進行系統總體設計,開發語言選擇C++,結合組件式GIS思想,在一個控件集合所有三維符號功能模塊,提高整個GIS系統設計有效性。系統總體架構包含有4個層面:第一層,三維GIS符號化表達系統以符號化引擎為基礎進行二次開發,建立用來展開符號化表達系統,使用C++進行功能接口的調用以及系統界面的編寫;第二層,三維GIS符號化引擎主要用來進行三維符號化表達,能夠生成三維符號,將二維符號轉化為三維符號,分析三維空間等;第三層,依賴庫。依賴庫主要是用來進行柵格數據處理、解析矢量數據等操作,作為三維GIS符號化引擎基礎,實現各類常用空間分析功能;第四層,多源數據層。多源數據層存在有紋理數據以及二維矢量數據,借助GDAL能夠解析二維矢量數據,自動生成道路等數據以及屬性信息,紋理數據主要是用來生成紋理貼圖。
2.2三維符號化表達設計
在展開三維符號化表達設計時,需要與空間分布特征以及地理要素形態特征結合在一起,借助放樣技術以及參數化技術,場景通過三維符號表達,完成三維符號庫的建立,對符號化有效性以及通用性展開分析判斷。三維符號化表達不僅能夠用來規劃場景,同時還能用來表達二三維一體化,滿足相關數據自動生成以及各類空間要素符號表達需要。
2.2.1場景規劃
在場景規劃方面,三維場景自定義規劃,在制定位置,使用相應符號進行三維符號的繪制,變化每一個符號矩陣,進行一系列選擇、縮放以及平移。在點符號模塊方面,以點狀地理要素三維符號為主,根據設計需要選擇相應位置完成三維符號的添加;線符號模塊以線狀地理要素為主,用鼠標繪制三維線狀地理要素;在面符號模塊方面,包含三維面狀地理要素符號,通過鼠標繪制面狀符號,填充紋理和要素。通過三維符號搭建的場景渲染速度快,有著非常好的應用效果,通過矩陣變化以及參數設置,設置相對應的三維點狀線狀符號,這種設計方式比較靈活;另外,還需要根據面狀符號要素和紋理進行填充,包含三維符號化表達符號姿態等方面內容。
2.2.2二三維一體化
在二三維一體化方面,借助二維GIS數據生成三維模型數據,將二三維聯系在一起顯示,更好地完成二三維數據在空間方面的銜接。二三維一體化符號化表達系統,使用二維矢量數據,包含物體在點圖層以及線圖層等方面數據內容。就實現思路而言,首先要解析二維矢量數據,獲取其中屬性值和相對應的幾何字段;其次要結合不同要素繪制三維模型。在二三維一體化表達方面,包含有兩種形式,分別是線狀要素符號化以及面狀要素符號化。選擇二維矢量圖層為基礎表達面狀地理要素二三維一體化,生成所需要的面狀要素。
以道路為例,首先讀取道路線圖層每條路段記錄,獲取三維空間坐標以及起點終點ID等參數,存儲至相應的列表中。其次,獲取道路點圖層頂點ID存儲至相應的列表。再次,結合道路線圖層ID號進行標記,得到鏈接ID號,根據其長度以及路寬打斷三叉以上叉路口。最后,結合獲取的路段列表進行道路的繪制以及紋理貼圖。根據起始點終點ID列表參數獲取道路交叉點順序,確定交叉口的空間位置和形狀,計算紋理坐標并貼圖。
3場景操作和分析應用
3.1場景漫游
場景漫游模塊中,漫游模式有用戶自定義模式和經典模式兩種。用戶自定義模式有節點跟隨模式以及設置路徑模式等,主要是通過設置對話框參數進行自定義場景漫游;經典模式有飛行模式、駕駛模式、步行模式以及軌跡球模式等,通過封裝以及繼承OSG自帶漫游器實現。其中飛行模式調用osg GA : FlightManipulator類實現,移動鼠標進行場景的移動和旋轉;駕駛模式調用osg GA: Drive Manipulator類實現,移動鼠標實現漫游功能;步行模式調動osg GA:Camera Manipulator類實現,移動鼠標點擊鍵盤進行場景漫游;軌跡球模式調用osg GA:TrackballManipulator類實現,移動鼠標完成場景漫游。
3.2場景編輯
在場景編輯方面,包含工具以及場景操作兩個方面內容,其中工具主要是用來進行節點的選擇以及漫游路徑交互繪制,場景操作主要是進行場景縮放、窗口平移以及節點刪除等方面操作。在具體操作過程中,平移操作需要借助視點上下和左右操作進行,放大與縮小操作需要拉近或者拉遠視點來使窗口向前或者向后移動,刪除操作需要在父節點中刪除所選中的節點。
3.3空間分析
空間分析模塊有多種不同組成結構,如緩沖區分析、屬性查詢、天際線分析、空間量算等。在實際應用中,也可以結合專題應用添加相對應的分析模塊??臻g分析模塊是三維GIS符號化系統與三維地圖之間最為明顯的區別??臻g分析可以通過符號化地理要素進行。在緩沖區分析方面,能夠進行圓形緩沖區分析,鼠標左鍵在界面選擇兩個點,其中一個點作為圓心,另一個點與該點距離為半徑,使用著色器將園內頂點顏色渲染;在天際線分析方面,主要用來分析當前角度和視點的可見區域,在屏幕上繪制場景要素邊緣;在可視分析方面,有可視域分析以及通視性分析兩方面內容,其中可視域分析將參數輸入對話框,包含視角大小、位置、方向以及長度等,先將場景渲染至紋理,之后計算頂點深度,獲取深度紋理涂對應值比較,頂點可見為綠色,頂點不可見為紅色;通視性分析以鼠標確定視線起點和終點,交點通過碰撞檢測獲取,紅色作為不可視部分,綠色作為可視部分。
4結語
三維GIS符號化表達系統以ZTMap三維引擎為基礎,具備有場景操作、空間分析、場景快速搭建以及二三維一體化等方面功能。選擇C++作為系統開發語言,以COM組件完成編程,整個系統有著非常好的可擴展性,可以根據用戶實際需求添加所需要的地學分析庫。引擎控件能夠二次開發,在單機以及網絡中都有著非常好的應用效果,實現相應功能。另外,根據所需要的符號,靈活添加其他功能接口。本次研究還存在有一些不足,例如未能實現在網絡環境下調用,在之后的研究中將逐漸優化和完善,希望能夠在實際應用中更好的發揮出價值和作用。