我们正在开发我们的Gis应用程序,我使用的是gwt-openlayers,我们正在创建Vaadin包装器。
因此,我扩展了MapWidget,创建了所需的层和向量层,并添加了一个DrawFeatureControl:
DrawFeatureOptions drawFeatureOptions = new DrawFeatureOptions();
private DrawFeature drawFeaturePoint = = new DrawFeature(vectorLayer, new PointHandler(), drawFeatureOptions);为了赶上这一事件:
getWidget().getDrawFeatureOptions().onFeatureAdded(new () {
@Override
public void (com.openlayers.client.feature.VectorFeature vectorFeature) {
Window.alert("Feature Added" + vectorFeature.getFID());
serverRpc.featureAdded(buildVectorFeature(vectorFeature));
}
});由于某些原因,这是不起作用的;尽管以下内容几乎应该是相同的,但工作正常:
getWidget().getVectorLayer().addVectorFeatureSelectedListener(new () {
@Override
public void onFeatureSelected(FeatureSelectedEvent eventObject) {
serverRpc.featureSelected(buildVectorFeature(eventObject.getVectorFeature()));
}
}); 在向量层上使用(addVectorFeatureAddedListener)将在每次向VectorLayer中添加特性时触发,并且在使用DrawFeatureControl时不会触发。有人能帮助我捕捉使用DrawFeatureControl绘制的特性吗?
顺便说一句,我在BBox上有一个集群和MapWidget分层,我不知道这是否改变了什么。
发布于 2014-01-07 07:01:09
我找到了,因为某种原因
getDrawFeatureOptions().onFeatureAdded 做不到这一点,我不得不使用以下方法在GWT中注入侦听器:
getWidget().getDrawFeaturePoint().eventListeners.addListener(getWidget().getDrawFeaturePoint(), featurePointAddedlistener, EventType.VECTOR_FEATURE_ADDED, new EventHandler() {
@Override
public void onHandle(EventObject eventObject) {
FeatureAddedEvent e = new FeatureAddedEvent(eventObject);
featurePointAddedlistener.onFeatureAdded(e);
}
}); 发布于 2014-01-04 20:34:09
您是否知道Vaadin为OpenLayers在Vaadin中使用OpenLayers提供了自己的包装?
https://stackoverflow.com/questions/20900793
复制相似问题