Как использовать пользовательский кубический Безье для анимации setView в листовке? - PullRequest
0 голосов
/ 10 февраля 2019

Я бы хотел использовать пользовательский кубический Безье при выполнении анимированного setView() в Leaflet.Я узнал о easeLinearity в параметрах панорамирования Leaflet , но это только изменяет третий параметр кубической кривой Безье:

Коэффициент кривизны замедления панорамирования анимации (третий параметркубической кривой Безье).1.0 означает линейную анимацию, и чем меньше это число, тем больше изгибается кривая.

Я пытался использовать опцию easeLinearity, но это просто не правильно.

То, что я ищу, - это способ использовать замедление типа «облегчение входа» или «облегчение выхода», или даже полностью настроенный кубический Безье.Кто-нибудь знает способ достичь этого?

1 Ответ

0 голосов
/ 11 февраля 2019

Анимация панорамирования замедления живет в этом особенном фрагменте кода :

_easeOut: function (t) {
    return 1 - Math.pow(1 - t, this._easeOutPower);
}

Чтобы перейти к пользовательской функции замедления, вам необходимо:

  • Подкласс L.PosAnimation и переопределяет частные методы _step() или _easeOut().
  • Все экземпляры L.Map порождают экземпляр L.PosAnimation.Переопределите это, вставив экземпляр вашего подкласса в (личное) свойство _panAnim вашего L.Map экземпляра, предпочтительно до анимации панорамирования.

Это грязно,это взломано, но возможно.

...