You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Azure Maps如何将drawing manager图层的z-index设置为顶层?

Azure Maps 绘图管理器图层层级调整方案

需求1:绘制形状默认显示在图像叠加层上方

Drawing Manager 默认创建的形状图层优先级低于提前添加的图像叠加层,你可以通过两种方式修改默认渲染层级:

  1. 初始化时指定高优先级自定义图层
// 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]
});
  1. 监听绘制完成事件强制置顶图层
    如果不想修改初始化配置,可以直接监听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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 18:06:03