Клуб API Карт

map Dragging

ukols.d
9 сентября 2014, 14:40

Не могу отследить событие перемещение карты, при перетаскивание курсором мыши. Может кто сталкивался? Версия 2.x

8 комментариев
Всеволод Шмыров
9 сентября 2014, 14:48
Добрый день. А как именно вы отслеживаете перемещение карты во время движения?

myMap.events.add('drag', function() {...});

Какую задачу Вы решаете?

Зачем отслеживать драг?

У меня, есть кастомный зум, который увеличивает\уменьшает карту, со смещением вправо, используя глобальные пиксели.

Я хочу убирать смещение вправо при зуме, если пользователь передвинул карту с помощью мышки.

Дело в том что отличать каким именно образом была сдвинута карта (драг / даблклик / скролл) на наш взгляд,  неправильно с архитектурной точки зрения.

 

В вашем случае Вы можете сохранять состояние карты (центр и мастаб) в вашем контроле масштабирования,

и при взаимодействии пользователя с ним, сверять с ним текущий зум и центр карты (если он изменился, значит карту двигали)

Это мне не совсем подходит, т.к. при клике на метку, тоже есть зум и он должен быть со смещением. Других вариантов нет?

В этом случает храните состояние карты в отдельном объекте,

В контроле масштабирования и обработчиках события клика на метках сверяйте его значение с текущим состоянием карты и обновляйте это состояние

Спасибо, бабушка-бэтмен.

В принципе, такой вариант устроит для частного случая.