【问题标题】:Azure Maps - How to set drawing manager layers z-index to the top?Azure Maps - 如何将绘图管理器图层 z-index 设置为顶部?
【发布时间】:2021-11-10 22:50:41
【问题描述】:

在我的设计页面中,除了添加图像覆盖之外,用户还将创建/绘制新形状。我发现使用绘图管理器绘制的任何形状都在添加到地图的任何图像叠加层下呈现,见下文:

我想知道如何完成几项任务:

1 - 如何设置绘图管理器,以便任何形状(默认为矩形/点/圆形等)在绘图完成事件触发时始终添加为上层/顶层,这样形状将始终显示在添加的任何图像上方到地图。

2 - 如何以编程方式更改设计期间创建的各个图层的顺序,假设用户可能希望调整各个图层的 z-index 以适应他们自己的渲染要求。

MS 文档here 并没有真正帮助我理解如何实现上述目标,而且也没有提及当前驻留在绘图管理器中的形状/图层。

【问题讨论】:

    标签: azure-maps


    【解决方案1】:

    部分答案,但在正确的轨道上......

    我们可以从绘图管理器中检索形状(绘图管理器层),以便我们对它们进行引用。

    当我添加图像叠加层时,在实际将其添加/渲染到地图之前,我会首先从绘图管理器中获取形状图层,然后将它们从地图中删除。

    接下来,我们将图像叠加层添加到地图并重新添加形状图层,这是我们添加/删除似乎与此处相关的图层的顺序。

    一旦我按照选择的顺序将所有图层添加回地图,我仍然能够将绘图管理器置于编辑模式并选择要编辑的形状,所以我相信这将作为我的解决方案向前发展。

    // Create the image layer
    var imageLayer = new atlas.layer.ImageLayer({
        url: 'myImageUrl,
        coordinates: coordinates
    })
    // Then get the existing shapes (layers) from the DM
    var layers = drawingManager.getLayers();
    console.log(layers);
    // Remove the shapes.
    map.layers.remove(layers.polygonLayer); // polygonLayer as an example...
    // Add new image overlay, then the shapes
    map.layers.add([imageLayer, layers.polygonLayer]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-01-21
      • 2019-08-24
      • 2017-10-11
      • 2022-11-02
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多