Доброго дня!
Есть у меня такой код:
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);
});Вроде бы как кластер создан, карта работает, но выдает всё-равно только точки, при любом масштабе. Подскажите, где я совершил ошибку.
Заранее спасибо!