




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
aspne與svg在webgis中的應(yīng)用
1webgis中的小波變換對于字段格球的發(fā)展,需要實現(xiàn)數(shù)據(jù)收集,并開發(fā)webgis技術(shù)。然而,目前的webgis產(chǎn)品大多基于傳統(tǒng)的gis操作系統(tǒng),使用api或httpc。通常,需要在后臺運行一個或多個gis應(yīng)用程序。這種模式只解決了在Web上發(fā)布空間信息的問題,并沒有針對Web應(yīng)用環(huán)境進行重新設(shè)計和優(yōu)化,因此在功能和效能上不能滿足人們的需求。隨著WebGIS的快速發(fā)展,在WebGIS中以矢量的方式快速傳輸、瀏覽電子地圖,是當(dāng)前GIS研究的一個熱點。ASP.NET是MicroSoft.NET的一部分,具有強大的Web開發(fā)功能。SVG是一種基于XML的用來描述二維矢量圖形和矢量/柵格混合圖形的標(biāo)記語言,本質(zhì)上是XML在網(wǎng)絡(luò)上表達圖形圖像的一種擴展應(yīng)用程序,SVG正好可以解決WebGIS中矢量發(fā)布的問題。利用ASP.NET強大的Web應(yīng)用開發(fā)功能與SVG矢量傳輸與顯示功能,可構(gòu)建功能較為強大、性能較為優(yōu)化、數(shù)據(jù)較為安全和開發(fā)成本較為低廉的WebGIS。2基于鹽藻/gml的webgis檢測算法實現(xiàn)本文提出了一種基于ASP.NET與SVG技術(shù)的WebGIS平臺解決方案,在本文研究的基于ASP.NET與SVG的WebGIS實現(xiàn)中,ASP.NET應(yīng)用程序運行在WebGIS服務(wù)器上,當(dāng)用戶在客戶端瀏覽器指定地址之后,HTTP請求被傳送到WebGIS服務(wù)器,WebGIS服務(wù)器通過對請求分析,對于集成結(jié)構(gòu)的數(shù)據(jù)庫,調(diào)用GIS應(yīng)用服務(wù)器上的WebService,并通過封裝在其中的ADO.NET對GIS數(shù)據(jù)庫服務(wù)器上的空間數(shù)據(jù)庫進行數(shù)據(jù)抽取,并將其轉(zhuǎn)換為XML/GML格式;對于XML/GML數(shù)據(jù)庫,則直接通過封裝了XML查詢的WebService進行數(shù)據(jù)抽取;接著對以上兩種情況下得到的XML/GML進行XSLT轉(zhuǎn)換,將XML/GML格式的數(shù)據(jù)轉(zhuǎn)換為SVG格式,并經(jīng)過GZIP壓縮將其壓縮為SVGZ格式,最后將SVGZ嵌入.aspx頁面,編譯執(zhí)行該.aspx頁面,將執(zhí)行結(jié)果生成動態(tài)的Web頁面發(fā)送到客戶端瀏覽器;瀏覽器中的SVG插件對.aspx頁面中的SVGZ進行顯示。從而便實現(xiàn)了地理空間數(shù)據(jù)的矢量傳輸和顯示。對所有的空間數(shù)據(jù)都保存在空間數(shù)據(jù)庫或XML/GML數(shù)據(jù)庫中,通過分析客戶端的請求而實時地從數(shù)據(jù)庫中調(diào)取相應(yīng)范圍的數(shù)據(jù)生成包含SVGZ的.aspx頁面發(fā)送到客戶端瀏覽器顯示。由于根據(jù)用戶的請求動態(tài)下載數(shù)據(jù)生成包含SVGZ的.aspx頁面?zhèn)鹘o客戶端并緩存訪問過的頁面和數(shù)據(jù),所以這種方案不僅安全可靠也具有較高的效率,也最終實現(xiàn)了地理數(shù)據(jù)的矢量傳輸和顯示,從而實現(xiàn)了性能較為優(yōu)化的WebGIS。而當(dāng)用戶進行放大、縮小、漫游等操作時,若沒有請求新的數(shù)據(jù),則直接對傳到客戶端的.aspx頁面中的SVGZ進行操作,從而進一步提高系統(tǒng)的效率。采用B/S三層結(jié)構(gòu)和中等客戶端模型,一種基于ASP.NET與SVG實現(xiàn)的WebGIS解決方案設(shè)計如圖1所示:對于Oracle9i可直接將Shape,Tab以及柵格文件上載到OracleSpatial而成為空間數(shù)據(jù)庫,對SQLServer2000可通過安裝Mapinfo的SpatialWareforSQLServer使其具有空間數(shù)據(jù)存儲能力,然后再利用相應(yīng)的軟件上載。通過上載,實現(xiàn)了多源數(shù)據(jù)的集成,也實現(xiàn)了空間數(shù)據(jù)與屬性數(shù)據(jù)按集成結(jié)構(gòu)的存儲與管理,省去了空間數(shù)據(jù)庫和屬性數(shù)據(jù)庫之間的繁瑣連接,提高了GIS數(shù)據(jù)的存取速度。由于當(dāng)今的數(shù)據(jù)庫軟件大多提供了對XML的很好地支持,所以也可以直接建立XML/GML的數(shù)據(jù)庫,實現(xiàn)對地理空間數(shù)據(jù)和屬性數(shù)據(jù)的描述和存取。3基于和svm的webgis實現(xiàn)3.1odp.表面活性劑ODP.NET是Oracle公司提供的在.NET平臺上的數(shù)據(jù)訪問組件,使用ODP.NET,在.NET環(huán)境下可以直接轉(zhuǎn)換Oracle數(shù)據(jù)為XML字符串。1webearth環(huán)境文件的生成通過MicrosoftVisualStudio.NET新建項目對話框中選擇“Visualc項目”中的“ASP.NETWeb服務(wù)”定義WebService文件,如文件名為:gisservice.asmx,部分代碼如下:2web引用功能在IIS/Web服務(wù)器上通過MicrosoftVisualStudio.NET創(chuàng)建需要調(diào)用WebService的“ASP.NETWeb應(yīng)用程序”,并通過從“項目”菜單中選擇“添加Web引用”命令,在彈出的對話框中既可以直接輸入該服務(wù)的URL網(wǎng)址,如:http://localhost/giswebservice/gisservice.asmx,也可以使用搜索功能,搜索本地或者網(wǎng)絡(luò)上其他的Web服務(wù),在“Web引用文本框內(nèi)”輸入要添加的Web引用名,如為:Myservice,然后單擊“添加引用”按鈕即可。然后在ASP.NETWeb應(yīng)用程序中創(chuàng)建代理對象并調(diào)用:3.2由于xslt數(shù)據(jù)轉(zhuǎn)換數(shù)據(jù)svm,svm壓縮1基于xllt的轉(zhuǎn)換盡管GML適用于地理信息交換和共享,但它并不是為圖像顯示而設(shè)計的,所以要將地理時空信息發(fā)布出去,就要將GML文檔轉(zhuǎn)換為合適的圖像格式文件,如SVG等。實現(xiàn)這種轉(zhuǎn)換通常有兩種辦法,一種是編寫轉(zhuǎn)換程序,另一種則是利用XSLT建立模板規(guī)則實現(xiàn)轉(zhuǎn)換,本文采用后者實現(xiàn)這種轉(zhuǎn)換。目前主要的XSLT處理器有Saxon,Apache的Xalan和在Internet中直接運行的Microsot的MSXML4.0,本文的程序針對的是MSXML4.0,最終由其將XML/GML按指定的XSLT樣式表單轉(zhuǎn)換成SVG。XSLT處理器把XSLT樣式表單的規(guī)則應(yīng)用到XML/GML文檔從而輸出XHTML,SVG或者其他XML格式的文檔,如圖2所示:對特定的一個XML/GML源數(shù)據(jù)文件而言,應(yīng)用不同的XSLT樣式表單將會生成不同的XML輸出。2生成s-g-z-p數(shù)據(jù)的文件GML文檔向SVG文檔轉(zhuǎn)換,是通過將編寫好的樣式表(XSL)文件和GML源文件,傳遞給XSLT處理器進行執(zhí)行實現(xiàn)的。用戶查詢是變化的,相應(yīng)的GML文檔也是變化的,則GML文檔向SVG文檔轉(zhuǎn)化時所用的樣式表也是變化的,所以樣式表應(yīng)該動態(tài)生成。當(dāng)GML文檔向SVG轉(zhuǎn)化時,先對GML文檔進行遍歷,將出現(xiàn)的元數(shù)據(jù)所對應(yīng)的樣式表集成,生成一個新的樣式表,根據(jù)這個樣式表將GML文檔轉(zhuǎn)化為SVG圖像,再將SVG圖像返回給用戶。數(shù)據(jù)壓縮是為了提高數(shù)據(jù)傳輸?shù)乃俣?加快用戶瀏覽速度。因為SVG文檔是采用文本格式的,具有很高的壓縮率。SVG支持GZIP數(shù)據(jù)壓縮標(biāo)準(zhǔn),SVGZ是SVG壓縮后的文件格式,而且壓縮后的圖形可直接在Web上顯示。.Net用XML命名空間的類來解析XML文件,在VisualStudio2003中可用如下代碼實現(xiàn),同時可利用Ziplib實現(xiàn)壓縮,Ziplib(SharpZipLib)是一個Zip,Gzip,Tar和BZip2類庫,它完全由C編寫,用于.NET平臺。Ziplib是Develop的一個嵌入產(chǎn)品,Develop是一個免費的IDE,可在網(wǎng)上免費下載。.NET下實現(xiàn)轉(zhuǎn)換與壓縮的具體代碼如下:創(chuàng)建樣式表,最主要的問題就是如何定義模板。根據(jù)源文檔的結(jié)構(gòu),在樣式表中尋找匹配的模板片斷,進行相應(yīng)的轉(zhuǎn)換。解壓是在客戶端進行,效果和用戶的瀏覽器有一定的關(guān)系,經(jīng)過測試,在IE5,6和netscape4.5,6都運行的很好。3.3數(shù)據(jù)庫服務(wù)器界面功能當(dāng)首次訪問頁面時,IIS/Web服務(wù)器將把該頁面(包括其中的SVGZ)緩存到硬盤或內(nèi)存中的一個特殊位置。當(dāng)下次訪問該頁面時,IIS/Web服務(wù)器器僅從硬盤或內(nèi)存中載入它,而無需再次從數(shù)據(jù)庫服務(wù)器請求數(shù)據(jù)并經(jīng)GIS應(yīng)用服務(wù)器處理后生成該頁面,從而實現(xiàn)快速存取數(shù)據(jù)。由于ASP.NET在IIS/Web服務(wù)器上高速緩存頻繁使用的ASP.NET頁面部分,這樣在每次訪問頁面時,它們就不需要編譯了。但是,用戶可能不希望某些項目被永久地高速緩存,而希望頁面內(nèi)容定期刷新,這可通過相應(yīng)的設(shè)置實現(xiàn)每隔一個時間段刷新一次。在高速緩存階段收到的任何請求都會得到相同的頁面,但在高速緩存時間過后,舊的高速緩存就會釋放,用更新的內(nèi)容生成一個新頁面,然后頁面內(nèi)容會按要求的時間高速緩存,循環(huán)重新開始。3.4地圖顯示及管理SVG內(nèi)置了對JavaScript的支持,而SVG通過DOM解析映像成內(nèi)存中的樹型結(jié)構(gòu),所以客戶層的實現(xiàn)主要通過JavaScript對DOM的操作實現(xiàn)。1)基于ASP.NET與SVG的WebGIS可視化的實現(xiàn)要實現(xiàn)基于SVG的WebGIS的可視化,需要將SVG圖形對象嵌入到網(wǎng)頁頁.aspx中,例如:其中embed標(biāo)簽指定為一個嵌入的對象,width,height分別指定該對象的寬度、高度,type指定類型為image/svg-xml,src指定為svg數(shù)據(jù)文件的URL地址,指定這樣的標(biāo)簽并在瀏覽器中打開,瀏覽器便會調(diào)用SVGViewer在指定區(qū)域進行顯示。此處,src指定的是一個svg文件,在本系統(tǒng)中,要求根據(jù)不同的請求獲取不同的數(shù)據(jù),則可將其改為動態(tài)的URL,由服務(wù)端動態(tài)生成。要實現(xiàn)SVG圖形的顯示,還必須在客戶端安裝SVG插件,可免費下載安裝Adobe公司的SVGViewer。2)地圖的交互及控制DOM是文檔對象模型(DocumentObjectModel)的簡稱,是表示文檔的訪問以及操作構(gòu)成文檔的各種元素的應(yīng)用程序接口。由于SVG提供了大量的豐富的DOM接口,所以可采用JavaScript開發(fā)WebGIS客戶端的各種基本功能,這樣客戶端就可以通過一系列的腳本來實現(xiàn)對地圖的操作,從而把一些需要與服務(wù)器交互的操作在客戶端完成,減輕服務(wù)器和網(wǎng)絡(luò)負載,加快瀏覽速度。WebGIS系統(tǒng)最基本的功能是地圖的顯示和控制,包括地圖縮放、平移、圖層控制等。為了達到這些目的,有多種方法可以實現(xiàn)。一種方法是,通過改變SVG文檔的viewBox屬性,來改變視圖區(qū)域的可顯示范圍。另一種方法是把所有的地圖數(shù)據(jù)組織在一個地圖分組元素(元素<g>)下,然后通過設(shè)置該分組元素的transform屬性來實現(xiàn)對整個地圖的縮放和平移。3)圖層管理的實現(xiàn)圖層是GIS的重要的圖形分類概念,幾乎所有的矢量繪圖軟件都支持層的概念,通過對地物分類歸納,這樣在顯示和查詢的時候都是提高效率的重要方法。SVG沒有層的概念,但由于它基于XML的DOM文檔管理結(jié)構(gòu),故很方便實現(xiàn)層次管理,因為它有“組”的概念(group),標(biāo)記為<g></g>。所以利用<g>對象就可以將其下面的所有圖形管理起來。而且SVG中的組比層更好管理,因為組可以嵌套,使得圖形管理模式更豐富。在分層的時候,可以把同一層的節(jié)點放在同一個<g></g>內(nèi),也可放在不同的<g></g>內(nèi),但是要用同一個ID標(biāo)識。節(jié)點中的childNodes屬性可以獲取所有子節(jié)點的集合,getElementsByTagName()方法可以獲取某種類型對象的列表。通過采用組對象來實現(xiàn)圖層管理功能,不同圖層的對象包含在不同的組中。4)圖標(biāo)管理的實現(xiàn)圖標(biāo)表示的是信息點的信息,在GIS系統(tǒng)中廣泛使用圖標(biāo)來標(biāo)志信息點,其特點是圖標(biāo)引用相同的預(yù)定義的圖形組。增加新的圖標(biāo)只是在不同的位置增加一個引用而已。在不增加實際的繪圖數(shù)據(jù)的情況下減少了數(shù)據(jù)量;同時,如果要修改某類信息的顯示圖標(biāo),只要修改預(yù)定義的圖標(biāo)即可,方便了管理。在WebGIS系統(tǒng)中可定義很多類型的圖標(biāo)。如果要增加圖標(biāo),只要添加新的引用(use)對象即可。這些對象可以有自己的屬性,表示不同的信息點,但其顯示的形狀是預(yù)定義的,如果修改了預(yù)定義的形狀,這些圖標(biāo)的顯示結(jié)果同樣改變。4webgis的主要特點本文提出了一種基于ASP.NET與SVG技術(shù)的WebGIS平臺解決方案,通過對該方案具體實現(xiàn)的研究,可得出如下結(jié)論:1)把ASP.NET,WebService技術(shù)和SVG技術(shù)結(jié)合起來引入WebGIS的設(shè)計與實現(xiàn),可達到ASP.NET強大的Web開發(fā)功能和利用SVG實現(xiàn)地圖矢量傳輸與顯示的很好結(jié)合,同時,通過對已定義的WebService進行發(fā)布和注冊還可以實現(xiàn)本系統(tǒng)GIS數(shù)據(jù)庫服務(wù)器上的數(shù)據(jù)資源的共享,也可以通過搜索Internet上已發(fā)布和注冊的相關(guān)WebService,通過對其引用而實現(xiàn)異地數(shù)據(jù)的集成。2)把ASP.NET的多級緩存機制與安全性實現(xiàn)機制引入WebGIS的設(shè)計與實現(xiàn),可通過客戶端緩存和服務(wù)器端緩存提高WebGIS整體運行效率的同時,保證開發(fā)的WebGIS能在Internet上安全運行。3)地理數(shù)據(jù)按集成結(jié)構(gòu)或以XML/GML方式保存在數(shù)據(jù)庫服務(wù)器端的相應(yīng)數(shù)據(jù)庫中。服務(wù)器收到客戶端的請求后,通過對其分析,對于集成結(jié)構(gòu)的數(shù)據(jù)庫,可利用已定義的WebService實時地從數(shù)據(jù)庫中抽取相應(yīng)范圍的數(shù)據(jù)并將其轉(zhuǎn)換成XML/GML數(shù)據(jù);對于XML/GML數(shù)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論