本發(fā)明屬于地理信息領(lǐng)域,具體涉及一種在線顯示海量數(shù)據(jù)的方法及系統(tǒng)。
背景技術(shù):GIS(地理信息系統(tǒng),GeographicInformationSystem)是一門綜合性學(xué)科,結(jié)合了地理學(xué)、地圖學(xué)、遙感和計(jì)算機(jī)科學(xué),是用于輸入、存儲(chǔ)、查詢、分析和顯示地理數(shù)據(jù)的計(jì)算機(jī)系統(tǒng),已經(jīng)廣泛的應(yīng)用在不同的領(lǐng)域。而隨著互聯(lián)網(wǎng)應(yīng)用的普及,運(yùn)行于互聯(lián)網(wǎng)環(huán)境的WEBGIS成為業(yè)界的熱點(diǎn)。在傳統(tǒng)的GIS中,經(jīng)常會(huì)有涉及到大量點(diǎn)、線、面的顯示,當(dāng)顯示數(shù)據(jù)量增大時(shí),會(huì)嚴(yán)重影響系統(tǒng)的響應(yīng)時(shí)間甚至?xí)?dǎo)致系統(tǒng)的崩潰。這種情況在通過(guò)瀏覽器訪問(wèn)的WEBGIS中,表現(xiàn)的尤為突出。以顯示點(diǎn)狀數(shù)據(jù)為例,在IE瀏覽器中,每一個(gè)顯示的點(diǎn)狀數(shù)據(jù),都要消耗一定的瀏覽器資源,當(dāng)顯示的點(diǎn)狀數(shù)據(jù)過(guò)多時(shí)(例如:2000個(gè)左右),會(huì)有明顯的系統(tǒng)響應(yīng)不及時(shí)的情況,嚴(yán)重時(shí)甚至?xí)?dǎo)致瀏覽器崩潰。針對(duì)上述問(wèn)題,目前常見(jiàn)的解決方法有,限制瀏覽器每次顯示的數(shù)據(jù)量,或者采用點(diǎn)聚合,即將空間位置上相鄰的點(diǎn)位聚合成一個(gè)點(diǎn)的顯示方式。但上述方法均存在不足:限制每次顯示數(shù)據(jù)的數(shù)量將導(dǎo)致功能無(wú)法達(dá)到系統(tǒng)的預(yù)期。例如:需要地圖上顯示全市3萬(wàn)個(gè)監(jiān)控探頭的位置,通過(guò)對(duì)所有探頭空間分布的顯示,讓系統(tǒng)用戶了解監(jiān)控的重點(diǎn)區(qū)域及監(jiān)控盲區(qū),如果無(wú)法一次性在地圖上顯示所有探頭的位置,就無(wú)法實(shí)現(xiàn)該功能的建設(shè)目標(biāo)。而采用點(diǎn)聚合方式顯示點(diǎn)位,則無(wú)法顯示每個(gè)點(diǎn)位的具體位置。于現(xiàn)有技術(shù)中,申請(qǐng)?zhí)枮?01210387370.6的發(fā)明公開(kāi)了一種圖片疊加的方法和系統(tǒng),該方法包括:通過(guò)基于地圖的應(yīng)用程序接口加載第一圖片作為底圖,底圖上的每一個(gè)點(diǎn),都對(duì)應(yīng)一個(gè)地理坐標(biāo),將第二圖片以標(biāo)注的形式添加到所需要放置的底圖所對(duì)應(yīng)的地理坐標(biāo)位置。在上述方法中,當(dāng)標(biāo)注數(shù)量較多時(shí),依然會(huì)造成頁(yè)面負(fù)荷過(guò)重,而導(dǎo)致瀏覽器響應(yīng)過(guò)慢的問(wèn)題。綜上所述,需要設(shè)計(jì)一種在線顯示海量數(shù)據(jù)的方法及系統(tǒng),能夠在不影響瀏覽器正常運(yùn)行速度的前提下,顯示海量數(shù)據(jù)。
技術(shù)實(shí)現(xiàn)要素:本發(fā)明提供一種在線顯示海量數(shù)據(jù)的方法,包括以下步驟:S1、服務(wù)器創(chuàng)建底圖服務(wù)和專題圖服務(wù),客戶端調(diào)用所述底圖服務(wù)和專題圖服務(wù);S2、所述服務(wù)器的底圖服務(wù)生成底圖圖片,專題圖服務(wù)生成專題圖圖片;S3、客戶端到服務(wù)器獲取所述底圖圖片及專題圖圖片,并將所述專題圖圖片疊加到底圖圖片上,進(jìn)行顯示。優(yōu)選的,在所述步驟S1中,客戶端還向服務(wù)器發(fā)送預(yù)設(shè)的經(jīng)緯度范圍,且調(diào)用底圖服務(wù)與調(diào)用專題圖服務(wù)發(fā)送的經(jīng)緯度范圍相同。優(yōu)選的,在所述步驟S1中,客戶端通過(guò)在線地圖的API創(chuàng)建地圖對(duì)象,并在所述地圖對(duì)象中分別設(shè)置底圖對(duì)象及專題圖對(duì)象,用底圖對(duì)象調(diào)用服務(wù)器的底圖服務(wù),用專題圖對(duì)象調(diào)用服務(wù)器的專題圖服務(wù)。優(yōu)選的,在所述步驟S2中,所述專題圖圖片,是由服務(wù)器的專題圖服務(wù)根據(jù)服務(wù)器中存儲(chǔ)的業(yè)務(wù)數(shù)據(jù)生成的背景透明的圖片。優(yōu)選的,在所述步驟S3中,客戶端的底圖對(duì)象獲取底圖圖片,專題圖對(duì)象獲取專題圖圖片后,所述客戶端將底圖對(duì)象及專題圖對(duì)象傳入地圖對(duì)象,地圖對(duì)象疊加專題圖圖片及底圖圖片后輸出。優(yōu)選的,在所述步驟S3中,當(dāng)客戶端顯示的疊加圖片對(duì)應(yīng)的經(jīng)緯度變化 時(shí),所述客戶端自動(dòng)調(diào)用底圖服務(wù)和專題圖服務(wù)獲取新的底圖圖片及專題圖圖片,并疊加顯示。優(yōu)選的,所述客戶端至少調(diào)用一次專題圖服務(wù),并從服務(wù)器獲取至少一張專題圖圖片,疊加在底圖圖片上進(jìn)行顯示。本發(fā)明還提供一種在線顯示海量數(shù)據(jù)的系統(tǒng),包括客戶端及服務(wù)器,所述客戶端連接服務(wù)器,所述客戶端,用于調(diào)用服務(wù)器的底圖服務(wù)和專題圖服務(wù),并將從服務(wù)器獲取的專題圖圖片疊加到底圖圖片上,進(jìn)行顯示。所述服務(wù)器,用于創(chuàng)建底圖服務(wù)和專題圖服務(wù),并以底圖服務(wù)生成底圖圖片,專題圖服務(wù)生成專題圖圖片。根據(jù)本發(fā)明提供的在線顯示海量數(shù)據(jù)的方法及系統(tǒng),客戶端通過(guò)調(diào)用服務(wù)器相應(yīng)服務(wù),由服務(wù)器生成底圖圖片和專題圖圖片并提供給客戶端,客戶端將背景透明的專題圖圖片疊加到底圖圖片上進(jìn)行顯示。如此,大大降低了瀏覽器的資源消耗,在不影響瀏覽器響應(yīng)速度的前提下,可以在網(wǎng)頁(yè)上顯示海量的數(shù)據(jù)。附圖說(shuō)明為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。圖1是本發(fā)明較佳實(shí)施例提供的在線顯示海量數(shù)據(jù)的方法流程圖;圖2是本發(fā)明較佳實(shí)施例提供的在線顯示海量數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)示意圖。具體實(shí)施方式下文中將參考附圖并結(jié)合實(shí)施例來(lái)詳細(xì)說(shuō)明本發(fā)明。需要說(shuō)明的是,在不沖突的情況下,本申請(qǐng)中的實(shí)施例及實(shí)施例中的特征可以相互組合。圖1是本發(fā)明較佳實(shí)施例提供的在線顯示海量數(shù)據(jù)的方法流程圖。如圖1所示,本發(fā)明較佳實(shí)施例提供的在線顯示海量數(shù)據(jù)的方法包括步驟S1~S3。步驟S1:服務(wù)器創(chuàng)建底圖服務(wù)和專題圖服務(wù),客戶端調(diào)用所述底圖服務(wù)和專題圖服務(wù)。具體而言,客戶端通過(guò)在線地圖的API創(chuàng)建地圖對(duì)象,所述在線地圖的來(lái)源包括百度地圖、google地圖及Openlayers。其中,OpenLayers支持的地圖來(lái)源包括GoogleMaps、Yahoo、Map及微軟VirtualEarth,本實(shí)施例以O(shè)penlayers為例進(jìn)行說(shuō)明。客戶端創(chuàng)建地圖對(duì)象的實(shí)現(xiàn)過(guò)程例如:varmap=null;varbaseLayer,xfsLayer;map=newGIMap.Map(′map′,{mapExtent:[120.06107915344501,30.616287482841734,121.42555724717593,32.17569101853422]});客戶端創(chuàng)建地圖對(duì)象后,在所述地圖對(duì)象中分別設(shè)置底圖對(duì)象及專題圖對(duì)象,并用底圖對(duì)象調(diào)用服務(wù)器的底圖服務(wù),用專題圖對(duì)象調(diào)用服務(wù)器的專題圖服務(wù)。于此,當(dāng)客戶端調(diào)用服務(wù)器的底圖服務(wù)與專題圖時(shí),向服務(wù)器發(fā)送預(yù)設(shè)的經(jīng)緯度范圍,且調(diào)用底圖服務(wù)與調(diào)用專題圖服務(wù)發(fā)送的經(jīng)緯度范圍相同。本實(shí)施例中,以從底圖服務(wù)中調(diào)取蘇州地圖、從專題圖服務(wù)中調(diào)取蘇州消防栓分布圖為例進(jìn)行說(shuō)明。步驟S2:所述服務(wù)器的底圖服務(wù)生成底圖圖片,專題圖服務(wù)生成專題圖圖片。具體而言,底圖對(duì)象調(diào)用底圖服務(wù)后,所述底圖服務(wù)生成蘇州地圖圖片(即底圖圖片)的實(shí)現(xiàn)過(guò)程例如以下代碼所示。baseLayer=newGIMap.ArcGISCache("蘇州地圖","http://地圖服務(wù)地址/Layers20120118",{layername:′_alllayers′,displayInLayerSwitcher:false,tileOrigin:GIParameters.agsTileOrigin,isBaseLayer:true,type:′png′,transitionEffect:′resize′});專題圖對(duì)象調(diào)用專題圖服務(wù),專題圖服務(wù)生成消防栓分布圖片(即專題圖圖片)的實(shí)現(xiàn)過(guò)程例如以下代碼所示。xfsLayer=newGIMap.WMS("消防栓分布圖","http://專題地圖服務(wù)地址/services/GPS110",{layers:"XD",transparent:true,format:′image/png′});上述實(shí)現(xiàn)代碼中,transparent參數(shù)表示返回的圖片是背景透明的。于本實(shí)施例中,所述專題圖圖片,是由服務(wù)器的專題圖服務(wù)根據(jù)服務(wù)器中存儲(chǔ)的業(yè)務(wù)數(shù)據(jù)生成的背景透明的圖片。并且,客戶端可多次調(diào)用服務(wù)器的專題圖服務(wù),并從服務(wù)器獲取多張專題圖圖片,疊加在底圖圖片上進(jìn)行顯示。如此,即可同時(shí)疊加多個(gè)專題數(shù)據(jù)進(jìn)行顯示,從而增加數(shù)據(jù)容納量。步驟S3:客戶端到服務(wù)器獲取所述底圖圖片及專題圖圖片,并將所述專題圖圖片疊加到底圖圖片上,進(jìn)行顯示。具體而言,客戶端的底圖對(duì)象獲取底圖圖片,專題圖對(duì)象獲取專題圖圖片后,所述客戶端將底圖對(duì)象及專題圖對(duì)象傳入地圖對(duì)象,地圖對(duì)象疊加專題圖圖片及底圖圖片后輸出。此外,為地圖對(duì)象增加觸發(fā)條件,當(dāng)客戶端顯示的疊加圖片對(duì)應(yīng)的經(jīng)緯度變化時(shí),所述客戶端自動(dòng)調(diào)用底圖服務(wù)和專題圖服務(wù)獲取新的底圖圖片及專題圖圖片,并疊加顯示。實(shí)現(xiàn)過(guò)程如下所示。map.addEventListener(Extent.EXTENT_CHANGE,extentChange_Handler);functionextentChange_Handler(event){varextent=map.extent;baseLayer.update(extent);xfsLayer.update(extent);}其中,extent參數(shù)代表當(dāng)前的經(jīng)緯度范圍,通過(guò)該范圍分別調(diào)用底圖服務(wù)及專題圖服務(wù),更新客戶端顯示的圖片。圖2是本發(fā)明較佳實(shí)施例提供的在線顯示海量數(shù)據(jù)的系統(tǒng)結(jié)構(gòu)示意圖。如圖2所示,本發(fā)明較佳實(shí)施例提供的在線顯示海量數(shù)據(jù)的系統(tǒng)包括客戶端1及服務(wù)器2,所述客戶端1連接服務(wù)器2,所述客戶端1,用于調(diào)用服務(wù)器2的底圖服務(wù)和專題圖服務(wù),并將從服務(wù)器2獲取的專題圖圖片疊加到底圖圖片上,進(jìn)行顯示。所述服務(wù)器2,用于創(chuàng)建底圖服務(wù)和專題圖服務(wù),并以底圖服務(wù)生成底圖圖片,專題圖服務(wù)生成專題圖圖片。綜上所述,根據(jù)本發(fā)明較佳實(shí)施例提供的在線顯示海量數(shù)據(jù)的方法及系統(tǒng),客戶端通過(guò)調(diào)用服務(wù)器相應(yīng)服務(wù),由服務(wù)器生成底圖圖片和專題圖圖片并提供給客戶端,客戶端將背景透明的專題圖圖片疊加到底圖圖片上進(jìn)行顯示。如此,在消耗很少資源的情況下,清晰地顯示不同類別數(shù)據(jù)的真實(shí)位置。當(dāng)用戶縮放或移動(dòng)顯示的疊加圖片時(shí),客戶端可自動(dòng)顯示新的圖片,可使瀏覽器在最短時(shí)間內(nèi)響應(yīng),為用戶展示大量的數(shù)據(jù)。對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的實(shí)施例,而 是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。對(duì)所公開(kāi)的實(shí)施例的上述說(shuō)明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來(lái)說(shuō)將是顯而易見(jiàn)的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其它實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的實(shí)施例,而是要符合與本文所公開(kāi)的原理和新穎特點(diǎn)相一致的最寬的范圍。