Клуб API Карт

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

dmitry.61
26 марта 2017, 16:37

Задача очень простая: пользователь тянет карту, нужно при этом получать координаты центра карты в реальном времени.

В документации нашел 3 события, теоретически относящихся к вопросу, но ни одно из них не подходит:

boundschange - срабатывает однократно в конце.

actiontick и actiontickcomplete - срабатывают постоянно, но они оказались бесполезны, поскольку координаты при этом не обновляются (функция getCenter отдает одни и те же старые координаты, а обновляются они только в самом конце пользовательского действия).

4 комментария
dimik,
о, я ведь находил аналогичный сервис, но видимо старую версию - там такого не было.
Я правильно понял, что нужно из события достать пиксельные координаты и самостоятельно спроецировать их в географические ?
Обновлено 26 марта 2017, 17:40
dmitry.61,
не из события,  я там написал jsdoc на каждый метод со ссылками на документацию. получать пиксельный центр нужно методом getCurrentState
Если внимательно посмотреть там обновление не на каждый actiontick происходит, а с таймаутом (что-то вроде паттерна debounce)
ибо событие кидается слишком часто и обновление ui будет сильно тормозить


в старых версиях сервис был, но в АПИ не было поддержки кинетического драга
Обновлено 26 марта 2017, 17:52
dimik,
да, работает. Причем в Хроме и (что интересно) в IE нормально даже без троттлинга. В ФФ тормозит.
Спасибо.