基于OGC規(guī)范的GET和POST請(qǐng)求的WMS實(shí)現(xiàn)_第1頁(yè)
基于OGC規(guī)范的GET和POST請(qǐng)求的WMS實(shí)現(xiàn)_第2頁(yè)
基于OGC規(guī)范的GET和POST請(qǐng)求的WMS實(shí)現(xiàn)_第3頁(yè)
基于OGC規(guī)范的GET和POST請(qǐng)求的WMS實(shí)現(xiàn)_第4頁(yè)
基于OGC規(guī)范的GET和POST請(qǐng)求的WMS實(shí)現(xiàn)_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、基于OGC標(biāo)準(zhǔn)的GET和POST請(qǐng)求的WMS實(shí)現(xiàn)摘要:本文介紹了WebService及其相關(guān)技術(shù)開展現(xiàn)狀,并詳細(xì)闡述了OGC標(biāo)準(zhǔn)中WMS的相關(guān)標(biāo)準(zhǔn)與要求。結(jié)合需要,自主在VS 2005 C#平臺(tái)下實(shí)現(xiàn)了WMS的效勞開發(fā)與用戶測(cè)試,并進(jìn)行了相關(guān)技術(shù)總結(jié)與歸納。論文關(guān)鍵詞:WebService,OGC,WMS效勞近幾年WebGIS 取得了快速開展,其應(yīng)用也擴(kuò)展到GIS應(yīng)用領(lǐng)域的各個(gè)方面。但傳統(tǒng)的WebGIS軟件技術(shù)中仍存在一些局限,具體表現(xiàn)在:并發(fā)處理能力差,響應(yīng)速度慢;系統(tǒng)的異購(gòu)兼容性缺乏。解決傳統(tǒng)WebGIS軟件的上述問題,Web Services技術(shù)以及.NET,J2EE等主流開發(fā)平臺(tái)為我們

2、提供了很好的解決方案。本文的目的就是要弄清楚Web Services技術(shù)架構(gòu),并且分析如何采用基于.net的開源庫(kù)Sharpmap,實(shí)現(xiàn)符合OGC(Open Geospatial Consortium)標(biāo)準(zhǔn)之一Web Map Service的網(wǎng)絡(luò)地圖效勞。證明采用Web Services技術(shù)封裝與發(fā)布空間數(shù)據(jù),實(shí)現(xiàn)地理信息系統(tǒng)的功能變?yōu)閃eb效勞的可行性。2 相關(guān)技術(shù)介紹2.1 WebService介紹及相關(guān)技術(shù)Web Service的實(shí)現(xiàn)包括三個(gè)核心技術(shù):UDDI(統(tǒng)一描述,發(fā)現(xiàn)和集成協(xié)議Universal Description,Discovery and integration)用于標(biāo)準(zhǔn)

3、效勞的注冊(cè),查找和發(fā)現(xiàn)過程,WSDL網(wǎng)絡(luò)效勞描述語(yǔ)言Web Service Description Language用于標(biāo)準(zhǔn)效勞的描述,SOAP簡(jiǎn)單對(duì)象訪問協(xié)議Simple Object Access Protocol用于標(biāo)準(zhǔn)調(diào)用效勞時(shí)采用的通訊協(xié)議。Web Service的工作流程如圖【1】所示:圖【1】 Web Service工作流程Web Service是由一系列的協(xié)議組成,Web Service的協(xié)議棧如圖【2】所示,當(dāng)然目前的協(xié)議棧還在不斷的擴(kuò)展,有進(jìn)一步開展的巨大空間:圖【2】 Web Service協(xié)議棧從以上的協(xié)議棧看:下面兩層是先前已經(jīng)定義好的并且廣泛使用的傳輸層和網(wǎng)絡(luò)層的標(biāo)

4、準(zhǔn),如:IP, ,SMTP等。而中間的四層是目前開發(fā)的Web Service的相關(guān)標(biāo)準(zhǔn)協(xié)議,也是Web Service的核心技術(shù),包括效勞調(diào)用協(xié)議SOAP、效勞描述協(xié)議WSDL,效勞發(fā)現(xiàn)/集成協(xié)議UDDI,以及效勞工作流描述語(yǔ)言WSFL。最上層描述的是更高層的待開發(fā)的關(guān)于路由、可靠性以及事務(wù)等方面的協(xié)議。右邊的局部是各個(gè)協(xié)議層的公用機(jī)制,這些機(jī)制一般由外部的正交機(jī)制來完成。以下主要介紹協(xié)議棧的三個(gè)主要協(xié)議具體表達(dá)在效勞調(diào)用的時(shí)候的角色以及分工:如圖【3】在機(jī)器B上部署Web Service效勞,在機(jī)器A上部署著調(diào)用該效勞的站點(diǎn)。A發(fā)送請(qǐng)求給B,B發(fā)送響應(yīng)給A。他們通訊的協(xié)議是 ,發(fā)送請(qǐng)求和相應(yīng)

5、的數(shù)據(jù)格式都是基于XMLSOAP的數(shù)據(jù),A機(jī)器的代理和存根真正負(fù)責(zé)起A與B之間效勞的調(diào)用。WSDL是用于描述A與B通訊接口的協(xié)議;UDDI相當(dāng)于我們的 黃頁(yè)簿,所有的Web Service效勞可以在UDDI上進(jìn)行處理,即需要在UDDI上注冊(cè)WSDL文檔。因此整個(gè)調(diào)用的過程我們可以描述如下:A要調(diào)用B的某個(gè)效勞,它可以先到UDDI效勞器上去查找描述效勞的WSDL文檔。生成WSDL Proxy,然后再與機(jī)器B上的WSDL Stub通訊,這樣我們可以明確Web Service調(diào)用中的通訊協(xié)議,消息格式,描述語(yǔ)言以及發(fā)現(xiàn)機(jī)制分別如圖【3】中所示。圖【3】 Web Service調(diào)用過程圖2.2 OGC

6、標(biāo)準(zhǔn)的WMS的相關(guān)標(biāo)準(zhǔn)OGC WMS屬于OGC圖示表達(dá)效勞,在WMS標(biāo)準(zhǔn)中將地圖定義為地理數(shù)據(jù)可視的表現(xiàn),WMS返回的不是地圖數(shù)據(jù),而是地圖圖象,WMS標(biāo)準(zhǔn)定義了三個(gè)操作:GetCapabilities操作返回效勞級(jí)元數(shù)據(jù),它是對(duì)效勞信息內(nèi)容和請(qǐng)求參數(shù)的一種描述,元數(shù)據(jù)使用XML形式文件表示;GetMap操作根據(jù)客戶端發(fā)出的請(qǐng)求參數(shù)在效勞端進(jìn)行檢索,效勞器返回一個(gè)地圖圖象,其地理空間參數(shù)和大小是已經(jīng)明確定義的,返回的地圖圖象可以是GIF,JPEG,PNG或SVG格式的;GetFeatureInfo操作根據(jù)用戶請(qǐng)求的X,Y坐標(biāo)或感興趣的圖層,返回這些特殊要素的信息,信息以HTML,GML或者AS

7、CII格式表示。在 WMS 中GetMap是最重要的一個(gè)接口。GetMap的參數(shù)有很多,在調(diào)用時(shí)必須的主要參數(shù)如表【1】:請(qǐng)求參數(shù)定義請(qǐng)求版本號(hào)REQUEST=GetMap請(qǐng)求的名稱LAYERS=layer_list以逗號(hào)分隔的圖層列表STYLES=style_list以逗號(hào)分隔的每層渲染樣式列表CRS=namespace:identifier空間參考系統(tǒng)BBOX=minx,miny,maxx,maxy矩形框四角的SRS坐標(biāo)WIDTH=output_width地圖圖象的寬度HEIGHT=output_height地圖圖象的高度FORMAT=output_format地圖的輸出格式表【1】 Ge

8、tMap主要調(diào)用參數(shù)用戶可以通過標(biāo)準(zhǔn)的瀏覽器向WMS發(fā)送地圖效勞請(qǐng)求,請(qǐng)求的方式可以通過在URL中添加請(qǐng)求的類型參數(shù)來實(shí)現(xiàn)。WMS的GetMap操作支持分布式的地圖效勞網(wǎng)絡(luò)來提供應(yīng)用戶。以下給出請(qǐng)求的字符串:在該字符串前再加上完整的域名或者固定的IP地址,就可以返回得到該字符所制定的具體的地圖圖像。SharpMap是一個(gè)基于.net 2.0使用C#開發(fā)的Map渲染類庫(kù),可以渲染各類GIS數(shù)據(jù)目前支持ESRI Shape和PostGIS格式,可應(yīng)用于桌面和Web程序。SharpMap的發(fā)布許可License為GNU General Public License,實(shí)現(xiàn)了以下功能:1)支持的數(shù)據(jù)格式

9、:PostGreSQL/PostGIS,ESRI Shapefile,支持WMS layer支持ECW 和JPEG2000 柵格數(shù)據(jù)格式;2)Windows Forms 控件,可以移動(dòng)和縮放;3)通過 Handler支持ASP.net程序;4)點(diǎn)、線、多邊形、多點(diǎn)、多線和多多邊形等幾何類型和幾何集合GeometryCollections等OpenGIS簡(jiǎn)單要素標(biāo)準(zhǔn);5)可通過Data Providers增加數(shù)據(jù)類型支持、Layer Types增加層類型和Geometry Types等擴(kuò)展;6)圖形使用GDI+渲染,支持anti-aliased等;7)專題圖。3 實(shí)驗(yàn)結(jié)果數(shù)據(jù):安徽省的shape

10、數(shù)據(jù);開發(fā)環(huán)境:VS2005,IIS;開發(fā)語(yǔ)言:c#。實(shí)現(xiàn)步驟:1)新建一個(gè)WebService,實(shí)現(xiàn)WMS的函數(shù):GetMap,Getcapabilities;2)配置Webcong,使該WebService支持GET和POST請(qǐng)求兩種方式;3)GET方法實(shí)現(xiàn)如下:第一步:新建 website,獲取 GET請(qǐng)求的相關(guān)參數(shù);第二步:通過GET方法,根據(jù)上一步參數(shù)調(diào)用新建的WebService,獲得地圖字節(jié)流;第三步:所獲得的字節(jié)流是以XML文檔傳輸?shù)?,并?duì)地圖字節(jié)流采取一定的編碼方式,對(duì)該XML文檔進(jìn)行解譯,并對(duì)字節(jié)流進(jìn)行解碼,獲得地圖的原始數(shù)據(jù);第四步:將所獲得地圖渲染出來;第五步:利用II

11、S發(fā)布WebService和 website即可。效果如圖【4】和圖【5】:所給請(qǐng)求字符串1:所給請(qǐng)求字符串2: 圖【4】 圖【5】 圖【6】 POST界面4)POST方法實(shí)現(xiàn)如下:第一步:新建 Website;第二步:設(shè)計(jì)POST界面如圖【6】所示,主要包括REQUEST描述,POST地址,POST數(shù)據(jù);第三步:獲取post地址,及要post的相關(guān)數(shù)據(jù),利用該值初始化 WebRequest對(duì)象,設(shè)置POST方法,利用 WebResponse 獲得post的XML,對(duì)該XML文檔進(jìn)行解譯,并對(duì)字節(jié)流進(jìn)行解碼,獲得地圖的原始數(shù)據(jù);第四步:將所獲得地圖渲染出來;第五步:利用IIS發(fā)布 websit

12、e即可。核心代碼如下:public byte GetMap(string UserRequest)byte bytesmap=null;byte bytesmap1 = null;。string splitstringLower = splitstring.ToLower();/Request中的參數(shù)名稱大小寫不敏感,因此在涉及到參數(shù)名稱時(shí),使用splitstringLower,涉及到參數(shù)值時(shí),使用splitstringint exist = splitstringLower.IndexOf(request);if (exist = 0)string requestvalue = splits

13、tring.Split(new char = );haveREQUEST = true;REQUEST = requestvalue【1】;break;img.Save(MS, imageEncoder, null);img.Dispose();byte buffer = MS.ToArray();bytesmap = buffer;return bytesmap;POST方法獲得地圖數(shù)據(jù),并渲染地圖:protected void Page_Load(object sender, EventArgs e)# region 創(chuàng)立 WebRequest對(duì)象string service = Sess

14、ion.ToString();。image.Dispose(); / 釋放圖像資源using (MemoryStream ms = new MemoryStream()/ 采用二進(jìn)制流的方式輸出圖片newImage.Save(ms, ImageFormat.Jpeg);/圖片格式指定為JpegResponse.ClearContent();/去除緩沖區(qū)流中的所有輸出Response.ContentType = image/jpeg;/輸出流的 MIME類型設(shè)置為image/PngResponse.BinaryWrite(ms.ToArray();/輸出圖片的二進(jìn)制流newImage.Dispo

15、se();/ 釋放圖像資源Response.Flush();/ 輸出Response.End();4 結(jié)論.NET是 Microsoft用以創(chuàng)立Web效勞平臺(tái),該平臺(tái)將信息、設(shè)備和人以一種統(tǒng)一的、個(gè)性化的方式聯(lián)系起來。借助于.NET平臺(tái),可以創(chuàng)立和使用基于XML的應(yīng)用程序、進(jìn)程和Web站點(diǎn)以及效勞。通過.NET,所有的聯(lián)網(wǎng)設(shè)備共同組成了一個(gè)無處不在的分布式計(jì)算平臺(tái),能夠進(jìn)行最有效的計(jì)算。通過Web Service,用戶可以在任何時(shí)間、任何地點(diǎn)、通過任何設(shè)備獲得信息。Web Service的出現(xiàn),改變了網(wǎng)絡(luò)軟件開發(fā)的方式,甚至改變了網(wǎng)絡(luò)軟件的使用方式。從開發(fā)方式來講,Web Service就是網(wǎng)絡(luò)上的組件,可以使用Web Service構(gòu)建基于組件的WebGIS軟件。而從使用方式來看,WebGIS軟件的開發(fā)已經(jīng)不局限于網(wǎng)絡(luò)制圖,網(wǎng)絡(luò)數(shù)據(jù)的交換等功能,目前已經(jīng)在向效勞使用的方向

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論