You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.21 03:45:07