com.supermap.mapping

类 ThemeLabel



  • public class ThemeLabel
    extends Theme
    标签专题图类。

    标签专题图的标注可以是数字、字母与文字,例如:河流、湖泊、海洋、山脉、城镇、村庄等地理名称,高程、等值线数值、河流流速、公路段里程、航海线里程等。

    在标签专题图中,你可以对标签的显示风格和位置进行设置或控制,你可以为所有的标签都设置统一的显示风格和位置选项来显示,也可以通过分段的方式,对单个或每个分段内的标签的风格分别进行设置,另外,单个标签的位置也是可以修改的。

    注:地图上一般还会出现图例说明,图名,比例尺等等,那些都是制图元素,不属于标签专题图标注的范畴。

    Example:
    以下代码示例了如何连接外部表来创建标签专题图。假设打开了一个工作空间 workspace 对象,将为世界各个国家的版图标注国家的名称,同时根据人口范围控制标签专题图的风格。
     public void themeLabelExample(DatasetVector datasetVector)
     {
            // 制作标签专题图
            ThemeLabel themeLabelMap = new ThemeLabel();
            themeLabelMap.setLabelExpression("Country");
            themeLabelMap.setRangeExpression("Pop_1994");
    
            // 为标签专题图的标签设置分段样式
            // 设置人口大于一亿国家的标签
            ThemeLabelItem themeLabelItem1 = new ThemeLabelItem();
            themeLabelItem1.setCaption("大于一亿");
            themeLabelItem1.setEnd(120000000);
            themeLabelItem1.setStart(100000000);
            themeLabelItem1.setVisible(true);
            TextStyle textStyle1 = new TextStyle();
            textStyle1.setForeColor(java.awt.Color.getHSBColor(255, 190, 189));
            textStyle1.setFontName("宋体");
            themeLabelItem1.setStyle(textStyle1);
    
            // 设置人口大于一千万国家的标签
            ThemeLabelItem themeLabelItem2 = new ThemeLabelItem();
            themeLabelItem2.setCaption("大于一千万");
            themeLabelItem2.setEnd(100000000);
            themeLabelItem2.setStart(10000000);
            themeLabelItem2.setVisible(true);
            TextStyle textStyle2 = new TextStyle();
            textStyle2.setForeColor(java.awt.Color.getHSBColor(255, 235, 189));
            textStyle2.setFontName("宋体");
            themeLabelItem2.setStyle(textStyle2);
    
            // 设置人口大于一百万国家的标签
            ThemeLabelItem themeLabelItem3 = new ThemeLabelItem();
            themeLabelItem3.setCaption("大于一百万");
            themeLabelItem3.setEnd(10000000);
            themeLabelItem3.setStart(1000000);
            themeLabelItem3.setVisible(true);
            TextStyle textStyle3 = new TextStyle();
            textStyle3.setForeColor(java.awt.Color.getHSBColor(214, 255, 115));
            textStyle3.setFontName("宋体");
            themeLabelItem3.setStyle(textStyle3);
    
            // 设置人口小于一百万国家的标签
            ThemeLabelItem themeLabelItem4 = new ThemeLabelItem();
            themeLabelItem4.setCaption("小于一百万");
            themeLabelItem4.setEnd(1000000);
            themeLabelItem4.setStart(0);
            themeLabelItem4.setVisible(true);
            TextStyle textStyle4 = new TextStyle();
            textStyle4.setForeColor(java.awt.Color.getHSBColor(214, 255, 189));
            textStyle4.setFontName("宋体");
            themeLabelItem4.setStyle(textStyle4);
    
            // 添加标签专题图子项到标签专题图对象中
            themeLabelMap.addToHead(themeLabelItem1);
            themeLabelMap.addToHead(themeLabelItem2);
            themeLabelMap.addToHead(themeLabelItem3);
            themeLabelMap.addToHead(themeLabelItem4);
    
            MapControl mapControl = new MapControl();
            mapControl.getMap().setWorkspace(workspace);
            Layer layerTheme = mapControl.getMap().getLayers().add(datasetVector,themeLabelMap, true);
            mapControl.getMap().refresh();
        }
    
     
    , 以下代码示例了如何制作一个简单的标签专题图。
     ThemeLabel tl = new ThemeLabel();
            tl.setLabelExpression("SmID");
            TextStyle ts = new TextStyle();
            ts.setFontName(mActivity.getResources().getString(R.string.font));
            ts.setAlignment(TextAlignment.MIDDLECENTER);
            ts.setFontWidth(1.5);
            ts.setFontHeight(4.0);
    
            tl.setUniformStyle(ts);
    
        Dataset dataset = workspace.getDatasources().get(0).getDatasets().get(0);
        if (dataset != null) {
        m_UnifiedMapLayer = mapControl.getMap().getLayers().add(dataset,tl, true);
    }
     
    • 构造器详细资料

      • ThemeLabel

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

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

      • getItem

        public ThemeLabelItem getItem(int index)
        返回指定序号的标签专题图中标签专题图子项。有关标签专题图子项详细信息,请参见 ThemeLabelItem 类。
        参数:
        index - 指定标签专题图子项的序号。
        返回:
        指定序号的标签专题图中标签专题图子项。
        另请参阅:
        ThemeLabelItem
      • getCount

        public int getCount()
        返回标签专题图中分段的个数。
        返回:
        标签专题图中分段的个数。
        Default:
        默认值为 0。
      • getBackStyle

        public GeoStyle getBackStyle()
        返回标签专题图中的标签背景风格。
        返回:
        标签专题图中的标签背景风格。
        Default:
        默认值为 {FillBackColor=Color [A=255, R=255, G=255, B=255],FillForeColor=Color [A=255, R=255, G=255, B=204],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}
      • setBackStyle

        public void setBackStyle(GeoStyle style)
        设置标签专题图中的标签背景风格,OpenGL不支持标签背景透明度。
        参数:
        style - 指定标签背景风格。
      • getBackShape

        public LabelBackShape getBackShape()
        返回标签专题图中的标签背景的形状类型。背景类型可以是矩形、圆角矩形、菱形、椭圆形、三角形和符号等,默认不显示任何背景。详细信息可参考 LabelBackShape
        返回:
        标签背景的形状类型。
        另请参阅:
        LabelBackShape
        Default:
        默认值为 LabelBackShape.NONE,即空背景。
      • setBackShape

        public void setBackShape(LabelBackShape value)
        设置标签专题图中的标签背景的形状类型。背景类型可以是矩形、圆角矩形、菱形、椭圆形、三角形和符号等,默认不显示任何背景。详细信息可参考 LabelBackShape
        参数:
        value - 指定标签背景的形状类型。
        另请参阅:
        LabelBackShape
      • getMaxLabelLength

        public int getMaxLabelLength()
        返回标签在每一行显示的最大长度。

        如果输入的字符超过设置的最大长度,可以采用两种方式处理,一种是以换行的方式进行显示,这种方式自动调整字间距,尽量使每一行的字符个数相近,故每一行显示的字符个数小于等于设置的最大长度; 另一种是以省略号方式进行显示,当输入的字符大于设置的最大长度时,多出的字符将以省略号的方式进行显示。

        返回:
        每一行显示的最大长度。
        Default:
        默认值为 256。
      • setMaxLabelLength

        public void setMaxLabelLength(int value)
        设置标签在每一行显示的最大长度。如果超过这个长度,可以采用两种方式来处理,一种是换行的模式进行显示,另一种是以省略号方式显示。
        参数:
        value - 指定每一行显示的最大长度。
      • getOverLengthMode

        public OverLengthLabelMode getOverLengthMode()
        返回超长标签的处理方式。对超长标签可以不作任何处理,也可以省略超出的部分,或者以换行方式进行显示。
        返回:
        超长标签的处理方式。
        Default:
        默认值为 OverLengthLabelMode.NONE,即对超长标签不进行处理。
      • setOverLengthMode

        public void setOverLengthMode(OverLengthLabelMode value)
        设置超长标签的处理方式。对超长标签可以不作任何处理,也可以省略超出的部分,或者以换行方式进行显示。
        参数:
        value - 指定超长标签的处理方式。
      • isFlowEnabled

        public boolean isFlowEnabled()
        返回是否流动显示标签。默认为 true。

        注:流动显示只适合于线和面要素的标注

        返回:
        是否流动显示标签。
        Default:
        默认值为 true。
      • setFlowEnabled

        public void setFlowEnabled(boolean value)
        设置是否流动显示标签。

        注:流动显示只适合于线和面要素的标注

        参数:
        value - 指定是否流动显示标签。
      • isSmallGeometryLabeled

        public boolean isSmallGeometryLabeled()
        当标签的长度大于被标注对象本身的长度时,返回是否显示该标签。

        在标签的长度大于线或者面对象本身的长度时,如果选择继续标注,则标签文字会叠加在一起显示,为了清楚完整的显示该标签,可以采用换行模式来显示标签,但必须保证每行的长度小于对象本身的长度。

        返回:
        一个布尔值指定是否显示长度大于被标注对象本身长度的标签。
        Default:
        默认值为 false。
      • setSmallGeometryLabeled

        public void setSmallGeometryLabeled(boolean value)
        当标签的长度大于被标注对象本身的长度时,设置是否显示该标签。

        在标签的长度大于线或者面对象本身的长度时,如果选择继续标注,则标签文字会叠加在一起显示,为了清楚完整的显示该标签,可以采用换行模式来显示标签,但必须保证每行的长度小于对象本身的长度。

        参数:
        value - 一个布尔值指定是否显示长度大于被标注对象本身长度的标签。
      • setAlongLineDirection

        public void setAlongLineDirection(AlongLineDirection value)
        设置标签沿线标注方向。
        参数:
        value - 标签沿线标注方向。
      • isAlongLine

        public boolean isAlongLine()
        返回是否沿线显示文本。true 表示沿线显示文本,false 表示正常显示文本。

        注:沿线标注属性只适用于线数据集专题图。

        返回:
        是否沿线显示文本。
        Default:
        默认值为 true。
      • setAlongLine

        public void setAlongLine(boolean value)
        设置是否沿线显示文本。true 表示沿线显示文本,false 表示正常显示文本。

        注:沿线标注属性只适用于线数据集专题图。

        参数:
        value - 指定是否沿线显示文本。
      • isAngleFixed

        public boolean isAngleFixed()
        当沿线显示文本时,是否将文本角度固定。true 表示按固定文本角度显示文本,false 表示按照沿线角度显示文本。
        返回:
        当沿线显示文本时,是否将文本角度固定。
        Default:
        默认值为 false。
      • setAngleFixed

        public void setAngleFixed(boolean value)
        当沿线显示文本时,是否将文本角度固定。true 表示按固定文本角度显示文本,false 表示按照沿线角度显示文本。
        参数:
        value - 指定当沿线显示文本时,是否将文本角度固定。
      • isOverlapAvoided

        public boolean isOverlapAvoided()
        返回是否允许以文本避让方式显示文本。只针对该标签专题图层中的文本数据。

        注:在标签重叠度很大的情况下,即使使用自动避让功能,可能也无法完全避免标签重叠现象。

        当两个相互重叠的标签同时设置了文本避让时,ID 靠前的标签文本具有优先绘制权。

        返回:
        是否自动避免文本叠盖。
        Default:
        默认值为 true,即自动避免文本叠盖。
      • setOverlapAvoided

        public void setOverlapAvoided(boolean value)
        是否允许以文本避让方式显示文本。只针对该标签专题图层中的文本数据。

        注:在标签重叠度很大的情况下,即使使用自动避让功能,可能也无法完全避免标签重叠现象。

        当两个相互重叠的标签同时设置了文本避让时,ID 靠前的标签文本具有优先绘制权。

        参数:
        value - 指定是否自动避免文本叠盖。
      • isRepeatIntervalFixed

        public boolean isRepeatIntervalFixed()
        返回循环标注间隔是否固定。true 表示使用固定循环标注间隔,即使用逻辑坐标来显示循环标注间隔;false 表示循环标注间隔随地图的缩放而变化,即使用地理坐标来显示循环标注间隔。
        返回:
        循环标注间隔固定返回 true;否则返回 false。
        Default:
        默认值为 false。
      • setRepeatIntervalFixed

        public void setRepeatIntervalFixed(boolean value)
        设置循环标注间隔是否固定。true 表示使用固定循环标注间隔,即使用逻辑坐标来显示循环标注间隔;false 表示循环标注间隔随地图的缩放而变化,即使用地理坐标来显示循环标注间隔。
        参数:
        value - 一个布尔值指定循环标注间隔是否固定。
      • getLabelRepeatInterval

        public double getLabelRepeatInterval()
        返回在沿线标注时循环标注的间隔。长度的单位与地图的地理单位一致。
        返回:
        在沿线标注时循环标注的间隔。
        Default:
        默认值为 0。
      • setLabelRepeatInterval

        public void setLabelRepeatInterval(double value)
        设置在沿线标注时循环标注的间隔。长度的单位与地图的地理单位一致。
        参数:
        value - 指定在沿线标注时循环标注的间隔。
      • getOffsetX

        public java.lang.String getOffsetX()
        返回标签专题图中标记文本相对于要素内点的水平偏移量。标签偏移量的单位为地图单位。

        该偏移量的值为一个常量值或者字段表达式所表示的值,即如果字段表达式为 SmID,其中 SmID=2,那么偏移量的值为 2。

        返回:
        标签专题图中标记文本相对于要素内点的水平偏移量。
        Default:
        默认值为一个空字符串。
      • setOffsetX

        public void setOffsetX(java.lang.String value)
        设置标签专题图中标记文本相对于要素内点的水平偏移量。标签偏移量的单位为地图单位。

        该偏移量的值为一个常量值或者字段表达式所表示的值,即如果字段表达式为 SmID,其中 SmID=2,那么偏移量的值为 2。

        参数:
        value - 指定标签专题图中标记文本相对于要素内点的水平偏移量。
      • getOffsetY

        public java.lang.String getOffsetY()
        返回标签专题图中标记文本相对于要素内点的垂直偏移量。标签偏移量的单位为地图单位。

        该偏移量的值为一个常量值或者字段表达式所表示的值,即如果字段表达式为 SmID,其中 SmID=2,那么偏移量的值为2。

        返回:
        标签专题图中标记文本相对于要素内点的垂直偏移量。
        Default:
        默认值为一个空字符串。
      • setOffsetY

        public void setOffsetY(java.lang.String value)
        设置标签专题图中标记文本相对于要素内点的垂直偏移量。标签偏移量的单位为地图单位。

        该偏移量的值为一个常量值或者字段表达式所表示的值,即如果字段表达式为 SmID,其中 SmID=2,那么偏移量的值为 2。

        参数:
        value - 指定标签专题图中标记文本相对于要素内点的垂直偏移量。
      • getLeaderLineStyle

        public GeoStyle getLeaderLineStyle()
        返回标签与其标注对象之间牵引线的风格。
        返回:
        标签与其标注对象之间牵引线的风格。
        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=39,LineWidth=0.1,MarkerAngle=0,MarkerSize={Width=2.4,Height=-1},MarkerSymbolID=0}
      • setLeaderLineStyle

        public void setLeaderLineStyle(GeoStyle style)
        设置标签与其标注对象之间牵引线的风格。
        参数:
        style - 指定标签与其标注对象之间牵引线的风格。
      • isLeaderLineDisplayed

        public boolean isLeaderLineDisplayed()
        返回是否显示标签和它标注的对象之间的牵引线。
        返回:
        是否显示标签和它标注的对象之间的牵引线。
        Default:
        默认值为 false。即不显示标签和它标注的对象之间的牵引线。
      • setLeaderLineDisplayed

        public void setLeaderLineDisplayed(boolean value)
        设置是否显示标签和它标注的对象之间的牵引线。注:在openGL模式下不生效
        参数:
        value - 指定是否显示标签和它标注的对象之间的牵引线。
      • getRangeExpression

        public java.lang.String getRangeExpression()
        返回分段字段表达式。其中分段表达式中的值必须为数值型的。

        用户根据该方法的返回值来比较其从开始到结束的每一个分段值,以确定采用什么风格来显示给定标注字段表达式(getLabelExpression()setLabelExpression())相应的标注文本。

        返回:
        分段字段表达式。
        Default:
        默认值为一个空字符串。
      • setRangeExpression

        public void setRangeExpression(java.lang.String value)
        设置分段字段表达式。其中分段表达式中的值必须为数值型的。

        用户根据该方法的设置值来比较其从开始到结束的每一个分段值,以确定采用什么风格来显示给定标注字段表达式(getLabelExpression()setLabelExpression())相应的标注文本。

        参数:
        value - 指定分段字段表达式。
      • getLabelExpression

        public java.lang.String getLabelExpression()
        返回标注字段表达式。
        返回:
        标注字段表达式。
        Default:
        默认值为一个空字符串。
      • setLabelExpression

        public void setLabelExpression(java.lang.String value)
        设置标注字段表达式。
        参数:
        value - 指定标注字段表达式。
      • getUniformStyle

        public TextStyle getUniformStyle()
        返回统一文本风格。注:当 ThemeLabelItem 的个数大于等于1的时候,setUniformStyle() 将不起作用。
        返回:
        统一文本风格。
        Default:
        默认值为 {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}
      • setUniformStyle

        public void setUniformStyle(TextStyle style)
        设置统一文本风格。注:当 ThemeLabelItem 的个数大于等于1的时候,setUniformStyle() 将不起作用。
        参数:
        style - 指定统一文本风格。
      • addToHead

        public boolean addToHead(ThemeLabelItem item)
        把一个标签专题图子项添加到分段列表的开头。
        参数:
        item - 需要添加的子项。
        返回:
        一个布尔值,如果添加成功返回 true,否则返回 false。
      • addToTail

        public boolean addToTail(ThemeLabelItem item)
        把一个标签专题图子项添加到分段列表的尾部。
        参数:
        item - 需要添加的标签专题图子项。
        返回:
        一个布尔值,如果添加成功返回 true,否则返回 false。
      • addToHead

        public boolean addToHead(ThemeLabelItem item,
                                 boolean normalize)
        把一个标签专题图子项添加到分段列表的开头。
        参数:
        item - 需要添加的子项。
        normalize - 表示是否规整化,normalize 为 true时, item 值不合法,则进行规整,normalize 为 fasle时, item 值不合法则抛异常。
        返回:
        一个布尔值,如果添加成功返回 true,否则返回 false。
      • addToTail

        public boolean addToTail(ThemeLabelItem item,
                                 boolean normalize)
        把一个标签专题图子项添加到分段列表的尾部。
        参数:
        item - 需要添加的标签专题图子项。
        normalize - 表示是否规整化,normalize 为 true时, item 值不合法,则进行规整,normalize 为 fasle时, item 值不合法则抛异常。
        返回:
        一个布尔值,如果添加成功返回 true,否则返回 false。
      • split

        public boolean split(int index,
                             double splitValue,
                             TextStyle style,
                             java.lang.String caption1,
                             TextStyle style2,
                             java.lang.String caption2)
        根据给定的拆分分段值将一个指定序号的标签专题图子项拆分成两个具有各自风格和名称的标签专题图子项。注:splitValue 必须在拆分的范围之内。即大于标签专题图子项的起始值(Start)并且小于标签专题图子项的终止值(End),如果不满足上述条件,则抛出异常。
        参数:
        index - 指定的标签专题图子项的序号。
        splitValue - 指定的拆分分段值。
        style - 被拆分的两个标签专题图子项中的一个标签专题图子项的风格。
        caption1 - 被拆分的两个标签专题图子项中的一个标签专题图子项的名称。
        style2 - 被拆分的两个标签专题图子项中的另一个标签专题图子项的风格。
        caption2 - 被拆分的两个标签专题图子项中的另一个标签专题图子项的名称。
        返回:
        一个布尔值,拆分成功返回 true,否则返回 false。
      • merge

        public boolean merge(int index,
                             int count,
                             TextStyle style,
                             java.lang.String caption)
        合并一个从指定序号起始的给定个数的标签专题图子项,并赋给合并后标签专题图子项显示风格和名称。执行该方法后,被合并的对象将被释放,不再可用。
        参数:
        index - 指定的标签专题图子项的序号,并以此序号为起始。
        count - 要合并的标签专题图子项个数,即从指定的序号开始计算。
        style - 合并后的标签专题图子项的风格。
        caption - 合并后的标签专题图子项名称。
        返回:
        一个布尔值,合并成功返回 true,否则返回 false。
      • clear

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

        public static ThemeLabel makeDefault(DatasetVector dataset,
                                             java.lang.String rangeExpression,
                                             RangeMode rangeMode,
                                             double rangeParameter)
        根据给定的矢量数据集、分段字段表达式、分段模式和相应的分段参数生成默认的标签专题图。
        参数:
        dataset - 矢量数据集。
        rangeExpression - 分段字段表达式。
        rangeMode - 分段模式。包括等距离分段法,平方根分段法,标准差分段法,对数分段法,等计数分段法,以及自定义距离法。
        rangeParameter - 分段参数。当分段模式为等距离分段法,平方根分段法其中一种模式时,该参数为分段值;当分段模式为标准差分段法的时候,该参数不起作用;当分段模式为自定义距离时,该参数表示自定义距离。
        返回:
        根据参数构造得到一个新的 ThemeLabel 的对象实例。
      • makeDefault

        public static ThemeLabel makeDefault(DatasetVector dataset,
                                             java.lang.String rangeExpression,
                                             RangeMode rangeMode,
                                             double rangeParameter,
                                             ColorGradientType colorGradientType)
        根据给定的矢量数据集、分段字段表达式、分段模式、相应的分段参数和颜色渐变模式生成默认的标签专题图。
        参数:
        dataset - 矢量数据集。
        rangeExpression - 分段字段表达式。
        rangeMode - 分段模式。包括等距离分段法,平方根分段法,标准差分段法,对数分段法,等计数分段法,以及自定义距离法。
        rangeParameter - 分段参数。当分段模式为等距离分段法,平方根分段法其中一种时,该参数为分段值;当分段模式为标准差分段法的时候,该参数不起作用;当分段模式为自定义距离时,该参数表示自定义距离。
        colorGradientType - 颜色渐变模式。
        返回:
        根据参数构造得到一个新的 ThemeLabel 的对象实例。
      • makeDefault

        public static ThemeLabel makeDefault(DatasetVector dataset,
                                             java.lang.String rangeExpression,
                                             RangeMode rangeMode,
                                             double rangeParameter,
                                             ColorGradientType colorGradientType,
                                             JoinItems joinItems)
        根据给定的矢量数据集、分段字段表达式、分段模式、相应的分段参数、颜色渐变填充模式和外部连接表项生成默认的标签专题图。
        参数:
        dataset - 矢量数据集。
        rangeExpression - 分段字段表达式。
        rangeMode - 分段模式。包括等距离分段法,平方根分段法,标准差分段法,对数分段法,等计数分段法,以及自定义距离法。
        rangeParameter - 分段参数。当分段模式为等距离分段法,平方根分段法其中一种时,该参数为分段值;当分段模式为标准差分段法的时候,该参数不起作用;当分段模式为自定义距离时,该参数表示自定义距离。
        colorGradientType - 颜色渐变模式。
        joinItems - 外部表连接项。

        如果要将制作的专题图添加到地图中,作为地图中的图层,需要对该专题图图层进行以下设置,通过该专题图图层对应的 Layer 对象的 setDisplayFilter 方法,该方法中的 queryParameter 参数为 QueryParameter 对象,这里需要通过 QueryParameter 对象的 setJoinItems 方法,将专题的外部表连接项(即当前方法的 joinItems参数)指定给该专题图图层对应的 Layer 对象,这样所做的专题图在地图中显示才正确。

        返回:
        根据参数构造得到一个新的 ThemeLabel 的对象实例。
      • indexOf

        public int indexOf(double value)
        返回标签专题图中指定分段字段值在当前分段序列中的序号。
        参数:
        value - 给定的分段字段值。
        返回:
        分段字段值在分段序列中的序号。如果该值不存在,就返回-1。
      • reverseStyle

        public void reverseStyle()
        对标签专题图中分段的风格进行反序显示。
      • getParent

        public ThemeLabel getParent()
        返回当前标签专题图所归属的专题图,即其父对象。
        返回:
        ThemeLabel 对象。
        Default:
        默认值为空。
      • getNumericPrecision

        public int getNumericPrecision()
        返回标签中数字的精度。例如标签对应的数字是 8071.64529347,返回值为0时,显示8071,为1时,显示8071.6;为3时,则是8071.645。。
        返回:
        标签中数字的精度。
        Default:
        默认值为 -1。
      • setNumericPrecision

        public void setNumericPrecision(int value)
        设置标签中数字的精度。例如标签对应的数字是8071.64529347,返回值为0时,显示8071,为1时,显示8071.6;为3时,则是8071.645。
        参数:
        value - 标签中数字的精度。
      • getMaxTextHeight

        public int getMaxTextHeight()
        返回标签中文本的最大高度。

        该方法在标签不固定大小时有效,当放大后的文本高度超过最大高度之后就不再放大。高度单位为 0.1 毫米。

        返回:
        标签中文本的最大高度。
        Default:
        默认值为 0。
      • setMaxTextHeight

        public void setMaxTextHeight(int value)
        设置标签中文本的最大高度。

        该方法在标签不固定大小时有效,当放大后的文本高度超过最大高度之后就不再放大。高度单位为 0.1 毫米。

        参数:
        value - 标签中文本的最大高度。
      • getMinTextHeight

        public int getMinTextHeight()
        返回标签中文本的最小高度。
        返回:
        标签中文本的最小高度。
        Default:
        默认值为 0。
      • setMinTextHeight

        public void setMinTextHeight(int value)
        设置标签中文本的最小高度。
        参数:
        value - 标签中文本的最小高度。
      • getMaxTextWidth

        public int getMaxTextWidth()
        返回标签中文本的最大宽度。
        返回:
        标签中文本的最大宽度。
        Default:
        默认值为 0。
      • setMaxTextWidth

        public void setMaxTextWidth(int value)
        设置标签中文本的最大宽度。
        参数:
        value - 标签中文本的最大宽度。
      • getMinTextWidth

        public int getMinTextWidth()
        返回标签中文本的最小宽度。
        返回:
        标签中文本的最小宽度。
        Default:
        默认值为 0。
      • setMinTextWidth

        public void setMinTextWidth(int value)
        设置标签中文本的最小宽度。
        参数:
        value - 标签中文本的最小宽度。
      • getTextExtentInflation

        public Size2D getTextExtentInflation()
        返回标签中文本在 X,Y 正方向上的缓冲范围。通过设置该值可以修改文本在地图中所占空间的大小,必须非负。
        返回:
        标签中文本在 X,Y 正方向上的缓冲范围。
        Default:
        默认值为 {Width=0,Height=0}。
      • setTextExtentInflation

        public void setTextExtentInflation(Size2D size2D)
        设置标签中文本在 X,Y 正方向上的缓冲范围。通过设置该值可以修改文本在地图中所占空间的大小,必须非负。
        参数:
        size2D - 标签中文本在 X,Y 正方向上的缓冲范围。
      • isRepeatedLabelAvoided

        public boolean isRepeatedLabelAvoided()
        返回是否避免地图重复标注。

        对于代表北京地铁四号线的线数据,假如由4条子线段组成,当以名称字段(字段值为:地铁四号线)做为专题变量制作标签专题图且设置沿线标注(即 setAlongLine(true))时,如果不选择避免地图重复标注,则显示效果如左图,如果选择了避免地图重复标注,系统会将这条折线的四个子线部分看成一条线来进行标注,其显示效果如下图所示。

        返回:
        一个布尔值,避免地图重复标注返回 true,否则返回 false。
        Default:
        默认值为 false。
      • setRepeatedLabelAvoided

        public void setRepeatedLabelAvoided(boolean value)
        设置是否避免地图重复标注。

        对于代表北京地铁四号线的线数据,假如由4条子线段组成,当以名称字段(字段值为:地铁四号线)做为专题变量制作标签专题图且设置沿线标注(即 setAlongLine(true))时,如果不选择避免地图重复标注,则显示效果如左图,如果选择了避免地图重复标注,系统会将这条折线的四个子线部分看成一条线来进行标注,其显示效果如右图所示。

        参数:
        value - 一个布尔值指定是否避免地图重复标注。
      • isOffsetFixed

        public boolean isOffsetFixed()
        返回当前标签专题图是否固定标记文本的偏移量。固定标记文本的偏移量,则标签的偏移量不随地图的缩放而变化。
        返回:
        一个布尔值,固定标记文本的偏移量返回 true,否则返回 false。
        Default:
        默认值为 false。
      • setOffsetFixed

        public void setOffsetFixed(boolean value)
        设置当前标签专题图是否固定标记文本的偏移量。固定标记文本的偏移量,则标签的偏移量不随地图的缩放而变化。
        参数:
        value - 一个布尔值指定是否固定标记文本的偏移量。
      • dispose

        public void dispose()
        释放对象所占用的资源。调用该方法之后,此对象不再可用。
      • 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
        返回:
        专题图的格式化字符串。
      • isAllDirectionsOverlappedAvoided

        public boolean isAllDirectionsOverlappedAvoided()
        返回是否以全方向文本避让。
        返回:
        返回True表示以全方向文本避让,否则以四方向文本避让。
      • setAllDirectionsOverlappedAvoided

        public void setAllDirectionsOverlappedAvoided(boolean value)
        设置是否以全方向文本避让。
        参数:
        value - 参数为True表示以全方向文本避让,否则以四方向文本避让。
      • getAlongLineSpaceRatio

        public double getAlongLineSpaceRatio()
        返回沿线文本间隔比率,该方法只对沿线标注起作用。

        该值为字高的倍数。

        注意:

        1.该值大于1就以线中心为准,按指定间隔往两边标注;

        2.该值在0到1之间就在线中心按照沿线角度标注单个文本。

        3.该值小于等于0采用默认的沿线标注模式。

        返回:
        沿线文本间隔比率,该方法只对沿线标注起作用。
      • setAlongLineSpaceRatio

        public void setAlongLineSpaceRatio(double value)
        设置沿线文本间隔比率,该方法只对沿线标注起作用。

        该值为字高的倍数。

        注意:

        1.该值大于 1 就以线中心为准,按指定间隔往两边标注;

        2.该值在 0 到 1 之间就在线中心按照沿线角度标注单个文本。

        3.该值小于等于 0 采用默认的沿线标注模式。

        参数:
        value - 沿线文本间隔比率。
      • getRangeMode

        public RangeMode getRangeMode()
        返回当前的分段模式。
        返回:
        当前的分段模式。
      • getCustomInterval

        public double getCustomInterval()
        获取自定义段长。
        返回:
        自定义段长。