GWT MapWidget中的错误

时间:2011-03-21 20:10:17

标签: gwt

我正在尝试将MapWidget添加到VerticalPanel但是添加了地图 左角:

Screenshot

我添加了标记,标记应该以图像为中心 我加载地图时看不到标记。我应该导航到这个 显示地图的位置。

此代码

private FormPanel form = new FormPanel();

private VerticalPanel main = new VerticalPanel();



public Map(){

  ScrollPanel container = new ScrollPanel();

  initWidget(container);

  container.setStyleName("FuoEgForm");

  form.setWidget(main);

  main.setSpacing(6);

  container.add(main);
}

public MapWidget addMapWidget(){

  MapWidget map = new MapWidget();

  //map.setSize("100%", "100%");
  map.setStyleName("gwt-map");
  map.removeMapType(MapType.getNormalMap());
  map.removeMapType(MapType.getSatelliteMap());
  map.addMapType(MapType.getPhysicalMap());
  map.addMapType(MapType.getHybridMap());
  map.setCurrentMapType(MapType.getHybridMap());

  //map.setSize("100%", "100%");
  map.setWidth("500px");
  map.setHeight("500px");
  main.add(map);

}

我该如何解决这个问题?地图应填灰色 边界?

2 个答案:

答案 0 :(得分:0)

从gwt-maps-1.1开始,MapWidget实现了RequiresResize接口。当添加到支持此接口的面板(例如DockLayoutPanel)时,只要调整包含窗口小部件的面板,窗口小部件就会自动调用map.checkResizeAndCenter()。此新功能可以将地图大小设置为两个方向的100%,并填满屏幕上的可用空间。要正确使用LayoutPanel子类,请确保将html页面设置为使用标准模式,方法是添加为文档中的第一行。

在gwt-maps 1.0中,可能需要在最初添加地图后强制地图调整其布局大小。您可以使用MapWidget.checkResizeAndCenter()方法来清理它。您可能需要使用DeferredCommand或其他机制延迟调用此函数,以等待DOM布局传递后调用调整大小的地图。

或者您可以发现意外的另一个意外原因发生在我身上

我让地图看不见@constructor 然后在单击按钮时将其设置为可见

解决方案 使地图始终可见:)

答案 1 :(得分:0)

我在 add(map)

下面插入这些行
LatLng c = mapWidget.getCenter();
resizeMap(mapWidget.getMVCObject());
mapWidget.setCenter(c);