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