2014-11-09 75 views

回答

2

我刚刚合并到主分支中,提交了一个可以解决您的用例的提交。见https://github.com/openlayers/ol3/pull/2927

通过此提交,您可以以编程方式完成绘图。下面的代码片段展示了如何终止线时,它有两个顶点:

var listenerKey; 
drawInteraction.on('drawstart', function(e) { 
    var feature = e.feature; 
    var lineString = feature.getGeometry(); 
    // finish the drawing when the linestring has 2 vertices 
    listenerKey = lineString.on('change', function(e) { 
    var lineString = e.target; 
    var vertices = lineString.getCoordinates(); 
    if (vertices.length == 3) { 
     drawInteraction.finishDrawing(); 
    } 
    }); 
}); 
drawInteraction.on('drawend', function(e) { 
    ol.Observable.unByKey(listenerKey); 
}); 
+0

是否可以在发行版本3.0中模仿这个finishDrawing()函数? – Bill 2014-11-17 15:52:41

+0

不需要。您必须使用。 – erilem 2014-11-17 18:38:58