类 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对象。
-
方法概要
所有方法 静态方法 实例方法 具体方法 已过时的方法 限定符和类型 方法和说明 voidaddSteppedListener(SteppedListener l)添加一个用于接收进度条事件(SteppedEvent)的监听器。booleanappend(UpdateType updateType, boolean bCreateConfigFile)模型瓦片局部更新。static booleanb3dmFile2MongoDB(String scpFileName, TileStorageConnection mongoConn)3DTiles瓦片文件导入MongoDB数据库 。booleanbuild()booleanbuild(SteppedListener listener)生成三维瓦片(OSGB/S3M)。booleanbuildTile(HashMap<String,int[]> geoModelIDs, boolean bCombineModels)模型数据集对应ID模型生成瓦片。booleanbuildTiles()多进程环境下生成瓦片(不生成配置文件).booleanbuildWithoutConfigFile()生成三维瓦片(OSGB/S3M)。booleanbuildWithTileClip()已过时。voidcancel()static booleancombineOSGBFile(String outputFileName, ArrayList<String> fileNames, double dPercent, double dDistance, float fErrorValue)合并OSGB文件,在指定OSGB模型的基础上,合并一层粗糙层。static booleancombineRootNodes(String[] inScpFilePaths, String saveSCPFullPath, int combineLevel, HashMap<Integer,Double> simplifyPercent, int threadCount)多个模型瓦片合并根节点(合并图层)static booleancombineRootNodes(String inScpFilePath, String saveSCPName, int combineLevel, HashMap<Integer,Double> simplifyPercent, int threadCount)已过时。static booleancombineRootNodes(String inScpFilePath, String saveSCPName, int combineLevel, HashMap<Integer,Double> simplifyPercent, int threadCount, float objectFiltrateThreshold)模型瓦片合并根节点(不合并图层)static booleancompressTextureAndGeometry(String scpPath, String outputFolder, CompressedTextureType compressedTextureType, VertexOptimizationType vertexOptimizationType, int threadCount)精模瓦片纹理和几何再压缩voiddispose()释放OSGBCacheBuilder对象所占的资源。booleanfromJson(String jsonFile)从json文件中获取参数。static booleangenerateConfigFile(String configFileName, Point3D position, PrjCoordSys value, boolean bNEU, String[] fileNames)生成scp索引文件,此方式支持NEU(测站地方空间直角)坐标系。static booleangenerateConfigFile(String configFileName, Point3D position, PrjCoordSys value, CoordSysTransParameter coordSysTransParam, CoordSysTransMethod coordSysTransMethod, ArrayList<String> fileNames)生成scp索引文件。static booleangenerateConfigFile(String configFileName, Point3D position, PrjCoordSys value, CoordSysTransParameter coordSysTransParam, CoordSysTransMethod coordSysTransMethod, boolean bNEU, ArrayList<String> fileNames)生成scp索引文件。static booleangenerateConfigFile(String configFileName, Point3D position, PrjCoordSys value, PrjCoordSys valueDes, CoordSysTransParameter coordSysTransParam, CoordSysTransMethod coordSysTransMethod, ArrayList<String> fileNames)生成scp索引文件。static booleangenerateConfigFile(String configFileName, Point3D position, PrjCoordSys value, String[] fileNames)static booleangenerateConfigFile(String configFileName, Point3D position, PrjCoordSys value, String[] fileNames, TileStorageConnection mongoConn)生成scp索引文件。StringgetAssociateMaterialFile()获取生成S3M瓦片关联材质文件路径。AttributeExtentTypegetAttributeExtentType()获取属性存储类型,包括s3md和attribute两种类型。Rectangle2DgetBounds()获取瓦片地理范围。StringgetCacheName()获取瓦片名称,不包含路径及后缀。StringgetCategoryField()获取特征值字段CompressedTextureTypegetCompressedTextureType()获取纹理压缩格式DatasetVectorgetDataset()获取生成三维瓦片的数据集对象。ArrayList<DatasetSetting>getDatasetSettingArray()获取批量生成三维瓦片,将多个模型数据集生成到一个瓦片文件中。PrjCoordSysTypegetDynamicPrjCoordSysType()获取动态投影信息。static ArrayList<TextureData>getExtrudeRegionTexFromVoxelGrid(Geometry geometry, double height, DatasetVolume volume, ColorDictionary table)支持根据矢量面及拉伸高度从对应体元栅格中提取纹理,并支持设置颜色表。String[]getFieldsNames()生成瓦片时,获取保留指定属性字段。CacheFileTypegetFileType()获取生成瓦片时的数据格式GlobeTypegetGlobeType()获取球体类型booleangetIsCalNormal()瓦片是否重新计算法线。booleangetIsDistributed()booleangetIsInstance()是否实例化。CacheLimitTextureSizegetLimitTextureSize()获取纹理大小限制intgetLODSize()获取LOD层级数量。MaterialTypegetMaterialType()获取材质类型。intgetMipmapCount()获取纹理Mipmap数量。MultiTextureModegetMultiTextureMode()获取模型生成瓦片时,纹理设置生成单重纹理或者多重纹理。doublegetObjectFiltrateThreshold()获取粗糙层对象过滤阀值。StringgetOutputFolder()获取结果数据存储路径。doublegetOutputScale()获取瓦片的比例尺大小。Point3DgetPosition()获取插入点的位置。intgetProcessThreadsCount()获取生成瓦片的线程数。ProcessFileTypegetProcessType()获取生成瓦片时的文件处理类型。RecordsetgetRecordset()获取瓦片的记录集。S3MFileCompressionTypegetS3MFileCompressionType()获取S3M瓦片文件压缩类型SecondTextureTypegetSecondTextureType()获取第二重纹理类型doublegetSideTilingU()获取侧面U值doublegetSideTilingV()获取侧面V值 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用HashMap<Integer,Double>getSimplifyPercent()获取LOD层网格简化率。StorageTypegetStorageType()获取瓦片的存储类型。TextureProcessingTypegetTextureProcessingType()获取纹理处理方式booleangetTextureSharing()获取纹理是否公用。ArrayList<Rectangle2D>getTileBounds()获取每个生成瓦片的Bounds。StringgetTileFolderExtension()获取根节点瓦片文件夹后缀名称,仅对buildWithoutConfigFile起作用doublegetTileHeight()获取三维瓦片的高度.ArrayList<TileInfos>getTileInfosArray()获取每个生成瓦片的信息。PyramidSplitTypegetTilePyramidSplitType()获取单个瓦片的金字塔剖分类型。doublegetTileWidth()获取OSGB瓦片大小。ArrayList<Rectangle2D>getUpdateBounds()ArrayList<UpdateObjectsInfo>getUpdateObjectsInfoArray()获取模型局部更新的ID值集合。UpdateTypegetUpdateType()StringgetUserIDField()获取对象ID字段VertexOptimizationTypegetVertexOptimizationType()获取顶点优化方式VertexWeightModegetVertexWeightMode()获取顶点权重模式booleanisCalTangentAndBinormal()获取获是否重新计算切线、副切线booleanisCalTilingTextureCoords()是否按box映射再生成一重纹理booleanisCombineRepeatTextures()得到重复贴图打组booleanisGenerateConfig()booleanisHasOutLine()是否有边框线booleanisLogEnable()获取是否输出错误日志.booleanisRemoveNormal()获取是否移除原始数据法线。static booleanosgbFile2MongoDB(String scpFileName, TileStorageConnection mongoConn, String scpMongoFile)OSGB瓦片文件导入MongoDB数据库 。static booleanosgbFile2MongoDB(String scpFileName, TileStorageConnection mongoConn, String scpMongoFile, TextureCompressType textureCompressType)OSGB瓦片文件导入MongoDB数据库 。static booleanrebuildS3MTiles(String scpFilePath, String associateMaterialFile, String outputPath, String cacheName)S3M瓦片重切片。voidremoveSteppedListener(SteppedListener l)移除一个用于接收进度条事件(SteppedEvent)的监听器。voidsetAssociateMaterialFile(String assocaiateFile)设置生成S3M瓦片关联材质文件路径。voidsetAttributeExtentType(AttributeExtentType type)设置属性存储类型,包括s3md和attribute两种类型。voidsetBounds(Rectangle2D value)设置瓦片地理范围。voidsetCacheName(String name)设置瓦片名称,不包含路径及后缀。voidsetCacheVersion(S3MVersion version)设置S3M版本。voidsetCalTangentAndBinormal(boolean isCalTangentAndBinormal)设置是否重新计算切线、副切线voidsetCalTilingTextureCoords(boolean isCalTilingTextureCoords)设置是否按box映射再生成一重纹理 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用voidsetCategoryField(String categoryFieldName)设置特征值字段voidsetCombineRepeatTextures(boolean value)设置重复贴图打组voidsetCompressedTextureType(CompressedTextureType value)设置纹理压缩格式voidsetConnectionInfo(TileStorageConnection connInfo)设置生成时连接mongo数据库的信息。voidsetDataset(DatasetVector value)设置生成三维瓦片的数据集对象。voidsetDatasetArray(DatasetVector[] arrDataset)设置多个数据集生成一个瓦片文件。voidsetDatasetSettingArray(ArrayList<DatasetSetting> datasetSettings)设置批量生成三维瓦片,将多个模型数据集生成到一个瓦片文件中。voidsetDynamicPrjCoordSysType(PrjCoordSysType prjType)设置动态投影信息。voidsetEncryptCoordinatesSetting(EncryptCoordinatesSetting encryptCoordinatesSetting)设置坐标加密参数。voidsetFieldsNames(String[] fieldsNames)生成瓦片时,设置保留指定属性字段。voidsetFileType(CacheFileType fileType)设置生成瓦片时的数据格式voidsetGlobeType(GlobeType globeType)设置球体类型voidsetHasOutLine(boolean value)设置是否有边框线voidsetIsCalNormal(boolean value)设置瓦片是否重新计算法线。static voidsetIsDisposable(com.supermap.data.InternalHandleDisposable obj, boolean disposable)voidsetIsDistributed(boolean isDistributed)voidsetIsGenerateConfig(boolean m_bGenerateConfig)voidsetIsInstance(boolean bInstance)设置是否实例化。voidsetLimitTextureSize(CacheLimitTextureSize value)设置纹理大小限制voidsetLODSize(int value)设置LOD层级数量。voidsetLogEnable(boolean isErrorLogOut)设置是否输出错误日志.voidsetMaterialType(MaterialType materialType)设置材质类型。voidsetMipmapCount(int value)设置纹理Mipmap数量。voidsetMultiTextureMode(MultiTextureMode mode)设置模型生成瓦片时,纹理设置生成单重纹理或者多重纹理。voidsetObjectFiltrateThreshold(double dbValue)设置粗糙层对象过滤阀值。voidsetOutFilePassword(String password)设置三维瓦片密码,生成模型瓦片时,仅瓦片的文件类型为S3MBlock时有效。voidsetOutputFolder(String name)设置结果数据存储路径。voidsetOutputScale(double value)设置瓦片的比例尺大小。voidsetPosition(Point3D value)设置插入点的位置。voidsetProcessThreadsCount(int value)设置生成瓦片的线程数。voidsetProcessType(ProcessFileType value)设置生成瓦片时的文件处理类型。voidsetRecordset(Recordset value)设置瓦片的记录集。voidsetRemoveNormal(boolean value)设置是否移除原始数据法线。voidsetS3MFileCompressionType(S3MFileCompressionType value)设置S3M瓦片文件压缩类型voidsetSecondTextureType(SecondTextureType secondTextureType)设置第二重纹理类型voidsetSideTilingU(double sideTilingU)设置侧面U值 游戏引擎美化使用,CalTilingTextureCoords和SideTilingU、SideTilingV一起使用voidsetSideTilingV(double sideTilingV)设置侧面V值voidsetSimplifyPercent(Map<Integer,Double> mapPercent)设置LOD层网格简化率。voidsetStorageType(StorageType storageType)设置瓦片的存储类型。voidsetTextureProcessingType(TextureProcessingType processingType)设置纹理处理方式voidsetTextureSharing(boolean bShare)设置纹理是否公用。voidsetTileFolderExtension(String folderExtension)设置根节点瓦片文件夹后缀名称,仅对buildWithoutConfigFile起作用voidsetTileHeight(double setTileHeight)设置三维瓦片高度,与金字塔剖分类型-八叉树一起使用.voidsetTileInfos(ArrayList<TileInfos> infos)设置每个三维瓦片的信息。voidsetTileInfos(TileInfos value)设置三维瓦片信息。voidsetTilePyramidSplitType(PyramidSplitType value)设置单个瓦片的金字塔剖分类型。voidsetTileWidth(double value)设置OSGB瓦片大小。voidsetTileWidth(Double value)已过时。voidsetUpdateBounds(ArrayList<Rectangle2D> arrUpdateBounds)voidsetUpdateObjectsInfoArray(ArrayList<UpdateObjectsInfo> updateObjectsInfos)设置模型局部更新的ID值集合。voidsetUpdateType(UpdateType m_updateType)voidsetUserIDField(String userIDName)设置对象ID字段voidsetVertexOptimizationType(VertexOptimizationType vertexOptimizationType)设置顶点优化方式voidsetVertexWeightMode(VertexWeightMode modeType)设置顶点权重模式booleantoConfigAndIndexFile(String path)将三维瓦片的所有瓦片信息直接写入到配置文件中,并将属性字段索引写入索引文件。booleantoJson(String jsonFile)将参数都写入文件中。static booleanupgradeS3MB(S3MVersion s3mVersion, String srcScpPath, String outputFolder)已过时。static booleanupgradeS3MB(S3MVersion s3mVersion, String srcScpPath, String outputFolder, UpgradeS3MParameters params)已过时。static booleanupgradeS3MB(String srcScpPath, String outputFolder, UpgradeS3MParameters params)S3M版本升级(支持纹理压缩类型以及几何压缩类型) 支持将S3M1.0升级到S3M2.0或者S3M3.0,支持将S3M2.0升级到S3M3.0。static booleanupgradeS3MB(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- 瓦片名称。
-
-
方法详细资料
-
getUpdateType
public UpdateType getUpdateType()
-
setUpdateType
public void setUpdateType(UpdateType m_updateType)
-
isGenerateConfig
public boolean isGenerateConfig()
-
setIsGenerateConfig
public void setIsGenerateConfig(boolean m_bGenerateConfig)
-
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- 生成三维瓦片的数据集对象。
-
setUpdateBounds
public void setUpdateBounds(ArrayList<Rectangle2D> arrUpdateBounds)
-
getUpdateBounds
public ArrayList<Rectangle2D> getUpdateBounds()
-
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(SteppedListener listener)
生成三维瓦片(OSGB/S3M)。- 返回:
- true表示生成瓦片成功。
-
build
public boolean build()
-
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()
多进程环境下生成瓦片(不生成配置文件).- 返回:
- 是否生成成功
-
cancel
public void cancel()
-
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- 新生成的配置文件存储路径。生成成功后通过该文件直接打开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- 新生成的配置文件存储路径。生成成功后通过该文件直接打开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()
获取纹理压缩格式
-
setS3MFileCompressionType
public void setS3MFileCompressionType(S3MFileCompressionType value)
设置S3M瓦片文件压缩类型
-
getS3MFileCompressionType
public S3MFileCompressionType getS3MFileCompressionType()
获取S3M瓦片文件压缩类型
-
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- 瓦片数据。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瓦片scp。associateMaterialFile- 外挂的材质关联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- 批量生成模型瓦片数据集参数设置。
-
toJson
public boolean toJson(String jsonFile)
将参数都写入文件中。- 参数:
jsonFile- json文件存储路径。- 从以下版本开始:
- 11.3.0。
-
fromJson
public boolean fromJson(String jsonFile)
从json文件中获取参数。- 参数:
jsonFile- json文件路径。- 从以下版本开始:
- 11.3.0。
-
setTileFolderExtension
public void setTileFolderExtension(String folderExtension)
设置根节点瓦片文件夹后缀名称,仅对buildWithoutConfigFile起作用- 参数:
folderExtension- 文件夹后缀名称
-
getTileFolderExtension
public String getTileFolderExtension()
获取根节点瓦片文件夹后缀名称,仅对buildWithoutConfigFile起作用
-
setIsDisposable
public static void setIsDisposable(com.supermap.data.InternalHandleDisposable obj, boolean disposable)
-
-
Copyright © 2021–2025 SuperMap. All rights reserved.