如何在MAPSUI中移除线要素起止端点位置显示的圆点
Mapsui 编辑状态下线/多边形顶点圆点移除方案
问题原因
你遇到的线、多边形端点/顶点显示的圆点,并非要素所属图层的默认样式渲染生成,而是编辑交互时EditManager单独创建的临时顶点要素的默认样式,因此直接设置Layer.Style = null只会隐藏图层原生矢量要素,无法影响这类临时编辑顶点的显示。
解决方案
方案1:修改EditManager源码(永久生效)
定位到EditManager.cs中的AddVertex方法,该方法的if else分支内包含给新增顶点设置圆点样式的逻辑,直接移除样式赋值代码,或将样式设为null即可:
// 修改前的核心代码逻辑 private void AddVertex(Coordinate coordinate, int? index = null) { // 其余业务逻辑省略 var vertexFeature = new Feature { Geometry = new Point(coordinate), // 删掉下面这行样式赋值,或将值改为null即可关闭圆点渲染 Style = new SymbolStyle { SymbolType = SymbolType.Ellipse, Fill = new Brush(Color.Red), Size = 6 } }; }
方案2:运行时关闭顶点图层(无需修改源码)
如果不需要修改源码,直接在初始化编辑管理器后,将其内置的顶点图层设置为不可用即可:
// 直接关闭顶点图层的渲染,不影响编辑逻辑正常运行 editManager.VertexLayer.Enabled = false;
方案3:清空已存在的顶点要素
如果需要清除已经生成的顶点圆点,可以直接清空顶点图层的要素集合:
editManager.VertexLayer.Features.Clear();
内容的提问来源于stack exchange,提问作者stubProgrammers
相关产品推荐
相关产品推荐

