分享给有需要的人,代码质量勿喷。
/// <summary>
/// 矢量点转栅格
/// </summary>
/// <param name="xjFeatureLayer">矢量图层</param>
/// <param name="RasterPath">栅格绝对路径</param>
/// <param name="CellSize">栅格边长</param>
/// <param name="SecletctedField">所选字段(高程等)</param>
/// <returns>返回栅格图层</returns>
private ILayer xjShpPointToRaster(IFeatureLayer xjFeatureLayer, string RasterPath,
double CellSize, string SecletctedField)
{
IFeatureClass xjFeatureClass = xjFeatureLayer.FeatureClass;
IFeatureClassDescriptor xjFeatureClassDescriptor = new FeatureClassDescriptorClass();//using ESRI.ArcGIS.GeoAnalyst;
xjFeatureClassDescriptor.Create(xjFeatureClass, null, SecletctedField);
IGeoDataset xjGeoDataset = xjFeatureClassDescriptor as IGeoDataset;
IWorkspaceFactory xjwsf = new RasterWorkspaceFactoryClass();//using ESRI.ArcGIS.DataSourcesRaster;
string xjRasterFolder = System.IO.Path.GetDirectoryName(RasterPath);
IWorkspace xjws = xjwsf.OpenFromFile(xjRasterFolder, 0);
IConversionOp xjConversionOp = new RasterConversionOpClass();
IRasterAnalysisEnvironment xjRasteren = xjConversionOp as IRasterAnalysisEnvironment;
object xjCellSize = CellSize as object;
xjRasteren.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref xjCellSize);
string xjFileName = System.IO.Path.GetFileName(RasterPath);
IRasterDataset xjdaset2 = xjConversionOp.ToRasterDataset(xjGeoDataset, "TIFF", xjws, xjFileName);
IRasterLayer xjRasterLayer = new RasterLayerClass();
xjRasterLayer.CreateFromDataset(xjdaset2);
ILayer xjLayer = xjRasterLayer;
xjRasterLayer.Name = xjFileName;
return xjLayer;
}
VS2010窗体+代码见:点击打开链接