AE中的IDW2

来源:互联网 发布:在电脑上怎么编程 编辑:程序博客网 时间:2024/04/28 18:54

          转自: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);

原创粉丝点击