使用产品:iObjects .NET 10i 操作系统:win10 x64
数据类型:sourceDataset 类型为二维面数据,
问题详细描述:
使用ConversionAnalyst.VectorToRaster 方法,返回数据为null:
        //矢栅转换
        public DatasetGrid VectorToRaster1(Dataset sourceDataset, Datasource targetDatasource)
        {
            try
            {
                //检查是否存在与结果数据集同名的数据集,如存在则删除
                string targetDatasetName = "resultRaster";
                if (targetDatasource.Datasets.Contains(targetDatasetName))
                {
                    targetDatasource.Datasets.Delete(targetDatasetName);
                }
                //实例化一个转换参数设置对象
                ConversionAnalystParameter conversionParameter = new ConversionAnalystParameter();
                conversionParameter.SourceDataset = sourceDataset;
                conversionParameter.TargetDatasource = targetDatasource;
                conversionParameter.TargetDatasetName = targetDatasetName;
                conversionParameter.PixelFormat = PixelFormat.Double;
                conversionParameter.ValueFieldName = "Value";
                conversionParameter.CellSize = 0.5;
                //转换
                DatasetGrid resultDatasetGrid = ConversionAnalyst.VectorToRaster(conversionParameter);
                return resultDatasetGrid;
            }
            catch (Exception ex)
            {
                Trace.WriteLine(ex.Message);
                return null;
            }
        }
问题:设置断点调试,侦听器在这段代码运行时没有任何报错,但是resultDatasetGrid的值始终都为null。
问题重现步骤:
1.这是获取数据集的操作
                //连接工作空间,显示数据
                v_workspace = new Workspace();
                v_mapControl = new MapControl();
                v_mapControl.Dock = DockStyle.Fill;
                this.Controls.Add(v_mapControl);
                v_mapControl.Map.Workspace = v_workspace;       //绑定
                WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo(fileName+".smwu");
                v_workspace.Open(workspaceConnectionInfo);
                
                Datasets datasets = v_workspace.Datasources[0].Datasets;
               
                //将数据添加到地图
                if (datasets.Contains(datasetName))
                {
                    this.v_mapControl.Map.Layers.Add(datasets[datasetName], true);
                    SetLayerStyle(v_mapControl.Map.Layers[0], Color.Red, 0.2);
                    v_mapControl.Map.Refresh();      //刷新地图
                }
                //调整mapControl1的状态
                v_mapControl.Action = SuperMap.UI.Action.Pan;
                ///获取参与数据转换的数据集
                v_datasource = v_workspace.Datasources[0];
                v_dataset = v_datasource.Datasets[datasetName];
2. 矢栅转换步骤已写在最前面
3. 这是调用矢栅转换方法的代码:
//调用矢栅转换方法
g_datasetGrid = VectorToRaster1(v_dataset,v_datasource);
----再然后调用g_datasetGrid时才会捕捉到错误(因为其值为null)。
4. 这是调试过程中,运行到 return resultDatasetGrid ; 时,监视的几个对象的值:
名称                     |值
sourceDataset     |{SuperMap.Data.DatasetVector}
resultDatasetGrid|null
不知道是哪里出了差错,望路过的大佬们指点一二,感激不尽!!!