Как добавить маркеры в листовку?

У меня есть массив с ~ 30k элементами, и мне нужно создать карту с маркерами для каждого из них. Я использую markerclusters и пытаюсь оптимизировать момент добавления.

for (var i = 0; i < myItems.length; i++) {
    var item = myItems[i];

    marker = new L.marker([item[2],item[3]], {
        icon: mapOpts.myIcon
    }).bindPopup(item[1]);

    markers.addLayer(marker);

}

Даже для этого цикла Google Chrome занимает около 40 секунд. Я не хочу видеть результат FF.

Есть ли способ оптимизировать добавление многих элементов для отображения?

Ответ 1

var array = [];

for (var i = 0; i < myItems.length; i++) {
    var item = myItems[i];

    marker = new L.marker([item[2],item[3]], {
        icon: mapOpts.myIcon
    }).bindPopup(item[1]);

    array.push(marker);
}

markers.addLayers(array);

Подробнее см. docs.

Ответ 2

var markerArray = [];
markerArray.push(L.marker([51.505, -0.09]));
...
var group = L.featureGroup(markerArray).addTo(map);
map.fitBounds(group.getBounds());