javascript - 如何使用传单图层控件切换 d3 svg 叠加层?

标签 javascript leaflet geojson svg d3.js

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

这是 code that works ,但是很卡。

相关部分是第 75 行到末尾,我在其中创建了一个专门绑定(bind)到我的 d3 svg 组的自定义图层控件,实例化它,并在 addTo(map) 之前将其弹出到覆盖散列中。

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);

必须有更好的方法来做到这一点。例如,因为这是一个 hack,图层控件不知道图层已经被激活,所以复选框未被选中。

如有任何帮助,我们将不胜感激!

最佳答案

我真的会推荐你看看Vector OSM , 特别是 tilejson.js .您会看到一个正确的实现,它使层控制与 SVG 覆盖一起工作。

关于javascript - 如何使用传单图层控件切换 d3 svg 叠加层?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20926490/

相关文章:

JavaScript 设置窗口选择

javascript - Angularjs 和 SAML,开始

javascript - 正则表达式不转义特殊字符

javascript - 不同分辨率的openlayers加载策略geojson

android - 无法解析符号 'GeoJsonLayer '

javascript - 以编程方式生成/激活的文件输入并不总是触发 `input` 事件

javascript - 在 firefox 中切换浏览器选项卡时 jquery 动画中断

javascript - Leaflet.js 与 OneMap : Marker and Polygon Issue

javascript - 多条折线路线上的 Leaflet Loop Snake 功能

d3.js - shp2json 生成边界和坐标不在​​ (-180,180) 范围内的 GeoJSON