public class SceneCacheBuilder
extends com.supermap.data.InternalHandleDisposable
场景缓存是基于整个场景生成缓存,通过一次操作,即可将已经加载到场景中的不同类型的数据图层生成对应类型的缓存。
在生成场景缓存时,影像图层对应影像缓存图层,地形图层对应地形缓存图层,矢量图层对应矢量缓存图层,地图图层对应地图缓存图层,如果是缓存图层(比如模型缓存图层)或者KML图层,则保持不变。
场景缓存生成后,形成一个新的工作空间和若干缓存文件夹。新的工作空间中不仅保存着各种新生成的缓存图层,还保存了各个缓存图层的风格信息。默认情况下,新生成的工作空间和用于生成缓存的场景名称相同,用户可以通过设置相应接口指定生成的工作空间及场景的名称。
提供该类的目的主要是满足用户采用默认或统一设置来完成相关缓存的生成,如果需要对某个图层进行单独的缓存参数设置,请单独使用该图层对应的缓存生成类来完成。
构造器和说明 |
---|
SceneCacheBuilder()
构造一个场景相关缓存生成类的新实例。
|
SceneCacheBuilder(Scene scene,
String outputFolder)
根据指定的参数构造一个场景相关缓存生成类的新实例。
|
限定符和类型 | 方法和说明 |
---|---|
void |
addSteppedListener(SteppedListener l)
添加一个用于接收进度条事件(
SteppedEvent )的监听器。 |
static boolean |
appendAttributes(String attributeFile,
byte[] attributeData,
String password)
将属性数据追加到指定的属性文件。
|
boolean |
build()
创建场景缓存。
|
static boolean |
buildOfflinePackage(String workspacePath,
String sceneName)
已过时。
|
void |
dispose()
释放该对象所占用的资源。
|
static byte[] |
extractAttributeIDs(String attributeFile,
String password)
提取属性文件中的所有ID值,以流的方式输出结果。
|
AttributeExtentType |
getAttributeExtentType()
获取属性文件类型
|
Rectangle2D |
getBounds()
返回场景图层中需要生成缓存数据的范围。
|
CompressedTextureType |
getCompressedTextureType()
返回生成场景缓存时的压缩纹理的格式。
|
CacheImageSize |
getImageSize()
返回缓存图片的大小。
|
boolean |
getIsCalNormal()
获取是否重新计算法线
|
boolean |
getIsInstance() |
double |
getObjectFiltrateThreshold() |
String |
getOutputFolder()
返回生成缓存的路径。
|
String[] |
getOutputLayerNames()
返回哪些普通图层对应的数据会生成缓存。
|
String |
getOutputSceneName()
返回结果场景的名称,该场景名称会保存在 OutputWorkspaceConnectionInfo 对应的工作空间中。
|
String[] |
getOutputTerrainLayerNames()
返回哪些地形图层对应的数据会生成缓存。
|
WorkspaceConnectionInfo |
getOutputWorkspaceConnectionInfo()
返回结果工作空间的链接信息。
|
String |
getPassword()
返回对生成的各个图层的缓存数据进行加密的密码。
|
String[] |
getPreCacheLayerNames()
获取对场景中待生成预缓存的图层名称。
|
int |
getProcessThreadsCount()
获取生成缓存的线程数。
|
Scene |
getScene()
返回用于生成缓存的场景对象。
|
StorageType |
getStorageType()
返回缓存的存储方式。
|
TerrainCacheType |
getTerrainCacheType() |
int |
getUpdateSize()
返回在 Scene 场景渲染该缓存图层时,每次更新缓存的块数,具体值为该方法返回值的平方,即 UpdateSize * UpdateSize 的个数。
|
String |
getUserIDField()
获取对象ID字段
|
boolean |
isBoundsCeiled()
返回在生成缓存时是否对场景图层中指定的需要生成缓存数据的范围(对应
setBounds() 方法设置的范围)进行规整处理。 |
boolean |
isBuildNormalMap()
对场景中的地形数据,获取是否生成法线图。
|
boolean |
isCalculateTangents()
获取是否生成切线
|
boolean |
isCombineRepeatTextures()
对场景中的模型数据生成三维切片缓存时,用于获取是否重复贴图打组。
|
void |
removeSteppedListener(SteppedListener l)
移除一个用于接收进度条事件(
SteppedEvent )的监听器。 |
void |
setAttributeExtentType(AttributeExtentType type)
设置属性文件类型
|
void |
setBounds(Rectangle2D value)
设置返场景图层中需要生成缓存数据的范围。
|
void |
setBoundsCeiled(boolean value)
设置在生成缓存时是否对场景图层中指定的需要生成缓存数据的范围(对应
setBounds() 方法设置的范围)进行规整处理。 |
void |
setBuildNormalMap(boolean isBuildNormalMap)
对场景中的地形数据,设置是否生成法线图。
|
void |
setCalculateTangents(boolean value)
设置是否生成切线
|
void |
setCombineRepeatTextures(boolean isCombineRepeatTextures)
对场景中的模型数据生成三维切片缓存时,用于设置是否重复贴图打组。
|
void |
setCompressedTextureType(CompressedTextureType value)
设置生成场景缓存时的压缩纹理的格式。
|
void |
setImageSize(CacheImageSize value)
设置缓存图片的大小。
|
void |
setIsCalNormal(boolean value)
设置是否重新计算法线
|
static void |
setIsDisposable(com.supermap.data.InternalHandleDisposable obj,
boolean disposable) |
void |
setIsInstance(boolean value)
设置是否实例化
|
void |
setObjectFiltrateThreshold(double value) |
void |
setOutputFolder(String value)
设置生成缓存的路径。
|
void |
setOutputLayerNames(String[] value)
设置哪些普通图层对应的数据会生成缓存。
|
void |
setOutputSceneName(String value)
设置结果场景的名称,该场景名称会保存在 OutputWorkspaceConnectionInfo 对应的工作空间中。
|
void |
setOutputTerrainLayerNames(String[] value)
设置哪些地形图层对应的数据会生成缓存。
|
void |
setOutputWorkspaceConnectionInfo(WorkspaceConnectionInfo value)
设置结果工作空间的链接信息。
|
void |
setPassword(String value)
设置对生成的各个图层的缓存数据进行加密的密码。
|
void |
setPreCacheLayerNames(String[] value)
获取对场景中待生成预缓存的图层名称。
|
void |
setProcessThreadsCount(int value)
设置生成缓存的线程数。
|
void |
setS3MVersion(S3MVersion version)
设置S3M版本。
|
void |
setScene(Scene value)
设置用于生成缓存的场景对象。
|
void |
setStorageType(StorageType value)
设置缓存的存储方式,默认为原始模式。
|
void |
setTerrainCacheType(TerrainCacheType value) |
void |
setUpdateSize(int value)
设置在 Scene 场景渲染该缓存图层时,每次更新缓存的块数,具体值为该方法返回值的平方,即 UpdateSize * UpdateSize 的个数。
|
void |
setUserIDField(String userIDName)
设置对象ID字段
|
public SceneCacheBuilder()
public SceneCacheBuilder(Scene scene, String outputFolder)
通过该构造函数,进行生成缓存基本信息的设置,其他设置参数选择默认值。该构造函数生成的缓存对象的 getOutputSceneName()
方法的返回值与 scene 的名称相同。
scene
- 要生成缓存的场景。outputFolder
- 生成缓存的路径。public boolean build()
UnsupportedOperationException
- 如果 Scene 与 OutputFolder 设置不正确时。@Deprecated public static boolean buildOfflinePackage(String workspacePath, String sceneName)
public Scene getScene()
public void setScene(Scene value)
value
- 用于生成缓存的场景对象。public StorageType getStorageType()
StorageType.Compact
,即紧凑模式。public void setStorageType(StorageType value)
value
- 缓存的存储方式。public int getUpdateSize()
该字段值越大,则场景元素越不容易被过滤掉,但同时也会消耗更多的硬件资源,建议用户根据自身机器配置来选择该字段值的大小。对于已经生成的缓存文件,用户可以在缓存配置文件(*.scv)中自行修改LevelWidth的值,以配合当前硬件实现较流畅的视觉体验。
public void setUpdateSize(int value)
该字段值越大,则场景元素越不容易被过滤掉,但同时也会消耗更多的硬件资源,建议用户根据自身机器配置来选择该字段值的大小。对于已经生成的缓存文件,用户可以在缓存配置文件(*.scv)中自行修改LevelWidth的值,以配合当前硬件实现较流畅的视觉体验。
value
- 在 Scene 场景渲染该缓存图层时,每次更新缓存的块数。public CacheImageSize getImageSize()
CacheImageSize.SIZE256
,即:256*256。public void setImageSize(CacheImageSize value)
value
- 缓存图片的大小。public String getOutputFolder()
public void setOutputFolder(String value)
value
- 生成缓存的路径。public WorkspaceConnectionInfo getOutputWorkspaceConnectionInfo()
public void setOutputWorkspaceConnectionInfo(WorkspaceConnectionInfo value)
当使用默认的方式 null 时,将在 OutputFolder 目录下,生成一个 SMWU
类型的的工作空间文件,文件名称与输入的 Scene 的名称相同。
value
- 结果工作空间的链接信息。public String getOutputSceneName()
public void setOutputSceneName(String value)
value
- 结果场景的名称。public Rectangle2D getBounds()
注意:在6R(2012) SP2 版本中,不推荐用户使用本方法。
public void setBounds(Rectangle2D value)
注意:在6R(2012) SP2 版本中,不推荐用户使用本方法。
value
- 场景图层中需要生成缓存数据的范围。public void dispose()
public String getPassword()
public void setPassword(String value)
注意:当 StorageType.Original 时,该方法是无效的;当 StorageType.Compact 时,该方法才有效。
value
- 对生成的各个图层的缓存数据进行加密的密码。public void setOutputLayerNames(String[] value)
value
- 对应的数据会生成缓存的图层名称的集合。public void setOutputTerrainLayerNames(String[] value)
value
- 对应的数据会生成缓存的地形图层名称的集合。public String[] getOutputLayerNames()
public String[] getOutputTerrainLayerNames()
public void addSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收进度条事件的监听器。public void removeSteppedListener(SteppedListener l)
SteppedEvent
)的监听器。l
- 一个用于接收进度条事件的监听器。public boolean isBoundsCeiled()
setBounds()
方法设置的范围)进行规整处理。
在手动生成局部缓存,然后结合 iServer 动态发布时,需要通过该方法设置为 true,来对手动生成的缓存范围进行规整,以避免根据 setBounds()
方法设置的范围生成的缓存图片在边界上出现部分白图现象。
对生成缓存数据的地理范围进行规整处理指的是,计算该范围所对应行列缓存图片的外边框,该边框与三维缓存图片分块划分的边线一致,并以此边框范围来生成缓存。
public void setIsCalNormal(boolean value)
value
- 是否重新计算法线public boolean getIsCalNormal()
public void setIsInstance(boolean value)
public boolean getIsInstance()
public void setBoundsCeiled(boolean value)
setBounds()
方法设置的范围)进行规整处理。
在手动生成局部缓存,然后结合 iServer 动态发布时,需要通过该方法设置为 true,来对手动生成的缓存范围进行规整,以避免根据 setBounds()
方法设置的范围生成的缓存图片在边界上出现部分白图现象。
对生成缓存数据的地理范围进行规整处理指的是,计算该范围所对应行列缓存图片的外边框,该边框与三维缓存图片分块划分的边线一致,并以此边框范围来生成缓存。
value
- 一个布尔值,表示在生成缓存时是否对场景图层中指定的生成缓存数据的范围进行规整处理。public CompressedTextureType getCompressedTextureType()
CompressedTextureType
枚举类的说明。CompressedTextureType.DDS
。public void setCompressedTextureType(CompressedTextureType value)
CompressedTextureType
枚举类的说明。public String[] getPreCacheLayerNames()
public void setPreCacheLayerNames(String[] value)
value
- 待生成预缓存的多个图层名称。public void setTerrainCacheType(TerrainCacheType value)
public TerrainCacheType getTerrainCacheType()
public void setProcessThreadsCount(int value)
value
- 待设置线程数。public int getProcessThreadsCount()
public void setObjectFiltrateThreshold(double value)
public double getObjectFiltrateThreshold()
public String getUserIDField()
public void setUserIDField(String userIDName)
public void setS3MVersion(S3MVersion version)
public AttributeExtentType getAttributeExtentType()
public void setAttributeExtentType(AttributeExtentType type)
public static byte[] extractAttributeIDs(String attributeFile, String password)
attributeFile
- 属性文件password
- 密码public static boolean appendAttributes(String attributeFile, byte[] attributeData, String password)
attributeFile
- 属性文件attributeData
- 属性数据password
- 密码public boolean isCombineRepeatTextures()
public void setCombineRepeatTextures(boolean isCombineRepeatTextures)
isCombineRepeatTextures
- 是否重复贴图打组public boolean isBuildNormalMap()
public void setBuildNormalMap(boolean isBuildNormalMap)
isBuildNormalMap
- 设置是否生成法线图public void setCalculateTangents(boolean value)
value
- public boolean isCalculateTangents()
public static void setIsDisposable(com.supermap.data.InternalHandleDisposable obj, boolean disposable)
Copyright © 2021–2024 SuperMap. All rights reserved.