转自:http://bbs.esrichina-bj.cn/ESRI/thread-47763-1-1.html
IFeatureLayer pfeaturelayer = (IFeatureLayer)this.axMapControl1.get_Layer(0);
IFeatureClass pfeatureclass = pfeaturelayer.FeatureClass;
//IGeoFeatureLayer PgfeatureLKayer;
string fieldname = "Y01";
object dSearchD = 1; //搜索半径
int pSearchCount = 10; //样本点个数
object dCellSize = 1; //栅格大小
double power = 2; //权重
IRasterRadius pRadius = new RasterRadiusClass();
//pRadius.SetFixed(1, ref pSearchCount);
pRadius.SetVariable (pSearchCount ,ref dSearchD);
IFeatureClassDescriptor pfeatureclassdescriptor = new FeatureClassDescriptorClass();
pfeatureclassdescriptor.Create(pfeatureclass, null, fieldname);
IInterpolationOp2 pInterpolationOp = new RasterInterpolationOpClass();
IRasterAnalysisEnvironment pEnv = (IRasterAnalysisEnvironment)pInterpolationOp;
pEnv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref dCellSize);
//设置插值范围
object missing = Type.Missing;
IGeoDataset geo = pfeatureclass as IGeoDataset;
object extentprovider = geo.Extent;
pEnv.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvMaxOf , ref extentprovider, ref missing );
IRaster pOutRsater;
IRasterLayer pOutRasterlayer = new RasterLayerClass();
IGeoDataset pGeoDataSet;
pGeoDataSet = pInterpolationOp.IDW((IGeoDataset)pfeatureclassdescriptor, power, pRadius, ref missing);
pOutRsater = (IRaster)pGeoDataSet;
pOutRasterlayer.CreateFromRaster(pOutRsater);
this.axMapControl1.AddLayer(pOutRasterlayer);