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

第九章 Web要素服务

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

9.1 WFS

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

qq_pic_merged_1615857680044.jpg

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提供。

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

例如

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

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


第十一章 Web处理服务

OGC的Web处理服务(WPS)规范是一种用于在Web上提供和执行这类地理空间处理的国际规范。

WPS:Web Processing Service,网络处理服务

11.1 GeoServer中的WPS

GeoServer默认是不提供WPS服务的,我们需要单独安装WPS拓展,该拓展包含两个大方面:①Java拓扑套件(Java Topology Suite,JTS)、②GeoServer开发的其他地理处理

  • Java拓扑套件

    • 是一套用于处理几何要素拓扑关系的函数库
    • 提供了完整、稳定、可靠的基本二位平面线性图形运算算法实现,包括面积计算、缓冲区分析等等
    • ID以JTS开头,如JTS:area、JTS:boundary等
  • GeoServer自身的地理处理

    • 只能用于GeoServer
    • 主要用途是在GeoServer内部连接WFS/WCS服务,用于读写数据,并不是WPS规范的一部分
    • ID以geo、gs、ras、vec开头,如geo:polygonize、gs:contour等

一般地理处理的一个很大的优点是:地理处理的过程可以连接起来,使用时很灵活很方便。地理处理的结果输出可以作为另一地理处理的参数输入。

11.2 WPS的操作

11.2.1 GetCapabilities操作

请求返回服务的基本元数据

主要包含两部分

  • 该WPS服务支持的操作
  • WPS服务中提供的地理处理列表,以及每个地理处理的简单描述

http://localhost:8080/geoserver/ows?service=wps&version=1.0.0&request=GetCapabilities

11.2.2 DescribeProcess操作

使用GetCapabilities得到地理处理的ID及其简单描述后,可通过DescribeProcess得到某ID的地理处理的详细描述。包括输入参数、输出结果等。

11.2.3 Execute操作

用于请求运行一个有WPS服务实现的地理处理。

请求可以是一个GET的URL。

请求也可以是带XML文档的POST请求,由于请求包含复杂结构,一般使用POST请求。


APDCoder
11 声望2 粉丝

引用和评论

0 条评论