Der folgende Code initialisiert eine Faltblattkarte. Die Initialisierungsfunktion zentriert die Karte basierend auf dem Benutzerstandort. Wie ändere ich die Mitte der Karte nach dem Aufrufen der Initialisierungsfunktion an eine neue Position?
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
Joel James
quelle
quelle
map.flyTo([40.737, -73.923], 8)
Wenn Sie auch zoomen und animieren möchtenpanTo()
,flyTo()
,setView()
- sie alle nehmen mich auf die oben links von der Karte und nicht das Zentrum.Sie können auch verwenden:
Es kommt nur darauf an, welches Verhalten Sie wollen.
map.panTo()
schwenkt mit Zoom- / Schwenkanimation zum Ort, währendmap.setView()
die neue Ansicht sofort auf den gewünschten Ort / die gewünschte Zoomstufe eingestellt wird.quelle
map.setView([40.737, -73.923], 8)
oder als Objektmap.setView({lat:40.737, lng:-73.923}, 8)
map.setView(latlng, map.getZoom(), { animation: true });
Die Verwendung
map.panTo();
bewirkt nichts, wenn sich der Punkt in der aktuellen Ansicht befindet. Verwenden Siemap.setView()
stattdessen.Ich hatte eine Polylinie und musste die Karte jede Sekunde auf einen neuen Punkt in der Polylinie zentrieren. Überprüfen Sie den Code: GUT: https://jsfiddle.net/nstudor/xcmdwfjk/
SCHLECHT: https://jsfiddle.net/nstudor/Lgahv905/
quelle
Sie könnten auch verwenden:
Dadurch wird die Ansichtsebene so eingestellt, dass sie den Grenzen in der Kartenbroschüre entspricht.
quelle