传单 - 在没有插件的情况下切换 GeoJSON 图层
Leaflet - toggling GeoJSON layers without plug-ins
我知道如何添加带有标记的图层,我可以打开/关闭标记以及如何将图层添加到我的地图GeoJSON
。
但我不能混合这些功能。
我需要创建一个toggling layer from GeoJSON
(折线图层(。
是否可以在没有任何外部插件或脚本的情况下获得我需要的东西?
GeoJSON 图层和标记可以毫无问题地一起使用。
为了能够切换图层,您需要从可以单击的内容(例如按钮(中捕获某种单击事件。根据我的研究,我发现如果您需要一个自定义按钮,那么自己实现它不会那么快,因此您可能需要使用可用的插件之一。
如果您仍然不想构建按钮或使用插件,例如,您可以在地图上本身设置一个单击事件,以打开和关闭 GeoJSON 图层。
我从传单网站上获取了GeoJSON示例并对其进行了更改,以便打开和关闭GeoJSON层:
var geoLayer = L.geoJson([
// ...
]);
map.on('click', function() {
if(map.hasLayer(geoLayer)) {
map.removeLayer(geoLayer);
} else {
map.addLayer(geoLayer);
}
});
希望有帮助..
编辑:我更改了示例以使用传单的图层控制.js哪个好多了...
var baseLayers = {
"Markers": markerLayer,
"GeoJSON": geoLayer
};
L.control.layers(baseLayers).addTo(map);
不知道这个;)
如果您想要复选框而不是单选按钮,请改用此选项
L.control.layers(null, baseLayers).addTo(map);
http://codepen.io/anon/pen/qEaEBg
相关文章:
- 如何在未直接触发的情况下停止事件
- 在不使用JQuery的情况下隐藏DOM中的选定元素
- 在不使用jquery的情况下查找页面中的所有锚点并附加函数
- 在不打开聊天屏幕的情况下制作Zopim-ding代理
- 在不阻止默认行为的情况下检测IE10中的缩放
- 如何在不传递此信息的情况下查找被调用的元素
- 如何在不刷新页面的情况下更新显示框
- 有没有一种方法可以在控制台关闭的情况下让console.log()在IE中记录消息
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 在我的情况下,如何进行http请求
- 在不知道深度或父属性的情况下从对象中删除属性
- 在不破坏未定义函数的情况下,对多个视图使用单个js文件
- ROR:如何在不重新加载浏览器的情况下从控制器获取参数
- 如何在不影响其他元素的情况下扩展DIV
- 如何在内联依赖项并将图像转换为dataURI的情况下完全提取网页
- 在不移动内部文本的情况下缩放元素的效果
- 在不设置协议的情况下,使用javascript/jquery更改iframe-src
- 默认情况下折叠和展开嵌套列表
- 如何在不单击javascript中的按钮的情况下触发事件
- 传单 - 在没有插件的情况下切换 GeoJSON 图层