阅读量: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])
希望对您有帮助,发财的小手点点赞、转发、评论下,感谢~