javascript - 即使更改了基础层,如何在前面保持覆盖层
问题描述
我有一个带有 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();
}
});
解决方案
BringToFront 是一种 Leaflet 矢量图层方法。它不适用于您overlays
的图层字典。
正确的通用解决方案确实是zIndex
在您的图层上使用该选项。如果您需要这方面的帮助,请展示您是如何尝试的,以便我们能够理解为什么它不起作用。
推荐阅读
- javascript - 为什么单击两次后单击事件有效 VANILLA
- git - 无法从 github 克隆或拉取
- python - 从调试器渲染 matplotlib 图
- c++ - 重载运算符时指针链断开
- c# - 将 DataGridView 的更改单元格与该单元格中 DGV 的原始值进行比较
- python - Django Markdownx 麻烦
- html - 如何从 html 表单中提取 axios 发布请求的输入
- javascript - 如何在 React 中为按钮添加音频
- javascript - 写入数据库时未触发 Firebase 功能
- json - Serialize multiples Models classes/View models into a single Json