com.supermap.data.processing
类 CacheBuilderTIN

java.lang.Object
  继承者 com.supermap.data.processing.CacheBuilderTIN

public class CacheBuilderTIN
extends java.lang.Object

地形缓存生成类,该类主要用于为地形数据生成供三维场景发布使用的地形缓存,其配置文件为 *.sct格式。


构造方法摘要
CacheBuilderTIN()
          构造一个新的CacheBuilderTin对象。
 
方法摘要
 void addSteppedListener(SteppedListener l)
          添加一个用于接收进度条事件(SteppedEvent)的监听器。
 boolean append(java.lang.String srcTIN, java.lang.String targetTIN)
          将TIN缓存追加到目标缓存,合并成一整块数据。
 boolean buildAvailableBoundsInfo(java.lang.String strInConfigPathName)
          创建有效区域信息。
 boolean buildNormalMap(DatasetGrid datasetGrid, java.lang.String strOutConfigPathName, java.lang.String strInConfigPathName, int normalSize)
          根据对应的栅格数据集,对TIN地形缓存生成法线图。
 boolean buildOSGB()
          根据栅格数据集和影像数据集生成OSGB格式的地形缓存。
 boolean buildSpatialIndex(java.lang.String strInConfigPathName)
          创建地形索引,会对每个TIN缓存切片文件生成对应的ids索引文件。
 boolean buildTIN()
          根据栅格数据集创建地形缓存。
 boolean buildWaterMask(java.lang.String sctFile, java.lang.String sci3dFile, java.lang.String sctOutFolder, java.lang.String sctOutCacheName)
          生成海洋扩展。
static boolean combineTerrainTIN(java.lang.String strOut, java.lang.String strCacheName, java.lang.String strTinA, java.lang.String strTinB)
          将两个地形合并生成一个新的地形。
static boolean combineTerrainTINConfigFile(java.lang.String strOutConfigPathName, java.util.ArrayList<java.lang.String> arrInPathNames, boolean HasCacheFile)
          生成发布地形合并服务的配置文件,支持TIN发布配置文件时是否生成相交区域的预缓存。
static byte[] combineTerrainTINTiles(TerrainCacheInfo info, int level, int row, int col)
          请求合并两个地形文件。
static boolean compactCacheFiles(java.lang.String strInCacheSCT, java.lang.String strOutCachePath, java.lang.String strCacheFileName)
          已过时。 
static boolean convertTinToOsgb(java.lang.String strOut, java.lang.String strCacheName, java.lang.String strSct, java.util.ArrayList<Dataset> arrImage)
          将地形缓存转换为OSGB格式缓存,可实现叠加多个影像。
 void dispose()
          释放对象所占用资源 。
 boolean generateConfigFile()
          生成配置文件。
 boolean generateLeafTile(TINTile tile)
          生成精细层地形块缓存。
 boolean generateParentTile(TINTile tile)
          生成LOD层地形块缓存。
 int getBeginLevel()
          获取生成地形缓存的开始层数。
 Rectangle2D getBounds()
          获取地形缓存的生成范围。
 java.lang.String getCacheName()
          获取输出缓存的名称。
 GeoRegion getClipRegion()
          获取地形缓存的裁剪区域。
 DatasetGrid getDataset()
          获取用于创建地形缓存的栅格数据集。
 Dataset getDatasetImage()
          获取用于创建地形缓存的影像数据集。
 DatasetVector getDatasetPoint()
          获取矢量数据,支持矢量点或等高线生成地形(TIN)。
 double getDealtOfEndLevel()
          获取精细层指定误差。
 int[] getDefaultLevel(double resolution)
          获取默认的起始和终止层号。
 int getEndLevel()
          获取生成地形缓存的结束层数。
 int getNormalSize()
          获取法线图的大小 。
 java.lang.String getOutputFolder()
          获取输出缓存文件的全路径。
 int getProcessThreadsCount()
          获取生成缓存的线程数。
 StorageType getStoreType()
          获取生成缓存的存储类型。
 TilingSchemeOption getTilingScheme()
          获取生成地形缓存的切分方式。
 boolean isAccuracy()
          是否保留精度
 boolean isBuildNormalMap()
          获取是否构建法线图 。
 boolean isCompressed()
          获取是否生成压缩格式。
 boolean isEncodeDXT()
          获取是否进行DXT纹理压缩。
 boolean limitTerrainTIN(java.lang.String strOutConfigPathName, java.lang.String strInConfigPathName, java.lang.Double dMinHigh, java.lang.Double dMaxHigh)
          根据高度范围筛选TIN有效值,可实现修改高度范围内的地形。
 boolean openFile(java.lang.String tifPath)
          设置TIF地形文件,支持TIF文件直接生成TIN
 void removeSteppedListener(SteppedListener l)
          移除一个用于接收进度条事件(SteppedEvent)的监听器。
 void setBeginLevel(int beginLevel)
          设置生成地形缓存的开始层数。
 void setBounds(Rectangle2D value)
          设置地形缓存的生成范围。
 void setBuildNormalMap(boolean value)
          设置是否构建法线图 。
 void setCacheName(java.lang.String cacheName)
          设置输出缓存的名称。
 void setClipRegion(GeoRegion value)
          设置地形缓存的裁剪区域。
 void setCompressed(boolean value)
          设置是否生成压缩格式。
 void setDataset(DatasetGrid dataset)
          获取或设置用于创建地形缓存的栅格数据集。
 void setDatasetImage(Dataset datasetImage)
          设置用于创建地形缓存的影像数据集。
 void setDatasetPoint(DatasetVector value)
          设置矢量数据,支持矢量点或等高线生成地形(TIN)。
 void setDealtOfEndLevel(double value)
          设置精细层指定误差。
 void setEncodeDXT(boolean value)
          设置是否进行DXT纹理压缩。
 void setEndLevel(int value)
          设置生成地形缓存的结束层数。
 boolean setIsAccuracy()
          设置是否保留精度
 void setIsAccuracy(boolean isAccuracy)
          设置是否保留精度 是否保留精度影响结束层和精细层误差,必须要先设置 更改后需要重新设置数据集,仅支持栅格生成TIN地形
 void setNormalSize(int value)
          设置法线图的大小 。
 void setOutputFolder(java.lang.String outputFolder)
          设置输出缓存文件的全路径。
 void setProcessThreadsCount(int nCount)
          设置生成缓存的线程数。
 void setStoreType(StorageType value)
          设置生成缓存的存储类型。
 void setTilingScheme(TilingSchemeOption value)
          设置生成地形缓存的切分方式。
 
从类 java.lang.Object 继承的方法
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

构造方法详细信息

CacheBuilderTIN

public CacheBuilderTIN()
构造一个新的CacheBuilderTin对象。

方法详细信息

dispose

public void dispose()
释放对象所占用资源 。


getDataset

public DatasetGrid getDataset()
获取用于创建地形缓存的栅格数据集。

返回:
栅格数据集。

setDataset

public void setDataset(DatasetGrid dataset)
获取或设置用于创建地形缓存的栅格数据集。

参数:
dataset - 指定的栅格数据集。

getDatasetImage

public Dataset getDatasetImage()
获取用于创建地形缓存的影像数据集。

返回:
影像数据集。

setDatasetImage

public void setDatasetImage(Dataset datasetImage)
设置用于创建地形缓存的影像数据集。

参数:
datasetImage - 指定的影像数据集。

getOutputFolder

public java.lang.String getOutputFolder()
获取输出缓存文件的全路径。

返回:
缓存文件的全路径。

setOutputFolder

public void setOutputFolder(java.lang.String outputFolder)
设置输出缓存文件的全路径。

参数:
outputFolder - 指定的缓存文件的全路径。

getCacheName

public java.lang.String getCacheName()
获取输出缓存的名称。

返回:
输出缓存的名称。

setCacheName

public void setCacheName(java.lang.String cacheName)
设置输出缓存的名称。

参数:
cacheName - 指定的输出缓存的名称。

getBeginLevel

public int getBeginLevel()
获取生成地形缓存的开始层数。

返回:
开始层数。

setBeginLevel

public void setBeginLevel(int beginLevel)
设置生成地形缓存的开始层数。

参数:
beginLevel - 指定的开始层数。

getEndLevel

public int getEndLevel()
获取生成地形缓存的结束层数。

返回:
结束层数。

setEndLevel

public void setEndLevel(int value)
设置生成地形缓存的结束层数。

参数:
value - 指定的结束层数。

isEncodeDXT

public boolean isEncodeDXT()
获取是否进行DXT纹理压缩。

返回:
是否进行DXT纹理压缩。

setEncodeDXT

public void setEncodeDXT(boolean value)
设置是否进行DXT纹理压缩。

参数:
value - 指定是否进行DXT纹理压缩。

getProcessThreadsCount

public int getProcessThreadsCount()
获取生成缓存的线程数。

返回:
线程数。

setProcessThreadsCount

public void setProcessThreadsCount(int nCount)
设置生成缓存的线程数。

参数:
nCount - 指定的线程数。

getTilingScheme

public TilingSchemeOption getTilingScheme()
获取生成地形缓存的切分方式。

返回:
切分方式。

setTilingScheme

public void setTilingScheme(TilingSchemeOption value)
设置生成地形缓存的切分方式。

参数:
value - 指定的切分方式。

getBounds

public Rectangle2D getBounds()
获取地形缓存的生成范围。

返回:
生成范围。

setBounds

public void setBounds(Rectangle2D value)
设置地形缓存的生成范围。

参数:
value - 指定的生成范围。

getClipRegion

public GeoRegion getClipRegion()
获取地形缓存的裁剪区域。

返回:
裁剪区域。

setClipRegion

public void setClipRegion(GeoRegion value)
设置地形缓存的裁剪区域。

参数:
value - 指定的裁剪区域。

isBuildNormalMap

public boolean isBuildNormalMap()
获取是否构建法线图 。

返回:
是否构建法线图 。

setBuildNormalMap

public void setBuildNormalMap(boolean value)
设置是否构建法线图 。

参数:
value - 指定是否构建法线图 。

isCompressed

public boolean isCompressed()
获取是否生成压缩格式。

返回:
是否生成压缩格式。

setCompressed

public void setCompressed(boolean value)
设置是否生成压缩格式。

参数:
value - 指定是否生成压缩格式。

getNormalSize

public int getNormalSize()
获取法线图的大小 。

返回:
法线图的大小 。

setNormalSize

public void setNormalSize(int value)
设置法线图的大小 。

参数:
value - 指定的法线图的大小 。

getStoreType

public StorageType getStoreType()
获取生成缓存的存储类型。

返回:
存储类型。

setStoreType

public void setStoreType(StorageType value)
设置生成缓存的存储类型。

参数:
value - 指定的存储类型。

getDealtOfEndLevel

public double getDealtOfEndLevel()
获取精细层指定误差。

返回:
精细层指定误差。

setDealtOfEndLevel

public void setDealtOfEndLevel(double value)
设置精细层指定误差。

参数:
value - 指定的精细层指定误差。

buildTIN

public boolean buildTIN()
根据栅格数据集创建地形缓存。

返回:
创建缓存成功返回 true,否则返回 false。

buildOSGB

public boolean buildOSGB()
根据栅格数据集和影像数据集生成OSGB格式的地形缓存。

返回:
创建缓存成功返回 true,否则返回 false。

buildWaterMask

public boolean buildWaterMask(java.lang.String sctFile,
                              java.lang.String sci3dFile,
                              java.lang.String sctOutFolder,
                              java.lang.String sctOutCacheName)
生成海洋扩展。 用矢量面构建地图,黑色代表陆地,白色代表海洋,然后生成全球剖分的三维缓存。 三维缓存范围要和Tin地形的范围一致。

参数:
sctFile - 指定的TIN地形配置文件(*.sct)。
sci3dFile - 指定的影像缓存配置文件(*.sci3d)。
sctOutFolder - 指定新生成缓存的保存路径。
sctOutCacheName - 指定新生成缓存的名称。
返回:
true表示生成海洋扩展成功,false表示生成海洋扩展失败。

combineTerrainTIN

public static boolean combineTerrainTIN(java.lang.String strOut,
                                        java.lang.String strCacheName,
                                        java.lang.String strTinA,
                                        java.lang.String strTinB)
将两个地形合并生成一个新的地形。

参数:
strOut - 合并后新地形的目录。
strCacheName - 指定新地形缓存的名称。
strTinA - 待合并的地形A,其中strTerrainA的优先级高于strTerrainB。
strTinB - 待合并的地形B。
返回:
合并成功返回true,否则返回 false。

convertTinToOsgb

public static boolean convertTinToOsgb(java.lang.String strOut,
                                       java.lang.String strCacheName,
                                       java.lang.String strSct,
                                       java.util.ArrayList<Dataset> arrImage)
将地形缓存转换为OSGB格式缓存,可实现叠加多个影像。

参数:
strOut - 转换后新地形的目录。
strCacheName - 指定转换后地形缓存的名称。
strSct - 待转换的地形缓存。
arrImage - 指定待叠加的影像列表。
返回:
转换成功返回true,否则返回 false。

compactCacheFiles

@Deprecated
public static boolean compactCacheFiles(java.lang.String strInCacheSCT,
                                                   java.lang.String strOutCachePath,
                                                   java.lang.String strCacheFileName)
已过时。 

TIN缓存转TIN混合大文件缓存,提升加载及浏览性能。

参数:
strInCacheSCT - 指定的TIN地形配置文件(*.sct)。
strOutCachePath - 指定生成TIN混合大文件缓存的保存路径。
strCacheFileName - 指定的缓存文件名称。
返回:
生成成功返回true,失败返回false。

addSteppedListener

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

参数:
l - 一个用于接收进度条事件的监听器。

removeSteppedListener

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

参数:
l - 一个用于接收进度条事件的监听器。

combineTerrainTINConfigFile

public static boolean combineTerrainTINConfigFile(java.lang.String strOutConfigPathName,
                                                  java.util.ArrayList<java.lang.String> arrInPathNames,
                                                  boolean HasCacheFile)
生成发布地形合并服务的配置文件,支持TIN发布配置文件时是否生成相交区域的预缓存。

参数:
strOutConfigPathName - 动态合并生成的配置文件全路径,包含配置文件。
arrInPathNames - 进行动态合并的TIN地形缓存集合,指定配置文件的全路径。根据Tin地形的精细程度,添加到列表时,更精细的先Add。
HasCacheFile - 是否生成相交区域的缓存。
返回:
合并TIN配置文件成功后,如果“HasCacheFile”为true,则在目标文件下生成相交区域的缓存;如果“HasCacheFile”为false,则只生成合并后的配置文件。

combineTerrainTINTiles

public static byte[] combineTerrainTINTiles(TerrainCacheInfo info,
                                            int level,
                                            int row,
                                            int col)
请求合并两个地形文件。

参数:
info - 请求合并的地形缓存信息
level - 层号
row - 行号
col - 列号
返回:

getDefaultLevel

public int[] getDefaultLevel(double resolution)
获取默认的起始和终止层号。

参数:
resolution - 分辨率
返回:
第0个值表示终止层号,第1个值表示起始层号。

generateLeafTile

public boolean generateLeafTile(TINTile tile)
生成精细层地形块缓存。

参数:
tile - 地形块
返回:
是否生成成功。

generateParentTile

public boolean generateParentTile(TINTile tile)
生成LOD层地形块缓存。

参数:
tile - 地形块
返回:
是否生成成功。

generateConfigFile

public boolean generateConfigFile()
生成配置文件。

返回:
是否生成成功

buildAvailableBoundsInfo

public boolean buildAvailableBoundsInfo(java.lang.String strInConfigPathName)
创建有效区域信息。生成TIN地形缓存或合并TIN地形时,可以同时在sct配置文件里生成有效范围的信息。

参数:
strInConfigPathName - TIN地形缓存sct配置文件全路径。
返回:
是否创建成功

buildNormalMap

public boolean buildNormalMap(DatasetGrid datasetGrid,
                              java.lang.String strOutConfigPathName,
                              java.lang.String strInConfigPathName,
                              int normalSize)
根据对应的栅格数据集,对TIN地形缓存生成法线图。

参数:
datasetGrid - 栅格数据集。
strOutConfigPathName - 生成了法线的TIN地形缓存输出路径。
strInConfigPathName - 需要生成法线的TIN地形缓存sct全路径。
normalSize - 块大小,可设置32、64或128。
返回:
成功后的TIN地形缓存带有法线图。

limitTerrainTIN

public boolean limitTerrainTIN(java.lang.String strOutConfigPathName,
                               java.lang.String strInConfigPathName,
                               java.lang.Double dMinHigh,
                               java.lang.Double dMaxHigh)
根据高度范围筛选TIN有效值,可实现修改高度范围内的地形。 高度范围以外的数据,高程值都改成0.0。当前主要是用于有效地形内有无效值的数据,将无效值处理成0.0;便于TIN地形合并后不会出现尖刺问题。

参数:
strOutConfigPathName - 修改后,输出的TIN地形。
strInConfigPathName - 待筛选的TIN地形。
dMinHigh - 指定一个最小高度。
dMaxHigh - 指定一个最大高度。
返回:
成功后,在指定目录下生成修改后的TIN地形数据。

buildSpatialIndex

public boolean buildSpatialIndex(java.lang.String strInConfigPathName)
创建地形索引,会对每个TIN缓存切片文件生成对应的ids索引文件。

参数:
strInConfigPathName - TIN地形缓存sct配置文件全路径。
返回:
创建索引成功后,每个TIN缓存切片文件会生成对应的ids索引文件。

getDatasetPoint

public DatasetVector getDatasetPoint()
获取矢量数据,支持矢量点或等高线生成地形(TIN)。如果使用二维点或等高线构建地形(TIN),则需要指定高程特征值作为地形高程,如果使用三维点或等高线构建地形(TIN),默认会使用三维点或等高线的Z值作为地形高程,也可以指定高程特征值。


setDatasetPoint

public void setDatasetPoint(DatasetVector value)
设置矢量数据,支持矢量点或等高线生成地形(TIN)。如果使用二维点或等高线构建地形(TIN),则需要指定高程特征值作为地形高程,如果使用三维点或等高线构建地形(TIN),默认会使用三维点或等高线的Z值作为地形高程,也可以指定高程特征值。


append

public boolean append(java.lang.String srcTIN,
                      java.lang.String targetTIN)
将TIN缓存追加到目标缓存,合并成一整块数据。

参数:
srcTIN - 需要追加的TIN
targetTIN - 追加之后的TIN

isAccuracy

public boolean isAccuracy()
是否保留精度


setIsAccuracy

public boolean setIsAccuracy()
设置是否保留精度


setIsAccuracy

public void setIsAccuracy(boolean isAccuracy)
设置是否保留精度 是否保留精度影响结束层和精细层误差,必须要先设置 更改后需要重新设置数据集,仅支持栅格生成TIN地形


openFile

public boolean openFile(java.lang.String tifPath)
设置TIF地形文件,支持TIF文件直接生成TIN