public class ThemeUnique extends Theme
将字段或表达式的值相同的要素采用相同的风格来显示,从而用来区分不同的类别。例如,在表示土地的面数据中表示土地利用类型的字段中有草地,林地,居民地,耕地等值,使用单值专题图进行渲染时,每种类型的土地利用类型被赋予一种颜色或填充风格,从而可以看出每种类型的土地利用的分布区域和范围。可用于地质图、地貌图、植被图、土地利用图、政治行政区划图、自然区划图、经济区划图等。单值专题图着重表示现象质的差别,一般不表示数量的特征。尤其是有交叉或重叠现象时,此类不推荐使用,例如:民族分布区等。
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(); }
构造器和说明 |
---|
ThemeUnique()
默认构造函数,构造一个新的
ThemeUnique 对象。 |
ThemeUnique(ThemeUnique themeUnique)
拷贝构造函数,根据给定的
ThemeUnique 对象构造一个与其完全相同的新对象。 |
限定符和类型 | 方法和说明 |
---|---|
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()
输出单值专题图格式化字符串。
|
getMemoryData, getType, setMemoryData, toXML
public ThemeUnique()
ThemeUnique
对象。public ThemeUnique(ThemeUnique themeUnique)
ThemeUnique
对象构造一个与其完全相同的新对象。themeUnique
- 给定的单值专题图对象。public ThemeUniqueItem getItem(int index)
index
- 指定的单值专题图子项的序号。public int getCount()
public java.lang.String getUniqueExpression()
public void setUniqueExpression(java.lang.String value)
value
- 指定单值专题图字段表达式。public GeoStyle getDefaultStyle()
public void setDefaultStyle(GeoStyle style)
style
- 指定单值专题图的默认风格。public int add(ThemeUniqueItem item)
item
- 将被添加的单值专题图子项。public boolean insert(int index, ThemeUniqueItem item)
index
- 指定的单值专题图子项序列的序号。item
- 将被插入的单值专题图子项。public boolean remove(int index)
index
- 指定的将被删除的单值专题图子项序列的序号。public void clear()
public static ThemeUnique makeDefault(DatasetVector dataset, java.lang.String uniqueExpression)
dataset
- 给定的矢量数据集。uniqueExpression
- 单值专题图字段表达式。public static ThemeUnique makeDefault(DatasetVector dataset, java.lang.String uniqueExpression, ColorGradientType colorGradientType)
dataset
- 给定的矢量数据集。uniqueExpression
- 单值专题图字段表达式。colorGradientType
- 颜色渐变模式。public static ThemeUnique makeDefault(DatasetVector dataset, java.lang.String uniqueExpression, ColorGradientType colorGradientType, JoinItems joinItems)
dataset
- 给定的矢量数据集。uniqueExpression
- 单值专题图字段表达式。colorGradientType
- 颜色渐变模式。joinItems
- 外部表连接项。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
- 用户传入的用来制作专题图的颜色。系统对传入颜色的数目不做规定,比如,用户只传入了一种颜色,则在生成专题图时,系统会自动补齐出图所需的颜色。public int indexOf(java.lang.String unique)
unique
- 给定的单值专题图子项单值。public void reverseStyle()
public java.lang.String toString()
public void dispose()
public boolean fromXML(java.lang.String xml)
public void setDefaultStyleVisible(boolean value)
value
- 单值专题图默认风格是否可见。public boolean isDefaultStyleVisible()
public java.lang.String getOffsetX()
偏移量的单位由 isOffsetFixed()的设置决定,参数为True表示采用设备单位,否则采用地理坐标单位。
public void setOffsetX(java.lang.String value)
偏移量的单位由 isOffsetFixed()的设置决定,参数为True表示采用设备单位,否则采用地理坐标单位。
value
- 点、线、面图层制作的单值专题图中的对象相对于原来位置的水平偏移量。public java.lang.String getOffsetY()
偏移量的单位由 isOffsetFixed()的设置决定,参数为True表示采用设备单位,否则采用地理坐标单位。
public void setOffsetY(java.lang.String value)
偏移量的单位由 isOffsetFixed()的设置决定,参数为True表示采用设备单位,否则采用地理坐标单位。
value
- 点、线、面图层制作的单值专题图中的对象相对于原来位置的垂直偏移量。public boolean isOffsetFixed()
public void setOffsetFixed(boolean value)
value
- 是否采用设备单位