薛江帆 張會霞 ??〗?/p>
歷史古城是人類與自然相互交融和發(fā)展的一種體現(xiàn),反映出我國不同地域不同歷史階段的獨(dú)特且合理的文明現(xiàn)象。山西古建筑文化歷史悠久、底蘊(yùn)深厚、現(xiàn)存古城資源眾多。但山西地勢多山且不便利的交通,給古城遺址的保護(hù)和發(fā)展帶了很多不便。并且古城旅游開發(fā)符合山西省經(jīng)濟(jì)轉(zhuǎn)型的重要戰(zhàn)略,也是其旅游轉(zhuǎn)型的重要方向。所以高效且便捷的山西古城信息管理十分重要。
隨著我國互聯(lián)網(wǎng)和地理信息系統(tǒng)的發(fā)展,在古代建筑的保護(hù)和信息保存上早就有了多種且有效的手段。但在以往學(xué)者的研究中,學(xué)者多以單一建筑的保護(hù)建立數(shù)字化模型,如王崇恩等對歷史建筑以建立歷史建筑信息模型的方式進(jìn)行研究,白焱利用REVIT技術(shù)將山西晉祠魚沼飛梁進(jìn)行了還原。他們的主要研究都是對單個(gè)建筑進(jìn)行具體分析,雖然這些研究詳細(xì)并且全面,但只是單一的研究古代建筑的信息,沒有把握建筑之間的關(guān)聯(lián)性和完整性。而地理信息系統(tǒng)的二次開發(fā)就是綜合表達(dá)和管理地理信息最常用的方法之一。本文采用SQL Sever2012存儲屬性數(shù)據(jù),采用C#開發(fā)ArcGIS Engine組件建立山西古城管理系統(tǒng)。
本研究以山西為例,搜集和查詢山西古代城市的基本數(shù)據(jù),并對數(shù)據(jù)進(jìn)行分析和處理。建立山西古城管理系統(tǒng)。主要是為了方便人們對古城數(shù)據(jù)的管理和保護(hù),使用系統(tǒng)中的功能可以方便人們對山西古城信息查詢及信息保護(hù)。
具體來說,就是開發(fā)一個(gè)山西古代城市信息數(shù)據(jù)庫管理系統(tǒng),建立山西古城數(shù)據(jù)庫,并搭建山西古城信息系統(tǒng)。最終對山西古城數(shù)據(jù)庫系統(tǒng)進(jìn)行運(yùn)行和維護(hù),滿足系統(tǒng)開發(fā)的基本需求。
該系統(tǒng)使用C/S結(jié)構(gòu)。
前端的客戶機(jī),主要完成用戶界面顯示,完成山西古城地圖的瀏覽、屬性查詢、多媒體查詢等應(yīng)用功能。后端的服務(wù)器,主要是運(yùn)行DBMS,在服務(wù)器中儲存山西古城的數(shù)據(jù)信息,方便對古城信息進(jìn)行存儲和更新,提供數(shù)據(jù)庫的查詢和管理。
該系統(tǒng)包括數(shù)據(jù)加載、數(shù)據(jù)庫連接、地圖瀏覽、屬性查詢和多媒體查詢等功能。
地理數(shù)據(jù)庫是地理信息系統(tǒng)數(shù)據(jù)管理的基礎(chǔ)。該數(shù)據(jù)庫主要包含了兩大類數(shù)據(jù):空間數(shù)據(jù)和屬性數(shù)據(jù)。古城位置信息根據(jù)相關(guān)資料標(biāo)注,屬性信息來源于山西省文物局官網(wǎng),山西省其他矢量數(shù)據(jù)來源于CSDN官網(wǎng)。
使用ArcGIS軟件矢量化山西古城。先矢量化山西行政圖。對山西省一到五級河流、基本道路和基本鐵路等信息相對于地圖進(jìn)行配準(zhǔn)。然后使用ArcCatalog新建點(diǎn)、線、面數(shù)據(jù)圖層,修改地理坐標(biāo)系和地圖投影,最后在ArcGIS中由底圖添加古城數(shù)據(jù),繪出山西省行政區(qū)、交通和河流的等信息,完成矢量化。可以更加直觀和準(zhǔn)確地表達(dá)山西古城數(shù)據(jù)的分布范圍和分布密度等信息。
屬性數(shù)據(jù)庫的主要信息有山西各個(gè)古城的歸屬省、歸屬市、歸屬縣、遺址名稱、遺址朝代、建城朝代等字段以及文字介紹、圖片和視頻信息,并存儲在SQL Sever 2012中。空間數(shù)據(jù)加載前將屬性數(shù)據(jù)庫連接到空間數(shù)據(jù)庫上。
(1)首先在系統(tǒng)開發(fā)的程序中定義數(shù)據(jù)庫的連接字符串,包括datasource服務(wù)器,Initial Catalog數(shù)據(jù)庫名和身份驗(yàn)證信息。
(2)定義數(shù)據(jù)庫連接變量并傳入數(shù)據(jù)庫連接字符串參數(shù)。
(3)打開數(shù)據(jù)庫連接。
(4)string SQLstr01 = "Select * from 山西古城信息",定義查詢語句。
(5)SqlDataAdapter MyAdapter = new SqlDataAdapter(SQLstr01, conn01)。
(6)新建一個(gè)空的數(shù)據(jù)集。
(7)執(zhí)行SQL,將結(jié)果給ds01。
(8)打開窗體,填充數(shù)據(jù)。
主要是對山西古城地圖進(jìn)行地圖瀏覽的功能的開發(fā)。利用ToolbarControl控件可以使鼠標(biāo)實(shí)現(xiàn)矩形框任意放大縮小功能,還可以點(diǎn)擊“地球”樣式的圖標(biāo)進(jìn)行全圖顯示。使用MapControl控件和EagleEyeMapControl控件實(shí)現(xiàn)數(shù)據(jù)視圖和鷹眼的功能。再使用PageLayoutControl控件可以實(shí)現(xiàn)視圖功能,方便用戶輸出地圖信息,可以用來制作所需的山西古城專題化地圖。也可以在axTOCControl控件中添加contextMenuStrip控件進(jìn)行屬性表的瀏覽。
屬性查詢:基于山西古城的空間數(shù)據(jù),通過構(gòu)建SQL查詢語句來進(jìn)行搜索,首先使用IQueryFilter接口定義屬性查詢的條件,再使用WhereClause方法輸入where的子句,從而得到查詢的結(jié)果,查詢的結(jié)果會顯示在地圖上,如圖1所示。
圖1 屬性查詢
把山西古代城市的信息儲存在數(shù)據(jù)庫中。通過山西古城的名稱進(jìn)行查詢,系統(tǒng)會彈出窗口并利用richTextBox、pictureBox、WindowsMediaPlayer控件顯示文字介紹和圖片并播放介紹視頻,如圖2所示。信息可以讓使用者從多個(gè)方面了解山西古城的過去和現(xiàn)狀,更加直觀地表現(xiàn)出古城信息。
圖2 多媒體查詢
本文以山西古城數(shù)據(jù)庫管理系統(tǒng)為例,以山西省基礎(chǔ)地理信息、空間地理信息為核心,論述基于ArcGIS Engine二次開發(fā)一個(gè)古城信息系統(tǒng)的過程。在開發(fā)的過程中要遵循了科學(xué)合理原則,不但滿足山西古城遺址的多樣化查詢,而且建立一個(gè)完善山西古城管理的系統(tǒng)。使用該系統(tǒng)就可以查詢相應(yīng)的山西古城信息,使人們可以更加方便快捷地了解山西現(xiàn)存歷史文化古城,也能幫助人們更好地了解深厚的山西文化,從而對古城加以保護(hù)和發(fā)揚(yáng)。