我已经学会了在Openlayers中绘制对象。
我尝试在用户移动鼠标时绘制虚线。当用户点击时,最后一行和前一行应该被替换成直线。
它是如何工作的,我应该使用两个不同的绘图ayers并在它们之间切换?
或者我可以从绘制对象中检索最后一条线并将其重新绘制在直线上?
我尝试使用官方文件中的这个示例:
https://openlayers.org/en/latest/examples/measure-style.html
有一个解决方案:
- 设置特征绘制结束时的标记
draw.on('drawend', function (e) {
e.feature.set('finished',true)
...
});
- 重写style函数以区别对待两种情况
function styleFunction(feature, segments, drawType, tip) {
const stroke = style.getStroke()
if (feature.get('finished'))
stroke.setLineDash(null)
else
stroke.setLineDash([10,10])
...
}