首页 / 浏览问题 / 三维GIS / 问题详情
构建三维自定义专题图出现问题
38EXP 2017年05月09日

如下代码。

  /// <summary>
        /// 根据字段属性,匹配三维符号库
        /// </summary>
        private void AddLayers()
        {
            DatasetVector dataSet_Region = m_data.Datasets["region"] as DatasetVector;

            int[] id = { 1 };
            Recordset recordset = dataSet_Region.Query(id, CursorType.Static);
            GeoRegion georegion = recordset.GetGeometry() as GeoRegion;
            int i = m_sceneControl.Scene.GlobalImage.AddExcavationRegion(georegion, "地表局部透明");

            Theme3DCustom theme3D = new Theme3DCustom();
           theme3D.AltitudeModeExpression = "AltitudeMode";    
           theme3D.MarkerSymbolIDExpression = "SymbolID";
           theme3D.Marker3DScaleXExpression = "ScaleX";
           theme3D.Marker3DScaleYExpression = "ScaleY";
           theme3D.Marker3DScaleZExpression = "ScaleZ";
           theme3D.Marker3DRotateXExpression = "RotationX";
           theme3D.Marker3DRotateYExpression = "RotationY";
           theme3D.Marker3DRotateZExpression = "RotationZ";

            m_layerNetNode = m_sceneControl.Scene.Layers.Add(m_datasetPoint3D, theme3D, true);

            Layer3DSettingVector settingLine = new Layer3DSettingVector();
            settingLine.Style.AltitudeMode = AltitudeMode.RelativeToUnderground;

            settingLine.Style.LineSymbolID = 964526;
            settingLine.Style.LineColor = Color.White;
            settingLine.Style.LineWidth = 0.3;

            m_layerNetLine = m_sceneControl.Scene.Layers.Add(m_datasetLine3D, settingLine, true);
        }

其中m_data是从sqlservice数据库获取的数据源,设置该数据库下的m_datasetLine3D和m_datasetPoint3D点线数据集的符号风格,然后通过scenecontrol控件显示出来,如下:

其中点线的符号显示出问题,这是什么原因

1个回答

您确定您的符号库有这个964526符号吗?
3,389EXP 2017年05月10日
哦 问题找到了~我的数据源是从另一个工作空间下复制数据集导进去的,符号库并没有导入。这样就有一个问题,我想能不能把符号库保存进数据源里,而不是跟数据源保存在一个工作空间里面,在代码读取的时候用DatasourceConnectionInfo直接连接数据源。
不能哦,符号库是保存在工作空间的。
...