首页 文章

OpenLayers在缩小时删除/销毁新功能

提问于
浏览
0

我有一个OpenLayers.Layer.Vector图层,我允许用户创建,修改和删除功能和功能属性 . 点击“保存更改”按钮时会保存更改 . 如果用户创建了一个新功能,然后将一个方向放大,这会导致OpenLayers从图层中删除所有功能,并只添加保存到GeoServer数据库的功能 . 我曾尝试挂到新创建的功能和增加他们回到层对“loadend”事件,但一直的OpenLayers破坏的新特征的几何形状,使他们也没用 . 如何防止OpenLayers在缩小时修改新功能?

1 回答

  • -1

    我已经使用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');
    
    }
    

    }

相关问题