摘 要:以石家莊市為例,采用B/S架構,以Skyline為開發平臺,c# 為開發語言,構建了三維數字城市的地下管道系統,通過3DMAX三維仿真技術、GIS技術以的有效集成,實現了數字城市里地下三維管線生成的新模式。結果表明:系統具備數據管理查詢、管線自動生成、下水管口定位等多種空間輔助決策功能,具有較好的可行性和實用性,但由于系統較復雜,需要在實際應用中不斷地改進和完善.
關鍵詞:3DGIS;Skyline;3DMAX
引言
城市化的快速發展,給城市管理者帶來了前所未有的挑戰。當前,中國的城市化發展是社會發展的必然結果,具有不可扭轉的發展趨勢。但是城市化導致環境空間和資源分配的矛盾也越來越尖銳,一些城市管理本身的問題也隨之凸顯。
本文采取由三維城市化理論到實踐的研究思路,首先對3DGIS理論、三維建模技術進行了研究探討,提出城市三維地理信息系統的技術路線,并開發一套基于Skyline的城市三維地理信息系統。
1 3DGIS理論、三維建模技術探討
1.1 3DGIS理論
二維GIS一般情況是將實際的三維事物以二維平面圖的方式表示,在表達空間信息上具有一定的局限性,這導致它在處理空間數據尤其是多維空間數據時存在缺陷。[1]因此,用三維GIS的表達方法去表示和處理現實世界中三維對象和空間數據,既可以突破常規二維表示形式的不足,也可以包容幾乎所有豐富的空間信息。[2]
近期,三維GIS有很快的發展動力,其中新興技術的快速發展和三維空間信息需求是其發展的兩個驅動因素。[3]
1.2 三維建模技術
本文采用CAD、3DMAX和Photoshop等軟件協作進行三維建模軟件景觀構建。制作流程為:CAD中進行對地物進行簡化、刪減,建立二維模型——3DMAX中制作模型主體——3DMAX中進行模型紋理貼圖——模型以.X格式導出——模型導入到TerraExplorer Pro中,其中模型紋理的貼圖是通過Photoshop對戶外照片進行處理所得。
2 系統的主要功能
本系統采用Windows XP SP3,運用C#語言在Visual Studio 2005平臺上對ArcGIS Engine9.3及Skyline Globe 6進行二次開發。系統集成了二三維瀏覽、創建、分析和查詢四大功能,有利于對城市信息進行多層次、多視角的三維顯示,為城市管理者提供了適合管理者管理的城市三維地理信息。系統的主要功能如下:
2.1 文件的管理
①文件:對于fly三維場景文件的打開、保存和另存為。②選擇:支持單選和框選,包括選擇空間信息、選擇屬性和選擇區域;③編輯:對于地物的編輯,包括粘貼、復制、剪切和刪除;通過對地物信息框內各屬性的設置,可改變地物的名稱、位置、高度、角度、透明度、線條及填充顏色、縮放比例等。
2.2 工程信息
①工程設置:對于工程的設置,包括三維場景、光照的顯示、時間的顯示。②地形設置:包括隱藏地形、地下模式、地形修改、地形透視和地形透明度設置。地形是指TerraBuilder生成的mpt文件,就是地表的三維模擬。③顯示模式:對于二三維地圖窗口的管理,可設置二維窗口單獨顯示或者三維窗口獨立顯示,或者二三維窗口同時顯示,并可控制是否處于聯動狀態。
2.3 視圖
①窗口布局:對于三維地圖窗口的設置,包括常規、最大化和全屏設置,以及對信息樹窗口和導航地圖窗口的勾選設置。②窗口部件:包括導航控制、中心點、狀態欄、時間控制、范圍控制和地理控制的勾選設置。窗口部件顯示三維窗口內的比例尺、中心點的信息、有助于窗口內的漫游和對場景從整體上的把握。③環境效果:水流和空中的云顯示設置有助于場景的逼真顯示。
2.4 創建
①二維圖形的創建:包括標簽、圖片、線、面、幾各種二維圖形。②三維地物的創建:包括三維模型、建筑物和三維圖形。③管線的生成:可手動輸入各項參數生成一段管段,也可從Excel表中或者數據庫中讀取管線屬性表自動生成管線。
2.5 分析
①測量:包括垂直距離、水平距離、空間距離和面積的量算。②地形分析:最佳路徑分析、地形剖面、淹沒分析、等高線生成和坡率生成。③視線分析:包括通視分析、視域分析和威脅半球分析。④陰影分析:在顯示光照的前提下進行陰影分析。
2.6 導入及工具
①三維模型的導入:對Skyline支持的三維模型的導入。②二維文件:包括標準的GIS文件,比如shp文件、影像、DEM以及圖片。③工具:包括抓屏、地形提取、XPC、XPL文件制作等功能。
3 成果展示
這一部分是整個系統的具體體現,詳細介紹了實現的功能與效果。利用c# 作為開發的基礎語言,Skyline作為系統二次開發的平臺,初步實現了三維基本操作、信息查詢、三維漫游、專題信息的三維可視化管理等功能。
3.1 創建地下管線
創建三維地下管線的傳統方法是在模型制作軟件例如3dmax中根據管線的屬性信息制作成三維管線模型,再導入到三維城市場景中,該方式過程繁瑣,效率地下,更重要的是需要將三維模型手動導入到場景中,因此管線的位置會出現偏差,精度得不到保證。
而該功能模塊解決了這一問題,通過管線的坐標值等屬性信息在三維場景中生成管線數據模型,能夠快速、準確的創建地下管線。該功能的設計是本論文重點和難點也是創新點。
該功能模塊主要有以下幾個特點:
(1)內部生成:是在三維場景內部生成地下管線,避免了外部導入模型放置時出現的位置偏差等問題。
(2)精度高:是以管線的起止點坐標值等屬性信息為基礎生成管線模型,所以管線模型的位置極為精準。
(3)效率高:避免了傳統方式中的多軟件協作的制作模式,只需設置管線的常規屬性即可批量生成。
3.1.1 地下管線概況
城市地下管線是城市基礎設施的重要組成部分,觸及城市的各個角落,與人民生活息息相關,是城市賴以生存和發展生命線[4]。城市地下管線具有規模大、范圍廣、管線種類繁多、空間分布復雜、變化大、增長速度快和形成時間長等特點,如圖1所示。
城市地下管線可以分為排水、給水、工業、電力、煤氣、熱力、電信和有線電視8大類。每種管線還可以按照其用途的不同或者傳輸的物質的不同再次分類,例如,排水系統可以分為雨水、污水和雨污合流等。城市管線的結構基本是一致的,都由管點、管線及附屬設施三部分組成。每條管線又可以分為若干條管線段,而管線段是兩個管點之間的連接管的通稱。管點的基本幾何結構可以分為以下幾類:管線分支點、管線交叉點、管線轉折點、管徑變化點、管線埋深變化點、附屬設施中心點等。[5]
3.1.2 功能設計思路
地下三維管網可以簡化為按照一定規則排列的三維管段的集合,其基本組成單元是三維管段即圓柱體。而TerraExplorer pro中object菜單下的create pipe 功能可以創建圓柱體,并可以編輯圓柱體的常規屬性,因此可調用TerraExplorer API中能夠實現該功能的接口,通過程序來自動創建圓柱體。
在用程序生成圓柱體的過程中,設定圓柱體的屬性就成為該模塊設計的主要內容,而其中的關鍵就是精確的定位圓柱體的空間位置。
可以先根據管段的起點或者止點空間坐標,包括x、y、z方向上的坐標,確定圓柱體一端的空間位置,再根據起止點的空間坐標計算出圓柱體偏航Yaw、斜度Pitch和旋轉Roll的角度即可。
三維管線的基本屬性包括起止點的x、y、z方向上的坐標、管徑、透明度、截面多邊形面數、線條顏色、填充顏色、管線名稱等。
3.1.3 功能實現
將三維管段的空間坐標信息以記錄的形式儲存于數據庫表中,每條記錄都與管段一一對應。使該功能模塊能夠逐記錄進行讀取,每讀取一條記錄就生成一段圓柱體。主要過程如下:(1)連接數據庫,確定所要生成的管線屬性所在的表;(2)讀取相應記錄的起止點的x、y、z方向上的坐標、管徑、透明度、截面多邊形面數、線條顏色、填充顏色、管線名稱等字段值;(3)根據屬性信息,利用object菜單下的create pipe方法逐個生成管段:
3.2 二三維聯動
三維GIS是從二維GIS發展而來的,側重于三維可視化和虛擬漫游,也具有對三維模型進行創建、管理的能力,但分析功能還比較弱,局限于體積測量、三維建模、紋理貼圖、模擬飛行、視角判斷等簡單的分析功能。二維GIS具有很強的分析能力,例如路徑分析、緩沖分析、空間索查詢、平面測量、渲染分析等,但是它缺乏有效的三維空間表達能力。所以如何在同一框架體系下將二維GIS與三維GIS進行集成并實現聯動,使兩者優勢互補,最大程度地發揮系統功能成為一個急需解決的問題,[6]如圖2所示。
3.2.1 ArcGIS Engine介紹
ArcGIS Engine是ESRI在推出ArcGIS9.0時推出的基于COM(組建對象模型)技術的GIS控件,現在已經發展到ArcGIS Engine10。ArcGIS Engine是一組完備的并將ArcObjects打包嵌入式的GIS組件庫和工具庫,是開發人員用于建立自定義應用程序。ArcGIS Engine Developer Components包含了進行快速開發所需的全部可視化控件,如MapControl、PageLayoutControl、ToolbarControl等控件,從而提高開發效率。[7]
3.2.2 功能設計思路
本功能模塊采用“一聯兩線”的設計思路,其中“一聯”是指一個主要關聯,通過地理坐標的關聯作用來實現二三維GIS的通信,“兩線”即兩條(二維GIS、三維GIS)獨立的技術開發路線。[8]
當三維窗口經過平移、縮放、旋轉和滑動后,二維窗口將展現同一范圍內的的二維圖層。同樣的,當二維窗口的場景經過放大、縮小和平移后,三維窗口將展現同一區域內的的三維景觀,這樣,用戶在使用系統時可從同時從二維和三維兩個不同的角度進行觀察和分析。
3.2.3 功能實現
由二維聯動三維的實現過程為:通過ArcGIS Engine的axMapControl中屬性Extent可以得到當前二維窗口四個角的地理坐標,進而可求出窗口的中心點,例如點A(X,Y)。通過TerraExplorer Pro的TerraExplorerX.Navigate接口的JumpTo方法可以將三維窗口的中心點移到A點,即可實現二維聯動三維。主要代碼如下:
4 結束語
GIS是一門交叉性學科,本研究開發一套基于Skyline軟件的城市三維地理信息系統,涉及到眾多相關的研究領域和很多相關技術,本文闡述了城市三維地理信息系統的研究現狀,有利于幫助城市管理者處理城市環境空間和資源分配矛盾的問題。并對3DGIS技術從理論到三維建模的應用進行了介紹。重點介紹了系統的主要功能,包括地下管線創建和二三維聯動功能模塊的設計思路及開發實現。城市三維地理信息系統的開發和實現是一個艱難和長期的過程,系統的功能還不夠完善,幾項重要的功能也不甚成熟,還要在多方面進行完善、研究。具體有以下幾個方面:(1)在地下管線生成模塊中,還只能生成圓柱型的管線,對于管線的其他截面類型比如矩形就無法實現。(2)在二三維聯動模塊中,目前只能實現二三維地圖窗口的視圖聯動,還不能實現空間分析上的聯動。(3)目前,系統架構較為流行的是B/S (Browser/Server)模式。本系統是采用單機版模式,需要進行升級。
參考文獻
[1]黎剛.徐潔.陳踴.基于Skyline的太湖流域水環境三維GIS系統設計與實現研究,現代商貿工業,2009(23):305-306.
[2]譚云婷,陸朝鋒,廖順華.基于 skyline 的三維景觀 GIS 系統的實現[J].廣西城市建設,2008,12:117-120.
[3]袁存忠.基于Skyline的福建省三維地理信息公共平臺的研建[J].測繪通報,2009(2):54-55.
[4]任海軍,文俊浩,徐玲.一種三維數字城市的構建和實現方法[J].重慶大學學報:自然科學版,2006,29(4):101-104.
[5]楊志剛,王丹丹,馬運成.三維城市地下管線信息系統研究與應用[J].成都大學學報(自然科學版),2009,28(4):346-350.
[6]顧朝林,段學軍,于濤方,等.論“數字城市”及其三維再現關鍵技術[J].地理研究,2002,21(1):14-24.
[7]邵明旭, 許惠平, 覃如府, 陳華根.二三維聯動的虛擬校園設計與實現[J].地理信息世界,2008,4(2):73-74.
[8]陳鵬,林鴻,張鵬程,吳素芝,宋楊.二三維一體化在Skyline與 SuperMap6R中的實現對比[J].地理空間信息世界,2011,9(3):66-68.