WMTS服務解析


 

WMTS服務解析

1、基本思路

拼接地址,請求xml文件

處理獲取的xml文件,返回參數

獲取xml解析得到的參數,組織結構

2、對應函數

requestWMTS (olUrl)

handleWMTS(xml,fullName)

getWMTSparam(curRecord)

3、操作步驟

①點擊【添加服務】

②輸入名稱、鏈接、類型

③點擊【確定】(解析保存)

4、解析須知

(1)拼接地址結構

添加服務地址:http://你的Geoserver網址/gwc/service/wmts/rest/csdn:CSDNDOM/{style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}?format=image/png

結構:

Geoserver地址/gwc/service/wmts/rest/切片名/{style}/{TileMatrixSet}/{TileMatrix}/{TileRow}/{TileCol}?format=image/png

拼接地址結構:

geoserverUrl + "/gwc/service/wmts?service=WMTS&version=1.0.0&request=GetCapabilities"

geoserverUrl即為geoserver服務地址;

service = WMTS即為wmts服務;

version=1.0.0即為geoserver版本,這個可以向下兼容;

request=GetCapability即為獲取wmts全部信息;

 

(2)xml節點中冒號:問題

基本解決思路為:

將xml轉為字符串,將:替換為規定符號(我用的C,后來直接將ows:替換為ows),再將string轉為xml便於解析;

還有一種思路為:將xml轉為字符串,使用正則表達式遍歷,得到結果;

法一:缺點為若正巧出現關於C的特殊情況(后來直接將ows:替換為ows),需注意,且不建議使用特殊符號,建議使用大寫字母。

法二:若熟練使用正則表達式還是建議使用正則表達式,更適合處理一些突發情況,但xml文件中內容很多,可能耗費時間。

(3)關於wmts參數

 

 

存儲參數結構

 

 

加載需要參數結構

Wmts的xml文件鏈接:http://你的geoserver/gwc/service/wmts?service=WMTS&version=1.0.0&request=GetCapabilities

參數注:

Format一般為image/png,但也可能為image/jpeg等,但不影響加載;

Projection的units即為單位一般為度,這個要讓他們發布服務時注意;

tilegrid中的extent和origin均用世界的,由於geoserver中openlayers的例子中是用的世界范圍,我也用的世界范圍,若有天需要范圍可在xml文件中中拿到,然后計算中心即可;

tilegrid中的resolution與matrixIds是對應的,且xml文件中只能拿到matrixIds,拿不到resolution,我是將代碼中寫入了22級resolution,來與matrixIds對應,一般沒問題,但他的級別是有30級的,若果真用到了就再把剩下的8級給加上。

5、鏈接獲取

【添加服務】中鏈接的來源:

①geoserver發布wmts服務

②使用拼接地址拿到xml文件,用wmts名稱查找到Layer位置,然后去拿圖中地址

如圖:

 

注意是第一個鏈接地址。

6、代碼細節

其實在代碼中完全可以看懂,略顯繁瑣,可以不看。

①hadleWMTS的maxtrixSet參數即為切片方案的名稱,解析過程為拿到中的,之后去找下的對應的內容(即為切片方案名)進行比對,再在上層,拿到對應的級別的chidlren放在數組中。

②在現有的geoserver版本下,默認的matrixIds級別模板為crs:1,利用這點,利用split方法拿到坐標系code;百度后發現,大概在geoserver2.0后版本默認的級別模板有所不同。

 

③加載wmts需要的參數,最終組織在名為source的json對象中;像之前的【添加服務】功能是需要獲取中心Center和范圍Extent的,至於這點代碼我也寫了,若后期需要請自行取用(需要刪改),其中為了不進行彈窗配置,在數據庫的remark字段中,將其全部作為raster處理。

 

④獲取的wmts的xml文件中有的對應兩個切片方案,這個應該是該圖層未進行切片處理,也可能是geoserver中設置對應了兩個切片方案(應該不是),這點有待考證。

 

⑤還有一個點是,我只將解析的source,return了出來,至於formvalue我不知數據庫中將如何組織,便未將名稱鏈接等組織在內,其余暫時已無需要注意的點。

 

注:WMS服務解析類似,掌握WMTS服務解析,極易掌握WMS解析。

掃碼關注公眾號


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM