本發(fā)明涉及wms(web地圖服務(wù))訪問(wèn)技術(shù)領(lǐng)域,尤其涉及一種跨網(wǎng)代理web地圖服務(wù)的方法、系統(tǒng)及代理服務(wù)器。
背景技術(shù):
在空間數(shù)據(jù)互操作領(lǐng)域,基于公共接口訪問(wèn)模式的互操作方法是一種基本的操作方法。通過(guò)國(guó)際標(biāo)準(zhǔn)化組織(如iso/tc211)或技術(shù)聯(lián)盟(如ogc)制定空間數(shù)據(jù)互操作的接口規(guī)范,gis(地理信息系統(tǒng))軟件商開發(fā)遵循這一接口規(guī)范的空間數(shù)據(jù)的讀寫函數(shù),可以實(shí)現(xiàn)異構(gòu)空間數(shù)據(jù)庫(kù)的互操作。ogc(開放地理空間信息聯(lián)盟)定義了三種地理參考信息模型:wms(web地圖服務(wù))、wfs(web要素服務(wù))、wcs(web地理覆蓋服務(wù))。
wms能夠根據(jù)用戶的請(qǐng)求返回相應(yīng)格式的地圖,比如png、gif、jpeg等柵格形式或者svg、webcgm等矢量形式。wms支持網(wǎng)絡(luò)協(xié)議http,所支持的操作是由url定義的。wms有三個(gè)重要操作,分別是getcapabilities、getmap、getfeatureinfo。其中,getcapabilities和getmap是必須要實(shí)現(xiàn)的操作,而getfeaturelnfo是可選操作。getcapabilities用于返回服務(wù)級(jí)元數(shù)據(jù),getmap用于返回一個(gè)地圖影像,getfeatureinfo用于返回顯示在地圖上的某些特殊要素的信息。另外,wms還包括其它一些操作,如describelayer、getlegendgraphic、getstyles、setsytles等等。
近年來(lái),隨著地理信息的發(fā)展,電子地圖的應(yīng)用越來(lái)越廣泛,基于ogc標(biāo)準(zhǔn)的web地圖服務(wù)也得到廣泛的應(yīng)用。在很多情況下,需要將web地圖服務(wù)從a網(wǎng)代理到b網(wǎng),從而能在b網(wǎng)訪問(wèn)a網(wǎng)中的web地圖服務(wù)。然而,現(xiàn)有技術(shù)中并沒有針對(duì)web地圖服務(wù)進(jìn)行跨網(wǎng)代理的方法或系統(tǒng)。另外,現(xiàn)有的代理服務(wù)器工具如apache、wingate等也不能實(shí)現(xiàn)跨網(wǎng)代理web地圖服務(wù)。
鑒于此,亟需一種能夠?qū)崿F(xiàn)跨網(wǎng)代理web地圖服務(wù)的方法、系統(tǒng),以滿足跨網(wǎng)代理web地圖服務(wù)的需求。另外,亟需一種能夠?qū)崿F(xiàn)跨網(wǎng)代理web地圖服務(wù)的代理服務(wù)器,以克服現(xiàn)有的代理工具不能對(duì)web地圖服務(wù)進(jìn)行跨網(wǎng)代理的缺陷。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的在于提出一種能夠?qū)崿F(xiàn)跨網(wǎng)代理wms地圖服務(wù)的方法、系統(tǒng),以滿足跨網(wǎng)代理web地圖服務(wù)的需求。另外,本發(fā)明的目的還在于提出一種代理服務(wù)器,以克服現(xiàn)有的代理服務(wù)器工具不能實(shí)現(xiàn)跨網(wǎng)代理web地圖服務(wù)的缺陷。
本發(fā)明提供了一種跨網(wǎng)代理web地圖服務(wù)的方法,所述方法包括:
s1、代理服務(wù)器將客戶端發(fā)送的getcapabilities請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,并從wms服務(wù)器端接收元數(shù)據(jù)描述文檔;
s2、代理服務(wù)器將所述元數(shù)據(jù)描述文檔包含的wms服務(wù)器端的url地址字段修改為代理服務(wù)器的第一url地址字段,并將修改后的元數(shù)據(jù)描述文檔發(fā)送至客戶端;
s3、代理服務(wù)器將客戶端發(fā)送的getmap請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,并從所述wms服務(wù)器端獲取地圖;
其中,所述getmap請(qǐng)求是客戶端根據(jù)所述修改后的元數(shù)據(jù)描述文檔計(jì)算所得。
優(yōu)選的,第一url地址字段包括:代理服務(wù)器的第一ip、代理服務(wù)器的第一端口號(hào);wms服務(wù)器端的url地址字段包括:wms服務(wù)器端的ip、wms服務(wù)器端的端口號(hào)。
優(yōu)選的,在步驟s1中,所述代理服務(wù)器將客戶端發(fā)送的getcapabilities請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,包括:
s11、代理服務(wù)器接收客戶端發(fā)送的getcapabilities請(qǐng)求;
s12、代理服務(wù)器將getcapabilities請(qǐng)求攜帶的代理服務(wù)器的第一url地址字段修改為wms服務(wù)器端的url地址字段;
s13、代理服務(wù)器將修改后的getcapabilities請(qǐng)求發(fā)送至wms服務(wù)器端。
優(yōu)選的,在步驟s3中,所述通過(guò)代理服務(wù)器將所述getmap請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,包括:
s31、代理服務(wù)器接收客戶端發(fā)送的getmap請(qǐng)求;
s32、代理服務(wù)器將getmap請(qǐng)求攜帶的代理服務(wù)器的第一url地址字段修改為wms服務(wù)器端的url地址字段;
s33、代理服務(wù)器將修改后的getmap請(qǐng)求發(fā)送至wms服務(wù)器端。
優(yōu)選的,所述方法還包括以下步驟:代理服務(wù)器對(duì)所述客戶端發(fā)送的連接請(qǐng)求進(jìn)行監(jiān)聽;所述連接請(qǐng)求包括:getcapabilities請(qǐng)求、getmap請(qǐng)求。
本發(fā)明還提供了一種跨網(wǎng)代理web地圖服務(wù)的系統(tǒng),所述系統(tǒng)包括:
客戶端,用于向代理服務(wù)器發(fā)送getcapabilities請(qǐng)求,還用于根據(jù)接收的修改后的元數(shù)據(jù)描述文檔計(jì)算待發(fā)送的getmap請(qǐng)求,并將所述getmap請(qǐng)求發(fā)送至代理服務(wù)器;
代理服務(wù)器,用于將getcapabilities請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,還用于從wms服務(wù)器端接收元數(shù)據(jù)描述文檔,并將所述元數(shù)據(jù)描述文檔包含的wms服務(wù)器端的url地址字段修改為代理服務(wù)器的第一url地址字段,并將修改后的元數(shù)據(jù)描述文檔發(fā)送至客戶端,還用于將所述getmap請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端;
wms服務(wù)器端,用于在接收到getcapabilities請(qǐng)求后向代理服務(wù)器發(fā)送元數(shù)據(jù)描述文檔,還用于在接收到getmap請(qǐng)求后向代理服務(wù)器發(fā)送地圖。
優(yōu)選的,第一url地址字段包括:代理服務(wù)器的第一ip、代理服務(wù)器的第一端口號(hào);wms服務(wù)器端的url地址字段包括:wms服務(wù)器端的ip、wms服務(wù)器端的端口號(hào)。
優(yōu)選的,代理服務(wù)器將getcapabilities請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,具體為:代理服務(wù)器接收客戶端發(fā)送的getcapabilities請(qǐng)求,將getcapabilities請(qǐng)求攜帶的代理服務(wù)器的第一url地址字段修改為wms服務(wù)器端的url地址字段,并將修改后的getcapabilities請(qǐng)求發(fā)送至wms服務(wù)器端;
代理服務(wù)器將所述getmap請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,具體為:代理服務(wù)器接收客戶端發(fā)送的getmap請(qǐng)求,將getmap請(qǐng)求攜帶的代理服務(wù)器的第一url地址字段修改為wms服務(wù)器端的url地址字段,并將修改后的getmap請(qǐng)求發(fā)送至wms服務(wù)器端。
優(yōu)選的,所述代理服務(wù)器還用于對(duì)所述客戶端發(fā)送的連接請(qǐng)求進(jìn)行監(jiān)聽;所述連接請(qǐng)求包括:getcapabilities請(qǐng)求、getmap請(qǐng)求。
本發(fā)明還提供了一種代理服務(wù)器,包括:
監(jiān)聽模塊,用于所述客戶端發(fā)送的連接請(qǐng)求進(jìn)行監(jiān)聽;所述連接請(qǐng)求包括:getcapabilities請(qǐng)求、getmap請(qǐng)求;
第一收發(fā)模塊,用于接收客戶端發(fā)送的getcapabilities請(qǐng)求,并將修改后的元數(shù)據(jù)描述文檔發(fā)送至客戶端;還用于接收客戶端發(fā)送的getmap請(qǐng)求,并將從wms服務(wù)器接收的地圖發(fā)送至客戶端;
連接請(qǐng)求解析模塊,用于將getcapabilities請(qǐng)求和getmap請(qǐng)求攜帶的代理服務(wù)器的第一url地址字段修改為wms服務(wù)器端的url地址字段;
第二收發(fā)模塊,用于將修改后的getcapabilities請(qǐng)求發(fā)送至wms服務(wù)器端,并接收wms服務(wù)器端發(fā)送的元數(shù)據(jù)描述文檔;還用于將修改后的getmap請(qǐng)求發(fā)送至wms服務(wù)器端,并接收wms服務(wù)器端發(fā)送的地圖;
元數(shù)據(jù)解析模塊,用于將接收的元數(shù)據(jù)描述文檔包含的wms服務(wù)器端的url地址字段修改為代理服務(wù)器的第一url地址字段。
從以上技術(shù)方案可知,本發(fā)明提供了一種跨網(wǎng)代理web地圖服務(wù)的方法、系統(tǒng)和代理服務(wù)器。其中,所述方法主要包括:代理服務(wù)器將客戶端發(fā)送的getcapabilities請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,并從wms服務(wù)器端接收元數(shù)據(jù)描述文檔;代理服務(wù)器將元數(shù)據(jù)描述文檔包含的wms服務(wù)器端的url地址字段修改為代理服務(wù)器的第一url地址字段,并將修改后的元數(shù)據(jù)描述文檔發(fā)送至客戶端;客戶端根據(jù)修改后的元數(shù)據(jù)描述文檔計(jì)算待發(fā)送的getmap請(qǐng)求,并通過(guò)代理服務(wù)器將getmap請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,以從wms服務(wù)器端獲取地圖。本發(fā)明通過(guò)以上步驟能夠?qū)崿F(xiàn)跨網(wǎng)代理web地圖服務(wù),該方法簡(jiǎn)單易行,極具實(shí)用性。
附圖說(shuō)明
通過(guò)以下參照附圖而提供的具體實(shí)施方式部分,本發(fā)明的特征和優(yōu)點(diǎn)將變得更加容易理解,在附圖中:
圖1是本發(fā)明實(shí)施例中的跨網(wǎng)代理web地圖服務(wù)的方法示意圖;
圖2是本發(fā)明實(shí)施例中代理服務(wù)器轉(zhuǎn)發(fā)getcapabilities請(qǐng)求的方法示意圖;
圖3是本發(fā)明實(shí)施例中代理服務(wù)器轉(zhuǎn)發(fā)getmap請(qǐng)求的方法示意圖;
圖4是本發(fā)明實(shí)施例中的跨網(wǎng)代理web地圖服務(wù)的系統(tǒng)的組成框圖;
圖5是本發(fā)明實(shí)施例中的代理服務(wù)器的內(nèi)部組成框圖;
1、客戶端;2、代理服務(wù)器;3、wms服務(wù)器端;201、第一收發(fā)模塊;202、連接請(qǐng)求解析模塊;203、第二收發(fā)模塊;204、元數(shù)據(jù)解析模塊;205、監(jiān)聽模塊。
具體實(shí)施方式
在很多情況下,需要將web地圖服務(wù)從a網(wǎng)代理到b網(wǎng),進(jìn)而在b網(wǎng)訪問(wèn)web地圖服務(wù)。然而,現(xiàn)有技術(shù)中并沒有關(guān)于如何實(shí)現(xiàn)跨網(wǎng)代理web地圖服務(wù)的有效的解決方案。另外,現(xiàn)有的apache、wingate等代理服務(wù)器工具都不能滿足跨網(wǎng)代理wms地圖服務(wù)的使用需求。鑒于此,本發(fā)明的發(fā)明人提出了一種跨網(wǎng)代理web地圖服務(wù)的方法、系統(tǒng),以及一種用于實(shí)現(xiàn)跨網(wǎng)代理web地圖服務(wù)的代理服務(wù)器。
下面結(jié)合附圖1-4和具體實(shí)施例對(duì)本發(fā)明的技術(shù)方案進(jìn)行詳細(xì)說(shuō)明。
圖1示出了本發(fā)明實(shí)施例的跨網(wǎng)代理web地圖服務(wù)的方法示意圖。在介紹跨網(wǎng)代理web地圖服務(wù)的方法之前,首先對(duì)該方法所涉及的網(wǎng)絡(luò)架構(gòu)進(jìn)行說(shuō)明。本發(fā)明實(shí)施例中的網(wǎng)絡(luò)架構(gòu)可以包括客戶端、代理服務(wù)器、wms服務(wù)器端,并且,客戶端與wms服務(wù)器端位于不同網(wǎng)絡(luò)環(huán)境下。例如,客戶端位于a網(wǎng),wms服務(wù)器端位于b網(wǎng)。圖1所描述的方法是從代理服務(wù)器一側(cè)來(lái)進(jìn)行描述的。從圖1可見,該方法主要包括步驟s1~s3。在具體實(shí)施時(shí),較佳的,在步驟s1之前,還包括步驟s0。
步驟s0、代理服務(wù)器對(duì)客戶端發(fā)送的連接請(qǐng)求進(jìn)行監(jiān)聽。其中,所述連接請(qǐng)求包括:getcapabilities請(qǐng)求、getmap請(qǐng)求。
具體地,當(dāng)連接請(qǐng)求為getcapabilities請(qǐng)求時(shí),進(jìn)入步驟s1;當(dāng)監(jiān)聽請(qǐng)求為getmap請(qǐng)求時(shí),進(jìn)入步驟s3。
步驟s1、代理服務(wù)器將客戶端發(fā)送的getcapabilities請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,并從wms服務(wù)器端接收元數(shù)據(jù)描述文檔。
圖2示出了代理服務(wù)器轉(zhuǎn)發(fā)getcapabilities請(qǐng)求的一種優(yōu)選實(shí)施方式。從圖2可見,所述代理服務(wù)器將客戶端發(fā)送的getcapabilities請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,主要包括步驟s11~s13。
步驟s11、代理服務(wù)器接收客戶端發(fā)送的getcapabilities請(qǐng)求。
其中,客戶端發(fā)送的getcapabilities請(qǐng)求為一個(gè)url地址。例如,用戶可以通過(guò)客戶端發(fā)送如下形式的getcapabilities請(qǐng)求:http://localhost:8080/querycapabilities?request=getcapabilities&version=version&service=wms。其中,http為資源類型,localhost:8080為存放資源的主機(jī)域名,一般包括存放資源的服務(wù)器的ip地址和端口號(hào),querycapabilities?request=getcapabilities&version=version&service=wms為資源文件名。
步驟s12、代理服務(wù)器將getcapabilities請(qǐng)求攜帶的代理服務(wù)器的第一url地址字段修改為wms服務(wù)器端的url地址字段。
具體的,getcapabilities請(qǐng)求攜帶的第一url地址字段包括:代理服務(wù)器的第一ip地址、代理服務(wù)器的第一端口號(hào);wms服務(wù)器端的url地址字段包括:wms服務(wù)器端的ip地址、wms服務(wù)器端的端口號(hào)。在具體實(shí)施時(shí),代理服務(wù)器將getcapabilities請(qǐng)求所包含的代理服務(wù)器的第一ip地址修改為wms服務(wù)器端的ip地址,將代理服務(wù)器的第一端口號(hào)修改為wms服務(wù)器端的端口號(hào)。
步驟s13、代理服務(wù)器將修改后的getcapabilities請(qǐng)求發(fā)送至wms服務(wù)器端。
具體的,代理服務(wù)器可通過(guò)第二ip地址、第二端口號(hào)與wms服務(wù)器端進(jìn)行通信,進(jìn)而將修改后的getcapabilities請(qǐng)求發(fā)送至wms服務(wù)器端。
通過(guò)步驟s11~s13,可將客戶端發(fā)送到代理服務(wù)器的getcapabilities請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端。然后,wms服務(wù)器端接收getcapabilities請(qǐng)求并進(jìn)行處理,并將處理結(jié)果(即元數(shù)據(jù)描述文檔)發(fā)送至代理服務(wù)器。
步驟s2、代理服務(wù)器將所述元數(shù)據(jù)描述文檔包含的wms服務(wù)器端的url地址字段修改為代理服務(wù)器的第一url地址字段,并將修改后的元數(shù)據(jù)描述文檔發(fā)送至客戶端。
具體的,代理服務(wù)器可通過(guò)以下步驟對(duì)元數(shù)據(jù)描述文檔進(jìn)行讀取、修改:步驟s21、將元數(shù)據(jù)描述文檔加載到xml對(duì)象中;步驟s22、獲取xml對(duì)象中的xlink:href節(jié)點(diǎn);步驟s23、如果xlink:href節(jié)點(diǎn)的個(gè)數(shù)大于0,進(jìn)入步驟s24,否則,進(jìn)入步驟s27;步驟s24、獲取xlink:href節(jié)點(diǎn)的ip和端口號(hào),即wms服務(wù)器端的ip地址和端口號(hào);步驟s25、從配置文件中讀取代理服務(wù)器的第一ip地址和第一端口號(hào);步驟s26、用代理服務(wù)器的第一ip地址和第一端口號(hào)替換掉wms服務(wù)器的ip地址和端口號(hào);步驟s27、得到修改后的元數(shù)據(jù)描述文檔,修改完畢。在對(duì)元數(shù)據(jù)描述文檔進(jìn)行讀取、修改之后,代理服務(wù)器將修改后的元數(shù)據(jù)描述文檔發(fā)送至客戶端。
步驟s3、代理服務(wù)器將客戶端發(fā)送的getmap請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,并從所述wms服務(wù)器端獲取地圖。
圖3示出了代理服務(wù)器轉(zhuǎn)發(fā)getmap請(qǐng)求的一種優(yōu)選實(shí)施方式。從圖3可見,所述代理服務(wù)器將客戶端發(fā)送的getcapabilities請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端,主要包括步驟s31~s33。
步驟s31、代理服務(wù)器接收客戶端發(fā)送的getmap請(qǐng)求。
其中,客戶端發(fā)送的getmap請(qǐng)求為一個(gè)url地址。例如,客戶端可以根據(jù)元數(shù)據(jù)描述文檔的解析結(jié)果形成如下形式的getmap請(qǐng)求:http//localhost:8080/deegeewms?service=wms&request=getmap&layers=layers&styles=styles&format=format&srs=coordinate-system&bbox=bounding_box&width=width&height=height。其中,http為資源類型,localhost:8080為存放資源的主機(jī)域名,deegeewms?service=wms&request=getmap&layers=layers&styles=styles&format=format&srs=coordinate-system&bbox=bounding_box&width=width&height=height為資源文件名。
s32、代理服務(wù)器將getmap請(qǐng)求攜帶的代理服務(wù)器的第一url地址字段修改為wms服務(wù)器端的url地址字段。
具體的,getmap請(qǐng)求攜帶的第一url地址字段包括:代理服務(wù)器的第一ip地址、代理服務(wù)器的第一端口號(hào);wms服務(wù)器端的url地址字段包括:wms服務(wù)器端的ip地址、wms服務(wù)器端的端口號(hào)。在具體實(shí)施時(shí),代理服務(wù)器將getmap請(qǐng)求所包含的代理服務(wù)器的第一ip地址修改為wms服務(wù)器端的ip地址,將代理服務(wù)器的第一端口號(hào)修改為wms服務(wù)器端的端口號(hào)。
s33、代理服務(wù)器將修改后的getmap請(qǐng)求發(fā)送至wms服務(wù)器端。
具體的,代理服務(wù)器可通過(guò)第二ip地址、第二端口號(hào)與wms服務(wù)器端進(jìn)行通信,進(jìn)而將修改后的getmap請(qǐng)求發(fā)送至wms服務(wù)器端。
通過(guò)步驟s31~s33,可將客戶端發(fā)送到代理服務(wù)器的getmap請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端。然后,wms服務(wù)器端接收getmap請(qǐng)求并進(jìn)行處理,并將處理結(jié)果即地圖發(fā)送至代理服務(wù)器,再通過(guò)代理服務(wù)器將地圖發(fā)送至客戶端。
在本發(fā)明實(shí)施例中,通過(guò)以上步驟能夠?qū)eb地圖服務(wù)從a網(wǎng)代理到b網(wǎng),從而滿足了跨網(wǎng)訪問(wèn)web地圖服務(wù)的需求,填補(bǔ)了現(xiàn)有技術(shù)的空白。進(jìn)一步的,該跨網(wǎng)代理web地圖服務(wù)的方法簡(jiǎn)單易行,極具實(shí)用性。
另外,本發(fā)明實(shí)施例還提供了一種跨網(wǎng)代理web地圖服務(wù)的系統(tǒng)。圖4示出了本發(fā)明實(shí)施例中的跨網(wǎng)代理web地圖服務(wù)的系統(tǒng)的組成框圖。從圖3可見,該系統(tǒng)包括:客戶端1、代理服務(wù)器2、wms服務(wù)器端3。其中,客戶端1位于a網(wǎng),wms服務(wù)器端3位于b網(wǎng)。
客戶端1,可以為普通的瀏覽器,也可以是應(yīng)用系統(tǒng)或組件??蛻舳?用于向代理服務(wù)器2發(fā)送getcapabilities請(qǐng)求;還用于接收代理服務(wù)器2發(fā)送的修改后的元數(shù)據(jù)描述文檔、并根據(jù)修改后的元數(shù)據(jù)描述文檔計(jì)算待發(fā)送的getmap請(qǐng)求,并將所述getmap請(qǐng)求發(fā)送至代理服務(wù)器2;還用于接收代理服務(wù)器發(fā)送的地圖。
代理服務(wù)器2,用于將getcapabilities請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端3;還用于從wms服務(wù)器端3接收元數(shù)據(jù)描述文檔,并將所述元數(shù)據(jù)描述文檔包含的wms服務(wù)器端的url地址字段修改為代理服務(wù)器的第一url地址字段,并將修改后的元數(shù)據(jù)描述文檔發(fā)送至客戶端1;還用于將getmap請(qǐng)求轉(zhuǎn)發(fā)至wms服務(wù)器端;還用于將wms服務(wù)器端3發(fā)送的地圖發(fā)送至客戶端1。其中,第一url地址字段包括:代理服務(wù)器的第一ip、代理服務(wù)器的第一端口號(hào);wms服務(wù)器端的url地址字段包括:wms服務(wù)器端的ip、wms服務(wù)器端的端口號(hào)。需要指出的是,當(dāng)端口號(hào)為80時(shí),可以將端口號(hào)省略。進(jìn)一步的,代理服務(wù)器2還用于對(duì)客戶端1發(fā)送的連接請(qǐng)求進(jìn)行監(jiān)聽,所述連接請(qǐng)求包括:getcapabilities請(qǐng)求、getmap請(qǐng)求。
在具體實(shí)施時(shí),代理服務(wù)器2可通過(guò)如下優(yōu)選方式轉(zhuǎn)發(fā)getcapabilities請(qǐng)求:代理服務(wù)器2接收客戶端1發(fā)送的getcapabilities請(qǐng)求,將getcapabilities請(qǐng)求攜帶的代理服務(wù)器的第一url地址字段修改為wms服務(wù)器端的url地址字段,并將修改后的getcapabilities請(qǐng)求發(fā)送至wms服務(wù)器端3。另外,代理服務(wù)器2可通過(guò)如下優(yōu)選方式轉(zhuǎn)發(fā)getmap請(qǐng)求:代理服務(wù)器2接收客戶端1發(fā)送的getmap請(qǐng)求,將getmap請(qǐng)求攜帶的代理服務(wù)器的第一url地址字段修改為wms服務(wù)器端的url地址字段,并將修改后的getmap請(qǐng)求發(fā)送至wms服務(wù)器端3。
wms服務(wù)器端3,用于在接收到getcapabilities請(qǐng)求后向代理服務(wù)器2發(fā)送元數(shù)據(jù)描述文檔,還用于在接收到getmap請(qǐng)求后向代理服務(wù)器2發(fā)送地圖。
在本發(fā)明實(shí)施例中,通過(guò)客戶端1、代理服務(wù)器2、wms地圖服務(wù)端3能夠?qū)eb地圖服務(wù)從a網(wǎng)代理到b網(wǎng),從而滿足了跨網(wǎng)訪問(wèn)web地圖服務(wù)的需求,填補(bǔ)了現(xiàn)有技術(shù)的空白。
另外,本發(fā)明的發(fā)明人發(fā)現(xiàn),apache、wingate等現(xiàn)有的代理服務(wù)器工具都不能實(shí)現(xiàn)跨網(wǎng)代理wms地圖服務(wù)。這是因?yàn)?,這些代理服務(wù)器工具僅能把url地址中的ip和端口號(hào)進(jìn)行變換,而不具備對(duì)元數(shù)據(jù)描述文檔進(jìn)行解析的功能。因此,現(xiàn)有的代理服務(wù)器不能滿足跨網(wǎng)代理web地圖服務(wù)的需求。
鑒于此,本發(fā)明實(shí)施例還提供了一種用于跨網(wǎng)實(shí)現(xiàn)web地圖服務(wù)的代理服務(wù)器。圖5示出了本發(fā)明實(shí)施例中的代理服務(wù)器的內(nèi)部組成框圖。從圖5可見,該代理服務(wù)器主要包括:201、第一收發(fā)模塊;202、連接請(qǐng)求解析模塊;203、第二收發(fā)模塊;204、元數(shù)據(jù)解析模塊;205、監(jiān)聽模塊。
在該實(shí)施例中,監(jiān)聽模塊205用于對(duì)客戶端發(fā)送的連接請(qǐng)求進(jìn)行監(jiān)聽。所述連接請(qǐng)求包括:getcapabilities請(qǐng)求、getmap請(qǐng)求。
第一收發(fā)模塊201,用于接收客戶端發(fā)送的getcapabilities請(qǐng)求;還用于將修改后的元數(shù)據(jù)描述文檔發(fā)送至客戶端;還用于接收客戶端發(fā)送的getmap請(qǐng)求,并將從wms服務(wù)器接收的地圖發(fā)送至客戶端。
連接請(qǐng)求解析模塊202,用于將getcapabilities請(qǐng)求和getmap請(qǐng)求攜帶的代理服務(wù)器的第一url地址字段修改為wms服務(wù)器端的url地址字段。
第二收發(fā)模塊203,用于將修改后的getcapabilities請(qǐng)求發(fā)送至wms服務(wù)器端,并接收wms服務(wù)器端發(fā)送的元數(shù)據(jù)描述文檔;還用于將修改后的getmap請(qǐng)求發(fā)送至wms服務(wù)器端,并接收wms服務(wù)器端發(fā)送的地圖。
元數(shù)據(jù)解析模塊204,用于將接收的元數(shù)據(jù)描述文檔包含的wms服務(wù)器端的url地址字段修改為代理服務(wù)器的第一url地址字段。其中,第一url地址字段包括:代理服務(wù)器的第一ip地址、代理服務(wù)器的第一端口號(hào);wms服務(wù)器端的url地址字段包括:wms服務(wù)器端的ip地址、wms服務(wù)器端的端口號(hào)。在具體實(shí)施時(shí),元數(shù)據(jù)解析模塊可優(yōu)先采用前述步驟s21至步驟s27的方法對(duì)元數(shù)據(jù)描述文檔進(jìn)行讀取、修改。
在本發(fā)明實(shí)施例中,通過(guò)由第一、二收發(fā)模塊、連接請(qǐng)求解析模塊、元數(shù)據(jù)解析模塊等構(gòu)成的代理服務(wù)器,克服了現(xiàn)有的代理服務(wù)器不能滿足跨網(wǎng)代理web地圖服務(wù)的缺陷,極具實(shí)用性。
雖然參照示例性實(shí)施方式對(duì)本發(fā)明進(jìn)行了描述,但是應(yīng)當(dāng)理解,本發(fā)明并不局限于文中詳細(xì)描述和示出的具體實(shí)施方式,在不偏離權(quán)利要求書所限定的范圍的情況下,本領(lǐng)域技術(shù)人員可以對(duì)所述示例性實(shí)施方式做出各種改變。