Azure Maps如何将drawing manager图层的z-index设置为顶层?
Azure Maps 绘图管理器图层层级调整方案
需求1:绘制形状默认显示在图像叠加层上方
Drawing Manager 默认创建的形状图层优先级低于提前添加的图像叠加层,你可以通过两种方式修改默认渲染层级:
- 初始化时指定高优先级自定义图层
// 1. 提前创建供绘图使用的形状图层,设置高于图像叠加层的zIndex(图像叠加层默认zIndex约为300) const drawingShapeLayer = new atlas.layer.ShapeLayer(null, 'drawing-shapes-layer', { zIndex: 1000 }); // 将自定义图层添加到地图 map.layers.add(drawingShapeLayer); // 2. 初始化绘图管理器时绑定自定义图层,后续所有绘制的形状都会渲染在该图层上 const drawingManager = new atlas.drawing.DrawingManager(map, { shapeLayers: [drawingShapeLayer] });
- 监听绘制完成事件强制置顶图层
如果不想修改初始化配置,可以直接监听drawingcomplete事件,每次绘制完成后将绘图图层移到最顶层:
drawingManager.events.add('drawingcomplete', () => { // 拿到绘图管理器内置的形状图层 const drawLayers = drawingManager.getOptions().shapeLayers; drawLayers.forEach(layer => { map.layers.move(layer, 'top'); }) })
需求2:编程修改各类图层顺序
你可以直接调用地图LayerManager实例提供的三个原生方法调整图层顺序,操作前请提前保存所有自定义图层(图像叠加层、形状图层等)的实例引用:
- 置顶/置底图层:调用
map.layers.move(目标图层, 'top'/'bottom') - 把目标图层移到参考图层上方:调用
map.layers.moveAfter(目标图层, 参考图层) - 把目标图层移到参考图层下方:调用
map.layers.moveBefore(目标图层, 参考图层)
示例:将图像叠加层移到形状图层下方,保证形状显示在上层
// 假设已保存两个图层实例:自定义图像叠加层myImageOverlay、形状图层myShapeLayer map.layers.moveBefore(myImageOverlay, myShapeLayer);
如果需要获取绘图管理器内置的图层实例,直接调用drawingManager.getOptions().shapeLayers即可拿到所有绘图相关图层的引用。
内容的提问来源于stack exchange,提问作者OJB1
相关产品推荐
相关产品推荐

