【问题标题】:Leaflet - Creating LayerGroups DynamicallyLeaflet - 动态创建图层组
【发布时间】:2018-07-26 01:38:22
【问题描述】:

是否可以动态创建图层组? 我正在开发一个显示公园中存在的树种的网络地图,我正在尝试为每个树种创建一个图层组,以便使用 LayerControl 我可以隐藏和显示某些物种,为了测试,我一直在创建这样的 LayerGroups:

l1 = new L.LayerGroup();
//...
l100 = new L.LayerGroup();

而且我确信有一种方法可以根据存在的物种数量来做到这一点,我已经尝试过:

for (var i = 0; i < numberOfSpecies ; i++) {
  l[i] = new L.LayerGroup();
}

但是这样,我不能这样做:

l[0].addLayer(marker);

做这样的事情最好的方法是什么?

【问题讨论】:

  • 你想实现类似于this的东西吗?
  • @Iavor 好吧,以传单网站上的layerGroups/layerControl为例,他们有一个名为cities的LayerGroup,这里的城市,是我的树种,如果我有几个树种,我如何动态地为每个树种创建一个 layerGroup?
  • 你不会为每个物种创建一个新的图层组吗?你追求什么样的动态行为?
  • @Iavor 我希望能够在 layerControl(done) 中隐藏和显示 layerGroups,并在我的数据库中创建与物种数量完全相同的图层组,这样我就可以隐藏 specie1、specie8 等。(隐藏层 l1、l8),我希望我能更清楚一点。也许我只是在努力
  • 您是否尝试过实现您正在寻找的东西?你有没有遇到任何错误?

标签: javascript ajax dynamic leaflet leaflet.markercluster


【解决方案1】:

是的,你可以。 例如:

var layerGroups = {}

for (var i = 0; i < 3; ++i) {
    layerGroups[i] = L.layerGroup().addTo(map);
}

for (var i = 0; i < 3; ++i) {
    layerGroups[i].addLayer(L.marker([i,i]))
}

你可以在这里试试:https://jsfiddle.net/mckbda9y/6/

【讨论】:

  • 谢谢!我走的是正确的路,如果你的例子有效,我一定做错了什么,我会找出导致错误的原因。
  • 可能吧,不过还有点事,不过不用担心,我得自己去找
猜你喜欢
  • 1970-01-01
  • 2017-01-09
  • 1970-01-01
  • 1970-01-01
  • 2021-09-13
  • 2012-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多