MS RFC 67:启用/禁用OGC Web服务中的层¶
- 日期
2011-02-01
- 作者
Alan Boudreault(aboudreault,位于mapgears.com)
- 作者
丹尼尔·莫里塞特(dmorissette at mapgears.com)
- 作者
Yewondwossen Assefa(加州dmsolutions.ca的Yassefa)
- 最后编辑
2011-02-10
- 状态
2010-02-25通过,MapServer 6.0实施
- 版本
MAPServer 6
概述¶
目前,无法隐藏/禁用OGC Web服务中的层。每个人都认识到需要能够从给定的 Mapfile 中隐藏一些或所有OGC Web服务(OWS)请求的层。
这是一个添加在MapServer中的OGC Web服务中启用/禁用层的功能的建议。
维基网站http://trac.osgeo.org/mapserver/wiki/hidinglayersinogcWebservices上也讨论了这个话题
用例¶
下面是一些用例来演示隐藏层的需求:
一个需要能够隐藏所有OGC服务的tileindex层
在一个WMS Mapfile 中,多个比例相关层位于一个公共组中,我们只希望该组出现在getcapabilities中?而不是单独的层。但是,层不应该完全关闭,因为我们希望它们在getmap中可见,并且在选择组时可以使用getFeatureInfo进行查询。此用例对于WMS很常见,可能(或不可能)适用于其他OGC服务。
人们可能希望通过WMS而不是通过WFS(或任何服务组合)提供给定的层。换句话说,我们需要能够选择在哪个OGC服务中暴露给定的层。
版权声明(即状态为默认的层)不应出现在getcapabilities输出中,也不应是可查询的。
不是要隐藏一个完整的层,而是设置一种能力,可以说希望某个层在WMS GetFeatureInfo响应中以GML的形式返回几何体(此时它永远不会返回)
将wms_group_层处理为真实层(与inspire相关),但将渲染部分移动到隐藏层中,以避免组层和子层中的冗余样式配置。
建议的解决方案¶
主要关注的是最小化用户在其 Mapfile 中的更改。看起来更简单的方法是使用元数据,正如我们目前对一些OWS设置所做的那样。
除非在地图或图层级别启用,否则默认情况下将禁用所有OWS服务。可以使用以下元数据启用OWS服务:
OWS启用请求:应用于所有OGC Web Services
WMS启用请求:应用于Web Map Service(WMS)
WFS_启用_请求:应用于Web Feature Service (WFS)
SOS激活请求:Sensor Observation Service(SOS)
WCS启用请求:应用于Web Coverage Service(WCS)
元数据的值是要启用的请求的列表:::
"GetMap GetFeature GetFeatureInfo"
可能的值是对应的OGC规范中定义的每个服务类型的请求名称。
为了方便起见,在请求列表中还可以使用两个特殊字符:
*:单独使用,表示所有请求
!:置于请求名称之前,表示禁用此请求
你说什么?*:表示禁用所有请求
实例:
完全启用WMS:::
wms_enable_request "*"
启用WMS,除GetFeatureInfo::之外的所有请求:
wms_enable_request "* !GetFeatureInfo"
仅使用getmap和getFeatureInfo启用WMS:::
wms_enable_request "GetMap GetFeatureInfo"
启用任何/所有OGC Web服务请求类型:::
ows_enable_request "*"
禁用任何/所有OGC Web服务请求类型,在层级别上主要用于隐藏特定层:::
ows_enable_request "!*"
遗传¶
提出的解决方案的一个特殊性是对地图和图层之间的设置的继承。地图级别的设置应用于所有图层,除非它们在图层级别被覆盖。例子:
为地图级别的所有图层完全启用WFS:::
wfs_enable_request "*"
在特定层中禁用WFS GetFeature请求(所有其他请求将保持启用状态)::
wfs_enable_request "!GetFeature"
实施说明¶
别忘了更新getCapabilities中支持的操作列表(例如,如果“wms_enable_request”,不要将getFeatureInfo作为操作写出)!获取功能信息“)
改进了将WMS层组作为真实层的处理¶
WMS层组的当前行为是提供层的层次结构,并通过能力文档公开它。父层不包含<name>标记,因此无法通过getmap和getFeatureInfo请求访问。通过升级wms_层_组功能,使用组参数指示可以请求的xpath表达式的级别(请参阅https://github.com/mapserver/mapserver/issues/1632),以及添加此RFC中讨论的功能,用户可以灵活配置 Mapfile 以显示/隐藏低级层。允许或不允许在树层次结构的不同级别上执行WMS请求。这对于支持Inspire需求尤其重要。
注解
RFC的这一部分没有实现,将作为未来激励相关增强的一部分完成,可能在6.2中。
售票处¶
主要客票:
相关门票:
https://github.com/mapserver/mapserver/issues/337 : Need a way to prevent layers from being served via WMS
https://github.com/mapserver/mapserver/issues/300 : Extend behavior of DUMP mapfile parameter for GML output
https://github.com/mapserver/mapserver/issues/1952 : Tileindex Layer and WMS Get Capabilities
https://github.com/mapserver/mapserver/issues/1632 : support for named group layers using wms_layer_group
https://github.com/mapserver/mapserver/issues/3608 : INSPIRE related support
https://github.com/mapserver/mapserver/issues/3830 : DUMP keyword is made obsolete by RFC 67
投票历史¶
2010-02-25通过,法兰克,佩里克尔斯史蒂文,丹尼尔,阿塞菲,杰夫姆,塔马斯+1