传单中如何在更改基层时启用/禁用覆盖层
How in leaflet enable/disable overlays when changes baselayer?
我创建了一个交互式房间地图。在有空间规划的房屋地图上突出显示。关于照亮房间的计划。Вy默认为开放式楼层平面图,启用了房间的叠加照明,禁用了叠加标记。此外,当您切换到一个地图时,您希望从由3层覆盖层组成的组中隐藏它们,并将它们从地图中删除。
map.removeLayer(roomsOverlay);
map.removeLayer(markersOverlay);
map.removeLayer(bld2_1_lbls);
layerControl.removeLayer(roomsOverlay);
layerControl.removeLayer(markersOverlay);
layerControl.removeLayer(bld2_1_lbls);
现在当你返回到建筑的平面图时,应该返回3个叠加
layerControl.addOverlay(roomsOverlay,"Rooms");
layerControl.addOverlay(markersOverlay,"markersOverlay");
layerControl.addOverlay(bld2_1_lbls,"lab");
但是现在这些覆盖层被禁用了,如何在layercontrol中检查它们?当切换到地图覆盖处于活动状态时,也希望这样做。
演示:http://plnkr.co/edit/do27UnlRoWaEyqrs8VHe?p=preview
p.s.
map.on('baselayerchange', function(e) {
if (e.name=="cartoDBmap")
{/*some code*/
map.removeLayer(roomsOverlay); //if not remove they can be seen on Africa
map.removeLayer(markersOverlay);
map.removeLayer(bld2_1_lbls);
layerControl.removeLayer(roomsOverlay);
layerControl.removeLayer(markersOverlay);
layerControl.removeLayer(bld2_1_lbls);
layerControl.addOverlay(buildingsOverlay,"buildings"); //how make it checked on layercontrol?
}
else
{/*some code*/
layerControl.addOverlay(roomsOverlay,"Rooms"); //how make it checked on layercontrol?
layerControl.addOverlay(markersOverlay,"markersOverlay");
layerControl.addOverlay(bld2_1_lbls,"lab");
layerControl.removeLayer(buildingsOverlay);
map.removeLayer(buildingsOverlay);
}
console.log(layerControl);
});
完成layerControl.addOverlay(buildingsOverlay,"buildings");
后,添加一个附加的:
map.addLayer(buildingsOverlay);
传单提供了一个您可以收听的baselayerchange
事件,它提供了您想要的内容。用作map.on('baselayerchange', function(layer) { //do overlay changes });
如果要查看地图是否存在特定图层,请在地图上使用hasLayer
方法。
_update()
方法将更新图层控件,并选择/检查是否将覆盖添加到地图中。
map.on('baselayerchange', function(e) {
if (e.name=="cartoDBmap") {
/*some code*/
map.removeLayer(roomsOverlay);
layerControl.removeLayer(roomsOverlay);
layerControl._update();
} else {
map.addLayer(roomsOverlay);
layerControl.addOverlay(roomsOverlay,"Rooms");
layerControl._update();
}
});
相关文章:
- 在循环中分配json值时,值被覆盖
- 谷歌地图固定位置覆盖
- 只覆盖箭头键滚动事件
- 如何在读取XLS/XLSX本地文件时,使用IE的javascript代码启用未标记为安全的ActiveX控件
- JQuery覆盖不更改单选选项
- 如何覆盖锚点元素's href目标,并在我点击转到目标javascript时删除其他错误
- 如何在 API 调用后和 if 语句中启用提交按钮
- 语义ui如何使用javascript启用或禁用下拉列表
- IE6在启用/禁用文本字段上闪烁
- 将添加一个相同类型的事件附加或覆盖以前添加的具有相同名称的事件
- 传单中如何在更改基层时启用/禁用覆盖层
- 根据字段的值启用按钮
- 如何使用javascript函数在gridview中按行启用/禁用复选框
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 如何禁用和启用css规则
- HTML/CSS-用于拖放的全页面覆盖
- 让javascript知道epub3电子书中何时播放媒体覆盖
- 覆盖函数中的函数
- 无法覆盖CSS伪元素:before
- 淘汰赛.JS'启用'长度绑定条件不起作用