Yandex Maps Изменение координат метки при смене координат
Всем привет! Карта уже реализована - 3 плашки, при нажатии на которые меняется адрес. Осталось дело за малым - никак не удаётся показать метку при смене координат. То есть на первом адресе она есть, но дальше не получается... Понимаю, что надо обновить значение myMap, но как это сделать в данном случае?
ymaps.ready(init);
function init() {
destinations = {
'г.Кировск': [59.889823064234115, 30.991006000000013],
'г. Отрадное': [59.761984064403514, 30.77406249999994],
'пгт. Мга': [59.75674056442115, 31.060580499999993]
},
myMap = new ymaps.Map('map', {
center: destinations['г.Кировск'],
zoom: 16
}),
myPlacemark = new ymaps.Placemark(myMap.getCenter(), {
hintContent: 'Кировск',
}, {
// Необходимо указать данный тип макета.
iconLayout: 'default#image',
// Своё изображение иконки метки.
iconImageHref: '/wp/wp-content/themes/smile32/image/icon/place.svg',
// Размеры метки.
iconImageSize: [40, 40],
});
function clickGoto() {
// город
var city = $(this).find('.title__cont');
var pos = city.text();
// переходим по координатам
myMap.panTo(destinations[pos], {
flying: 1
});
return false;
}
// навешиваем обработчики
var col = document.getElementsByClassName('box__cont');
for (var i = 0, n = col.length; i < n; ++i) {
col[i].onclick = clickGoto;
myMap.geoObjects.add(myPlacemark)
}
}
Ответы (1 шт):
Автор решения: Алексей Тихонов
→ Ссылка
В общем, нашёл хитрую лазейку, а именно:
function clickGoto() {
// город
var city = $(this).find('.title__cont');
var pos = city.text();
var long = $(this).attr('data-long');
var width = $(this).attr('data-width');
// переходим по координатам
myMap.panTo(destinations[pos], {
flying: 1
});
myPlacemark.geometry.setCoordinates([long, width]);
return false;
}
Т. е. подставил data-атрибуты с координатами и считал их в js) Всё гениальное просто!