com.supermap.mapping
类 ThemeRange
- java.lang.Object
-
- com.supermap.mapping.Theme
-
- com.supermap.mapping.ThemeRange
-
public class ThemeRange extends Theme
分段专题图类。按照提供的分段方法对字段的属性值进行分段,并根据每个属性值所在的分段范围赋予相应对象的显示风格。
注意:
- 制作分段专题图,如果首尾区间没有设置风格,且没有设置默认风格,那么无论是采用
addToHead()
还是addToTail()
方法,首尾区间默认采用用户所添加的第一个分段的风格,比如:总共分5段,addToTail
方法依次添加 [0,1)、[1,2)、[2,4)三段,那么首区间(负无穷,0),尾区间[4,正无穷),采用[0,1)的风格。
- Example:
- 以下代码示范了如何通过新建一个 ThemeRange 的实例,对其进行设置来实现范围专题图的制作。 假设已经有 MapControl1 对象,并打开了一个工作空间 workspace 对象,工作空间中存在名为 World 的数据源。
public void makeThemeRangeMap() { // 制作分段专题图 ThemeRange themeRangeMap = new ThemeRange(); themeRangeMap.setRangeExpression("Pop_1994"); // 填充样式设置 GeoStyle geoStyle = new GeoStyle(); geoStyle.setLineColor(Color.WHITE); geoStyle.setLineWidth(0.3); // 人口小于一百万的分段专题图子项的设置 ThemeRangeItem themeRangeItem1 = new ThemeRangeItem(); themeRangeItem1.setCaption("小于一百万"); themeRangeItem1.setEnd(1000000); themeRangeItem1.setStart(0); themeRangeItem1.setVisible(true); geoStyle.setFillForeColor(new Color(209, 182, 210)); themeRangeItem1.setStyle(geoStyle); // 人口大于一百万的分段专题图子项的设置 ThemeRangeItem themeRangeItem2 = new ThemeRangeItem(); themeRangeItem2.setCaption("大于一百万"); themeRangeItem2.setEnd(10000000); themeRangeItem2.setStart(1000000); themeRangeItem2.setVisible(true); geoStyle.setFillForeColor(new Color(205, 167, 183)); themeRangeItem2.setStyle(geoStyle); // 人口大于一千万的分段专题图子项的设置 ThemeRangeItem themeRangeItem3 = new ThemeRangeItem(); themeRangeItem3.setCaption("大于一千万"); themeRangeItem3.setEnd(100000000); themeRangeItem3.setStart(10000000); themeRangeItem3.setVisible(true); geoStyle.setFillForeColor(new Color(183, 128, 151)); themeRangeItem3.setStyle(geoStyle); // 人口大于一亿的分段专题图子项的设置 ThemeRangeItem themeRangeItem4 = new ThemeRangeItem(); themeRangeItem4.setCaption("大于一亿"); themeRangeItem4.setEnd(120000000); themeRangeItem4.setStart(100000000); themeRangeItem4.setVisible(true); geoStyle.setFillForeColor(new Color(164, 97, 136)); themeRangeItem4.setStyle(geoStyle); // 人口大于十二亿的分段专题图子项的设置 ThemeRangeItem themeRangeItem5 = new ThemeRangeItem(); themeRangeItem5.setCaption("大于十二亿"); themeRangeItem5.setEnd(Double.MAX_VALUE); themeRangeItem5.setStart(120000000); themeRangeItem5.setVisible(true); geoStyle.setFillForeColor(new Color(94, 53, 77)); themeRangeItem5.setStyle(geoStyle); //添加专题图子项到分段专题图对象中 themeRangeMap.addToHead(themeRangeItem1); themeRangeMap.addToTail(themeRangeItem2); themeRangeMap.addToTail(themeRangeItem3); themeRangeMap.addToTail(themeRangeItem4); themeRangeMap.addToTail(themeRangeItem5); //显示 MapControl mapControl = new MapControl(); mapControl.getMap().setWorkspace(workspace); Layer layerTheme = mapControl.getMap().getLayers().add(targetDataset,themeRangeMap, true); mapControl.getMap().refresh(); //释放占用的资源 mapControl.dispose(); workspace.dispose(); }
-
-
构造器概要
构造器 构造器和说明 ThemeRange()
默认构造函数,构造一个新的ThemeRange
对象。ThemeRange(ThemeRange themeRange)
拷贝构造函数,根据给定的ThemeRange
对象构造一个与其完全相同的新对象。
-
方法概要
所有方法 静态方法 实例方法 具体方法 限定符和类型 方法和说明 boolean
addToHead(ThemeRangeItem item)
把一个分段专题图子项添加到分段列表的开头。boolean
addToHead(ThemeRangeItem item, boolean normalize)
把一个分段专题图子项添加到分段列表的开头。boolean
addToTail(ThemeRangeItem item)
把一个分段专题图子项添加到分段列表的尾部。boolean
addToTail(ThemeRangeItem item, boolean normalize)
把一个分段专题图子项添加到分段列表的尾部。void
clear()
删除分段专题图的所有分段子项。void
dispose()
释放对象所占用的资源。int
getCount()
返回分段专题图中分段的个数。double
getCustomInterval()
获取自定义段长。ThemeRangeItem
getItem(int index)
返回指定序号的分段专题图中分段专题图子项。java.lang.String
getOffsetX()
返回X偏移量。java.lang.String
getOffsetY()
返回Y偏移量。double
getPrecision()
获取范围分段专题图的舍入精度。java.lang.String
getRangeExpression()
返回分段字段表达式。RangeMode
getRangeMode()
返回当前的分段模式。int
indexOf(double value)
返回分段专题图中指定分段字段值在当前分段序列中的序号。boolean
isOffsetFixed()
返回是否固定偏移量。static ThemeRange
makeDefault(DatasetVector dataset, java.lang.String rangeExpression, RangeMode rangeMode, double rangeParameter)
根据给定的矢量数据集、分段字段表达式、分段模式和相应的分段参数生成默认的分段专题图。static ThemeRange
makeDefault(DatasetVector dataset, java.lang.String rangeExpression, RangeMode rangeMode, double rangeParameter, ColorGradientType colorGradientType)
根据给定的矢量数据集、分段字段表达式、分段模式、相应的分段参数和颜色渐变模式生成默认的分段专题图。static ThemeRange
makeDefault(DatasetVector dataset, java.lang.String rangeExpression, RangeMode rangeMode, double rangeParameter, ColorGradientType colorGradientType, JoinItems joinItems)
根据给定的矢量数据集、分段字段表达式、分段模式、相应的分段参数、颜色渐变填充模式和外部连接表项生成默认的分段专题图。static ThemeRange
makeDefault(DatasetVector dataset, java.lang.String rangeExpression, RangeMode rangeMode, double rangeParameter, ColorGradientType colorGradientType, JoinItems joinItems, double precision)
根据给定的矢量数据集、分段字段表达式、分段模式、相应的分段参数、颜色渐变填充模式、外部连接表项和舍入精度,生成默认的分段专题图。boolean
merge(int index, int count, GeoStyle style, java.lang.String caption)
合并一个从指定序号起始的给定个数的分段专题图子项,并赋给合并后分段专题图子项显示风格和名称。void
reverseStyle()
对分段专题图中分段的风格进行反序显示。void
setOffsetFixed(boolean value)
设置是否固定偏移量。void
setOffsetX(java.lang.String value)
设置X偏移量。void
setOffsetY(java.lang.String value)
设置Y偏移量。void
setPrecision(double value)
设置范围分段专题图的舍入精度。void
setRangeExpression(java.lang.String value)
设置分段字段表达式。boolean
split(int index, double splitValue, GeoStyle style1, java.lang.String caption1, GeoStyle style2, java.lang.String caption2)
根据给定的拆分分段值将一个指定序号的分段专题图子项拆分成两个具有各自风格和名称的分段专题图子项。java.lang.String
toString()
输出分段专题图格式化字符串。-
从类继承的方法 com.supermap.mapping.Theme
fromXML, getMemoryData, getType, setMemoryData, toXML
-
-
-
-
构造器详细资料
-
ThemeRange
public ThemeRange()
默认构造函数,构造一个新的ThemeRange
对象。
-
ThemeRange
public ThemeRange(ThemeRange themeRange)
拷贝构造函数,根据给定的ThemeRange
对象构造一个与其完全相同的新对象。- 参数:
themeRange
- 给定的分段专题图对象。
-
-
方法详细资料
-
getItem
public ThemeRangeItem getItem(int index)
返回指定序号的分段专题图中分段专题图子项。有关分段专题图子项详细信息,请参见ThemeRangeItem
类。- 参数:
index
- 指定的分段专题图序号。- 返回:
- 指定序号的分段专题图中分段专题图子项。
- 另请参阅:
ThemeRangeItem
-
getCount
public int getCount()
返回分段专题图中分段的个数。- 返回:
- 分段专题图中分段的个数。
- Default:
- 默认值为 0。
-
getRangeExpression
public java.lang.String getRangeExpression()
返回分段字段表达式。通过对比某要素分段字段表达式的值与(按照一定的分段模式确定的)各分段范围的分段值,来确定该要素所在的范围段,从而对落在不同分段内的要素设置为不同的风格。
- 返回:
- 分段字段表达式。
- Default:
- 默认值为一个空字符串。
-
setRangeExpression
public void setRangeExpression(java.lang.String value)
设置分段字段表达式。通过对比某要素分段字段表达式的值与(按照一定的分段模式确定的)各分段范围的分段值,来确定该要素所在的范围段,从而对落在不同分段内的要素设置为不同的风格。
- 参数:
value
- 指定分段字段表达式。
-
addToHead
public boolean addToHead(ThemeRangeItem item)
把一个分段专题图子项添加到分段列表的开头。- 参数:
item
- 需要添加的分段专题图子项。- 返回:
- 如果添加成功返回 true,否则返回 false。
-
addToTail
public boolean addToTail(ThemeRangeItem item)
把一个分段专题图子项添加到分段列表的尾部。- 参数:
item
- 需要添加的分段专题图子项。- 返回:
- 如果添加成功返回 true,否则返回 false。
-
addToHead
public boolean addToHead(ThemeRangeItem item, boolean normalize)
把一个分段专题图子项添加到分段列表的开头。- 参数:
item
- 需要添加的分段专题图子项。normalize
- 表示是否规整化,normalize 为 true时, item 值不合法,则进行规整,normalize 为 fasle时, item 值不合法则抛异常。- 返回:
- 如果添加成功返回 true,否则返回 false。
-
addToTail
public boolean addToTail(ThemeRangeItem item, boolean normalize)
把一个分段专题图子项添加到分段列表的尾部。- 参数:
item
- 需要添加的分段专题图子项。normalize
- 表示是否规整化,normalize 为 true时, item 值不合法,则进行规整,normalize 为 fasle时, item 值不合法则抛异常。- 返回:
- 如果添加成功返回 true,否则返回 false。
-
split
public boolean split(int index, double splitValue, GeoStyle style1, java.lang.String caption1, GeoStyle style2, java.lang.String caption2)
根据给定的拆分分段值将一个指定序号的分段专题图子项拆分成两个具有各自风格和名称的分段专题图子项。注:splitValue 必须在拆分的范围之内。即大于分段专题图子项的起始值(Start)并且小于分段专题图子项的终止值(End),如果不满足上述条件,则抛出异常。- 参数:
index
- 指定的分段专题图子项的序号。splitValue
- 指定的拆分分段值。style1
- 被拆分的两个分段专题图子项中的一个分段专题图子项的风格。caption1
- 被拆分的两个分段专题图子项中的一个分段专题图子项的名称。style2
- 被拆分的两个分段专题图子项中的另一个分段专题图子项的风格。caption2
- 被拆分的两个分段专题图子项中的另一个分段专题图子项的名称。- 返回:
- 如果拆分成功返回 true,否则返回 false。
-
merge
public boolean merge(int index, int count, GeoStyle style, java.lang.String caption)
合并一个从指定序号起始的给定个数的分段专题图子项,并赋给合并后分段专题图子项显示风格和名称。执行该方法后,被合并的对象将被释放,不再可用。- 参数:
index
- 指定的分段专题图子项的序号,并以此序号为起始。count
- 要合并的分段专题图子项个数,即从指定的序号开始计算。style
- 合并后的分段专题图子项的风格。caption
- 合并后的分段专题图子项名称。- 返回:
- 如果合并成功返回 true,否则返回 false。
-
makeDefault
public static ThemeRange makeDefault(DatasetVector dataset, java.lang.String rangeExpression, RangeMode rangeMode, double rangeParameter)
根据给定的矢量数据集、分段字段表达式、分段模式和相应的分段参数生成默认的分段专题图。- 参数:
dataset
- 矢量数据集。rangeExpression
- 分段字段表达式。rangeMode
- 分段模式。包括等距离分段法,平方根分段法,标准差分段法,对数分段法,等计数分段法,以及自定义距离法。rangeParameter
- 分段参数。当分段模式为等距离分段法,平方根分段,对数分段法,等计数分段法其中一种模式时,该参数为分段个数;当分段模式为标准差分段法的时候,该参数不起作用;当分段模式为自定义距离时,该参数表示自定义距离。- 返回:
- 根据参数构造得到一个新的
ThemeRange
的对象实例。
-
makeDefault
public static ThemeRange makeDefault(DatasetVector dataset, java.lang.String rangeExpression, RangeMode rangeMode, double rangeParameter, ColorGradientType colorGradientType)
根据给定的矢量数据集、分段字段表达式、分段模式、相应的分段参数和颜色渐变模式生成默认的分段专题图。- 参数:
dataset
- 矢量数据集。rangeExpression
- 分段字段表达式。rangeMode
- 分段模式。包括等距离分段法,平方根分段法,标准差分段法,对数分段法,等计数分段法,以及自定义距离法。rangeParameter
- 分段参数。当分段模式为等距离分段法,平方根分段,对数分段法,等计数分段法其中一种时,该参数为分段个数;当分段模式为标准差分段法的时候,该参数不起作用;当分段模式为自定义距离时,该参数表示自定义距离。colorGradientType
- 颜色渐变模式。- 返回:
- 根据参数构造得到一个新的
ThemeRange
的对象实例。
-
makeDefault
public static ThemeRange makeDefault(DatasetVector dataset, java.lang.String rangeExpression, RangeMode rangeMode, double rangeParameter, ColorGradientType colorGradientType, JoinItems joinItems)
根据给定的矢量数据集、分段字段表达式、分段模式、相应的分段参数、颜色渐变填充模式和外部连接表项生成默认的分段专题图。- 参数:
dataset
- 矢量数据集。rangeExpression
- 分段字段表达式。rangeMode
- 分段模式。包括等距离分段法,平方根分段法,标准差分段法,对数分段法,等计数分段法,以及自定义距离法。rangeParameter
- 分段参数。当分段模式为等距离分段法,平方根分段,对数分段法,等计数分段法其中一种时,该参数为分段个数;当分段模式为标准差分段法的时候,该参数不起作用;当分段模式为自定义距离时,该参数表示自定义距离。colorGradientType
- 颜色渐变模式。joinItems
- 外部表连接项。- 返回:
- 根据参数构造得到一个新的
ThemeRange
的对象实例。
-
makeDefault
public static ThemeRange makeDefault(DatasetVector dataset, java.lang.String rangeExpression, RangeMode rangeMode, double rangeParameter, ColorGradientType colorGradientType, JoinItems joinItems, double precision)
根据给定的矢量数据集、分段字段表达式、分段模式、相应的分段参数、颜色渐变填充模式、外部连接表项和舍入精度,生成默认的分段专题图。- 参数:
dataset
- 指定的矢量数据集。rangeExpression
- 分段字段表达式。rangeMode
- 分段模式。包括等距离分段法,平方根分段法,标准差分段法,对数分段法,等计数分段法,以及自定义距离法。请参见RangeMode
类。rangeParameter
- 分段参数。当分段模式为等距离分段法,平方根分段,对数分段法,等计数分段法其中一种时,该参数为分段个数;当分段模式为标准差分段法的时候,该参数不起作用;当分段模式为自定义距离时,该参数表示自定义距离。colorGradientType
- 颜色渐变模式。joinItems
- 外部表连接项。precision
- 分段值的精度。如,计算得到的分段值为13.02145,而分段精度为0.001,则分段值取13.021。- 返回:
- 根据参数构造得到一个新的
ThemeRange
的对象实例。
-
getPrecision
public double getPrecision()
获取范围分段专题图的舍入精度。- 返回:
- 舍入精度
-
setPrecision
public void setPrecision(double value)
设置范围分段专题图的舍入精度。- 参数:
value
- 舍入精度
-
indexOf
public int indexOf(double value)
返回分段专题图中指定分段字段值在当前分段序列中的序号。- 参数:
value
- 给定的分段字段值。- 返回:
- 分段字段值在分段序列中的序号。如果该值不存在,就返回 -1。
-
reverseStyle
public void reverseStyle()
对分段专题图中分段的风格进行反序显示。比如,专题图有三个分段,分别为 item1,item2,item3,调用反序显示后,item3 的风格与 item1 会调换,item2 的显示风格不变。
-
clear
public void clear()
删除分段专题图的所有分段子项。执行该方法后,所有的分段专题图子项都被释放,不再可用。
-
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=} }。
-
dispose
public void dispose()
释放对象所占用的资源。调用该方法之后,此对象不再可用。
-
getRangeMode
public RangeMode getRangeMode()
返回当前的分段模式。- 返回:
- 当前的分段模式。
-
getOffsetX
public java.lang.String getOffsetX()
返回X偏移量。- 返回:
- X偏移量。
-
setOffsetX
public void setOffsetX(java.lang.String value)
设置X偏移量。- 参数:
value
- X偏移量
-
getOffsetY
public java.lang.String getOffsetY()
返回Y偏移量。- 返回:
- Y偏移量。
-
setOffsetY
public void setOffsetY(java.lang.String value)
设置Y偏移量。- 参数:
value
- Y偏移量
-
isOffsetFixed
public boolean isOffsetFixed()
返回是否固定偏移量。- 返回:
- 一个布尔值,固定偏移量返回True,否则返回false。
-
setOffsetFixed
public void setOffsetFixed(boolean value)
设置是否固定偏移量。- 参数:
value
- 参数为True表示固定偏移量,否则表示不固定偏移量。
-
getCustomInterval
public double getCustomInterval()
获取自定义段长。- 返回:
- 自定义段长。
-
-