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

时间:2014-12-22 21:29:17

标签: javascript gis leaflet

我知道如何添加带标记的图层,我可以打开/关闭图层以及如何将GeoJSON图层添加到地图中。

但我无法混合这些功能。

我需要创建一个toggling layer from GeoJSON(折线图层)。

是否有可能获得我需要的 而无需任何外部插件或脚本

1 个答案:

答案 0 :(得分:3)

GeoJSON图层和标记可以毫无问题地一起使用。

为了能够切换图层,您需要从可以点击的内容中捕获某种点击事件,例如按钮。 根据我的研究,我发现如果你需要一个自定义按钮,它自己实现起来并不是那么快,所以你可能需要使用一个可用的插件。

如果你仍然不想构建按钮或使用插件,你可以在地图上设置一个点击事件,它可以打开和关闭GeoJSON图层。

我从传单网站上获取了GeoJSON示例并对其进行了更改,以便打开和关闭GeoJSON图层:

var geoLayer = L.geoJson([
  // ...
]);

map.on('click', function() {
  if(map.hasLayer(geoLayer)) {
    map.removeLayer(geoLayer);
  } else {
    map.addLayer(geoLayer);
  }
});

希望有所帮助..

修改 我更改了示例以使用leaflet.js的图层控件 哪个更好......

var baseLayers = {
  "Markers": markerLayer,
  "GeoJSON": geoLayer
};
L.control.layers(baseLayers).addTo(map);

不知道这件事;)

如果您想要复选框而不是radiobuttons,请改用

L.control.layers(null, baseLayers).addTo(map);

http://codepen.io/anon/pen/qEaEBg