Poniższy kod inicjuje mapę ulotki. Funkcja inicjalizacji wyśrodkowuje mapę na podstawie lokalizacji użytkownika. Jak zmienić środek mapy na nową pozycję po wywołaniu funkcji inicjalizacji?
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
źródło
źródło
map.flyTo([40.737, -73.923], 8)
jeśli chcesz również powiększać i animowaćpanTo()
,flyTo()
,setView()
- wszystkie z nich zabrać mnie do góry w lewo na mapie, a nie do środka.Możesz także użyć:
Zależy to tylko od tego, jakiego zachowania chcesz.
map.panTo()
przesunie do lokalizacji z animacją powiększania / przesuwania, jednocześniemap.setView()
natychmiast ustawiając nowy widok na żądaną lokalizację / poziom powiększenia.źródło
map.setView([40.737, -73.923], 8)
lub obiektmap.setView({lat:40.737, lng:-73.923}, 8)
map.setView(latlng, map.getZoom(), { animation: true });
Użycie
map.panTo();
nic nie robi, jeśli punkt znajduje się w bieżącym widoku. Użyjmap.setView()
zamiast tego.Miałem polilinię i musiałem wyśrodkować mapę do nowego punktu w polilinii w każdej sekundzie. Sprawdź kod: DOBRY: https://jsfiddle.net/nstudor/xcmdwfjk/
ŹLE: https://jsfiddle.net/nstudor/Lgahv905/
źródło
Możesz również użyć:
Spowoduje to ustawienie poziomu widoku tak, aby pasował do granic ulotki mapy.
źródło