首页 / 浏览问题 / 组件GIS / 问题详情
iObjects .net 11i 中怎么设置高亮
16EXP 2025年07月29日

问题描述:打开的图层中利用GeometrySelected选中区域进行高亮,再次点击取消高亮,目前用selection设置风格但高亮无法显示,麻烦看下怎么调整可以生效

 private void mapControl_GeometrySelected(object sender, GeometrySelectedEventArgs e)
 {
     try
     {
         //m_mapControl.Map.TrackingLayer.Clear();
         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;
         GeoStyle geostyle = new GeoStyle();
         string name = recordset.GetFieldValue("NAME").ToString().Trim();
         // 遍历选中的要素并设置样式
         selections.SetStyleOptions(StyleOptions.FillForeColor, true);
         recordset.MoveFirst();
         geostyle.FillForeColor = System.Drawing.Color.Blue;
         geostyle.LineSymbolID = 5;
         geostyle.FillOpaqueRate = 100;
         selections.Style = geostyle;
         m_layer.Selection = selections;
         m_mapControl.Map.Refresh();

     }
     catch (Exception ex)
     {
         //MessageBox.Show(ex.Message);
         new Exception("图层高亮失败:"+ex);
         return;
     }
 }

1个回答

1、你这个数据是线图层还是面图层;

如果是线图层,那你设置的LineSymbolID为5的是哪一个风格,我们默认的线id是0;查看一下id为5的风格是咋样的。另外要设置线的颜色,应该用的是LineColor;

如果是面图层,首先需要设置的是FillSymbolID,我们默认的id也是0,然后设置对应的前景色FillBackColor。

需要设置的包括哪些参数,可以提前用桌面打开确认好。然后再用组件代码去写。另外这块儿的代码也可以不用写在对象选中事件里边,直接添加图层成功后,就可以设置这部分代码了

layer.selection.SetStyleOptions();

layer.selection.style = geostyle;
4,635EXP 2025年07月29日
主要我是需要左键点击后高亮,如果这个面区域已经高亮了则取消高亮,如果没有高亮则显示高亮是这样一个操作
...