mapboxgl如何添加iServer地图服务嵌套图层组中的子图层

mapboxgl如何添加iServer地图服务嵌套图层组中的子图层

引言

图层组有利于快速管理大量的图层,iserver发布地图服务也是支持地图图层组嵌套的,但是在mapboxgl中如何单个加载rest地图服务嵌套图层组中的单个图层,那就需要往下阅读了。

发布服务

服务实例:

  1. 本文示例地图服务的图层结构如下;
    【地图】-【图层组】-【图层组】-【子图层】
    地图结构示例

  2. rest地图在外层图层组示例;
    最外层示例

  3. 下一级图层组示例下一组图层

  4. 子图层示例子图层


5. 子图层ID进入预览图层页面,可以看到url中有当前图层的layerID在这里插入图片描述
6.子图层ID规则
id规则

关键代码

根据子图层ID单独加载对应图层

var t1 = '[0:0.0.1]'//第一个图层组下第一个图层组中第二个子图层的LayerID
        var map = new mapboxgl.Map({//例子中地图为地理坐标系
        container: 'map',
        style: {
            "version": 8,
            "sources": {
                "raster-tiles": {
                    "attribution": "Burce Lee`s example",
                    "type": "raster",
                    "tiles": ['http://xx.xx.xx.xx:8090/iserver/services/map-WorldUdbx/rest/maps/worldGroup/zxyTileImage.png?prjCoordSys='
                    +encodeURIComponent('{"epsgCode":4326}')+'&z={z}&x={x}&y={y}&noWrap=true&transparent=true&cacheEnabled=false&layersID='+ t1],
                    "tileSize": 256,
                }
            },
            "layers": [{
                "id": "simple-tiles",
                "type": "raster",
                "source": "raster-tiles",
                "minzoom": 0,
                "maxzoom": 22
            }
            ],
        },
        center: [0, 0],
        maxZoom: 18,
        zoom: 2
    });
    

总结

这种方法不需要在iserver创建临时图层资源,减轻了服务端的压力,也解决了单独加载子图层的需求,与之配套的还有图层显隐功能,请查看,【mapboxgl叠加单个图层】与【mapboxgl控制图层显隐】。

  • 8
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值