MS RFC 41:支持WCS 1.1.x协议

日期

2008/04/09

作者

弗兰克·沃默丹

联系

warmerdam@pobox.com

状态

采用

版本

5.2

概述

建议对MapServer进行扩展,以支持WCS 1.1协议。MapServer已经支持WCS 1.0协议,但是WCS 1.1有很大不同。

实施方法

WCS 1.1基于OWS公共元数据关闭(与WCS 1.0不同),WCS服务的实现将利用mapowscommon.c中的OWS元数据服务。但是,mapowscommon.c基于libxml进行XML序列化(与基于printf()的WCS 1.0服务不同)。因此,wcs 1.1 getcapabilities和describeCoverage实现将在很大程度上与wcs 1.0实现分离,并将使用libxml实现。

应该注意的是,WCS 1.1功能和覆盖率描述方法的格式和组织非常不同,因此无论如何,单独的实现是非常必要的。

在mapwcs.c中,用于wcs服务的关键入口点将更新为“call out”到mapwcs11.c中服务的wcs 1.1版本。

预计大部分的wcs 1.0 getcoverge实现将与wcs 1.1共享,使用特殊的wcs 1.1实现来处理请求中的特定问题(例如范围集处理和多部分mime返回结果)。

WCS 1.1协议限制

  • 通过MapServer提供服务时,只有一个<field>与覆盖范围相关。

  • 只支持两种类型的轴:“带区”轴和“时间”轴。

元数据映射

当前的WCS元数据项与WCS 1.0协议紧密相关,而WCS 1.1协议对服务、覆盖率描述以及getcoverge请求使用了一种截然不同的形式和约定。下表指示哪些WCS元数据项映射到WCS 1.0和WCS 1.1中的覆盖率XML元素:

MapServer                   WCS 1.1                  WCS 1.0
---------                   -------                  -------
<x>_formats                 SupportedFormat          formats
<x>_keywordlist             ows:Keywords             keywords
<x>_label                   (unused)                 label
<x>_description             ows:Title                description
<x>_abstract (new)          ows:Abstract             (unused)
<x>_metadatalink_href       (unused)                 metadataLink
<x>_nativeformat            (unused)                 nativeFormat
<x>_rangeset_name           Field.Identifier         RangeSet.name
<x>_rangeset_label          Field.Title              Rangeset.label
<x>_bands_name              Axis.identifier          AxisDescription.name

URN/坐标系和轴方向

WCS1.1使用类似“urn:ogc:def:crs:epsg::4326”或“urn:ogc:def:crs:ogc::crs84”的URN。此外,在epsg权限空间内使用坐标系时,需要wcs协议遵守epsg轴约定。例如,这意味着,urn:ogc:def:crs:epsg::4326坐标系中的任何坐标都必须以lat(长顺序)提供,而不是传统的long(长顺序)。

为了实现这些要求,计划了几个变更:

  • 将更新msloadProjectionString()以扩展epsg和ogc名称空间中的URN。

  • msloadProjectionString()将在epsg名称空间中为gcs代码的urls添加“+epsgaxis=ne”参数。

  • 将添加新的msaxisNormalizePoints()和msaxisNormalizePoints(),以便在标准化(东距、北距)轴方向和epsg首选(非标准化)轴方向(有时为北距、东距)之间进行转换。这些函数将扫描p->args[]列表以确定+epsgaxis=ne。

  • msowsCommonBoundingBox()将被修改为使用这些轴非规范化函数来为epsg gcs urns非规范化轴顺序。

  • wcs 1.1 getcoverge调用将使用msaxisnormalizepoints()在需要时修复请求轴的方向。

MapScript

不需要更改mapscript。

向后兼容性

不希望更改WCS 1.0支持,也不希望更改指定服务元数据的机制,尽管可能会添加一些仅在WCS 1.1中使用的元数据项。

文档

这个 WCS服务器 将扩展讨论WCS 1.1相关问题。

实施资源

Frank Warmerdam将在Noetix Research Inc.和加拿大政府地理连接计划的资助下实施该计划。SVN主干中的初步实施已经开始运行,预计3月1日完成工作。

测试

测试将添加到WCS 1.1协议的msautotest/wxs中。欢迎其他贡献者提供有关WCS 1.1验证的其他帮助。

臭虫识别码

还没有。

投票历史

法兰克(+1),阿塞菲(+1),汤克(+1),丹尼尔(+1),佩林(+1)