Доброго дня!
Есть у меня такой код:
searchCarWashes(accessToken(), conditions, function (response) { map.geoObjects.removeAll(); if (!response.data || response.data.length == 0) { alert('По заданным параметров заведения не найдены'); return; } $.each(response.data, function (key, institution) { var marker = new ymaps.Placemark( [ Number(institution.latitude), Number(institution.longitude) ], { hintContent: institution.title, institution: institution }, { iconLayout: 'default#image', iconImageHref: 'images/map/' + icons[institution.institution_type_id], } ); marker.events.add('click', function () { if ($.cookie('appAccessToken') !== undefined) { $("#first-block").show(); $(".settings-block").hide(); $(".container-feedback-comments-block").hide(); $(".container-feedback-comments-block #show-auth").hide(); } else { $("#first-block").hide(); $(".settings-block").hide(); $(".container-feedback-comments-block").show(); $(".container-feedback-comments-block").find('.step').remove(); $(".container-feedback-comments-block #show-auth").show(); } fillInstitutionInfo(marker.properties.get('institution')); }); map.geoObjects.add(marker); });
Работает хорошо, но количество точек на карте растёт, хотелось бы добавить кластеризацию. Немного подправил:
searchCarWashes(accessToken(), conditions, function (response) { map.geoObjects.removeAll(); if (!response.data || response.data.length == 0) { alert('По заданным параметров заведения не найдены'); return; } $.each(response.data, function (key, institution) { var marker = new ymaps.Placemark( [ Number(institution.latitude), Number(institution.longitude) ], { hintContent: institution.title, institution: institution }, { iconLayout: 'default#image', iconImageHref: 'images/map/' + icons[institution.institution_type_id], } ); marker.events.add('click', function () { if ($.cookie('appAccessToken') !== undefined) { $("#first-block").show(); $(".settings-block").hide(); $(".container-feedback-comments-block").hide(); $(".container-feedback-comments-block #show-auth").hide(); } else { $("#first-block").hide(); $(".settings-block").hide(); $(".container-feedback-comments-block").show(); $(".container-feedback-comments-block").find('.step').remove(); $(".container-feedback-comments-block #show-auth").show(); } fillInstitutionInfo(marker.properties.get('institution')); }); clusterer = new ymaps.Clusterer({ /** * Через кластеризатор можно указать только стили кластеров, * стили для меток нужно назначать каждой метке отдельно. * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/option.presetStorage.xml */ preset: 'islands#invertedVioletClusterIcons', /** * Ставим true, если хотим кластеризовать только точки с одинаковыми координатами. */ groupByCoordinates: false, /** * Опции кластеров указываем в кластеризаторе с префиксом "cluster". * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/ClusterPlacemark.xml */ clusterDisableClickZoom: true, clusterHideIconOnBalloonOpen: false, geoObjectHideIconOnBalloonOpen: false }); /** * Можно менять опции кластеризатора после создания. */ clusterer.options.set({ gridSize: 100, clusterDisableClickZoom: true }); clusterer.add(marker); map.geoObjects.add(clusterer); });
Вроде бы как кластер создан, карта работает, но выдает всё-равно только точки, при любом масштабе. Подскажите, где я совершил ошибку.
Заранее спасибо!