在 Vaadin 的传单插件映射中向 LayersControl 添加监听器 (Java)
Adding a Listener to the LayersControl in a leaflet addon map in Vaadin (Java)
我正在使用传单地图(Java 中的 vaadin 插件)。我想在地图的控制面板中添加一个监听器。
leaflet提供的方法是:
addListener(Class<?> eventType, Object target, Method method)
控制面板包含多个复选框,每个地图层一个复选框。我想知道点击了哪些图层复选框。
"Method" 来自反射,我是反射的新手。不知道怎么写这个Listener。也许有人可以提供帮助。我试过了:
Method m = Class.forName(LMTBLayer.class.getName()).getDeclaredMethod("receiveClick");
field.getMap().getLayersControl().addListener(MouseEvents.ClickEvent.class,layers.getMtbLayer(), m);
"LMTBLayer"是地图层。 "field.getMap().getLayersControl()" returns 控制面板。 "layers.getMtbLayer()" returns 实际图层对象。但是方法 "receiveClick" 从未被调用。
一所大学为我指明了正确的方向。必须将侦听器添加到 vaadin 传单映射中。
map.addBaseLayerChangeListener( );
map.addOverlayAddListener( );
map.addOverlayRemoveListener( );
我正在使用传单地图(Java 中的 vaadin 插件)。我想在地图的控制面板中添加一个监听器。 leaflet提供的方法是:
addListener(Class<?> eventType, Object target, Method method)
控制面板包含多个复选框,每个地图层一个复选框。我想知道点击了哪些图层复选框。
"Method" 来自反射,我是反射的新手。不知道怎么写这个Listener。也许有人可以提供帮助。我试过了:
Method m = Class.forName(LMTBLayer.class.getName()).getDeclaredMethod("receiveClick");
field.getMap().getLayersControl().addListener(MouseEvents.ClickEvent.class,layers.getMtbLayer(), m);
"LMTBLayer"是地图层。 "field.getMap().getLayersControl()" returns 控制面板。 "layers.getMtbLayer()" returns 实际图层对象。但是方法 "receiveClick" 从未被调用。
一所大学为我指明了正确的方向。必须将侦听器添加到 vaadin 传单映射中。
map.addBaseLayerChangeListener( );
map.addOverlayAddListener( );
map.addOverlayRemoveListener( );