遇到一个奇怪的需求!!!!openlayers的draw绘制,测量有时候会使用到modify允许改变图形的形状,但今天遇到的需求是:“只允许改变lineString(线要素)的顶点去改变线的形状” 废话不多说贴图:
这是由六个点组成的线(蓝色的)正常情况下我们给地图添加midify交互,地图上的线和点都是可以随意改变位置和形状的这里就不多说了哈!
但是现在的需求是线只允许拖动顶点去改变形状,我这里已经实现了,请看图:
拖动端点之后的:
拖动线无法拖动:
其实实现这个需求只需要实例化midify的时候添加两个配置:
insertVertex: false,
insertVertexCondition: function () {
return false;
}
const modify = new Modify({
hitDetection: that.vectorLayer,
source: that.vectorSource,
// 指定只允许移动端点,不允许插入新的节点
insertVertex: false,
insertVertexCondition: function () {
return false;
}
});
this.map.addInteraction(modify);
简单吧,哈哈哈哈哈哈——
如果你也遇到了这种需求并困惑其中不妨试一试,如果解决了您的问题,麻烦点个赞吧,谢谢!!