使用产品: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
不知道是哪里出了差错,望路过的大佬们指点一二,感激不尽!!!