将位置插入集合后重绘标记和簇

时间:2015-02-18 12:48:13

标签: javascript meteor leaflet

我有一张地图,我的标记和群集用传单进行渲染。我有一个集合,我存储了纬度/经度等信息。

我迭代这样的集合以在

中插入标记

在Template.map.rendered

Locations.find({}).forEach(function(obj){
     console.log("Adding: lat " + obj.latitude + " - long " + obj.longtitude);
     var m = L.marker([obj.latitude,obj.longtitude]);
     markers.addLayer(m);
});

如何在模板完成呈现地图将实时更新后绘制新的插入位置?

1 个答案:

答案 0 :(得分:1)

与模板中的完全相同。如果您有对MarkerCluster图层的引用(我假设为markers),则只需使用图层的addLayer方法:

markers.addLayer(L.Marker([0,0]);

如果您想批量添加标记,可以使用方法addLayers

markers.addLayers([
    L.Marker([0,0]),
    L.Marker([1,1])
]);

MarkerCluster将负责其余工作,您还可以在实例化MarkerCluster时在选项中使用animateAddingMarkers为新插入设置动画:

new L.MarkerClusterGroup({
    'animateAddingMarkers': true
});
  

animateAddingMarkers:如果设置为true,则在将MarkerCluster添加到地图后将其添加到MarkerClusterGroup将添加标记并将其设置为群集动画。默认为false,因为这样可以在批量添加标记时提供更好的性能。 addLayers不支持这一点,只有addLayer支持单个标记。

检查他们的Github上的README.MD:https://github.com/Leaflet/Leaflet.markercluster