<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      網絡地圖服務(WMS)詳解

      閱讀本文之前可參考前文:《地圖服務器GeoServer的安裝與配置》《GeoServer發布地圖服務(WMS、WFS)》

      1.概述

      經過前文的介紹,相信我們對WMS/WFS服務已經有了一個非常直觀的認識,最起碼我們知道了地圖服務的數據從何而來,又是如何發布出去的。更進一步的說,OGC給WMS/WFS分別定義了非常詳盡的標準規范,其主要內容是通過HTTP(Hypertext Transfer Protocol,超文本傳輸協議 )實現的各種操作。在這里,我們要介紹的WMS支持標準HTTP的Get和Post請求,不過通常情況下基于GET方式(將參數以鍵值對的形式放置在URL中)進行服務請求較為方便。

      HTTP協議用于客戶端和服務器之間的通信,為了滿足各種各樣的通信需求,HTTP協議規定了多種不同的請求方法,其中Get和Post是最基礎的兩種。Get用于請求已被URI識別的資源,Post則用來傳輸實體的主體,兩者的功能比較相近,但其實有著不小的區別。不過在本文中,我們將會主要看到這個區別:Get請求是將參數拼接到URL上進行參數傳遞的,而POST是將參數寫入到請求正文中傳遞的;因此,Get請求有URL長度的限制,通常用于查詢;Post請求則沒有長度限制,通常用于增添、刪除和修改。

      根據《OpenGIS Web Map Server Implementation Specification》的1.3.0版本,WMS主要支持如下幾種操作,如下表1所示所示:

      【表1 WMS支持的操作】

      操作 必要性 描述
      GetCapabilities 必要 查詢服務的元數據,包括支持的操作、參數、以及圖層列表等
      GetMap 必要 檢查詢指定區域和內容的地圖圖像
      GetFeatureInfo 可選 查詢地圖上像素位置的基礎數據,包括幾何和屬性值

      2.GetCapabilities

      GetCapabilities操作的目的是獲取服務的元數據,主要包括WMS服務器提供的操作、請求參數等信息。GetCapabilities請求的參數如下表2所示:

      【表2 WMS GetCapabilities請求參數】

      請求參數 必要性 描述
      VERSION=version 可選 請求的版本:值是1.1.0,1.1.1,1.3.0三者之一。
      SERVICE=WMS 必要 服務的類型。
      REQUEST=GetCapabilities 必要 請求操作的名稱。
      FORMAT=MIME_type 可選 服務元數據的格式。
      UPDATESEQUENCE=string 可選 用于緩存控制的序列號或字符串。

      根據表2所示的參數,我們在瀏覽器中輸入如下地址:

      http://localhost:8080/geoserver/ows?service=WMS&version=1.3.0&request=GetCapabilities
      

      瀏覽器響應的結果如下圖所示??梢钥吹椒祷氐慕Y果其實是一個XML文件,這個文件中描述的就是WMS服務具體的元數據信息。

      3.GetMap

      GetMap操作用于請求服務器生成地圖并返回,這個操作也是WMS服務最主要的功能。不難想象,為了保證正確的輸出結果,我們必須配置足夠多的參數,比如地理范圍,空間參考、輸出寬高以及格式等。具體的請求參數如下表3所示:

      【表3 WMS GetMap請求參數】

      請求參數 必要性 描述
      VERSION=1.3.0 必要 請求的版本。
      REQUEST=GetMap 必要 請求操作的名稱。
      LAYERS=layer_list 必要 一個或多個地圖圖層列表,使用逗號分隔。
      STYLES=style_list 必要 渲染樣式列表,使用逗號分隔。
      CRS=namespace:identifier 必要 坐標參考系統。
      BBOX=minx,miny,maxx,maxy 必要 邊界框包圍盒(從左下到右上,使用CRS的單位)。
      WIDTH=output_width 必要 地圖圖像的寬度。
      HEIGHT=output_height 必要 地圖圖像的高度。
      FORMAT=output_format 必要 地圖的輸出格式。
      TRANSPARENT=TRUE|FALSE 可選 地圖背景透明度(默認不透明)。
      BGCOLOR=color_value 可選 背景顏色的十六進制紅綠藍顏色值(默認白色)。
      EXCEPTIONS=exception_format 可選 WMS報告異常的格式(默認為XML)。
      TIME=time 可選 圖層需要的時間值。
      ELEVATION=elevation 可選 圖層需要的高程值。
      Other sample dimension(s) 可選 其他維度的值,備用。

      這些參數具體的參數值可以參考GetCapabilities操作返回的XML文件。例如,我們填充好所有的必要參數,在瀏覽器中輸入如下地址來訪問前文中配置好的矢量數據集:

      http://localhost:8080/geoserver/wms?
      VERSION=1.3.0
      &REQUEST=GetMap
      &LAYERS=test:multipolygons
      &STYLES
      &CRS=EPSG:4326
      &BBOX=38.8920794,-77.0495419,38.9096339,-77.0199063
      &WIDTH=768
      &HEIGHT=454
      &FORMAT=image/png
      

      這時,瀏覽器就會返回一個PNG格式的圖像地圖文件,如下圖所示。GetMap響應的地圖圖像大小、格式等并不是固定的,具體取決于請求的參數。如果我們對矢量和柵格足夠熟悉的話,我們能大概猜出WMS服務返回地圖文件大概的處理算法流程:

      1. 由于數據源是矢量數據,所以我們關鍵是矢量柵格化的算法。
      2. 根據傳遞的參數坐標參考系統CRS、地理范圍BBox、寬WIDTH以及高HEIGHT足夠幫助我們確定一個柵格數據集。
      3. 通過矢量柵格化算法對柵格數據集填充像素值,這中間涉及到圖像的重采樣操作。
      4. 最后將柵格數據集的文件流傳輸到瀏覽器端。

      如果我們想訪問前文中配置好的柵格數據集,URL請求參數大致相同,如下所示:

      http://localhost:8080/geoserver/wms?
      VERSION=1.3.0
      &REQUEST=GetMap
      &LAYERS=test:japan_tmo_2011057_geo
      &STYLES
      &CRS=EPSG:4326
      &BBOX=23.034667983398435,120.15380860839844,52.990722641601565,153.88916014160156
      &WIDTH=768
      &HEIGHT=682
      &FORMAT=image/png
      

      此時,瀏覽器也會返回一張PNG格式的圖像地圖,如下圖所示:

      有一點要注意的是在WMS另一個廣泛使用的版本1.1.1中,邊界框包圍盒的參數BBOX的x、y坐標順序是與1.3.0版本是相反的,WMS版本1.1.1的請求URL如下所示:

      http://localhost:8080/geoserver/wms?
      VERSION=1.1.1
      &REQUEST=GetMap
      &LAYERS=test:multipolygons
      &STYLES
      &CRS=EPSG:4326
      &BBOX=-77.0495419,38.8920794,-77.0199063,38.9096339
      &WIDTH=768
      &HEIGHT=454
      &FORMAT=image/png
      

      這個問題與GDAL2.0升級3.0版本時地理坐標系相關參數x和y需要進行調換有點類似,經過查閱相關資料才知道,原因是要保證x和y的順序要與坐標參考系定義的軸順序保持一致。但是在筆者看來,這種設計多少有點破壞向下兼容的原則。

      4.GetFeatureInfo

      GetFeatureInfo是可選操作,用于查詢地圖上給定位置的空間和屬性信息。這個操作有點類似于鼠標在數字地圖上拾取一點,高亮顯示該點位置的要素并顯示該要素關聯的屬性。不難理解,由于WMS使用的HTTP協議是無狀態的,所以GetFeatureInfo請求參數包含了GetMap請求的大部分參數(除VERSION和REQUEST之外的所有參數)。畢竟,要獲取地圖某一點的要素信息,就先得把地圖給獲取了。GetFeatureInfo操作的標準請求參數如下表4所示:

      【表4 WMS GetFeatureInfo請求參數】

      請求參數 必要性 描述
      VERSION=1.3.0 必要 請求的版本。
      REQUEST=GetFeatureInfo 必要 請求操作的名稱。
      map request part 必要 GetMap請求的大部分參數。
      QUERY_LAYERS=layer_list 必要 要查詢的層級列表,以逗號分隔。
      INFO_FORMAT=output_format 必要 特征信息返回格式(MIME類型)。
      FEATURE_COUNT=number 可選 返回的特征數目 (默認為1)。
      I=pixel_column 必要 x方向像素坐標。
      J=pixel_row 必要 y方向像素坐標。
      EXCEPTIONS=exception_format 可選 WMS 報告異常的格式(默認為XML)。

      我們按照表4所示的參數來查詢前文中配置好的基于矢量數據集的地圖,具體在某個像素位置的要素信息,可以在瀏覽器中輸入如下地址:

      http://localhost:8080/geoserver/wms?
      VERSION=1.3.0
      &REQUEST=GetFeatureInfo
      &LAYERS=test:multipolygons
      &STYLES
      &CRS=EPSG:4326
      &BBOX=38.8920794,-77.0495419,38.9096339,-77.0199063
      &WIDTH=768
      &HEIGHT=454
      &FORMAT=image/png
      &QUERY_LAYERS=test:multipolygons
      &INFO_FORMAT=application/json
      &I=384
      &J=227
      

      此時,瀏覽器會返回一個JSON,描述了該像素位置的幾何信息,其關聯的屬性信息,以及一些元數據信息。如下圖所示:

      同樣的,如果使用類似的參數來查詢前文中配置好的基于柵格數據集的地圖,在瀏覽器中輸入如下地址:

      http://localhost:8080/geoserver/wms?
      VERSION=1.3.0
      &REQUEST=GetFeatureInfo
      &LAYERS=test:japan_tmo_2011057_geo
      &STYLES
      &CRS=EPSG:4326
      &BBOX=23.034667983398435,120.15380860839844,52.990722641601565,153.88916014160156
      &WIDTH=768
      &HEIGHT=682
      &FORMAT=image/png
      &QUERY_LAYERS=test:japan_tmo_2011057_geo
      &INFO_FORMAT=application/json
      &I=384
      &J=341
      

      此時,瀏覽器會返回一個JSON,不過內容就簡單多了,返回的是該地圖在指定像素位置的包含RGB三個波段的像素值。如下圖所示。這其實也不難理解,如果把柵格數據當作是點要素的集合,那么點的像素值自然就是其關聯的屬性數據了。

      posted @ 2024-01-14 22:48  charlee44  閱讀(885)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 国产亚洲情侣一区二区无| 玩弄少妇人妻| 亚洲欧洲色图片网站| 四虎永久地址www成人| 护士张开腿被奷日出白浆| 欧美zoozzooz性欧美| 一区二区三区四区五区色| 国产69精品久久久久99尤物| 久99久热免费视频播放| 亚州AV无码乱码精品国产| 一亚洲一区二区中文字幕| 国产激情无码一区二区三区| 高级艳妇交换俱乐部小说| 亚洲国产成人精品无码一区二区| 四虎成人精品国产永久免费| 免费看国产曰批40分钟| 九龙城区| 亚洲成色精品一二三区| 久久精品国产亚洲av麻| 国产SM重味一区二区三区| av在线播放无码线| 男女xx00上下抽搐动态图| 赤水市| 国产69精品久久久久久| 青青青青久久精品国产| 男女激情一区二区三区| 亚洲综合激情五月色一区| 国产亚洲国产精品二区| 亚洲人亚洲人成电影网站色| 德钦县| 亚洲色av天天天天天天| 欧美大bbbb流白水| 久久蜜臀av一区三区| 国产一区二区日韩在线| 毛片在线看免费| 国产啪视频免费观看视频| 丰满人妻熟妇乱精品视频| 国产人妻精品无码av在线| 成人亚洲狠狠一二三四区| 国产中文字幕精品在线| 亚洲日韩久热中文字幕|