本發(fā)明涉及空間數(shù)據(jù)動態(tài)發(fā)布技術(shù)領(lǐng)域,特別涉及一種基于Web的空間數(shù)據(jù)專題圖的動態(tài)定制方法。
背景技術(shù):
GIS處理的空間數(shù)據(jù)具有多源、異構(gòu)性。隨著大數(shù)據(jù)的發(fā)展,GIS所要處理的地理空間數(shù)據(jù),還具有海量、復(fù)雜、覆蓋范圍廣等特征,地理空間數(shù)據(jù)的這些特性為數(shù)據(jù)綜合利用和地圖網(wǎng)絡(luò)發(fā)布帶來巨大挑戰(zhàn)。
基于web的GIS處理的數(shù)據(jù)一般存儲在集群或者存儲系統(tǒng),而瀏覽地圖一般在客戶端進行,基于局域網(wǎng)或者廣域網(wǎng)的網(wǎng)絡(luò)地圖是目前顯示服務(wù)端數(shù)據(jù)的主要形式。現(xiàn)階段地圖發(fā)布存在的主要問題有:
(1)數(shù)據(jù)發(fā)布方式不夠智能和開放:目前在線地圖服務(wù)的工作模式都是在服務(wù)端指定好地圖的顯示風(fēng)格,單純地通過網(wǎng)絡(luò)將預(yù)先定制好的地圖發(fā)布出去而已,無法滿足由不具有專業(yè)背景使用者自行定義地圖風(fēng)格,也無法瀏覽用戶任意指定的空間數(shù)據(jù),實現(xiàn)網(wǎng)絡(luò)專題地圖的動態(tài)發(fā)布。
(2)空間數(shù)據(jù)在線瀏覽數(shù)據(jù)處理時間較長,用戶體驗不佳:空間數(shù)據(jù)的復(fù)雜性導(dǎo)致了空間數(shù)據(jù)網(wǎng)絡(luò)發(fā)布存在性能瓶頸,隨著空間數(shù)據(jù)量的增加與空間數(shù)據(jù)類型的增多,這種性能瓶頸更加凸顯出來,空間數(shù)據(jù)可視化流程分為空間數(shù)據(jù)檢索、空間數(shù)據(jù)獲取、空間數(shù)據(jù)繪制生成圖像,這三個步驟均比較耗時,特別對于一些開源地圖服務(wù)器,對每次地圖請求都根據(jù)BOX和相關(guān)的參數(shù)進行重采樣,生成一幅柵格圖像或者矢量圖形并返回給用戶。每次用戶的數(shù)據(jù)請求如果都要生成一次圖片,勢必會影響響應(yīng)的速度。由于整個可視化流程時間較長,導(dǎo)致客戶端用戶交互體驗不佳,且基于OGC協(xié)議發(fā)布的地圖一般都是預(yù)制的,降低了地圖發(fā)布的靈活性。
隨著空間數(shù)據(jù)量的不斷積累以及空間數(shù)據(jù)結(jié)構(gòu)越來越復(fù)雜,傳統(tǒng)的空間數(shù)據(jù)發(fā)布模式已經(jīng)難以滿足實際的應(yīng)用需求,并對多源空間數(shù)據(jù)的動態(tài)發(fā)布策略提出了新的要求。面對空間數(shù)據(jù)發(fā)布模式存在的問題,人們希望基于OGC協(xié)議的網(wǎng)絡(luò)地圖發(fā)布具有普適、動態(tài)、開放性。如何在可視化性能等方面滿足多源空間數(shù)據(jù)的動態(tài)發(fā)布的要求是一個需要迫切解決的問題,有必要提供一種基于Web的空間數(shù)據(jù)專題圖動態(tài)定制方法。
技術(shù)實現(xiàn)要素:
針對相關(guān)技術(shù)中的上述技術(shù)問題,本發(fā)明提出一種基于Web的空間數(shù)據(jù)專題圖動態(tài)定制方法,用以解決多源空間數(shù)據(jù)發(fā)布方式不夠智能和開放、在線瀏覽數(shù)據(jù)處理時間較長且地圖發(fā)布缺乏靈活性的問題。
為實現(xiàn)上述技術(shù)目的,本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
一種基于Web的空間數(shù)據(jù)專題圖動態(tài)定制方法,包括以下步驟:
S1、地圖描述文件動態(tài)生成:從空間數(shù)據(jù)中解析地圖描述文件所需對象,按照用戶指定數(shù)據(jù)生成地圖描述文件;
S2、專題地圖按需定制:通過服務(wù)端定制在線修改地圖描述文件,由地圖服務(wù)器發(fā)布新的地圖;
S3、動靜態(tài)緩存:采用緩存和瓦片預(yù)生成技術(shù),提前將空間數(shù)據(jù)繪制生成圖像文件,按照某種組織形式存儲到文件系統(tǒng)或數(shù)據(jù)庫中;
S4、空間數(shù)據(jù)動態(tài)發(fā)布:對用戶任意指定的空間數(shù)據(jù)進行動態(tài)發(fā)布。
進一步的,所述步驟S1進一步包括:
S1.1、獲取用戶指定空間數(shù)據(jù),從空間數(shù)據(jù)中解析地圖描述文件所需對象;
S1.2、獲取空間數(shù)據(jù)的投影信息,將投影信息轉(zhuǎn)換為EPSGCode,構(gòu)建PROJECTION對象;
S1.3、獲取空間范圍,構(gòu)建范圍對象,根據(jù)空間數(shù)據(jù)路徑構(gòu)建涂層對象;
S1.4、解析對象,并生成WMS協(xié)議的底涂描述文件或生成WFS協(xié)議的底涂描述文件。
進一步的,所述步驟S1.2中,將投影信息通過WKT或Proj4方式轉(zhuǎn)換為EPSGCode。
進一步的,采用Proj4字符串轉(zhuǎn)換為EPSGCode包括以下步驟:
S1.2.1、將proj4字符串拆分為+標(biāo)簽=值的形式,形成子串?dāng)?shù)組;
S1.2.2、逐行讀取epsg文件,分別用子串去匹配每一行;
S1.2.3、根據(jù)定義的關(guān)鍵標(biāo)簽,判斷子串是否與該行匹配;
S1.2.4、若該行的內(nèi)容與子串?dāng)?shù)組完全匹配,則返回該行的epsgcode;
S1.2.5、若不完全匹配,則繼續(xù)循環(huán),看是否有更為匹配的行。
進一步的,所述步驟S2進一步包括:
S2.1、客戶端選定已有空間數(shù)據(jù);
S2.2、客戶端從地圖服務(wù)器獲取空間數(shù)據(jù)屬性信息;
S2.3、客戶端定制地圖風(fēng)格,構(gòu)建風(fēng)格對象;
S2.4、調(diào)度管理器根據(jù)風(fēng)格對象重新生成新專題地圖;
S2.5、地圖服務(wù)器生成新專題地圖;
S2.6、客戶端重新從地圖服務(wù)器獲取地圖,繪制顯示。
進一步的,所述步驟S2.1中,客戶端通過WFS協(xié)議接口獲取已有空間數(shù)據(jù)。
進一步的,所述步驟S3進一步包括:
S3.1、用戶由瀏覽器發(fā)起請求后,Web服務(wù)器首先獲取指令進而轉(zhuǎn)發(fā)給地圖緩存器中間件;
S3.2、地圖緩存器根據(jù)請求中的縮放比例在緩存目錄下查找是否存在地圖瓦片;
S3.3、若地圖緩存器中存在地圖瓦片,則將地圖瓦片進行瓦片拼接和地圖渲染后返回給Web服務(wù)器;
S3.4、若地圖緩存器中不存在地圖瓦片,則將請求轉(zhuǎn)發(fā)地圖發(fā)布WMS服務(wù)器進行交互獲取地圖圖像;
S3.5、最后由瀏覽器將圖像呈現(xiàn)給用戶。
進一步的,步驟S3.1中,所述地圖緩存器對請求的數(shù)據(jù)進行分塊處理,并以瓦片形式保存于指定緩存目錄下,產(chǎn)生瓦片式 WebGIS 效果。
進一步的,所述步驟S3.3中,返回的地圖數(shù)據(jù)要經(jīng)過地圖緩存器補充緩存后再轉(zhuǎn)發(fā)給Web服務(wù)器。
進一步的,所述步驟S4進一步包括:
S4.1、用戶通過客戶端軟件選擇服務(wù)端數(shù)據(jù),定制自己的工作空間;
S4.2、客戶端根據(jù)用戶選擇數(shù)據(jù),調(diào)用Web Service接口,在服務(wù)端生成地圖描述文件;
S4.3、客戶端根據(jù)用戶選擇,生成WMS協(xié)議的URL,向地圖緩存器請求數(shù)據(jù);
S4.4、如果地圖緩存器緩存中有該數(shù)據(jù),直接返回;否則,向地圖服務(wù)器請求數(shù)據(jù);
S4.5、客戶端把請求的內(nèi)容繪制到地圖窗口。
本發(fā)明的有益效果:提出空間數(shù)據(jù)動態(tài)發(fā)布策略,實現(xiàn)了基于OGC協(xié)議的地圖按需生成、動靜態(tài)緩存等技術(shù),進一步解決了多源空間數(shù)據(jù)發(fā)布方式不夠智能、靈活、開放以及空間數(shù)據(jù)在線瀏覽時間較長、用戶體驗不佳的問題,滿足不具有專業(yè)背景使用者自行定義地圖風(fēng)格,也可以瀏覽用戶任意指定的空間數(shù)據(jù),實現(xiàn)網(wǎng)絡(luò)專題地圖的動態(tài)、按需、高效發(fā)布,在可視化層次提高空間數(shù)據(jù)的瀏覽效率。
附圖說明
為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1是根據(jù)本發(fā)明實施例所述的空間數(shù)據(jù)動態(tài)發(fā)布流程圖;
圖2是根據(jù)本發(fā)明實施例所述的地圖描述文件動態(tài)生成流程圖;
圖3是根據(jù)本發(fā)明實施例所述的空間數(shù)據(jù)專題圖按需定制流程;
圖4是根據(jù)本發(fā)明實施例所述的地圖緩存器工作流程圖。
具體實施方式
下面對本發(fā)明實施例中的技術(shù)方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
如圖1所示,一種基于Web的空間數(shù)據(jù)專題圖動態(tài)定制方法,包括以下步驟:
S1、地圖描述文件動態(tài)生成:從空間數(shù)據(jù)中解析地圖描述文件所需對象,按照用戶指定數(shù)據(jù)生成地圖描述文件;
S2、專題地圖按需定制:通過服務(wù)端定制在線修改地圖描述文件,由地圖服務(wù)器發(fā)布新的地圖;
S3、動靜態(tài)緩存:采用緩存和瓦片預(yù)生成技術(shù),提前將空間數(shù)據(jù)繪制生成圖像文件,按照某種組織形式存儲到文件系統(tǒng)或數(shù)據(jù)庫中;
S4、空間數(shù)據(jù)動態(tài)發(fā)布:對用戶任意指定的空間數(shù)據(jù)進行動態(tài)發(fā)布。
如圖2所示,步驟S1進一步包括:
S1.1、獲取用戶指定空間數(shù)據(jù),從空間數(shù)據(jù)中解析地圖描述文件所需對象;
S1.2、獲取空間數(shù)據(jù)的投影信息,將投影信息轉(zhuǎn)換為EPSGCode,構(gòu)建PROJECTION對象,將投影信息通過WKT或Proj4方式轉(zhuǎn)換為EPSGCode;
S1.3、獲取空間范圍,構(gòu)建范圍對象,根據(jù)空間數(shù)據(jù)路徑構(gòu)建涂層對象;
S1.4、解析對象,并生成WMS協(xié)議的底涂描述文件或生成WFS協(xié)議的底涂描述文件。
地圖服務(wù)器發(fā)布空間數(shù)據(jù)的基礎(chǔ)是按照用戶指定數(shù)據(jù)生成地圖描述文件。地圖描述文件中的PROJECTION對象,有兩種表達方式,一種是EPSGCode編碼,一種是proj4字符串。但客戶端中,需要用EPSGCode來標(biāo)識投影,因此,需要在地圖描述文件中用EPSGCode表示投影信息。
其中,對投影參數(shù)包括投影坐標(biāo)系和基準(zhǔn)面參數(shù)等的標(biāo)準(zhǔn)化表達通常有WKT,Proj4,EPSGcode等方式。WKT (Well-known Text) 是由OGC投影參數(shù)提供了一種標(biāo)準(zhǔn)的表達與描述方式;Proj4則是最大的開源投影庫,它用"+標(biāo)簽=值"的形式表達坐標(biāo)系統(tǒng);EPSG(European Petroleum Survey Group)代表特定的橢球體、單位、地理坐標(biāo)系或投影坐標(biāo)系等信息。本發(fā)明用模糊匹配的方法從Proj4庫中epsg文件中進行Proj4字符串到EPSGCode的轉(zhuǎn)換,epsg用ASCII方式存儲,里面的每一行都記錄了一個用proj4字符串表示的EPSGCode,epsg內(nèi)容如下所示:
具體的,Proj4字符串向EPSGCode轉(zhuǎn)換的流程為:
S1.2.1、將proj4字符串拆分為“+標(biāo)簽=值”的形式,形成子串?dāng)?shù)組;
S1.2.2、逐行讀取epsg文件,分別用子串去匹配每一行;
S1.2.3、根據(jù)定義的關(guān)鍵標(biāo)簽,判斷子串是否與該行匹配;
S1.2.4、若該行的內(nèi)容與子串?dāng)?shù)組完全匹配,則返回該行的epsgcode;
S1.2.5、若不完全匹配,則繼續(xù)循環(huán),看是否有更為匹配的行。
如圖3所示,客戶端定制專題圖,通過調(diào)度管理器在線修改地圖描述文件,由地圖服務(wù)器發(fā)布新的地圖。傳統(tǒng)的在線地圖,地圖風(fēng)格和專題圖風(fēng)格一旦設(shè)定就無法改變。但用戶需求是多樣的,不同的專題應(yīng)用需要繪制不同的專題圖。因此本發(fā)明研究了專題地圖定制策略—服務(wù)端定制,即通過在線修改地圖描述文件,通過地圖服務(wù)器發(fā)布新的地圖,步驟S2進一步包括:
S2.1、客戶端通過WFS協(xié)議接口GetCapabilities,DescribeFeatureType獲取空間數(shù)據(jù)的屬性信息,決定專題地圖繪制方式;
S2.2、客戶端構(gòu)建專題對象,通過Webserive接口更新地圖描述文件中LAYER對象的CLASS和STYLE子對象;
S2.3、客戶端重新獲取地圖對象,瀏覽新的專題圖。
本發(fā)明中生成的專題圖地圖描述文件中的風(fēng)格示意如下,表示按照面積大小來渲染地圖。
如圖4所示,為了避免地圖服務(wù)器頻繁讀取空間數(shù)據(jù),本發(fā)明釆用緩存和瓦片預(yù)生成技術(shù),即在網(wǎng)絡(luò)發(fā)布空間數(shù)據(jù)之前,提前將空間數(shù)據(jù)繪制生成圖像文件,按照某種組織形式存儲到文件系統(tǒng)或數(shù)據(jù)庫中,這種方式使得空間數(shù)據(jù)在發(fā)布之前已經(jīng)提前完成了空間數(shù)據(jù)檢索、提取和繪制,在網(wǎng)絡(luò)上發(fā)布后,客戶端請求空間數(shù)據(jù)時只需要檢索并讀取己經(jīng)生成的圖像文件即可,避免了可視化過程中的耗時問題。
地圖緩存器在于客戶端和服務(wù)器之間,它可以支持OGC的多種協(xié)議和標(biāo)準(zhǔn),對請求的數(shù)據(jù)進行分層分塊處理并以瓦片形式保存于指定目錄下,產(chǎn)生瓦片式WebGIS效果。地圖緩存器可以預(yù)緩存一些地圖的瓦片,只有當(dāng)請求的地圖不在緩存目錄時,地圖緩存器才與地圖發(fā)布軟件進行交互獲取地圖圖像,步驟S3地圖緩存器的具體流程為:
當(dāng)用戶由瀏覽器發(fā)起請求后,Web服務(wù)器首先獲取指令進而轉(zhuǎn)發(fā)給地圖緩存器中間件,地圖緩存器根據(jù)請求中的縮放比例在緩存目錄下查找是否存在地圖瓦片,如存在則直接返回給Web服務(wù)器。否則將請求轉(zhuǎn)發(fā)地圖發(fā)布服務(wù)器進行數(shù)據(jù)獲取和數(shù)據(jù)處理等工作,返回的地圖數(shù)據(jù)需經(jīng)過地圖緩存器補充緩存后再轉(zhuǎn)發(fā)給Web服務(wù)器,最終由瀏覽器將圖像呈現(xiàn)給用戶。
本發(fā)明的靜態(tài)緩存機制,就是針對已有數(shù)據(jù)中的熱點地圖利用地圖緩存器瓦片生成命令手動預(yù)生成地圖瓦片并存放于指定緩存目錄中。當(dāng)客戶端請求地圖時服務(wù)器攔截該請求,在緩存目錄下可查找到該地圖瓦片,隨即進行瓦片拼接和地圖渲染最后將結(jié)果返回給客戶端。
地圖緩存器分層分塊建立緩存,這個模塊的特點是可以配置分塊數(shù),以加快圖像渲染速度;更新一定時間范圍內(nèi)的舊瓦片;支持對多種源數(shù)據(jù)進行分塊。
本發(fā)明的動態(tài)緩存機制,即由地圖緩存器本身完成,對用戶每次請求的圖片存放到瓦片目錄。當(dāng)?shù)诙握埱髸r,直接返回瓦片。
步驟S4中,空間數(shù)據(jù)動態(tài)發(fā)布策略在步驟S1、步驟S2和S3的基礎(chǔ)上,實現(xiàn)空間數(shù)據(jù)動態(tài)發(fā)布,即對于用戶任意指定的空間數(shù)據(jù)進行動態(tài)發(fā)布。其主要流程為:
S4.1、用戶通過客戶端軟件選擇服務(wù)端數(shù)據(jù),定制自己的工作空間;
S4.2、客戶端根據(jù)用戶選擇數(shù)據(jù),調(diào)用Web Service接口,在服務(wù)端生成地圖描述文件;
S4.3、客戶端根據(jù)用戶選擇,生成WMS協(xié)議的URL,向地圖緩存器請求數(shù)據(jù);
S4.4、如果地圖緩存器緩存中有該數(shù)據(jù),直接返回;否則,向地圖服務(wù)器請求數(shù)據(jù);
S4.5、客戶端把請求的內(nèi)容繪制到地圖窗口。
在地圖發(fā)布前期,客戶端調(diào)用Web Service接口生成地圖描述文件,然后由客戶端和地圖緩存器、地圖服務(wù)器直接交互完成;基于Web的空間數(shù)據(jù)專題圖動態(tài)定制方法實現(xiàn)了基于OGC協(xié)議的地圖按需生成、動靜態(tài)緩存等技術(shù),在可視化層次實現(xiàn)了空間數(shù)據(jù)的動態(tài)發(fā)布。
綜上所述,本發(fā)明針對空間數(shù)據(jù)網(wǎng)絡(luò)發(fā)布方式不夠智能、開放,空間數(shù)據(jù)在線瀏覽數(shù)據(jù)處理時間較長,用戶體驗不佳等問題,在分析空間數(shù)據(jù)發(fā)布模式與存在問題的基礎(chǔ)上,以地圖服務(wù)器為主,結(jié)合GIS平臺中的調(diào)度管理器,利用地圖描述文件動態(tài)生成技術(shù)、基于地圖緩存器的動靜態(tài)緩存技術(shù)、專題圖按需定制策略等相關(guān)關(guān)鍵技術(shù),研究地圖描述文件的動態(tài)生成機制,使得基于OGC協(xié)議的網(wǎng)絡(luò)地圖發(fā)布具有普適、動態(tài)、開放性。對熱點地圖,實現(xiàn)空間數(shù)據(jù)的靜態(tài)與動態(tài)瓦片劃分技術(shù),服務(wù)端緩存技術(shù),從而提升服務(wù)端的可視化性能,滿足不具有專業(yè)背景使用者自行定義地圖風(fēng)格,也可以瀏覽用戶任意指定的空間數(shù)據(jù),實現(xiàn)網(wǎng)絡(luò)專題地圖的動態(tài)、按需、高效發(fā)布,在可視化層次提高空間數(shù)據(jù)的瀏覽效率和空間數(shù)據(jù)的動態(tài)發(fā)布。
以上所述僅為本發(fā)明的較佳實施例而已,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應(yīng)包含在本發(fā)明的保護范圍之內(nèi)。