在此示例中,您可以使用LineString类型绘制路径: http://openlayers.org/en/v3.0.0/examples/draw-and-modify-features.html
我想做同样的事,但两点之间只有一条线。设置第二个点后,绘图工具应自动完成绘图。
如何实现这一目标?
答案 0 :(得分:2)
我刚刚在master分支中合并了一个解决用例的提交。请参阅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);
});
答案 1 :(得分:0)
您还可以在ol.interaction.Draw
中设置maxPoints: 2
http://openlayers.org/en/latest/apidoc/ol.interaction.Draw.html
(我猜它自原始答案以来已被添加)