Перемещение к метке по клику
Есть карта яндекса, как можно по клику на кнопку например, вызвать событие на карте и переместиться в указанную метку на карте яндекса ? P.S кнопка должна находиться отдельно от карты
Ответы (2 шт):
Автор решения: Pr0gramm1st
→ Ссылка
let button = document.querySelector('button');
button.addEventListener('click', function() {
goToPoint(this.dataset.idPoint);
});
/**
* Функция центрирования карты относительно определённой метки
*
* param (int) idPoint - параметр, содержащий в себе идентификатор метки, который был использован при её добавлении на менеджер объектов вашей карты
* newMap - объект вашей карты
* setCenter - метод, устанавливайщий центр и коэффициент масштабирования карты
* objectManager - тот самый менеджер объектов карты, при помощи которого вы добавляете метки на карту
* objects - свойство объекта objectManager, хранящее в себе объекты карты
* getById - метод у objectManager, который позволяет получить объект на карте через его идентификатор (в данном случае тот идентификатор, что указывали при добавлении на карту)
* ну далее уже сами узнаете, если вдруг заинтересует
*/
function goToPoint(idPoint) {
newMap.setCenter(objectManager.objects.getById(idPoint).geometry.coordinates, 18, {checkZoomRange: true});
}
<button data-id-point = "<здесь_идентификатор_вашей_метки>">Кнопка</button>
https://yandex.ru/dev/maps/jsapi/doc/2.1/ref/reference/ObjectManager.html - подробнее о менеджере объектов в документации к API Яндекс.Карт. Собственно, на этой же странице сможете найти примеры по добавлении меток на карту через этот объект
Автор решения: 9024872139
→ Ссылка
Всё намного проще оказалось, вот пример кода - https://codepen.io/kah3vich/pen/mdXNYXN
<div class="map" id="map" style="height:400px;width:100%;"></div>
<button data-objectid="1">Point 1</button>
<button data-objectid="2">Point 2</button>
<button data-objectid="3">Point 3</button>