主程序代码:
IGeoFeatureLayer pGeolyr = axMapControl1.get_Layer(0) as IGeoFeatureLayer;
IUniqueValueRenderer pUniqueRenderer = new UniqueValueRenderer();
//value是进行唯一值渲染的列名
pUniqueRenderer.FieldCount = 1;
pUniqueRenderer.set_Field(0,"value");
//指定唯一的value值对应的颜色与Symbol
//这里的value值分别有“优”、“良”、“一般”、“较差”、“差”
IColor pColor1 = GetRgbColor(14,204,14);
ISymbol PSymbol1 = GetSymbol(pColor1);
pUniqueRenderer.AddValue("优","value",pSymbol1);
IColor pColor2 = GetRgbColor(128,232,116);
ISymbol PSymbol2 = GetSymbol(pColor2);
pUniqueRenderer.AddValue("良","value",pSymbol2);
IColor pColor3 = GetRgbColor(204,255,204);
ISymbol PSymbol3 = GetSymbol(pColor3);
pUniqueRenderer.AddValue("一般","value",pSymbol3);
IColor pColor4 = GetRgbColor(255,211,127);
ISymbol PSymbol4 = GetSymbol(pColor4);
pUniqueRenderer.AddValue("较差","value",pSymbol4);
IColor pColor5 = GetRgbColor(255,127,127);
ISymbol PSymbol5 = GetSymbol(pColor5);
pUniqueRenderer.AddValue("差","value",pSymbol5);
//渲染
pGeolyr.Renderer = pUniqueRenderer as IFeatureRenderer;
//刷新
pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics,null,null);
axMapControl1.Refresh();
GetRgbColor()与GetSymbol():
private IRgbColor GetRgbColor(int r,int g,int b)
{
IRgbColor pRgbColor = null;
pRgbColor = new RgbColorClass();
pRgbColor.Red = r;
pRgbColor.Green = g;
pRgbColor.Blue = b;
return pRgbColor;
}
private ISymbol GetSymbol(IColor pColor)
{
ISymbol pSymbol;
ISimpleFillSymbol pSimpleFillSymbol = new SimpleFillSymbolClass();
pSimpleFillSymbol.Style = esriSimpleFillStyle.esriSFSSolid;
pSimpleFillSymbol.Color = pColor;
pSymbol = pSimpleFillSymbol as ISymbol;
return pSymbol;
}