0

我在加载多个谷歌地图的应用程序时遇到问题。第二张地图有一个著名的问题,即显示效果不佳,因为似乎没有正确找到 div 尺寸。我在这里这里检查了建议的解决方案。建议的解决方案都不适合我,因为我现在无法切换到 v3,我会稍后再做,但现在不能。

因此,如何在 google maps API < v3 上触发 resize 事件?我已经尝试过了:

HasLatLng center = mapWidget.getMap().getCenter();
Event.trigger(mapWidget.getMap(), "resize");
mapWidget.getMap().setCenter(center);

但是我的 MapWidget 类没有 getMap() 方法,此外我没有允许将 MapWidget 和 String 作为参数传递的 Event 类。

最后,我在这里也试过这个提议:

private final native void resizeMap(GoogleMap map) /*-{
    $wnd.google.maps.event.trigger(map, 'resize');
}-*/;

但这也不起作用……有什么线索吗?

谢谢!亚历克斯

4

1 回答 1

1

我不熟悉 GWT,但似乎 mapWidget 已经是指向 MapWidget 实例的指针。

也许 checkResizeAndCenter()是你正在寻找的。至少描述听起来很有希望:

通知地图其容器大小的变化并移动到地图的中心。在容器 DOM 对象的大小发生变化后调用此方法,以便地图可以自行调整以适应新的大小。

mapWidget.checkResizeAndCenter();
于 2013-09-14T22:04:33.323 回答