2015-06-08 8 views
1

Я делаю анимированную карту, показывающую серию точек, используя Mapbox.js. В идеале я хочу плавно переключать фокус между точками, комбинируя масштаб и панорамирование, как это example, созданный в d3.js. Интересно, есть ли в любом случае контроль скорости панорамирования & (в основном, чтобы замедлить ее). В приведенном ниже коде я пробовал функции setView() и panTo(), и переход был слишком быстрым. Любое предложение будет высоко оценено, спасибо!Длительность анимации панорамирования и масштабирования в mapbox.js

L.mapbox.accessToken = "#Token Here"; 
var map = L.mapbox.map('map', 'mapbox.streets') 
     .setView([34.01, -118.48], 5, { 
      pan: { animate: true }, 
      zoom: { animate: true } 
     }); 

map.setView([33.98, -118.42], 5); 

ответ

1

Посмотрите на this fiddle.

Вы можете использовать такую ​​функцию:

function jumpTo(index){ 
    map.setView(positions[index], 4, { 
     pan: { 
      animate: true, 
      duration: 2 
     }, 
     zoom: { 
      animate: true 
     } 
    }); 
} 

и контролировать его на moveend события.

+0

Спасибо! Это работает отлично. Извините, я возвращаюсь к этому немного позже. Кстати, могу я спросить, как вы создали пример скрипта, не подвергая токен доступа к Mapbox? Просто интересно, как я могу сделать то же самое. – jinlong

+0

Добро пожаловать. Как-то я нахожу эту карту id 'examples.map-i86nkdio', и как-то она не требует токена. –

+0

это не работает для меня. Изменен ли API? Я получаю либо ошибки, что lat/long имеет значение null, либо просто переходит в новую позицию и не оживляет. – EJW

 Смежные вопросы

  • Нет связанных вопросов^_^