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_languagesWEB.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的功能(仅 DATACONNECTION 用%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_nameWEB.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.mapwms_inspire_scenario2.map 在MasutoTest:

TN.RoadTransportNetwork.RoadArea
+--- TN.RoadTransportNetwork.RoadLink
+--- TN.CommonTransportElements.TransportLink
     +--- TN.RailTransportNetwork.RailwayLink
     +--- TN.AirTransportNetwork.AirLink