趙坤松 宋明澤 李長通 徐照



摘要: 三維校園地理信息系統的發展在高校建設中扮演著重要的作用,也是“數字校園”和“數字城市”建設的重要部分。隨著信息技術的快速發展,虛擬校園建設成為各高校和研究機構關注的焦點。本研究以東南大學四牌樓校區為例,基于GIS構建虛擬校園,采用C#作為開發語言,并結合ArcEngine的相關組件,對數字校園三維可視化系統進行開發。其中包括三維場景的建模與優化、虛擬校園系統功能設計以及三維場景的功能實現,有一定的發展前景。
Abstract: The development of 3D campus geographic information system plays an important role in the construction of University, and is also an important part of the construction of "Digital Campus" and "Digital City". With the rapid development of information technology, digital campus construction has become a hot topic in the development of geographic information systems. This paper takes Sipailou Campus of Southeast University as an example, builds virtual campus based on GIS. Using C# as the development language, based on the ArcEngine related components, develop digital campus 3D visualization system. It includes 3D scene modeling and optimization, virtual campus system function design and 3D scene function realization, and has certain development prospects.
關鍵詞: 三維虛擬校園;GIS;三維建模;數字校園;平臺設計
Key words: 3D virtual campus;GIS;3D modeling;digital campus;system design
中圖分類號:TP391.41;P208 文獻標識碼:A 文章編號:1006-4311(2017)03-0088-05
1 背景與意義
隨著GIS的發展,校園信息化建設也迅速發展,而虛擬校園是校園信息化建設的重要組成部分。數字校園建設能夠實現校園設施的現代化管理和資源的有效利用,并且能很客觀地展現學校的全貌,對于學生或是游客能提供更準確便捷的指向與導航功能[1]。現如今,不少高等學校都已經建立了自己的校園虛擬系統,但是這些系統大都是在二維環境中建立的,大量的第三維信息數據無法實現徹底的利用,存在很大的局限性。
三維GIS的數字校園優勢有很多,首先對于剛入校的新生或者對校園不熟悉的游客,數字校園能很客觀的展現學校的全貌,能為學生或游客提供更準確便捷的指向與導航功能,設備要求低,簡單易實現。使用查詢功能,可以迅速找到目標位置,并且在三維地圖上以高亮形式定位出來,做出指引,方便找到;使用漫游功能,可以在三維場景中任意視角、任意高度漫游,準確形象地表現真實的校園景觀,可以讓學生或游客獲得身臨其境的體驗。
其次,對于規劃設計人員,數字校園建設能夠實現校園設施的現代化管理和資源的有效利用。規劃設計人員可以在三維場景中以任意視角、任意高度漫游,隨意穿行于規劃的三維場景中,既可以宏觀地把握學校整體地形特征和地物空間分布,又能微觀地洞察校園內細微的地形地物特征。還可以隨時對建筑信息進行查詢與瀏覽,輕松對規劃方案進行調整,隨時更新規劃設計相關的數據信息,隨時查看設計方案的修改效果。將想象的規劃設計圖及時反映,類似于在沙盒中進行隨意操作,大大減少由事先規劃不周而導致的疏忽遺漏,提高了規劃方案設計的效率和質量,也節省了大量的資金。三維校園地理信息系統的發展在高校建設中扮演著重要的作用,也是“數字校園”和“數字城市”建設的重要部分。
本文以三維數字校園可視化系統的建設作為基礎,對建筑信息可視化平臺進行簡單的系統設計、功能模塊的設計以及數據庫的設計,初步研究三維空間數據和可視化的理論基礎以及三維場景的構建,最后利用C#開發語言基于ArcEngine組件式開發實現三維GIS系統,實現對數字校園三維可視化系統的開發,從而實現三維場景的瀏覽、場景的查詢、地物的定位、漫游等功能。
2 研究方法
20世紀90年代初,隨著GIS技術的不斷深入和發展,出現了三維GIS。那時的三維GIS主要針對特殊領域,功能相對單一。它是利用柵格數據構建的模型,在空間分析功能方面涉及的很少,不能夠很好地投入應用,但在理論技術上做了較多探索,為以后的研究和發展打下了基礎[2]。
隨著時間的推移,專家學者推出了新的三維地理信息系統,新系統集成了傳統地理信息系統技術和三維可視化技術,以空間數據庫為基礎,通過它可以在一定程度上進行海量數據的存取和可視化[2]。朱英浩利用VisualC++開發環境,在OpenGL圖形庫平臺的基礎上,并且集成了MapInfo,建立了城市三維可視化地理信息系統軟件,該系統不僅能夠實現二維GIS的空間分析,還能夠用于三維空間的瀏覽和查詢等功能[3]。2001年常歌開發了CityView,該系統采用面向對象的C++編程語言與圖形庫接口OpenGL相結合,選擇基于遙感數據的城市三維景觀構建的技術,建立了數字城市景觀系統[4]。
三維GIS經過近年來的發展已經應用于多個領域中。它不僅具備傳統二維GIS的所有功能,還具有自己專屬的功能,這些功能主要表現在以下幾個方面:包涵一維和二維對象;對2.5維、三維空間對象可視化;對三維空間數據庫的組織管理;三維空間分析功能;能夠及時地受益于目前測量技術的發展[2]。
總體來說,相對于二維GIS,三維GIS的空間數據模型的表達更加復雜,也能更好地模擬現實世界。但是它仍存在一些問題,主要表現在以下幾個方面:
三維地理信息系統代碼量大,而且只能針對于開放的數據格式;地物和地形模型數據結構和組織方式存在著較大差異,兩者集成的時候往往會存在地形不匹配的情況,無法進行無縫集成;傳統二維地理信息系統的功能已臻于完善,提供了數據的建立、更新、查詢、制圖和空間查詢分析等功能模塊,三維地理信息系統在功能上還不夠完善;隨著傳統地理信息系統向互聯網絡交互、云GIS方向的發展,如何更好地實現三維場景的網絡發布和共享是一個亟待解決的問題[2]。
本文旨在研究以地理信息系統技術為支撐,以東南大學四牌樓校區地形、規劃和勘察數據為基礎,開發包含顯示、查詢、管理等GIS常用功能,又集三維分析、決策支持于一體,服務于東南大學四牌樓校區信息管理的平臺。首先,建立以公共的地理坐標為基礎,具有數字化、標準化和多維結構的東南大學四牌樓校區地理信息系統數據庫,實現對空間數據和屬性數據的統一存儲和管理。其次,建立基于地形數據構建三維模型,可以直觀地顯示校園的三維地形表面模型和地物模型,查詢各種校園設施的空間位置信息和建設信息,實現地圖瀏覽、數據編輯、查詢檢索、三維分析等功能,實現對校區建設數據的有效查詢、分析和決策,提供一個自動化、規范化的決策分析環境。
本研究框架設計的基本思路是通過利用ArcGIS提供的ArcEngine的二次發功能結合ArcGIS的各項功能設計并開發出合乎人們期望的各種功能。運用ArcGIS自帶的軟件進行二維地圖建模,運用三維建模軟件創建三維模型,然后再通過對ArcEngine以及可視化開發工具C#將功能進行集成,建立校園數據庫,使數據庫具有對信息的搜集、分析、處理的功能,通過包含數據庫的可執行文件的建立從而能夠實現瀏覽、查詢、定位等功能,如圖1所示。
3 基于ArcEngine的數字校園三維可視化系統實現
3.1 數字校園三維可視化的總體設計
3.1.1 系統開發環境
程序的開發首先要具有相應的軟件開發環境,具體需要ArcEngine和VisualStudio等相關軟件平臺支持。
ArcEngine是ESRI公司推出的嵌入式GIS組件的一種完整類庫,簡潔、易用、靈活、可移植性強。利用ArcEngine,開發者能夠用于建立自定義GIS應用軟件,為開發者提供了一種新的部署策略,是組件式技術應用于GIS領域新產品。ArcEngine與ArcObjects是密切相關的,ArcEngine包含ArcObjects的核心功能,ArcEngine是在ArcObjects的基礎上建立的,并對ArcObjects中的大部分接口進行封裝處理后建立的一套嵌入式GIS組件,并且ArcEngine和ArcObjects中的接口使用方法相同,包括他們的屬性和方法[2]。為了快速構建GIS應用程序,ArcEngine給開發者提供了可視化的控件,如制圖控件、框架控件、3D控件等。既可以嵌入到現有的應用程序,增強制圖功能,又可以創建新的獨立應用程序。
MicrosoftVisualStudio(VS)是美國微軟公司推出的一款開發工具包,它是目前基于Windows平臺最流行的開發軟件。VS基本上是一個完整的開發工具集,整個軟件生命周期所需要的大部分工具在VS平臺中都存在。C#是由C++和C衍生出來的一種面向對象的、運行于.NET之上的高級程序設計語言,綜合了VB所具有的簡單的可視化操作以及C++的高效率運行的性能,最終它憑借自身強大的操控能力、標新立異的語言特性、典雅的語法風格和便捷的面向組件編程等優點,成為一種較為高級的編程語言。同時由于它對C/C++的繼承關系,使得C#與C/C++具有極大的相似性,開發者可以很快的由C/C++轉向C#[2]。
3.1.2 系統總體框架
系統采用三層架構設計,主要是由用戶界面層、業務邏輯層和數據服務層構成。系統框架設計的基本思路是通過利用ArcGIS提供的ArcEngine的二次開發功能設計并開發出合乎人們期望的各種功能。運用ArcGIS自帶的軟件進行二維地圖建模、導入屬性信息,運用三維建模軟件創建三維模型,然后再通過對ArcEngine以及可視化開發工具C#將功能進行集成,建立校園數據庫,使數據庫具有對信息的搜集、分析、處理的功能,通過包含數據庫的可執行文件的建立從而實現瀏覽、查詢、定位等功能。系統的總體框架設計圖如圖2所示。
3.1.3 系統功能模塊
三維數字校園可視化系統是一個可視化的平臺,具有場景控制、三維瀏覽、場景查詢等功能模塊。系統功能模塊圖如圖3所示。
3.2 數字校園三維景觀的模型構建
三維景觀模型的構建流程主要分為校園二維地圖的建立,三維數據模型的搭建以及三維模型數據的導入三部分,具體設計思路如下。
3.2.1 校園二維地圖的建立
首先是建立校園二維地圖。在我們的項目中將采用ArcMap制圖的方法。首先Google地圖中獲取東南大學的地圖圖片,從ArcMap中導入保存好的JPEG格式的地圖圖片,通過取點配準,設置坐標系,創建點狀要素、線狀要素、面狀要素,再進行信息屬性的編輯、修改,保存后就可以得到修改好的文件庫和.mxd的工程文件,其中包含設置的各種圖層。(如圖4)
在進行取點配準,創建要素時需要特別注意,其中包括:
①點狀要素。在地理環境中,行道樹、路燈等往往被抽象成點狀要素。在建立二維地圖的時候,校門、噴泉、教學樓都被簡化為點狀要素,用于先標記出具體的地理位置,為后續導入三維建筑模型提供便利。
②線狀要素。線狀要素包括河流、管網、道路等。以道路為例,首先應該在ArcMap中沿圖片中的道路拉線,再通過修改屬性信息改變線的種類、顏色、粗細等,并且還有已有的模板庫,比如高速公路可供選擇,可以快速實現模型的建立。
③面狀要素。地理環境中很多地物以面狀要素形式存在,如建筑物、草坪、廣場等。在ArcMap中對建筑物的建模基本就是畫線成面。通過描繪目標地物的邊界線,將其圈成面狀。當精度要求不高時在描繪時可以少取一些點;當精度要求較高時,也可以通過密集地描點使得畫出的面與實際地物邊界更加吻合。在綜合處理中確定這些要素點集度的劃分,將為之后的模型導入提供極大地便利。
3.2.2 三維數據模型的搭建
三維數據模型的建立同樣有很多方法。可以通過3DMAX建模或者通過Revit軟件建模,也可以通過SketchUp建模[5]。
通過BIM軟件構建三維模型的特點是含義豐富,由于BIM領域通用的數據模型標準是IFC(Industry Foundation Classes),具有面向設計和分析應用的多種幾何表達方式和豐富的建筑構造、設施幾何語義信息,因此期望將BIM構建的三位建筑模型導入到地圖中,并且嘗試著保留模型原本的信息,并將這些信息與數據庫聯系起來,方便查詢,對規劃設計人員、物業管理人員有更大的幫助。
建模過程中發現SketchUp構建模型要簡單很多,就像使用鉛筆在圖紙上作圖一樣方便,SketchUp本身能自動識別構圖的線條,加以自動捕捉。它的建模流程簡單明了,就是畫線成面,而后擠壓成型,這是建筑建模最常用的方法。通過這種方式,可以極大縮短建模的時間,提高平臺程序搭建的效率。
3.3 三維模型數據的導入
由于與ArcGIS配套使用的是SketchUp軟件建立的模型,所以我們在使用Revit建立模型后,還需要導入SketchUp中轉化為.skp格式才行。SketchUp三維模型在GIS中的應用有兩個方面:一是作為三維符號;二是作為三維模型。
作為三維符號的應用,ArcGIS9.2以上版本支持.skp格式三維模型作為三維標注符號(3DMakerSymbol)對點、線、多邊形三類地圖數據進行顯示。顯示時,如果用于表示的地物是多邊形,還需通過旋轉、放大、縮小、平移等操作將符號調整到合適位置。此時,模型僅作為圖形顯示,并不能對其進行分析等操作。
作為三維模型應用時,.skp模型作為三維模型應用主要是轉換為ArcGIS支持的三維模型格式MultiPatch,然后在ArcScene、ArcGlobe中直接加載加以應用。本項目主要是采用第一種方法,將SketchUp中構建的三維模型作為三維標注符號導入地圖中,但在具體參照時將構件模型的步驟通過Revit建模來實現,雖然會遇到一些信息丟失的問題,但基本可以通過SketchUp來補足[6]。(如圖6)
3.4 基于ArcEngine的數字校園三維可視化系統實現
軟件基于C#開發語言并結合ArcEngine的組件進行開發,實現三維場景的瀏覽、場景的查詢、地物的定位、漫游等功能。在這里簡單截取部分程序界面并做簡單解釋。
3.4.1 軟件開發
①三維瀏覽。三維場景的瀏覽是通過ArcEngine的功能組件實現的,系統中添加了二維與三維的聯動。當觀察者方位迷失時,通過點擊二維地圖上的某一點,三維場景中可以轉到相應的位置,而且在進行三維瀏覽時二維平面圖也會跟著同步的放大、縮小、移動到相應的位置。工具按鈕用ArcEngine的ToolbarControl來添加完成,其中放大、縮小、漫游的代碼中zoomin是創建放大命令,zoomout是縮小命令。
②場景查詢。三維場景中的空間數據的查詢,可以對目標地物進行屬性的查詢,也可以根據條件查詢目標空間坐標信息,稱為興趣點的查詢[2]。興趣點的查詢基于屬性查詢,是指從屬性條件查詢的設定來查詢定位空間位置。如查找實驗樓,此查詢設置限制條件為查詢要素的名稱,然后定位查詢到目標,可以讓目標高亮顯示,也可以直接定位到目標位置,即通過查詢結果計算出目標的中心位置[2]。
3.4.2 功能展示
①地圖瀏覽。地圖通過三維形勢來顯示校園中的地形和地物模型,可以更真實地反映現實的景觀,提供整體布局的可視化預覽。地圖瀏覽包括放大、縮小、轉動、移動、鳥瞰、全景顯示操作,通過點擊工具欄的相應按鈕來操作。工具按鈕使用ArcEngine的ToolbarControl來添加完成,其中放大、縮小、漫游的代碼中zoomin是創建放大命令,zoomout是縮小命令[7]。(如圖7)
②信息查詢。查詢分為條件查詢和點擊查詢。條件查詢是將屬性表中閾值滿足特定條件的要素查詢出來,實際上是進行關系表的查詢。首先在屬性數據庫中實現屬性信息的查詢,篩選出符合條件的空間體的標識值,再到空間數據庫中根據標識值檢索對應的空間實體。條件查詢的條件采用了分級輸入的方式,按圖層、字段、屬性值的順序排序,可以實現更快速更有邏輯性的查詢。目標點條件都輸入之后點擊確定,在地圖上將目標點所在地高亮顯示,并且彈框給出目標點的名稱、建造時間、分類、坐標數值等屬性。點擊查詢是用戶用鼠標點擊選中目標點時,通過空間索引在空間數據庫中快速檢索出被選中的空間體,再根據空間體與屬性的對應關系得到目標點在屬性數據庫中的屬性值,然后彈框顯示目標的屬性信息并高亮顯示。(如圖8)
4 結論
本研究以三維數字校園可視化系統的建設作為基礎,對建筑信息可視化平臺進行簡單的系統設計、功能模塊的設計以及數據庫的設計,初步研究了三維空間數據和可視化以及三維場景構建的理論基礎,用ArcMap完成了二維地圖的構建,用SketchUp和Revit實現了三維模型的構建,最后利用C#開發語言基于ArcEngine組件式開發實現三維GIS系統,對數字校園三維可視化系統進行開發,實現三維場景的瀏覽、場景的查詢、地物的定位、漫游等功能,更好地增強了虛擬校園的真實感。
同時也可以用這個ArcEngine平臺進行推廣。在該系統中,軟件是核心,二維地圖和三維模型只是外殼,內核不變,換上不同的校園的二維地圖和三維模型,功能都是一樣的。因此該系統具有普遍適用性,只需要開發一個軟件,就可以建立任意高校的數字校園三維可視化系統,并具有相同的功能。
對于程序的應用前景,雖然本研究采用SketchUp建模使建模的速度及效率大大提高,但整體而言對此程序的開發與運用還是不劃算。現在隨著科技的發展,三維3D掃描建模逐漸成為可能,有許多公司可以通過衛星照片、無人機攝像的方式來進行快速建模,這些都為程序準確快速獲取模型提供了手段。
另外網絡云平臺的建設也在突飛猛進。參照Google公司的Google Earth云平臺的建設方式,三維數字校園云平臺的建設也是有可能的,這樣使得人們隨時隨地都可以通過數字校園或者是進一步發展的數字城市,獲取自己所需要的信息。
同時伴隨云平臺的建設,如果將此程序應用到人們日常生活獲取信息不可缺少的工具—智能手機等移動設備上,人們的生活效率將得到極大提高。值得一提的是ArcGIS同時也具有手機應用開發的功能,這使得將數字校園程序植入手機平臺成為可能。
參考文獻:
[1]李芙蓉.基于GIS的三維虛擬校園的設計與實現[D].長安大學,2014.
[2]李文雅.基于ArcEngine的數字校園三維可視化系統開發[D].長安大學,2015.
[3]朱英浩.城市三維可視化GIS的研究[D].武漢測繪科技大學,1998.
[4]常歌.基于遙感數據的城市景觀建模技術研究與實踐[D]. 中國人民解放軍信息工程大學,2001.
[5]董秀蘭.基于GIS的三維虛擬校園的設計與實現[D].安徽理工大學,2012.
[6]方傳海.基于精細建模的居民小區三維GIS系統設計與實現[D].重慶交通大學,2014.
[7]肖澤云.ArcGISEngine開發實例教程[D].三峽大學土木水電學院,2011.