首页 > 解决方案 > 即使更改了基础层,如何在前面保持覆盖层

问题描述

我有一个带有 3 个基础层和 2 个覆盖层的传单地图。当用户单击以显示覆盖层时,它会正确显示为最前面的层。但是,当用户更改基础层时,仍然单击叠加层时,基础层会被带到前面。我希望覆盖层始终显示为最前面的层。

我尝试更改覆盖层的 zIndex,我还尝试了以下代码:

var baselayers = {
    "Total Votes Cast": TotalVoteCountLayer,
    "Andrew Cuomo Votes": CuomoLayer,
    "Cynthia Nixon Votes": NixonLayer,
};

var overlays = {
            "NYS Assembly Districts": AssemblyOverlay,
            "NYC Council Districts": CouncilOverlay,
};

L.control.layers(baselayers, overlays).addTo(mymap);

mymap.on('baselayerchange', function(eventLayer) {
    if (eventLayer.name === 'NYS Assembly Districts'){
    overlays.bringToFront();
    }
    if (eventLayer.name === 'NYC Council Districts'){
    overlays.bringToFront();
    }
});

标签: javascriptleaflet

解决方案


BringToFront 是一种 Leaflet 矢量图层方法。它不适用于您overlays的图层字典。

正确的通用解决方案确实是zIndex在您的图层上使用该选项。如果您需要这方面的帮助,请展示您是如何尝试的,以便我们能够理解为什么它不起作用。


推荐阅读