《Web GIS原理与应用开发》读书笔记(8)

以下均掺杂个人理解
书目:Web GIS 原理与应用开发 —— 刘光 曾敬文 曾庆丰 著

第九章 Web要素服务

为了规范通过Web服务发送矢量数据的过程,OGC制定了Web要素服务(WFS)规范。

9.1 WFS

Web GIS服务器除了能返回一张地图图像之外,也可以返回绘制该地图图像所使用的的真实地理数据。这类返回地理要素数据的规范称为Web要素服务。

《Web GIS原理与应用开发》读书笔记(8)_第1张图片

WMS是由服务器将一地图图像发送给客户端

而WFS是服务器将矢量数据发送给客户端

使用WMS时地图由服务器绘制,使用WFS时地图由客户端绘制。

9.1.1 WFS请求与响应的格式

与WMS类似,WFS也支持一些操作,如:GetCapabilities、DescribeFeatureType、GetFeature

其中GetFeature操作用于获取要素数据

http://suite.opengeo.org/geos...:states&featureid=states.23

该请求中,service=wfs表示使用WFS服务,version=1.1.0表示使用1.1.0版本,request=GetFeature表示执行GetFeature操作,typename=usa:states表示针对的是GeoServer服务器中USA工作区的名为states的图层,featureid=states.23表示要获取的要素的ID为23

WFS使用地理标记语言(Geography Markup Language,GML)返回数据。GML可以同时包含图形与属性信息。由于GML是基于XML的,因此比GeoJSON要冗长得多。

9.1.2 WFS服务器与客户端

ESRI使用自身的要素服务,与WFS功能类似,但不是标准的WFS

对于大多数Web地图API,可以将WFS作为一个图层

不过Leaflet以及许多其他轻量级的开源Web地图API中,并不支持WFS

客户端GIS软件一般都能查看WFS服务

9.2 事务性WFS与基于Web的数据编辑

WFS规范同时定义了要素编辑的规则

通过WFS服务对源数据库中的数据进行更改称为事务性WFSWFS-T

启用事务功能后,WFS客户端就可以使用事务性WFS方法更改地理数据库中的数据。

应用更改示例

  1. WFS客户端连接到启用事务的已发布WFS服务
  2. 在服务器上锁定所编辑的要素和行(可使用GetFeatureWithLock请求执行此操作)
  3. 在WFS客户端上使用WFS编辑器执行编辑
  4. 随后在服务器上应用编辑(可使用事务性WFS方法执行此操作)

要素被锁定后,其他WFS编辑器就无法对其进行编辑了,直到编辑完成或者时间超时解除锁定。

插入事务不要求锁定要素,因为现有要素不能被修改(更新或删除),所以不必调用GetFeatureWithLock。

任何要求更新或删除的事务请求必须有锁定ID

事务性WFS可用来增加、删除或者修改加载的要素,更重要的是能将该操作提交并保存到数据源中。因此,数据源必须存储在空间数据库中,而不能存储在文件中。


第十章 WCS及多维数据

对于栅格数据服务,OGC制定的是WCS(Web Coverage Services,网络覆盖服务)。WCS服务所返回的数据可作为分析和建模操作的输入参数。通过WCS服务获取的栅格数据集被称为覆盖

10.1 WCS及其操作

WCS是由OGC创建的用于在Web上共享覆盖地理信息的开放规范。

覆盖指表示空间变化现象的地理信息

虽然WCS和WMS从服务器上返回的都是图像,但是WCS能更多的详细信息。

WCS支持操作

  • 请求服务级别元数据和数据的简要描述——GetCapabilities
  • 请求一个或多个覆盖的完整描述——DescribeCoverage
  • 以熟知的格式请求覆盖——GetCoverage

10.1.1 GetCapabilities操作

GetCapabilities操作用于得到WCS服务器所支持的操作和服务(能力)的列表。

http://www.example.com/wcs?se...

通过请求获取覆盖的ID之后,便可执行DescribeCoverage操作了。

要注意的是:版本不同,返回的id的参数名可能不同,要查看数据确定其参数名

10.1.2 DescribeCoverage操作

DescribeCoverage操作允许客户端请求某个WCS服务的一个或多个栅格图层的全部描述信息。

服务器会返回描述所请求的覆盖图层详细信息的XML文档。

主要请求参数

请求参数 是否必需 描述
service=WCS 服务类型
request=DescribeCoverage 请求名称
version 请求的WCS服务的版本
identifiers 指定所要请求的图层

http://localhost:8080/geoserver/ows?service=WCS&version=1.1.1&request=DescribeCoverage&identifiers=nruc:mosaic

10.1.3 GetCoverage操作

通过GetCapabilities和DescribeCoverage可以了解服务器端允许哪些请求以及哪些数据是可以获取的,然后进行GetCoverage操作,该操作最终返回指定地理范围内指定域值内的某栅格数据。

除了service、request、version、identifiers参数值之外,还需要包含:

  • domainSubset参数:该参数定义所要请求覆盖的时空范围。它又包含boundingBox(必选)temporalSubset(可选)两个参数。

    • boundingBox:指定地理范围
    • temporalSubset:指定时间范围
  • output参数:指定输出设置。该参数又包括:

    • GridCRS:返回数据的地理参照系统,可选
    • format:返回数据的格式,必选
    • store:“true”表示需要服务器把返回数据的所有内容存储在一个网络位置,并返回其URL;“false”表示需要服务器直接返回数据;二者可选

http://localhost:8080/geoserver/ows?service=WCS&Version=1.1.1&REQUEST=GetCoverage&Identifier=nruc:mosaic&BoundingBox=36.492,6.346,46.591,20.83,urn:orc:def:crs:EPSG::4326&Format=image/png&Store=true

由于版本问题,可能导致openlayer在加载WCS时,图像的坐标轴发生变化(图像旋转90度)

解决方案:在请求参数中添加GridBaseCRS参数

http://localhost:8080/geoserver/ows?service=WCS&Version=1.1.1&REQUEST=GetCoverage&Identifier=nruc:mosaic&BoundingBox=36.492,6.346,46.591,20.83,urn:orc:def:crs:EPSG::4326&GridBaseCRS=EPSG:4326&Format=image/png&Store=true

10.2 多维数据与图像镶嵌插件

地理数据,特别是遥感数据,通常是多维的。如:多波段,多时段,多高程等

10.2.1 多维数据

对于这种类型的数据,需要特定的管理、处理和服务。这类数据服务在标准的二维空间维度之外,还需要识别哪些额外维度(时间、高程、自定义维度),并允许用户在这些维度之间请求数据子集。

10.2.2 图像镶嵌插件

图像镶嵌是用于将一组带地理参考的栅格文件镶嵌在一块的插件,由GeoTools提供。

图像镶嵌插件负责将一组类似的栅格数据归为一组,将它们作为一个栅格数据集(可能是多维的)对外提供服务。

例如

  • 将一组空间邻近的遥感图像进行镶嵌。
  • 将同一地理范围内不同时间与/或不同高程或不同维度的山歌数据进行镶嵌,组成一多维数据集。

可以通过一组辅助文件,来指定该镶嵌中可获取的维度、索引以及获取纬度值的方式。

你可能感兴趣的:(webgis)