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代码库中实现以下更改:
与客户端提供的“AcceptLanguages”协商语言
检测是否激活了Inspire支持,如果激活,则添加相应的命名空间
使用语言列表输出扩展的功能并激发特定的元数据(取决于场景1或场景2)
在输出中将语言参数添加到OnlineResource
在从MapObject派生元数据时,考虑基于语言的键扩展(例如“wcs_title.eng”),使用不带扩展名的回退(例如“wcs_title”)。
为缺少但必需的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一起通过