com.supermap.data

类 SymbolLibrary

    • 方法概要

      所有方法 实例方法 具体方法 
      限定符和类型 方法和说明
      int add(Symbol symbol)
      将指定的符号对象添加到当前符号库中
      int add(Symbol symbol, SymbolGroup desGroup)
      向符号库中添加指定的符号对象。
      void clear()
      清空该符号库中的所有符号对象。
      boolean contains(int id)
      测试当前符号库是否包含指定的 ID 号。
      SymbolGroup findGroup(int id)
      根据指定符号的 ID 号,查找该符号所属的分组。
      Symbol findSymbol(int id)
      在该符号库中查找指定 ID 号的符号对象。
      Symbol findSymbol(java.lang.String name)
      根据指定的名称,在该符号库中查找该名称所对应的符号对象,返回第一个与指定名称相同的符号对象。
      boolean fromFile(java.lang.String fileName)
      导入符号库文件,该操作会先删除当前符号库中已经存在的符号。
      SymbolGroup getRootGroup()
      返回符号库的根组对象。
      boolean moveTo(int id, SymbolGroup group)
      把指定的符号对象移动到指定的符号分组中。
      boolean remove(int id)
      根据指定的 ID 号,移除该符号库中相应的符号对象。
      • 从类继承的方法 java.lang.Object

        equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • 方法详细资料

      • findGroup

        public SymbolGroup findGroup(int id)
        根据指定符号的 ID 号,查找该符号所属的分组。
        参数:
        id - 指定符号的 ID 号。
        返回:
        符号库分组对象。
      • contains

        public boolean contains(int id)
        测试当前符号库是否包含指定的 ID 号。
        参数:
        id - 需要进行测试的 ID 值。
        返回:
        如果包含指定的 ID 号,返回 true;否则返回 false。
      • findSymbol

        public Symbol findSymbol(int id)
        在该符号库中查找指定 ID 号的符号对象。
        参数:
        id - 指定的 ID 值。
        返回:
        符号对象。
      • findSymbol

        public Symbol findSymbol(java.lang.String name)
        根据指定的名称,在该符号库中查找该名称所对应的符号对象,返回第一个与指定名称相同的符号对象。
        参数:
        name - 指定的名称。
        返回:
        符号对象。
      • fromFile

        public boolean fromFile(java.lang.String fileName)
        导入符号库文件,该操作会先删除当前符号库中已经存在的符号。

        该方法不能获取系统符号

        参数:
        fileName - 导入的符号库文件名称。
        返回:
        导入成功返回 true;失败返回 false。
      • remove

        public boolean remove(int id)
        根据指定的 ID 号,移除该符号库中相应的符号对象。
        参数:
        id - 待移除符号对象的 ID 号。
        返回:
        成功返回 true,失败返回 false。
      • moveTo

        public boolean moveTo(int id,
                              SymbolGroup group)
        把指定的符号对象移动到指定的符号分组中。被移动的符号对象会追加到目标分组的尾部,并且被移动符号对象的 ID 号不变。
        参数:
        id - 指定的要移动符号对象的 ID 号。
        group - 指定的目标分组。
        返回:
        移到成功返回 true,失败返回 false。
      • clear

        public void clear()
        清空该符号库中的所有符号对象。
      • getRootGroup

        public SymbolGroup getRootGroup()
        返回符号库的根组对象。

        如下图所示,结合 SuperMap Object Java 的接口,利用图示帮助理解符号库的组织结构,该结构适用于点状符号库、线型符号库和填充符号库。

        符号库的组织结构类似于Windows资源管理器的组织结构,磁盘的根目录下可以存在零个或多个文件夹以及零个或多个文件,每个文件夹中又可以有零个或多个子文件夹以及零个或多个文件,以此类推层层嵌套;符号库的根组就相当于这个磁盘的根目录,文件夹可以看做符号库的子分组,文件就好比各种符号,一个符号库只能存在一个根组,根组中可以有零个或多个子分组以及零个或多个符号,每个子分组下还可以有零个或多个子分组以及零个或多个符号,以此类推。

        如下图所示,红色虚线框所示是符号库的根组,根组也是分组,对应 SymbolGroup 类对象,根组是符号库的最高分组层次,根组中可以包含零个或多个子分组以及零个或多个符号,子分组也是分组,同样对应 SymbolGroup 类对象,其中所有子分组又构成一个子分组集合,对应 SymbolGroups 类对象,根组中至多有一个分组集合,即SymbolGroups 类对象,SymbolGroups 类对象是 SymbolGroup 类对象的集合,用来管理根组中的各子分组,通过 SymbolGroups 类对象来完成根组中子分组的创建与移除。当子分组(例如下图绿色框所示)中还包含有零个或多个子分组以及零个或多个符号,那么这些子分组和符号又构成了的一个分组(下图蓝色虚线框所示), 而这个绿色框标识的子分组称为蓝色虚线框所示的这个分组的父分组,并且,蓝色虚线框中的所有子分组构成了一个子分组集合,对应一个 SymbolGroups 类对象,同样该蓝色虚线框所示的分组中也至多有一个子分组集合,通过这个子分组集合对象来完成该蓝色虚线框所示的分组中的子分组的创建与移除。以此类推,下图中的黄色框所示的子分组对应一个 SymbolGroup 类对象,粉色虚线框内的子分组又构成一个分组对象(此分组对象中包含零个符号和三个子分组),即对应一个 SymbolGroup 类对象,因此,黄色框所示的分组是粉色虚线框所示分组的父分组,同样粉色虚线框所示分组中也包含了一个子分组集合。总之,符号库呈现一种树形组织结构。

        注:所谓的分组和子分组是符号库的逻辑组织形式,都是使用户可以将类别相同的符号放在一个组中,从而方便管理和使用。

        综上所述,一个符号库(SymbolLibrary)包含有唯一的一个根组(SymbolGroup 类对象),每个 SymbolGroup 类对象至多包含有一个 SymbolGroups 类对象,但却可以包含有零个或多个 Symbol 类对象,其中 SymbolGroups 类对象是 SymbolGroup 类对象的集合,以此实现符号库的树形管理结构。

        返回:
        符号库的根组对象。
      • add

        public int add(Symbol symbol,
                       SymbolGroup desGroup)
        向符号库中添加指定的符号对象。
        参数:
        symbol - 待添加的符号
        desGroup - 新添加符号对象的目标分组
        返回:
        新添加符号对象的 ID
      • add

        public int add(Symbol symbol)
        将指定的符号对象添加到当前符号库中
        参数:
        symbol - 待添加的符号对象
        返回:
        新添加符号对象的 ID