public class ThemeGraph extends Theme
统计专题图。
统计专题图通过为每个要素或记录绘制统计图来反映其对应的专题值的大小。统计专题图可以基于多个变量,反映多种属性,即可以将多个专题变量的值绘制在一个统计图上。通过统计专题图可以在区域本身与各区域之间形成横向和纵向的对比。多用于具有相关数量特征的地图上,比如表示不同地区多年的粮食产量、GDP、人口等,不同时段客运量、地铁流量等。
下图为一幅渤海地区2000年城乡人口比例的统计专题图:
下面的代码展示如何构建一个简单的统计专题图对象:
ThemeGraph themeGraph = new ThemeGraph(); // 使用3维饼图 themeGraph.graphType = ThemeGraphType.PIE3D; // 使用值作为显示文本 themeGraph.graphTextFormat = GraphTextFormat.VALUE; // 等级大小使用常量模式 themeGraph.graduatedMode = GraduatedMode.CONSTANT; // 是否固定大小,true表示不随图缩放 themeGraph.graphSizeFixed = false; // 显示文本 themeGraph.graphTextDisplayed = true; // 显示负值 themeGraph.negativeDisplayed = true; // 饼图有两个统计项,其对应字段为value1,value2 themeGraph.items = new ThemeGraphItem[2]; ThemeGraphItem item0 = new ThemeGraphItem(); // 字段value1对应的部分使用红色来表示 item0.graphExpression = "value1"; item0.uniformStyle = new Style(); item0.uniformStyle.fillForeColor = new Color(255, 0,0); item0.caption = "1"; ThemeGraphItem item1 = new ThemeGraphItem(); // 字段value2对应的部分使用绿色来表示 item1.graphExpression = "value2"; item1.uniformStyle = new Style(); item1.uniformStyle.fillForeColor = new Color(0, 255,0); item1.caption = "2"; themeGraph.items[0] = item0; themeGraph.items[1] = item1;
限定符和类型 | 字段和说明 |
---|---|
Color |
axesColor
坐标轴颜色,
axesDisplayed =true 时有效。 |
boolean |
axesDisplayed
是否显示坐标轴。
|
boolean |
axesGridDisplayed
是否在统计图坐标轴上显示网格。
|
boolean |
axesTextDisplayed
是否显示坐标轴的文本标注。
|
TextStyle |
axesTextStyle
坐标轴文本风格。
|
double |
barWidth
柱状专题图中每一个柱的宽度。
|
boolean |
flowEnabled
专题图的渲染风格是否流动显示。
|
GraduatedMode |
graduatedMode
统计图中地理要素的值与图表尺寸间的映射关系(常数、对数、平方根),即分级方式。
|
GraphAxesTextDisplayMode |
graphAxesTextDisplayMode
统计专题图坐标轴文本显示模式
|
boolean |
graphSizeFixed
是否固定统计图大小。
|
boolean |
graphTextDisplayed
是否显示统计图上的文字标注。
|
GraphTextFormat |
graphTextFormat
统计专题图文本显示格式,如百分数、真实数值、标题、标题+百分数、标题+真实数值。
|
TextStyle |
graphTextStyle
统计图上的文字标注风格,
graphTextDisplayed =true 时有效。 |
ThemeGraphType |
graphType
统计专题图类型。
|
ThemeGraphItem[] |
items
统计专题图的子项集合。
|
boolean |
leaderLineDisplayed
是否显示统计图和它所表示的对象之间的牵引线。
|
Style |
leaderLineStyle
统计图与其表示对象之间牵引线的风格。
|
double |
maxGraphSize
统计图中显示的最大图表尺寸。
|
int[] |
memoryKeys
以内存数组方式制作专题图时的键数组。
|
double |
minGraphSize
统计图中显示的最小图表尺寸。
|
boolean |
negativeDisplayed
专题图中是否显示属性为负值的数据,true 表示显示,false 表示不显示。
|
boolean |
offsetFixed
统计图是否固定偏移量。
|
java.lang.String |
offsetX
统计图的水平偏移量。
|
java.lang.String |
offsetY
统计图的垂直偏移量。
|
boolean |
overlapAvoided
统计图是否采用避让方式显示。
|
double |
roseAngle
统计图中玫瑰图或三维玫瑰图分片的角度。
|
double |
startAngle
饼状统计图的起始角度。
|
memoryData, type
构造器和说明 |
---|
ThemeGraph()
默认构造函数。
|
ThemeGraph(ThemeGraph themeGraph)
拷贝构造函数。
|
限定符和类型 | 方法和说明 |
---|---|
Theme |
copy()
复制统计专题图。
|
boolean |
equals(java.lang.Object obj)
比较当前 ThemeGraph 对象和另一个对象是否相等。
|
int |
hashCode()
生成哈希码。
|
boolean |
isHavingValidItems()
是否拥有合法的 items。
|
public ThemeGraphItem[] items
统计专题图的子项集合。
其中,面积图显示的时候,多个item会合并成一个面,面的风格采用第一个item的风格渲染。
public java.lang.String offsetX
统计图的水平偏移量。
默认使用地图单位。
public java.lang.String offsetY
统计图的垂直偏移量。
默认使用地图单位。
public ThemeGraphType graphType
统计专题图类型。
SuperMap iServer Java 定义了13种类型的统计图,分别为面积图、阶梯图、折线图、点状图、柱状图、三维柱状图、饼图、三维饼图、玫瑰图、三维玫瑰图、堆叠柱状图、三维堆叠柱状图、环状图。
public double barWidth
柱状专题图中每一个柱的宽度。
使用地图坐标单位。只有选择的统计图类型为柱状图(柱状图、三维柱状图、堆叠柱状图、三维堆叠柱状图)时,此项才可设置。
public double startAngle
饼状统计图的起始角度。
默认以水平方向为正向。单位为度,精确到0.1度。
只有选择的统计图类型为饼状图(饼图、三维饼图、玫瑰图、三维玫瑰图)时,此项才可设置。
public double roseAngle
统计图中玫瑰图或三维玫瑰图分片的角度。
单位为度,精确到0.1度。
public boolean flowEnabled
专题图的渲染风格是否流动显示。
public Style leaderLineStyle
统计图与其表示对象之间牵引线的风格。
public boolean leaderLineDisplayed
是否显示统计图和它所表示的对象之间的牵引线。
如果渲染符号偏移该对象,图与对象之间可以采用牵引线进行连接。只有设置了 flowEnabled
为 true 时,牵引线才起作用。
public boolean negativeDisplayed
专题图中是否显示属性为负值的数据,true 表示显示,false 表示不显示。
该方法对面积图、阶梯图、折线图、点状图、柱状图、三维柱状图无效,因为在绘制时会始终显示负值数据;对于饼图、三维饼图、玫瑰图、三维玫瑰图、金字塔专题图-条形、金字塔专题图-面形,如果用户将该方法参数设为 true,则将负值取绝对值后按照正值进行处理,若设置为 false,则不对其进行绘制(正、负值数据均不绘制)。
public Color axesColor
坐标轴颜色,axesDisplayed
=true 时有效。
public boolean axesDisplayed
是否显示坐标轴。
public TextStyle axesTextStyle
坐标轴文本风格。axesTextDisplayed
=true 时有效。其中,关于文本对齐方式,统计专题图中坐标轴的文本对齐方式均采用右下角的对齐方式,目的是防止坐标轴压盖文本。
public boolean axesTextDisplayed
是否显示坐标轴的文本标注。
public boolean axesGridDisplayed
是否在统计图坐标轴上显示网格。
public TextStyle graphTextStyle
统计图上的文字标注风格,graphTextDisplayed
=true 时有效。
public GraphTextFormat graphTextFormat
统计专题图文本显示格式,如百分数、真实数值、标题、标题+百分数、标题+真实数值。
有关统计专题图文本显示格式详细信息,请参考 GraphTextFormat
枚举类。
public boolean graphTextDisplayed
是否显示统计图上的文字标注。
public double minGraphSize
统计图中显示的最小图表尺寸。
使用地图单位。中间尺寸的图表大小在最大和最小图表之间采用逐渐变化。
public double maxGraphSize
统计图中显示的最大图表尺寸。
使用地图单位。中间尺寸的图表大小在最大和最小图表之间采用逐渐变化。
public boolean graphSizeFixed
是否固定统计图大小。
public GraduatedMode graduatedMode
统计图中地理要素的值与图表尺寸间的映射关系(常数、对数、平方根),即分级方式。
分级主要是为了减少制作统计专题图中数据大小之间的差异。如果数据之间差距较大,则可以采用对数或者平方根的分级方式来进行,这样就减少了数据之间的绝对大小的差异,使得统计图的视觉效果比较好,同时不同类别之间的比较也还是有意义的。
有三种分级模式:常数、对数和平方根,对于有值为负数的字段,不可以采用对数和平方根的分级方式。不同的等级方式用于确定符号大小的数值是不相同的,常数则是按照字段的原始数据进行,对数则是对各分量的总和先取其自然对数、平方根则是对各分量的总和先求其平方根,用最终得到的结果来确定其等级符号的大小。
public GraphAxesTextDisplayMode graphAxesTextDisplayMode
public int[] memoryKeys
以内存数组方式制作专题图时的键数组。
键数组内的数值代表 SmID 值,它与 ThemeGraphItem
类中的值数组(ThemeGraphItem.memoryDoubleValues
) 要关联起来应用。键数组中数值的个数必须要与值数组的数值个数一致。 值数组中的值将代替原来的专题值来制作统计专题图。
比如:利用面积字段和周长字段(即有两个统计专题图子项 )作为专题变量制作统计专题图。
键数组设置为(1,3,8,9),专题变量为“面积”的值数组设置为(5.2,6.1,3.4,8.5),专题变量为“周长”的值数组设置为(10.2,12.44,6.4,16.1)。
则制作完成后会有四个统计图,分别为 SmID 值为1,3,8,9的记录所对应的统计图, 每个统计图有两项,分别代表面积和周长。
需要注意的是,此时 SmID 值为1的记录,其对应的面积字段的值用值数组的“5.2”代替,周长字段的值用值数组的“10.2”代替;SmID 值为3的记录,其对应的面积字段的值用值数组的“6.1”代替,周长字段的值用值数组的“12.44”代替,以此类推。
public boolean offsetFixed
统计图是否固定偏移量。
固定偏移量,则统计图的偏移量不随地图的缩放而变化。
public boolean overlapAvoided
统计图是否采用避让方式显示。
1. 对数据集制作统计专题图 当统计图采用避让方式显示时,如果 MapParameter.overlapDisplayed 设置为 true,则在统计图重叠度很大的情况下,会出现无法完全避免统计图重叠的现象;当 MapParameter.overlapDisplayed 设置为 false 时,会过滤掉一些统计图,从而保证所有的统计图均不重叠。
2. 对数据集同时制作统计专题图和标签专题图。当统计图不显示子项文本时,标签专题图的标签即使和统计图重叠,两者也都可正常显示;当统计图显示子项文本时,如果统计图中的子项文本和标签专题图中的标签不重叠,则两者均正常显示;如果重叠,则会过滤掉统计图的子项文本,只显示标签。
public ThemeGraph()
默认构造函数。
public ThemeGraph(ThemeGraph themeGraph)
拷贝构造函数。
themeGraph
- 统计专题图对象。