Google 图层与 gwt-openlayers 出现错误

Posted

技术标签:

【中文标题】Google 图层与 gwt-openlayers 出现错误【英文标题】:Google layer appears wrong with gwt-openlayers 【发布时间】:2014-08-18 15:34:34 【问题描述】:

我使用 Gwt 2.6.1(带有活动和地点框架)和 gwt-openlayers 1.0

当我使用 google 层(Google 或 GoogleV3 实例)作为基础层时,问题就出现了。地图出现,但我无法缩放或拖动,并且显示中缺少 openlayers 控件(缩放按钮、图层切换器、比例线)。按下 F5(刷新)后,问题消失了,一切正常。 使用 Bing baselayer 不会出现这些问题。

情况复杂但可以重现: 您需要 3 页。

首先:这是欢迎页面 second:可以为空。它有一个地点标记:“secondPage” 第三个:包含地图的页面(#mapPage)

当您在浏览器中打开应用程序时,您可以看到欢迎页面。然后在 url (#secondPage) 之后键入第二页的令牌。显示第二页后,在基本 url (#mapPage) 之后键入第三页的令牌。 如果你遵循这种情况,就会出现上面提到的问题。

第三页的ui.xml:

<gxt:ContentPanel headerVisible="false" borders="false" bodyBorder="false"  />

第三页的视图:

...
@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】:

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

【讨论】:

以上是关于Google 图层与 gwt-openlayers 出现错误的主要内容,如果未能解决你的问题,请参考以下文章

ios开发之图层与核心动画一:图层CALayer的认识

ps图层与切图

如何将子层与 UIView 一起移动?

网页背景制作

星空头像

arcmap 如何将两个不一样的图层合并到一块