@user_tm

Как менять центр яндекс карты по клику на кнопку?

Здравствуйте! Имеется Яндекс карта с id="map"
<div id="map" style="width: 99%; height: 500px" class="myMap"></div>

и кнопка <button id="btnMap">кнопка </button> Задача такова: у агентства имеются три адреса
var myCenter0 = [59.893254, 30.331014];
var myCenter1 = [59.890658, 30.318321];
var myCenter2 = [59.894513, 30.320270];
и нужно чтобы каждый раз нажав на кнопку с id="btnMap" первый адрес сменялся на второй, второй на третий, а третий на первый и так дале по циклу. Я для этого поместил все три адреса в массив let arrLatLng = [myCenter0, myCenter1, myCenter2]; затем создал в переменную i var i = 0; где значение i равняется нулю и это значение я подставляют в ключ массива arrLatLng, а этот ключ я подставляю в значения свойства center в классе myMap (center: arrLatLng[i]) выглядит это так:
function init(){
        var myMap = new ymaps.Map("map", {
          center: arrLatLng[i],
          zoom: 17
      });
      }
если в ручную менять значение переменной i, то на карте меняется центр. И должен сообщить что такую же задачу мне помогли решить, но это было на google карте, вот ссылка Как менять адреса по нажатию на одну кнопку на Google map api JavaScript? . Я пробовал решить по аналогии но не чего не выходит вот весь код
ymaps.ready(init);
      var myCenter0 = [59.893254, 30.331014];//адрес № 1
      var myCenter1 = [59.890658, 30.318321];//адрес № 2
      var myCenter2 = [59.894513, 30.320270];//адрес № 3
      let arrLatLng = [myCenter0, myCenter1, myCenter2];//массив из трех адресов (или как правильно центры)

      var i = 0; 

      $("#btnMap").click(function() {// во код который решил задачу на google карте 
        i = (i + 1) % arrLatLng.length;
        myMap.setCenter(arrLatLng[i]);

      });

      function init(){
        var myMap = new ymaps.Map("map", {
          center: arrLatLng[i],//вот в ключ массива подставляется значение переменной i таким образом менятся на карте центр 
          zoom: 17
      });

      }
  • Вопрос задан
  • 1854 просмотра
Пригласить эксперта
Ответы на вопрос 1
NeiroNx
@NeiroNx
Программист
Чтобы менять нужно иметь доступ к объекту карты из нужной функции если myMap имеет глобальную видимость то все просто setCenter
<button onclick="myMap.setCenter([56.0,55.0],18)">Что там?</button>
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы