如何刷新标记而不刷新Vaadin中的Google Map?

时间:2014-05-06 15:24:22

标签: java google-maps vaadin7

我正在使用谷歌地图添加,由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()

谢谢

1 个答案:

答案 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);
    }
}