//获得一个字段的别名
private string Getalias(IFeatureClass pFeatureClass, string fieldName)
{
IFields pFields = pFeatureClass.Fields;
int idx = pFields.FindField(fieldName);
IField pField = pFields.get_Field(idx);
return pField.AliasName;
}
private void SetDotDensitySymbol(IFeatureLayer pFeatureLayer, string fieldname)
{
//点密级渲染
ISimpleMarkerSymbol sfs4 = new SimpleMarkerSymbol();
IColor color4 = new RgbColorClass();
color4.RGB = Color.LightSeaGreen.ToArgb();
sfs4.Color = color4;
IDotDensityRenderer renderer = new DotDensityRendererClass();
IRendererFields flds = (IRendererFields)renderer;
flds.AddField(fieldname, Getalias(pFeatureLayer.FeatureClass, fieldname));
IDotDensityFillSymbol ddSym = new DotDensityFillSymbolClass();
ISymbolArray symArray = (ISymbolArray)ddSym;
symArray.AddSymbol((ISymbol)sfs4);
ISimpleLineSymbol sls = new SimpleLineSymbolClass();
ddSym.Outline = (ILineSymbol)sls;
ddSym.DotSize = 1;
ddSym.FixedPlacement = true;
renderer.DotDensitySymbol = ddSym;
renderer.DotValue = 2000;
renderer.MaintainSize = false;
IGeoFeatureLayer gfl = (IGeoFeatureLayer)pFeatureLayer;
gfl.Renderer = (IFeatureRenderer)renderer;
}
private void button2_Click(object sender, EventArgs e)
{
IFeatureLayer pFeatureLayer = this.mainMap.get_Layer(0) as IFeatureLayer;
SetDotDensitySymbol(pFeatureLayer, "Area");
this.mainMap.ActiveView.Refresh();
}