Клуб API Карт

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

Пост в архиве.

Добрый день!  Подскажите, как ускорить вывод меток на карту. Использование коллекции ускоряет вывод или же просто позволяет работать с атрибутами меток? 

8 комментариев

Коллекции не ускоряют вывод. Они позволяют группировать метки и управлять своиствами групп.

Если у вас много меток, для ускорения вывода лучше использовать кластеризатор.

http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/Clusterer.xml

Владислав
28 января 2016, 01:23

у меня еще проблемка, я так же решил использовать кластеры, но у меня браузер ругается на строку "clusterer = new ymaps.Clusterer", пишет что это не функция... 

Очевидно какая-то ошибка в коде, возможно не подключен пакет кластеризатора.

Посмотрите пример http://api.yandex.ru/maps/jsbox/clusterer_create

Владислав
28 января 2016, 01:23
ymaps.ready(initm);
    function initm () {
        var myMap=window.myMap = new ymaps.Map("YMapsID", {
                center: [pu1_ruk,mu1_ruk],
                zoom: zet1_ruk,
                behaviors: ['default', 'scrollZoom']
            });  myMap.controls.add('mapTools','trafficControl');
           
            $.ajax({
                type: "POST",
                url: "dbmap.php",
                data: {ds1:ds11,ds2:ds21,type:type},
                dataType: 'json',
               
                cache: false,
                success: function(All_Event_m_ruk) {
                    var sl = [];
                    All_Event_ruk = All_Event_m_ruk;
                   
                   
               
                    if (All_Event_m_ruk == null) {
                        num_rows_ruk= 0;
                    }
                    else {
                        num_rows_ruk = All_Event_m_ruk.length;
                    }
                   
                    for (i=0;i                        AllEvent_ruk=All_Event_ruk[i];   
                        var x=AllEvent_ruk[3]; var y=AllEvent_ruk[4]; var r=AllEvent_ruk[0]; pick_ruk=AllEvent_ruk[15];var text_head=AllEvent_ruk[16]; var text_full=AllEvent_ruk[17];

                        sl[i] = new ymaps.Placemark([y,x],{
                            draggable: "false",
                            iconContent: "",
                            balloonContentHeader: text_head,
                            balloonContentBody:text_full,
                            hintContent: ""
                        }, {
                            iconImageHref: pick_ruk,
                            iconImageSize: [27, 26],
                            openEmptyBalloon: false
                        })
                       
                    }
                   
                    var clusterer = new ymaps.Clusterer({clusterDisableClickZoom: true});
                    clusterer.add(sl);
                    myMap.geoObjects.add(clusterer);
                   
                   
                   
                }   
            })       
           
        }

Речь не про код, а про подключение АПИ в теге script.

Там должно быть подключение пакета package.clusters

Владислав
28 января 2016, 01:23
Спасибо большое!!! Добрый человек, я чуть руки крюки себе уже не отрубил ))
Владислав
28 января 2016, 01:23
А можно ли кластеризацию использовать не только по близости объектов друг к другу, но и по каким нибудь уникальным свойствам этих объектов? Например группировать плейсмарки к которым присвоена индивидуальная картинка или по содержанию контента балуна. Или же если метки сгруппировать по массивам, а потом применить кластеризацию к массивам по отдельности с разными стилями

Да, последний вариант сработает.