在我的网站上,我有许多谷歌地图(v3),您可以通过TabPanel(每个标签一个)选择,但切换标签时出现问题。当您选择选项卡时,它不会“唤醒”地图。要解决这个问题,我只需要使用ResizeEvent.fire( source ,Window.getClientWidth(),Window.getClientHight());这将激活地图上的调整大小侦听器并“唤醒它”。我的问题是我无法获得指向浏览器窗口的已注册调整大小处理程序的指针(它在com.google.gwt.user.client.Window.handlers中受到包保护)因此我不知道要使用什么作为我的源代码。如果有人对我的解决方案或其他可能的解决方案有答案,我们将不胜感激。
谢谢,汤姆
答案 0 :(得分:0)
我不确定使用resize是否是执行此操作的最佳方式(我之前没有嵌入地图),但您可以考虑使用TabLayoutPanel而不是TabPanel,并调用面板。onResize()代替触发resize事件。请注意,您需要使用* LayoutPanel(或实现ProvidesResize的内容)一直到文档的根目录,并且您的页面需要以标准模式呈现。
答案 1 :(得分:0)
感谢您的回复,但我发现这三行:
HasLatLng center = mapWidget.getMap().getCenter();
Event.trigger(mapWidget.getMap(), "resize");
mapWidget.getMap().setCenter(center);
做的伎俩。这基本上是最初加载地图时发生的情况。在MapWidget的onLoad()方法中,它调用super.onLoad()然后执行这三行“唤醒”地图并保留中心点。
答案 2 :(得分:0)
如果您使用GWT-Maps-V3-Api,triggerResize()
类中有一个MapWidget
函数可以解决此问题。