请问arcengine怎么实现将栅格影像数据导入到栅格目录的操作呢,感谢!
下面这段代码是有问题的
///
/// 导入数据(栅格目录库)
///
/// 栅格目录名称
/// 源数据路径
/// 栅格目录工作空间
///
///
private static bool InputRasterCatalogData(string RCDatasetName, string filepaths, IWorkspace pWorkspace, out Exception eError)
{
eError = null;
try
{
IRasterCatalogLoader pRCLoader = new RasterCatalogLoaderClass();
pRCLoader.Workspace = pWorkspace;
pRCLoader.LoadDatasets(RCDatasetName, filepaths, null);
return true;
}
catch (Exception eX)
{
eError = eX;
MessageBox.Show(eError.ToString());
return false;
}
}
可以使用 IRasterWorkspaceFactory2 接口创建一个栅格工作空间,然后在该工作空间中创建一个栅格目录,最后将栅格数据添加到目录中。
以下是一个示例代码,演示了如何实现将一个栅格数据添加到栅格目录中的操作:
public static bool AddRasterToCatalog(string rasterPath, string catalogPath, string catalogName, out Exception ex)
{
ex = null;
try
{
// 创建栅格工作空间
Type factoryType = Type.GetTypeFromProgID("esriDataSourcesRaster.RasterWorkspaceFactory");
IWorkspaceFactory2 workspaceFactory = (IWorkspaceFactory2)Activator.CreateInstance(factoryType);
IRasterWorkspace2 rasterWorkspace = (IRasterWorkspace2)workspaceFactory.OpenFromFile(catalogPath, 0);
// 创建栅格目录
IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)rasterWorkspace;
IFeatureClassDescription fcDescription = new RasterCatalogDescriptionClass();
IObjectClassDescription ocDescription = (IObjectClassDescription)fcDescription;
IFields fields = ocDescription.RequiredFields;
IFeatureClass featureClass = featureWorkspace.CreateFeatureClass(catalogName, fields, ocDescription.InstanceCLSID, ocDescription.ClassExtensionCLSID, esriFeatureType.esriFTSimple, "Shape", "");
// 添加栅格数据
IRasterCatalogItem catalogItem = new RasterCatalogItemClass();
catalogItem.Name = System.IO.Path.GetFileNameWithoutExtension(rasterPath);
catalogItem.DatasetName = System.IO.Path.GetFileName(rasterPath);
catalogItem.Raster = RasterDataset.OpenFromFile(rasterPath, null);
IFeature feature = featureClass.CreateFeature();
feature.Shape = catalogItem;
feature.Store();
return true;
}
catch (Exception exx)
{
ex = exx;
return false;
}
}
这段代码会将一个指定路径的栅格数据添加到指定路径的栅格目录中。其中,catalogPath 参数是栅格目录的文件夹路径,catalogName 参数是栅格目录的名称,rasterPath 参数是要添加到目录中的栅格数据的路径。如果操作成功,该方法会返回 true,否则会返回 false 并将异常信息写入 ex 参数。