Используйте CSS, чтобы скрыть div, который содержит вашу карту. Используйте addEventListenerOnce()
на вашей карте, чтобы прослушать событие idle
или, возможно, событие bounds_changed
. (Возможно, вам придется поэкспериментировать, чтобы увидеть, какое событие дает вам лучший результат.) Когда событие запускается, сделайте div, который держит вашу карту видимым.
Существует как минимум два разумных способа показать индикатор прогресса во время ожидания события. Вы можете иметь его в отдельном div, который (в дополнение к раскрытию div карты) вы прячете, когда происходит событие. Или вы можете обернуть карту div внутри другого div и установить фоновое изображение для этого div в качестве анимированного изображения индикатора прогресса.
В конце ваш код может напоминать этот блок, который мне пришлось написать не так давно:
document.getElementById("map_canvas").style.visibility = "hidden";
var mapType = new google.maps.ImageMapType({
tileSize: new google.maps.Size(256,256),
getTileUrl: function(coord,zoom) {
return 'img/tiles/'+zoom+'/'+coord.x+'/'+coord.y+'.png';
}
});
var map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
map.overlayMapTypes.insertAt(0, mapType);
google.maps.addListenerOnce(map, 'idle', function() { document.getElementById("map_canvas").style.visibility = "visible";});