gwt-openlayers的Google图层显示错误

时间:2014-08-18 15:34:35

标签: gwt google-maps-api-3 openlayers gwt-activities gwt-openlayers

我使用Gwt 2.6.1(带有Activities和Places框架)和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;
}
...

TestGoogle类:

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;
    }
}

1 个答案:

答案 0 :(得分:0)

我发现了这个问题。我在主页中包含了两次google maps api脚本。