如何获取地图以正确使用调整大小的容器?

时间:2012-11-21 21:38:34

标签: google-maps-api-3

我搜索了很多,但无法解决这个问题。我正在将地图从v2更新为v3。它允许用户调整地图容器的大小。更改容器大小后,在v2中我刚刚执行map.checkResize()并且它刚刚起作用。对于v3版本,我使用map.fitBounds(map.getBounds())并且它没有做任何我能看到的事情。我在容器的中心保持一个十字准线标记,所以显然v3调整大小不正常。

我还尝试将bounds函数放在'bounds_changed'事件回调函数中,以及回调内外的map.setOptions(mapOptions)。很明显,地图不知道容器大小的变化。如何让地图识别新的容器尺寸?

目前这是在本地测试服务器上,所以我无法提供链接。我可以在实时服务器上做一个说明性的示例,但我希望这是一个足够通用的问题,以使其不必要。我不需要特定的代码,我只想知道我需要做些什么基本步骤才能使地图在新的容器大小中正常工作。

1 个答案:

答案 0 :(得分:1)

在v2 map.checkResize()中,v3中的代码使用如下:

google.maps.event.trigger(map, 'resize');

获得地图容器的大小如下:

var mapDiv = map.getDiv();
var size = new google.maps.Size(mapDiv.offsetWidth, mapDiv.offsetHeight);