com.supermap.mapping
类 Theme

java.lang.Object
  继承者 com.supermap.mapping.Theme
直接已知子类:
ThemeDotDensity, ThemeGraduatedSymbol, ThemeGraph, ThemeGridRange, ThemeGridUnique, ThemeLabel, ThemeRange, ThemeUnique

public abstract class Theme
extends java.lang.Object

专题图类,该类是所有专题图的基类。所有专题图类,如单值专题图,标签专题图,分段专题图等都继承自该类。


方法摘要
 boolean fromXML(java.lang.String xml)
          从 XML 字符串中导入专题图信息。
 java.util.Map<java.lang.String,java.lang.String> getMemoryData()
          返回内存专题图数据。
 ThemeType getType()
          返回专题图的类型。
 void setMemoryData(java.util.Map<java.lang.String,java.lang.String> map)
          设置内存专题图数据。
abstract  java.lang.String toString()
          输出专题图格式化字符串。
 java.lang.String toXML()
          导出专题图信息为 XML 字符串。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

方法详细信息

getType

public ThemeType getType()
返回专题图的类型。详细信息请参见 ThemeType 类。

返回:
专题图的类型。

getMemoryData

public java.util.Map<java.lang.String,java.lang.String> getMemoryData()
返回内存专题图数据。

用内存数据制作专题图的方式与表达式制作专题图的方式互斥,前者优先级较高。

第一个参数代表专题值,即数据集中用来做专题图的字段或表达式的值; 第二个参数代表外部值。在制作专题图时,会用外部值代替专题值来制作相应的专题图。

返回:
内存专题图数据。

setMemoryData

public void setMemoryData(java.util.Map<java.lang.String,java.lang.String> map)
设置内存专题图数据。 用内存数据制作专题图的方式与表达式制作专题图的方式互斥,前者优先级较高。

所设置的内存数据是一个 Map 对象,该 Map 对象的键值为用来制作专题的表达式对应的值,映射值根据专题图的种类而有所区别。其效果都相当于使用映射值代替专题值来制作相应的专题图。

对于单值专题图,映射值为单值专题图子项的单值,即用映射值的单值专题图子项的风格代替键值对应的单值子项的风格,没有通过该对象赋值的单值子项的风格采用单值专题图的默认风格,通过setDefaultStyle()方法可设置默认子项的风格。

对于分段专题图,映射值为分段专题图的表达式对应的值,即用映射值所在的分段子项的风格设置键值字段值对应的对象,没有通过该对象赋值的对象的保持其所在分段子项的风格不变。

对于标签专题图,映射值为任意字符串,没有通过该对象赋值的标签在地图中不显示。

注意:

由于Map对象的键不能重复,专题图的表达式的值不能相同。

该接口对统计专题图无效。

参数:
map - 内存专题图数据。
示例:
以下代码示例了使用内存数据制作标签专题图。
  public void MemoryDataThemeLabel()
      {

             Workspace workspace = new Workspace();
             DatasourceConnectionInfo datasourceConnectInfo = new DatasourceConnectionInfo("../SampleData/World/World.udb", "world", "");
             Datasource datasource = workspace.getDatasources().open(datasourceConnectInfo);
             DatasetVector dataset = (DatasetVector)datasource.getDatasets().get("world");

             ThemeLabel themeLabel = new ThemeLabel();

             // 使用全球国家名作为标签专题图的标签表达式
             themeLabel.setLabelExpression("Name");

             java.util.Map memoryData = new HashMap();

             // 设置数据,仅修改“北京”、“渥太华”和“莫斯科”三个国家的名称
             memoryData.put("北京", "北京1");
             memoryData.put("渥太华", "渥太华1");
             memoryData.put("莫斯科", "莫斯科1");

             // 设置标签专题图的内存数据
             themeLabel.setMemoryData(memoryData);

             //设置标签文本风格
             TextStyle style = new TextStyle();  
             style.setForeColor(Color.WHITE);
             style.setOutline(true);
             style.setWeight(15);
             style.setFontHeight(7);
             themeLabel.setUniformStyle(style);

             //添加到地图中
             m_mapControl.getMap().getLayers().add(m_datasetVector, themeLabel, true);
             m_mapControl.getMap().refresh();

             //释放占用的资源
             m_mapControl.dispose();
             workspace.dispose();
         }
 

fromXML

public boolean fromXML(java.lang.String xml)
从 XML 字符串中导入专题图信息。

在 SuperMap 中,各种专题图的风格的设置都可以导出成 XML 格式的字符串,此 XML 格式的字符串中记录了关于这种专题图的所有设置,如对于标签专题图的 XML 格式字符串会记录专题图类型,可见比例尺,标签风格的设置,是否流动显示,是否自动避让等等对该标签专题图的所有风格的设置以及用来制作标签专题图的字段或表达式。这种 XML 格式字符串可以用来导入,对专题图进行设置。

参数:
xml - 包含专题图信息的 XML 字符串。
返回:
一个布尔值,导入成功返回 true,否则返回 false。

toXML

public java.lang.String toXML()
导出专题图信息为 XML 字符串。

在 SuperMap 中,各种专题图的风格的设置都可以导出成 XML 格式的字符串,此 XML 格式的字符串中记录了关于这种专题图的所有设置,如对于标签专题图的 XML 格式字符串会记录专题图类型,可见比例尺,标签风格的设置,是否流动显示,是否自动避让等等对该标签专题图的所有风格的设置以及用来制作标签专题图的字段或表达式。这种 XML 格式字符串可以用来导入,对专题图进行设置。

返回:
包含专题图信息的 XML 字符串。

toString

public abstract 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=} }。

覆盖:
java.lang.Object 中的 toString
返回:
专题图的格式化字符串。