private void applyRenderer(IGeoFeatureLayer geoLayer, IServerContext mapContext, string fieldName, Classifier classifier) { IClassBreaksRenderer cbRenderer = (IClassBreaksRenderer)mapContext.CreateObject("esriCarto.ClassBreaksRenderer"); cbRenderer.Field = fieldName; ILegendInfo legendInfo = (ILegendInfo)cbRenderer; ILegendGroup legendGroup = legendInfo.get_LegendGroup(0); legendGroup.Heading = "Counts"; int breaks = classifier.getBreaks(); IColor [] pColors = new IColor[breaks]; ISimpleFillSymbol [] symbols = new ISimpleFillSymbol[breaks]; double breakValue; cbRenderer.BreakCount = breaks; IAlgorithmicColorRamp colorRamp = (IAlgorithmicColorRamp)mapContext.CreateObject("esriDisplay.AlgorithmicColorRamp"); IColor startColor, endColor; startColor = createRGBColor(mapContext, 255, 255, 0); endColor = createRGBColor(mapContext, 255, 0, 0); colorRamp.FromColor = startColor; colorRamp.ToColor = endColor; colorRamp.Algorithm = esriColorRampAlgorithm.esriCIELabAlgorithm; colorRamp.Size = breaks; bool created; try { colorRamp.CreateRamp(out created); } catch { this.Label2.Text = "There is not enough data associated with the current extents and attributes selected. A map was not generated. Please try selecting other attributes."; return; } IEnumColors iterColors = colorRamp.Colors; double[] classBreaksArray = (double[])classifier.getClassBreaksArray(); for (int i = 0; i < breaks; i++) { pColors[i] = iterColors.Next(); symbols[i] = (ISimpleFillSymbol)mapContext.CreateObject("esriDisplay.SimpleFillSymbol"); symbols[i].Color = pColors[i]; cbRenderer.set_Symbol(i, (ISymbol)symbols[i]); breakValue = classBreaksArray[i + 1]; cbRenderer.set_Break(i, breakValue); string breakValueString = String.Format("{0:0.00}", breakValue); if (i == 0) { cbRenderer.set_Label(i, "<" + breakValueString); } else { string prevValueString = String.Format("{0:0.00}", classBreaksArray[i]); string label = prevValueString + " < " + breakValueString; cbRenderer.set_Label(i, label); } } geoLayer.Renderer = (IFeatureRenderer)cbRenderer; this.Toc1.ExpandDepth = 1; this.Toc1.Refresh(); }