□李強(山西省地圖集編纂委員會辦公室,山西太原030002)
傳統(tǒng)村落與Mic ros oft Virtua l Ea rth集成
□李強
(山西省地圖集編纂委員會辦公室,山西太原030002)
主要論述了如何通過利用SQL Server 2008對地理空間的支持,將山西省傳統(tǒng)村落的位置等信息集成到Microsoft Virtual Earth上,讓人們對山西的傳統(tǒng)村落有一定的了解。
傳統(tǒng)村落;microsoft virtual earth集成
傳統(tǒng)村落是指聚居年代久遠,擁有豐富的物質和非物質形態(tài)文化遺產(chǎn)資源,并具有歷史、文化、科學、藝術、社會和經(jīng)濟價值的村落。近年來,在城鎮(zhèn)化的進程中,大量的歷史文化遺跡已經(jīng)蕩然無存,古村落作為一個保護相對完整的歷史載體,是難能可貴的寶貴資源。
山西省是一個歷史悠久,傳統(tǒng)村落保存現(xiàn)狀比較好的省份,通過在互聯(lián)網(wǎng)上將山西省的傳統(tǒng)村落以文字、圖片、視頻等形式展現(xiàn)給全世界的人們,讓大家對山西省的傳統(tǒng)村落文化有更進一步的了解的同時,對山西省傳統(tǒng)村落的保護也起到一定的積極作用。下面僅就傳統(tǒng)村落的位置及相關信息與Microsoft Virtual Earth集成進行程序實現(xiàn)。
地理空間支持是對 Microsoft SQL Server 2008中核心數(shù)據(jù)庫引擎的一個強大擴展,允許使用新的geometry和geography數(shù)據(jù)類型來存儲和管理形狀、大小和位置,并具有計算面積、距離和交點等功能。通過利用SQL Server 2008中的這一新支持將山西省傳統(tǒng)村落的相關信息整合到數(shù)據(jù)庫應用程序中,在Microsoft Virtual Earth中展示山西省傳統(tǒng)村落的相關信息。
SQL Server 2008中的地理空間支持是專門設計用來支持在數(shù)據(jù)庫中快速開發(fā)空間功能,引
入了兩種新的數(shù)據(jù)類型來處理空間數(shù)據(jù),geometry數(shù)據(jù)類型用來存儲和處理采用平面模型的空間數(shù)據(jù),geography數(shù)據(jù)類型用來存儲和處理大地測量模型。在傳統(tǒng)村落與Microsoft Virtual Earth集成的過程中,使用geography類型存儲山西省傳統(tǒng)村落的位置,通過選擇傳統(tǒng)村落及其位置,然后提取每個位置的經(jīng)、緯度值,構建一個Microsoft Virtual Earth mash-up。具體流程如圖所示。
首先創(chuàng)建一個名為MyDB的空間數(shù)據(jù)庫,然后創(chuàng)建一個帶有geography列的CTcunluo表和相關的存儲過程,用于存儲傳統(tǒng)村落的位置、名稱、圖片、文字、視頻等信息和傳統(tǒng)村落信息的入庫及提取。
在ArcGIS中,根據(jù)相關的資料,將山西省傳統(tǒng)村落的位置信息坐標轉換成Microsoft Virtual Earth的經(jīng)緯度坐標,通過Create Feature to X,Y命令得到傳統(tǒng)村落的地理坐標數(shù)據(jù),用insert into命令將村落的地理坐標及相關信息填充到CTcunluo表中。
創(chuàng)建一個存儲過程來獲取所有的傳統(tǒng)村落的位置及相關信息
創(chuàng)建了數(shù)據(jù)庫后,就可以創(chuàng)建 Virtual Earth mash-up。啟動Visual Studio 2010,創(chuàng)建名為CTVirtualEarth的Visual C#“ASP.NET Web應用程序”項目,將山西省傳統(tǒng)村落的坐標放置在Virtual Earth地圖的頂部,將數(shù)據(jù)庫中傳統(tǒng)村落的位置顯示為地圖上的圖標。
在Default.aspx中,用地理數(shù)據(jù)創(chuàng)建Virtual Earth mash-up
在這個網(wǎng)頁使用“異步JavaScript和XML”(AJAX)呈現(xiàn)Virtual Earth地圖,在地圖上標繪
了每個傳統(tǒng)村落的圖標。所有服務調用都由客戶端瀏覽器直接發(fā)出。關于ScriptManager元素,所有支持AJAX的網(wǎng)頁都需要ScriptManager元素,在ScriptManager元素的內部,該網(wǎng)頁聲明了兩個服務引用:第一個指向CTcunluoQueryService. asmx,即將創(chuàng)建的Web服務,用來調用存儲過程以獲取傳統(tǒng)村落的位置及相關信息;第二個引用指向Microsoft Virtual Earth Web服務,引用一個應用程序接口(API),在任意網(wǎng)頁上呈現(xiàn)交互式地圖。
在解決方案資源管理器中的項目CTVirtualEarth下添加一個“Web服務”,用來連接數(shù)據(jù)庫及從數(shù)據(jù)庫中提取傳統(tǒng)村落的相關信息,命名為CTcunluoQueryService.asmx。
在集成的過程中,需要將數(shù)據(jù)庫中geography數(shù)據(jù)類型的經(jīng)緯度坐標轉換到開發(fā)環(huán)境所能認識的信息,因此,創(chuàng)建一個指向Microsoft.Sqlserver.Type的程序集的引用,通過GetCTcunluo方法從geography類型的cunluo列中提取經(jīng)緯度,使用Microsoft.Sqlserver.Type命名空間中定義的類SqlGeography來處理SQL Server中的geography數(shù)據(jù)類型。
在創(chuàng)建CTcunluoQueryService.asmx Web服務的同時需創(chuàng)建CTcunluos類,用來保存?zhèn)鹘y(tǒng)村落的相關信息。
在打開了與數(shù)據(jù)庫的連接后,GetCTcunluo方法方法準備了SqlCommand對象,以調用數(shù)據(jù)庫中的GetCTcunluo存儲過程,然后調用ExecuteReader方法,以獲得返回結果SqlDataReader對象,循環(huán)遍歷此存儲過程返回的讀取器中的所有數(shù)據(jù)行,將CTcunluos對象添加到被返回給調用程序的泛型List〈CTcunluos〉對象,將傳統(tǒng)村落的信息在客戶端瀏覽的時候顯示出來。
將山西省傳統(tǒng)村落及其相關信息或者其他類型的專題內容集成到某些大型網(wǎng)站W(wǎng)eb地圖上,利用現(xiàn)有Web地圖的地理數(shù)據(jù)和其豐富強大的操作功能,根據(jù)自己的實際需要將專題內容集成上去,將Web地圖服務和專題內容服務分開進行調用,既可以提高瀏覽的速度,又可以根據(jù)實際需要隨時更新專題內容數(shù)據(jù)庫,提供最新的形式多樣的專題內容服務。將傳統(tǒng)村落與Microsoft Virtual Earth集成這一方法不僅為更多的人了解山西省傳統(tǒng)村落信息提供一條新的途徑,而且為我們在更新、使用專題數(shù)據(jù)庫方面提出了新的思考。
【1】賈洪峰.SQL Server 2008程序設計[M].北京∶清華大學出版社,2010.
【2】馬振晗.任鴻,高宇輝.SQL Server 2008寶典[M].北京∶清華大學出版社,2011.
【3】郭玲.SQL Server 2008數(shù)據(jù)庫技術與應用[M].北京∶中國電力出版社,2011.
【4】張克權.黃仁濤.專題地圖編制[M].北京∶測繪出版社,1982.
TP391 文獻識別碼 B
2095-7319(2015)03-0043-05
李強(1976—),男,本科,工程師,1999年畢業(yè)于武漢測繪科技大學,主要從事地圖制圖,GIS開發(fā),數(shù)據(jù)庫架構建設、應用開發(fā)等工作。