mapbox-gl 实现layerId数组正序排序

avatar
作者
猴君
阅读量:0

1、前言

mapbox-gl 经常需要移动图层顺序操作,官方提供的api map.moveLayer(id, beforeId)函数只支持一次一个图层的移动,先对其扩展,支持多个图层的移动,且移动顺序按照数组下标排序来

2、函数

layersAscSortByArrIdxKeepLast(map, layerIds) {    let len = layerIds ? layerIds.length : 0    if (map && len > 1) {      for (let i = 0; i < len - 1; i++) {        let dis = len - i - 1        if (map.getLayer(layerIds[dis - 1]) && map.getLayer(layerIds[dis]) ) {          map.moveLayer(layerIds[dis - 1], layerIds[dis])        }      }    }  }  // 按照小标顺序移动,且最后一个图层原本位置不变  this.layersAscSortByArrIdxKeepLast(this.map, [layerIdSort1,layerIdSort2,layerIdSort3]) 

希望对您有帮助,发财的小手点点赞、转发、评论下,感谢~

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!