柿子树备忘录

vuePress-theme-reco 柿子树    2023
柿子树备忘录

Choose mode

  • dark
  • auto
  • light
首页
个人笔记
  • Web
  • GIS
  • Database
  • DevOps
  • 可视化
地图故事
生活点滴
归档
关于我
author-avatar

柿子树

109

Article

73

Tag

首页
个人笔记
  • Web
  • GIS
  • Database
  • DevOps
  • 可视化
地图故事
生活点滴
归档
关于我
  • GIS理论基础

    • GIS基础知识
    • 地图坐标系统
  • GeoServer笔记

    • 思维导图
    • 一、OGC简述

    • 二、基本使用

    • 三、服务标准

      • WMS简述
      • WFS简述
      • WCS简述
      • WMTS简述
    • 四、图层加载

    • 五、服务端开发

  • Openlayers

    • 思维导图
    • 一、快速起步

    • 二、ol结构体系

    • 三、数据源加载

    • 四、常用控件

    • 五、几何对象与Style样式

    • 六、事件交互

    • 七、OGC服务

    • 八、常用示例

  • CesiumJS

    • 思维导图
  • WorldWind

    • WorldWindJava 学习笔记
    • OpenGL中的坐标系

WMS简述

vuePress-theme-reco 柿子树    2023

WMS简述

ac 2020-03-27 WMS

# 1. WMS(Web Map Service)

对于经常变动的空间数据通常将其发布成动态地图服务,WMS则是一个动态数据、定制地图(需结合SLD标准)的理想解决方案,根据请求范围在服务端动态生成数据渲染的图片返回客户端。

GeoServer为WMS提供1.1.1和1.3.0版本的支持。

版本1.1.1和1.3.0之间的主要区别是:

  1. 在1.1.1中,使用EPSG名称空间指定的地理坐标系被定义为具有经度/纬度的轴顺序。在1.3.0中,顺序为纬度/经度。
  2. 在GetMap操作中,srs参数在1.3.0中被crs替换。无论版本如何,GeoServer都支持这两个参数。
  3. 在GetFeatureInfo操作的x和y参数在1.3.0版中被称为i和j。除处于CITE兼容模式下外,GeoServer均支持两个参数,而与版本无关。
geoserver/wms?VERSION=1.1.1&REQUEST=GetMap&SRS=epsg:4326&BBOX=-180,-90,180,90&…
geoserver/wms?VERSION=1.3.0&REQUEST=GetMap&CRS=epsg:4326&BBOX=-90,-180,90,180&…
1
2

WMS可以分为两类:

  1. Basic WMS(就是最常被提及的WMS,支持GetCapabilities/ GetMap操作)
  2. Queryable WFS(是在Basic WMS基础上加上GetFeatureInfo操作)

# 2. WMS支持的操作

WMS除了可以动态生成当前地图视图范围内的图层服务的图片并响应到前端供地图展示,还提供根据地图上像素点获取图层要素信息的查询操作接口。

接口 描述
GetCapabilities 获取服务中的要素类及支持的操作
GetMap 获取服务器生成的地图图片
GetFeatureInfo 根据地图上的像素点获取详细的要素信息

以下的示例数据为GeoServer自带的示例数据服务。

WMS中只规定了KVP格式的请求。(OWS规范中的HTTP请求参数编码有KVP和XML两种)

# 2.1 GetCapabilities

操作示例:

http://localhost:8080/geoserver/wms?service=wms&version=1.1.1&request=GetCapabilities

参数列表:

param o/m
version option
service=wms must
request=GetCapabilities must
format option
updatesequence option

响应示例:

响应是功能XML文档,该文档是WMS服务的详细说明。它包含三个主要部分:

  1. Service(服务)。包含服务元数据,例如服务于服务器的组织的服务名称,关键字和联系信息。
  2. Request(请求)。描述WMS服务提供的操作以及每个操作的参数和输出格式。
  3. Layer(层)。 列出可用的坐标系和图层。在GeoServer中,图层以“名称空间:图层”的形式命名。每一层都提供服务元数据,例如标题,摘要和关键字。

在这里插入图片描述

# 2.2 GetMap

操作示例:

http://localhost:8080/geoserver/tiger/wms?SERVICE=WMS&VERSION=1.1.1&REQUEST=GetMap&FORMAT=image/png&TRANSPARENT=true&LAYERS=tiger:tiger_roads&exceptions=application/nd.ogc.se_inimage&SRS=EPSG%3A4326&STYLES=&WIDTH=476&HEIGHT=768&BBOX=-74.036865234375,40.6549072265625,-73.87344360351562,40.9185791015625 在这里插入图片描述

GetMap操作的核心参数是指定要在地图上显示的一个或多个图层和样式,地图范围的边界框,目标空间参考系统以及输出的宽度,高度和格式 参数列表:

参数 是否必须 说明
version 是 WMS服务版本,默认1.3.0
request=GetMap 是 请求类型
layers 是 逗号分隔的一个或多个图层列表
styles 是 逗号分隔的一个或多个图层的样式列表。
crs 是 坐标参考(1.1.1是srs,1.3.0是crs)
bbox 是 CRS下的边框角(左下,右上)
width 是 输出的地图图片宽度
height 是 输出的地图图片高度
format 是 指定请求响应的输出格式
transparent 图层是否透明,默认true
bgcolor 响应图片的背景色(十六进制的rgb颜色值)
exceptions 异常的输出格式,默认XML
time
elevation

layers参数中的值和styles样式参数中的值之间存在一一对应关系。

版本差异

GeoServer中WMS版本1.1.1和1.3.0之间的主要区别是:

  1. 在1.1.1中,使用EPSG名称空间指定的地理坐标系被定义为具有经度/纬度的轴顺序。在1.3.0中,顺序为纬度/经度。
  2. 在GetMap操作中,srs参数在1.3.0中被crs替换。无论版本如何,GeoServer都支持这两个参数。
  3. 在GetFeatureInfo操作的x和y参数在1.3.0版中被称为i和j。除处于CITE兼容模式下外,GeoServer均支持两个参数,而与版本无关。

geoserver/wms?VERSION=1.1.1&REQUEST=GetMap&SRS=epsg:4326&BBOX=-180,-90,180,90&… geoserver/wms?VERSION=1.3.0&REQUEST=GetMap&CRS=epsg:4326&BBOX=-90,-180,90,180&…

# 2.3 GetFeatureInfo

GetFeatureInfo操作请求地图上给定位置的要素的空间和属性数据。

与WFS GetFeature操作类似,但是在输入和输出方面都不太灵活。因为GetFeatureInfo请求使用的参数是getMap操作返回的WMS图像的(x,y)像素值。

操作示例: http://localhost:8080/geoserver/wms?request=GetFeatureInfo&service=WMS&version=1.1.1&layers=topp:states&styles=&srs=EPSG:4326&format=image/png&bbox=-145.151041,21.73192,-57.154894,58.961059&width=780&height=330&query_layers=topp:states&info_format=application/json&feature_count=50&x=353&y=145&exceptions=application/vnd.ogc.se_xml

参数列表:

param o/m
version must
request=GetFeatureInfo must
GetMap 参数 must
query_layers must
info_format must
feature_count option
x(i) must
y(j) must
exceptions option

响应结果:

在这里插入图片描述