宋新碩
(西南大學地理科學學院,重慶 400715)
基于GIS的城市三維交通路線查詢系統
——以重慶市北碚區西南大學為例
宋新碩
(西南大學地理科學學院,重慶 400715)
現在,隨著校園的交通線路的完善和教學建筑的越1來越復雜,交通車是多數人出行的首選方式。本文的目的在于怎樣才能方便人們出行時對交通路線選擇和查找以及實現對地物查詢。首先通過ArcMap、Arcsence、Sketchup等GIS相關軟件設計出三維校園模型,構建校園交通網模型,并在三維中添加交通站點以及設計地物數據庫,在此基礎之上提供不同建筑物的查找和定位,并根據交通站點的數據庫建立不同的交通路線乘坐方案和交通路線查詢。方便人們的出行,操作簡單,直觀的桌面系統。本文也提出三維交通線路在城市應用的思想。
ArcScene;校園公交;查詢系統
隨著數字地球的提出,中國也在加緊數字城市的建設[1]。三維數字校園作為數字城市的微觀表現,是數字城市在某一小區域的放大效果。也可以說,三維數字校園是數字地球的理論、技術和戰略應用到小范圍的網絡化、信息化和智能化建設的具體體現[2]。
近年來城市人口的增加,交通設施的也逐步健全,越來越多的人選擇乘坐公交車輛出行。然而對于不熟悉當地城市的人來說出行非常不便,尤其是在地勢復雜的西南地區。因此設計一個更接近日常生活的、更符合人的直接感官的三維地圖及交通查詢系統十分必要。本文以重慶西南大學為例提出了校園三維化的快速實現方法,并以此為基礎設計了交通查詢系統。
2.1 技術路線設計。三維交通查詢系統應用GIS相關軟件和C#語言設計而成的,系統設計的路線:首先,在ArcMap里通過遙感圖勾畫出校園建筑物,并且給建筑物添加名稱、高度、位置等屬性,再勾畫出道路,并且附上相應的屬性值;其次,將生成的數據導入Sketchup,在Sketchup里設計三維圖,設計好三維數據導入到ArcScene;最后,在VS.net設計出系統的界面,并且實現系統的基本功能,通過三維數據設計交通路線查詢和建筑物查詢。
2.2 關鍵技術介紹。Google Sketchup是一套直接面向設計方案創作過程的設計工具,其能夠充分表達設計師的思想,也使得設計師可以直接在電腦上進行十分直觀的構思,是三維建筑設計方案創作的優秀工具。
ArcGISEngine是ESRI在ArcGIS9版本才開始推出的新產品,它是一套完備的嵌入式GIS組件庫和工具庫,使用ArcGIS Engine開發的GIS應用程序可以脫離ArcGISDesktop而運行。
VS.net是Visual Studio.NET的簡稱,微軟公司研發的一個可視化開發工具,它給程序員提供解決方案、源代碼管理和編譯調試等環境.包括Visual C#.net、Visual J#.net、Visual C++.net、Visual Basic.net。
3.1 功能設計。通常,人們在乘坐校車之前,最想知道的信息有:本人所在位置、周邊最近站點、目的地附近站點、某次公交運行路線等。因此,本次研究以西南大學為例,將校車信息查詢系統的功能初步設計為以下幾個方面:
(1)地圖瀏覽:提供西南大學三維圖瀏覽功能,實現地圖的基本操作,如放大、縮小、漫游等;(2)圖層控制:將地圖信息分類,形成不同的圖層,用戶根據需要顯示不同圖層;(3)空間數據與屬性數據的相互查詢:提供各方面與公交相關的信息查詢,包括公交站點、公交路線和教學樓的查詢;(4)公交換乘查詢:進行任意兩個站點之間相關的公交換乘信息查詢。
3.2 體系結構。系統按照用戶界面、查詢系統、功能模塊、數據庫等不同層面進行結構設計。數據庫的管理包括對交通站點的數據與屬性數據管理,即對基本地理信息進行管理和維護。本系統采用客戶機/服務器 (Client/Server,C/S)體系結構來實現。C/S結構3層結構,第1層是客戶界面,提供用戶和系統的友好交互;第2層是服務器,負責業務邏輯的實現;第3層是數據服務器,負責數據的存儲、訪問及優化[2]。
4.1 三維圖的制作
4.1.1 地圖配準。(1)把西南大學的地形圖定義好投影信息加載到ArcMap中,使用Georeferencing模塊選取圖上的控制點對地圖進行校正,使之在屏幕上正確的顯示,并且具有正確的坐標和單位;(2)利用同樣的方法校正西南大學遙感圖像,把遙感圖像中特殊點校正到與地形圖相對應的位置。
4.1.2 數據準備。(1)打開Editor工具欄,在已經配準好了的遙感圖像上矢量化出校園的建筑,草坪,湖泊等元素;(2)對于校園的道路,可以大致勾勒出了的位置,利用生成緩沖區的方法,生成道路,在道路上在增加一些校園車的站點,在每一個站點增加一個StationName;(3)打開矢量化后的數據的屬性表,增加一個height字段,給每一個數據都附上相應的高度值,對于道路增加一個StartID(起始點)字段與FinishedID(終止點)字段[3];(4)在進行三維模型貼圖以前,先對西南大學校園場景素材圖進行處理。
4.1.3 轉出數據。在ArcMap中使用SketchUp插件選中要轉出的數據,把數據轉為.sk文件,并利用剛才新添加的height字段作為導出的三維模型的高度。
4.1.4 添加材質
(1)在SketchUp軟件中打開轉出的三維模型,可以對數據進行相應的修改和優化;(2)給生成的模型貼上材質 (使用西南大學校園場景素材圖,如果沒有,可以選擇軟件自帶的材質);(3)在基本完成的基礎上,可以利用SketchUp模板中的素材對校園添加樹木、運動場、電燈、椅子等素材。
4.1.5 把數據導出到ArcScene中顯示
(1)在ArcCatalog中新建一個GeoDatabase,并在Geodatabase中新建多個FetureClass,把SketchUp中的數據導出到數據庫中 (選擇少量數據進行導出,避免導出錯誤);(2)把導出的文件加載到ArcScene中顯示最終的校園三維圖。
4.1.6 最終結果圖
4.2 圖層控制功能的實現。ArcGIS Enging axTOOlbarControl提供了實現三維圖瀏覽功能的多個控件,包括專門用于圖層控制功能的控件——axToCControl,它可以呈現和修改當前發布的地圖圖層,為了減緩服務器的負荷,你可以根據需要的來選擇應該顯示的圖層。
4.3 交通線路查詢實現。交通路線查詢采用站點的數據庫直接查詢,當用戶在站點文本框中輸入路線名時,系統直接調用數據庫顯示該站點的詳細信息,包括開班時間,收班時間,和該路線所經過的站點等信息。
用戶乘車時可能有兩種情況,第一種情況直達不需要轉站,當用戶在文本框里輸入從哪到哪的站點名時,系統直接調用數據庫,查詢同時有出發點和結束點的路線,這幾個就是所要查詢的乘坐的交通路線。第二種情況通過轉車到結束點,當用戶在文本框里輸入出發點和結束點時,首先找到具有出發點和結束點的所有的交通線路,再找出這些交通線路中有具有交叉的站點 (即具有a的站),最后查到這些站點重復的站點,這些重復點就是中轉點[4]。
找到中轉站以后,通過出發站和中轉站查到開始乘的車,在通過中轉站和結束站找到要轉的車。例如:從西南大學的6號門到橘園需要到地科院轉車,首先找出經過6號門的交通線路有一、二路線路,查找出在一線路交叉路口的站點有地科院、田家炳、就業中心、培訓學院,在二線路的交叉路口的站點有地科院、田家炳、培訓學院,其次找出經過橘園的交通線路有三線路,查找出在三線路交叉路口的站點有地科院、就業中心、培訓學院。然后,一、二線路中的交叉站點與三線路的交叉站點做比較,找出具有相同的交叉站點地科院 (找出每個線路第一個相同的交叉站點即可),地科院就是所要中轉站 (如圖6)。最后,將6號門作為出發點,地科院作為結束點,直接查詢交通線路,再將地科院作為出發點,橘園作為結束點,直接查詢交通路線,將兩個結果連接起來就是想要的結果[5]。
用戶查看建筑,有兩種方式,第一種方式直接在圖上通過鼠標移到建筑物上,系統通過調用ILayer里showsTips和DisplayField兩個接口顯示建筑物名[6]。第二種方式是輸入對象名稱,用VS.net中的Tooltips提供的shows方法,通過IScene-Graph接口將屏幕坐標轉化成三維坐標作為參數傳到shows方法里,Tooltips將定位于所要查詢的建筑物上并顯示建筑物名。
本系統借助三維技術管理校園交通共用信息平臺中的公交信息,實現了公交信息管理的可視化與三維性,也有助于城市公交信息的數據挖掘和交通管理的輔助決策,如果在城市交通線路與站點建數據庫時,可以對處于交叉路口的站點加一特殊屬性,這樣在深度搜索是減少數據量。但是本系統是基于三維的校園的交通查詢,要擴展到三維交通線路查詢[7],需考慮社會城市交通網絡復雜性,以及對乘車多次換乘和最短路徑不同影響乘車因素考慮,而且三維在網上發布需要更深層次的研究。
指導老師:陳俊華
[1]錢健,譚偉賢.數字城市建設[M].北京:科學出版社,2007.
[2]鄔倫,劉瑜,張晶等.地理信息系統:原理、方法與應用[M].科學出版社,2001,18-86.