我有一张地图,我的标记和群集用传单进行渲染。我有一个集合,我存储了纬度/经度等信息。
我迭代这样的集合以在
中插入标记在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);
});
如何在模板完成呈现地图将实时更新后绘制新的插入位置?
答案 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