как получить гладкие карты Google panTo (), когда пункт назначения далеко - PullRequest
3 голосов
/ 26 октября 2010

У меня есть две точки на карте Google, и я хочу переключаться между ними, используя плавную анимацию. Используя метод map.panTo (), я могу перемещаться по ним, но анимация работает, только если вторая точка меньше ширины / высоты карты.

Итак, идея, которую я придумала, состоит в том, чтобы разбить переход на что-то вроде:

 var destination = next point 
 get center

 check if the destination is in bounds
 if so
   panTo it
 else
   get the midpoint between center and point
   if midpoint in bounds pan 
   else get midpoint etc....

Так что здесь путешествие разбито на как можно меньше шагов. Проблема в том, что я не могу понять, как реализовать это в коде (рекурсивная проверка средней точки). Любая помощь будет великолепной.

страница, с которой у меня возникла эта проблема: http://amishh4cker.com/geocaching.html

1 Ответ

0 голосов
/ 26 октября 2010
if ( end - start ) &gt width and ( end - start ) &lt maxpandistance then
  midpoint = start + ( end - start ) * .5
  while midpoint is not on screen
    midpoint = start + ( midpoint - start ) * .5
  loop

  panto midpoint
else
  panto end

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

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