IDE 插值

private void iDW插值ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            IFeatureLayer pLayer = axMapControl1.get_Layer(0) as IFeatureLayer;
            //IFeatureLayer pExtentLyr = axMapControl1.get_Layer(1) as IFeatureLayer;
            //IFeatureClass pExtentClass = pExtentLyr.FeatureClass;
            IFeatureClass pFtClass = pLayer.FeatureClass;

            IRasterRadius pRsterRiadius = new RasterRadiusClass();
            int count=12;
            object MaxDistance=Type.Missing;
            pRsterRiadius.SetVariable(count, ref MaxDistance);

            IFeatureClassDescriptor pDes = new FeatureClassDescriptorClass();
            pDes.Create(pFtClass, null, "avg");

            IInterpolationOp2 pInterOP=new RasterInterpolationOpClass();
            IRasterAnalysisEnvironment pEnv = new RasterAnalysisClass();
            pEnv = pInterOP as IRasterAnalysisEnvironment;
            object cellsize=2048; //栅格大小
            pEnv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue    , ref cellsize);
          
            IGeoDataset pGeo = pFtClass   as IGeoDataset;
            object extent=pGeo.Extent;
            object missing = Type.Missing;
            pEnv.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvMaxOf   , ref extent, ref missing);

            IRaster pRaster;
            IRasterLayer pRasterLyr = new RasterLayerClass();
            IGeoDataset pGeoDataSet;
            object Barrier=Type.Missing;
            pGeoDataSet = pInterOP.IDW((IGeoDataset)pDes, 2, pRsterRiadius, ref Barrier);
            MessageBox.Show("插值生成,请等待加载图层....");
            pRaster = pGeoDataSet as IRaster;
            pRasterLyr.CreateFromRaster(pRaster);

            //axMapControl1.ClearLayers();
            axMapControl1.AddLayer(pRasterLyr);
            MessageBox.Show("加载成功,请等待分级渲染.....");

            //开始渲染
            IMap pMap = axMapControl1.Map;
            IRasterLayer pRasterlayer = pMap.get_Layer(0) as RasterLayer;
            IRaster pRaster1;
            pRaster1 = pRasterlayer.Raster;
            IRasterClassifyColorRampRenderer pClassRender = new RasterClassifyColorRampRendererClass();
            IRasterRenderer pRasterRender = pClassRender as IRasterRenderer;
            pRasterRender.Raster = pRaster;
            pClassRender.ClassCount = 10;
            pRasterRender.Update();
            IAlgorithmicColorRamp pRamp = new AlgorithmicColorRampClass();
            pRamp.FromColor = GetColor(225, 0, 128) as IColor;
            pRamp.ToColor = GetColor(135, 42, 8) as IColor;
            pRamp.Size = 10;
            bool K = true;
            pRamp.CreateRamp(out OK);
            ISimpleFillSymbol pFillSymbol = new SimpleFillSymbolClass();
            for (int i = 0; i < pClassRender.ClassCount; i++)
            {
                pFillSymbol.Color = pRamp.get_Color(i);
                pClassRender.set_Symbol(i, pFillSymbol as ISymbol);
                pClassRender.set_Label(i, "等级" + Convert.ToString(i + 1));
            }
            pRasterRender.Update();
            pRasterLyr.Renderer = pClassRender as IRasterRenderer;
            axMapControl1.ActiveView.Refresh();
            MessageBox.Show("成功生成!");
            axTOCControl1.Update();

 

           
        }

 

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/GISSTAR/archive/2009/09/15/4556440.aspx

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值