/// <summary>
        /// 栅格分级渲染(注意选中字段唯一值个数不能小于设置的唯一值个数)
        /// </summary>
        /// <param name="rasterClassRenderer">分级渲染设置</param>
        /// <param name="pStyleGalleryItem">颜色带样式</param>
        public void ClassRenderer(IRasterClassifyColorRampRenderer rasterClassRenderer,
                                  IStyleGalleryItem pStyleGalleryItem)
        {
            if (pStyleGalleryItem == null)
            {
                MessageBox.Show(@"Color ramp cannot be empty");
                return;
            }
            IRasterRenderer rasterRend = (IRasterRenderer)rasterClassRenderer;

            rasterRend.Raster = rasterLayer.Raster;
            rasterRend.Update();
            IEnumColors enumColors = RenderHelper.GetColorRamp(pStyleGalleryItem, rasterClassRenderer.ClassCount).Colors;

            enumColors.Reset();
            IFillSymbol fillSymbol = new SimpleFillSymbolClass();

            for (int i = 0; i < rasterClassRenderer.ClassCount; i++)
            {
                fillSymbol.Color = enumColors.Next();
                rasterClassRenderer.set_Symbol(i, (ISymbol)fillSymbol);
                string label = Math.Round(rasterClassRenderer.Break[i], 2) + "-"
                               + Math.Round(rasterClassRenderer.Break[i + 1], 2);
                rasterClassRenderer.set_Label(i, label);
            }
            rasterLayer.Renderer = rasterRend;
        }
 private void method_4(IColorRamp icolorRamp_1,
                       IRasterClassifyColorRampRenderer irasterClassifyColorRampRenderer_1, int int_0, ITable itable_0,
                       string string_0, string string_1)
 {
     try
     {
         bool flag;
         if (string_0.Length > 0)
         {
             irasterClassifyColorRampRenderer_1.ClassField = string_0;
         }
         if (string_1.Length > 0)
         {
             irasterClassifyColorRampRenderer_1.NormField = string_1;
         }
         IRasterRenderer renderer = (IRasterRenderer)irasterClassifyColorRampRenderer_1;
         renderer.Raster = this.irasterLayer_0.Raster;
         irasterClassifyColorRampRenderer_1.ClassCount = int_0;
         renderer.Update();
         this.bool_0 = false;
         this.cboClassifyNum.SelectedIndex = irasterClassifyColorRampRenderer_1.ClassCount - 1;
         this.bool_0       = true;
         icolorRamp_1.Size = irasterClassifyColorRampRenderer_1.ClassCount;
         icolorRamp_1.CreateRamp(out flag);
         IEnumColors colors = icolorRamp_1.Colors;
         ISymbol     symbol = null;
         for (int i = 0; i < irasterClassifyColorRampRenderer_1.ClassCount; i++)
         {
             string            str;
             IColor            color   = colors.Next();
             ISimpleFillSymbol symbol2 = new SimpleFillSymbolClass
             {
                 Color = color,
                 Style = esriSimpleFillStyle.esriSFSSolid
             };
             symbol = symbol2 as ISymbol;
             irasterClassifyColorRampRenderer_1.set_Symbol(i, symbol);
             if (i == (irasterClassifyColorRampRenderer_1.ClassCount - 1))
             {
                 str = irasterClassifyColorRampRenderer_1.get_Break(i).ToString("0.####");
             }
             else
             {
                 str = irasterClassifyColorRampRenderer_1.get_Break(i).ToString("0.####") + " - " +
                       irasterClassifyColorRampRenderer_1.get_Break(i + 1).ToString("0.####");
             }
             irasterClassifyColorRampRenderer_1.set_Label(i, str);
         }
     }
     catch (Exception exception)
     {
         Logger.Current.Error("", exception, "");
     }
 }
Exemple #3
0
        /// <summary>
        /// 分类色带渲染
        /// </summary>
        /// <param name="classCount">分类数</param>
        /// <param name="colorRamp">色带</param>
        public void ClassifyColorRampRenderer(ILayer pLayerR, IColorRamp colorRamp, string classfield, System.Windows.Forms.DataGridView datagridview)
        {
            try
            {
                IRasterLayer    pRasterLayer    = pLayerR as IRasterLayer;
                IRaster         raster          = pRasterLayer.Raster;
                IRasterRenderer pRasterRenderer = new RasterClassifyColorRampRenderer() as IRasterRenderer;
                pRasterRenderer.Raster = raster;
                IRasterClassifyColorRampRenderer classifyRenderer = pRasterRenderer as IRasterClassifyColorRampRenderer;


                int classcount = datagridview.RowCount;
                classifyRenderer.ClassCount = classcount;
                classifyRenderer.ClassField = classfield;
                for (int i = 0; i < datagridview.RowCount; i++)
                {
                    classifyRenderer.set_Break(i, double.Parse(datagridview.Rows[i].Cells[0].Value.ToString()));
                }
                pRasterRenderer.Update();
                colorRamp.Size = 15;
                bool pOk;
                colorRamp.CreateRamp(out pOk);
                //create symbol for the classes
                IFillSymbol fillSymbol = new SimpleFillSymbol();
                for (int i = 0; i < classifyRenderer.ClassCount - 1; i++)
                {
                    fillSymbol.Color = colorRamp.get_Color(i);
                    classifyRenderer.set_Symbol(i, (ISymbol)fillSymbol);
                    classifyRenderer.set_Label(i, classifyRenderer.get_Break(i).ToString() + "—" + datagridview.Rows[i].Cells[1].Value.ToString());
                }
                pRasterLayer.Renderer = classifyRenderer as IRasterRenderer;
            }
            catch
            {
            }
        }