我将jqueryUI元素添加到Google地图的地图控件中,当手风琴展开时,它将与另一个UI元素碰撞。 我曾经使用过resize事件来重绘google maps UI来进行间距修复,现在他们在3.32+中将其删除。
我当前正在使用map.setCenter(map.getCenter());
,但在某些情况下会发生某些比赛情况,并且在将其地图放大到其他状态时,它将使美国的地图居中。不仅如此,获得中心和设置中心似乎很慢。我过去每50毫秒触发一次resize
,以使动画在用户界面上保持平滑,但我无法通过居中进行操作,因为它每250毫秒发生一次
我尝试了map.setZoom(map.getZoom());
,它不太容易出现比赛情况,而且速度很快,但是将缩放比例设置为完全相同的缩放比例会触发getTile调用,并使我的overlayview闪烁
答案 0 :(得分:1)
您仍然可以收听窗口resize
事件并在地图上触发具有相同名称的事件。
var map = new google.maps.Map(document.getElementById("map_div"), {
center: new google.maps.LatLng(33.808678, -117.918921),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
});
// listen for the window resize event & trigger Google Maps to update too
window.onresize = function() {
var currCenter = map.getCenter();
google.maps.event.trigger(map, 'resize');
map.setCenter(currCenter);
};
<div id="map_div" style="height: 400px;"></div>
<script src="https://maps.googleapis.com/maps/api/js">
</script>