我有一个包含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();
}
});
答案 0 :(得分:0)
BringToFront是Leaflet矢量图层方法。它不适用于您的overlays
图层字典。
正确的常规解决方案确实是在图层上使用zIndex
选项。如果您需要帮助,请说明如何尝试,以便我们可以了解为什么它不起作用。
答案 1 :(得分:0)
使用了以下解决方案:
L.control.layers(baselayers, overlays).addTo(mymap);
mymap.on('baselayerchange', function() {
if (mymap.hasLayer(AssemblyOverlay)) {
AssemblyOverlay.bringToFront();
}
if (mymap.hasLayer(CouncilOverlay)) {
CouncilOverlay.bringToFront();
}
});