孫嘉欣 何 杰
(寧夏大學(xué)資源環(huán)境學(xué)院,寧夏 銀川 750021)
關(guān)鍵字:道路交通;組件技術(shù);Arc Engine;C#
本文通過遙感影像對陸地交通矢量化,得到寧夏回族自治區(qū)陸地交通矢量圖,包括:以高速公路為骨架,國家公路、省公路為干線,縣公路、鄉(xiāng)公路為支線的公路交通網(wǎng)及鐵路交通網(wǎng)為原始數(shù)據(jù)。Arc Engine和SQL Sever為工具,使用C#語言在.NET平臺上開發(fā)出一個適用道路交通管理的地理信息軟件,能夠提供數(shù)據(jù)瀏覽、統(tǒng)計分析和規(guī)劃管理的綜合信息支持系統(tǒng)。
Arc Engine是一個簡單、獨立與應(yīng)用程序的Arc Objects編程環(huán)境,開發(fā)人員用于建立自定義應(yīng)用程序的嵌入式GIS組件的一個完整類庫,具有簡易、快捷、低成本等優(yōu)點。因而在寧夏交通地理信息系統(tǒng)設(shè)計中選擇它的接口,更實用、更方便。總體結(jié)構(gòu)采用層次化的設(shè)計思想,將系統(tǒng)模塊化,擇優(yōu)組合。
①表現(xiàn)層:負(fù)責(zé)向最終用戶展示應(yīng)用程序的控制方式以及數(shù)據(jù)、信息的布局和格式。使用Arc Engine功能界面控件,合理布局,形成一個方便使用的寧夏道路交通地理信息系統(tǒng)界面。②業(yè)務(wù)邏輯層:系統(tǒng)核心部分,負(fù)責(zé)邏輯性數(shù)據(jù)生成、處理及轉(zhuǎn)換,包括基礎(chǔ)功能、可視化、規(guī)劃設(shè)計、數(shù)據(jù)訪問、制圖。主要使用Arc Engine接口,提高開發(fā)效率。③數(shù)據(jù)層:非原始數(shù)據(jù)操作層,為業(yè)務(wù)邏輯層提供數(shù)據(jù)服務(wù),即對數(shù)據(jù)庫的操作,在本系統(tǒng)中數(shù)據(jù)層由控件數(shù)據(jù)引擎ArcSDE和關(guān)系數(shù)據(jù)庫管理系統(tǒng)(SQL Sever)組成。遙感影像、矢量數(shù)據(jù)、道路及基礎(chǔ)地理數(shù)據(jù)等均通過Geodatebase進(jìn)行集成管理,用戶信息、用戶權(quán)限等通過SQL Sever進(jìn)行管理。
寧夏道路交通地理信息系統(tǒng)的實現(xiàn)能為城市規(guī)劃管理、經(jīng)濟(jì)建設(shè)、戰(zhàn)略布局等管理決策提供支持,系統(tǒng)使用過程中,使用者身份信息需要確認(rèn),設(shè)計過程中,需要登錄界面和程序主界面。主界面設(shè)計主要使用NET內(nèi)置控件及Arc Engine相關(guān)控件,分布包括:菜單欄、工具欄、狀態(tài)欄、地圖數(shù)據(jù)目錄顯示區(qū)、鷹眼導(dǎo)航區(qū)和地圖顯示與操作區(qū)六大部分。系統(tǒng)將幾大功能模塊分別鍵入菜單欄,用戶在使用時點擊相應(yīng)菜單跳轉(zhuǎn)進(jìn)入對應(yīng)功能。工具欄和地圖數(shù)據(jù)目錄顯示區(qū)使用框架控件TOCControl和ToolbarControl,同時向ToolbarControl中添加保存、縮放、全局顯示等常用工具,并與制圖控件綁定。鷹眼導(dǎo)航區(qū)和地圖顯示與操作區(qū)使用制圖控件MapControl和PageLayoutControl,MapControl用于地理數(shù)據(jù)顯示和分析,PageLayoutControl用于生成成品地圖。
寧夏道路交通地理信息系統(tǒng)為用戶提供道路分布瀏覽、道路信息查詢、道路測量、道路相關(guān)因子量化等功能,便于全省交通道路管理,對城市發(fā)展規(guī)劃、道路影響范圍界定提供科學(xué)的精準(zhǔn)數(shù)據(jù)依據(jù),為做出合理決策提供支持,具體功能模塊包括文件模塊、交通節(jié)點繪制模塊、道路測量模塊、道路查詢模塊、控件分析模塊、交通專題模塊六大模塊。
寧夏交通地理信息系統(tǒng)中數(shù)據(jù)庫包括主程序使用的ESRI提供的ArcSDK分管地理數(shù)據(jù)庫接口和管理人員入口使用的Microsoft提供的關(guān)系型數(shù)據(jù)庫管理系統(tǒng)SQL Sever兩大管理系統(tǒng)。
(1) 寧夏道路交通矢量數(shù)據(jù)、省市縣行政界線矢量數(shù)據(jù)等均存在于ArcSDK接口提供的Geodatabase中。
(2) 用戶信息登錄名、密碼、身份、系統(tǒng)日志等以關(guān)系表形式存在SQL Sever數(shù)據(jù)庫中。
C#是一種面向?qū)ο蟮拈_發(fā)語言,本系統(tǒng)采用Visual Studio2010作為開發(fā)環(huán)境?;贏rc Engine這個簡單、獨立與應(yīng)用程序的Arc Object中進(jìn)行開發(fā)本系統(tǒng)就是基于此環(huán)境下進(jìn)行開發(fā),通過ArcGIS SDE進(jìn)行控件數(shù)據(jù)訪問,關(guān)系型數(shù)據(jù)庫采用SQL Sever。
(1) 文件模塊。常規(guī)的文件處理功能如圖像的加載、保存、刪除和退出。其中,圖像加載根據(jù)圖像格式不同分為加載地圖文檔、添加圖層、添加SHP文件、加載CAD文件。保存分為保存當(dāng)前文檔和另存地圖文檔。
(2) 交通節(jié)點繪制模塊。在需要進(jìn)行簡單編輯時,可在該模塊中繪制線、圓、矩形、多邊形等形式。
(3) 道路測量模塊。根據(jù)用戶使用需求,可用測量工具,對所需測量道路進(jìn)行手動測量其長度。
(4) 道路查詢模塊。Arc Engine中MapControl控件提供selectFeature方法。在規(guī)劃管理、瀏覽信息中需要對要素信息進(jìn)行查詢,在本模塊中分為目標(biāo)查詢、范圍查詢和里程查詢。目標(biāo)查詢: 可選定要素,查看其屬性信息、規(guī)劃信息等。范圍查詢:通過鼠標(biāo)框選一定范圍,查詢此范圍內(nèi)各種地物信息。里程查詢:查詢寧夏回族自治區(qū)內(nèi)各種道路里程信息。
(5) 空間分析模塊。ITopogicalOperator接口提供緩沖區(qū)分析等方法,在此方法下實現(xiàn)對象緩沖區(qū)拓?fù)洳僮?。寧夏道路交通系統(tǒng)中緩沖區(qū)應(yīng)用十分廣泛,如在城市道路噪聲污染范圍預(yù)估;道路交點服務(wù)半徑;道路規(guī)劃過程中占地范圍確定多個方面。
(6) 交通專題圖模塊。瀏覽、查詢、分析等操作之后需要將結(jié)果以圖件的形式呈現(xiàn)出來,此模塊需在布局視圖下提供,指北針、圖例、比例尺、邊框、陰影和格網(wǎng)的添加。
系統(tǒng)中包含大量的信息,為了能夠快速了解所需信息,查詢功能是最好的工具,根據(jù)不同的查詢依據(jù)產(chǎn)生了多種查詢方式。寧夏交通地理信息系統(tǒng)中,為方便使用,開發(fā)了目標(biāo)查詢、范圍查詢和里程查詢?nèi)N方式。
查詢需設(shè)置相應(yīng)查詢條件,ArcGIS Engine中,F(xiàn)eatureLayer對象和IFeatureClass對象提供Search()方法專門用于空間數(shù)據(jù)查詢,查詢過程中使用游標(biāo)Cursor連接Row對象或要素,使用過濾器對象,IQueryFilter接口設(shè)定查詢要求,篩選出要操作要素,得到查詢結(jié)果后利用圖像和要素對應(yīng)關(guān)系,在地圖上對符合條件的要素進(jìn)行定位并刷新背景燈。
在城市道路噪聲污染范圍預(yù)估、道路交點服務(wù)半徑、道路規(guī)劃過程中占地范圍確定多個方面,需對一種要素,給定一個數(shù)值確定它所包含范圍,在地理信息技術(shù)中就是對空間位置的拓?fù)潢P(guān)系的描述。
ArcEngine中提供ITopologicalOperator接口用于拓?fù)溥\算,通過對已存在的集合對象做空間拓?fù)溥\算,已產(chǎn)生新的結(jié)合對象。
寧夏交通地理信息系統(tǒng)充分利用地理信息系統(tǒng)技術(shù)和數(shù)據(jù)庫技術(shù)。通過三層架構(gòu)實現(xiàn)道路交通數(shù)據(jù)瀏覽、查詢、統(tǒng)計和空間分析功能,為寧夏回族自治區(qū)的交通管理、城市規(guī)劃、經(jīng)濟(jì)發(fā)展和戰(zhàn)略布局提供輔助決策和技術(shù)支持,產(chǎn)生巨大的經(jīng)濟(jì)效益和社會效益。