我正在使用谷歌地图添加,由tapio,与Vaadin 7.一切似乎工作正常,除了刷新。我按如下方式尝试了一个bean容器:
BeanContainer<String, GoogleMap> maps;
maps = new BeanContainer<String, GoogleMap>(GoogleMap.class);
当我想添加或删除标记时,我重新创建GoogleMap并更新Bean容器地图。我尝试了requestRepaintAll,虽然它已被弃用。如果您可以指导我如何刷新标记而不刷新整个页面/地图,我将不胜感激。
a)是否可以在不影响地图的情况下刷新标记?
b)如果Vaadin使用Ajax向客户端发送更新,我该如何使其适用于标记?
c)是否可以使用标记刷新地图而不使用javascript location.reload()
谢谢
答案 0 :(得分:0)
我能够使用CustomComponent执行此操作,如下所示:
BeanContainer<String, VaadinGoogleMap> map;
...
googleMap = new GoogleMap(new LatLon(39.5, -98.35), 4.0, googleApiKey);
map.addBean(new VaadinGoogleMap("mymap", googleMap);
mapComposite = new MapComposite(map);
...
class MyComposite extends CustomComponent {
public MyComposite(BeanContainer<String, VaadinGoogleMap> bc) {
// A layout structure used for composition
Panel panel = new Panel("My Custom Component");
// Compose from multiple components
panel.setContent(bc.getItem("mymap").getBean().getGoogleMap());
// The composition root MUST be set
setCompositionRoot(panel);
}
}