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包装器中,您将有一个事件要注册。

08-05 18:17