Kode berikut menginisialisasi peta selebaran. Fungsi inisialisasi memusatkan peta berdasarkan lokasi pengguna. Bagaimana cara mengubah pusat peta ke posisi baru setelah memanggil fungsi inisialisasi?
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
sumber
sumber
map.flyTo([40.737, -73.923], 8)
jika Anda ingin memperbesar dan menganimasikan jugapanTo()
,flyTo()
,setView()
- semua dari mereka membawa saya ke kiri atas peta, dan tidak pusat.Anda juga bisa menggunakan:
Itu tergantung pada perilaku apa yang Anda inginkan.
map.panTo()
akan menggeser ke lokasi dengan animasi zoom / pan, sementaramap.setView()
segera mengatur tampilan baru ke lokasi / tingkat zoom yang diinginkan.sumber
map.setView([40.737, -73.923], 8)
atau objekmap.setView({lat:40.737, lng:-73.923}, 8)
map.setView(latlng, map.getZoom(), { animation: true });
Penggunaan
map.panTo();
tidak melakukan apa pun jika titik tersebut ada di tampilan saat ini. Gunakanmap.setView()
sebagai gantinya.Saya memiliki polyline dan saya harus memetakan ke titik tengah baru di polyline setiap detik. Cek kodenya: BAIK: https://jsfiddle.net/nstudor/xcmdwfjk/
BURUK: https://jsfiddle.net/nstudor/Lgahv905/
sumber
Anda juga bisa menggunakan:
Ini akan menyetel tingkat tampilan agar sesuai dengan batas di selebaran peta.
sumber