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