diff --git a/example/old-bugs/remove-when-spiderfied.html b/example/old-bugs/remove-when-spiderfied.html index 194973ac2..eb14f5547 100644 --- a/example/old-bugs/remove-when-spiderfied.html +++ b/example/old-bugs/remove-when-spiderfied.html @@ -19,7 +19,7 @@
-
+
Bug #54. Spiderfy the cluster then click the button. Should result in 2 markers right beside each other on the map.
Bug #53. Spiderfy the cluster then click the button. Spider lines remain on the map.
Bug #49. Spiderfy the cluster then click the second button. Spider lines remain on the map. Click the map to get an error. @@ -56,6 +56,9 @@ L.DomUtil.get('doit2').onclick = function () { markers.clearLayers(); }; + L.DomUtil.get('doit3').onclick = function () { + markers.removeLayers(markersList); + }; diff --git a/spec/suites/removeLayersSpec.js b/spec/suites/removeLayersSpec.js index 0ff840a60..8f24ecf12 100644 --- a/spec/suites/removeLayersSpec.js +++ b/spec/suites/removeLayersSpec.js @@ -57,6 +57,9 @@ markers[0].__parent.spiderfy(); + // We must wait for the spiderfy animation to timeout + clock.tick(200); + group.removeLayers(markers); expect(group.hasLayer(markers[0])).to.be(false); @@ -64,5 +67,9 @@ expect(group.hasLayer(markers[2])).to.be(false); expect(group.getLayers().length).to.be(0); + + group.on('spiderfied', function() { + expect(group._spiderfied).to.be(null); + }); }); }); \ No newline at end of file diff --git a/src/MarkerClusterGroup.js b/src/MarkerClusterGroup.js index d6b408fe5..c487468b1 100644 --- a/src/MarkerClusterGroup.js +++ b/src/MarkerClusterGroup.js @@ -251,6 +251,10 @@ L.MarkerClusterGroup = L.FeatureGroup.extend({ fg = this._featureGroup, npg = this._nonPointGroup; + if (this._unspiderfy) { + this._unspiderfy(); + } + if (!this._map) { for (i = 0, l = layersArray.length; i < l; i++) { m = layersArray[i];