public class SymbolGroup
extends com.supermap.data.InternalHandleDisposable
该类主要为管理符号库中的子分组和符号对象提供一种逻辑化的组织结构形式,从而实现结构化,层次化的清晰管理模式,该类不能获取系统符号也并不负责符号对象的添加与删除以及符号对象的导入与导出操作,这类操作主要由符号库基类(SymbolLibrary 类)提供,详细内容参见 SymbolLibrary
类。
如下图所示,结合 SuperMap Object Java 的接口,利用图示帮助理解符号库的组织结构,该结构适用于点状符号库、线型符号库和填充符号库。
符号库的组织结构类似于Windows资源管理器的组织结构,磁盘的根目录下可以存在零个或多个文件夹以及零个或多个文件,每个文件夹中又可以有零个或多个子文件夹以及零个或多个文件,以此类推层层嵌套;符号库的根组就相当于这个磁盘的根目录,文件夹可以看做符号库的子分组,文件就好比各种符号,一个符号库只能存在一个根组,根组中可以有零个或多个子分组以及零个或多个符号,每个子分组下还可以有零个或多个子分组以及零个或多个符号,以此类推。
如下图所示,红色虚线框所示是符号库的根组,根组也是分组,对应 SymbolGroup
类对象,根组是符号库的最高分组层次,根组中可以包含零个或多个子分组以及零个或多个符号,子分组也是分组,同样对应 SymbolGroup
类对象,其中所有子分组又构成一个子分组集合,对应 SymbolGroups
类对象,根组中至多有一个分组集合,即SymbolGroups
类对象,SymbolGroups
类对象是 SymbolGroup
类对象的集合,用来管理根组中的各子分组,通过 SymbolGroups
类对象来完成根组中子分组的创建与移除。当子分组(例如下图绿色框所示)中还包含有零个或多个子分组以及零个或多个符号,那么这些子分组和符号又构成了的一个分组(下图蓝色虚线框所示), 而这个绿色框标识的子分组称为蓝色虚线框所示的这个分组的父分组,并且,蓝色虚线框中的所有子分组构成了一个子分组集合,对应一个 SymbolGroups
类对象,同样该蓝色虚线框所示的分组中也至多有一个子分组集合,通过这个子分组集合对象来完成该蓝色虚线框所示的分组中的子分组的创建与移除。以此类推,下图中的黄色框所示的子分组对应一个 SymbolGroup
类对象,粉色虚线框内的子分组又构成一个分组对象(此分组对象中包含零个符号和三个子分组),即对应一个 SymbolGroup
类对象,因此,黄色框所示的分组是粉色虚线框所示分组的父分组,同样粉色虚线框所示分组中也包含了一个子分组集合。总之,符号库呈现一种树形组织结构。
注:所谓的分组和子分组是符号库的逻辑组织形式,都是使用户可以将类别相同的符号放在一个组中,从而方便管理和使用。
综上所述,一个符号库(SymbolLibrary
)包含有唯一的一个根组(SymbolGroup
类对象),每个 SymbolGroup
类对象至多包含有一个 SymbolGroups
类对象,但却可以包含有零个或多个 Symbol
类对象,其中 SymbolGroups
类对象是 SymbolGroup
类对象的集合,以此实现符号库的树形管理结构。
public void symbolGroupTest(){ // 假设打开一个工作空间 workspace 对象 // 返回资源库,从资源库返回填充符号库,取出该符号库的根组 Resources resources = workspace.getResources(); SymbolLibrary symbolLibrary = resources.getFillLibrary(); SymbolGroup symbolGroup = symbolLibrary.getRootGroup(); // 返回根组的分组集合 SymbolGroups symbolGroups = symbolGroup.getChildGroups(); System.out.println("分组个数为:"+symbolGroups.getCount()); // 没有子分组,分组个数为0 // 新建分组集合中的一个子分组 symbolGroup1 SymbolGroup symbolGroup1 = symbolGroups.create("del_sg1"); System.out.println("分组个数为:"+symbolGroups.getCount()); // 创建子分组后,分组个数为1 System.out.println("符号个数为:"+symbolGroup1.getCount()); // 没有符号,符号个数为0 if (symbolGroup1.getCount() == 0) { symbolLibrary.moveTo(8, symbolGroup1); } // 返回根组的第一个符号以及子分组指定索引的符号对象 Symbol symbol = symbolGroup.get(0); int index = symbolGroup1.indexOf(8); Symbol symbol1 = symbolGroup1.get(index); System.out.println(symbol.getID()); // 根组符号对象的 ID 为9 System.out.println(symbol1.getID()); // 子分组符号对象的 ID 为8 if (symbolGroups.contains("del_sg1")) // 判断是否含有此子分组 symbolGroups.remove("del_sg1"); // 删除此子分组 System.out.println(symbolGroups.getCount()); // 删除子分组后,分组个数为0 }
限定符和类型 | 方法和说明 |
---|---|
void |
dispose()
释放该对象所占用的资源。
|
Symbol |
get(int index)
返回该分组对象中指定索引处的符号对象。
|
SymbolGroups |
getChildGroups()
返回该分组对象的子分组集合。
|
int |
getCount()
返回该分组对象中的符号对象的个数。
|
SymbolLibrary |
getLibrary()
返回与该符号库分组对象相关联的符号库。
|
String |
getName()
返回该分组对象的名称,如果该分组对象的名称在其父分组中已经存在,则会抛出异常。
|
SymbolGroup |
getParent()
返回该分组对象的父分组。
|
int |
indexOf(int id)
返回指定 ID 号的符号对象在该分组下的索引值。
|
void |
reset()
重置该对象
|
void |
setName(String name)
设置该分组对象的名称,如果该分组对象的名称在其父分组中已经存在,则会抛出异常。
|
public SymbolGroup getParent()
如下图所示,结合 SuperMap Object Java 的接口,利用图示帮助理解符号库的组织结构,该结构适用于点状符号库、线型符号库和填充符号库。
符号库的组织结构类似于Windows资源管理器的组织结构,磁盘的根目录下可以存在零个或多个文件夹以及零个或多个文件,每个文件夹中又可以有零个或多个子文件夹以及零个或多个文件,以此类推层层嵌套;符号库的根组就相当于这个磁盘的根目录,文件夹可以看做符号库的子分组,文件就好比各种符号,一个符号库只能存在一个根组,根组中可以有零个或多个子分组以及零个或多个符号,每个子分组下还可以有零个或多个子分组以及零个或多个符号,以此类推。
如下图所示,红色虚线框所示是符号库的根组,根组也是分组,对应 SymbolGroup
类对象,根组是符号库的最高分组层次,根组中可以包含零个或多个子分组以及零个或多个符号,子分组也是分组,同样对应 SymbolGroup
类对象,其中所有子分组又构成一个子分组集合,对应 SymbolGroups
类对象,根组中至多有一个分组集合,即SymbolGroups
类对象,SymbolGroups
类对象是 SymbolGroup
类对象的集合,用来管理根组中的各子分组,通过 SymbolGroups
类对象来完成根组中子分组的创建与移除。当子分组(例如下图绿色框所示)中还包含有零个或多个子分组以及零个或多个符号,那么这些子分组和符号又构成了的一个分组(下图蓝色虚线框所示), 而这个绿色框标识的子分组称为蓝色虚线框所示的这个分组的父分组,并且,蓝色虚线框中的所有子分组构成了一个子分组集合,对应一个 SymbolGroups
类对象,同样该蓝色虚线框所示的分组中也至多有一个子分组集合,通过这个子分组集合对象来完成该蓝色虚线框所示的分组中的子分组的创建与移除。以此类推,下图中的黄色框所示的子分组对应一个 SymbolGroup
类对象,粉色虚线框内的子分组又构成一个分组对象(此分组对象中包含零个符号和三个子分组),即对应一个 SymbolGroup
类对象,因此,黄色框所示的分组是粉色虚线框所示分组的父分组,同样粉色虚线框所示分组中也包含了一个子分组集合。总之,符号库呈现一种树形组织结构。
注:所谓的分组和子分组是符号库的逻辑组织形式,都是使用户可以将类别相同的符号放在一个组中,从而方便管理和使用。
综上所述,一个符号库(SymbolLibrary
)包含有唯一的一个根组(SymbolGroup
类对象),每个 SymbolGroup
类对象至多包含有一个 SymbolGroups
类对象,但却可以包含有零个或多个 Symbol
类对象,其中 SymbolGroups
类对象是 SymbolGroup
类对象的集合,以此实现符号库的树形管理结构。
public SymbolGroups getChildGroups()
如下图所示,结合 SuperMap Object Java 的接口,利用图示帮助理解符号库的组织结构,该结构适用于点状符号库、线型符号库和填充符号库。
符号库的组织结构类似于Windows资源管理器的组织结构,磁盘的根目录下可以存在零个或多个文件夹以及零个或多个文件,每个文件夹中又可以有零个或多个子文件夹以及零个或多个文件,以此类推层层嵌套;符号库的根组就相当于这个磁盘的根目录,文件夹可以看做符号库的子分组,文件就好比各种符号,一个符号库只能存在一个根组,根组中可以有零个或多个子分组以及零个或多个符号,每个子分组下还可以有零个或多个子分组以及零个或多个符号,以此类推。
如下图所示,红色虚线框所示是符号库的根组,根组也是分组,对应 SymbolGroup
类对象,根组是符号库的最高分组层次,根组中可以包含零个或多个子分组以及零个或多个符号,子分组也是分组,同样对应 SymbolGroup
类对象,其中所有子分组又构成一个子分组集合,对应 SymbolGroups
类对象,根组中至多有一个分组集合,即SymbolGroups
类对象,SymbolGroups
类对象是 SymbolGroup
类对象的集合,用来管理根组中的各子分组,通过 SymbolGroups
类对象来完成根组中子分组的创建与移除。当子分组(例如下图绿色框所示)中还包含有零个或多个子分组以及零个或多个符号,那么这些子分组和符号又构成了的一个分组(下图蓝色虚线框所示), 而这个绿色框标识的子分组称为蓝色虚线框所示的这个分组的父分组,并且,蓝色虚线框中的所有子分组构成了一个子分组集合,对应一个 SymbolGroups
类对象,同样该蓝色虚线框所示的分组中也至多有一个子分组集合,通过这个子分组集合对象来完成该蓝色虚线框所示的分组中的子分组的创建与移除。以此类推,下图中的黄色框所示的子分组对应一个 SymbolGroup
类对象,粉色虚线框内的子分组又构成一个分组对象(此分组对象中包含零个符号和三个子分组),即对应一个 SymbolGroup
类对象,因此,黄色框所示的分组是粉色虚线框所示分组的父分组,同样粉色虚线框所示分组中也包含了一个子分组集合。总之,符号库呈现一种树形组织结构。
注:所谓的分组和子分组是符号库的逻辑组织形式,都是使用户可以将类别相同的符号放在一个组中,从而方便管理和使用。
综上所述,一个符号库(SymbolLibrary
)包含有唯一的一个根组(SymbolGroup
类对象),每个 SymbolGroup
类对象至多包含有一个 SymbolGroups
类对象,但却可以包含有零个或多个 Symbol
类对象,其中 SymbolGroups
类对象是 SymbolGroup
类对象的集合,以此实现符号库的树形管理结构。
public String getName()
public void setName(String name)
value
- 分组对象的名称。public Symbol get(int index)
index
- 指定索引。public SymbolLibrary getLibrary()
public int getCount()
public int indexOf(int id)
id
- 需要进行测试的 ID 号。SymbolGroup
类的示例。public void dispose()
public void reset()
Copyright © 2021–2024 SuperMap. All rights reserved.