Javascript 如何使用传单层控件切换d3 svg覆盖?

Javascript 如何使用传单层控件切换d3 svg覆盖?,javascript,leaflet,geojson,svg,d3.js,Javascript,Leaflet,Geojson,Svg,D3.js,我有3个d3 SVG,我想放在同一张传单地图上。我希望能够像控制传单层一样轻松地控制它们 这里是,但是是詹基 相关的部分是第75行的结尾,在这里我创建了一个定制的层控件,专门绑定到我的D3SVG组,实例化它,并在addTo(map)之前将其弹出到覆盖哈希中 一定有更好的办法。例如,由于这是一次黑客攻击,层控件不知道该层已被激活,因此复选框未选中 任何帮助都将不胜感激 我真的建议你看看,特别是在。在这里,您可以看到一个适当的实现,它使层控制与SVG覆盖一起工作 var lineLayer = L.

我有3个d3 SVG,我想放在同一张传单地图上。我希望能够像控制传单层一样轻松地控制它们

这里是,但是是詹基

相关的部分是第75行的结尾,在这里我创建了一个定制的层控件,专门绑定到我的D3SVG组,实例化它,并在addTo(map)之前将其弹出到覆盖哈希中

一定有更好的办法。例如,由于这是一次黑客攻击,层控件不知道该层已被激活,因此复选框未选中


任何帮助都将不胜感激

我真的建议你看看,特别是在。在这里,您可以看到一个适当的实现,它使层控制与SVG覆盖一起工作

var lineLayer = L.Class.extend({
  initialize: function () {
    return;
  },
  onAdd: function (map) {
    railLineGroup.style("display", "block");
  },
  onRemove: function (map) {
    railLineGroup.style("display", "none");
  },
});
var railLineLayer = new lineLayer();
overlays["Rail Lines"] = railLineLayer;
L.control.layers(baseLayers, overlays).addTo(map);