Как правильно вывести метку на Яндекс.Карту?
Карта загружается, центрируется по заданным координатам, но метка не выводится:
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, увидите, что метка добавляется.