INSPIRE View 服务¶
- 作者
Stephan Meissl (斯蒂芬梅塞尔)
- 联系方式
stephan.meissl at eox.at
- 最后更新
2012-03-19
介绍¶
INSPIRE 是一个 European directive 在欧洲建立空间信息基础设施,以支持社区环境政策以及可能对环境产生影响的政策或活动。
INSPIRE View服务是 INSPIRE Technical Guidance document on top of the WMS服务器 在前一章中解释了实现。
为了实现Inspire View服务遵从性,在MapServer中实现了以下增强功能:
激活激励支持(两种情况)
对某些功能字段的多语言支持
提供inspire特定元数据
命名组层
根层和可能存在的组层的样式部分
支持MapServer中的Inspire View服务使用的语法与 INSPIRE 下载服务 . 因此,可以使用 ows_
前缀而不是 wms_
.
激活 INSPIRE 支持¶
inspire特定的元数据可以在外部inspire服务元数据文档(场景1)中引用,也可以直接嵌入到功能文档(场景2)中。MapServer支持这两种方案。
激发支持的相应场景的激活发生在 WEB.METADATA
Mapfile 的节通过 wms_inspire_capabilities
. 如果激活,相应的inspire名称空间以及相应的验证警告将在功能文档中生成。
场景1-使用对外部服务元数据的引用激活Inspire支持:
WEB
METADATA
"wms_inspire_capabilities" "url"
...
END
END
场景2-使用嵌入式服务元数据激活Inspire支持:
WEB
METADATA
"wms_inspire_capabilities" "embed"
...
END
END
对某些功能字段的多语言支持¶
Inspire需要多语言支持,并请求功能文档中所有支持语言以及默认语言的列表。根据getCapabilities请求中的语言参数,特定的元数据值,即
wms_title
wms_abstract
wms_rootlayer_title
wms_rootlayer_abstract
wms_group_title
wms_group_abstract
wms_style_title
wms_style_<name>_title
以及与语言相关的参考数据,如
DATA "road_eng"
CONNECTION "db_ger"
需要以要求的语言提供。如果不支持该语言(或不存在语言参数),则必须使用默认语言。
必须将所有支持的语言指定为逗号分隔列表(默认为第一种语言)到 wms_languages
在 WEB.METADATA
Mapfile 的节。此语言参数也添加到 OnlineResource
在getCapabilities输出中:
WEB
METADATA
...
"wms_languages" "eng,ger" #first default, values according ISO 639-2/B
...
END
END
对于特定于语言的元数据值,将应用键扩展方法::
WEB
METADATA
...
"wms_title.eng" "myservicetitle"
"wms_title.ger" "myservicetitleger"
"wms_abstract" "mylayerabstract" #fallback
"wms_abstract.ger" "mylayerabstractger"
...
END
END
对于依赖于语言的引用数据,类似于 run-time substitution 已遵循MAPServer的功能(仅 DATA
和 CONNECTION
用%language%替换的值)::
...
LAYER
NAME TN.RoadTransportNetwork.RoadLink
DATA "road_%language%"
...
END
...
如果不支持该语言(或不存在语言参数),则将替换默认语言。
提供inspire特定元数据¶
根据场景的不同,需要额外的元数据信息来支持规范。下面提供了Inspire相关字段。
场景1-使用引用的外部服务元数据激发相关字段:
WEB
METADATA
"wms_inspire_capabilities" "url"
"wms_languages" "eng,ger" #first default, values according ISO 639-2/B
"wms_inspire_metadataurl_href" "http://INSPIRE.service/metadata"
"wms_inspire_metadataurl_format" "application/vnd.ogc.csw.capabilities.response_xml"
"wms_keywordlist_ISO_items" "infoMapAccessService" #value according "classification of spatial data services"
"wms_keywordlist_vocabulary" "ISO"
"wms_title" "myservicetitle"
"wms_abstract" "myabstract"
"wms_fees" "conditions unknown" #value either "no conditions apply"|default "conditions unknown"|<specific conditions>
"wms_accessconstraints" "None" #value according ISO 19115 (MD_RestrictionCode codelist) or default "None"
"wms_contactorganization" "MapServer" #responsible organization
"wms_contactposition" "owner" #responsible organization, value according "INSPIRE Metadata Regulation" (part D6)
...
END
END
场景2-使用嵌入式服务元数据激发相关字段:
WEB
METADATA
"wms_inspire_capabilities" "embed"
"wms_languages" "eng,ger" #first default, values according ISO 639-2/B
"wms_inspire_temporal_reference" "2011-09-19" #date of last revision, value according YYYY-MM-DD
"wms_inspire_mpoc_name" "mympocname" #point of contact
"wms_inspire_mpoc_email" "mympoc@e.mail" #point of contact
"wms_inspire_metadatadate" "2011-09-19" #value according YYYY-MM-DD
"wms_inspire_resourcelocator" "http://myinspireresource" #URL for ResourceLocator
"wms_inspire_keyword" "infoMapAccessService" #value according "classification of spatial data services"
"wms_keywordlist_ISO_items" "infoMapAccessService"
"wms_keywordlist_vocabulary" "ISO"
"wms_title" "myservicetitle"
"wms_abstract" "myabstract"
"wms_fees" "conditions unknown" #value either "no conditions apply"|default "conditions unknown"|<specific conditions>
"wms_accessconstraints" "None" #value according ISO 19115 (MD_RestrictionCode codelist) or default "None"
"wms_contactorganization" "MapServer" #responsible organization
"wms_contactposition" "owner" #responsible organization, value according "INSPIRE Metadata Regulation" (part D6)
...
END
END
笔记:
几个字段需要某些值,这些值不是由MapServer本身验证的,而是针对 INSPIRE schemas 以及 WMS INSPIRE tester 推荐
如本文件中关于情景2的建议,
<inspire_common:ResourceType>
始终设置为服务和<inspire_common:SpatialDataServiceType>
始终设置为“查看”,两个值都不能通过 Mapfile 进行更改一致性总是设置为不评估,基于最新的 INSPIRE Metadata Implementing Rules (第7页)、规范文件、规范日期和规范URI或URL需要为符合/不符合度提供,目前尚未实现。
命名组层¶
激励指定组层的使用。因此 wms_layer_group
扩展以支持命名的组层。如果与中使用的层同名 wms_layer_group
如果未找到具有此名称的层,则将其视为命名组,如果未发现具有此名称的层,则将其视为未命名组。
只要这种能力,任何层次的层次都可以实现。请参见中使用的分组 wms_inspire.map MSAutoTest中的映射文件::
TN
+--- TN.CommonTransportElements
+--- TN.CommonTransportElements.TransportArea
+--- TN.CommonTransportElements.TransportLink
+--- TN.CommonTransportElements.TransportNode
+--- TN.RoadTransportNetwork
+--- TN.RoadTransportNetwork
+--- TN.RoadTransportNetwork.VehicleTrafficArea
+--- TN.RoadTransportNetwork.RoadServiceArea
+--- TN.RoadTransportNetwork.RoadArea
+--- TN.RailTransportNetwork
+--- TN.RailTransportNetwork.RailwayLink
+--- TN.RailTransportNetwork.RailwayStationArea
+--- TN.RailTransportNetwork.RailwayYardArea
+--- TN.RailTransportNetwork.RailwayArea
根层和可能存在的组层的样式部分¶
对于常规层,可以使用group和classgroup的概念将层样式名称设置为“根据”值。此外,层样式标题可以通过 wms_style_<stylename>_title
和层样式 wms_style_<stylename>_legendurl_*
(需要提供宽度、高度、格式和href)::
...
LAYER
NAME TN.RoadTransportNetwork.RoadLink
DATA "road"
METADATA
"wms_title.eng" "Transport networks: Road Link"
"wms_title.ger" "Verkehrsnetze: Strassensegment"
...
"wms_style_inspire_common:DEFAULT_title" "mylayerstyletitle" #style title
"wms_style_inspire_common:DEFAULT_legendurl_width" "85" #override style legendurl (mandatory: width, height, format, href)
"wms_style_inspire_common:DEFAULT_legendurl_height" "40"
"wms_style_inspire_common:DEFAULT_legendurl_format" "image/png"
"wms_style_inspire_common:DEFAULT_legendurl_href" "http://path/to/onlineresource...roadlink"
END
...
END
...
CLASSGROUP "inspire_common:DEFAULT"
CLASSITEM "NAME_E"
CLASS
NAME "myclass1"
GROUP "inspire_common:DEFAULT"
EXPRESSION "Trans-Canada Highway"
COLOR 255 0 0
END
CLASS
NAME "myclass2"
GROUP "inspire_common:DEFAULT"
COLOR 0 255 0
END
...
实现以下方法以支持根层中的(可自定义)样式部分:
使用
wms_style_name
在WEB.METADATA
节将样式节添加到根层使用
wms_style_title
替代样式标题(可选)使用
wms_style_legendurl_*
覆盖legendrl的宽度、高度、格式和href(可选)
以及可能存在的组层:
使用
wms_group_style_name
在第一个对应的LAYER.METADATA
节将样式节添加到组层使用
wms_group_style_title
替代样式标题(可选)使用
wms_group_style_legendurl_*
覆盖legendrl的宽度、高度、格式和href(可选)
...
WEB
METADATA
...
"wms_style_name" "inspire_common:DEFAULT" #style name
"wms_style_title" "myroadarealayerstyletitle" #style title
"wms_style_legendurl_width" "85" #override style legendurl (mandatory: width, height, format, href)
"wms_style_legendurl_height" "40"
"wms_style_legendurl_format" "image/png"
"wms_style_legendurl_href" "http://path/to/onlineresource...roadarea"
END
END
LAYER
NAME TN.RailTransportNetwork.RailwayLink
GROUP TN.CommonTransportElements.TransportLink
DATA "road"
METADATA
"wms_group_title.eng" "Transport networks: Generic Transport Link"
"wms_group_title.ger" "Verkehrsnetze: Generisches Verkehrssegment"
"wms_group_abstract" "mygenerictransportlinklayerabstract" #fallback
"wms_group_abstract.ger" "mygenerictransportlinklayerabstract"
"wms_group_style_name" "inspire_common:DEFAULT" #style name
"wms_group_style_title" "mygenerictransportlinklayerstyletitle" #style title
"wms_group_style_legendurl_width" "85" #override style legendurl (mandatory: width, height, format, href)
"wms_group_style_legendurl_height" "40"
"wms_group_style_legendurl_format" "image/png"
"wms_group_style_legendurl_href" "http://path/to/onlineresource...generictransportlink"
"wms_title.eng" "Transport networks: Railway Link"
"wms_title.ger" "Verkehrsnetze: Eisenbahnverbindung"
"wms_abstract" "myrailwaylinklayerabstract" #fallback
"wms_abstract.ger" "myrailwaylinklayerabstractger"
...
END
...
END
...
只要有能力,就可以像示例 Mapfile 中那样实现3个层次结构级别。 wms_inspire_scenario1.map 和 wms_inspire_scenario2.map 在MasutoTest:
TN.RoadTransportNetwork.RoadArea
+--- TN.RoadTransportNetwork.RoadLink
+--- TN.CommonTransportElements.TransportLink
+--- TN.RailTransportNetwork.RailwayLink
+--- TN.AirTransportNetwork.AirLink