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

    @MrGray87 Автор вопроса
    freeExec, Не совсем понял, почему нет встроенного пересчета? Там даже метод есть, с помощью которого можно сдвинуть центр карты на нужное количество пикселей. Теперь встала проблема как перемещать это дело от одной метки до другой плавно по клику на кнопках. Скачкообразно получилось, т.е. карта мгновенно перемещается в нужную точку, и центр устанавливается уже с нужным мне смещением. Метод panTo() не помог или я просто не знаю как его правильно подвязать, чтобы в нем можно было использовать глобальные пиксельные координаты и чтобы осуществлялся плавный переход. Сейчас код такой:
    function getYaMap() {
    	var myMap = new ymaps.Map( "map",{center: [59.913284,30.314359],zoom: 13,controls: [], duration: 3000,},{suppressMapOpenBlock: true,} );
    
        myMap.behaviors.disable( [ 'scrollZoom', 'drag', 'rightMouseButtonMagnifier', 'dblClickZoom' ] );
    
        myMap.geoObjects.add(new ymaps.Placemark([59.913284, 30.314359], {
          'hintContent': 'Санкт-Петербург, 5-я Красноармейская, 9',
          'balloonContent': 'Время работы: ежедневно с 11.00 до 21.00'
        }, 
        {
     
     // Необходимо указать данный тип макета.
     iconLayout: 'default#image',
    
     // Своё изображение иконки метки.
     iconImageHref: 'map-logo.png',
     // Размеры метки.
     iconImageSize: [110, 110],
     // Смещение левого верхнего угла иконки относительно
     // (точки привязки).
     iconImageOffset: [-55,-55],
    }))
    .add(new ymaps.Placemark([59.874941, 30.312706], {
          'hintContent': 'Санкт-Петербург, Варшавская 19, корпус 1',
          'balloonContent': 'Время работы: ежедневно с 11.00 до 21.00'
        }, 
        {
     
     // Необходимо указать данный тип макета.
     iconLayout: 'default#image',
    
     // Своё изображение иконки метки.
     iconImageHref: 'map-logo.png',
     // Размеры метки.
     iconImageSize: [110, 110],
     // Смещение левого верхнего угла иконки относительно
     // (точки привязки).
     iconImageOffset: [-55,-55],
    }))
    // переходим по координатам
    
    
    // Сдвиг центра карты влево изначально
    var newcoord = myMap.getGlobalPixelCenter();
    		myMap.setGlobalPixelCenter([newcoord[0] -= 253, newcoord[1]]);	
    
    
        // куда скакать
      function clickGoto() {
    
    // улица
    var street = this.getAttribute('data-goto');
    
    // получение координат по адресу - асинхронная функция
    geocoder = ymaps.geocode(street);
    geocoder.then(function(res) {
        var coords = res.geoObjects.get(0).geometry.getCoordinates();	
        // без этого вызова метода карта после клика возвращается на прежнее место и центрируется без смещения
        myMap.setCenter(coords);
    
    
        var pixelCenter = myMap.getGlobalPixelCenter(coords);
            pixelCenter = [
        pixelCenter[0] - 253,
        pixelCenter[1] - 0
    ]; 
    myMap.setGlobalPixelCenter(pixelCenter, 13, {
        checkZoomRange: true,
        duration: 200
    });
    
        // переходим по координатам
        // myMap.panTo(coords, {
        //   flying: 1
        // });
      },
      function(err) {
        alert('Ошибка');
      }
    );
    return false;
    }
    
    // навешиваем обработчики
    var col = document.getElementsByClassName('goto');
      for (var i = 0, n = col.length; i < n; ++i) {
        col[i].onclick = clickGoto;
      }
    };