com.supermap.mapping

类 Layers

  • java.lang.Object
    • com.supermap.mapping.Layers


  • public class Layers
    extends java.lang.Object
    图层集合类。该类对一个地图对象中的所有图层进行管理。

    一个图层集合对象中可包含各种类型的普通图层和专题图层,并且提供普通图层的创建方法。

    该类中提供了图层的添加、删除以及查找等的方法,并且可以设置图层为可编辑或不可编辑。同时,图层集合对象允许其中的多个图层同时处于可编辑状态, 这样可以同时对多个图层进行编辑,从而提高工作效率。

    Example:
    以下代码示范了使用图层集合类对图层进行清除、添加、删除等操作。
     public void layersTest() {
     
            // 返回 captial、world、ocean 数据集
      String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath();
            Workspace workspace = new Workspace();
            WorkspaceConnectionInfo workspaceConnectionInfo = new WorkspaceConnectionInfo();
            workspaceConnectionInfo.setServer(rootPath + "/SampleData/World/World.smwu");
            workspaceConnectionInfo.setType(WorkspaceType.SMWU);
            workspace.open(workspaceConnectionInfo);
            Datasource datasource = workspace.getDatasources().get(0);
            Dataset dataset0 = datasource.getDatasets().get("capital");
            Dataset dataset1 = datasource.getDatasets().get("world");
            Dataset dataset2 = datasource.getDatasets().get("ocean");
     
            // 打开地图
            Map map = new Map(workspace);
            map.open(workspace.getMaps().get(0));
            map.refresh();
     
            // 返回图层集合
            Layers layers = map.getLayers();
     
            // 对图层集合进行操作,包括清除、添加、删除等
            layers.clear();
            layers.add(dataset1, true);
            layers.add(dataset0, true);
            layers.add(dataset2, true);
            System.out.println(layers.getCount());
            layers.remove(2);
            System.out.println(layers.getCount());
     
            // 释放资源
            map.close();
            datasourceConnectInfo.dispose();
            workspace.dispose();
     }
     
    • 方法详细资料

      • add

        public Layer add(Dataset dataset,
                         boolean addToHead)
        用于把一个数据集添加到此图层集合作为一个普通图层显示,即创建一个普通图层。其风格由系统默认设置。
        参数:
        dataset - 要添加到图层的数据集。
        addToHead - 指定新创建图层是否放在图层集合的最上面一层。当设置为 false 时,则将此新创建图层放在最底层。
        返回:
        新添加的图层。
        Example:
        请参见 Layers 类的示例。
      • add

        public Layer add(Dataset dataset,
                         Theme theme,
                         boolean addToHead)
        用于将一个数据集添加到此图层集合作为一个专题图层显示,即创建一个专题图层,并指定专题图层的专题图对象。

        注意专题图层的专题图对象一旦指定,则不可更改为其他类型的专题图对象。例如创建时指定该图层的专题图对象为范围专题图对象,则之后不可以将其改为标签专题图或统计专题图等其他专题图对象。

        参数:
        dataset - 要添加到图层的数据集。
        theme - 指定此专题图层的专题图对象。
        addToHead - 指定新创建图层是否放在图层集合的最上面一层。当设置为 false 时,则将此新创建图层放在最底层。
        返回:
        新添加的专题图层。
        Example:
        请参见 Layers 类的示例。
      • getCount

        public int getCount()
        返回此图层集合中图层对象的总数。
        返回:
        此图层集合中图层对象的总数。
        Default:
        默认值为 0,即图层集合中没有图层对象。
      • removeRange

        public int removeRange(int startIndex,
                               int count)
        在此图层集合中从指定索引开始删除指定个数的图层。返回删除的图层个数。
        参数:
        startIndex - 要删除的图层的起始索引。
        count - 要删除的图层个数。
        返回:
        删除的图层数。
      • remove

        public boolean remove(int index)
        从此图层集合中删除一个指定索引的图层。删除成功则返回 true。
        参数:
        index - 要删除的图层的索引。
        返回:
        删除成功则返回 true,否则返回 false。
        Example:
        请参见 Layers 类的示例。
      • remove

        public boolean remove(java.lang.String name)
        从此图层集合中删除一个指定名称的图层。删除成功则返回 true。
        参数:
        name - 要删除图层的名称。
        返回:
        删除成功则返回 true,否则返回 false。
      • clear

        public void clear()
        删除此图层集合对象中所有的图层。
        Example:
        请参见 Layers 类的示例。
      • get

        public Layer get(java.lang.String name)
        返回此图层集合中指定名称的图层对象。
        参数:
        name - 要返回的图层的名称。
        返回:
        此图层集合中指定名称的图层对象。
        Example:
        请参见 Layer 的示例。
      • get

        public Layer get(int index)
        返回此图层集合中指定索引的图层对象。图层集合中图层的索引从 0 开始,从顶层开始依次编号。
        参数:
        index - 要返回的图层的索引。
        返回:
        此图层集合中指定索引的图层对象。
      • indexOf

        public int indexOf(java.lang.String name)
        返回此图层集合中指定名称的图层的索引。
        参数:
        name - 要查找的图层的名称。
        返回:
        找到指定图层则返回图层索引,否则返回-1。
      • insert

        public Layer insert(int index,
                            Dataset dataset)
        用于把一个数据集插入到此图层集合中作为一个普通图层显示。
        参数:
        index - 插入的数据集在图层中的索引。
        dataset - 待插入的数据集。
        返回:
        新插入的图层。
      • setLayersStateListener

        public void setLayersStateListener(LayersStateListener listener)
        添加一个用于接收图层被添加、修改编辑状态、修改可见性、修改图层别名等事件的监听器。
        参数:
        listener - 一个用于接收图层集合变化事件的监听器。
      • removeLayersStateListener

        public boolean removeLayersStateListener(LayersStateListener listener)
        移除一个用于接收图层被添加、修改编辑状态、修改可见性、修改图层别名等事件的监听器。
        参数:
        listener - 一个用于接收图层集合变化事件的监听器。
        返回:
        若移除该监听器则返回 true,否则返回 false。
      • contains

        public boolean contains(java.lang.String name)
        判定此图层集合对象是否包含指定名称的图层。
        参数:
        name - 可能包含在此图层集合中的图层对象的名称。
        返回:
        若此图层中包含指定名称的图层则返回 true,否则返回 false。
      • moveToTop

        public boolean moveToTop(int index)
        将此图层集合中指定索引的图层移动到最顶层。
        参数:
        index - 要移动到最顶层的图层的索引。
        返回:
        移动成功返回 true,否则返回 false。
      • moveToBottom

        public boolean moveToBottom(int index)
        将此图层集合中指定索引的图层移动到最底层。
        参数:
        index - 要移动到最底层的图层的索引。
        返回:
        移动成功返回 true,否则返回 false。
      • moveUp

        public boolean moveUp(int index)
        将此图层集合中指定索引的图层往上移动一层。
        参数:
        index - 要移动的图层的索引。
        返回:
        移动成功返回 true,否则返回 false。
      • moveDown

        public boolean moveDown(int index)
        将此图层集合中指定索引的图层往下移动一层。
        参数:
        index - 要移动的图层的索引。
        返回:
        移动成功返回 true,否则返回 false。
      • moveTo

        public boolean moveTo(int srcIndex,
                              int desIndex)
        将此图层集合中的指定索引的图层移动到指定的目标索引。
        参数:
        srcIndex - 要移动图层的原索引。
        desIndex - 图层要移动到的目标索引。
        返回:
        移动成功返回 true,否则返回 false。
      • addGroup

        public LayerGroup addGroup(java.lang.String groupName)
        向图层集合中添加一个分组图层。
        参数:
        groupName - 分组图层的显示名称。
        返回:
        返回新添加的分组图层。
      • insertGroup

        public LayerGroup insertGroup(int index,
                                      java.lang.String groupName)
        向图层集合中插入一个分组图层。
        参数:
        index - 指定的插入分组图层的位置。
        groupName - 分组图层的显示名称。
        返回:
        插入的分组图层。
      • removeGroup

        public boolean removeGroup(LayerGroup group)
        从图层集合中移除指定的分组图层。
        参数:
        group - 指定的要移除的分组图层。
        返回:
        一个布尔值,指示移除分组图层是否成功,true表示成功,false表示失败。
      • add

        public boolean add(Layer layer)
        向图层集合中添加一个图层,主要用于将图层分组中的图层移出到图层集合中。如果图层已经存在,则不添加到图层集合中,并返回false。
        参数:
        layer - 指定的要添加的图层。
        返回:
        一个布尔值,指示添加图层是否成功,true表示成功,false表示失败。
      • insert

        public boolean insert(int index,
                              Layer layer)
        向图层集合中的指定索引位置插入一个图层,主要用于将图层分组中的图层移出到图层集合中。如果图层已经存在,则不添加到图层集合中,并返回false。
        参数:
        index - 指定的插入图层的索引位置。
        layer - 指定的要插入的图层。
        返回:
        一个布尔值,指示插入图层是否成功,true表示成功,false表示失败。
      • remove

        public boolean remove(Layer layer)
        从图层集合中移除一个指定的图层。
        参数:
        layer - 指定的要移除的图层。
        返回:
        一个布尔值,指示移除图层是否成功,true表示成功,false表示失败。
      • addLayerGroupAddedListener

        public void addLayerGroupAddedListener(LayerGroupAddedListener l)
        添加一个用于接收向图层集合中添加分组图层结束事件LayerGroupAddedEvent的监听器。
        参数:
        l - 一个用于接收向图层集合中添加分组图层结束事件的监听器。
      • removeLayerGroupAddedListener

        public void removeLayerGroupAddedListener(LayerGroupAddedListener l)
        移除一个用于接收向图层集合中添加分组图层结束事件LayerGroupAddedEvent的监听器。
        参数:
        l - 一个用于接收向图层集合中添加分组图层结束事件的监听器。
      • addLayerGroupRemovedListener

        public void addLayerGroupRemovedListener(LayerGroupRemovedListener l)
        添加一个用于接收从图层集合移除分组图层结束事件LayerGroupRemovedEvent的监听器。
        参数:
        l - 一个用于接收从图层集合移除分组图层结束事件的监听器。
      • removeLayerGroupRemovedListener

        public void removeLayerGroupRemovedListener(LayerGroupRemovedListener l)
        移除一个用于接收从图层集合移除分组图层结束事件LayerGroupRemovedEvent的监听器。
        参数:
        l - 一个用于接收从图层集合移除分组图层结束事件的监听器。
      • addLayerAddedListener

        public void addLayerAddedListener(LayerAddedListener l)
        添加一个用于接收图层被添加事件LayerAddedEvent的监听器。
        参数:
        l - 一个用于接收图层被添加事件的监听器。
      • removeLayerAddedListener

        public void removeLayerAddedListener(LayerAddedListener l)
        移除一个用于接收图层被添加事件LayerAddedEvent的监听器。
        参数:
        l - 一个用于接收图层被添加事件的监听器。
      • addLayerRemovedListener

        public void addLayerRemovedListener(LayerRemovedListener l)
        添加一个用于接收图层被删除事件LayerRemovedEvent的监听器。
        参数:
        l - 一个用于接收图层被删除事件的监听器。
      • removeLayerRemovedListener

        public void removeLayerRemovedListener(LayerRemovedListener l)
        移除一个用于接收图层被删除事件LayerRemovedEvent的监听器。
        参数:
        l - 一个用于接收图层被删除事件的监听器。
      • add

        public void add(Datasource datasource,
                        java.lang.String strSLDFilePath)
        通过SLD文件,向图层集合中添加图层
        参数:
        datasource - 数据所在的数据源
        strSLDFilePath - SLD文件路径
      • getAllSubLayersTitle

        public java.lang.String[] getAllSubLayersTitle()
        获取所有图层标题的集合,返回字符串数组(针对OGC服务)
        返回:
        String[] 所有图层标题的集合
      • getByCaption

        public Layer getByCaption(java.lang.String caption)
        获取指定别名的图层
        参数:
        caption - 图层别名
        返回:
        查找到的图层
      • indexOfByCaption

        public int indexOfByCaption(java.lang.String caption)
        通过图层别名,获取图层索引
        参数:
        caption - 图层别名
        返回:
        图层索引
      • addHeatmap

        public LayerHeatmap addHeatmap(Dataset dataset,
                                       int kernelRadius)
        根据给定的点数据集和参数设置制作一幅热力图
        参数:
        dataset - 参与制作的热力图的数据,该数据必须为点矢量数据集
        kernelRadius - 用于计算密度的查找半径
        返回:
        热力图图层
      • addHeatmap

        public LayerHeatmap addHeatmap(Dataset dataset,
                                       int kernelRadius,
                                       Color maxColor,
                                       Color minColor)
        根据给定的点数据集和参数设置制作一幅热力图
        参数:
        dataset - 参与制作的热力图的数据,该数据必须为点矢量数据集
        kernelRadius - 用于计算密度的查找半径
        maxColor - 高点密度的颜色
        minColor - 低点密度的颜色
        返回:
        热力图图层
      • addGridAggregation

        public LayerGridAggregation addGridAggregation(Dataset dataset)
        根据给定的点数据集制作一幅默认网格图
        参数:
        dataset - 点数据集
        返回:
        网格图
      • addGridAggregation

        public LayerGridAggregation addGridAggregation(Dataset dataset,
                                                       Color maxColor,
                                                       Color minColor)
        根据给定的点数据集和参数设置制作一幅网格图
        参数:
        dataset - 点数据集
        maxColor - 高点密度的颜色
        minColor - 低点密度的颜色
        返回:
        网格图
      • insert

        public Layer insert(int index,
                            java.lang.String strXML)
        插入图层
        参数:
        index - 索引
        strXML - xml图层数据
        返回:
        图层
      • find

        public Layer find(java.lang.String name)
        在图层组中找图层
        参数:
        name - 名称
        返回:
        图层