Как правильно вывести метку на Яндекс.Карту?

Карта загружается, центрируется по заданным координатам, но метка не выводится:

ymaps.ready(init);
function init() {
    var myMap = new ymaps.Map("map", {
        center: [42.978628, 47.514878],
        zoom: 16
    }, {
        searchControlProvider: 'yandex#search'
    });
    myMap.behaviors.disable('scrollZoom');
    myCollection = new ymaps.GeoObjectCollection();
    
    myPlacemark = new ymaps.Placemark(myMap.getCenter(), {
            hintContent: 'Самовольный захват',
            balloonContentHeader: '<a href="/zhaloby/trotuary/post.php?zhaloba_id=5">Самовольный захват</a><br>' +
                    '<span class="description">Тротуары</span>',
            balloonContentBody:
                    '<div>' +
                    '<div style="display: inline-block; float: left;"><img src="/img/zhaloby/thumb/zhaloba_5_thumb.jpg" style="height: 95px; max-width: 71px;"></div> ' +
                    '<div style="display: inline-block; margin-left: 10px; width: 70%;">' +
                    '<b>Адрес</b><br>Респ Дагестан, г Махачкала, ул Коркмасова, дом 7</br>' +
                    '<b>Статус</b><br>Работаем</br>' +
                    '</div>' +
                    '</div>',
            iconContent: 'Работаем'
        }, {
            preset: 'islands#darkBlueStretchyIcon'
        });
        myCollection.add(myPlacemark);
        // Сделаем у карты автомасштаб чтобы были видны все метки.
        
        myMap.setBounds(myCollection.getBounds(), {checkZoomRange: true, zoomMargin: 30});
    

    myMap.geoObjects.add(myCollection);
}

В консоле ошибка:

Cannot read property '0' of null at Object.toGlobalPixelBounds ... at J.setBounds at init().

Судя по ошибке, неверные координаты, но в качестве коорлинат мы используем центр карты. Подскажите, что не так?


Ответы (1 шт):

Автор решения: YaCor'

Вы перепутали порядок строк.

Сначала нужно добавить метку в myCollection, а затем уже получить центр коллекции объектов myCollection.getBounds().

Поскольку коллекция в вашем случае ещё пустая, getBounds() отдаёт ошибку.

Если закомментируете строку myMap.setBounds, увидите, что метка добавляется.

→ Ссылка