0

Gwt 2.6.1 (Activities and Places フレームワークを使用) と gwt-openlayers 1.0 を使用しています。

Google レイヤー (Google または GoogleV3 インスタンス) を基本レイヤーとして使用すると問題が発生します。マップは表示されますが、ズームやドラッグができず、openlayers コントロールが表示されません (ズーム ボタン、レイヤー スイッチャー、スケール ライン)。F5 (更新) を押した後、問題はなくなり、すべて正常に動作します。Bing ベースレイヤーでは、これらの問題は発生しません。

状況は複雑ですが、再現できます: 3 ページが必要です。

  • 最初: これはようこそページです
  • 2 番目: 空にすることができます。それは場所のトークンを持っています:「secondPage」
  • 3 番目: 地図を含むページ (#mapPage)

ブラウザでアプリケーションを開くと、ようこそページが表示されます。次に、URL の後に 2 番目のページのトークンを入力します (#secondPage)。2 ページ目が表示されたら、ベース URL (#mapPage) の後に 3 ページ目のトークンを入力します。このシナリオに従うと、前述の問題が発生します。

3 ページ目の ui.xml:

<gxt:ContentPanel headerVisible="false" borders="false" bodyBorder="false" height="500px" width="500px"/>

3 ページ目のビュー:

...
@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;
    }
}
4

1 に答える 1