Клуб API Карт

Прокрутить карту на 100px

Пост в архиве.

Добрый день.

Есть методы setCenter и panTo - они позволяют установить центр карты в координатах (прокрутить карту).

Как прокрутить карту на определенное количество пикселей не зависимо от текщего значения зума?

К примеру, мне нужно, чтобы при клике на метку карта не только центрировалась на метке, но и сдвигалась еще на 100px. Как сделать такое поведение?

12 комментариев

через методы объекта projection можно пересчитать геокоординаты в пиксели, прибавить 100 и пересчитать обратно

Пробовал сделать что-то вроде этого, через методы объекта ymaps pageToGlobals и globalsToPage

Не могли бы вы привести пример такого кода. А то у меня после конвертаций карта улетает чер знает куда.

Мне нужно перевести координаты placemark'а в пиксели, отнять пару пикселей и вернуть назад.

Спасибо. То, что нужно.

Sergey Konstantinov
27 января 2016, 22:21
var pixelCenter = map.getGlobalPixelCenter();
map.setGlobalPixelCenter([
    pixels[0],
    pixels[1] + 100
]);

Почти подходит, только мне тогда нужно как-нибудь узнать что-то вроде getGlobalPixelCenter() для метки ymaps.Placemark

Sergey Konstantinov
27 января 2016, 22:21
Попробуйте воспользоваться параметром margin у метода setBounds

Поясните, немного не понял где именно тут margin?

setBounds(bounds) Устанавливает область, занимаемую объектом.
Sergey Konstantinov
27 января 2016, 22:21
Не у метки, а у карты
https://jsfiddle.net/nLvfrvqt/

Работает, но изменяет масштабирование.