com.supermap.realspace

类 Theme3DGraph

  • 所有已实现的接口:
    IDisposable


    public class Theme3DGraph
    extends Theme3D
    三维统计专题图类。三维标签专题图用图形的形式在三维图层上直接显示属性表中的数据,其实质就是对图层的图形统计表现。目前三维统计专题图仅支持柱状效果。

    在 三维统计专题图中,你可以为所有的标签都设置统一的显示风格来显示。

    示范代码:
    以下代码示范了如何制作三维标签专题图,并显示在三维场景中。
       public void TestThemeLabel3D(DatasetVector targetDataset,String labelExpression, Scene sceneObject) {
            // 进行三维地图场景的设置
            sceneObject.getAtmosphere().setVisible(true);
    
            // 生成三维标签专题图并显示在三维场景中
            Theme3DLabel theme3DLabel = new Theme3DLabel();
            theme3DLabel.setLabelExpression(labelExpression);
            TextStyle textStyle = new TextStyle();
            textStyle.setForeColor(Color.PINK);
            textStyle.setFontScale(0.8);
            textStyle.setOpaqueRate(70);
            themeLabel3D.setUniformStyle(textStyle);
            Layer3DDataset layer3DDatasetLabel = sceneObject.getLayers().add(targetDataset, themeLabel3D, true);
            layer3DDatasetLabel.updateData();
            sceneObject.refresh();
       }
       
    • 构造器详细资料

      • Theme3DGraph

        public Theme3DGraph()
        构造一个新的 Theme3DGraph 对象。
      • Theme3DGraph

        public Theme3DGraph(Theme3DGraph theme3DGraph)
        根据给定的 Theme3DGraph 对象构造一个与其完全相同的新对象。
        参数:
        theme3DGraph - 给定的 Theme3DGraph 对象。
    • 方法详细资料

      • getItem

        public Theme3DGraphItem getItem(int index)
        返回指定序号的三维统计专题图子项。
        参数:
        index - 指定的序号。
        返回:
        指定序号的三维统计专题图子项。
      • setItem

        public void setItem(int index,
                            Theme3DGraphItem item)
        用指定的三维统计专题图子项替代指定序号上的三维统计专题图子项。
        参数:
        index - 指定的序号。
        item - 指定的三维统计专题图子项。
      • getCount

        public int getCount()
        返回三维统计专题图子项的个数。
        返回:
        三维统计专题图子项的个数。
        默认值:
        默认值为 0。
      • getGraph3DType

        public Theme3DGraphType getGraph3DType()
        返回三维统计专题图的统计图类型。根据实际的数据和用途的不同,可以选择不同类型的统计图。

        支持3种类型的统计图类型: 其中包括柱状图 BAR、饼图 PIE、堆叠柱状图 STACK_BAR

        详细信息请参见 Theme3DGraphType

        返回:
        统计专题图的统计图类型。
        默认值:
        默认值为 Theme3DGraphType.BAR
      • setGraph3DType

        public void setGraph3DType(Theme3DGraphType theme3DGraphType)
        设置三维统计专题图的统计图类型。根据实际的数据和用途的不同,可以选择不同类型的统计图。

        SuperMap iObjects Java 8C 支持3种类型的统计图类型。 其中包括柱状图 BAR、饼图 PIE、堆叠柱状图 STACK_BAR

        详细信息请参见 Theme3DGraphType

        参数:
        theme3DGraphType - 统计专题图的统计图类型。
      • getBarWidth

        public double getBarWidth()
        返回柱状图中每一个柱的宽度。单位为米。

        注意:只有选择的统计图类型为三维柱状图 Theme3DGraphType.BAR、三维堆叠柱状图 Theme3DGraphType.STACK_BAR 时,此项才可设置。

        返回:
        柱状图中每一个柱的宽度。单位为米。
        默认值:
        默认值为 0,单位为米。
      • setBarWidth

        public void setBarWidth(double value)
        设置柱状图中每一个柱的宽度。单位为米。

        注意:只有选择的统计图类型为三维柱状图 Theme3DGraphType.BAR、三维堆叠柱状图 Theme3DGraphType.STACK_BAR 时,此项才可设置。

        参数:
        value - 柱状图中每一个柱的宽度。单位为米。
      • getStartAngle

        public double getStartAngle()
        返回饼状统计图的起始角度,默认以饼的圆心右侧水平方向为起始线,逆时针方向为正方向。单位为度,精确到 0.1 度。

        注意:只有选择的统计图类型为三维饼状图 Theme3DGraphType.BAR 时,此项才可设置。

        返回:
        饼状统计图的起始角度。单位为度。
        默认值:
        默认值为 0,单位为度。
      • setStartAngle

        public void setStartAngle(double value)
        设置饼状统计图的起始角度,默认以水平方向为正向。单位为度,精确到 0.1 度。

        注意:只有选择的统计图类型为三维饼状图 Theme3DGraphType.BAR 时,此项才可设置。

        参数:
        value - 饼状统计图的起始角度。单位为度。
      • getGraph3DTextStyle

        public TextStyle getGraph3DTextStyle()
        返回统计图上的文字标注风格。
        返回:
        统计图上的文字标注风格。
        默认值:
        默认值为 {Alignment=MiddleCenter,BackColor=Color [A=255, R=0, G=0, B=0],BackOpaque=False,Bold=False,FontHeight=4,FontWidth=0,ForeColor=Color [A=255, R=0, G=0, B=255],IsSizeFixed=True,Italic=False,Outline=False,Rotation=0,Shadow=False,Strikeout=False,Underline=False,Weight=0}
      • setGraph3DTextStyle

        public void setGraph3DTextStyle(TextStyle textStyle)
        设置统计图上的文字标注风格。
        参数:
        textStyle - 统计图上的文字标注风格。
      • getGraph3DTextFormat

        public Theme3DGraphTextFormat getGraph3DTextFormat()
        返回统计专题图文本显示格式,如百分数、真实数值、标题、标题+百分数、标题+真实数值。有关统计专题图文本显示格式详细信息,请参考 Theme3DGraphTextFormat
        返回:
        统计专题图文本显示格式。
        默认值:
        默认值为 Theme3DGraphTextFormat.PERCENT
      • setGraph3DTextFormat

        public void setGraph3DTextFormat(Theme3DGraphTextFormat theme3DGraphTextFormat)
        设置统计专题图文本显示格式,如百分数、真实数值、标题、标题+百分数、标题+真实数值。有关统计专题图文本显示格式详细信息,请参考 Theme3DGraphTextFormat
        参数:
        theme3DGraphTextFormat - 统计专题图文本显示格式。
      • isGraph3DTextDisplayed

        public boolean isGraph3DTextDisplayed()
        返回是否显示统计图上的文本标注。
        返回:
        一个布尔值指定是否显示统计图上的文本标注。
        默认值:
        默认值为 false。
      • setGraph3DTextDisplayed

        public void setGraph3DTextDisplayed(boolean value)
        设置是否显示统计图上的文本标注。
        参数:
        value - 一个布尔值指定是否显示统计图上的文本标注。
      • getMinGraphSize

        public double getMinGraphSize()
        返回统计专题图中统计符号显示的最小值。

        统计图中统计符号的显示大小均在最大、最小值之间逐渐变化。统计图的最大、最小值是与统计对象的多少和图层大小相关系的一个值。

        返回:
        统计专题图中统计符号显示的最小值。
        默认值:
        默认值为 0。
      • setMinGraphSize

        public void setMinGraphSize(double value)
        设置统计专题图中统计符号显示的最小值。

        统计图中统计符号的显示大小均在最大、最小值之间逐渐变化。统计图的最大、最小值是与统计对象的多少和图层大小相关系的一个值。

        参数:
        value - 统计专题图中统计符号显示的最小值。
      • getMaxGraphSize

        public double getMaxGraphSize()
        返回统计专题图中统计符号显示的最大值。

        统计图中统计符号的显示大小均在最大、最小值之间逐渐变化。统计图的最大、最小值是与统计对象的多少和图层大小相关系的一个值。

        返回:
        统计专题图中统计符号显示的最大值。
        默认值:
        默认值为 0。
      • setMaxGraphSize

        public void setMaxGraphSize(double value)
        设置统计专题图中统计符号显示的最大值。

        统计图中统计符号的显示大小均在最大、最小值之间逐渐变化。统计图的最大、最小值是与统计对象的多少和图层大小相关系的一个值。

        参数:
        value - 统计专题图中统计符号显示的最大值。
      • getGraduatedMode3D

        public GraduatedMode3D getGraduatedMode3D()
        返回专题图分级模式。其中包括常量分级、对数分级和平方根分级。详情请参考 GraduatedMode3D
        返回:
        专题图分级模式。
        默认值:
        默认值为 GraduatedMode3D.CONSTANT
      • setGraduatedMode3D

        public void setGraduatedMode3D(GraduatedMode3D value)
        设置专题图分级模式。其中包括常量分级、对数分级和平方根分级。详情请参考 GraduatedMode3D
        参数:
        value - 专题图分级模式。
      • clear

        public void clear()
        删除统计专题图中的所有子项。
      • add

        public int add(Theme3DGraphItem item)
        添加统计专题图的子项到专题图子项列表中。
        参数:
        item - 被添加的统计专题图子项。
        返回:
        如果添加成功返回被添加子项在子项序列中的序号,否则返回 -1。
      • insert

        public boolean insert(int index,
                              Theme3DGraphItem item)
        将给定的统计专题图子项插入到指定序号的位置。
        参数:
        index - 指定的统计专题图子项序列的序号。
        item - 将被插入的统计专题图子项。
        返回:
        一个布尔值,如果插入成功返回值为 true,否则为 false。
      • exchangeItem

        public boolean exchangeItem(int index1,
                                    int index2)
        将指定序号的两个子项进行位置交换。
        参数:
        index1 - 指定交换的第一个子项的序号。
        index2 - 指定交换的第二个子项的序号。
        返回:
        一个布尔值,如果两个子项交换成功,返回 true; 否则返回 false。
      • indexOf

        public int indexOf(String graphExpression)
        返回统计专题图中指定统计字段表达式的对象在当前统计图子项序列中的序号。
        参数:
        graphExpression - 指定的统计字段表达式。
        返回:
        统计专题图子项在序列中的序号。
      • remove

        public boolean remove(int index)
        在统计专题图子项序列中删除指定序号的统计专题图子项。
        参数:
        index - 指定的将被删除子项的序号。
        返回:
        如果删除成功,返回 true;否则返回 false。
      • getMemoryKeys

        public int[] getMemoryKeys()
        返回以内存数组方式制作专题图时的键数组。

        键数组内的数值代表 SmID 值。键数组中数值的个数必须要与值数组(通过 Theme3DGraphItem.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” 代替,以此类推。

        返回:
        以内存数组方式制作专题图时的键数组。
      • setMemoryKeys

        public void setMemoryKeys(int[] values)
        设置以内存数组方式制作专题图时的键数组。

        键数组内的数值代表 SmID 值,它与 Theme3DGraphItem 类中设置值数组的方法(即 Theme3DGraphItem.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 - 以内存数组方式制作专题图时的键数组。
      • toString

        public String toString()
        返回一个表示此三维统计专题图类对象的格式化字符串。
        指定者:
        toString 在类中 Theme3D
        返回:
        表示此三维统计专题图类对象的格式化字符串。
      • dispose

        public void dispose()
        释放该对象所占用的资源。当调用该方法之后,此对象不再可用。
      • calculateExtremum

        public void calculateExtremum(Dataset dataset)
      • fromXML

        public boolean fromXML(String xml)
        从类复制的说明: Theme3D
        从 XML 字符串中导入三维专题图信息。

        在 SuperMap 中,各种三维专题图的风格的设置都可以导出成 XML 格式的字符串,此 XML 格式的字符串中记录了关于这种三维专题图的所有设置,如对于三维标签专题图的 XML 格式字符串会记录三维专题图的类型,标签的风格,是否流动显示,是否自动避让、用来制作标签专题图的字段或表达式等等。这种 XML 格式的字符串可以用来导入,对三维专题图进行设置。

        覆盖:
        fromXML 在类中 Theme3D
        参数:
        xml - 包含三维专题图信息的 XML 字符串。
        返回:
        导入成功返回 true;否则返回 false。

Copyright © 2021–2024 SuperMap. All rights reserved.