Странное поведение Leaflet fitBounds (при использовании L.MarkerClusterGroup)

У меня есть слой mapItems (MarkerClusterGroup), который я использую для всех своих элементов карты. На ходу я добавляю и удаляю точки из этого слоя (о, и это GeoJSON).

И используя это, чтобы красиво разместить все точки внутри карты:

map.fitBounds(mapItems.getBounds());

Теперь происходит странная вещь, когда я добавляю больше точек, поэтому границы слоя расширяются. Но когда я удаляю эти точки, границы этой карты (конечно, после использования fitBounds) остаются такими же, как максимум, даже если в некоторых областях нет точек.

В чем может быть проблема? Нужно ли как-то сбрасывать границы этого слоя? Или лучше уничтожить слой и создавать новый каждый раз, когда я загружаю точки на эту карту?

P.S. Я только что заметил, что если я использую не L.MarkerClusterGroup, а вместо этого L.FeatureGroup, все работает нормально... Значит, это как-то связано с кластеризацией.


person Julius    schedule 29.08.2014    source источник


Ответы (1)


Итак, моя проблема заключалась в том, чтобы очистить слой:

        layer.eachLayer(
            function (sublayer) {
                layer.removeLayer(sublayer);
            }
        );

И это, похоже, не работает с L.MarkerClusterGroup. Вместо этого я сейчас использую это, и все работает нормально:

        layer.clearLayers();
person Julius    schedule 29.08.2014