与核密度分析相同,只是指定要素为线要素。
全部代码:
private ILayer lineDesityOp(IFeatureClass pFeatureClass,string pFullPath,double cellsize,double radius)
{
//定义点密度分析类
IDensityOp pDensityOp = new RasterDensityOpClass(); //定义密度分析函数
//设置栅格分析环境
IRasterAnalysisEnvironment pEnv = pDensityOp as IRasterAnalysisEnvironment;
object obj_cellsize = (object)cellsize;
pEnv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref obj_cellsize);
//定义数据描述
IFeatureClassDescriptor pFCD = new FeatureClassDescriptorClass();
pFCD.Create(pFeatureClass, null, pFullPath);
//基本参数
object obj_radius = (object)cellsize;
object Missing = Type.Missing;
//进行线密度转化
IRaster PRaster=pDensityOp.LineDensity(pFCD as IGeoDataset, obj_radius, Missing) as IRaster;
IRasterLayer pRasterLayer = new RasterLayerClass();
pRasterLayer.CreateFromRaster(PRaster);
ILayer pLayer = pRasterLayer as ILayer;
return pLayer;
}