v-ol3(vaadin-Openlayers4)的OLMap类中有一个方法如下:
map.addClickListener(new OLMap.ClickListener() {
@Override
public void onClick(OLClickEvent clickEvent) {
//calling some method to execute when we click on the map
}
});
每当我们点击地图时
新的OLmap.ClickListener()
将采取行动并将调用onClick()方法内部编写的方法,但我希望不单击地图,这意味着在渲染地图时,应该有一些侦听器将在某个事件内调用该方法。根据我所理解的API,它们是为地图上的ClickListener实现的,现在我想扩展一个Listener,该API将在呈现地图时调用
java中是否有任何此类的监听器会被调用
应用程序启动后立即启动?
实际上,我想获取可以在javascript中获取的Point的像素值,如下所示,
map.once('postrender', function() {
var geometry = polyFeature.getGeometry();
var coordinate = geometry.getCoordinates();
var pixel1 = map.getPixelFromCoordinate(coordinate);
});
map.setView(view)
但是我想使用v-ol3 jar在Java中实现,但是地图上的click侦听器仅实现,而地图呈现的侦听器则没有,因此我需要实现哪种类型的Listener或是否有任何一种的侦听器在java中?
Importanat:v-ol3取决于gwt-ol3(GWT_Opelayers)。在里面
gwt-ol3的ol.js(openlayers包装)
最佳答案
如果该功能不在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包装器中,您将有一个事件要注册。