public class ThemeGraph extends Theme
统计专题图通过为每个要素或记录绘制统计图来反映其对应的专题值的大小。统计专题图可以基于多个变量,反映多种属性,即可以将多个专题变量的值绘制在一个统计图上。
目前提供的统计图类型有:面积图、阶梯图、折线图、点状图、柱状图、三维柱状图、饼图、三维饼图、玫瑰图、三维玫瑰图、面状金字塔图、堆叠柱状图、三维堆叠柱状图、环状图。 注:用来制作专题图的数据称为专题变量。
构造器和说明 |
---|
ThemeGraph()
默认构造函数,构造一个新的
ThemeGraph 对象。 |
ThemeGraph(ThemeGraph themeGraph)
拷贝构造函数,根据给定的
ThemeGraph 对象构造一个与其完全相同的新对象。 |
限定符和类型 | 方法和说明 |
---|---|
int |
add(ThemeGraphItem item)
添加统计专题图的子项到专题图子项列表中。
|
void |
calculateExtremum()
计算统计专题图各个段的极值
|
void |
calculateExtremum(Dataset dataset)
计算统计专题图各个段的极值
|
void |
clear()
删除统计专题图中的所有子项。
|
void |
dispose()
释放对象所占用的资源。
|
boolean |
exchangeItem(int index1,
int index2)
将指定序号的两个子项进行位置交换。
|
boolean |
fromXML(String xml)
从 XML 字符串中导入专题图信息。
|
Color |
getAxesColor()
返回坐标轴颜色。
|
GraphAxesTextDisplayMode |
getAxesTextDisplayMode()
返回显示坐标轴文本时,显示的文本模式,
|
TextStyle |
getAxesTextStyle()
返回统计图坐标轴文本的风格。
|
double |
getBarSpaceRatio()
返回柱状专题图中柱体的间隔,返回值为一个系数值,数值范围为0到10,默认值为1。
|
double |
getBarWidth()
已过时。
使用
getBarWidthRatio() 替代。 |
double |
getBarWidthRatio()
返回柱状专题图中每一个柱的宽度,返回值为一个系数值,数值范围为0到10,默认值为1。
|
int |
getCount()
返回统计专题图子项的个数。
|
String |
getCustomGraphSizeExpression()
返回一个字段表达式,该字段表达式用于控制对象对应的统计专题图元素的大小,字段表达式中的字段必须为数值型字段。
|
GraduatedMode |
getGraduatedMode()
返回专题图分级模式。
|
ThemeGraphTextFormat |
getGraphTextFormat()
返回统计专题图文本显示格式,如百分数、真实数值、标题、标题+百分数、标题+真实数值。
|
TextStyle |
getGraphTextStyle()
返回统计图上的文字标注风格。
|
ThemeGraphType |
getGraphType()
返回统计专题图的统计图类型。
|
ThemeGraphItem |
getItem(int index)
返回指定序号的统计专题图子项。
|
GeoStyle |
getLeaderLineStyle()
返回统计图与其表示对象之间牵引线的风格。
|
double |
getMaxGraphSize()
返回统计专题图中统计符号显示的最大值。
|
int[] |
getMemoryKeys()
返回以内存数组方式制作专题图时的键数组。
|
double |
getMinGraphSize()
返回统计专题图中统计符号显示的最小值。
|
String |
getOffsetX()
返回统计图的水平偏移量。
|
String |
getOffsetY()
返回统计图的垂直偏移量。
|
double |
getRoseAngle()
返回统计图中玫瑰图或三维玫瑰图分片的角度。
|
double |
getStartAngle()
返回饼状统计图的起始角度,默认以水平方向为正向。
|
String |
getStrUnitYAxirShow()
获取统计专题图Y轴显示单位字符串
|
int |
getValueDigit()
获取显示精度(标注格式在使用真实值设置时)
|
int |
indexOf(String graphExpression)
返回统计专题图中指定统计字段表达式的对象在当前统计图子项序列中的序号。
|
boolean |
insert(int index,
ThemeGraphItem item)
将给定的统计专题图子项插入到指定序号的位置。
|
boolean |
IsAllDirectionsOverlapedAvoided()
已过时。
|
boolean |
isAllDirectionsOverlappedAvoided()
设置是否允许以全方向统计专题图避让。
|
boolean |
isAxesDisplayed()
返回是否显示坐标轴。
|
boolean |
isAxesGridDisplayed()
返回是否在统计图坐标轴上显示网格。
|
boolean |
isAxesTextDisplayed()
返回是否显示坐标轴的文本标注。
|
boolean |
isDigitAlign()
是否为补零对齐(标注格式在使用真实值设置时)
|
boolean |
isFlowEnabled()
返回统计专题图是否流动显示。
|
boolean |
isGlobalMaxValueEnabled()
返回是否使用全局最大值制作统计专题图。
|
boolean |
isGraphSizeFixed()
返回在放大或者缩小地图时统计图是否固定大小。
|
boolean |
isGraphTextDisplayed()
返回是否显示统计图上的文本标注。
|
boolean |
isLeaderLineDisplayed()
返回是否显示统计图和它所表示的对象之间的牵引线。
|
boolean |
isNegativeDisplayed()
返回专题图中是否显示属性为负值的数据。
|
boolean |
isOffsetFixed()
返回统计图是否固定偏移量。
|
boolean |
isOverlapAvoided()
返回统计图是否采用避让方式显示。
|
boolean |
remove(int index)
在统计专题图子项序列中删除指定序号的统计专题图子项。
|
void |
setAllDirectionsOverlapedAvoided(boolean value)
已过时。
|
void |
setAllDirectionsOverlappedAvoided(boolean value)
设置是否允许以全方向统计专题图避让。
|
void |
setAxesColor(Color color)
设置坐标轴颜色。
|
void |
setAxesDisplayed(boolean value)
设置是否显示坐标轴。
|
void |
setAxesGridDisplayed(boolean value)
设置是否在统计图坐标轴上显示网格。
|
void |
setAxesTextDisplayed(boolean value)
设置是否显示坐标轴的文本标注。
|
void |
setAxesTextDisplayMode(GraphAxesTextDisplayMode mode)
设置显示坐标轴文本时,显示的文本模式,
|
void |
setAxesTextStyle(TextStyle textStyle)
设置统计图坐标轴文本的风格。
|
void |
setBarSpaceRatio(double value)
设置柱状专题图中柱体的间隔,设置的值为一个系数值,数值范围为0到10,默认值为1。
|
void |
setBarWidth(double value)
已过时。
使用
setBarWidthRatio() 替代。 |
void |
setBarWidthRatio(double value)
设置柱状专题图中每一个柱的宽度,设置的值为一个系数值,数值范围为0到10,默认值为1。
|
void |
setCustomGraphSizeExpression(String value)
设置一个字段表达式,该字段表达式用于控制对象对应的统计专题图元素的大小,字段表达式中的字段必须为数值型字段。
|
void |
setDigitAlign(boolean value)
设置是否补零对齐(标注格式在使用真实值设置时)
|
void |
setFlowEnabled(boolean value)
设置统计专题图是否流动显示。
|
void |
setGlobalMaxValueEnabled(boolean value)
设置是否使用全局最大值制作统计专题图。
|
void |
setGraduatedMode(GraduatedMode value)
设置专题图分级模式。
|
void |
setGraphSizeFixed(boolean value)
设置在放大或者缩小地图时统计图是否固定大小。
|
void |
setGraphTextDisplayed(boolean value)
设置是否显示统计图上的文本标注。
|
void |
setGraphTextFormat(ThemeGraphTextFormat themeGraphTextFormat)
设置统计专题图文本显示格式,如百分数、真实数值、标题、标题+百分数、标题+真实数值。
|
void |
setGraphTextStyle(TextStyle textStyle)
设置统计图上的文字标注风格。
|
void |
setGraphType(ThemeGraphType themeGraphType)
设置统计专题图的统计图类型。
|
void |
setItem(int index,
ThemeGraphItem item)
用指定的统计专题图子项替代指定序号上的专题图子项。
|
void |
setLeaderLineDisplayed(boolean value)
设置是否显示统计图和它所表示的对象之间的牵引线。
|
void |
setLeaderLineStyle(GeoStyle style)
设置统计图与其表示对象之间牵引线的风格。
|
void |
setMaxGraphSize(double value)
设置统计专题图中统计符号显示的最大值。
|
void |
setMemoryKeys(int[] keys)
设置以内存数组方式制作专题图时的键数组。
|
void |
setMinGraphSize(double value)
设置统计专题图中统计符号显示的最小值。
|
void |
setNegativeDisplayed(boolean value)
设置专题图中是否显示属性为负值的数据。
|
void |
setOffsetFixed(boolean value)
设置统计图是否固定偏移量。
|
void |
setOffsetX(String value)
设置统计图的水平偏移量。
|
void |
setOffsetY(String value)
设置统计图的垂直偏移量。
|
void |
setOverlapAvoided(boolean value)
设置统计图是否采用避让方式显示。
|
void |
setRoseAngle(double value)
设置统计图中玫瑰图或三维玫瑰图分片的角度。
|
void |
setStartAngle(double value)
设置饼状统计图的起始角度,默认以水平方向为正向。
|
void |
setStrUnitYAxirShow(String value)
设置统计专题图Y轴显示单位字符串
|
void |
setValueDigit(int value)
设置显示精度
|
String |
toString()
输出专题图格式化字符串。
|
getMemoryData, getThemeWeight, getType, setMemoryData, setThemeWeight, toXML
public ThemeGraph()
ThemeGraph
对象。public ThemeGraph(ThemeGraph themeGraph)
ThemeGraph
对象构造一个与其完全相同的新对象。themeGraph
- 给定的 ThemeGraph
对象。public ThemeGraphItem getItem(int index)
index
- 指定的序号。public void setItem(int index, ThemeGraphItem item)
index
- 指定的序号。item
- 指定的统计专题图子项。public int getCount()
public boolean isGraphSizeFixed()
public void setGraphSizeFixed(boolean value)
value
- 一个布尔值指定在放大或者缩小地图时统计图是否固定大小。public String getOffsetX()
public void setOffsetX(String value)
value
- 统计图的水平偏移量。public String getOffsetY()
public void setOffsetY(String value)
value
- 统计图的垂直偏移量。public ThemeGraphType getGraphType()
SuperMap iObjects Java 支持15种类型的统计图类型。
其中包括面积图、阶梯图、折线图、点状图、柱状图、三维柱状图、饼图、三维饼图、玫瑰图、三维玫瑰图、面状金字塔图、堆叠柱状图、三维堆叠柱状图、环状图。
详细信息请参见 ThemeGraphType
。
ThemeGraphType.PIE3D
。public void setGraphType(ThemeGraphType themeGraphType)
SuperMap iObjects Java 支持15种类型的统计图类型。
其中包括面积图、阶梯图、折线图、点状图、柱状图、三维柱状图、饼图、三维饼图、玫瑰图、三维玫瑰图、面状金字塔图、堆叠柱状图、三维堆叠柱状图、环状图。
详细信息请参见 ThemeGraphType
枚举类。
themeGraphType
- 统计专题图的统计图类型。@Deprecated public double getBarWidth()
getBarWidthRatio()
替代。getBarWidthRatio()
替代。
注意:只有选择的统计图类型为柱状图、三维柱状图、堆叠柱状图、三维堆叠柱状图时,此项才可设置。
@Deprecated public void setBarWidth(double value)
setBarWidthRatio()
替代。setBarWidthRatio()
替代。
注意:只有选择的统计图类型为柱状图、三维柱状图、堆叠柱状图、三维堆叠柱状图时,此项才可设置。
value
- 柱状图中每一个柱的宽度。public double getBarWidthRatio()
public void setBarWidthRatio(double value)
value
- 柱状专题图中每一个柱的宽度,该值为一个系数值,数值范围为0到10,默认值为1。柱状统计图的柱宽等于原始柱宽乘以系数值。public double getBarSpaceRatio()
public void setBarSpaceRatio(double value)
value
- 柱状专题图中柱体的间隔,该值为一个系数值,数值范围为0到10,默认值为0.618。柱状统计图的柱体间隔等于原始间隔乘以系数值。public double getStartAngle()
注意:只有选择的统计图类型为饼状图(饼图、三维饼图、玫瑰图、三维玫瑰图)时,此项才可设置。
public void setStartAngle(double value)
注意:只有选择的统计图类型为饼状图(饼图、三维饼图、玫瑰图、三维玫瑰图)时,此项才可设置。
value
- 饼状统计图的起始角度。public double getRoseAngle()
public void setRoseAngle(double value)
value
- 统计图中玫瑰图或三维玫瑰图分片的角度。public boolean isFlowEnabled()
public void setFlowEnabled(boolean value)
该方法与Map.setDisableDynamicEffect()
方法相互冲突,即 setDisableDynamicEffect(true)时,即使该方法设置为true,统计专题图也无法流动显示。
value
- 一个布尔值指定统计专题图是否流动显示。public GeoStyle getLeaderLineStyle()
public void setLeaderLineStyle(GeoStyle style)
style
- 统计图与其表示对象之间牵引线的风格。public boolean isLeaderLineDisplayed()
public void setLeaderLineDisplayed(boolean value)
value
- 一个布尔值指定是否显示统计图和它所表示的对象之间的牵引线。public boolean isNegativeDisplayed()
该方法对面积图、阶梯图、折线图、点状图、柱状图、三维柱状图无效,因为在绘制时会始终显示负值数据;对于饼图、三维饼图、玫瑰图、三维玫瑰图、金字塔专题图-条形、金字塔专题图-面形,如果用户将该方法参数设为 true,则将负值取绝对值后按照正值进行处理,若设置为 false,则不对其进行绘制(正、负值数据均不绘制)。
public void setNegativeDisplayed(boolean value)
该方法对面积图、阶梯图、折线图、点状图、柱状图、三维柱状图无效,因为在绘制时会始终显示负值数据;对于饼图、三维饼图、玫瑰图、三维玫瑰图、金字塔专题图-条形、金字塔专题图-面形,如果用户将该方法参数设为 true,则将负值取绝对值后按照正值进行处理,若设置为 false,则不对其进行绘制(正、负值数据均不绘制)。
value
- 一个布尔值指定专题图中是否显示属性为负值的数据。public Color getAxesColor()
public void setAxesColor(Color color)
color
- 坐标轴颜色。public boolean isAxesDisplayed()
public void setAxesDisplayed(boolean value)
value
- 一个布尔值指定是否显示坐标轴。public TextStyle getAxesTextStyle()
public void setAxesTextStyle(TextStyle textStyle)
textStyle
- 统计图坐标轴文本的风格。public boolean isAxesTextDisplayed()
public void setAxesTextDisplayed(boolean value)
value
- 一个布尔值指定是否显示坐标轴的文本标注。public boolean isAxesGridDisplayed()
public void setAxesGridDisplayed(boolean value)
value
- 一个布尔值指定是否在统计图坐标轴上显示网格。public TextStyle getGraphTextStyle()
统计专题图上坐标轴的文本对齐方式均采用右下角的对齐方式,以防止坐标轴压盖文本
public void setGraphTextStyle(TextStyle textStyle)
统计专题图上坐标轴的文本对齐方式均采用右下角的对齐方式,以防止坐标轴压盖文本
textStyle
- 统计图上的文字标注风格。public ThemeGraphTextFormat getGraphTextFormat()
ThemeGraphTextFormat
。ThemeGraphTextFormat.PERCENT
。public void setGraphTextFormat(ThemeGraphTextFormat themeGraphTextFormat)
ThemeGraphTextFormat
。themeGraphTextFormat
- 统计专题图文本显示格式。public boolean isGraphTextDisplayed()
public void setGraphTextDisplayed(boolean value)
value
- 一个布尔值指定是否显示统计图上的文本标注。public boolean isOffsetFixed()
public void setOffsetFixed(boolean value)
value
- 一个布尔值指定是否固定偏移量。public double getMinGraphSize()
统计图中统计符号的显示大小均在最大、最小值之间逐渐变化。统计图的最大、最小值是与统计对象的多少和图层大小相关系的一个值。
当isGraphSizeFixed()
方法返回值为 true 时,单位为 0.01mm;当 isGraphSizeFixed()
方法返回值为 false 时,使用地图单位。public void setMinGraphSize(double value)
统计图中统计符号的显示大小均在最大、最小值之间逐渐变化。统计图的最大、最小值是与统计对象的多少和图层大小相关系的一个值。
当isGraphSizeFixed()
方法返回值为 true 时,单位为 0.01mm;当 isGraphSizeFixed()
方法返回值为 false 时,使用地图单位。value
- 统计专题图中统计符号显示的最小值。public double getMaxGraphSize()
统计图中统计符号的显示大小均在最大、最小值之间逐渐变化。统计图的最大、最小值是与统计对象的多少和图层大小相关系的一个值。
当isGraphSizeFixed()
方法返回值为 true 时,单位为 0.01mm;当 isGraphSizeFixed()
方法返回值为 false 时,使用地图单位。public void setMaxGraphSize(double value)
统计图中统计符号的显示大小均在最大、最小值之间逐渐变化。统计图的最大、最小值是与统计对象的多少和图层大小相关系的一个值。
当isGraphSizeFixed()
方法返回值为 true 时,单位为 0.01mm;当 isGraphSizeFixed()
方法返回值为 false 时,使用地图单位。value
- 统计专题图中统计符号显示的最大值。public String getCustomGraphSizeExpression()
public void setCustomGraphSizeExpression(String value)
value
- 返回一个字段表达式。public GraduatedMode getGraduatedMode()
GraduatedMode
。GraduatedMode.CONSTANT
。public void setGraduatedMode(GraduatedMode value)
GraduatedMode
。value
- 专题图分级模式。public boolean isOverlapAvoided()
Map.setOverlapDisplayed()
方法设置为 true,则在统计图重叠度很大的情况下,会出现无法完全避免统计图重叠的现象;当 Map.setOverlapDisplayed()
方法设置为 false 时,会过滤掉一些统计图,从而保证所有的统计图均不重叠。
public void setOverlapAvoided(boolean value)
该方法与Map.setDisableDynamicEffect()
方法相互冲突,即 setDisableDynamicEffect(true)时,即使该方法设置为true,统计专题图也无法自动避让。
Map.setOverlapDisplayed()
方法设置为 true,则在统计图重叠度很大的情况下,会出现无法完全避免统计图重叠的现象;当 Map.setOverlapDisplayed()
方法设置为 false 时,会过滤掉一些统计图,从而保证所有的统计图均不重叠。
value
- 一个布尔值指定是否采用避让方式显示统计图。public int[] getMemoryKeys()
键数组内的数值代表 SmID 值。键数组中数值的个数必须要与值数组(通过 ThemeGraphItem.setMemoryDoubleValues()
方法进行设置)的数值个数一致。值数组中的值将代替原来的专题值来制作统计专题图。
比如:利用面积字段和周长字段(即有两个 item)作为专题变量制作统计专题图。
键数组设置为(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 void setMemoryKeys(int[] keys)
键数组内的数值代表 SmID 值,它与 ThemeGraphItem
类中设置值数组的方法(即 ThemeGraphItem.setMemoryDoubleValues()
方法)要关联起来应用。键数组中数值的个数必须要与值数组的数值个数一致。值数组中的值将代替原来的专题值来制作统计专题图。
比如:利用面积字段和周长字段(即有两个 item)作为专题变量制作统计专题图。
键数组设置为(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” 代替,以此类推。
values
- 以内存数组方式制作专题图时的键数组。public int add(ThemeGraphItem item)
item
- 被添加的统计专题图子项。public boolean insert(int index, ThemeGraphItem item)
index
- 指定的统计专题图子项序列的序号。item
- 将被插入的统计专题图子项。public boolean exchangeItem(int index1, int index2)
index1
- 指定的交换的第一个子项的序号。index2
- 指定的交换第二个子项的序号。public int indexOf(String graphExpression)
graphExpression
- 指定的统计字段表达式。public boolean remove(int index)
index
- 指定的将被删除子项的序号。public void clear()
public String toString()
Theme
public void setAxesTextDisplayMode(GraphAxesTextDisplayMode mode)
mode
- 显示坐标轴文本时,显示的文本模式,public GraphAxesTextDisplayMode getAxesTextDisplayMode()
public void dispose()
@Deprecated public boolean IsAllDirectionsOverlapedAvoided()
IllegalStateException
- 当前对象已被释放public boolean isAllDirectionsOverlappedAvoided()
通常统计专题图避让是以全方向进行的,虽然避让比较合理,但会影响显示效率;如果提高显示效率,请设置 setAllDirectionsOverlappedAvoided()
方法为 false。
全方向即指以统计专题图外边框和基准线而形成的 12 个方向。
四方向是指以统计专题图外边矩形框的四个角点方向。
@Deprecated public void setAllDirectionsOverlapedAvoided(boolean value)
value
- IllegalStateException
- 当前对象已被释放public void setAllDirectionsOverlappedAvoided(boolean value)
通常统计专题图避让是以全方向进行的,虽然避让比较合理,但会影响显示效率;如果提高显示效率,请设置 setAllDirectionsOverlappedAvoided()
方法为 false。
value
- 一个布尔值指定是否以全方向统计专题图避让。public boolean fromXML(String xml)
在 SuperMap 中,各种专题图的风格的设置都可以导出成 XML 格式的字符串,此 XML 格式的字符串中记录了关于这种专题图的所有设置,如对于标签专题图的 XML 格式字符串会记录专题图类型,可见比例尺,标签风格的设置,是否流动显示,是否自动避让等等对该标签专题图的所有风格的设置以及用来制作标签专题图的字段或表达式。这种 XML 格式字符串可以用来导入,对专题图进行设置。
public void calculateExtremum()
IllegalStateException
- 当前对象已被释放public void calculateExtremum(Dataset dataset)
dataset
- 数据集IllegalStateException
- 当前对象已被释放public void setGlobalMaxValueEnabled(boolean value)
value
- 一个布尔值,指示是否使用全局最大值制作统计专题图。true,表示使用全局最大值作为统计图元素的最大值,保证同一专题图层中统计图元素具有一致的刻度。public boolean isGlobalMaxValueEnabled()
public void setValueDigit(int value)
value
- 显示精度IllegalStateException
- 当前对象已被释放public int getValueDigit()
IllegalStateException
- 当前对象已被释放public void setDigitAlign(boolean value)
value
- 是否补零对齐IllegalStateException
- 当前对象已被释放public boolean isDigitAlign()
IllegalStateException
- 当前对象已被释放public void setStrUnitYAxirShow(String value)
value
- 需要显示的字符串IllegalStateException
- 当前对象已被释放public String getStrUnitYAxirShow()
IllegalStateException
- 当前对象已被释放Copyright © 2021–2024 SuperMap. All rights reserved.