如何在多个地图图例与leaflet.js之间切换
How to switch between multiple map legends with leaflet.js?
我使用leaflet.js库创建基于统计数据的多个地图。每个地图显示不同范围的值,所以当用户更改地图时更改图例会很好。
我在这个问题中发现了类似的例子,但我需要在两个以上的层之间切换。我尝试简单地在代码中添加更多的"if"语句和逻辑运算符,但它不能正常工作:
map.on('baselayerchange', function (eventLayer) {
if (eventLayer.name === 'Agricultural') {
map.removeControl(VODlegend || BUDlegend || LISlegend);
SGlegend.addTo(map);
}
else if (eventLayer.name === 'Building') {
map.removeControl(SGlegend || LISlegend || VODlegend);
BUDlegend.addTo(map);
}
else if (eventLayer.name === 'Forest') {
map.removeControl(BUDlegend || VODlegend || SGlegend);
LISlegend.addTo(map);
}
else if (eventLayer.name === 'Water') {
map.removeControl(LISlegend || SGlegend || BUDlegend);
VODlegend.addTo(map);
}
})
这是我在jsfiddle上的地图的例子。如有任何帮助,我将不胜感激
VODlegend || BUDlegend || LISlegend
在javascript中,这是一个条件(结果为真或假)…不是您期望的列表
你需要像这样跟踪你的当前控件
SGlegend.addTo(map);
currentLegend = SGlegend;
map.on('baselayerchange', function (eventLayer) {
if (eventLayer.name === 'Agricultural') {
map.removeControl(currentLegend );
currentLegend = SGlegend;
SGlegend.addTo(map);
}
else if (eventLayer.name === 'Building') {
map.removeControl(currentLegend );
currentLegend = BUDlegend;
BUDlegend.addTo(map);
}
else if (eventLayer.name === 'Forest') {
map.removeControl(currentLegend );
currentLegend = LISlegend;
LISlegend.addTo(map);
}
else if (eventLayer.name === 'Water') {
map.removeControl(currentLegend );
currentLegend = VODlegend;
VODlegend.addTo(map);
}
})
修改后的小提琴在这里:http://jsfiddle.net/FranceImage/X678g/
相关文章:
- 保存leaflet.js的当前视图
- 根据用户输入的leaflet.js过滤标记
- 如何在Leaflet.js中按属性过滤TopoJSON功能
- 是否可以同时使用Leaflet.js中的中心和边界属性
- 传单错误:对象 #<对象> 在 file:///android_asset/www/leaflet.js:6 没有方法“
- 使用引导程序设置全屏leaflet.js映射
- 将文本框覆盖在leaflet.js地图上
- leaflet.js:setView()完成动画时引发的事件.这怎么可能
- 在leaflet.js和leaflet.snap中编辑多边形
- 将自己添加为Leaflet.js上的Basemap提供者
- 如何使突出显示的大纲出现在leaflet.js鼠标悬停和超链接
- 如何在多个地图图例与leaflet.js之间切换
- 如何使用knockout.js与leaflet.js地图标记
- 使用Leaflet.js我如何在拖端获得地图的纬度
- Leaflet.Js - MarkerCluster -弹出并不总是显示
- 错误的Leaflet.js贴位置,在拖动时扣到位
- 在Leaflet.js中点击event来启用和禁用图层
- Leaflet.js map.on('click', function..对我没用
- 设置leaflet.js地图显示当前位置
- Node.js与Express和Jade模板不显示leaflet.js地图