首页 / 浏览问题 / 组件GIS / 问题详情
3D选择集怎么赋值?
14EXP 2017年03月16日
Selection3D类 怎么使用?怎么给数据给它?

2 个回答

你好,你是要实现什么样的功能,可以描述一下吗,你可以参考联机帮助:http://support.supermap.com.cn/DataWarehouse/WebDocHelp/iObjectsNet/SuperMapHelp.htm中的selection3d类

33EXP 2017年03月16日

比如固定选中某个图层中的某个对象,

Selection3D
Add

向三维选择集中加入指定的对象,该对象从非选中状态变为选中状态。

我想使用这个方法但是不知道怎么用

可以首先得到一个你要选中的对象记录,然后得到对象的id,通过下面的方法来选中即可

Recordset re = datasetv.Query(qparameter);
            Getselection(re);

//设置选中对象的风格
        private void Getselection(Recordset rec)
        {
            if (rec.RecordCount > 0)
            {
                int[] ids = new int[rec.RecordCount];
                rec.MoveFirst();
                for (int i = 0; i < rec.RecordCount; i++)
                {
                    ids[i] = rec.GetID();
                    rec.MoveNext();
                }
                if (m_formScene.MySceneControl != null)
                {
                    foreach (Layer3D layer3D in m_formScene.MySceneControl.Scene.Layers)
                    {
                        if (layer3D.Name == "xx@xx")
                        {
                            layer3D.Selection.Clear();
                            layer3D.Selection.Style.FillForeColor = Color.Red;
                            layer3D.Selection.AddRange(ids);
                            layer3D.Selection.UpdateData();
                        }
                    }
                }
            }
        }

如果你的选择id是一个,那就layer3D.Selection.Add(id);
Selection3D[] selection = _SceneControl.Scene.FindSelection(true);
GeoStyle3D m_style=new GeoStyle3D();
m_style.FillForeColor=Color.Red;
selection[0].Style = m_style;

你好,是通过获取场景的选择集来给它数据
5,985EXP 2017年03月16日
可以自己定么,比如我在代码里固定某个对手是选中状态?
可以通过Layer3D.Selection .Add(id)方法,将指定的对象添加到选择集中
...