public class TerrainCacheBuilder
extends com.supermap.data.InternalHandleDisposable
在三维场景中往往需要添加地形图层,如何添加地形图层请查看 TerrainLayers.add()
方法的说明。
三维缓存是一种用于改善三维场景浏览用户体验的优化策略。服务器端创建了三维缓存之后,客户端用户的每一次地图浏览,比如平移、放大、缩小地图,都会向服务器端发送一个 URL 请求,此时,服务器端按照匹配的条件,将已缓存的数据返回到客户端。
TerrainCacheBuilder 类为用户提供了地形缓存生成的相关接口,生成地形缓存通常情况下包含以下步骤:
1、获得用于生成缓存的原始数据,即 Grid 数据集。
2、使用 TerrainCacheBuilder 类完成 Grid 数据集到地形缓存的生成。
若需要在三维场景中显示的原始地形数据分开存储在多个数据集中,则此时需要通过该类分别生成缓存,存放在不同的目录下,然后分别加载地形缓存;或者将这些数据集以地形图层的方式加载到三维场景中,通过 SceneCacheBuilder.build()
方法以生成场景缓存的方式,通过一次调用即可生成对应的地形缓存。
若需要生成缓存的原始数据集的数量较大,如100,1000,建议用户将这些数据集配成一张地图,然后生成二维或三维地图缓存,关于二三维地图缓存的生成可参见 MapCacheBuilder
、MapCache3DBuilder
类。
关于地形缓存的详细介绍请参见《二三维缓存》技术文档。
构造器和说明 |
---|
TerrainCacheBuilder()
构造一个生成 SCT 地形缓存类的新实例。
|
TerrainCacheBuilder(DatasetGrid dataset,
String outputFolder)
根据指定的
GRID 数据集和输出缓存文件所在文件夹的全路径名,构造一个缓存生成类对象。 |
TerrainCacheBuilder(DatasetGrid dataset,
String outputFolder,
String name)
根据指定的栅格数据集、输出缓存文件所在文件夹的全路径名以及生成的缓存对象名称,构造一个缓存生成类对象。
|
限定符和类型 | 方法和说明 |
---|---|
void |
addSteppedListener(SteppedListener l)
添加一个用于接收进度条事件(
SteppedEvent )的监听器。 |
boolean |
build()
创建地形缓存。
|
boolean |
buildWithoutConfigFile()
为地形数据创建地形缓存。
|
boolean |
computeLevel()
已过时。
|
boolean |
computeOutputScales()
计算生成地形缓存时的合适输出比例尺,即提供的默认输出比例尺。
|
String[] |
computeTerrainFileName()
已过时。
|
String[] |
computeTerrainFileName(int specialLevel)
已过时。
|
void |
dispose()
释放该对象所占用的资源。
|
boolean |
fromConfigFile(String fileName)
导入缓存文件,根据缓存数据的配置文件中的内容来指定相关设置的值。
|
int |
getBeginLevel()
已过时。
|
int |
getBlockScale()
获取组合因子
|
String |
getCacheName()
返回生成缓存的名称。
|
GeoRegion |
getClipRegion()
返回数据集的裁剪区域。
|
CompressType |
getCompressType()
已过时。
|
DatasetGrid |
getDataset()
返回用于创建缓存的
GRID 数据集。 |
int |
getDefaultBeginLevel()
已过时。
|
int |
getDefaultEndLevel()
已过时。
|
double[] |
getDefaultOutputScales()
返回默认的缓存生成比例尺。
|
PrjCoordSysType |
getDynamicPrjCoordSysType()
返回基于栅格数据集生成的地形缓存所使用的缓存投影坐标系。
|
EncodeType |
getEncodeType()
已过时。
|
int |
getEndLevel()
已过时。
|
String |
getOutputFolder()
返回输出的缓存文件的全路径。
|
HashMap<Double,String> |
getOutputScaleCaptions()
返回地形缓存比例尺的别名。
|
double[] |
getOutputScales()
返回地形缓存的比例尺数组。
|
String |
getPassword()
返回用于为地图对象创建缓存时对数据进行加密的密码。
|
int |
getProcessThreadsCount()
获取线程数
|
int |
getSampleSize()
返回缓存预处理后生成的每个缓存分块文件的采样尺寸,单位为像素。
|
StorageType |
getStorageType()
返回缓存的存储方式。
|
Tile[] |
getTiles(Rectangle2D tileBounds,
double scale)
返回指定条件的瓦片。
|
boolean |
openFile(String tifPath)
TIFF文件直接生成栅格缓存
|
void |
removeSteppedListener(SteppedListener l)
移除一个用于接收进度条事件(
SteppedEvent )的监听器。 |
void |
setBeginLevel(int value)
已过时。
|
void |
setBlockScale(int blockScale)
设置组合因子
|
void |
setCacheName(String value)
设置生成缓存的名称。
|
void |
setClipRegion(GeoRegion geoRegion)
设置数据集的裁剪区域。
|
void |
setCompressType(CompressType compressType)
已过时。
|
void |
setDataset(DatasetGrid datasetGrid)
设置用于创建缓存的
GRID 数据集。 |
void |
setDynamicPrjCoordSysType(PrjCoordSysType prjType)
设置基于栅格数据集生成的地形所使用的缓存投影坐标系。
|
void |
setEncodeType(EncodeType encodeType)
已过时。
|
void |
setEndLevel(int value)
已过时。
|
static void |
setIsDisposable(com.supermap.data.InternalHandleDisposable obj,
boolean disposable) |
void |
setOutputFolder(String value)
设置输出的缓存文件的全路径。
|
void |
setOutputScaleCaptions(HashMap<Double,String> scaleCaptions)
设置地形缓存比例尺的别名。
|
void |
setOutputScales(double[] values)
设置地形缓存的比例尺数组。
|
void |
setPassword(String password)
设置用于为地图对象创建缓存时对数据进行加密的密码。
|
void |
setProcessThreadsCount(int threadCount)
设置线程数
|
void |
setSampleSize(int value)
设置缓存预处理后生成的每个缓存分块文件的采样尺寸,单位为像素。
|
void |
setStorageType(StorageType storageType)
设置缓存的存储方式。
|
boolean |
toConfigFile(String fileName)
将对象的相关设置写到指定的文件中,文件的后缀名为 .sct,即缓存数据的配置文件。
|
public TerrainCacheBuilder()
public TerrainCacheBuilder(DatasetGrid dataset, String outputFolder)
GRID
数据集和输出缓存文件所在文件夹的全路径名,构造一个缓存生成类对象。
该构造函数生成的缓存对象的名字与栅格数据集的名称相同。
dataset
- 指定的栅格数据集。outputFolder
- 输出缓存文件所在的文件的全路径名。public TerrainCacheBuilder(DatasetGrid dataset, String outputFolder, String name)
dataset
- 指定的栅格数据集。outputFolder
- 输出缓存文件所在的文件的全路径名。name
- 生成的缓存对象名称。public DatasetGrid getDataset()
GRID
数据集。GRID
数据集。public void setDataset(DatasetGrid datasetGrid)
GRID
数据集。datasetGrid
- 用于创建缓存的 GRID
数据集。public StorageType getStorageType()
StorageType.Original
,即原始模式。public void setStorageType(StorageType storageType)
storageType
- 缓存的存储方式。@Deprecated public CompressType getCompressType()
@Deprecated public void setCompressType(CompressType compressType)
@Deprecated public EncodeType getEncodeType()
@Deprecated public void setEncodeType(EncodeType encodeType)
public String getOutputFolder()
public void setOutputFolder(String value)
value
- 输出的缓存文件的全路径。public String getCacheName()
public void setCacheName(String value)
value
- 生成缓存的名称。public GeoRegion getClipRegion()
数据集的裁剪区域为可以访问的区域。
public void setClipRegion(GeoRegion geoRegion)
数据集的裁剪区域为可以访问的区域。
geoRegion
- 数据集的裁剪区域。@Deprecated public int getBeginLevel()
@Deprecated public void setBeginLevel(int value)
@Deprecated public int getEndLevel()
@Deprecated public void setEndLevel(int value)
@Deprecated public int getDefaultBeginLevel()
@Deprecated public int getDefaultEndLevel()
public int getSampleSize()
对于栅格数据来说,该方法的返回值即为缓存预处理后每个分块的图幅尺寸。
public void setSampleSize(int value)
对于栅格数据来说,该方法的返回值即为缓存预处理后每个分块的图幅尺寸。
value
- 缓存预处理后生成的每个缓存分块文件的采样尺寸。public PrjCoordSysType getDynamicPrjCoordSysType()
public void setDynamicPrjCoordSysType(PrjCoordSysType prjType)
prjType
- 投影坐标系类型,指明设置的投影坐标系。public String getPassword()
该密码不会写到缓存数据的配置文件中,同时,fromConfigFile
方法也不会还原该密码。
public void setPassword(String password)
该密码不会写到缓存数据的配置文件中,同时,fromConfigFile
方法也不会还原该密码。
注意:当 StorageType.Original 时,该方法是无效的;当 StorageType.Compact 时,该方法才有效。
password
- 用于为地图对象创建缓存时对数据进行加密的密码。public void dispose()
public boolean build()
public boolean buildWithoutConfigFile()
public boolean computeOutputScales()
setOutputScales()
方法的设置值,通过该方法可以查看默认的输出比例尺。public double[] getDefaultOutputScales()
public HashMap<Double,String> getOutputScaleCaptions()
public void setOutputScaleCaptions(HashMap<Double,String> scaleCaptions)
一般设置为比例尺大小倒数的字符串,如1:10000为10000。
当设置的别名不唯一时,程序抛出异常。
scaleCaptions
- 地形缓存比例尺的别名。public double[] getOutputScales()
public void setOutputScales(double[] values)
地形比例尺数组中有一个非法(数值非法或出缓存时比例尺数组不是子集)时,缓存生成失败。
values
- 地形缓存的比例尺数组。@Deprecated public boolean computeLevel()
@Deprecated public String[] computeTerrainFileName()
@Deprecated public String[] computeTerrainFileName(int specialLevel)
public boolean toConfigFile(String fileName)
该方法不会对 setDataset
方法的设置值进行修改。
fileName
- 缓存配置文件的全路径。public boolean fromConfigFile(String fileName)
该方法不会对 setDataset
方法的设置值进行修改。
fileName
- 缓存文件全路径。public Tile[] getTiles(Rectangle2D tileBounds, double scale)
tileBounds
- 瓦片范围。scale
- 瓦片比例尺。public int getProcessThreadsCount()
public void setProcessThreadsCount(int threadCount)
threadCount
- public int getBlockScale()
public void setBlockScale(int blockScale)
blockScale
- public void addSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收进度条事件的监听器。public void removeSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收进度条事件的监听器。public boolean openFile(String tifPath)
public static void setIsDisposable(com.supermap.data.InternalHandleDisposable obj, boolean disposable)
Copyright © 2021–2024 SuperMap. All rights reserved.