yandex-maps-unofficial / vue-yandex-map

Yandex Maps Component for VueJS
MIT License
357 stars 102 forks source link

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

Open amorphine opened 4 years ago

amorphine commented 4 years ago

Прежде всего спасибо за плагин) Есть небольшой вопрос, но прежде вступление: хочу сделать возможность задавать произвольные картинки 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 использовал, чтобы убедиться, что данные действительно не существуют

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

amorphine commented 4 years ago

Решение:

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

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