,,3,,2, ,3
(1.北華航天工業(yè)學(xué)院 河北省航天遙感信息處理與應(yīng)用協(xié)同創(chuàng)新中心,河北 廊坊 065000;2.北華航天工業(yè)學(xué)院河北 計(jì)算機(jī)與遙感信息技術(shù)學(xué)院,河北 廊坊 065000;3.北華航天工業(yè)學(xué)院 電子與控制工程學(xué)院,河北 廊坊 065000)
國家高分辨率對地觀測系統(tǒng)重大專項(xiàng)是《國家中長期科學(xué)與技術(shù)發(fā)展規(guī)劃綱要》確定的十六個(gè)重大科技專項(xiàng)之一,于2010年批準(zhǔn)啟動實(shí)施[1]。高分專項(xiàng)的實(shí)施大力支撐了現(xiàn)代農(nóng)業(yè)、林業(yè)資源監(jiān)測、環(huán)境保護(hù)、國土調(diào)查等領(lǐng)域的應(yīng)用需求,積極支持區(qū)域示范應(yīng)用,快速推動了我國空間信息產(chǎn)業(yè)的發(fā)展。高分一號、高分二號衛(wèi)星發(fā)射升空,實(shí)現(xiàn)了對高空間分辨率、多光譜與高時(shí)間分辨率結(jié)合的光學(xué)遙感技術(shù)的突破[2]。
WebGIS通過互聯(lián)網(wǎng)對地理空間數(shù)據(jù)進(jìn)行發(fā)布和應(yīng)用,以實(shí)現(xiàn)空間數(shù)據(jù)的共享,核心是在GIS中嵌入HTTP標(biāo)準(zhǔn)的應(yīng)用體系,實(shí)現(xiàn)Internet環(huán)境下的空間信息管理和發(fā)布,可采用多主機(jī)、多數(shù)據(jù)庫進(jìn)行分布式部署,通過Internet/Intranet實(shí)現(xiàn)互聯(lián),是一種瀏覽器/服務(wù)器(B/S)結(jié)構(gòu)[3-5]。針對京津冀一體化協(xié)同發(fā)展對區(qū)域遙感監(jiān)測信息化的需求,利用高分影像數(shù)據(jù)開展京津冀區(qū)域城鄉(xiāng)一體化發(fā)展監(jiān)測、資源環(huán)境承載力評價(jià)、環(huán)境要素提取與動態(tài)監(jiān)測十分必要[6],為了實(shí)現(xiàn)國產(chǎn)高分衛(wèi)星遙感信息產(chǎn)品快速、準(zhǔn)確、高效地服務(wù)于京津冀一體化區(qū)域綜合管理以及環(huán)境質(zhì)量監(jiān)測等需求,基于WebGIS技術(shù)設(shè)計(jì)與開發(fā)高分衛(wèi)星遙感數(shù)據(jù)應(yīng)用服務(wù)平臺十分必要。
為滿足京津冀區(qū)域省、市、縣、鄉(xiāng)四級政府及行業(yè)不同用戶對遙感監(jiān)測的需求,首先需要把遙感影像數(shù)據(jù)、實(shí)地勘測數(shù)據(jù)、統(tǒng)計(jì)數(shù)據(jù)等多種空間和屬性數(shù)據(jù)通過統(tǒng)一的編碼規(guī)范進(jìn)行標(biāo)準(zhǔn)化處理,其次,結(jié)合ArcGIS Server動態(tài)圖層的海量數(shù)據(jù)便捷調(diào)用的功能以及SQL Server空間數(shù)據(jù)庫的存儲功能[7],最終實(shí)現(xiàn)多源數(shù)據(jù)在空間上的展示、統(tǒng)計(jì)和分析。因此,擬采用B/S結(jié)構(gòu)下的3層架構(gòu),前端頁面利用ArcGIS API調(diào)用發(fā)布在ArcGIS Server上的服務(wù)以及存儲在數(shù)據(jù)庫中的圖層信息,并引入jQuery框架、ECharts控件等來達(dá)到美化界面、修飾圖表的功能;數(shù)據(jù)層采用空間數(shù)據(jù)和屬性數(shù)據(jù)存儲于同一數(shù)據(jù)庫的形式,使查詢功能更加快速便捷;后臺服務(wù)層采用ArcGIS Server為前端調(diào)用服務(wù)提供數(shù)據(jù)接口,主要利用ASP.NET技術(shù)來實(shí)現(xiàn)[8]。
圍繞設(shè)計(jì)目標(biāo),平臺的主體功能可以分為兩個(gè)模塊:
1)空間信息管理模塊:其一,實(shí)現(xiàn)對動態(tài)加載的省、市、縣、鄉(xiāng)四級行政區(qū)域多種資源圖層的管理,包括資源圖層間的切換;其二,實(shí)現(xiàn)同一行政區(qū)域內(nèi),同種資源不同時(shí)期的數(shù)據(jù)圖層動態(tài)生成時(shí)間軸及時(shí)間軸的滑動切換。最后,可根據(jù)用戶需要,實(shí)現(xiàn)數(shù)據(jù)的動態(tài)查詢和統(tǒng)計(jì)。
2)基礎(chǔ)信息展示模塊:主要包括地圖放大、縮小、平移、截圖、對比、測量、打印、導(dǎo)航等功能,以及地形圖與影像圖的動態(tài)切換,多層目錄樹的區(qū)域選擇等,并可實(shí)現(xiàn)同一區(qū)域不同時(shí)間數(shù)據(jù)的對比分析。
平臺框架主要包括數(shù)據(jù)層、數(shù)據(jù)鏈接層、數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層、表示層、模型層,如圖1所示。數(shù)據(jù)層是由空間數(shù)據(jù)庫和屬性數(shù)據(jù)庫組成,二者統(tǒng)一存儲于關(guān)系數(shù)據(jù)庫SQL Server中[9]。數(shù)據(jù)鏈接層是數(shù)據(jù)訪問層和數(shù)據(jù)層之間的橋梁,從數(shù)據(jù)層讀取空間數(shù)據(jù)和屬性數(shù)據(jù),并將結(jié)果返回給數(shù)據(jù)訪問層[10]。數(shù)據(jù)訪問層主要實(shí)現(xiàn)對數(shù)據(jù)的“增刪查改”等操作,為業(yè)務(wù)邏輯層和表示層提供數(shù)據(jù)服務(wù)。數(shù)據(jù)訪問層對數(shù)據(jù)進(jìn)行的操作通過業(yè)務(wù)邏輯層傳送到表示層,再經(jīng)應(yīng)用平臺在Internet上進(jìn)行信息的瀏覽、展示和GIS查詢、統(tǒng)計(jì)、分析。與此過程相反,用戶可通過客戶端進(jìn)行信息輸入,再通過Internet傳送到應(yīng)用平臺,再經(jīng)由業(yè)務(wù)邏輯層、數(shù)據(jù)表示層、數(shù)據(jù)鏈接層對相關(guān)數(shù)據(jù)庫進(jìn)行操作來反饋客戶端的請求,實(shí)現(xiàn)交互式操作。
圖1 高分遙感京津冀一體化服務(wù)平臺框架
平臺基于ASP.NET面向?qū)ο蟮某绦蛟O(shè)計(jì)來開發(fā),主要目的是為京津冀一體化區(qū)域綜合管理提供科學(xué)合理、及時(shí)有效的數(shù)據(jù)參考。涉及面向?qū)ο蟮能浖_發(fā)比較困難,可復(fù)用的面向?qū)ο蟮能浖_發(fā)更難。必須找到相關(guān)對象,并把它們歸類,然后定義類的接口和繼承層次,建立對象之間的基本關(guān)系[11]。才能使設(shè)計(jì)的平臺兼具對強(qiáng)調(diào)問題的針對性和對通用問題的普適性。
平臺的空間查詢、屬性查詢和統(tǒng)計(jì)分析方法主要是針對本平臺服務(wù)對象的需求設(shè)計(jì)和實(shí)現(xiàn)。分為五個(gè)功能模塊,分別為:用戶管理、基本地圖操作、空間查詢、屬性查詢以及統(tǒng)計(jì)分析模塊,每一模塊獨(dú)立存在,互不干擾,分別在自己的實(shí)現(xiàn)代碼內(nèi)加載所需的ArcGIS API,在實(shí)現(xiàn)功能的同時(shí)避免因初始化加載過多而造成網(wǎng)頁加載緩慢的問題,模塊間可通過參數(shù)的傳遞和主界面的調(diào)用相互聯(lián)系,便于平臺高效開發(fā),如圖2 所示。
對于多處加載資源圖層、行政矢量圖層,分頁控件,ECharts圖表結(jié)果等普適性需求,將代碼提取封裝成addResourceLayers.js、addRegionLayers.js、echarts.js等js文件,只需引入對應(yīng)js文件,即可直接調(diào)用其方法實(shí)現(xiàn)特定功能,避免了代碼冗余問題,并提高了方法的可復(fù)用性。
圖2 高分遙感京津冀一體化服務(wù)平臺功能模塊
各模塊功能分述如下:
1)用戶管理模塊:包括對省、市、縣、鄉(xiāng)四級行政結(jié)構(gòu)和農(nóng)業(yè)、林業(yè)、環(huán)保、國土四個(gè)不同行業(yè)的用戶權(quán)限管理。根據(jù)不同行政級別和不同行業(yè)需求,分別賦予管理員、省、市、縣、鄉(xiāng)用戶和游客等不同權(quán)限等級,再根據(jù)不同用戶的權(quán)限等級在其對應(yīng)的行政區(qū)域內(nèi),對遙感專題信息產(chǎn)品進(jìn)行瀏覽、查詢、統(tǒng)計(jì)分析等。用戶登錄后可以選擇進(jìn)入農(nóng)業(yè)、林業(yè)、環(huán)保、國土等權(quán)限范圍內(nèi)的行業(yè)領(lǐng)域。
2)數(shù)據(jù)瀏覽與展示模塊:根據(jù)省、市、縣、鄉(xiāng),選擇對應(yīng)的行政區(qū)域和查看的資源類型,完成數(shù)據(jù)的加載、展示。具備地圖放大、縮小、平移、測量以及同一區(qū)域不同時(shí)間影像的對比等功能。
3)數(shù)據(jù)查詢模塊:包括空間查詢和屬性查詢??臻g查詢主要是選定需要查詢的行政區(qū)域后,按照選擇時(shí)間,利用多邊形、矩形或圓形在地圖上框選查詢區(qū)域,執(zhí)行完成后,選擇區(qū)的資源高亮顯示并將查詢結(jié)果顯示在列表中。屬性查詢主要是根據(jù)選擇的政區(qū)、資源類型以及面積等查詢要素進(jìn)行檢索,符合條件的資源高亮顯示并將結(jié)果顯示在列表中。
4)數(shù)據(jù)統(tǒng)計(jì)分析模塊:包括行政級別統(tǒng)計(jì)和資源類型統(tǒng)計(jì)。行政級別統(tǒng)計(jì)主要是選定資源類型和統(tǒng)計(jì)時(shí)間后,根據(jù)需要可按省、市、縣或鄉(xiāng)級進(jìn)行統(tǒng)計(jì),統(tǒng)計(jì)結(jié)果圖表顯示在統(tǒng)計(jì)面板中,并可輸出為文件。資源類型統(tǒng)計(jì)主要是選定資源類型和行政級別后,根據(jù)時(shí)間進(jìn)行檢索。
平臺數(shù)據(jù)源包括處理后的遙感影像數(shù)據(jù)、實(shí)地勘測數(shù)據(jù)、分類處理后的柵格影像、行政區(qū)劃矢量數(shù)據(jù)、統(tǒng)計(jì)數(shù)據(jù)等。為保證對所有數(shù)據(jù)的自動批量入庫以及方便對數(shù)據(jù)進(jìn)行查詢、統(tǒng)計(jì)、索引定位,對遙感專題信息產(chǎn)品等空間數(shù)據(jù)按照統(tǒng)一的編碼規(guī)范進(jìn)行標(biāo)準(zhǔn)化,其他數(shù)據(jù)對應(yīng)歸入到空間數(shù)據(jù)關(guān)聯(lián)的屬性數(shù)據(jù)表中。標(biāo)準(zhǔn)化命名規(guī)范如下:
數(shù)據(jù)類型(格式)_衛(wèi)星類型_傳感器類型_數(shù)據(jù)類型(用途/行業(yè))_期數(shù)(年)_期數(shù)(月)_期數(shù)(日)_行政區(qū)劃編碼(省)_行政區(qū)劃編碼(市)_行政區(qū)劃編碼(縣)_行政區(qū)劃編碼(鄉(xiāng))_行政區(qū)劃編碼(村)_空間范圍(自定義區(qū)域代碼)_制作時(shí)間(版本號)。定義字段如果在操作時(shí)為空,該字段用“#”代替。
空間數(shù)據(jù)和屬性數(shù)據(jù)分開存儲,屬性數(shù)據(jù)通過屬性表存儲于SQL Server中,空間數(shù)據(jù)則通過ArcSDE空間數(shù)據(jù)引擎存儲于SQL Server中。對于用戶管理和部分屬性查詢模塊,借助ADO.NET和數(shù)據(jù)庫進(jìn)行連接,完成數(shù)據(jù)交互功能,實(shí)現(xiàn)對屬性數(shù)據(jù)庫的檢索、處理和更新。對于地圖操作、空間查詢和統(tǒng)計(jì)分析模塊,借助ArcGIS Server中的動態(tài)圖層對ArcSDE進(jìn)行調(diào)用[12],實(shí)現(xiàn)對空間數(shù)據(jù)庫的檢索、定位和分析。數(shù)據(jù)庫邏輯設(shè)計(jì)如圖3所示。
圖3 數(shù)據(jù)庫邏輯設(shè)計(jì)
在Microsoft Visual Studio 2013開發(fā)平臺下建立一個(gè)LY.WEB解決方案,根據(jù)傳統(tǒng)的三層框架模式建立表示層(WEB)、業(yè)務(wù)邏輯層(BLL)和數(shù)據(jù)訪問層(DAL)。為了更好的體現(xiàn)面向?qū)ο蟮木幊趟枷牒拖到y(tǒng)框架,引入了數(shù)據(jù)鏈接層(CONN)和模型層(MODEL),即根據(jù)平臺框架的功能差異,在解決方案下新建不同的項(xiàng)目。
ArcGIS Server的動態(tài)圖層功能需附加到地圖服務(wù)上,方可實(shí)現(xiàn)對ArcSDE的調(diào)用,從而在屬性查詢時(shí),達(dá)到屬性信息和空間信息的有機(jī)結(jié)合。屬性查詢模塊可以根據(jù)選擇進(jìn)行單條件查詢和多條件查詢,前端頁面選擇好查詢條件后,平臺通過Ajax的異步通信方式與后臺服務(wù)器進(jìn)行數(shù)據(jù)交互,利用Ajax可以部分更新網(wǎng)頁內(nèi)容的功能,無需刷新整個(gè)頁面,即可實(shí)現(xiàn)結(jié)果刷新[13],減少了響應(yīng)時(shí)間,提高了平臺效率,關(guān)鍵點(diǎn)是必須協(xié)調(diào)好調(diào)用方法與Ajax執(zhí)行方法之間的邏輯關(guān)系,當(dāng)Ajax在與服務(wù)器進(jìn)行異步通信時(shí),要注意方法的執(zhí)行順序,否則會因?yàn)槲捶祷卣_通信結(jié)果而使調(diào)用方法得到錯誤執(zhí)行結(jié)果。
目前,基于ArcGIS API for Javascript的WebGIS開發(fā)中,大都會用到Ajax技術(shù)[14]。與沒有使用Ajax的傳統(tǒng)Web應(yīng)用程序?qū)Ρ?,它通過http向服務(wù)器請求少量信息的功能使Web應(yīng)用程序的可操作性更強(qiáng)、用戶體驗(yàn)更友好。
由于ArcGIS API for Javascript實(shí)現(xiàn)對圖表專題圖的渲染以及遙感超大數(shù)據(jù)量的展現(xiàn)需求較為困難,選擇操作簡單、圖表種類豐富、數(shù)據(jù)挖掘整合能力強(qiáng)大、可支持千萬數(shù)據(jù)前端展示的ECharts控件較為可行,它滿足了平臺針對不同用戶服務(wù)的需求,使圖表展示更具靈活性,無需背景知識即可明白其表達(dá)的涵義。
部分實(shí)現(xiàn)代碼如下:
//通過資源名稱、行政區(qū)域以及時(shí)間獲取符合該資源類型的信息
.ajax({
type: "Post",
url: "GF_MainMap.aspx/getResourceInfo",
data: "{'resourcename':'" + resourceName + "','districtcode':'" + districtCode + "','year':'" + year + "','month':'" + month+ "'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (data) {
resourcesInfo = data.d;
if (resourcesInfo!="[]") {
//讀取信息
var obj = "";
obj = eval("(" + resourcesInfo + ")");
……}
}
})
var attQuery = new AttributeQuery(MyMap, resourceName, districtCode, year, month);
attQuery.queryByCondition();
圖4為以管理員身份登錄后,進(jìn)入的林業(yè)系統(tǒng)主界面,左側(cè)導(dǎo)航欄為主要功能模塊,可以進(jìn)行屬性查詢選擇;中間為高分衛(wèi)星遙感影像底圖上疊加的京津冀行政區(qū)劃圖以及用戶選擇的遙感應(yīng)用服務(wù)矢量圖層,地理空間上的查詢、統(tǒng)計(jì)和GIS分析等結(jié)果可在該區(qū)域內(nèi)顯示;右側(cè)為地圖瀏覽與展示模塊,包括工具選擇欄、地圖切換、視圖切換、鷹眼等功能小部件。
圖4 高分遙感京津冀一體化服務(wù)平臺屬性查詢功能
高分遙感京津冀一體化應(yīng)用平臺在基于對多源數(shù)據(jù)標(biāo)準(zhǔn)化規(guī)范設(shè)計(jì)和統(tǒng)一的空間、屬性數(shù)據(jù)庫管理的基礎(chǔ)上,通過ASP.NET的三層架構(gòu)、集成jQuery開源框架,融入Ajax技術(shù),結(jié)合ECharts控件豐富的圖表類型和直觀、易用的交互方式,把挖掘和提取的國產(chǎn)高分遙感信息轉(zhuǎn)化為直觀的圖、表,構(gòu)建了高度集成化的WebGIS服務(wù)平臺,實(shí)現(xiàn)了國產(chǎn)高分遙感信息的動態(tài)瀏覽、便捷查詢、統(tǒng)計(jì)分析,以及遙感信息在空間上的可視化展示和時(shí)間尺度上的多期回顧,解決了京津冀區(qū)域協(xié)同發(fā)展中省、市、縣、鄉(xiāng)四級行政區(qū)域無法及時(shí)獲取國產(chǎn)高分遙感信息服務(wù)的問題,為國產(chǎn)高分衛(wèi)星遙感數(shù)據(jù)在京津冀不同區(qū)域尺度,尤其在縣、鄉(xiāng)小區(qū)域尺度上的應(yīng)用,提供了快速、可靠的空間信息查詢和分析手段。