Я не думаю, что Google Maps может сохранить состояние карты, вы должны сделать это самостоятельно.
Вы правильно использовали событие ожидания, чтобы инициировать наложения. Событие бездействия запускается каждый раз, когда карта становится бездействующей после масштабирования или панорамирования, поэтому, если вы хотите, чтобы один раз прослушиватель события бездействия (или любого другого события), вы могли сделать это следующим образом:
var map = new google.maps.Map(document.getElementById("map"), myOptions);
var initListener = google.maps.event.addListener(map, 'idle', function() {
// do your code here
google.maps.event.removeListener(initListener);
});
Если вы хотите сохранить масштаб и центр карты после загрузки kml, вы должны использовать опцию KmlLayer preserveViewport:
var kmlLayer = new google.maps.KmlLayer( myKml.kml, {preserveViewport: true});