类 ThemeLabel
- java.lang.Object
-
- com.supermap.mapping.Theme
-
- 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()
默认构造函数,构造一个新的ThemeLabel
对象。ThemeLabel(ThemeLabel themeLabel)
拷贝构造函数,根据给定的ThemeLabel
对象构造一个与其完全相同的新对象。
-
方法概要
所有方法 静态方法 实例方法 具体方法 限定符和类型 方法和说明 boolean
addToHead(ThemeLabelItem item)
把一个标签专题图子项添加到分段列表的开头。boolean
addToHead(ThemeLabelItem item, boolean normalize)
把一个标签专题图子项添加到分段列表的开头。boolean
addToTail(ThemeLabelItem item)
把一个标签专题图子项添加到分段列表的尾部。boolean
addToTail(ThemeLabelItem item, boolean normalize)
把一个标签专题图子项添加到分段列表的尾部。void
clear()
删除标签专题图的子项。void
dispose()
释放对象所占用的资源。AlongLineDirection
getAlongLineDirection()
返回标签沿线标注方向。double
getAlongLineSpaceRatio()
返回沿线文本间隔比率,该方法只对沿线标注起作用。LabelBackShape
getBackShape()
返回标签专题图中的标签背景的形状类型。GeoStyle
getBackStyle()
返回标签专题图中的标签背景风格。int
getCount()
返回标签专题图中分段的个数。double
getCustomInterval()
获取自定义段长。ThemeLabelItem
getItem(int index)
返回指定序号的标签专题图中标签专题图子项。java.lang.String
getLabelExpression()
返回标注字段表达式。double
getLabelRepeatInterval()
返回在沿线标注时循环标注的间隔。GeoStyle
getLeaderLineStyle()
返回标签与其标注对象之间牵引线的风格。int
getMaxLabelLength()
返回标签在每一行显示的最大长度。int
getMaxTextHeight()
返回标签中文本的最大高度。int
getMaxTextWidth()
返回标签中文本的最大宽度。int
getMinTextHeight()
返回标签中文本的最小高度。int
getMinTextWidth()
返回标签中文本的最小宽度。int
getNumericPrecision()
返回标签中数字的精度。java.lang.String
getOffsetX()
返回标签专题图中标记文本相对于要素内点的水平偏移量。java.lang.String
getOffsetY()
返回标签专题图中标记文本相对于要素内点的垂直偏移量。OverLengthLabelMode
getOverLengthMode()
返回超长标签的处理方式。ThemeLabel
getParent()
返回当前标签专题图所归属的专题图,即其父对象。java.lang.String
getRangeExpression()
返回分段字段表达式。RangeMode
getRangeMode()
返回当前的分段模式。Size2D
getTextExtentInflation()
返回标签中文本在 X,Y 正方向上的缓冲范围。MixedTextStyle
getUniformMixedStyle()
返回标签专题图统一的文本复合风格。TextStyle
getUniformStyle()
返回统一文本风格。int
indexOf(double value)
返回标签专题图中指定分段字段值在当前分段序列中的序号。boolean
isAllDirectionsOverlappedAvoided()
返回是否以全方向文本避让。boolean
isAlongLine()
返回是否沿线显示文本。boolean
isAngleFixed()
当沿线显示文本时,是否将文本角度固定。boolean
isFlowEnabled()
返回是否流动显示标签。boolean
isLeaderLineDisplayed()
返回是否显示标签和它标注的对象之间的牵引线。boolean
isOffsetFixed()
返回当前标签专题图是否固定标记文本的偏移量。boolean
isOverlapAvoided()
返回是否允许以文本避让方式显示文本。boolean
isRepeatedLabelAvoided()
返回是否避免地图重复标注。boolean
isRepeatIntervalFixed()
返回循环标注间隔是否固定。boolean
isSmallGeometryLabeled()
当标签的长度大于被标注对象本身的长度时,返回是否显示该标签。static ThemeLabel
makeDefault(DatasetVector dataset, java.lang.String rangeExpression, RangeMode rangeMode, double rangeParameter)
根据给定的矢量数据集、分段字段表达式、分段模式和相应的分段参数生成默认的标签专题图。static ThemeLabel
makeDefault(DatasetVector dataset, java.lang.String rangeExpression, RangeMode rangeMode, double rangeParameter, ColorGradientType colorGradientType)
根据给定的矢量数据集、分段字段表达式、分段模式、相应的分段参数和颜色渐变模式生成默认的标签专题图。static ThemeLabel
makeDefault(DatasetVector dataset, java.lang.String rangeExpression, RangeMode rangeMode, double rangeParameter, ColorGradientType colorGradientType, JoinItems joinItems)
根据给定的矢量数据集、分段字段表达式、分段模式、相应的分段参数、颜色渐变填充模式和外部连接表项生成默认的标签专题图。boolean
merge(int index, int count, TextStyle style, java.lang.String caption)
合并一个从指定序号起始的给定个数的标签专题图子项,并赋给合并后标签专题图子项显示风格和名称。void
reverseStyle()
对标签专题图中分段的风格进行反序显示。void
setAllDirectionsOverlappedAvoided(boolean value)
设置是否以全方向文本避让。void
setAlongLine(boolean value)
设置是否沿线显示文本。void
setAlongLineDirection(AlongLineDirection value)
设置标签沿线标注方向。void
setAlongLineSpaceRatio(double value)
设置沿线文本间隔比率,该方法只对沿线标注起作用。void
setAngleFixed(boolean value)
当沿线显示文本时,是否将文本角度固定。void
setBackShape(LabelBackShape value)
设置标签专题图中的标签背景的形状类型。void
setBackStyle(GeoStyle style)
设置标签专题图中的标签背景风格,OpenGL不支持标签背景透明度。void
setFlowEnabled(boolean value)
设置是否流动显示标签。void
setLabelExpression(java.lang.String value)
设置标注字段表达式。void
setLabelRepeatInterval(double value)
设置在沿线标注时循环标注的间隔。void
setLeaderLineDisplayed(boolean value)
设置是否显示标签和它标注的对象之间的牵引线。void
setLeaderLineStyle(GeoStyle style)
设置标签与其标注对象之间牵引线的风格。void
setMaxLabelLength(int value)
设置标签在每一行显示的最大长度。void
setMaxTextHeight(int value)
设置标签中文本的最大高度。void
setMaxTextWidth(int value)
设置标签中文本的最大宽度。void
setMinTextHeight(int value)
设置标签中文本的最小高度。void
setMinTextWidth(int value)
设置标签中文本的最小宽度。void
setNumericPrecision(int value)
设置标签中数字的精度。void
setOffsetFixed(boolean value)
设置当前标签专题图是否固定标记文本的偏移量。void
setOffsetX(java.lang.String value)
设置标签专题图中标记文本相对于要素内点的水平偏移量。void
setOffsetY(java.lang.String value)
设置标签专题图中标记文本相对于要素内点的垂直偏移量。void
setOverlapAvoided(boolean value)
是否允许以文本避让方式显示文本。void
setOverLengthMode(OverLengthLabelMode value)
设置超长标签的处理方式。void
setRangeExpression(java.lang.String value)
设置分段字段表达式。void
setRepeatedLabelAvoided(boolean value)
设置是否避免地图重复标注。void
setRepeatIntervalFixed(boolean value)
设置循环标注间隔是否固定。void
setSmallGeometryLabeled(boolean value)
当标签的长度大于被标注对象本身的长度时,设置是否显示该标签。void
setTextExtentInflation(Size2D size2D)
设置标签中文本在 X,Y 正方向上的缓冲范围。void
setUniformMixedStyle(MixedTextStyle value)
设置标签专题图统一的文本复合风格。void
setUniformStyle(TextStyle style)
设置统一文本风格。boolean
split(int index, double splitValue, TextStyle style, java.lang.String caption1, TextStyle style2, java.lang.String caption2)
根据给定的拆分分段值将一个指定序号的标签专题图子项拆分成两个具有各自风格和名称的标签专题图子项。java.lang.String
toString()
输出标签专题图格式化字符串。-
从类继承的方法 com.supermap.mapping.Theme
fromXML, getMemoryData, getType, setMemoryData, toXML
-
-
-
-
构造器详细资料
-
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
- 一个布尔值指定是否显示长度大于被标注对象本身长度的标签。
-
getAlongLineDirection
public AlongLineDirection getAlongLineDirection()
返回标签沿线标注方向。- 返回:
- 标签沿线标注方向。
- Default:
- 默认值为
AlongLineDirection.LEFT_TOP_TO_RIGHT_BOTTOM
。
-
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()
对标签专题图中分段的风格进行反序显示。
-
getUniformMixedStyle
public MixedTextStyle getUniformMixedStyle()
返回标签专题图统一的文本复合风格。在图层绘制时,各种绘制风格的优先级从高到低为:
ThemeLabel.getUniformMixedStyle()
,ThemeLabelItem.getStyle()
,ThemeLabel.getUniformStyle()
,即:当ThemeLabel.getUniformMixedStyle()
与ThemeLabelItem.getStyle()
或ThemeLabel.getUniformStyle()
不一致时,以ThemeLabel.getUniformMixedStyle()
为准。- 返回:
- 标签专题图的文本复合风格。
- Default:
- 默认值为空。
-
setUniformMixedStyle
public void setUniformMixedStyle(MixedTextStyle value)
设置标签专题图统一的文本复合风格。在图层绘制时,各种绘制风格的优先级从高到低为:
ThemeLabel.getUniformMixedStyle()
,ThemeLabelItem.getStyle()
,ThemeLabel.getUniformStyle()
,即:当ThemeLabel.getUniformMixedStyle()
与ThemeLabelItem.getStyle()
或ThemeLabel.getUniformStyle()
不一致时,以ThemeLabel.getUniformMixedStyle()
为准。- 参数:
value
- 标签专题图的文本复合风格。
-
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 字符串不同的是,格式化字符串不可导入显示专题图,只用于提供专题图的相关信息。- 对于栅格分段专题图,其格式为{Caption=”china”, Start=10 End=20, Visible=true?false, Style={linestyle=,markerstyle=,fillstyle=} };
- 对于栅格单值专题图,其格式为{Caption=”china”, Unique =20, Visible=true?false, Style={linestyle=,markerstyle=,fillstyle=} };
- 对于标签专题图,其格式为{Caption=”China”, Start=10 End=20, Visible=true, Style={name=,width=,height=,color=()} };
- 对于分段专题图,其格式为{Caption=”china”, Start=10 End=20, Visible=true?false, Style={linestyle=,markerstyle=,fillstyle=};
- 对于单值专题图,其格式为{Caption=”china”, Unique =20, Visible=true?false, Style={linestyle=,markerstyle=,fillstyle=} }。
-
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()
获取自定义段长。- 返回:
- 自定义段长。
-
-