如何在OpenLayers中绘制多线?



我已经学会了在Openlayers中绘制对象。

我尝试在用户移动鼠标时绘制虚线。当用户点击时,最后一行和前一行应该被替换成直线。

它是如何工作的,我应该使用两个不同的绘图ayers并在它们之间切换?

或者我可以从绘制对象中检索最后一条线并将其重新绘制在直线上?

我尝试使用官方文件中的这个示例:

https://openlayers.org/en/latest/examples/measure-style.html

有一个解决方案:

  1. 设置特征绘制结束时的标记
draw.on('drawend', function (e) {
e.feature.set('finished',true)
...
});
  1. 重写style函数以区别对待两种情况
function styleFunction(feature, segments, drawType, tip) {
const stroke = style.getStroke()
if (feature.get('finished'))
stroke.setLineDash(null)
else 
stroke.setLineDash([10,10])
...
}