vue-yandex-map icon indicating copy to clipboard operation
vue-yandex-map copied to clipboard

GeoObject.properties недоступны в Clusterer

Open amorphine opened this issue 6 years ago • 2 comments

Прежде всего спасибо за плагин) Есть небольшой вопрос, но прежде вступление: хочу сделать возможность задавать произвольные картинки placemark-у и кластеру. Вот в таком стиле image

С placemark все довольно понятно: кастомный layout, генерируется по одному на одну метку с "запеченной" картинкой. А вот как задать изображение проекта, попавшего в кластер, в качестве картинки кластера - вопрос. Прежде всего я создал шаблон

export function makeClusterLayout() {
    return ymaps.templateLayoutFactory.createClass(
        '{% for n, project in properties.geoObjects %}<div class="ymaps__placemark" style="background-image: url({{project.properties.imageThumb}}); background-size: contain;"></div>{% endfor %}'
    );
}

Надеясь в последствии брать первый элемент массива объектов и выдавать его изображение за изображение кластера. Но я столкнулся с тем, что properties меток не существуют, т.е. здесь {{project.properties.imageThumb}} ничего нет При этом они у меня явно заданы:

<yandex-map-marker
                    v-for="project in projects"
                    :key="project.id"
                    :marker-id="project.id"
                    :coords="[project.mapArray[0], project.mapArray[1]]"
                    :properties="iconProperties(project)"
                    :options="iconOptions(project)"
                    cluster-name="previewCluster"
            ></yandex-map-marker>

где iconProperties -

iconProperties(project) {
            return {
                imageThumb: 'https://via.placeholder.com/200x100',
            };
        },

*placeholder.com использовал, чтобы убедиться, что данные действительно не существуют

Я перепробовал различные комбинации:

  • project.properties.imageThumb
  • project.imageThumb
  • и т.д... но это уже совсем не то и кажется ошибка именно в том, что properties геообъектов действительно теряется.

amorphine avatar Aug 30 '19 20:08 amorphine

Решение:

  1. Если не включаем ObjectManager: обращаться к property так: geoObject.properties._data.imageThumb
  2. Если включаем ObjectManager: обращаться к property как обычно: geoObject.properties.imageThumb Наверное, это баг

amorphine avatar Aug 30 '19 23:08 amorphine

Привет! Спасибо за отзыв. Обязательно посмотрю, что можно сделать. К сожалению не располагаю достаточным количеством времени, чтоб оперативно реагировать на замечания.

PNKBizz avatar Aug 31 '19 12:08 PNKBizz