标签:
private void IDWpointToRaster() { 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 = 100; //object MaxDistance = Type.Missing; object MaxDistance = 10; pRsterRiadius.SetVariable(count, ref MaxDistance); IFeatureClassDescriptor pDes = new FeatureClassDescriptorClass(); pDes.Create(pFtClass, null, "AQI"); IInterpolationOp2 pInterOP = new RasterInterpolationOpClass(); IRasterAnalysisEnvironment pEnv = new RasterAnalysisClass(); pEnv = pInterOP as IRasterAnalysisEnvironment; object cellsize = 0.014800000; pEnv.SetCellSize(esriRasterEnvSettingEnum.esriRasterEnvValue, ref cellsize); IGeoDataset pGeo = pExtentClass as IGeoDataset; object extent = pGeo.Extent; object missing = Type.Missing; //pEnv.SetExtent(esriRasterEnvSettingEnum.esriRasterEnvMaxOf, ref extent, ref missing); //IGeoDataset pGeo2 = pExtentClass as IGeoDataset;//选择插值范围 //pEnv.Mask = pGeo2; IRaster pRaster; IRasterLayer pRasterLyr = new RasterLayerClass(); IGeoDataset pGeoDataSet; object Barrier = Type.Missing; pGeoDataSet = pInterOP.IDW((IGeoDataset)pDes, 9, pRsterRiadius, ref Barrier); pRaster = pGeoDataSet as IRaster; pRasterLyr.CreateFromRaster(pRaster); //axMapControl1.ClearLayers(); axMapControl1.AddLayer(pRasterLyr,2); //开始渲染 IMap pMap = axMapControl1.Map; IRasterLayer pRasterlayer = pMap.get_Layer(2) as RasterLayer; IRaster pRaster1; pRaster1 = pRasterlayer.Raster; IRasterClassifyColorRampRenderer pClassRender = new RasterClassifyColorRampRendererClass(); IRasterRenderer pRasterRender = pClassRender as IRasterRenderer; //获取直方图 IRasterBandCollection IRBandCo = pRaster1 as IRasterBandCollection; IRasterBand pRasterband = IRBandCo.Item(0); if (pRasterband.Histogram == null) { pRasterband.ComputeStatsAndHist();//生成直方图 } pRasterRender.Raster = pRaster1; pClassRender.ClassCount = 6;//10 pRasterRender.Update(); IEnumColors pEnumColor; pEnumColor = CreateColor(); ISimpleFillSymbol pFillSymbol = new SimpleFillSymbolClass(); string[] classfy ={"优","良","轻度污染","中度污染","严重污染","重度污染"}; for (int i = 0; i < pClassRender.ClassCount; i++) { pFillSymbol.Color = pEnumColor .Next (); pClassRender.set_Symbol(i , pFillSymbol as ISymbol); pClassRender.set_Label(i, "污染等级 = " + classfy [i]); } pRasterRender.Update(); pRasterLyr.Renderer = pClassRender as IRasterRenderer; //CaiJian(pGeoDataSet ,pGeo ,true);//裁剪方法 axMapControl1.ActiveView.Refresh(); axTOCControl1.Update(); }
标签:
原文地址:http://www.cnblogs.com/MansonsBlog/p/5738912.html