前言
在上一篇的基础上继续开发,补充上吸附功能、删除矢量、挖孔功能。
实现
1. 吸附
参考官方案例:Snap Interaction
2. 删除
通过 removeFeature 直接移除选中的要素。
3. 挖孔
首先是引入 Turf.js ,然后通过 mask 方法来实现挖孔的效果:
4. 扩展
扩展区域其实就是对两个矢量进行合并操作,通过 Turf.js 的 union 来实现:
最后
这个项目开发到这一步的时候,因为缺少前期的架构设计与功能设计,再加上自己的技术不够硬,各个功能间已经是高度耦合了。
我现在确实可以对各个方法进行解耦,但是感觉这么做可能会让代码变得更加臃肿。而且因为要实现的也不是特别复杂的项目,所以就先继续做着了。
指路
项目地址:cswwww/geojson-editor-ol
系列专栏:
【GeoJSON在线编辑平台】(0)项目启动与前言-CSDN博客
【GeoJSON在线编辑平台】(1)创建地图+要素绘制+折点编辑+拖拽移动-CSDN博客