v-ol3(vaadin-Openlayers4)的OLMap类中有一个方法为:
var a = [1, 2, 3];
var b = ["a", "b", "c"];
var c = a.reduce((accumulator, e, index) => {
return accumulator.concat({a: e, b: b[index]});
}, [])
console.log(c);
我们每次点击地图
新的OLmap.ClickListener()
将起作用并调用在onClick()方法内部编写的方法,但是我希望不单击地图,这意味着在渲染地图时,应该有一些侦听器将在某个事件内调用该方法。根据我了解的API,它们是为地图上的ClickListener实现的,现在我想扩展一个供监听器使用的API,该API将在呈现地图时被调用
java中是否有任何此类的侦听器将被称为 应用程序启动后立即开始吗?
实际上我想获取可以在javascript中获得的Point的像素值,如下所示,
map.addClickListener(new OLMap.ClickListener() {
@Override
public void onClick(OLClickEvent clickEvent) {
//calling some method to execute when we click on the map
}
});
但是我想使用v-ol3 jar在Java中实现,但是地图上的click监听器仅实现,而地图呈现的监听器则没有,因此我需要实现哪种监听器? Java中是否有任何类型的侦听器?
Importanat:v-ol3取决于gwt-ol3(GWT_Opelayers)。在里面 gwt-ol3 ol.js(包装了openlayers)
答案 0 :(得分:1)
当该功能不在API中时,原因可能是尚无此代码。现在就是这种情况。
请参阅:
https://github.com/VOL3/v-ol3/blob/master/gwt-ol3/src/main/java/org/vaadin/gwtol3/client/Map.java
有一个摘要:
// public native final void beforeRender()/*-{
// //TODO: find a nice way to do this in GWT
// }-*/;
因此,这是与Map渲染和在ol3-v gwt包装器上加载有关的唯一事件(顶部还有一个vaadin包装器)。
您可以在Internet上搜索有关加载的Map的信息,没有任何方法可以轻松捕获。
OpenLayers: How to detect the map view is completely loaded?
讲述如何做,它需要监视Map上每层的开始和就绪事件。然后,在完成这些操作之后(您不再计算将要加载的内容),将代码包装在gwt包装器中,最后到vaadin包装器中,您将有一个事件要注册。