com.supermap.data.processing

类 TerrainCacheBuilder

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


    public class TerrainCacheBuilder
    extends com.supermap.data.InternalHandleDisposable
    地形缓存生成类,负责为地形数据生成配置文件为 *.sct 格式的缓存。

    在三维场景中往往需要添加地形图层,如何添加地形图层请查看 TerrainLayers.add() 方法的说明。

    三维缓存是一种用于改善三维场景浏览用户体验的优化策略。服务器端创建了三维缓存之后,客户端用户的每一次地图浏览,比如平移、放大、缩小地图,都会向服务器端发送一个 URL 请求,此时,服务器端按照匹配的条件,将已缓存的数据返回到客户端。

    TerrainCacheBuilder 类为用户提供了地形缓存生成的相关接口,生成地形缓存通常情况下包含以下步骤:

    1、获得用于生成缓存的原始数据,即 Grid 数据集。

    2、使用 TerrainCacheBuilder 类完成 Grid 数据集到地形缓存的生成。

    若需要在三维场景中显示的原始地形数据分开存储在多个数据集中,则此时需要通过该类分别生成缓存,存放在不同的目录下,然后分别加载地形缓存;或者将这些数据集以地形图层的方式加载到三维场景中,通过 SceneCacheBuilder.build() 方法以生成场景缓存的方式,通过一次调用即可生成对应的地形缓存。

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

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

    • 构造器详细资料

      • TerrainCacheBuilder

        public TerrainCacheBuilder()
        构造一个生成 SCT 地形缓存类的新实例。
      • TerrainCacheBuilder

        public TerrainCacheBuilder(DatasetGrid dataset,
                                   String outputFolder)
        根据指定的 GRID 数据集和输出缓存文件所在文件夹的全路径名,构造一个缓存生成类对象。

        该构造函数生成的缓存对象的名字与栅格数据集的名称相同。

        参数:
        dataset - 指定的栅格数据集。
        outputFolder - 输出缓存文件所在的文件的全路径名。
      • TerrainCacheBuilder

        public TerrainCacheBuilder(DatasetGrid dataset,
                                   String outputFolder,
                                   String name)
        根据指定的栅格数据集、输出缓存文件所在文件夹的全路径名以及生成的缓存对象名称,构造一个缓存生成类对象。
        参数:
        dataset - 指定的栅格数据集。
        outputFolder - 输出缓存文件所在的文件的全路径名。
        name - 生成的缓存对象名称。
    • 方法详细资料

      • getDataset

        public DatasetGrid getDataset()
        返回用于创建缓存的 GRID 数据集。
        返回:
        用于创建缓存的 GRID 数据集。
      • setDataset

        public void setDataset(DatasetGrid datasetGrid)
        设置用于创建缓存的 GRID 数据集。
        参数:
        datasetGrid - 用于创建缓存的 GRID 数据集。
      • getStorageType

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

        public void setStorageType(StorageType storageType)
        设置缓存的存储方式。
        参数:
        storageType - 缓存的存储方式。
      • getOutputFolder

        public String getOutputFolder()
        返回输出的缓存文件的全路径。
        返回:
        输出的缓存文件的全路径。
      • setOutputFolder

        public void setOutputFolder(String value)
        设置输出的缓存文件的全路径。
        参数:
        value - 输出的缓存文件的全路径。
      • getCacheName

        public String getCacheName()
        返回生成缓存的名称。该名称对应 SCT 缓存配置文件的名称,不含后缀名以及路径信息。
        返回:
        生成缓存的名称。该名称对应 SCT 缓存配置文件的名称,不含后缀名以及路径信息。
      • setCacheName

        public void setCacheName(String value)
        设置生成缓存的名称。该名称对应 SCT 缓存配置文件的名称,不含后缀名以及路径信息。
        参数:
        value - 生成缓存的名称。
      • getClipRegion

        public GeoRegion getClipRegion()
        返回数据集的裁剪区域。

        数据集的裁剪区域为可以访问的区域。

        返回:
        数据集的裁剪区域。
      • setClipRegion

        public void setClipRegion(GeoRegion geoRegion)
        设置数据集的裁剪区域。

        数据集的裁剪区域为可以访问的区域。

        参数:
        geoRegion - 数据集的裁剪区域。
      • getBeginLevel

        @Deprecated
        public int getBeginLevel()
        已过时。 
      • setBeginLevel

        @Deprecated
        public void setBeginLevel(int value)
        已过时。 
      • getEndLevel

        @Deprecated
        public int getEndLevel()
        已过时。 
      • setEndLevel

        @Deprecated
        public void setEndLevel(int value)
        已过时。 
      • getDefaultBeginLevel

        @Deprecated
        public int getDefaultBeginLevel()
        已过时。 
      • getDefaultEndLevel

        @Deprecated
        public int getDefaultEndLevel()
        已过时。 
      • getSampleSize

        public int getSampleSize()
        返回缓存预处理后生成的每个缓存分块文件的采样尺寸,单位为像素。

        对于栅格数据来说,该方法的返回值即为缓存预处理后每个分块的图幅尺寸。

        返回:
        缓存预处理后生成的每个缓存分块文件的采样尺寸,单位为像素。
        默认值:
        默认值为 129。
      • setSampleSize

        public void setSampleSize(int value)
        设置缓存预处理后生成的每个缓存分块文件的采样尺寸,单位为像素。

        对于栅格数据来说,该方法的返回值即为缓存预处理后每个分块的图幅尺寸。

        参数:
        value - 缓存预处理后生成的每个缓存分块文件的采样尺寸。
      • getDynamicPrjCoordSysType

        public PrjCoordSysType getDynamicPrjCoordSysType()
        返回基于栅格数据集生成的地形缓存所使用的缓存投影坐标系。
        返回:
        当前栅格数据集生成的地形缓存所设置的投影坐标系类型。
      • setDynamicPrjCoordSysType

        public void setDynamicPrjCoordSysType(PrjCoordSysType prjType)
        设置基于栅格数据集生成的地形所使用的缓存投影坐标系。
        参数:
        prjType - 投影坐标系类型,指明设置的投影坐标系。
      • getPassword

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

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

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

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

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

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

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

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

        public boolean build()
        创建地形缓存。
        返回:
        创建缓存成功返回 true,否则返回 false。
      • buildWithoutConfigFile

        public boolean buildWithoutConfigFile()
        为地形数据创建地形缓存。使用该方法创建缓存不会生成地形缓存的配置文件。
        返回:
        一个布尔值,若创建缓存成功,返回 true,否则返回 false。
      • computeOutputScales

        public boolean computeOutputScales()
        计算生成地形缓存时的合适输出比例尺,即提供的默认输出比例尺。该操作会修改 setOutputScales() 方法的设置值,通过该方法可以查看默认的输出比例尺。
        返回:
        一个布尔值,若计算成功返回 true,否则返回 false。
      • getDefaultOutputScales

        public double[] getDefaultOutputScales()
        返回默认的缓存生成比例尺。
        返回:
        返回默认的缓存生成比例尺。
      • getOutputScaleCaptions

        public HashMap<Double,String> getOutputScaleCaptions()
        返回地形缓存比例尺的别名。
        返回:
        地形缓存比例尺的别名。
      • setOutputScaleCaptions

        public void setOutputScaleCaptions(HashMap<Double,String> scaleCaptions)
        设置地形缓存比例尺的别名。

        一般设置为比例尺大小倒数的字符串,如1:10000为10000。

        当设置的别名不唯一时,程序抛出异常。

        参数:
        scaleCaptions - 地形缓存比例尺的别名。
      • getOutputScales

        public double[] getOutputScales()
        返回地形缓存的比例尺数组。
        返回:
        地形缓存的比例尺数组。
      • setOutputScales

        public void setOutputScales(double[] values)
        设置地形缓存的比例尺数组。

        地形比例尺数组中有一个非法(数值非法或出缓存时比例尺数组不是子集)时,缓存生成失败。

        参数:
        values - 地形缓存的比例尺数组。
      • computeLevel

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

        @Deprecated
        public String[] computeTerrainFileName()
        已过时。 
      • computeTerrainFileName

        @Deprecated
        public String[] computeTerrainFileName(int specialLevel)
        已过时。 
      • toConfigFile

        public boolean toConfigFile(String fileName)
        将对象的相关设置写到指定的文件中,文件的后缀名为 .sct,即缓存数据的配置文件。

        该方法不会对 setDataset 方法的设置值进行修改。

        参数:
        fileName - 缓存配置文件的全路径。
        返回:
        若保存缓存配置文件成功返回 true,否则返回 false。
      • fromConfigFile

        public boolean fromConfigFile(String fileName)
        导入缓存文件,根据缓存数据的配置文件中的内容来指定相关设置的值。

        该方法不会对 setDataset 方法的设置值进行修改。

        参数:
        fileName - 缓存文件全路径。
        返回:
        若导入缓存配置文件成功返回 true,否则返回 false。
      • getTiles

        public Tile[] getTiles(Rectangle2D tileBounds,
                               double scale)
        返回指定条件的瓦片。
        参数:
        tileBounds - 瓦片范围。
        scale - 瓦片比例尺。
        返回:
        返回指定条件的瓦片。
      • getProcessThreadsCount

        public int getProcessThreadsCount()
        获取线程数
        返回:
      • setProcessThreadsCount

        public void setProcessThreadsCount(int threadCount)
        设置线程数
        参数:
        threadCount -
      • getBlockScale

        public int getBlockScale()
        获取组合因子
        返回:
      • setBlockScale

        public void setBlockScale(int blockScale)
        设置组合因子
        参数:
        blockScale -
      • addSteppedListener

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

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

        public boolean openFile(String tifPath)
        TIFF文件直接生成栅格缓存
      • setIsDisposable

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

Copyright © 2021–2024 SuperMap. All rights reserved.