Here's my code :]String targetWorkspacePath = @"O:\EPScratch\GeomaticsGrace\NTR\TestOutput.gdb";
String targetName = "testOut";
IWorkspace targetWorkspace = (IWorkspace)OpenFeatureWorkspace(targetWorkspacePath);
IRasterBand EucDistRas = CreateDistanceOpEucDistanceFullDistanceRaster(FClass as IGeoDataset);
EucDistRas.Copy(targetName, targetWorkspace);
IFeatureWorkspace OpenFeatureWorkspace(string filePath)
{
IWorkspaceFactory WorkspaceFactory = new FileGDBWorkspaceFactoryClass();
IWorkspace Workspace = WorkspaceFactory.OpenFromFile(filePath, 0);
IFeatureWorkspace featureWorkspace = (IFeatureWorkspace)Workspace; // Explict Cast
return featureWorkspace;
}
public IRasterBand CreateDistanceOpEucDistanceFullDistanceRaster(IGeoDataset geoDataset)
{
try
{
if (geoDataset is IRaster | geoDataset is IRasterDataset | geoDataset is IRasterBand | geoDataset is IRasterDescriptor | geoDataset is IFeatureClass)
{
// Create the RasterDistanceOp object
IDistanceOp distanceOp = new RasterDistanceOpClass();
object euc_maxDistance = Type.Missing;
object object_missing2 = Type.Missing;
IGeoDataset geoDataset_result = distanceOp.EucDistanceFull(geoDataset, true, false, false, ref euc_maxDistance, ref object_missing2);
// Access the Euclidean distance raster from the output generated
IRasterBandCollection rasterBandCollection = (IRasterBandCollection)geoDataset_result; // Explicit Cast
IRasterBand rasterBand = rasterBandCollection.Item(0);
IGeoDataset geoDataset_output = (IGeoDataset)rasterBand; // Explicit Cast
return rasterBand;
}
else
{
//Invalid type of GeoDataset for this process
MessageBox.Show("CreateDistanceOpEucDistanceFullDistanceRaster Error: invalid input");
return null;
}
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
return null;
}
}