使用C#创建统计专题图,下面的程序是自己编写的,大家可以借鉴一下,呵呵!
//定义
soThemeGraph _objGraph=null;
//创建统计专题图
soLayers objLys=null;
soLayer objLy=null;
bool bresult=false;
soStyle objStyle1=new soStyleClass();
soStyle objStyle2=new soStyleClass();
objLys=axSuperMap1.Layers;
objLy=objLys[1];
//给专题图对象赋值,_objGraph为全局变量
_objGraph=objLy.ThemeGraph;
//设置两个风格,分别赋给用来统计的两个字段
objStyle1.BrushBackTransparent = false;
objStyle1.BrushColor =(uint)ColorTranslator.ToOle(Color.FromArgb(136, 255, 100));
objStyle1.BrushBackColor = (uint)ColorTranslator.ToOle(Color.FromArgb(255, 255, 255));
objStyle1.BrushGradientMode = seBrushGradientMode.scbGradientLinear; //渐变填充模式
objStyle1.BrushGradientAngle = 0;
objStyle2.BrushBackTransparent = false;
objStyle2.BrushColor =(uint)ColorTranslator.ToOle(Color.FromArgb(245, 255, 100));
objStyle2.BrushBackColor =(uint)ColorTranslator.ToOle(Color.FromArgb(255, 255, 255));
objStyle2.BrushGradientMode = seBrushGradientMode.scbGradientLinear;
objStyle2.BrushGradientAngle = 0;
_objGraph.Enable=true;
_objGraph.AddField("Pop_1994");
_objGraph.AddField("Pop_Male");
_objGraph.set_Style(1,objStyle1);
_objGraph.set_Style(2,objStyle2);
//指定统计图的类型,此处指定的是柱状图,还有饼图等
_objGraph.GraphType=seGraphType.scpBar3D;
_objGraph.GraduatedMode=seGraduatedMode.scgConstant;
axSuperMap1.Refresh();
bresult=_objGraph.Valid;
if(bresult)
{
MessageBox.Show("Success");
}
else
{
MessageBox.Show("fail");
}
//释放变量//
Marshal.ReleaseComObject(objLy);
objLy=null;
Marshal.ReleaseComObject(objLys);
objLys=null;
Marshal.ReleaseComObject(objStyle1);
objStyle1=null;
Marshal.ReleaseComObject(objStyle2);
objStyle2=null;
Marshal.ReleaseComObject(_objGraph);
_objGraph=null;
下面是效果图: