Saya menanamkan Google Maps ke situs web saya. Setelah Google Maps dimuat, saya perlu memulai beberapa proses JavaScript.
Apakah ada cara untuk mendeteksi secara otomatis ketika Google Maps telah dimuat penuh, termasuk unduhan ubin dan semuanya?
Ada tilesloaded()
metode yang seharusnya menyelesaikan tugas ini dengan tepat tetapi tidak berhasil .
javascript
html
google-maps
Trigonometri
sumber
sumber
google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
Jawaban:
Ini mengganggu saya untuk sementara waktu dengan GMaps v3.
Saya menemukan cara untuk melakukannya seperti ini:
Acara "idle" dipicu ketika peta beralih ke status siaga - semua yang dimuat (atau gagal dimuat). Saya menemukan itu lebih dapat diandalkan kemudian tilesloaded / bounds_changed dan menggunakan
addListenerOnce
metode kode dalam penutupan dieksekusi pertama kali "idle" dipecat dan kemudian acara tersebut dilepaskan.Lihat juga bagian acara di Referensi Google Maps.
sumber
Saya membuat aplikasi seluler HTML5 dan saya perhatikan itu
idle
,bounds_changed
dantilesloaded
peristiwa kebakaran ketika objek peta dibuat dan dirender (bahkan jika itu tidak terlihat).Untuk membuat kode run map saya ketika diperlihatkan untuk pertama kali saya melakukan hal berikut:
sumber
Uncaught ReferenceError: map is not defined
. Saya sudah mencoba menjalankan skrip dengan penundaan dan di akhir skrip saya yang lain tetapi sepertinya tidak berhasil.Jika Anda menggunakan Maps API v3, ini telah berubah.
Di versi 3, Anda pada dasarnya ingin mengatur pendengar untuk
bounds_changed
acara tersebut, yang akan memicu saat memuat peta. Setelah itu dipicu, hapus pendengar karena Anda tidak ingin diinformasikan setiap kali batas viewport berubah.Ini dapat berubah di masa mendatang karena V3 API berkembang :-)
sumber
tilesloaded
acara.Tahun 2018:
https://developers.google.com/maps/documentation/javascript/events
sumber
Jika Anda menggunakan komponen web , maka mereka memiliki ini sebagai contoh:
sumber
GMap2::tilesloaded()
akan menjadi acara yang Anda cari.Lihat GMap2.tilesloaded untuk referensi.
sumber
Di mana variabel
map
adalah objek bertipe GMap2:sumber
Dalam kasus saya, Gambar Ubin diambil dari url jarak jauh dan
tilesloaded
acara jauh dipicu sebelum membuat gambar.Saya dipecahkan dengan mengikuti cara kotor.
sumber
Anda dapat memeriksa
GMap2.isLoaded()
metode ini setiapn
milidetik untuk melihat apakah peta dan semua ubinnya dimuat (window.setTimeout()
atauwindow.setInterval()
Anda adalah teman Anda).Meskipun ini tidak akan memberi Anda aktivitas penyelesaian pemuatan yang tepat, itu harus cukup baik untuk memicu Javascript Anda.
sumber