目录
作者:kxj
前言
当给服务资源设置“指定人查看”的共享范围时,iPortal 支持更细粒度地限定被访问的空间范围,即指定的部门/群组/用户只能访问到限定空间范围内的服务中包含的要素、地图瓦片等资源。例如:全国范围地图可以指定test用户仅能访问到四川省地图。
一、功能介绍
1.1基于空间范围的权限控制
iPortal 支持通过以下几种方式设置服务资源允许访问的地理空间范围:
- 选择行政区划:iPortal 默认提供了中国范围的省级行政区划级别对应的地理空间范围,您可以在下拉列表中直接选择。
- 上传矢量文件:通过上传 Shapefile 或 GeoJSON 格式文件限定可访问的地理空间范围。
- 绘制多边形:通过在地图上绘制多边形限定可访问的地理空间范围。
当一个用户及其身处的部门/群组均被授予了基于空间范围的权限,并且设置的空间范围互不相同时,该用户实际可访问的范围为设置的多个空间范围的并集。
例如:a 用户被授予的空间范围为北京,a 用户所处的部门被授予的空间范围为天津,a 用户所处的一个群组被授予的空间范围为河北,则 a 用户可访问北京、天津、河北三个地理范围内的服务内容。
注:
- 目前支持空间范围权限控制的服务类型有:SuperMap iServer REST 地图服务、REST 矢量瓦片服务、REST 数据服务;OGC WMS 服务、WMTS 服务。
- 若设置空间范围时,底图不能正常显示,管理员需做相应配置,确保底图的可用性。
1.2空间范围权限底图配置
打开【SuperMap iPortal_HOME】\webapps\iportal\resources\web-ui\config 目录下的 BaseMapConfig.json 文件,设置有效的底图,默认配置了 https://iserver.supermap.io/iserver/services/map-china400/rest/maps/China_4326 的地图。配置字段介绍如下:
- baseLayerUrl:地图服务地址,如果您配置的是天地图类型的底图,则不用填写地图服务地址
- type:地图服务类型,支持 RESTMAP 和 TIANDITU_VEC(天地图矢量)、TIANDITU_TER(天地图地形)、TIANDITU_IMG(天地图影像)
- epsgCode:地图服务坐标系对应的 epsgCode。天地图类型的底图只支持 4326 和 3857
- key:如果您配置的是天地图类型的底图,需设置可访问的 key
完成上述配置后,无需重启 iPortal 即可生效。
示例1:配置一个 RESTMAP 类型的地图服务作为底图
{
"baseLayerUrl": "http://192.168.17.199:8090/iserver/services/map-china400/rest/maps/China_4326",
"type": "RESTMAP",
"epsgCode": 4326,
"key": ""
}
示例2:配置一个 TIANDITU_VEC 类型的地图服务作为底图
{
"baseLayerUrl": "",
"type": "TIANDITU_VEC",
"epsgCode": 4326,
"key": "a58f3713862426ec0b2927cb43da8065"
}
二、应用实例
以China示例服务(https://iserver.supermap.io/iserver/services/map-china400/rest/maps/China)为例,设置test用户仅可查看四川省区域。
2.1注册China示例服务
【资源中心】-【服务】-【注册服务】,将China服务注册至iPortal,详细步骤可以参考帮助文档:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iPortal/iP/iportal_usage/add_resource/service.htm
2.2设置基于空间范围的权限
- 打开China服务的【共享设置】页面,选择开启共享-【仅指定人】,点击添加用户。
- 搜索框输入test,选中用户。
- 勾选【设置可访问的空间范围 】,选择【选择行政区划】,设置为四川省,设置完成后点击【确定】即可。
- 最后点击保存,基于空间范围的权限就设置好了。登录test用户预览China服务效果如下: