我使用 Gwt 2.6.1(带有活动和地点框架)和 gwt-openlayers 1.0
当我使用 google 层(Google 或 GoogleV3 实例)作为基础层时,问题就出现了。地图出现,但我无法缩放或拖动,并且显示中缺少 openlayers 控件(缩放按钮、图层切换器、比例线)。按下 F5(刷新)后,问题消失了,一切正常。使用 Bing baselayer 不会出现这些问题。
情况很复杂,但可以重现:您需要 3 页。
- 首先:这是欢迎页面
- 第二:它可以是空的。它有一个地方标记:“secondPage”
- 第三:包含地图的页面(#mapPage)
当您在浏览器中打开应用程序时,您可以看到欢迎页面。然后在 url (#secondPage) 之后键入第二页的令牌。显示第二页后,在基本 url (#mapPage) 之后键入第三页的令牌。如果您遵循这种情况,就会出现上述问题。
第三页的ui.xml:
<gxt:ContentPanel headerVisible="false" borders="false" bodyBorder="false" height="500px" width="500px"/>
第三页的视图:
...
@Override
public Widget asWidget() {
this.widget = TestView.uiBinder.createAndBindUi(this);
((ContentPanel) TestView.this.widget).add(TestGoogle.getMap());
return this.widget;
}
...
测试谷歌类:
public class TestGoogle {
public static MapWidget getMap() {
MapOptions defaultMapOptions = new MapOptions();
defaultMapOptions.setNumZoomLevels(16);
MapWidget mapWidget = new MapWidget("100%", "100%", defaultMapOptions);
GoogleV3Options gHybridOptions = new GoogleV3Options();
gHybridOptions.setIsBaseLayer(true);
gHybridOptions.setType(GoogleV3MapType.G_NORMAL_MAP);
GoogleV3 gHybrid = new GoogleV3("Google Hybrid", gHybridOptions);
Map map = mapWidget.getMap();
map.addLayer(gHybrid);
map.addControl(new LayerSwitcher());
map.addControl(new OverviewMap());
map.addControl(new ScaleLine());
LonLat lonLat = new LonLat(6.95, 50.94);
lonLat.transform(ProjectionCode.LONGLAT.getEpsgCode(), map.getProjection());
map.setCenter(lonLat, 12);
return mapWidget;
}
}