MS RFC 120:Inspire下载服务对WCS 2.0的支持

日期

2018-03-06

作者

法比安·辛德勒(Fabian.Schindler at eox.at)

最后编辑

2018-03-21

状态

2018-03-21通过

版本

MAPServer 7.2

1。概述

为了实现符合WCS 2.0的Inspire下载服务,需要在MapServer中实现一些增强功能,以支持规范:

  • 激活激励支持(两种情况)

  • 对某些功能字段的多语言支持

  • 提供inspire特定元数据

此RFC聚合并扩展了已经提供的有关支持WCS 2.0的Inspire下载服务的想法/解决方案。

2。激励支持的激活

inspire特定的元数据可以在外部inspire服务元数据文档(场景1)中引用,也可以直接嵌入到功能文档(场景2)中。MapServer需要支持这两种方案。

在mapfile的web.metadata部分中,通过“wcs_inspire_capabilities”激活相应的inspire支持场景。如果激活,相应的inspire名称空间以及相应的验证警告将在功能文档中生成。

场景1-使用对外部服务元数据的引用激活Inspire支持:

WEB
 METADATA
  "wcs_inspire_capabilities" "url"
  ...
 END
END

场景2-使用嵌入式服务元数据激活Inspire支持:

WEB
 METADATA
  "wcs_inspire_capabilities" "embed"
  ...
 END
END

三。对某些功能字段的多语言支持

Inspire需要多语言支持,并请求功能文档中所有支持语言以及默认语言的列表。根据getCapabilities请求中的语言参数,特定的元数据值,即

  • "wcs_title"

  • "wcs_abstract"

需要以要求的语言提供。如果不支持该语言(或不存在语言参数),则必须使用默认语言。

所有支持的语言都通过mapfile的web.metadata部分中的“wcs_languages”指定为逗号分隔列表(默认为第一语言)。此语言参数还添加到getCapabilities输出中的onlineresource。::

WEB
 METADATA
  ...
  "wcs_languages" "eng,ger"       #first default, values according ISO 639-2/B
  ...
 END
END

为了解决第二个问题,评估了不同的实施方案。

对于特定于语言的元数据值,将应用键扩展方法。::

WEB
 METADATA
  ...
  "wcs_title.eng" "myservicetitle"
  "wcs_title.ger" "myservicetitleger"
  "wcs_abstract" "mylayerabstract"        #fallback
  "wcs_abstract.ger" "mylayerabstractger"
  ...
 END
END

4。提供inspire特定元数据

根据场景的不同,需要额外的元数据信息来支持规范。Inspire相关字段如下:

场景1-使用引用的外部服务元数据激发相关字段:

WEB
 METADATA
  "wcs_inspire_capabilities"        "url"
  "wcs_languages"                   "eng,ger"     #first default, values according ISO 639-2/B
  "wcs_inspire_metadataurl_href"    "http://INSPIRE.service/metadata"
  "wcs_inspire_metadataurl_format"  "application/vnd.ogc.csw.capabilities.response_xml"
  "wcs_keywordlist_ISO_items"       "infoCoverageAccessService"
  "wcs_keywordlist_vocabulary"      "ISO"
  "wcs_title"                       "myservicetitle"
  "wcs_abstract"                    "myabstract"
  "wcs_fees"                        "conditions unknown"    #value either "no conditions apply"|default "conditions unknown"|<specific conditions>
  "wcs_accessconstraints"           "None"                  #value according ISO 19115 (MD_RestrictionCode codelist) or default "None"
  "wcs_contactorganization"         "MapServer"             #responsible organization
  "wcs_contactposition"             "owner"                 #responsible organization, value according "INSPIRE Metadata Regulation" (part D6)
  ...
 END
END

场景2-使用嵌入式服务元数据激发相关字段:

WEB
 METADATA
  "wcs_inspire_capabilities"        "embed"
  "wcs_languages"                   "eng,ger"               #first default, values according ISO 639-2/B
  "wcs_inspire_temporal_reference"  "2011-09-19"            #date of last revision, value according YYYY-MM-DD
  "wcs_inspire_mpoc_name"           "mympocname"            #point of contact
  "wcs_inspire_mpoc_email"          "mympoc@e.mail"         #point of contact
  "wcs_inspire_metadatadate"        "2011-09-19"            #value according YYYY-MM-DD
  "wcs_inspire_resourcelocator"     "http://myinspireresource" #URL for ResourceLocator
  "wcs_inspire_keyword"             "infoMapAccessService"  #value according "classification of spatial data services"
  "wcs_keywordlist_ISO_items"       "infoMapAccessService"
  "wcs_keywordlist_vocabulary"      "ISO"
  "wcs_title"                       "myservicetitle"
  "wcs_abstract"                    "myabstract"
  "wcs_fees"                        "conditions unknown"    #value either "no conditions apply"|default "conditions unknown"|<specific conditions>
  "wcs_accessconstraints"           "None"                  #value according ISO 19115 (MD_RestrictionCode codelist) or default "None"
  "wcs_contactorganization"         "MapServer"             #responsible organization
  "wcs_contactposition"             "owner"                 #responsible organization, value according "INSPIRE Metadata Regulation" (part D6)
  ...
 END
END

笔记:

  • 几个字段需要某些值,这些值不是由MapServer本身验证的,而是针对 INSPIRE schemas

  • <inspire_common:resourcetype>始终设置为“service”,<inspire_common:spaceialdataservicetype>始终设置为“download”,两个值都不能通过映射文件进行更改。

  • 符合性始终设置为“未评估”,基于最新版本 INSPIRE Metadata Implementing Rules (第7页)、规范文件、规范日期和规范URI或URL需要为符合/不符合度提供,目前尚未实现。

5实施细则

为了实现这些增强,需要在MapServer代码库中实现以下更改:

  1. 与客户端提供的“AcceptLanguages”协商语言

  2. 检测是否激活了Inspire支持,如果激活,则添加相应的命名空间

  3. 使用语言列表输出扩展的功能并激发特定的元数据(取决于场景1或场景2)

  4. 在输出中将语言参数添加到OnlineResource

  5. 在从MapObject派生元数据时,考虑基于语言的键扩展(例如“wcs_title.eng”),使用不带扩展名的回退(例如“wcs_title”)。

  6. 为缺少但必需的inspire特定元数据添加警告

5.1受影响的文件

以下文件受此RFC影响:

mapows.c/mapows.h

[N] MS_DLL_EXPORT char *msOWSLanguageNegotiation(..)

mapwcs20.c

[N] void msXMLStripIndentation(char* ptr)
[C] int msWCSParseRequest20_XMLGetCapabilities(..)
[C] int msWCSParseRequest20(..)
[S] void msWCSPrepareNamespaces20(.., int addInspire)
[N] void msWCSAddInspireDSID20(mapObj *map, xmlNsPtr psNsInspireDls, xmlNsPtr psNsInspireCommon, xmlNodePtr pDlsExtendedCapabilities)
[C] int msWCSGetCapabilities20(..)
[C] int msWCSDescribeCoverage2(..)
[C] int msWCSGetCoverage2(..)
  • [C]功能已更改

  • [n]新功能

  • [s]函数的签名也已更改

5.2MapScript问题

这些更改提供了新的功能,没有考虑到mapscript问题。

5.3向后兼容性问题

此更改提供了新的功能,没有考虑向后兼容性问题。

6。解决方案

此RFC的代码可以在分叉存储库的“wcs inspire dl”分支或pr 5571中找到。

合并票据:

  • 票据5223_uuu:MapServer WCS 2.0中的Inspire DL支持请求

7。测验

为测试目的创建了2个映射文件示例:
  • wcs_Inspire_Scenario1.map_uInspire场景1

  • wcs_Inspire_scenario2.map_uInspire场景2

这些映射文件的getCapabilities响应根据 INSPIRE schemas .

8。投票历史

与Jukkar、Tomk、Stevel、Danielm、Thomasb、Mikes和Stephanm的+1一起通过