首页 / 浏览问题 / 组件GIS / 问题详情
iObjects .net 11i 选中的元素无法自定义颜色
13EXP 2025年07月24日
问题描述:mapControl_GeometrySelected事件中选中某个元素,该元素显示高亮,目前用跟踪图层TrackingLayer可以实现,但无法自定义颜色,如果需要自定义颜色该怎么解决?

1个回答

不可以操作选中对象

不过我们可以复制一个选中对象的geometry,然后设置自定义颜色并在地图上渲染

希望能帮助到您
1,410EXP 2025年07月25日

现在代码是这样写,怎么将样式添加上去

private void mapControl_GeometrySelected(object sender, GeometrySelectedEventArgs e)
{
    try
    {
        //m_mapControl.Map.TrackingLayer.Clear();
        m_mapControl.Map.Layers.Remove(m_themeLayerName);
        Selection selections = m_mapControl.Map.FindSelection(true)[0];
        if (selections == null && selections.Count == 0) return;

        // 获取当前线图层的选择记录集
        Recordset recordset = selections.ToRecordset();
        if (recordset == null || recordset.RecordCount == 0) return;
        // 构造高亮样式
        //LayerSettingVector setting = new LayerSettingVector();
        //setting.Style = style;
        GeoStyle geostyle1 = new GeoStyle();
        geostyle1.FillForeColor = Color.Red;
        geostyle1.FillOpaqueRate = 50;
        geostyle1.LineSymbolID = 5;
        // 遍历选中的要素并设置样式
        recordset.MoveFirst();
        if (!recordset.IsEOF)
        {
            Geometry geo = recordset.GetGeometry();
            if (geo != null)
            {
                // 创建高亮图层或使用已有高亮图层
                TrackingLayer trackingLayer = m_mapControl.Map.TrackingLayer;
                trackingLayer.Add(geo, "highlight");
            }
        }

    }
    catch (Exception ex)
    {
        //MessageBox.Show(ex.Message);
        return;
    }
}

...