首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在v-ol3的OLMap (Openlayers4)中添加一个新的侦听器

在v-ol3的OLMap (Openlayers4)中添加一个新的侦听器
EN

Stack Overflow用户
提问于 2018-07-13 11:24:05
回答 1查看 201关注 0票数 0

在v-OL3(Vaadin 4)的OLMap类中有一个方法为:

代码语言:javascript
复制
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中得到,如下所示,

代码语言: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(开层包装)

EN

回答 1

Stack Overflow用户

发布于 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

有一个片段:

代码语言:javascript
复制
//    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包装器中,然后注册一个事件。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51324019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档