类 OSGBCacheBuilder
- java.lang.Object
-
- com.supermap.data.InternalHandle
-
- com.supermap.data.InternalHandleDisposable
-
- com.supermap.data.processing.OSGBCacheBuilder
-
- 所有已实现的接口:
- IDisposable
public class OSGBCacheBuilder extends com.supermap.data.InternalHandleDisposable
三维切片缓存(OSGB/S3M)生成类,通过该类可将模型数据集或CAD数据集生成OSGB/S3M格式的三维切片缓存文件。
-
-
构造器概要
构造器 构造器和说明 OSGBCacheBuilder()
构造一个新的OSGBCacheBuilder对象。OSGBCacheBuilder(DatasetVector dataset, String outputFolder, String name)
根据指定的DatasetVector对象、输出目录及缓存名称,构造一个新的OSGBCacheBuilder对象。
-
方法概要
所有方法 静态方法 实例方法 具体方法 已过时的方法 限定符和类型 方法和说明 void
addSteppedListener(SteppedListener l)
添加一个用于接收进度条事件(SteppedEvent
)的监听器。boolean
append(UpdateType updateType, boolean bCreateConfigFile)
模型缓存局部更新。static boolean
b3dmFile2MongoDB(String scpFileName, TileStorageConnection mongoConn)
3DTiles缓存文件导入MongoDB数据库 。boolean
build()
生成三维切片缓存(OSGB/S3M)。boolean
buildTile(HashMap<String,int[]> geoModelIDs, boolean bCombineModels)
模型数据集对应ID模型生成切片。boolean
buildTiles()
多进程环境下生成缓存(不生成配置文件).boolean
buildWithoutConfigFile()
生成三维切片缓存(OSGB/S3M)。boolean
buildWithTileClip()
已过时。static boolean
combineOSGBFile(String outputFileName, ArrayList<String> fileNames, double dPercent, double dDistance, float fErrorValue)
合并OSGB文件,在指定OSGB模型的基础上,合并一层粗糙层。static boolean
combineRootNodes(String[] inScpFilePaths, String saveSCPFullPath, int combineLevel, HashMap<Integer,Double> simplifyPercent, int threadCount)
多个模型缓存合并根节点(合并图层)static boolean
combineRootNodes(String inScpFilePath, String saveSCPName, int combineLevel, HashMap<Integer,Double> simplifyPercent, int threadCount)
已过时。static boolean
combineRootNodes(String inScpFilePath, String saveSCPName, int combineLevel, HashMap<Integer,Double> simplifyPercent, int threadCount, float objectFiltrateThreshold)
模型缓存合并根节点(不合并图层)static boolean
compressTextureAndGeometry(String scpPath, String outputFolder, CompressedTextureType compressedTextureType, VertexOptimizationType vertexOptimizationType, int threadCount)
精模缓存纹理和几何再压缩void
dispose()
释放OSGBCacheBuilder对象所占的资源。static boolean
generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, boolean bNEU, String[] fileNames)
生成scp索引文件,此方式支持NEU(测站地方空间直角)坐标系。static boolean
generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, CoordSysTransParameter coordSysTransParam, CoordSysTransMethod coordSysTransMethod, ArrayList<String> fileNames)
生成scp索引文件。static boolean
generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, CoordSysTransParameter coordSysTransParam, CoordSysTransMethod coordSysTransMethod, boolean bNEU, ArrayList<String> fileNames)
生成scp索引文件。static boolean
generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, PrjCoordSys valueDes, CoordSysTransParameter coordSysTransParam, CoordSysTransMethod coordSysTransMethod, ArrayList<String> fileNames)
生成scp索引文件。static boolean
generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, String[] fileNames)
static boolean
generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, String[] fileNames, TileStorageConnection mongoConn)
生成scp索引文件。String
getAssociateMaterialFile()
获取生成S3M缓存关联材质文件路径。AttributeExtentType
getAttributeExtentType()
获取属性存储类型,包括s3md和attribute两种类型。Rectangle2D
getBounds()
获取缓存地理范围。String
getCacheName()
获取缓存名称,不包含路径及后缀。String
getCategoryField()
获取特征值字段CompressedTextureType
getCompressedTextureType()
获取纹理压缩格式DatasetVector
getDataset()
获取生成三维切片缓存的数据集对象。ArrayList<DatasetSetting>
getDatasetSettingArray()
获取批量生成三维切片缓存,将多个模型数据集生成到一个缓存文件中。PrjCoordSysType
getDynamicPrjCoordSysType()
获取动态投影信息。static ArrayList<TextureData>
getExtrudeRegionTexFromVoxelGrid(Geometry geometry, double height, DatasetVolume volume, ColorDictionary table)
支持根据矢量面及拉伸高度从对应体元栅格中提取纹理,并支持设置颜色表。String[]
getFieldsNames()
生成缓存时,获取保留指定属性字段。CacheFileType
getFileType()
获取生成缓存时的数据格式GlobeType
getGlobeType()
获取球体类型boolean
getIsCalNormal()
缓存是否重新计算法线。boolean
getIsDistributed()
boolean
getIsInstance()
是否实例化。CacheLimitTextureSize
getLimitTextureSize()
获取纹理大小限制int
getLODSize()
获取LOD层级数量。MaterialType
getMaterialType()
获取材质类型。int
getMipmapCount()
获取纹理Mipmap数量。MultiTextureMode
getMultiTextureMode()
获取模型生成缓存时,纹理设置生成单重纹理或者多重纹理。double
getObjectFiltrateThreshold()
获取粗糙层对象过滤阀值。String
getOutputFolder()
获取输出路径。double
getOutputScale()
获取缓存的比例尺大小。Point3D
getPosition()
获取插入点的位置。int
getProcessThreadsCount()
获取生成缓存的线程数。ProcessFileType
getProcessType()
获取生成缓存时的文件处理类型。Recordset
getRecordset()
获取缓存的记录集。SecondTextureType
getSecondTextureType()
获取第二重纹理类型double
getSideTilingU()
获取侧面U值double
getSideTilingV()
获取侧面V值 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用HashMap<Integer,Double>
getSimplifyPercent()
获取LOD层网格简化率。StorageType
getStorageType()
获取瓦片的存储类型。TextureProcessingType
getTextureProcessingType()
获取纹理处理方式boolean
getTextureSharing()
获取纹理是否公用。ArrayList<Rectangle2D>
getTileBounds()
获取每个生成缓存切片的Bounds。double
getTileHeight()
获取三维切片缓存的瓦片的高度.ArrayList<TileInfos>
getTileInfosArray()
获取每个生成缓存切片的信息。PyramidSplitType
getTilePyramidSplitType()
获取单个切片的金字塔剖分类型。double
getTileWidth()
获取OSGB缓存切片大小。ArrayList<UpdateObjectsInfo>
getUpdateObjectsInfoArray()
获取模型局部更新的ID值集合。String
getUserIDField()
获取对象ID字段VertexOptimizationType
getVertexOptimizationType()
获取顶点优化方式VertexWeightMode
getVertexWeightMode()
获取顶点权重模式boolean
isCalTangentAndBinormal()
获取获是否重新计算切线、副切线boolean
isCalTilingTextureCoords()
是否按box映射再生成一重纹理boolean
isCombineRepeatTextures()
得到重复贴图打组boolean
isHasOutLine()
是否有边框线boolean
isLogEnable()
获取是否输出错误日志.boolean
isRemoveNormal()
获取是否移除原始数据法线。static boolean
osgbFile2MongoDB(String scpFileName, TileStorageConnection mongoConn, String scpMongoFile)
OSGB缓存文件导入MongoDB数据库 。static boolean
osgbFile2MongoDB(String scpFileName, TileStorageConnection mongoConn, String scpMongoFile, TextureCompressType textureCompressType)
OSGB缓存文件导入MongoDB数据库 。static boolean
rebuildS3MTiles(String scpFilePath, String associateMaterialFile, String outputPath, String cacheName)
S3M缓存重切片。void
removeSteppedListener(SteppedListener l)
移除一个用于接收进度条事件(SteppedEvent
)的监听器。void
setAssociateMaterialFile(String assocaiateFile)
设置生成S3M缓存关联材质文件路径。void
setAttributeExtentType(AttributeExtentType type)
设置属性存储类型,包括s3md和attribute两种类型。void
setBounds(Rectangle2D value)
设置缓存地理范围。void
setCacheName(String name)
设置缓存名称,不包含路径及后缀。void
setCacheVersion(S3MVersion version)
设置S3M版本。void
setCalTangentAndBinormal(boolean isCalTangentAndBinormal)
设置是否重新计算切线、副切线void
setCalTilingTextureCoords(boolean isCalTilingTextureCoords)
设置是否按box映射再生成一重纹理 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用void
setCategoryField(String categoryFieldName)
设置特征值字段void
setCombineRepeatTextures(boolean value)
设置重复贴图打组void
setCompressedTextureType(CompressedTextureType value)
设置纹理压缩格式void
setConnectionInfo(TileStorageConnection connInfo)
设置生成时连接mongo数据库的信息。void
setDataset(DatasetVector value)
设置生成三维切片缓存的数据集对象。void
setDatasetArray(DatasetVector[] arrDataset)
设置多个数据集生成一个缓存文件。void
setDatasetSettingArray(ArrayList<DatasetSetting> datasetSettings)
设置批量生成三维切片缓存,将多个模型数据集生成到一个缓存文件中。void
setDynamicPrjCoordSysType(PrjCoordSysType prjType)
设置动态投影信息。void
setEncryptCoordinatesSetting(EncryptCoordinatesSetting encryptCoordinatesSetting)
设置坐标加密参数。void
setFieldsNames(String[] fieldsNames)
生成缓存时,设置保留指定属性字段。void
setFileType(CacheFileType fileType)
设置生成缓存时的数据格式void
setGlobeType(GlobeType globeType)
设置球体类型void
setHasOutLine(boolean value)
设置是否有边框线void
setIsCalNormal(boolean value)
设置缓存是否重新计算法线。static void
setIsDisposable(com.supermap.data.InternalHandleDisposable obj, boolean disposable)
void
setIsDistributed(boolean isDistributed)
void
setIsInstance(boolean bInstance)
设置是否实例化。void
setLimitTextureSize(CacheLimitTextureSize value)
设置纹理大小限制void
setLODSize(int value)
设置LOD层级数量。void
setLogEnable(boolean isErrorLogOut)
设置是否输出错误日志.void
setMaterialType(MaterialType materialType)
设置材质类型。void
setMipmapCount(int value)
设置纹理Mipmap数量。void
setMultiTextureMode(MultiTextureMode mode)
设置模型生成缓存时,纹理设置生成单重纹理或者多重纹理。void
setObjectFiltrateThreshold(double dbValue)
设置粗糙层对象过滤阀值。void
setOutFilePassword(String password)
设置三维瓦片密码,生成模型瓦片时,仅瓦片的文件类型为S3MBlock时有效。void
setOutputFolder(String name)
设置输出路径。void
setOutputScale(double value)
设置缓存的比例尺大小。void
setPosition(Point3D value)
设置插入点的位置。void
setProcessThreadsCount(int value)
设置生成缓存的线程数。void
setProcessType(ProcessFileType value)
设置生成缓存时的文件处理类型。void
setRecordset(Recordset value)
设置缓存的记录集。void
setRemoveNormal(boolean value)
设置是否移除原始数据法线。void
setSecondTextureType(SecondTextureType secondTextureType)
设置第二重纹理类型void
setSideTilingU(double sideTilingU)
设置侧面U值 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用void
setSideTilingV(double sideTilingV)
设置侧面V值void
setSimplifyPercent(Map<Integer,Double> mapPercent)
设置LOD层网格简化率。void
setStorageType(StorageType storageType)
设置瓦片的存储类型。void
setTextureProcessingType(TextureProcessingType processingType)
设置纹理处理方式void
setTextureSharing(boolean bShare)
设置纹理是否公用。void
setTileHeight(double setTileHeight)
设置三维切片缓存的瓦片高度,与金字塔剖分类型-八叉树一起使用.void
setTileInfos(ArrayList<TileInfos> infos)
设置每个三维瓦片的信息。void
setTileInfos(TileInfos value)
生成指定瓦片信息对应的切片void
setTilePyramidSplitType(PyramidSplitType value)
设置单个切片的金字塔剖分类型。void
setTileWidth(double value)
设置OSGB瓦片大小。void
setTileWidth(Double value)
已过时。void
setUpdateObjectsInfoArray(ArrayList<UpdateObjectsInfo> updateObjectsInfos)
设置模型局部更新的ID值集合。void
setUserIDField(String userIDName)
设置对象ID字段void
setVertexOptimizationType(VertexOptimizationType vertexOptimizationType)
设置顶点优化方式void
setVertexWeightMode(VertexWeightMode modeType)
设置顶点权重模式boolean
toConfigAndIndexFile(String path)
将三维切片缓存的所有切片信息直接写入到配置文件中,并将属性字段索引写入索引文件。static boolean
upgradeS3MB(S3MVersion s3mVersion, String srcScpPath, String outputFolder)
已过时。static boolean
upgradeS3MB(S3MVersion s3mVersion, String srcScpPath, String outputFolder, UpgradeS3MParameters params)
已过时。static boolean
upgradeS3MB(String srcScpPath, String outputFolder, UpgradeS3MParameters params)
S3M版本升级(支持纹理压缩类型以及几何压缩类型) 支持将S3M1.0升级到S3M2.0或者S3M3.0,支持将S3M2.0升级到S3M3.0。static boolean
upgradeS3MB(TileStorageConnection inputConnection, TileStorageConnection outputConnection, UpgradeS3MParameters params)
对存入MongoDB内的三维瓦片进行S3M版本升级(支持纹理压缩类型以及几何压缩类型)。
-
-
-
构造器详细资料
-
OSGBCacheBuilder
public OSGBCacheBuilder()
构造一个新的OSGBCacheBuilder对象。
-
OSGBCacheBuilder
public OSGBCacheBuilder(DatasetVector dataset, String outputFolder, String name)
根据指定的DatasetVector对象、输出目录及缓存名称,构造一个新的OSGBCacheBuilder对象。- 参数:
dataset
- 指定的recordest对象。outputFolder
- 指定的输出路径。name
- 指定的缓存名称。
-
-
方法详细资料
-
getIsDistributed
public boolean getIsDistributed()
-
setIsDistributed
public void setIsDistributed(boolean isDistributed)
-
dispose
public void dispose()
释放OSGBCacheBuilder对象所占的资源。
-
getDataset
public DatasetVector getDataset()
获取生成三维切片缓存的数据集对象。- 返回:
- 生成三维切片缓存的数据集对象。
-
setDataset
public void setDataset(DatasetVector value)
设置生成三维切片缓存的数据集对象。- 参数:
value
- 生成三维切片缓存的数据集对象。
-
getBounds
public Rectangle2D getBounds()
获取缓存地理范围。- 返回:
- 缓存地理范围。
-
setBounds
public void setBounds(Rectangle2D value)
设置缓存地理范围。- 参数:
value
- 缓存地理范围。
-
getCacheName
public String getCacheName()
获取缓存名称,不包含路径及后缀。- 返回:
- 缓存名称。
-
setCacheName
public void setCacheName(String name)
设置缓存名称,不包含路径及后缀。- 参数:
name
- 缓存名称。
-
getDynamicPrjCoordSysType
public PrjCoordSysType getDynamicPrjCoordSysType()
获取动态投影信息。- 返回:
- 动态投影信息。
-
setDynamicPrjCoordSysType
public void setDynamicPrjCoordSysType(PrjCoordSysType prjType)
设置动态投影信息。- 参数:
prjType
- 动态投影信息。
-
setFileType
public void setFileType(CacheFileType fileType)
设置生成缓存时的数据格式- 参数:
fileType
- 生成缓存时的数据格式 S3MB or S3MBlock。
-
getFileType
public CacheFileType getFileType()
获取生成缓存时的数据格式- 返回:
- 生成缓存时的数据格式 S3MB or S3MBlock。
-
setIsCalNormal
public void setIsCalNormal(boolean value)
设置缓存是否重新计算法线。
-
getIsCalNormal
public boolean getIsCalNormal()
缓存是否重新计算法线。- 返回:
- osgb缓存是否重新计算法线。
-
getOutputFolder
public String getOutputFolder()
获取输出路径。
-
setOutputFolder
public void setOutputFolder(String name)
设置输出路径。- 参数:
name
-
-
getOutputScale
public double getOutputScale()
获取缓存的比例尺大小。- 返回:
- 缓存的比例尺大小。
-
setOutputScale
public void setOutputScale(double value)
设置缓存的比例尺大小。- 参数:
value
-
-
getProcessType
public ProcessFileType getProcessType()
获取生成缓存时的文件处理类型。- 返回:
- 生成缓存时的文件处理类型。
-
setProcessType
public void setProcessType(ProcessFileType value)
设置生成缓存时的文件处理类型。- 参数:
value
-
-
setRecordset
public void setRecordset(Recordset value)
设置缓存的记录集。- 参数:
value
- 缓存的记录集。
-
getRecordset
public Recordset getRecordset()
获取缓存的记录集。- 返回:
- 缓存的记录集。
-
setTileWidth
public void setTileWidth(double value)
设置OSGB瓦片大小。- 参数:
value
- OSGB瓦片大小。- 抛出:
IllegalStateException
- 当前对象已被释放。 =
-
setTileWidth
@Deprecated public void setTileWidth(Double value)
已过时。
-
getTileWidth
public double getTileWidth()
获取OSGB缓存切片大小。
-
setLODSize
public void setLODSize(int value)
设置LOD层级数量。- 参数:
value
- LOD层级数量。
-
getLODSize
public int getLODSize()
获取LOD层级数量。
-
setMipmapCount
public void setMipmapCount(int value)
设置纹理Mipmap数量。
-
getMipmapCount
public int getMipmapCount()
获取纹理Mipmap数量。- 返回:
- 纹理Mipmap数量。
-
setObjectFiltrateThreshold
public void setObjectFiltrateThreshold(double dbValue)
设置粗糙层对象过滤阀值。
-
getObjectFiltrateThreshold
public double getObjectFiltrateThreshold()
获取粗糙层对象过滤阀值。- 返回:
- 粗糙层对象过滤阀值。
-
setSimplifyPercent
public void setSimplifyPercent(Map<Integer,Double> mapPercent)
设置LOD层网格简化率。10i(2021)版本修改了简化率的实现。如设置3层LOD,第一层、第二层、第三层分别对应的75%、50%、25%。这里的75%表示简化至75%,即第一层LOD的模型是精细层模型简化了25%后的结果。
-
getSimplifyPercent
public HashMap<Integer,Double> getSimplifyPercent()
获取LOD层网格简化率。10i(2021)版本修改了简化率的实现。如设置3层LOD,第一层、第二层、第三层分别对应的75%、50%、25%。这里的75%表示简化至75%,即第一层LOD的模型是精细层模型简化了25%后的结果。
-
setTilePyramidSplitType
public void setTilePyramidSplitType(PyramidSplitType value)
设置单个切片的金字塔剖分类型。- 参数:
value
-
-
getTilePyramidSplitType
public PyramidSplitType getTilePyramidSplitType()
获取单个切片的金字塔剖分类型。- 返回:
- 单个切片的金字塔剖分类型。
-
getIsInstance
public boolean getIsInstance()
是否实例化。- 返回:
- 是否实例化。
-
setIsInstance
public void setIsInstance(boolean bInstance)
设置是否实例化。
-
setConnectionInfo
public void setConnectionInfo(TileStorageConnection connInfo)
设置生成时连接mongo数据库的信息。- 参数:
connInfo
- 生成时连接mongo数据库的信息。
-
setStorageType
public void setStorageType(StorageType storageType)
设置瓦片的存储类型。- 参数:
storageType
- 瓦片的存储类型。
-
getStorageType
public StorageType getStorageType()
获取瓦片的存储类型。- 返回:
- 瓦片的存储类型。
-
setTextureSharing
public void setTextureSharing(boolean bShare)
设置纹理是否公用。
-
getTextureSharing
public boolean getTextureSharing()
获取纹理是否公用。
-
getTileBounds
public ArrayList<Rectangle2D> getTileBounds()
获取每个生成缓存切片的Bounds。
-
setDatasetArray
public void setDatasetArray(DatasetVector[] arrDataset)
设置多个数据集生成一个缓存文件。- 参数:
arrDataset
- 数据集集合。
-
setOutFilePassword
public void setOutFilePassword(String password)
设置三维瓦片密码,生成模型瓦片时,仅瓦片的文件类型为S3MBlock时有效。- 参数:
password
- 密码。- 抛出:
IllegalStateException
- 当前对象已被释放。- 从以下版本开始:
- 11.2.0。
-
build
public boolean build()
生成三维切片缓存(OSGB/S3M)。- 返回:
- true表示生成缓存成功。
-
addSteppedListener
public void addSteppedListener(SteppedListener l)
添加一个用于接收进度条事件(SteppedEvent
)的监听器。- 参数:
l
- 一个用于接收进度条事件的监听器。
-
removeSteppedListener
public void removeSteppedListener(SteppedListener l)
移除一个用于接收进度条事件(SteppedEvent
)的监听器。- 参数:
l
- 一个用于接收进度条事件的监听器。
-
getProcessThreadsCount
public int getProcessThreadsCount()
获取生成缓存的线程数。
-
setProcessThreadsCount
public void setProcessThreadsCount(int value)
设置生成缓存的线程数。- 参数:
value
- 待设置线程数。
-
toConfigAndIndexFile
public boolean toConfigAndIndexFile(String path)
将三维切片缓存的所有切片信息直接写入到配置文件中,并将属性字段索引写入索引文件。使用该方法不生成缓存切片。使用场景:该方法用于客户端向服务器请求切片文件,服务器端实时切缓存时使用。
- 参数:
path
- 指定的保存配置文件的路径。- 返回:
- 一个布尔值,表示是否成功保存缓存配置文件,即.scp 文件,若保存缓存配置文件成功返回 true,否则返回 false。
-
buildWithoutConfigFile
public boolean buildWithoutConfigFile()
生成三维切片缓存(OSGB/S3M)。使用该方法创建缓存不会生成配置文件。使用场景:该方法用于服务器端接收客户端请求时使用。
- 返回:
- true表示创建缓存成功,false表示创建缓存失败。
-
buildTiles
public boolean buildTiles()
多进程环境下生成缓存(不生成配置文件).- 返回:
- 是否生成成功
-
generateConfigFile
public static boolean generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, String[] fileNames)
-
generateConfigFile
public static boolean generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, String[] fileNames, TileStorageConnection mongoConn)
生成scp索引文件。- 参数:
configFileName
- 指定的scp文件名。position
- 指定的插入点坐标。value
- 指定投影信息。fileNames
- 指定根节点路径。mongoConn
- 读数据库中实体信息所需的数据库连接信息- 返回:
- false表示失败,true表示成功。
-
generateConfigFile
public static boolean generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, boolean bNEU, String[] fileNames)
生成scp索引文件,此方式支持NEU(测站地方空间直角)坐标系。- 参数:
configFileName
- 指定的scp文件名。position
- 指定的插入点坐标。value
- 指定投影信息。bNEU
- 是否为地方空间直角系。fileNames
- 根节点路径。- 返回:
- 表示是否成功生成索引文件。false表示失败,true表示成功
-
generateConfigFile
public static boolean generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, CoordSysTransParameter coordSysTransParam, CoordSysTransMethod coordSysTransMethod, ArrayList<String> fileNames)
生成scp索引文件。- 参数:
configFileName
- 指定的scp文件名。position
- 指定的插入点坐标。value
- 指定投影信息。coordSysTransParam
- 指定的投影转换参数。coordSysTransMethod
- 指定的投影转换方法。fileNames
- 指定根节点路径。- 返回:
- 表示是否成功生成索引文件。false表示失败,true表示成功。
-
generateConfigFile
public static boolean generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, CoordSysTransParameter coordSysTransParam, CoordSysTransMethod coordSysTransMethod, boolean bNEU, ArrayList<String> fileNames)
生成scp索引文件。- 参数:
configFileName
- 指定的scp文件名。position
- 插入点坐标。value
- 投影信息。coordSysTransParam
- 投影转换参数。coordSysTransMethod
- 投影转换方法。bNEU
- 是否为地方空间直角坐标系。fileNames
- 指定根节点路径。- 返回:
- 表示是否成功生成索引文件。 false表示失败,true表示成功。
-
generateConfigFile
public static boolean generateConfigFile(String configFileName, Point3D position, PrjCoordSys value, PrjCoordSys valueDes, CoordSysTransParameter coordSysTransParam, CoordSysTransMethod coordSysTransMethod, ArrayList<String> fileNames)
生成scp索引文件。- 参数:
configFileName
- 指定的scp文件名。position
- 指定的插入点坐标。value
- 指定的源投影信息。valueDes
- 指定的目标投影信息。coordSysTransParam
- 指定的投影转换参数。coordSysTransMethod
- 指定的投影转换方法。fileNames
- 指定根节点路径。- 返回:
- 表示是否成功生成索引文件。false表示失败,true表示成功。
-
combineOSGBFile
public static boolean combineOSGBFile(String outputFileName, ArrayList<String> fileNames, double dPercent, double dDistance, float fErrorValue)
合并OSGB文件,在指定OSGB模型的基础上,合并一层粗糙层。- 参数:
outputFileName
- 合并后的OSGB文件名。fileNames
- 需要合并的OSGB文件名称列表。dPercent
- 指定的简化率,取值范围[0,1],0表示所有的网格都不简化,1表示当模型网格的距离在指定的阈值内全部简化,0-1之间表示当模型网格的距离在指定的阈值内按照指定的百分比进行简化, 比如0.5表示,假如模型的网格距离在指定的阈值内的数量有100个,那么只简化50个。dDistance
- 指定的切换距离,合并后粗糙层和原始OSGB文件的相机切换距离。fErrorValue
- 指定的网格简化阈值。当模型网格距离小于指定的阈值,就会被简化。- 返回:
- 一个布尔值,true表示合并成功,false表示合并失败。
-
osgbFile2MongoDB
public static boolean osgbFile2MongoDB(String scpFileName, TileStorageConnection mongoConn, String scpMongoFile)
OSGB缓存文件导入MongoDB数据库 。- 参数:
scpFileName
- scp文件全路径名,该文件包含osgb缓存文件信息。mongoConn
- mongodb的数据库连接信息,一个scp文件对应一个mongoConn的Database。scpMongoFile
- 新生成的scp文件全路径名,生成成功后通过该文件直接打开mongodb中的缓存。- 返回:
- 一个布尔值,true表示导入成功,false表示导入失败。
-
osgbFile2MongoDB
public static boolean osgbFile2MongoDB(String scpFileName, TileStorageConnection mongoConn, String scpMongoFile, TextureCompressType textureCompressType)
OSGB缓存文件导入MongoDB数据库 。- 参数:
scpFileName
- scp文件全路径名,该文件包含osgb缓存文件信息。mongoConn
- mongodb的数据库连接信息,一个scp文件对应一个mongoConn的Database。scpMongoFile
- 新生成的scp文件全路径名,生成成功后通过该文件直接打开mongodb中的缓存。textureCompressType
- 纹理压缩方式- 返回:
- true表示导入成功,false表示导入失败。
-
b3dmFile2MongoDB
public static boolean b3dmFile2MongoDB(String scpFileName, TileStorageConnection mongoConn)
3DTiles缓存文件导入MongoDB数据库 。- 参数:
scpFileName
- scp文件全路径名,该文件包含3DTiles缓存文件信息。mongoConn
- mongodb的数据库连接信息,一个scp文件对应一个mongoConn的Database。- 返回:
- 一个布尔值,true表示导入成功,false表示导入失败。
-
buildTile
public boolean buildTile(HashMap<String,int[]> geoModelIDs, boolean bCombineModels)
模型数据集对应ID模型生成切片。- 参数:
geoModelIDs
- 待生成切片的模型ID集合。bCombineModels
- 模型是否打组。- 返回:
- 一个布尔值,true表示生成成功,false表示生成失败。
-
getPosition
public Point3D getPosition()
获取插入点的位置。- 返回:
- 插入点的位置。
-
setPosition
public void setPosition(Point3D value)
设置插入点的位置。- 参数:
value
- 指定插入点的位置。
-
getExtrudeRegionTexFromVoxelGrid
public static ArrayList<TextureData> getExtrudeRegionTexFromVoxelGrid(Geometry geometry, double height, DatasetVolume volume, ColorDictionary table)
支持根据矢量面及拉伸高度从对应体元栅格中提取纹理,并支持设置颜色表。 提取的纹理默认有三个,在列表的第0个纹理数据对应顶部纹理,第1个纹理数据对应侧面纹理,第2个纹理数据对应底部纹理。 如果拉伸的高度超出了体元栅格的高度,那么顶部纹理取值为null,这时需要进行判断,再作处理;而侧面超出的部分颜色都取白色。- 参数:
geometry
- 做为从体元栅格中提取纹理的参照面,二、三维面数据都可以。height
- 对矢量面设置拉伸的高度值。volume
- 对应的体元栅格数据。table
- 设置的颜色表,该表内颜色值范围对应体元栅格的极值范围。
-
isRemoveNormal
public boolean isRemoveNormal()
获取是否移除原始数据法线。
-
setRemoveNormal
public void setRemoveNormal(boolean value)
设置是否移除原始数据法线。- 参数:
value
- 指定是否移除。
-
setTileInfos
public void setTileInfos(TileInfos value)
生成指定瓦片信息对应的切片- 参数:
value
- 三维瓦片信息。
-
buildWithTileClip
@Deprecated public boolean buildWithTileClip()
已过时。
-
isHasOutLine
public boolean isHasOutLine()
是否有边框线
-
setHasOutLine
public void setHasOutLine(boolean value)
设置是否有边框线
-
isCombineRepeatTextures
public boolean isCombineRepeatTextures()
得到重复贴图打组
-
setCombineRepeatTextures
public void setCombineRepeatTextures(boolean value)
设置重复贴图打组
-
setLimitTextureSize
public void setLimitTextureSize(CacheLimitTextureSize value)
设置纹理大小限制
-
getLimitTextureSize
public CacheLimitTextureSize getLimitTextureSize()
获取纹理大小限制
-
setCompressedTextureType
public void setCompressedTextureType(CompressedTextureType value)
设置纹理压缩格式
-
getCompressedTextureType
public CompressedTextureType getCompressedTextureType()
获取纹理压缩格式
-
getTextureProcessingType
public TextureProcessingType getTextureProcessingType()
获取纹理处理方式- 返回:
-
setTextureProcessingType
public void setTextureProcessingType(TextureProcessingType processingType)
设置纹理处理方式- 参数:
processingType
-
-
getCategoryField
public String getCategoryField()
获取特征值字段- 返回:
-
setCategoryField
public void setCategoryField(String categoryFieldName)
设置特征值字段- 参数:
categoryFieldName
-
-
getVertexWeightMode
public VertexWeightMode getVertexWeightMode()
获取顶点权重模式- 返回:
-
setVertexWeightMode
public void setVertexWeightMode(VertexWeightMode modeType)
设置顶点权重模式- 参数:
modeType
-
-
getVertexOptimizationType
public VertexOptimizationType getVertexOptimizationType()
获取顶点优化方式- 返回:
-
setVertexOptimizationType
public void setVertexOptimizationType(VertexOptimizationType vertexOptimizationType)
设置顶点优化方式- 参数:
vertexOptimizationType
-
-
getUserIDField
public String getUserIDField()
获取对象ID字段- 返回:
-
setUserIDField
public void setUserIDField(String userIDName)
设置对象ID字段- 参数:
userIDName
-
-
isLogEnable
public boolean isLogEnable()
获取是否输出错误日志.
-
setLogEnable
public void setLogEnable(boolean isErrorLogOut)
设置是否输出错误日志.
-
getFieldsNames
public String[] getFieldsNames()
生成缓存时,获取保留指定属性字段。
-
setFieldsNames
public void setFieldsNames(String[] fieldsNames)
生成缓存时,设置保留指定属性字段。
-
combineRootNodes
@Deprecated public static boolean combineRootNodes(String inScpFilePath, String saveSCPName, int combineLevel, HashMap<Integer,Double> simplifyPercent, int threadCount)
已过时。
-
combineRootNodes
public static boolean combineRootNodes(String inScpFilePath, String saveSCPName, int combineLevel, HashMap<Integer,Double> simplifyPercent, int threadCount, float objectFiltrateThreshold)
模型缓存合并根节点(不合并图层)- 参数:
inScpFilePath
- 精细模型缓存scp全路径。saveSCPName
- 目标文件名。合并结果会默认在源缓存路径下,新建一个Root文件夹,用来存放合并后的缓存数据;而目标文件名是用来作为合并后的缓存索引(.scp)文件名。combineLevel
- 合并根节点层级数,默认1层,层级数值域[1,4]。simplifyPercent
- 设置简化率,一个字典对象。键值为合并根节点的层级数,值为简化率的百分比数值。threadCount
- 线程数objectFiltrateThreshold
- 像素过滤阈值。- 返回:
-
combineRootNodes
public static boolean combineRootNodes(String[] inScpFilePaths, String saveSCPFullPath, int combineLevel, HashMap<Integer,Double> simplifyPercent, int threadCount)
多个模型缓存合并根节点(合并图层)- 参数:
inScpFilePaths
- 进行合并图层的精细模型缓存SCP全路径集合。saveSCPFullPath
- 输出路径。多个精细模型缓存合并成一个缓存,输出路径下会存放原始缓存数据和scp索引文件,如果设置了合并根节点层级数,会新建一个Root文件夹,用来存放合并后的缓存数据。combineLevel
- 合并根节点层级数,默认1层,层级数值域[1,4]。simplifyPercent
- 设置简化率,一个字典对象。键值为合并根节点的层级数,值为简化率的百分比数值。threadCount
- 线程数- 返回:
- 成功会在指定路径下生成合并后的缓存数据。
-
getTileHeight
public double getTileHeight()
获取三维切片缓存的瓦片的高度.- 返回:
- 获取高度值。
-
setTileHeight
public void setTileHeight(double setTileHeight)
设置三维切片缓存的瓦片高度,与金字塔剖分类型-八叉树一起使用.- 参数:
setTileHeight
- 设置三维切片缓存的瓦片高度。
-
getMultiTextureMode
public MultiTextureMode getMultiTextureMode()
获取模型生成缓存时,纹理设置生成单重纹理或者多重纹理。- 返回:
- 单重纹理或者多重纹理
-
setMultiTextureMode
public void setMultiTextureMode(MultiTextureMode mode)
设置模型生成缓存时,纹理设置生成单重纹理或者多重纹理。- 参数:
mode
- 单重纹理或者多重纹理
-
append
public boolean append(UpdateType updateType, boolean bCreateConfigFile)
模型缓存局部更新。1)目前支持根据Bounds更新和根据模型ID更新。 2)需要注意的是不管根据Bounds更新还是模型ID更新,缓存路径、缓存名称、插入点坐标、瓦片边长、缓存类型、纹理压缩方式等参数都需要都要和原始缓存的参数保持一致。 3)根据更新的数据情况,如果有属于新增和删减Tile数量的情况,append的bCreateConfigFile参数需要设置为true。
根据Bounds更新的实现思路: 1.获取更新的数据集Bounds, 2.调用OSGBCacheBuilder.append进行更新。
根据模型ID更新的实现思路: 1.通过OSGBCacheBuilder.UpdateObjectsInfoArray接口,设置更新后的结果数据集和待修改的ID, 2.再调用OSGBCacheBuilder.append进行更新。
- 参数:
updateType
- S3M瓦片局部更新类型。包括更新几何数据、属性数据、全部更新三种更新类型。bCreateConfigFile
- 是否创建配置文件。- 返回:
- 一个bool值,表示模型缓存局部更新是否成功。
-
getAttributeExtentType
public AttributeExtentType getAttributeExtentType()
获取属性存储类型,包括s3md和attribute两种类型。- 返回:
- 属性存储类型
-
setAttributeExtentType
public void setAttributeExtentType(AttributeExtentType type)
设置属性存储类型,包括s3md和attribute两种类型。- 参数:
type
- 属性存储类型
-
setCacheVersion
public void setCacheVersion(S3MVersion version)
设置S3M版本。- 参数:
version
- S3M版本
-
getAssociateMaterialFile
public String getAssociateMaterialFile()
获取生成S3M缓存关联材质文件路径。生成的缓存,在游戏引擎中会使用所关联的材质进行渲染。目前仅支持ue和unity导出的*.json的材质文件。
从ue中导出的json文件只有关联关系,生成的缓存在ue上加载才有对应的材质效果。
从unity导出的json文件带有PBR材质的效果,可以直接在webgl端使用。
- 返回:
- 生成S3M缓存关联材质文件路径
-
setAssociateMaterialFile
public void setAssociateMaterialFile(String assocaiateFile)
设置生成S3M缓存关联材质文件路径。生成的缓存,在游戏引擎中会使用所关联的材质进行渲染。目前仅支持ue和unity导出的*.json的材质文件。
从ue中导出的json文件只有关联关系,生成的缓存在ue上加载才有对应的材质效果。
从unity导出的json文件带有PBR材质的效果,可以直接在webgl端使用。
- 参数:
assocaiateFile
- 生成S3M缓存关联材质文件路径
-
getSecondTextureType
public SecondTextureType getSecondTextureType()
获取第二重纹理类型
-
setSecondTextureType
public void setSecondTextureType(SecondTextureType secondTextureType)
设置第二重纹理类型
-
getMaterialType
public MaterialType getMaterialType()
获取材质类型。- 返回:
- 材质类型
-
setMaterialType
public void setMaterialType(MaterialType materialType)
设置材质类型。- 参数:
materialType
- 材质类型
-
getGlobeType
public GlobeType getGlobeType()
获取球体类型- 返回:
-
setGlobeType
public void setGlobeType(GlobeType globeType)
设置球体类型- 参数:
globeType
-
-
isCalTilingTextureCoords
public boolean isCalTilingTextureCoords()
是否按box映射再生成一重纹理
-
setCalTilingTextureCoords
public void setCalTilingTextureCoords(boolean isCalTilingTextureCoords)
设置是否按box映射再生成一重纹理 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用
-
getSideTilingU
public double getSideTilingU()
获取侧面U值
-
setSideTilingU
public void setSideTilingU(double sideTilingU)
设置侧面U值 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用
-
getSideTilingV
public double getSideTilingV()
获取侧面V值 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用
-
setSideTilingV
public void setSideTilingV(double sideTilingV)
设置侧面V值
-
compressTextureAndGeometry
public static boolean compressTextureAndGeometry(String scpPath, String outputFolder, CompressedTextureType compressedTextureType, VertexOptimizationType vertexOptimizationType, int threadCount)
精模缓存纹理和几何再压缩
-
isCalTangentAndBinormal
public boolean isCalTangentAndBinormal()
获取获是否重新计算切线、副切线
-
setCalTangentAndBinormal
public void setCalTangentAndBinormal(boolean isCalTangentAndBinormal)
设置是否重新计算切线、副切线
-
setEncryptCoordinatesSetting
public void setEncryptCoordinatesSetting(EncryptCoordinatesSetting encryptCoordinatesSetting)
设置坐标加密参数。- 参数:
encryptCoordinatesSetting
- 坐标加密参数。- 抛出:
IllegalStateException
- 当前对象已被释放。- 从以下版本开始:
- 11.2.0。
-
upgradeS3MB
@Deprecated public static boolean upgradeS3MB(S3MVersion s3mVersion, String srcScpPath, String outputFolder)
已过时。s3m2.0转s3m3.0
-
upgradeS3MB
@Deprecated public static boolean upgradeS3MB(S3MVersion s3mVersion, String srcScpPath, String outputFolder, UpgradeS3MParameters params)
已过时。S3M版本升级(支持纹理压缩类型以及几何压缩类型)支持将S3M1.0升级到S3M2.0或者S3M3.0,支持将S3M2.0升级到S3M3.0。 S3m3.0为椭球场景缓存数据。
三维切片缓存不支持Draco压缩,所以升级时,如果数据是三维切片缓存,几何压缩不可选择Draco压缩。
- 参数:
s3mVersion
- S3M版本号srcScpPath
- 待升级的缓存数据scp全路径outputFolder
- 升级后的缓存数据输出路径params
- S3M版本升级的参数设置,包括纹理压缩和几何压缩设置。- 返回:
- 一个bool值,true表示S3M版本升级成功,在输出目录下生成升级后的缓存数据;false表示升级失败。
-
upgradeS3MB
public static boolean upgradeS3MB(String srcScpPath, String outputFolder, UpgradeS3MParameters params)
S3M版本升级(支持纹理压缩类型以及几何压缩类型)支持将S3M1.0升级到S3M2.0或者S3M3.0,支持将S3M2.0升级到S3M3.0。 S3m3.0为椭球场景缓存数据。
三维切片缓存不支持Draco压缩,所以升级时,如果数据是三维切片缓存,几何压缩不可选择Draco压缩。
- 参数:
srcScpPath
- 待升级的缓存数据scp全路径outputFolder
- 升级后的缓存数据输出路径params
- S3M版本升级的参数设置- 返回:
- 一个bool值,true表示S3M版本升级成功,在输出目录下生成升级后的缓存数据;false表示升级失败。
-
upgradeS3MB
public static boolean upgradeS3MB(TileStorageConnection inputConnection, TileStorageConnection outputConnection, UpgradeS3MParameters params)
对存入MongoDB内的三维瓦片进行S3M版本升级(支持纹理压缩类型以及几何压缩类型)。支持将S3M1.0升级到S3M2.0或者S3M3.0,支持将S3M2.0升级到S3M3.0。S3m3.0为椭球场景瓦片数据。
三维瓦片不支持Draco压缩,所以升级时,如果数据是三维瓦片,几何压缩不可选择Draco压缩。
- 参数:
inputConnection
- 输入数据库的连接信息。outputConnection
- 输出数据库的连接信息。params
- S3M版本升级的参数设置。- 返回:
- 返回true表示存入MongoDB内的三维瓦片升级成功,在输出目录下生成升级后的瓦片数据;返回false表示存入MongoDB内的三维瓦片升级失败。
- 从以下版本开始:
- 11.2.0。
-
getUpdateObjectsInfoArray
public ArrayList<UpdateObjectsInfo> getUpdateObjectsInfoArray()
获取模型局部更新的ID值集合。- 返回:
- 模型局部更新的ID值集合
-
setUpdateObjectsInfoArray
public void setUpdateObjectsInfoArray(ArrayList<UpdateObjectsInfo> updateObjectsInfos)
设置模型局部更新的ID值集合。- 参数:
updateObjectsInfos
- 模型局部更新的ID值集合
-
rebuildS3MTiles
public static boolean rebuildS3MTiles(String scpFilePath, String associateMaterialFile, String outputPath, String cacheName)
S3M缓存重切片。将配置文件中存有材质信息的S3M缓存重新切片,便于将UE美化后导出的材质写到S3M切片中。
- 参数:
scpFilePath
- 原始S3M缓存scpassociateMaterialFile
- 外挂的材质关联json文件路径。从UE中导出的是MaterialPackages文件夹,文件夹里包含了LayerInfo.json索引文件和其他带有基色参数的json文件及纹理图片。
outputPath
- 重新切片后的输出路径cacheName
- 重新切片后的缓存名称- 返回:
- 一个bool值,true表示S3M缓存重新切片成功,false表示S3M缓存重切片失败。
-
getDatasetSettingArray
public ArrayList<DatasetSetting> getDatasetSettingArray()
获取批量生成三维切片缓存,将多个模型数据集生成到一个缓存文件中。- 返回:
- 批量生成模型缓存数据集参数设置
-
setDatasetSettingArray
public void setDatasetSettingArray(ArrayList<DatasetSetting> datasetSettings)
设置批量生成三维切片缓存,将多个模型数据集生成到一个缓存文件中。- 参数:
datasetSettings
- 批量生成模型缓存数据集参数设置
-
setIsDisposable
public static void setIsDisposable(com.supermap.data.InternalHandleDisposable obj, boolean disposable)
-
-
Copyright © 2021–2024 SuperMap. All rights reserved.