Le code suivant initialise une carte de dépliant. La fonction d'initialisation centre la carte en fonction de l'emplacement de l'utilisateur. Comment changer le centre de la carte à une nouvelle position après avoir appelé la fonction d'initialisation?
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
Joël James
la source
la source
map.flyTo([40.737, -73.923], 8)
si vous voulez zoomer et animer aussipanTo()
,flyTo()
,setView()
- tous me prendre au coin supérieur gauche de la carte, et non au centre.Vous pouvez aussi utiliser:
Cela dépend simplement du comportement que vous souhaitez.
map.panTo()
effectuera un panoramique vers l'emplacement avec une animation de zoom / panoramique, toutmap.setView()
en définissant immédiatement la nouvelle vue sur l'emplacement / le niveau de zoom souhaité.la source
map.setView([40.737, -73.923], 8)
ou un objetmap.setView({lat:40.737, lng:-73.923}, 8)
map.setView(latlng, map.getZoom(), { animation: true });
L'utilisation
map.panTo();
ne fait rien si le point est dans la vue courante. Utilisezmap.setView()
plutôt.J'avais une polyligne et je devais centrer la carte sur un nouveau point de la polyligne à chaque seconde. Vérifiez le code: BON: https://jsfiddle.net/nstudor/xcmdwfjk/
MAUVAIS: https://jsfiddle.net/nstudor/Lgahv905/
la source
Vous pouvez également utiliser:
Cela définira le niveau de vue pour qu'il corresponde aux limites du dépliant de la carte.
la source