Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 是否取消选择当前绘制的特征?_Javascript_Select_Openlayers 3 - Fatal编程技术网

Javascript 是否取消选择当前绘制的特征?

Javascript 是否取消选择当前绘制的特征?,javascript,select,openlayers-3,Javascript,Select,Openlayers 3,我有一个使用OL3的JS代码。我想做的是画线,然后进行捕捉和分割。到目前为止,我已经做了所有的事情,但还有一件小事。我想强调一点,这一点应该被捕捉到,或者说这条线应该被打断。但是,由于此过程在添加新行后立即完成,因此当前添加的行将保持高亮显示。我想在突出显示节点之前取消选择它 以下是我的代码片段: var addFeatureEventListener = vector2.getSource().on('addfeature', addFeatureFunction); function ad

我有一个使用OL3的JS代码。我想做的是画线,然后进行捕捉和分割。到目前为止,我已经做了所有的事情,但还有一件小事。我想强调一点,这一点应该被捕捉到,或者说这条线应该被打断。但是,由于此过程在添加新行后立即完成,因此当前添加的行将保持高亮显示。我想在突出显示节点之前取消选择它

以下是我的代码片段:

var addFeatureEventListener = vector2.getSource().on('addfeature', addFeatureFunction);

function addFeatureFunction(e){
    map.removeInteraction(lineStringdraw);
    vector2.getSource().unByKey(addFeatureEventListener);
    //console.info("the listener is deactivated now....");
    var currentFeture = vector2.getSource().getFeatures()[vector2.getSource().getFeatures().length-1];
    if(!undone){


        var featureGeom = currentFeture.getGeometry();
        console.info(featureGeom.getCoordinates().toString())
        var endNodeCoordinates = featureGeom.getLastCoordinate();
        snapIndex= endNodeCoordinates.length-1;
        selectedFeatures.clear();
        map.renderSync();
        checkSnapping(nodes, endNodeCoordinates, currentFeture);
        if(snap){
            var featureCoordinates = featureGeom.getCoordinates();
            featureCoordinates[featureCoordinates.length-1]= snapToNode;
            featureGeom.setCoordinates(featureCoordinates);
            currentFeture.setGeometry(featureGeom);
            currentFeture.changed();
            snap=false;
        }
        var isPartOf = addSegment(featureID-1);
        currentFeture.getProperties().partOf[isPartOf[0]]=isPartOf[1];
        drawing = false;
        drawing_feature = null;
    }
    if (!sorting){
        var newLines =  checkIntersection(currentFeture);   
    }
    map.addInteraction(lineStringdraw);
    addFeatureEventListener = vector2.getSource().on('addfeature',    addFeatureFunction)
}
当一个特征被添加到图层(addFeatureEventListener)中时,我不得不删除绘制交互。但这会删除该功能。是否有一种方法可以取消选择该功能

提示:要突出显示节点或线,我有一个selectFeatures,一个ol.interaction.Select()对象,我将需要的功能添加到该对象中并渲染地图