引言
WebGIS在網(wǎng)絡和地理信息系統(tǒng)技術(shù)的整合中應運而生。它改變舊方式中空間數(shù)據(jù)的采集、傳輸、共享和發(fā)展,成為地理信息系統(tǒng)一個重要的發(fā)展方向,通過超鏈接,WebGIS可使用戶在Internet上操作GIS地圖和數(shù)據(jù),但是WebGIS的地圖數(shù)據(jù)量較大,在Web上執(zhí)行GIS常遇到刷新慢,頁面緩沖時間較長的情況。
針對WebGIS低響應速度和性能差的缺點,在開發(fā)WebGIS平臺采用動態(tài)刷新技術(shù),運用Ajax引擎,它可以用來縮短客戶端和服務器端之間的響應時間,以減少傳輸網(wǎng)絡中的數(shù)據(jù)量,并增加豐富的多媒體效果。實行字符同步處理瀏覽器的WebGIS元素,異步消息發(fā)送到服務器,接收數(shù)據(jù)只更新部分內(nèi)容,不需要更新整個頁面。這個新機制在很大程度上提高了WebGIS 的響應效率,增強了用戶體驗。目前,Ajax技術(shù)以其優(yōu)越性,在大數(shù)據(jù)量的Web 處理中,已成為主流技術(shù)的數(shù)據(jù)傳輸技術(shù)。
1 相關(guān)技術(shù)分析
1.1 Ajax技術(shù)
Ajax 核心是在JavaScript 中調(diào)用一個JavaScript 類XMLHttpRequest,這個類可以與Web服務器使用HTTP協(xié)議進行交互,程序不通過瀏覽器發(fā)出請求,而是用這個特殊的JavaScript對象發(fā)送請求,再由這個JavaScript對象接收響應,并將響應結(jié)果用DOM 編程方式掛到原來的網(wǎng)頁上。
傳統(tǒng)Web 界面請求由瀏覽器發(fā)出請求,服務器端進行處理,然后將響應發(fā)送至客戶端。而基于Ajax 的Web 請求響應采用XMLHttpRequest 發(fā)送,服務器的處理結(jié)果也由該對象來接收,在相同時間內(nèi),數(shù)據(jù)請求更頻繁,數(shù)據(jù)交互次數(shù)更多。這正是Ajax 技術(shù)的優(yōu)勢所在。
Ajax并不是一種創(chuàng)新的技術(shù),而是多種常用技術(shù)以新的方式的組合,運用Ajax技術(shù)做Web開發(fā),最關(guān)鍵的是必須掌握Ajax數(shù)據(jù)交互流程及XMLHttpRequest類的屬性及方法。
1.2 WebGIS系統(tǒng)
WebGIS系統(tǒng)結(jié)構(gòu)主要有表示層、業(yè)務邏輯層、數(shù)據(jù)層三層。
數(shù)據(jù)層主要是存儲地圖數(shù)據(jù)的空間信息數(shù)據(jù)庫,以及存儲擴展信息的其他數(shù)據(jù)庫,比如地名描述信息等;業(yè)務邏輯層主要有ArcMS和網(wǎng)頁JSP等,地圖服務軟件及負責頁面顯示的JSP頁面;表示層由WebServer,瀏覽器及ArcGIS Desktop構(gòu)成,這層主要是將地圖圖像直觀的顯示給用戶,提供用戶操作的接口。
WebGIS的開發(fā),主要掌握三部分內(nèi)容。掌握氣泡顯示,路線描紅,地圖無縫拼接的JavaScript代碼。氣泡顯示是地圖具體位置的直觀顯示,路線描紅是對地圖路線的直觀標識,地圖無縫拼接將不同塊的地圖數(shù)據(jù)連接起來,這都是地圖界面最基本的功能,也是最重要的一部分。坐標轉(zhuǎn)換,截圖命名及特殊點坐標轉(zhuǎn)換,這是地圖的擴展功能,用于對地圖的高級操作,比如根據(jù)地圖坐標點計算空間距離等。網(wǎng)站程序部分,讀取數(shù)據(jù)庫,動態(tài)生成XML 文件和JavaScript 腳本,這是WebGIS 開發(fā)必不可少的內(nèi)容,也是所有Web開發(fā)的公用模塊。
2 Ajax 對WebGIS 系統(tǒng)性能提高的方法簡述
分布式系統(tǒng)提高了WebGIS的響應效率,這是從數(shù)據(jù)資源的訪問方式方面做的優(yōu)化研究,而運用Ajax 技術(shù)則是對Web端與服務器端數(shù)據(jù)交互的優(yōu)化。兩者的共同點是提高了WebGIS 的響應效率,增強了用戶體驗。
2.1 基于Ajax的WebGIS數(shù)據(jù)交互
Ajax 的交互作用由Ajax Engine 來完成,它是瀏覽器端與服務器端的數(shù)據(jù)交互橋梁,瀏覽器端的數(shù)據(jù)請求由Ajax Engine 發(fā)給服務器端,服務器端的數(shù)據(jù)響應也由它發(fā)給瀏覽器端[4],具體數(shù)據(jù)交互圖如圖1所示。
在用戶端,主要由Ajax Engine、界面邏輯、數(shù)據(jù)緩存、用戶界面、DOM五部分構(gòu)成。其中,用戶邏輯,界面邏輯,用戶界面均只與Ajax Engine通信,而不直接與服務器通信。服務器端主要有Web 頁面、應用邏輯及數(shù)據(jù)庫,三者實現(xiàn)服務器的正常工作,與用戶端數(shù)據(jù)通信直接交付Ajax Engine來完成。
2.2 Ajax在WebGIS中的方法實現(xiàn)
用Ajax 創(chuàng)建WebGIS 工程,概況來講,只需要五步:新建html或者JSP頁面,作為WebGIS除地圖數(shù)據(jù)圖像外的頁面數(shù)據(jù)顯示;在頁面中寫出創(chuàng)建XMLHttpRe-quest 對象的方法;寫出事件響應方法,用上面創(chuàng)建的對象發(fā)出異步的Ajax 請求;創(chuàng)建Servlet 響應請求;在頁面完成回調(diào)方法,處理服務器端響應,改變頁面效果。
其中,創(chuàng)建XMLHttpRequest 對象的方法是比較重要的一步,是客戶端和服務器異步通信的關(guān)鍵,XML-HttpRequest基本方法主要有:
abort:取消當前的HTTP 請求。
getResponseHeader:獲得響應內(nèi)容的HTTP頭信息。
open:初始化一個HTTP 請求,指定請求方法(Get/Post)、URL、身份驗證信息等。
send:發(fā)送一個HTTP 請求到服務器。
setRequestHeader:設置HTTP請求的頭信息。
地圖數(shù)據(jù)的傳輸原則是第一次登陸傳輸少量地圖數(shù)據(jù),但需要實現(xiàn)全景顯示,然后根據(jù)用戶的基本操作,運用Ajax 技術(shù)動態(tài)地傳輸余下地圖數(shù)據(jù),同時也要卸載不必要的地圖數(shù)據(jù)。地圖數(shù)據(jù)每次以塊傳送,頁面地圖數(shù)據(jù)的加載以圖形塊的方式逐次顯示。具體流程圖如圖2所示。
Web 頁面全景顯示,是給用戶一張地圖的直觀顯示,但并不代表包含所有的地圖數(shù)據(jù),根據(jù)用戶在瀏覽器上點擊的地圖位置,決定加載哪一部分地圖數(shù)據(jù)量,同時也要考慮用戶端緩存的大小,當緩存不夠時,需釋放與當前請求的地圖塊不相關(guān)的其他地圖數(shù)據(jù)。對某一塊圖像而言,用戶的基本操作主要有放大、縮小和平移,其中只有放大不需要Ajax發(fā)送請求加載地圖數(shù)據(jù),其他兩種操作均需要。
2.3 應用舉例
Ajax技術(shù)提高了WebGIS系統(tǒng)性能,用戶可以更流暢地通過WebGIS 查看地圖信息,基于這種方式的應用,逐漸被人們所接受,尤其是在智能交通及物流行業(yè),伴隨著智能物流系統(tǒng)的提出,越來越多的車輛裝載了含有WebGIS 的車載系統(tǒng),用于查看地圖路線,同時給服務器發(fā)送位置信息,服務器隨時可以跟蹤到當前車輛的具體位置,整個物流行業(yè)提供朝著智能便捷化發(fā)展。
智能交通行業(yè),應用得更加廣泛,高德地圖、四維圖新、凱立德導航等眾多知名企業(yè)均開發(fā)了WebGIS導航系統(tǒng),將導航系統(tǒng)置于車載終端,具有廣闊的市場前景,有些汽車制造商已經(jīng)將WebGIS 導航系統(tǒng)汽車生產(chǎn)作為標準配置,方便用戶智能導航,WebGIS在智能交通行業(yè)的市場份額逐步提高。
3 結(jié)語
本文在分析了Ajax 技術(shù)的優(yōu)點和WebGIS 系統(tǒng)特點之后,提出了一種基于AJAX 的WebGIS 數(shù)據(jù)交互實現(xiàn)方法,實驗證明,該方法在很大程度上提高了WebGIS數(shù)據(jù)請求響應效率,增強了用戶體驗感。
-
Web
+關(guān)注
關(guān)注
2文章
1264瀏覽量
69525 -
服務器
+關(guān)注
關(guān)注
12文章
9222瀏覽量
85606 -
瀏覽器
+關(guān)注
關(guān)注
1文章
1030瀏覽量
35400
發(fā)布評論請先 登錄
相關(guān)推薦
評論