Как увеличить карту и показать маркер по центру при клике?

Рейтинг: 2Ответов: 1Опубликовано: 17.09.2014

У меня создана яндекс карта с множеством объектов компании, разбросанных по разным городам страны. Объекты представленны в виде маркеров с балунами. Для того чтобы клиенты могли видеть большую часть объектов сразу, на карте задан маленький масштаб (zoom:5). Я хочу по клику на маркер увеличивать карту и ставить "камеру" так, чтобы маркер, по которому я нажал, оставася в центре. Использую API версии 2.0, вот в этой песочнице я дописал такой код:

.add('click', function () {
    myMap.setZoom(10,{smooth:true, position:(55.755773, 37.617761),centering:true});
})

введите сюда описание изображения

Т.е. добавляем обработчик события Click для маркера, вызываем ранее созданную карту и применяем к ней метод setZoom. В документации есть следующее про параметр centering:

Флаг, указывающий, что по окончании плавного масштабирования позиция, заданная в options.position, должна совпасть с центром карты.

Если я правильно понял, то если включить плавное масштабирование (smooth:true), а в параметре position указать координаты конкретного маркера, по клику на этот маркер карта должна плавно увеличиться, а "кликнутый" маркер должен оказаться по центру.

Но нет, карта плавно увеличивается до нужного размера, но в центре оказывается та точка, которая была по центру карты до клика, пример на скриншоте:

введите сюда описание изображения

Вопрос: а правильно ли я понял документацию по setZoom()? Если да, то как правильно передать position, чтобы добиться требуемого эффекта? Если нет, то возможно ли сделать то, что я хочу другими методами Яндекс API?

Ответы

▲ 2

Здравствуйте!

У setZoom нельзя выставить центр карты, используйте setCenter, второй параметр - zoom карты.

https://tech.yandex.ru/maps/doc/jsapi/2.1/ref/reference/Map-docpage/#setCenter