Leaftlet: принудительное панорамирование - PullRequest
1 голос
/ 11 февраля 2012

В библиотеке Leaflet JS написано:

Сдвиг карты к заданному центру. Делает анимированную панораму, если новый центр не более одного экрана от текущего.

Возможно, это длинный кадр, но кто-нибудь знает, есть ли способ заставить панорамировать более одного экрана? Я не против, если во время панорамирования есть серые плитки.

Источник: http://leaflet.cloudmade.com/reference.html

Ответы [ 2 ]

3 голосов
/ 18 февраля 2012

Я нашел обходной путь для этого:

var offset = map._getNewTopLeftPoint(latlng).subtract(map._getTopLeftPoint();
map.panBy(offset);

Разработчики планируют более прямой API в будущем.

0 голосов
/ 27 ноября 2013

Чтобы добиться панорамирования для нескольких экранов, вы можете использовать setView с animate, установленным на true.

map.setView([latitude, longitude], zoom, {animate: true, duration: 1});

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

...