国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

開源地理信息網(wǎng)絡(luò)服務(wù)中異步數(shù)據(jù)處理性能優(yōu)化研究與實(shí)現(xiàn)

2016-12-15 01:50:57陳月娟
測(cè)繪通報(bào) 2016年9期
關(guān)鍵詞:網(wǎng)絡(luò)服務(wù)空間數(shù)據(jù)開源

陳月娟,張 錦

(1. 太原理工大學(xué)礦業(yè)工程學(xué)院,山西 太原 030024; 2. 內(nèi)蒙古工業(yè)大學(xué)礦業(yè)學(xué)院,內(nèi)蒙古 呼和浩特 010051)

開源地理信息網(wǎng)絡(luò)服務(wù)中異步數(shù)據(jù)處理性能優(yōu)化研究與實(shí)現(xiàn)

陳月娟1,2,張 錦1

(1. 太原理工大學(xué)礦業(yè)工程學(xué)院,山西 太原 030024; 2. 內(nèi)蒙古工業(yè)大學(xué)礦業(yè)學(xué)院,內(nèi)蒙古 呼和浩特 010051)

針對(duì)地理信息網(wǎng)絡(luò)服務(wù)數(shù)據(jù)交互中存在的問題,利用AJAX網(wǎng)頁(yè)開發(fā)技術(shù)異步處理的特點(diǎn),采用輕量級(jí)JavaScript庫(kù)jQuery,提高開源地理信息服務(wù)GeoServer和地理信息數(shù)據(jù)訪問JavaScript庫(kù)OpenLayers處理數(shù)據(jù)過程中的傳輸效率;通過某市路網(wǎng)更新、地名查詢等服務(wù)系統(tǒng),進(jìn)一步驗(yàn)證AJAX技術(shù)在開源地理信息網(wǎng)絡(luò)服務(wù)中的有效性,可改善地理信息服務(wù)中用戶的交互,提高應(yīng)用性能,加快訪問速度。

開源地理信息網(wǎng)絡(luò)服務(wù);GeoServer;OpenLayers;AJAX;jQuery

地理信息網(wǎng)絡(luò)服務(wù)[1]是通過互聯(lián)網(wǎng)對(duì)地理空間數(shù)據(jù)進(jìn)行發(fā)布和應(yīng)用,以實(shí)現(xiàn)空間數(shù)據(jù)的共享和互操作,主要是進(jìn)行空間數(shù)據(jù)發(fā)布、空間查詢與檢索、空間模型服務(wù)等。

開源地理信息網(wǎng)絡(luò)服務(wù)采用GeoServer發(fā)布地圖數(shù)據(jù)服務(wù),由于GeoServer是純Java的,因此更適合于復(fù)雜的環(huán)境要求,而且基于本身的開源特性,開發(fā)人員可以基于GeoServer靈活實(shí)現(xiàn)特定的目標(biāo)要求,而這些都是商業(yè)GIS組件所缺乏的。因此本文采用開源軟件GeoServer和OpenLayers實(shí)現(xiàn)基于天地圖的某市路網(wǎng)發(fā)布與查詢、更新等功能。采用此方式在服務(wù)傳輸處理過程中,尤其是在大數(shù)據(jù)環(huán)境下,服務(wù)器端的大量地理信息圖形圖像數(shù)據(jù)處理傳輸?shù)娇蛻舳诉^程中會(huì)造成傳輸過程中的數(shù)據(jù)延遲甚至網(wǎng)絡(luò)癱瘓等嚴(yán)重問題;引入AJAX異步處理技術(shù),可以有效地解決上述問題。同時(shí),針對(duì)查詢處理過程中的技術(shù)特點(diǎn),采用jQuery輕量級(jí)JavaScript庫(kù)實(shí)現(xiàn)。

一、關(guān)鍵技術(shù)分析

1. 開源地理信息網(wǎng)絡(luò)服務(wù)—GeoServer、OpenLayers

GeoServer是一個(gè)功能齊全[2],遵循OGC[3-5]開放標(biāo)準(zhǔn)的開源WFS和WMS服務(wù)器,利用GeoServer可以把空間矢量數(shù)據(jù)通過OGC WMS規(guī)范作為maps/images來發(fā)布,也可以直接將實(shí)際的數(shù)據(jù)利用OGC的WFS規(guī)范實(shí)現(xiàn),通過OGC的WFS-T,GeoServer同時(shí)也提供了修改、刪除和新增等更新功能。GeoServer支持的數(shù)據(jù)格式非常廣泛,包括商業(yè)、開源的數(shù)據(jù)庫(kù),如PostGIS、Shapefile、ArcSDE、Oracle、VPF、MySQL、MapInfo等;同時(shí)支持上百種投影;能夠?qū)⒕W(wǎng)絡(luò)地圖輸出為JPEG、GIF、PNG、SVG、KML等格式,能夠運(yùn)行在任何基于J2EE/Servlet的容器之上。本文采用開源服務(wù)器Apache Tomcat作為GeoServer容器。

OpenLayers是一個(gè)專門為Web GIS客戶端開發(fā)提供的JavaScript類庫(kù)包,用于實(shí)現(xiàn)標(biāo)準(zhǔn)格式發(fā)布的地圖數(shù)據(jù)訪問,通過標(biāo)準(zhǔn)規(guī)范(如OGC WMS及WFS規(guī)范)進(jìn)行訪問GeoServer發(fā)布的空間數(shù)據(jù)并進(jìn)行交互。OpenLayers采用面向?qū)ο蠓绞介_發(fā),通過使用Prototype.js和Rico中的一些組件組成OpenLayers.js,使其作為客戶端不再受瀏覽器的限制,可擴(kuò)展性更強(qiáng)[4]。

在OpenLayers的基礎(chǔ)上,以天地圖服務(wù)和GeoServer地圖服務(wù)為例構(gòu)建地理信息網(wǎng)絡(luò)服務(wù),采用AJAX技術(shù),應(yīng)用jQuery實(shí)現(xiàn)具體的道路網(wǎng)及地名查詢定位的瀏覽平臺(tái)。

2. jQuery與AJAX

AJAX(asynchronous JavaScript and XML)[5]是基于XML的異步JavaScript技術(shù),可以在不刷新整個(gè)瀏覽器頁(yè)面的前提下實(shí)現(xiàn)局部的頁(yè)面刷新功能,主要解決用戶頁(yè)面交互過程較多,頻繁讀取數(shù)據(jù)造成的頁(yè)面壓力問題;通過AJAX引擎,使得用戶操作與服務(wù)器響應(yīng)異步化,無(wú)需所有的用戶請(qǐng)求都提交給服務(wù)器,有些AJAX可以自行處理的不必提交給服務(wù)器,有更新數(shù)據(jù)時(shí)才需向服務(wù)器提交請(qǐng)求。這樣,給用戶帶來的感覺是所有請(qǐng)求都能很快地得到響應(yīng),沒有頁(yè)面重新加載,如白屏等待。

AJAX主要通過XmlHttpRequest對(duì)象進(jìn)行以上操作,使頁(yè)面中的腳本可以在不刷新頁(yè)面的前提下直接與服務(wù)器通信。

在網(wǎng)絡(luò)服務(wù)程序開發(fā)尤其是地理信息網(wǎng)絡(luò)服務(wù)開發(fā)與應(yīng)用過程中,實(shí)現(xiàn)高效、快捷、交互性能良好的開發(fā)方式是業(yè)界努力的方向。jQuery[13]是輕量級(jí)的JavaScript庫(kù),兼容各種瀏覽器,有助于簡(jiǎn)化JavaScript及AJAX編程[6]。引入jQuery后,簡(jiǎn)化了開發(fā)人員的工作,并且腳本代碼與頁(yè)面代碼分離,便于維護(hù)。

二、AJAX與jQuery在開源地理信息網(wǎng)絡(luò)服務(wù)的應(yīng)用技術(shù)框架及實(shí)現(xiàn)

1. 地理信息網(wǎng)絡(luò)服務(wù)技術(shù)框架

根據(jù)上文的描述,繪制出整個(gè)應(yīng)用實(shí)例的技術(shù)框架圖。本文采用MVC(model view controller,模型-視圖-控制器)方式設(shè)計(jì)并實(shí)現(xiàn)該應(yīng)用實(shí)例。

圖1為本實(shí)例所采用的基本技術(shù)架構(gòu)體系。

圖1 地理信息網(wǎng)絡(luò)服務(wù)技術(shù)框架

2. 原型系統(tǒng)的開發(fā)與實(shí)現(xiàn)

本系統(tǒng)主要是通過在線調(diào)用天地圖與筆者發(fā)布服務(wù)結(jié)合,完成整個(gè)地理信息服務(wù)過程。

(1) 矢量數(shù)據(jù)入庫(kù)

使用PostgreSQL數(shù)據(jù)庫(kù)中的支持空間數(shù)據(jù)的PostGIS來儲(chǔ)存空間數(shù)據(jù),將矢量數(shù)據(jù)中的點(diǎn)、線、面進(jìn)行存儲(chǔ)。

(2) 矢量數(shù)據(jù)發(fā)布服務(wù)

由于GeoServer提供了滿足本例要求的OGC WMS、WFS服務(wù)等標(biāo)準(zhǔn)服務(wù)體系,因此采用開源服務(wù)器GeoServer[14]讀取PostGIS中的矢量數(shù)據(jù)進(jìn)行服務(wù)發(fā)布;發(fā)布的過程中需要注意的是包括圖層樣式的建立與選擇、坐標(biāo)系的選擇,這里采用WGS-84坐標(biāo)系統(tǒng)。

原始的PostGIS數(shù)據(jù)庫(kù)中的矢量數(shù)據(jù)不存在樣式的使用,為使用戶更加清晰形象地得到地理信息服務(wù),需要進(jìn)行STYLE的設(shè)計(jì),即矢量數(shù)據(jù)的樣式。

(3) OpenLayers訪問地圖服務(wù)

由上節(jié)可知,GeoServer支持OGC的WMS、WFS,實(shí)現(xiàn)空間數(shù)據(jù)的可視化和查詢編輯;OpenLayers經(jīng)由服務(wù)層的WMS進(jìn)行調(diào)用GeoServer發(fā)布的矢量數(shù)據(jù)服務(wù)并進(jìn)行顯示;由WFS[15]提供的要素服務(wù)(WFS包括5個(gè)操作:GetCapabilites、DescribeFeatureType、GetFeature、Transaction、LockFeature)中的基本操作GetFeature獲取要素實(shí)例,完成查詢矢量數(shù)據(jù)要素,完成本例中查詢及定位路網(wǎng)的操作。

(4) 查 詢

根據(jù)第二節(jié)的說明,采用AJAX快速動(dòng)態(tài)網(wǎng)頁(yè)技術(shù)實(shí)現(xiàn)數(shù)據(jù)的異步傳輸完成服務(wù)層與應(yīng)用層的交互訪問,為進(jìn)一步加快訪問速度,使用jQuery實(shí)現(xiàn)查詢地名及路網(wǎng)操作。AJAX的具體實(shí)現(xiàn)步驟如下:

1) Web表單獲取數(shù)據(jù);

var inputing=document.getElementById("datetime");

2) 建立XmlHttpRequest;

var xmlhttp;

if (window.XMLHttpRequest)

{∥code for IE7+, Firefox, Chrome, Opera, Safari

xmlhttp=new XMLHttpRequest();

}

else {∥code for IE6, IE5

xmlhttp=new ActiveXobject("Microsoft.XMLHTTP");}

3) 根據(jù)XmlHttpRequest中的open方法來確定發(fā)送的請(qǐng)求方式和URL,以及是否同步執(zhí)行;

XmlHttp.open("POST",TAIYUANURL,true);

4) 設(shè)置響應(yīng)接受后運(yùn)行操作函數(shù);

var TAIYUANURL="http:∥localhost:8080......soutputFormat=application/ison";

∥具體處理過程

});

5) 用XmlHttpRequest中的send方法來發(fā)送請(qǐng)求。

xmlhttp.open("POST",TAIYUANURL,ture);

xmlhttp.send();

步驟4)為AJAX引擎響應(yīng)后的具體查詢處理過程,需要注意的是,WFS操作GetFeature返回的數(shù)據(jù)格式采用GeoJSON而不是XML格式。

在WebGIS中,傳統(tǒng)的頁(yè)面查詢方式需通過OGC的WMS或WFS返回XML文檔,但是XML因?yàn)樽陨砀袷降南拗疲枰M(jìn)行復(fù)雜的DOM解析,并且也帶來一定的信息冗余;JSON[10]為Web開發(fā)人員提供了一種輕量級(jí)的數(shù)據(jù)交換格式,GeoJSON[11]是基于此的一種用來對(duì)地理要素進(jìn)行編碼的新的數(shù)據(jù)格式,由key/value組成,適合于地理信息網(wǎng)絡(luò)服務(wù)中的頁(yè)面?zhèn)鬏敗8甙姹镜腉eoServer已經(jīng)可以支持WFS返回格式為GeoJSON格式,標(biāo)準(zhǔn)的GeoJSON為key/value形式,本例返回的GeoJSON格式如圖2所示。

圖2 WFS要素服務(wù)返回GeoJSON數(shù)據(jù)

從圖2中可以看出,數(shù)據(jù)形式簡(jiǎn)單,減少了解析過程的復(fù)雜度,使用jQuery使代碼更加簡(jiǎn)潔。

① 查 詢

查詢格式如下:

s.getJSON(TAIYUANURL,function(data){

var found=false;

var markers=new OpenLayers.Layer.Markers("Markers");

map.addLayer(markers);

var sx;

var sy;

∥具體處理代碼

}

② 定 位

定位功能是完成用戶點(diǎn)擊發(fā)布的矢量數(shù)據(jù),該矢量數(shù)據(jù)的詳細(xì)信息進(jìn)行頁(yè)面顯示,此功能主要涉及調(diào)用WMS服務(wù),格式如下:

S(′#selectedDatadiv′).show();

S(′#selecdtedDatadiv′).parent(S("#map_e"));

document.getElementById(′nodelist′).innerHTML=response.responseText;

document.getElementById(′selectedlayers′).innerHTML="";

document.getElementById(′layersdata′).innerHTML=′′;

∥具體代碼

(5) 在線調(diào)用天地圖

所有以上發(fā)布的矢量數(shù)據(jù)全部基于天地圖,本文采用Java Servlet結(jié)合OpenLayers API調(diào)用天地圖服務(wù)。

Java Servlet是用Java編寫的服務(wù)端程序[8]。Java Servlet具有動(dòng)態(tài)擴(kuò)展服務(wù)的能力,并采用請(qǐng)求—響應(yīng)模式提供Web服務(wù)。實(shí)例主要通過Java Servlet實(shí)現(xiàn)后臺(tái)調(diào)用天地圖服務(wù),即首先在服務(wù)器端建立一個(gè)框架,通過客戶端OpenLayers提出瓦片調(diào)用請(qǐng)求,此時(shí),服務(wù)器將請(qǐng)求的信息傳遞給Java Servlet并等待Servlet作出響應(yīng),將結(jié)果返回到客戶端,最終在OpenLayers客戶端進(jìn)行顯示,完成調(diào)用天地圖的工作。

3. 系統(tǒng)的實(shí)現(xiàn)

本文主要實(shí)現(xiàn)了基于天地圖的某市路網(wǎng)、地名信息查詢及定位功能。圖3為本實(shí)例系統(tǒng)實(shí)現(xiàn)界面。

圖3 基于天地圖的某市路網(wǎng)、地名系統(tǒng)查詢定位系統(tǒng)

進(jìn)行地名搜索時(shí),圖4所示為頁(yè)面響應(yīng)處理過程時(shí)間序列圖,下面的條狀時(shí)間分別為處理過程中關(guān)鍵步驟的時(shí)間軸,從圖中可以看出整個(gè)過程的頁(yè)面響應(yīng)時(shí)間<3500 ms,證明采用AJAX技術(shù)處理異步數(shù)據(jù)能大大提高運(yùn)行效率,進(jìn)而優(yōu)化了整個(gè)系統(tǒng)的性能。

圖4 頁(yè)面查詢響應(yīng)時(shí)間

三、結(jié)束語(yǔ)

開源地理信息網(wǎng)絡(luò)服務(wù)采用GeoServer發(fā)布地圖數(shù)據(jù)服務(wù),可以方便定制自己的服務(wù)需求,但是由于地理信息數(shù)據(jù)量大,在查詢等處理過程中存在瓶頸問題。本文采用Ajax技術(shù)應(yīng)用于開源地理信息網(wǎng)絡(luò)服務(wù),通過jQuery應(yīng)用于OpenLayers實(shí)現(xiàn)了空間數(shù)據(jù)的瀏覽、查詢及分析:市區(qū)路網(wǎng)、地名的查詢,使用戶即使請(qǐng)求大數(shù)據(jù)量的空間信息服務(wù)數(shù)據(jù)時(shí),也沒有頁(yè)面過度延遲的體會(huì),可以較流暢地與頁(yè)面進(jìn)行交互,表明采用本方案有效地提高了地理信息網(wǎng)路服務(wù)傳輸效率。

[1] 李德仁,眭海剛,單杰.論地理國(guó)情監(jiān)測(cè)的技術(shù)支撐[J].武漢大學(xué)學(xué)報(bào)(信息科學(xué)版),2012,37(5):505-513.

[2] 趙艷,唐誠(chéng),張華,等.基于GeoServer海底數(shù)據(jù)RIA WebGIS系統(tǒng)設(shè)計(jì)與建立[J]. 環(huán)境科學(xué)與技術(shù),2014,37(120):507-510.

[3] SHELESTOV A Y,KRAVCHENKO A N,SKAKUN S V,et al.Geospatial Information System for Agricultural Monitoring [J].Cybernetics and Systems Analysis, 2013,49(1):123-132.

[4] 王麗,謝剛生,肖慧琴.基于開源技術(shù)構(gòu)建房產(chǎn) GIS 圖形管理系統(tǒng)[J].測(cè)繪通報(bào),2009(12):57-59.

[5] 苗立志,胥婕,周亞,等. 應(yīng)用描述詞匯約簡(jiǎn)的OGC地理信息服務(wù)演繹推理[J].測(cè)繪學(xué)報(bào),2015,44(9):1029-1035.

[6] 江源通,蘇會(huì)衛(wèi),陸琳.基于OpenLayers的應(yīng)急物流決策支持平臺(tái)構(gòu)建及應(yīng)用[J].網(wǎng)絡(luò)與信息化,2015,2(84):275-277.

[7] 游麗貞,郭宇春,李純喜.Ajax引擎的原理和應(yīng)用[J].微計(jì)算機(jī)信息,2006,22(23):205- 207.

[8] 鄧立苗,楊信廷.農(nóng)產(chǎn)品安全生產(chǎn)管理系統(tǒng)新框架——Ajax+jQuery[J].農(nóng)機(jī)化研究,2011(6):125-128.

[9] 張大鵬,張錦,郭敏泰,等.開源WebGIS 軟件應(yīng)用開發(fā)技術(shù)和方法研究[J].測(cè)繪科學(xué),2011,36(5):193-196.

[10] 張曉芳,李國(guó)徽,蘭小玲,等.Java Servlet模式的WEBGIS性能優(yōu)化研究[J].計(jì)算機(jī)應(yīng)用研究,2011,28(11):4222-4224.

[11] 孫明,王碩.基于JSON的Ajax數(shù)據(jù)通信快速算法 [J].計(jì)算機(jī)應(yīng)用與軟件,2015,32(1): 263-266.

[12] 鄔群勇,唐曙光,黃君毅.基于GeoJSON的突發(fā)性大氣污染模擬災(zāi)情移動(dòng)可視化方法[J].自然災(zāi)害學(xué)報(bào),2015,24(2):166-171.

[13] 李志秀,張軍,陳光,等.JQuery Ajax異步處理JSON數(shù)據(jù)在項(xiàng)目管理系統(tǒng)中的應(yīng)用[J].云南大學(xué)學(xué)報(bào),2011,33(S2):247-250.

[14] 張令奎,張小靜,高凱.開源地理信息網(wǎng)絡(luò)服務(wù)平臺(tái)構(gòu)建[J].測(cè)繪與空間地理信息,2015,38(1):181-184.

[15] 張建博,劉紀(jì)平,劉恒飛,等.利用本體的WFS要素語(yǔ)義檢索研究[J].測(cè)繪與空間地理信息,2015,37(5):520-524.

TheOptimizationandRealizationofProcessingofAsynchronousDataintheOpen-sourceGEO-InformationWebService

CHEN Yuejuan,ZHANG Jin

陳月娟,張錦.開源地理信息網(wǎng)絡(luò)服務(wù)中異步數(shù)據(jù)處理性能優(yōu)化研究與實(shí)現(xiàn)[J].測(cè)繪通報(bào),2016(9):35-37.

10.13474/j.cnki.11-2246.2016.0287.

P208

B

0494-0911(2016)09-0035-03

2015-11-27;

2016-03-02

國(guó)家自然科學(xué)基金(41371373);國(guó)家重點(diǎn)研發(fā)計(jì)劃項(xiàng)目(2016YFB0502601)

陳月娟(1983—),女,博士生,講師,主要研究方向?yàn)榈乩硇畔⒕W(wǎng)絡(luò)服務(wù)。E-mail:hellochenyj@163.com

張 錦

猜你喜歡
網(wǎng)絡(luò)服務(wù)空間數(shù)據(jù)開源
《壓縮機(jī)技術(shù)》網(wǎng)絡(luò)服務(wù)
《壓縮機(jī)技術(shù)》網(wǎng)絡(luò)服務(wù)
網(wǎng)絡(luò)服務(wù)合同的法律問題研究
法制博覽(2021年18期)2021-11-24 20:45:30
五毛錢能買多少頭牛
大家說:開源、人工智能及創(chuàng)新
開源中國(guó)開源世界高峰論壇圓桌會(huì)議縱論開源與互聯(lián)網(wǎng)+創(chuàng)新2.0
元數(shù)據(jù)驅(qū)動(dòng)的多中心空間數(shù)據(jù)同步方法研究
開源計(jì)算機(jī)輔助翻譯工具研究
基于文件系統(tǒng)的分布式海量空間數(shù)據(jù)高效存儲(chǔ)與組織研究
云計(jì)算趨勢(shì)下的藍(lán)汛內(nèi)容感知網(wǎng)絡(luò)服務(wù)
东阳市| 苗栗县| 西充县| 获嘉县| 蚌埠市| 家居| 九寨沟县| 永新县| 德惠市| 托克逊县| 营山县| 沭阳县| 广安市| 延庆县| 淮南市| 资兴市| 塔城市| 耿马| 山东| 秦安县| 巴马| 平遥县| 达拉特旗| 兴安盟| 霍州市| 台中市| 且末县| 康马县| 建宁县| 东乡族自治县| 溧水县| 斗六市| 江陵县| 景宁| 镇赉县| 荥经县| 新绛县| 桂平市| 绿春县| 甘谷县| 静海县|