基于java的WebGIS服务器的设计
生活随笔
收集整理的這篇文章主要介紹了
基于java的WebGIS服务器的设计
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
| 1、基于java的WebGIS服務(wù)器設(shè)計(jì)方案一 |
| ??看著目前webgis日益流行,有時(shí)候我們也想自己搞一個(gè),經(jīng)過(guò)一段時(shí)間的摸索,大概搞清楚了怎么弄了 Ajax是今后webgis發(fā)展方向。我們的設(shè)計(jì)思路是這樣的:我們采用ajax作為瀏覽器端交互技術(shù),服務(wù)器端采用Servlet技術(shù)調(diào)用GIS Objects來(lái)生成客戶端請(qǐng)求的圖片。 ??大致上說(shuō)是這樣一個(gè)架構(gòu): Ajax+Servlet+GIS_Objects ??用戶通過(guò)Ajax交互操作,把參數(shù)傳遞給服務(wù)器端的Servlet,Servlet再調(diào)用GIS_Objects生成客戶想要的圖片。不管該WebGIS 服務(wù)器有多么強(qiáng)大,最終發(fā)到瀏覽器端的都是一張圖片而已。 ??Ajax技術(shù)使得瀏覽器端與服務(wù)器端交互的僅僅是數(shù)據(jù)而不是整個(gè)頁(yè)面,這樣可以大大降低網(wǎng)絡(luò)流量。并且Ajax的XMLHttpRequest對(duì)象能很方便監(jiān)測(cè)服務(wù)器端傳回來(lái)的數(shù)據(jù),對(duì)應(yīng)傳回來(lái)的數(shù)據(jù)通過(guò)XMLHttpRequest再配合Javascript代碼有選擇性地更換瀏覽器端的圖片以及部分頁(yè)面元素。 ??Servlet在我們這里是起到一個(gè)連接的作用,servlet接受到Ajax傳過(guò)來(lái)的數(shù)據(jù),并把這些數(shù)據(jù)做為GIS_Objects的參數(shù),servlet先根據(jù)這些參數(shù)生成合適的GIS Objects,然后由這些GIS Objects生成合適的一組圖片,然后把這組圖片發(fā)給瀏覽器的XMLHttpRequest,XMLHttpRequest 把這組圖片拼接起來(lái)。 ??GIS_Objects在這里說(shuō)的是一組具有GIS功能的類(lèi),當(dāng)然是支持Java的咯。 ??其中Servlet怎么與GIS ??Objects、Ajax之間協(xié)調(diào)工作,里面很有文章可做的。比如群集服務(wù)(并行處理)、地理網(wǎng)格緩存等。 |
| 2、基于java的WebGIS服務(wù)器設(shè)計(jì)方案二 |
??JSF也是一種非常棒的技術(shù),用它來(lái)做我們的WebGIS服務(wù)器也是非常理想的方案。其架構(gòu)可以大致描述為這樣的:JSF+GIS_Objects 在這里JSF充當(dāng)了兩個(gè)角色,一個(gè)是與GIS_Objects之間的交互,另外一個(gè)是瀏覽器端的展現(xiàn)。 ??一個(gè)JSF組件一般由四部分組成:Component、Renderer、Tag、listener ??當(dāng)瀏覽器向服務(wù)器端發(fā)出請(qǐng)求時(shí),在服務(wù)器端的WebContainer會(huì)把JSP轉(zhuǎn)換為一個(gè)servlet對(duì)象,在這個(gè)轉(zhuǎn)換過(guò)程如果一組JSF標(biāo)簽, 會(huì)去找TLD文件,根據(jù)TLD文件以及JSF標(biāo)簽元素傳進(jìn)來(lái)的參數(shù),會(huì)實(shí)例化一個(gè)tag對(duì)象,tag再根據(jù)faces-config.xml會(huì)生成Component對(duì)象和Renderer對(duì)象。 ??Component主要負(fù)責(zé)去調(diào)用GIS_Objects,讓它生成一系列的圖片。 ?? Renderer繪制把Component生成出來(lái)的圖片,拼接組合繪制起來(lái)。googlemap就是由一組圖塊拼接出來(lái)的地圖。 ??listener主要是監(jiān)聽(tīng)瀏覽器端所發(fā)生的事件,以便Component根據(jù)客戶的要求生成圖片。 |
| 3、兩種方案的評(píng)價(jià) |
??JSF+GIS_Objects在Requset/Response 過(guò)程中傳遞的是整個(gè)頁(yè)面,而Ajax+Servlet+GIS_Objects在這個(gè)過(guò)程中傳遞的是數(shù)據(jù)。一個(gè)是以頁(yè)面為中心,一個(gè)是以數(shù)據(jù)為中心。不言而喻,在網(wǎng)絡(luò)流量上Ajax+Servlet+GIS_Objects占有絕對(duì)的優(yōu)勢(shì)。 ??在用戶體驗(yàn)上Ajax+Servlet+GIS_Objects也具有極佳的用戶體驗(yàn)。用Ajax技術(shù)能把B/S做成C/S那種效果。 ??JSF技術(shù)發(fā)展非常成熟,有很多現(xiàn)成的JSF組件可用。 ??JSF組件封裝效果非常好,非常適合做產(chǎn)品,讓二次開(kāi)發(fā)商去開(kāi)發(fā)他們自己的應(yīng)用產(chǎn)品,而Ajax+Servlet+GIS_Objects相對(duì)來(lái)講,組件的封裝效果就沒(méi)有那么好,二次開(kāi)發(fā)商的日子就沒(méi)有那么好過(guò)。二次開(kāi)發(fā)商對(duì)webGIS服務(wù)器提供商的依賴也沒(méi)有那么大,假如二次開(kāi)發(fā)商買(mǎi)了GIS_Objects那么他們采用Ajax+servlet技術(shù)很容易開(kāi)發(fā)自己的WebGIS服務(wù)器。 |
轉(zhuǎn)載于:https://www.cnblogs.com/supersyg/articles/538855.html
總結(jié)
以上是生活随笔為你收集整理的基于java的WebGIS服务器的设计的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【转】程序员健康建议
- 下一篇: 微软官方反间谍流氓软件WindowsDe