Клуб API Карт

Размер цифр в значке кластеризатора

SGromkov
12 сентября 2014, 19:34

Здравствуйте!

 

У меня есть три размера значков кластера: 

var clusterIcons = [
    {
        href: '/images/enterprises-map/clusterer-5.png',
        size: [44, 49],
        offset: [-22, -35]
    },
    {
        href: '/images/enterprises-map/clusterer-10.png',
        size: [52, 60],
        offset: [-26, -50]
    },
    {
        href: '/images/enterprises-map/clusterer-15.png',
        size: [76, 88],
        offset: [-38, -81]
    }
];
clusterNumbers = [5, 10, 15];


Я создаю шаблон макета содержимого значка кластера:

MyIconContentLayout = ymaps.templateLayoutFactory.createClass(
    '<div class="">{{ properties.geoObjects.length }}</div>'
);

 

Я хочу в этом шаблоне выводить один из трех классов, определяющих размер цифр в значке кластера.


Я видел пример, где задается контент хинта в зависимости от количества меток:

enterpriseClusterer.createCluster = function (center, geoObjects) {
    // Создаем метку-кластер с помощью стандартной реализации метода.
    var clusterPlacemark = ymaps.Clusterer.prototype.createCluster.call(this, center, geoObjects),
        geoObjectsLength = clusterPlacemark.getGeoObjects().length,
        hintContent;
    if (geoObjectsLength < 10) {
        hintContent = 'Мало меток';
    } else if (geoObjectsLength < 100) {
        hintContent = 'Нормально так меток';
    } else {
        hintContent = 'Меток навалом';
    }
    clusterPlacemark.properties.set('hintContent', hintContent);
    return clusterPlacemark;
};

 

Но не пойму, как мне создать свойство, в которое я буду точно также класть одно из трех значений (small, medium, big) и потом это значение подставлять в шаблоне значка кластера.


Подскажите, пожалуста, как создать собственное свойство при создании кластера и потом это значение этого свойства получить в шаблоне значка кластера?

1 комментарий
Подписаться на комментарии к посту

Можно поставить условие прям в шаблоне

 

Можно выставить имя класса в данные объекта

clusterPlacemark.properties.set('iconContentClass', iconContentClass);

и подставлять его в шаблоне

MyIconContentLayout = ymaps.templateLayoutFactory.createClass(    '{{ properties.geoObjects.length }}');