com.supermap.mapping

类 ThemeUnique



  • public class ThemeUnique
    extends Theme
    单值专题图类。

    将字段或表达式的值相同的要素采用相同的风格来显示,从而用来区分不同的类别。例如,在表示土地的面数据中表示土地利用类型的字段中有草地,林地,居民地,耕地等值,使用单值专题图进行渲染时,每种类型的土地利用类型被赋予一种颜色或填充风格,从而可以看出每种类型的土地利用的分布区域和范围。可用于地质图、地貌图、植被图、土地利用图、政治行政区划图、自然区划图、经济区划图等。单值专题图着重表示现象质的差别,一般不表示数量的特征。尤其是有交叉或重叠现象时,此类不推荐使用,例如:民族分布区等。

    Example:
    以下代码示例了如何创建一个单值专题图,假定打开的图层是世界地图:
     public void themeUniqueTest() {
            // 打开数据源,得到给定World名称的数据集datasetVector
            Workspace workspace = new Workspace();
            String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
            String path = rootPath + "/SampleData/GeometryInfo/World.udb";
            DatasourceConnectionInfo datasourceConnectionInfo = new DatasourceConnectionInfo(path, "World", "");
            Datasource datasource = workspace.getDatasources().open(datasourceConnectionInfo);
            DatasetVector datasetVector = (DatasetVector) datasource.getDatasets().get("World");
    
            // 构造单值专题图并进行相应设置
            ThemeUnique theme = new ThemeUnique();
            theme.setUniqueExpression("SmID");
            GeoStyle style = new GeoStyle();
            style.setFillForeColor(java.awt.Color.yellow);
            style.setFillBackColor(java.awt.Color.green);
            style.setFillGradientMode(FillGradientMode.RADIAL);
            theme.setDefaultStyle(style);
    
            // 将得到的专题图添加到地图
            MapControl mapControl = new MapControl(workspace);
            Layer layer = mapControl.getMap().getLayers().add(datasetVector, true);
            Layer layerTheme = mapControl.getMap().getLayers().add(datasetVector,
                    theme, true);
    
            // 出图成 JPG 文件
            mapControl.getMap().setImageSize(new java.awt.Dimension(512, 512));
            String outFile = "c:/temp/themeUnique.jpg";
            mapControl.getMap().outputMapToJPG(outFile);
    
            // 释放资源
            mapControl.dispose();
            workspace.dispose();
        }
     
    • 方法概要

      所有方法 静态方法 实例方法 具体方法 
      限定符和类型 方法和说明
      int add(ThemeUniqueItem item)
      添加一个单值专题图子项到单值专题图子项列表中。
      void clear()
      删除所有单值专题图子项。
      void dispose()
      释放对象所占用的资源。
      boolean fromXML(java.lang.String xml)
      根据传入的 XML 字符串重新构造对象。
      int getCount()
      返回单值专题图子项个数。
      GeoStyle getDefaultStyle()
      返回单值专题图的默认风格。
      ThemeUniqueItem getItem(int index)
      返回指定序号的单值专题图子项。
      java.lang.String getOffsetX()
      返回点、线、面图层制作的单值专题图中的对象相对于原来位置的水平偏移量。
      java.lang.String getOffsetY()
      返回点、线、面图层制作的单值专题图中的对象相对于原来位置的垂直偏移量。
      java.lang.String getUniqueExpression()
      返回单值专题图字段表达式。
      int indexOf(java.lang.String unique)
      返回单值专题图中指定子项单值在当前序列中的序号。
      boolean insert(int index, ThemeUniqueItem item)
      将给定的单值专题图子项插入到指定序号的位置。
      boolean isDefaultStyleVisible()
      返回单值专题图默认风格是否可见。
      boolean isOffsetFixed()
      返回True表示采用设备单位,否则采用地理坐标单位。
      static ThemeUnique makeDefault(DatasetVector dataset, java.lang.String uniqueExpression)
      根据给定的矢量数据集和单值专题图字段表达式生成默认的单值专题图。
      static ThemeUnique makeDefault(DatasetVector dataset, java.lang.String uniqueExpression, ColorGradientType colorGradientType)
      根据给定的矢量数据集、单值专题图字段表达式和颜色渐变模式生成默认的单值专题图。
      static ThemeUnique makeDefault(DatasetVector dataset, java.lang.String uniqueExpression, ColorGradientType colorGradientType, JoinItems joinItems)
      根据给定的矢量数据集、单值专题图字段表达式、颜色渐变模式和外部表连接项生成默认的单值专题图。
      static ThemeUnique makeDefault(DatasetVector dataset, java.lang.String colorField, Colors colors)
      根据指定的面数据集、颜色字段名称、颜色生成默认的四色单值专题图。
      boolean remove(int index)
      删除一个指定序号的单值专题图子项。
      void reverseStyle()
      对单值专题图中子项的风格进行反序显示。
      void setDefaultStyle(GeoStyle style)
      设置单值专题图的默认风格。
      void setDefaultStyleVisible(boolean value)
      设置单值专题图默认风格是否可见。
      void setOffsetFixed(boolean value)
      参数为True表示采用设备单位,否则采用地理坐标单位。
      void setOffsetX(java.lang.String value)
      设置点、线、面图层制作的单值专题图中的对象相对于原来位置的水平偏移量。
      void setOffsetY(java.lang.String value)
      设置点、线、面图层制作的单值专题图中的对象相对于原来位置的垂直偏移量。
      void setUniqueExpression(java.lang.String value)
      设置单值专题图字段表达式。
      java.lang.String toString()
      输出单值专题图格式化字符串。
      • 从类继承的方法 java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • 构造器详细资料

      • ThemeUnique

        public ThemeUnique()
        默认构造函数,构造一个新的 ThemeUnique 对象。
      • ThemeUnique

        public ThemeUnique(ThemeUnique themeUnique)
        拷贝构造函数,根据给定的 ThemeUnique 对象构造一个与其完全相同的新对象。
        参数:
        themeUnique - 给定的单值专题图对象。
    • 方法详细资料

      • getItem

        public ThemeUniqueItem getItem(int index)
        返回指定序号的单值专题图子项。
        参数:
        index - 指定的单值专题图子项的序号。
        返回:
        指定序号的单值专题图子项。
      • getCount

        public int getCount()
        返回单值专题图子项个数。
        返回:
        单值专题图子项个数。
        Default:
        默认值为 0。
      • getUniqueExpression

        public java.lang.String getUniqueExpression()
        返回单值专题图字段表达式。用于制作单值专题图的字段或字段表达式。该字段可以为要素的某一属性(如地质图中的年代或成份),其值的数据类型可以为数值型或字符型。
        返回:
        单值专题图字段表达式。
        Default:
        默认值为一个空字符串。
      • setUniqueExpression

        public void setUniqueExpression(java.lang.String value)
        设置单值专题图字段表达式。用于制作单值专题图的字段或字段表达式。该字段可以为要素的某一属性(如地质图中的年代或成份),其值的数据类型可以为数值型或字符型。
        参数:
        value - 指定单值专题图字段表达式。
      • getDefaultStyle

        public GeoStyle getDefaultStyle()
        返回单值专题图的默认风格。对于那些未在单值专题图子项之列的对象使用该风格显示。如未设置,则使用图层默认风格显示。
        返回:
        单值专题图的默认风格。
        Default:
        默认值为{FillBackColor=Color [A=255, R=255, G=255, B=255],FillForeColor=Color [A=255, R=189, G=235, B=255],FillGradientAngle=0,FillGradientMode=None,FillGradientOffsetRatioX=0,FillGradientOffsetRatioY=0,FillOpaqueRate=100,FillSymbolID=0,LineColor=Color [A=255, R=0, G=0, B=0],LineSymbolID=0,LineWidth=0.1,MarkerAngle=0,MarkerSize={Width=2.4,Height=-1},MarkerSymbolID=0}。
      • setDefaultStyle

        public void setDefaultStyle(GeoStyle style)
        设置单值专题图的默认风格。对于那些未在单值专题图子项之列的对象使用该风格显示。如未设置,则使用图层默认风格显示。
        参数:
        style - 指定单值专题图的默认风格。
      • add

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

        public boolean insert(int index,
                              ThemeUniqueItem item)
        将给定的单值专题图子项插入到指定序号的位置。
        参数:
        index - 指定的单值专题图子项序列的序号。
        item - 将被插入的单值专题图子项。
        返回:
        如果插入成功返回 true,否则返回 false。
      • remove

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

        public void clear()
        删除所有单值专题图子项。执行该方法后,所有的单值专题图子项都被释放,不再可用。
      • makeDefault

        public static ThemeUnique makeDefault(DatasetVector dataset,
                                              java.lang.String uniqueExpression)
        根据给定的矢量数据集和单值专题图字段表达式生成默认的单值专题图。
        参数:
        dataset - 给定的矢量数据集。
        uniqueExpression - 单值专题图字段表达式。
        返回:
        根据参数构造得到一个新的单值专题图类的对象实例。
      • makeDefault

        public static ThemeUnique makeDefault(DatasetVector dataset,
                                              java.lang.String uniqueExpression,
                                              ColorGradientType colorGradientType)
        根据给定的矢量数据集、单值专题图字段表达式和颜色渐变模式生成默认的单值专题图。
        参数:
        dataset - 给定的矢量数据集。
        uniqueExpression - 单值专题图字段表达式。
        colorGradientType - 颜色渐变模式。
        返回:
        根据参数构造得到一个新的单值专题图类的对象实例。
      • makeDefault

        public static ThemeUnique makeDefault(DatasetVector dataset,
                                              java.lang.String uniqueExpression,
                                              ColorGradientType colorGradientType,
                                              JoinItems joinItems)
        根据给定的矢量数据集、单值专题图字段表达式、颜色渐变模式和外部表连接项生成默认的单值专题图。
        参数:
        dataset - 给定的矢量数据集。
        uniqueExpression - 单值专题图字段表达式。
        colorGradientType - 颜色渐变模式。
        joinItems - 外部表连接项。
        返回:
        根据参数构造得到一个新的单值专题图类的对象实例。
      • makeDefault

        public static ThemeUnique makeDefault(DatasetVector dataset,
                                              java.lang.String colorField,
                                              Colors colors)
        根据指定的面数据集、颜色字段名称、颜色生成默认的四色单值专题图。

        四色单值专题图是指在一幅地图上,只用四种颜色就能使具有公共边的面对象着上不同的颜色。

        注意:对于面数据集复杂度低的情形下,采用四种颜色即可生成四色单值专题图;若面数据集复杂度高,则着色结果可能为五色。

        参数:
        dataset - 指定的面数据集。由于该构造函数将修改面数据集的属性信息,因此,需保证 dataset 为非只读。
        colorField - 着色字段的名称。着色字段必须为整型字段。它可以为面数据集中已有属性字段,也可以是自定义的其它字段。若为已存在属性字段,需保证该字段类型为整型,系统将修改该字段的属性值,并分别赋值为1、2、3、4;若为自定义的其它字段,需保证字段名合法,则系统首先在面数据集中创建该字段,并分别赋值为1、2、3、4。由此,着色字段已分别赋值为1、2、3、4,代表着四种不同的颜色,根据该字段的值即可生成四色专题图。
        colors - 用户传入的用来制作专题图的颜色。系统对传入颜色的数目不做规定,比如,用户只传入了一种颜色,则在生成专题图时,系统会自动补齐出图所需的颜色。
        返回:
        生成的四色单值专题图。
      • indexOf

        public int indexOf(java.lang.String unique)
        返回单值专题图中指定子项单值在当前序列中的序号。
        参数:
        unique - 给定的单值专题图子项单值。
        返回:
        专题图子项在序列中的序号值。如果该值不存在,就返回-1。
      • reverseStyle

        public void reverseStyle()
        对单值专题图中子项的风格进行反序显示。
      • toString

        public java.lang.String toString()
        输出单值专题图格式化字符串。格式化字符串提供专题图的相关设置信息,与 XML 字符串不同的是,格式化字符串不可导入显示专题图,只用于提供专题图的相关信息。
        1. 对于栅格分段专题图,其格式为{Caption=”china”, Start=10 End=20, Visible=true?false, Style={linestyle=,markerstyle=,fillstyle=} };
        2. 对于栅格单值专题图,其格式为{Caption=”china”, Unique =20, Visible=true?false, Style={linestyle=,markerstyle=,fillstyle=} };
        3. 对于标签专题图,其格式为{Caption=”China”, Start=10 End=20, Visible=true, Style={name=,width=,height=,color=()} };
        4. 对于分段专题图,其格式为{Caption=”china”, Start=10 End=20, Visible=true?false, Style={linestyle=,markerstyle=,fillstyle=};
        5. 对于单值专题图,其格式为{Caption=”china”, Unique =20, Visible=true?false, Style={linestyle=,markerstyle=,fillstyle=} }。
        指定者:
        toString 在类中 Theme
        返回:
        专题图的格式化字符串。
      • dispose

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

        public boolean fromXML(java.lang.String xml)
        根据传入的 XML 字符串重新构造对象。
        覆盖:
        fromXML 在类中 Theme
        参数:
        xml - 传入的 XML 字符串。
        返回:
        如果构造成功返回 true,否则返回 false。
      • setDefaultStyleVisible

        public void setDefaultStyleVisible(boolean value)
        设置单值专题图默认风格是否可见。
        参数:
        value - 单值专题图默认风格是否可见。
      • isDefaultStyleVisible

        public boolean isDefaultStyleVisible()
        返回单值专题图默认风格是否可见。
        返回:
        单值专题图默认风格是否可见。
      • getOffsetX

        public java.lang.String getOffsetX()
        返回点、线、面图层制作的单值专题图中的对象相对于原来位置的水平偏移量。

        偏移量的单位由 isOffsetFixed()的设置决定,参数为True表示采用设备单位,否则采用地理坐标单位。

        返回:
        点、线、面图层制作的单值专题图中的对象相对于原来位置的水平偏移量。
      • setOffsetX

        public void setOffsetX(java.lang.String value)
        设置点、线、面图层制作的单值专题图中的对象相对于原来位置的水平偏移量。

        偏移量的单位由 isOffsetFixed()的设置决定,参数为True表示采用设备单位,否则采用地理坐标单位。

        参数:
        value - 点、线、面图层制作的单值专题图中的对象相对于原来位置的水平偏移量。
      • getOffsetY

        public java.lang.String getOffsetY()
        返回点、线、面图层制作的单值专题图中的对象相对于原来位置的垂直偏移量。

        偏移量的单位由 isOffsetFixed()的设置决定,参数为True表示采用设备单位,否则采用地理坐标单位。

        返回:
        点、线、面图层制作的单值专题图中的对象相对于原来位置的垂直偏移量。
      • setOffsetY

        public void setOffsetY(java.lang.String value)
        设置点、线、面图层制作的单值专题图中的对象相对于原来位置的垂直偏移量。

        偏移量的单位由 isOffsetFixed()的设置决定,参数为True表示采用设备单位,否则采用地理坐标单位。

        参数:
        value - 点、线、面图层制作的单值专题图中的对象相对于原来位置的垂直偏移量。
      • isOffsetFixed

        public boolean isOffsetFixed()
        返回True表示采用设备单位,否则采用地理坐标单位。
        返回:
        是否固定偏移量。
      • setOffsetFixed

        public void setOffsetFixed(boolean value)
        参数为True表示采用设备单位,否则采用地理坐标单位。
        参数:
        value - 是否采用设备单位