Следующий код инициализирует карту листовок. Функция инициализации центрирует карту в зависимости от местоположения пользователя. Как мне изменить центр карты на новую позицию после вызова функции инициализации?
function initialize() {
map = L.map('map');
L.tileLayer('http://{s}.tile.cloudmade.com/BC9A493B41014CAABB98F0471D759707/997/256/{z}/{x}/{y}.png', {
maxZoom: 18,
attribution: 'Map data © <a href="http://openstreetmap.org">OpenStreetMap</a> contributors, <a href="http://creativecommons.org/licenses/by-sa/2.0/">CC-BY-SA</a>, Imagery © <a href="http://cloudmade.com">CloudMade</a>'
}).addTo(map);
map.locate({setView: true, maxZoom: 8});
}
javascript
leaflet
Джоэл Джеймс
источник
источник
map.flyTo([40.737, -73.923], 8)
если вы хотите масштабировать и анимировать,panTo()
,flyTo()
,setView()
- все они принимают меня в левом верхнем углу карты, а не в центре.Вы также можете использовать:
Это просто зависит от того, какое поведение вы хотите.
map.panTo()
будет перемещатьсяmap.setView()
в нужное место с анимацией масштабирования / панорамирования и сразу же установить новый вид на желаемое местоположение / уровень масштабирования.источник
map.setView([40.737, -73.923], 8)
или объектаmap.setView({lat:40.737, lng:-73.923}, 8)
map.setView(latlng, map.getZoom(), { animation: true });
Использование
map.panTo();
ничего не делает, если точка находится в текущем виде.map.setView()
Вместо этого используйте .У меня была полилиния, и мне приходилось центрировать карту по новой точке полилинии каждую секунду. Проверьте код: ХОРОШО: https://jsfiddle.net/nstudor/xcmdwfjk/
ПЛОХО: https://jsfiddle.net/nstudor/Lgahv905/
источник
Вы также можете использовать:
При этом уровень просмотра будет соответствовать границам в листовке карты.
источник