0

gwtGoogleMapsv3.8に問題があります

このコードは期待どおりに正常に機能します。

public class TestMaps implements EntryPoint {

    public void onModuleLoad() {
        final SimplePanel sp = new SimplePanel();
        sp.setSize("460px", "320px");
        AjaxLoaderOptions options = AjaxLoaderOptions.newInstance();
        options.setOtherParms("sensor=false&language=en");
        Runnable callback = new Runnable() {
            public void run() {
                LatLng myLatLng = LatLng.create(51.5171, 0.1062);
                MapOptions myOptions = MapOptions.create();
                myOptions.setZoom(12.0);
                myOptions.setCenter(myLatLng);
                myOptions.setMapTypeId(MapTypeId.ROADMAP);
                GoogleMap.create(sp.getElement(), myOptions);
            }
        };
        AjaxLoader.loadApi("maps", "3", callback, options);
        RootPanel.get("GoogleMapsContainer").add(sp);
    }
}

また、マップをTabPanel内に配置すると、灰色の領域が表示されます。

public class TestMaps implements EntryPoint {

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

    public void onModuleLoad() {
        final DecoratedTabPanel dtp = new DecoratedTabPanel();
        final SimplePanel sp = new SimplePanel();
        sp.setSize("460px", "320px");
        AjaxLoaderOptions options = AjaxLoaderOptions.newInstance();
        options.setOtherParms("sensor=false&language=en");
        Runnable callback = new Runnable() {
            public void run() {
                LatLng myLatLng = LatLng.create(51.5171, 0.1062);
                MapOptions myOptions = MapOptions.create();
                myOptions.setZoom(12.0);
                myOptions.setCenter(myLatLng);
                myOptions.setMapTypeId(MapTypeId.ROADMAP);
                GoogleMap map = GoogleMap.create(sp.getElement(), myOptions);
                dtp.add(sp, "Tab1", false);
                resizeMap(map);
                map.setZoom(map.getZoom());

            }
        };
        AjaxLoader.loadApi("maps", "3", callback, options);
        RootPanel.get("GoogleMapsContainer").add(dtp);
    }
}

同様の問題に関する投稿はほとんど見られませんでしたが、どの提案もうまくいきませんでした。コメント、提案をいただければ幸いです。

4

1 に答える 1

0

私はGWTに精通していませんが、タブを追加するときではなく、タブを選択するときにサイズ変更イベントをトリガーする必要があるようです

于 2013-01-16T13:38:46.420 に答える