我有一个OpenLayers.Layer.Vector图层,我允许用户创建,修改和删除功能和功能属性 . 点击“保存更改”按钮时会保存更改 . 如果用户创建了一个新功能,然后将一个方向放大,这会导致OpenLayers从图层中删除所有功能,并只添加保存到GeoServer数据库的功能 . 我曾尝试挂到新创建的功能和增加他们回到层对“loadend”事件,但一直的OpenLayers破坏的新特征的几何形状,使他们也没用 . 如何防止OpenLayers在缩小时修改新功能?
我已经使用featuresremoved事件来获取所有已删除的功能,然后我验证它是否为“插入”状态 . 为了防止多次缩小时的多次插入,我给了该功能一个中间状态 . 并在loadend上进行插入,再次将状态更改为“Insert” . 请注意,我一次只有一个编辑层 .
var nuevas_features = null; .... .... .... .... eventListeners: { 'loadstart': function(evt) { nuevas_features = null; }, 'featuresremoved' : function(algunfeature) { nuevas_features = null; nuevas_features = new Array(); $(algunfeature.features).each(function(index, feature) { if(feature.state === 'Insert' ) { var feature_clonada = feature.clone(); feature_clonada.state = "transicion"; nuevas_features.push(feature_clonada); } }); }, 'loadend': function(evt) { $(nuevas_features).each(function(index, feature) { feature.state = "Insert"; editingLayer.addFeatures(feature); }); console.log('end'); }
}
1 回答
我已经使用featuresremoved事件来获取所有已删除的功能,然后我验证它是否为“插入”状态 . 为了防止多次缩小时的多次插入,我给了该功能一个中间状态 . 并在loadend上进行插入,再次将状态更改为“Insert” . 请注意,我一次只有一个编辑层 .
}