传单 - 在没有插件的情况下切换 GeoJSON 图层

Leaflet - toggling GeoJSON layers without plug-ins

本文关键字:情况下 GeoJSON 图层 插件 传单      更新时间:2023-09-26

我知道如何添加带有标记的图层,我可以打开/关闭标记以及如何将图层添加到我的地图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