在v-OL3(Vaadin 4)的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实现的,现在我想为一个监听器扩展一个API,该监听器在呈现映射时将被调用。
java中是否有这样的监听器在应用程序启动后立即调用?
实际上,我想得到点的像素值,它可以在javascript中得到,如下所示,
map.once('postrender', function() {
var geometry = polyFeature.getGeometry();
var coordinate = geometry.getCoordinates();
var pixel1 = map.getPixelFromCoordinate(coordinate);
});
map.setView(view)但是我想使用v-OL3jar在java中实现,但是只有对映射上的单击侦听器而不是对映射呈现的侦听器的实现,所以我需要实现哪种监听器,或者在java中有任何类型的侦听器?
Importanat:vOL3依赖于gwt-ol3(GWT_Opelayers)。在gwt-ol3中,ol.js(开层包装)
发布于 2018-07-16 11:30:37
当该功能不在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
// }-*/;因此,这是唯一与OL3-vgwt包装上的Map呈现和加载相关的事件(在它的上面还有一个vaadin包装器)。
你可以搜索有关地图加载的互联网,没有办法轻松地抓住。
OpenLayers: How to detect the map view is completely loaded?
告诉它如何做,它需要监视开始和准备事件的每一层地图。然后,在完成这些操作(计算不再加载任何内容)之后,在gwt包装器中包装代码,最后将代码包装到vaadin包装器中,然后注册一个事件。
https://stackoverflow.com/questions/51324019
复制相似问题