《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 业界动态 > 基于Ajax的WebGIS开发和应用研究

基于Ajax的WebGIS开发和应用研究

2008-12-08
作者:马维峰1,2, 王晓蕊1, 薛重

??? 摘? 要: 介紹了基于ArcIMS、結合服務器端動態緩存技術" title="服務器端動態緩存技術">服務器端動態緩存技術,開發Ajax風格的WebGIS系統的基本原理、系統結構" title="系統結構">系統結構、關鍵技術和應用實例。?

??? 關鍵詞: WebGIS; Ajax; 地圖切片; 服務器動態緩存; ArcIMS?

?

??? 目前基于瀏覽器應用程序的開發技術中,Ajax(Asynchronous JavaScript and XML)無疑是最新的技術,Ajax是基于Web Applications的瀏覽器的一種重要的開發模型。它使用了幾種技術,這幾種技術整合在一起并且相互合同工作,以創建功能強大的新應用。組成Ajax模型的有XML、JavaScript、HTTP和XHTML,這些技術都已為人們所熟悉并廣泛應用,Google Map正是使用了這項技術。在Google Maps[1]推出之前,網絡地圖應用傳統的WebGIS技術,通過動態生成地圖圖片或者使用Java Applet、SVG來發布地圖[2],而Google Maps采用Ajax技術和地圖切片(Tile)的網絡地圖模式得到了廣泛認同,目前絕大多數網絡地圖服務都采用了類似此技術的方案[3]。通過Ajax技術和地圖切片可以有效地減輕網絡地圖服務器負荷,提高客戶端" title="客戶端">客戶端用戶體驗。因此,在WebGIS開發中應用和集成Ajax技術具有重要的實用價值和現實意義。本文介紹的是基于傳統WebGIS系統ArcIMS,結合服務器端動態緩存技術,開發類似Google Map風格的WebGIS應用系統的基本原理、關鍵技術和應用實例。?

1 系統原理與結構?

1.1 Ajax與WebGIS技術?

??? 基于Ajax的網絡地圖系統由二部分組成:(1)服務器端。通過地圖預渲染技術即通過對地圖分級、分塊渲染,建立柵格金字塔地圖數據,通常稱為地圖切片技術;(2)客戶端。當地圖窗口發生移動、縮放時,通過JavaScript應用Ajax技術控制瀏覽器在后臺進程下載當前地圖分辨率和范圍需要的切片,并在下載完成后通過后臺進程填充于相應位置,而不打斷用戶操作。由于該技術一方面充分利用了瀏覽器(如IE)的多線程下載功能;另一方面下載過的圖片在系統設置的時間范圍內無需再次訪問服務器下載,有效利用了客戶端緩存,因此大大加快了客戶端數據下載和運行效率,降低了服務器負擔。對于一些動態內容,例如點對象(POI)、線對象(道路),通常使用客戶端腳本技術(VML或者SVG)在瀏覽器端以矢量的方式繪制[4]。?

??? 與其他WebGIS系統不同,要實現以上的功能,瀏覽器客戶端相對復雜,需要應用JavaScript代碼在瀏覽器以腳本方式來實現地圖瀏覽器,也可以使用基于Flash或者Java Applet的實現方案,其基本原理類似。隨著網絡地圖市場的升溫,目前出現了幾種基于地圖切片和Ajax技術的網絡地圖JavaScript類庫,比較著名的有MapEasy[5]、OpenLayer、kaMap等,應用這些類庫,可以降低技術門檻,加快該類系統的開發。在服務器端,由于地圖數據是預先分級、分塊渲染的柵格金字塔數據,因此,可以通過任何Web服務器來提供服務。?

1.2 系統結構?

??? 本系統以ArcIMS和MapEasy類庫為基礎構建,系統架構示意圖如圖1所示。ArcIMS是ESRI公司的WebGIS發布系統,可用于在Internet和Intranet上發布GIS數據。ArcIMS由Application Server Connectors、Application Serve和Spatial Server三部分組成。其中,Application Server Connectors主要用于連接Web Server和Application Server;Application Server用于維護Spatial Server的狀態及其與Web服務器的交互;Spatial Server是核心的地圖渲染器,根據Application Server的請求渲染地圖。MapEasy是由國內開發者開發的、基于Ajax技術的網絡地圖JavaScript開源" title="開源">開源類庫,可以用來在瀏覽器端構建類似Google Map風格的網絡地圖;可以應用服務器端的地圖切片數據,在客戶端瀏覽器創建網絡地圖,并使用JavaScript增加標注信息(點信息);使用Apache開源協議[5]允許作為開源或者商業軟件的代碼修改、再發布,也就是說,使用者在需要的時候可以修改代碼以滿足要求并作為開源或商業產品的發布或銷售。?

?

?

??? 如圖 1所示,系統在客戶端使用MapEasy為核心構建,在服務器端通過動態緩存服務來返回緩存中的地圖切片數據,或者調用ArcIMS渲染空間數據為地圖切片。而在服務器端,MapEasy和一般的網絡地圖或WebGIS不同,通過類似lazy load機制,使用ArcIMS渲染地圖切片數據,當相應縮放比例和位置的地圖切片首次請求時才調用ArcIMS進行渲染,渲染結果以文件緩存形式存儲于服務器,客戶端如果再次請求同一塊地圖切片時,則可直接返回緩存中的地圖切片數據。由于地圖切片是動態緩存的,而不是類似大多數網絡地圖的預渲染機制,因此可以通過控制緩存來控制地圖數據動態更新和發布。例如系統地圖數據更新后,可以根據更新范圍,刪除緩存中的相應數據,客戶端再次請求該地圖時,得到的就是更新過的地圖數據。?

1.3 數據組織與服務器和客戶端交互?

??? 在瀏覽器客戶端,應用MapEasy類庫添加地圖的JavaScript代碼如下:?

??? function IMSMapType( ) {?

??? ??? MapType.apply(this);?

??? ??? this.getSrc = function(level, row, column) {?

??? ? ????? return 'http://localhost/ims/?d=test&z='+level+'&x='+column+'&y='+row?

??????? }?

??? }?

??? MapModel.mapTypes = new Array(new IMSMapType());?

??? MapModel.maxZoomLevel=10?

??? 以上代碼最關鍵之處是第4行的語句,該語句調用服務器端緩存服務,返回地圖切片數據,其中有4個參數:表示緩存服務的數據集d,表示當前的縮放級數z,表示切片的行列x、y。MapEasy兼容的數據切片方案采用四叉樹切分和哈希格網索引算法[6],即第一級為1幅圖片,第二級分為4幅圖片,第三級則劃分為16幅圖片,如圖 2所示。對于每個切片,根據其在切片中的行列和級數,就可以反算相應的經緯度范圍;反之,通過經緯度也可以計算某個分辨率下切片的行列數,例如,根據切片行列索引計算地理坐標的計算公式為:?

??? 切片XMin=Mapwidth/(2^(z-1))*x+MapXMin?

??? 切片YMin=Mapwidth/(2^(z-1))*(2^(z-1)-y-1)+MapYMin ?

??? 切片XMax=切片XMin+MapWidth/(2^(z-1))?? ?

??? 切片YMax=切片YMin+MapWidth/(2^(z-1)) ? ?

式中,x、y代表切片的行列索引;z代表縮放級數,最小(第1級)為1。?

?

?

1.4 系統流程?

??? 服務器動態緩存服務地圖切片渲染的基本流程如圖 3所示。首先根據圖片的位置參數和數據集,構建圖片文件名和路徑名,判斷該文件是否在緩存中存在,如果存在,則返回,其程序的執行流程為:1、2、3、7;如果圖片在緩存中不存在,則調用ArcIMS渲染并保存圖片,其程序的執行流程為:1、2、4、5、6、7。所以,每個縮放比例的圖片在ArcIMS中只渲染一遍。?

?

?

2 系統開發" title="系統開發">系統開發與應用實例?

??? 在中國東部地質與地球化學數據庫系統中,使用了基于服務器動態緩存和Ajax技術的WebGIS技術,該系統基于Microsoft .net 2.0平臺,開發語言為C#,服務器運行環境為:Microsoft Windows Server 2003、IIS、ArcIMS、SQL Server,客戶端可以為任意的Web瀏覽器。通過使用服務器動態緩存和Ajax技術,在普通PC機服務器上,即可支持較大并發用戶訪問,與單純使用ArcIMS技術進行WebGIS開發相比,大大提高了服務器運行效率,降低了服務器負荷。圖 4為系統的運行界面,其中左圖為查詢界面,右圖為查詢結果,結果數據的空間位置可以通過標注的形式顯示在地圖上。?

?

?

??? 本文介紹了基于傳統WebGIS系統ArcIMS、結合服務器端動態緩存技術,開發Google Map風格的WebGIS系統的基本原理、技術路線和關鍵技術。該技術應用于中國東部地質與地球化學數據庫系統開發,取得了良好的效果。基于服務器動態緩存技術,在WebGIS開發中應用和集成Ajax技術和地圖切片技術具有重要的實用價值和現實意義。

參考文獻
[1] Google Map, http://maps.google.com.2006-03-10.
[2] 宋關福,鐘耳順. WebGIS——基于Internet的地理信息系統. 中國圖像圖形學報,1998,(3):251-254.
[3] Google與網絡地圖雜談. http://www.3snews.net/index.php/2899/action_viewspace_itemid_1720.html.2007-03-27.
[4] 黃穎,謝忠,鐘士彬.NET和VML及腳本技術在WebGIS系統地圖文檔顯示中的應用. 測繪科學,2006,31(4).
[5] MapEasy, http://mapeasy.sourceforge.net/.2007-01-12.
[6] 郭薇,郭菁,胡志勇.空間數據庫索引技術. 上海:上海交通大學出版社,2006.

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 国产一区二区精品在线| www日韩视频| 国产精品毛片va一区二区三区| 91久久久在线| 欧美亚洲国产成人精品| 国产精品一区在线免费观看| 日本精品一区二区三区不卡无字幕| 丰满少妇久久久| 激情视频综合网| 久久久久久综合网天天| 欧美中日韩免费视频| 色婷婷综合久久久久中文字幕1| 国产综合欧美在线看| 日韩一区二区高清视频| 国产精品激情自拍| 久久国产精品免费视频| 欧美日韩一区二区视频在线| 日韩中文字幕视频| 国产精品美女久久久久久免费| 久久精品一本久久99精品| 欧美激情第三页| 久久综合久久网| 欧美日韩一区二区在线免费观看 | 久久婷婷国产精品| 尤物av无码色av无码| 国产精品av免费观看| 久久国产精品精品国产色婷婷| 久久亚洲国产成人| 欧美最猛黑人xxxx黑人猛叫黄| 欧美婷婷久久| 精品久久蜜桃| 久久天天躁狠狠躁夜夜爽蜜月| 欧美亚洲另类久久综合| 欧美亚洲国产日本| 欧美日韩精品在线一区二区| 久久久久久久久久久久av| 激情六月丁香婷婷| 国产精品人成电影在线观看| 高清视频一区| 日韩一级片免费视频| 欧美不卡视频一区发布|