@run182

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

На странице стоит компонента битрикса с яндекс картой. Нужно по клику на кнопке передать карте другие координаты и отобразить их. Как это можно сделать с помощью АПИ?
Начал с этого, дальше не знаю как сделать правильно. Прошу помощи.
$(document).on('change','#himki',function(){

});
  • Вопрос задан
  • 752 просмотра
Пригласить эксперта
Ответы на вопрос 1
lazalu68
@lazalu68
Salmon
Вообще обычно ссылки на объекты карт всё таки сохраняются, чтобы их можно было использовать, вот как в вашем случае. Но если их нет, то можно попробовать декорировать конструктор и сохранять эти ссылки например в объекте целевого элемента, как-то так:

ymaps.ready(function() {
    const old_Map = ymaps.Map;
    
    ymaps.Map = function() {
        var args = Array.prototype.slice.call(arguments);
        
        args.unshift(0);

        var obj = new (Function.prototype.bind.apply(old_Map, args));

        document.getElementById(args[1]).yaMap = obj;
        return obj;
    }
});


После чего вы можете обратиться к объекту карты так:

document.getElementById('himki').yaMap

Вот пример, в котором ymaps.Map декорируется, создаётся объект карты, после чего мы к нему обращаемся и в качестве примера центрируем карту на какой-нибудь другой точке. Декоратор нужно выполнять строго сразу после загрузки скрипта Yandex Maps API и в первую очередь по событию ready для ymaps.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы