com.supermap.data.processing

类 VectorCacheBuilder

  • java.lang.Object
    • com.supermap.data.InternalHandle
      • com.supermap.data.InternalHandleDisposable
        • com.supermap.data.processing.VectorCacheBuilder
  • 所有已实现的接口:
    IDisposable


    public class VectorCacheBuilder
    extends com.supermap.data.InternalHandleDisposable
    矢量缓存生成类,该类主要用于为矢量数据生成供三维场景发布使用的矢量缓存,其配置文件为 *.scv 格式。scv矢量缓存目前已经废弃,使用OSGBVectorCacheBuilder替代

    若需要生成缓存的原始数据集的数量较大,如100,1000,建议用户将这些数据集配成一张地图,然后生成二维或三维地图缓存,关于二三维地图缓存的生成可参见 MapCacheBuilder、MapCache3DBuilder 类。

    关于矢量缓存的详细介绍请参见《二三维缓存》技术文档。

    在原始数据集数据量较大的情况下(记录大于1000条),可先对原始数据建立空间索引,采用这种方法可使得生成缓存的效率大幅提高,如何对矢量数据集建立索引可参考DatasetVector.buildSpatialIndex() 方法。

    示范代码:
    以下代码示范如何在数据量大的情况下快速生成矢量缓存。假设打开一个工作空间 workspace 对象,工作空间中存在一个数据源 datasource 对象,此数据源中包含一个名为 OlympicGreen 的 CAD 模型数据集 dataset_olympicGreen。
     public void buildSCV(DatasetVector dataset_olympicGreen)
     {
           
            // 对CAD模型数据集建立空间索引,由于复合数据集不支持多级网格索引,因此对其建立R树索引
            dataset_olympicGreen.buildSpatialIndex(SpatialIndexType.RTREE);
            
            VectorCacheBuilder cacheBuilder = new VectorCacheBuilder();
            // 设置缓存名称
            cacheBuilder.setCacheName("model");
            // 设置缓存输出路径
            cacheBuilder.setOutputFolder("../OlympicGreen/");
            // 设置用于创建缓存的CAD模型数据集
            cacheBuilder.setDataset(dataset_olympicGreen);
            // 设置开始生成缓存的层数
            cacheBuilder.setLevel(13);
            
            // 生成缓存
            if(cacheBuilder.build()){
                    System.out.println("生成缓存成功!");
            }
            else{
                    System.out.println("生成缓存失败!");
            }
        }
     
    • 构造器详细资料

      • VectorCacheBuilder

        public VectorCacheBuilder()
        构造一个新的矢量缓存生成类对象。
      • VectorCacheBuilder

        public VectorCacheBuilder(Recordset recordset,
                                  String outputFolder)
        根据指定的参数,构造一个新的矢量缓存生成类对象。

        该构造函数生成的缓存对象的名字与 Recordset 对应的 Dataset 的名称相同。

        参数:
        recordset - 用于生成缓存的记录集。
        outputFolder - 生成缓存的路径。
      • VectorCacheBuilder

        public VectorCacheBuilder(Recordset recordset,
                                  String outputFolder,
                                  String cacheName)
        根据指定的参数,构造一个新的矢量缓存生成类对象。
        参数:
        recordset - 用于生成缓存的记录集。
        outputFolder - 生成缓存的路径。
        cacheName - 生成缓存的配置文件的名称。
      • VectorCacheBuilder

        public VectorCacheBuilder(DatasetVector dataset,
                                  String outputFolder,
                                  String cacheName)
        根据指定的参数,构造一个新的矢量缓存生成类对象。
        参数:
        dataset - 用于生成缓存的矢量数据集。
        outputFolder - 生成缓存的路径。
        cacheName - 生成缓存的配置文件的名称。
    • 方法详细资料

      • getRecordset

        public Recordset getRecordset()
        返回需要生成缓存的记录集。
        返回:
        需要生成缓存的记录集。
      • getDataset

        public DatasetVector getDataset()
        返回需要生成缓存的矢量数据集。
        返回:
        需要生成缓存的矢量数据集。
      • setFieldNames

        @Deprecated
        public void setFieldNames(String[] value)
        已过时。 
      • getBounds

        public Rectangle2D getBounds()
        返回生成缓存的地理范围。
        返回:
        生成缓存的地理范围。
      • setBounds

        public void setBounds(Rectangle2D value)
        设置生成缓存的地理范围。
        参数:
        value - 生成缓存的地理范围。
      • getCacheName

        public String getCacheName()
        返回生成缓存的配置文件的名称。
        返回:
        生成缓存的配置文件的名称。
      • setCacheName

        public void setCacheName(String value)
        设置生成缓存的配置文件的名称。
        参数:
        value - 生成缓存的配置文件的名称。
      • getOutputFolder

        public String getOutputFolder()
        返回生成缓存的路径。
        返回:
        生成缓存的路径。
      • setOutputFolder

        public void setOutputFolder(String value)
        设置生成缓存的路径。
        参数:
        value - 生成缓存的路径。
      • getStorageType

        public StorageType getStorageType()
        返回缓存存储方式。
        返回:
        缓存存储方式。
        默认值:
        默认值为 StorageType.Original,即原始模式。
      • getLevel

        @Deprecated
        public int getLevel()
        已过时。 
      • setLevel

        @Deprecated
        public void setLevel(int value)
        已过时。 
      • getUpdateSize

        @Deprecated
        public int getUpdateSize()
        已过时。 
      • setUpdateSize

        @Deprecated
        public void setUpdateSize(int value)
        已过时。 
      • getPassword

        public String getPassword()
        返回用于为地图对象创建缓存时对数据进行加密的密码。在添加图层时,需要使用该密码才能成功添加。如果使用默认值,便可不指定密码便能打开。

        该密码不会写到缓存数据的配置文件中,同时,fromConfigFile() 方法也不会还原该密码。

        返回:
        一个布尔值,若创建地图缓存成功返回 true,否则返回 false。
        默认值:
        默认值为一个空的字符串。
      • setPassword

        public void setPassword(String value)
        设置用于为地图对象创建缓存时对数据进行加密的密码。在添加图层时,需要使用该密码才能成功添加。如果使用默认值,便可不指定密码便能打开。

        该密码不会写到缓存数据的配置文件中,同时,fromConfigFile() 方法也不会还原该密码。

        注意:当 StorageType.Original 时,该方法是无效的;当 StorageType.Compact 时,该方法才有效。

        参数:
        value - 用于为地图对象创建缓存时对数据进行加密的密码。
      • build

        public boolean build()
        创建矢量缓存。
        返回:
        一个布尔值,若创建缓存成功返回 true,否则返回 false。
      • buildWithoutConfigFile

        @Deprecated
        public boolean buildWithoutConfigFile()
        已过时。 
      • buildTexture

        @Deprecated
        public boolean buildTexture(String texPath,
                                                 int level)
        已过时。 
      • computeLevel

        @Deprecated
        public boolean computeLevel()
        已过时。 
      • toConfigFile

        @Deprecated
        public boolean toConfigFile(String path)
        已过时。 
      • fromConfigFile

        @Deprecated
        public boolean fromConfigFile(String path)
        已过时。 
      • dispose

        public void dispose()
        释放该对象所占用的资源。当调用该方法之后,此对象不再可用。
      • addSteppedListener

        public void addSteppedListener(SteppedListener l)
        添加一个用于接收进度条事件(SteppedEvent)的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。
      • removeSteppedListener

        public void removeSteppedListener(SteppedListener l)
        移除一个用于接收进度条事件(SteppedEvent)的监听器。
        参数:
        l - 一个用于接收进度条事件的监听器。
      • getEncodeType

        public EncodeType getEncodeType()
        返回生成缓存文件的压缩类型。

        矢量缓存仅支持None和LZW两种压缩格式,即:仅支持 EncodeType.LZW 或 EncodeType.NONE 类型。

        返回:
        生成缓存文件的压缩类型。
        默认值:
        默认值为 EncodeType.LZW,即ZIP压缩模式。
      • setEncodeType

        @Deprecated
        public void setEncodeType(EncodeType encodeType)
        已过时。 
        缓存压缩方式
      • setOutputScale

        @Deprecated
        public void setOutputScale(double scale)
        已过时。 
      • getOutputScale

        public double getOutputScale()
        获取矢量缓存的比例尺。
      • getDynamicPrjCoordSysType

        public PrjCoordSysType getDynamicPrjCoordSysType()
        返回动态投影坐标系类型。
        返回:
        返回动态投影坐标系类型。
      • setDynamicPrjCoordSysType

        public void setDynamicPrjCoordSysType(PrjCoordSysType prjType)
        设置动态投影坐标系。
        参数:
        prjType - 动态投影坐标系类型。
      • isTileExistsInConfigFile

        @Deprecated
        public Boolean isTileExistsInConfigFile(double scale,
                                                             int row,
                                                             int col)
        已过时。 
      • addTileInfoToConfigFile

        @Deprecated
        public Boolean addTileInfoToConfigFile(double scale,
                                                            int row,
                                                            int col)
        已过时。 
      • getTileWidth

        public double getTileWidth()
        获取TileWidth
      • setTileWidth

        public void setTileWidth(double tileWidthValue)
        设置TileWidth
      • getConfigStream

        @Deprecated
        public ArrayList<byte[]> getConfigStream(ConfigType configType)
        已过时。 
        获得ConfigData
        参数:
        configType -
        返回:
      • setIsDisposable

        public static void setIsDisposable(com.supermap.data.InternalHandleDisposable obj,
                                           boolean disposable)

Copyright © 2021–2024 SuperMap. All rights reserved.