setMap()似乎没有回调或事件侦听器,但我找到了一种方法来实现我想要的。我正在使用jQuery加载Google地图。这是我的密码。
初始化映射时,我为“idle”事件设置了一个侦听器,它隐藏了“loading”动画。每当地图在滚动或缩放更改后完成重绘时,就会触发“空闲”事件:
google.maps.event.addListener(this.map, 'idle', function() {
$('#loading').hide();
});
// clear overlays from the map
function clearOverlays() {
$('#loading').show();
// clear the markers from the active data array
if (activeData) {
for (i in activeData) { activeData[i].setMap(null); }
}
activeData = '';
// very slightly recenter the map to trigger the 'idle' event
var centerlat = MYMAP.map.getCenter().lat();
var centerlng = MYMAP.map.getCenter().lng() + .000000001;
recenter = new google.maps.LatLng(centerlat, centerlng);
MYMAP.map.setCenter(recenter);
}
这是一个有点黑客,但我希望其他人觉得这是有用的。