S3M(Spatial 3D Model)图层类,通过该图层实现加载三维切片缓存,包括倾斜摄影模型、BIM模型、点云数据、精细模型、矢量数据、符号等。
通过Scene.addS3MTilesLayerByScp(url, options)的方式将发布的*.s3m格式的三维服务添加到场景中。
通过Scene.addS3MTilesLayerByScp(url, options)的方式将发布的*.s3m格式的三维服务添加到场景中。
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
参数对象具有以下属性:
|
Example:
//new S3MTilesLayer instance
var S3MTilesLayer = new S3MTilesLayer({
gl : gl,
servers : ["http://localhost:8090"],
urls : ["http://localhost:8090/data/tile_001.xml","http://localhost:8090/data/tile_002.xml"],
position : [10,20],
name : ["S3MTilesLayer"]
});
Members
-
获取泛光效果。
-
获取泛光效果是否开启。
-
释放顶点颜色内存,还原顶点颜色。
-
设置图层亮度值调节颜色。
-
是否及时释放内存,默认值为false。
-
clipLineColor : Color
-
获取或设置对S3M图层进行BOX裁剪时裁剪线的颜色。
-
clipPlaneColor : Color
-
获取或者设置裁剪截面的颜色
-
设置颜色表模式。
-
设置图层对比度值调节颜色。
-
获取或设置单双面渲染(默认单面渲染,背面剔除)。
-
获取数据的最大高度值或最大强度值。 对点云数据而言,该属性为高度值或强度值(默认为强度值);对其他三维数据而言,该属性为高度值。
Example:
//获取数据最大值 var dataMaxValue = S3MTilesLayer.DataMaxValue;
-
获取数据的最小高度值或最小强度值。 对点云数据而言,该属性为高度值或强度值(默认为强度值);对其他三维数据而言,该属性为高度值。
Example:
//获取数据最小值 var dataMinValue = S3MTilesLayer.DataMinValue;
-
获取或设置S3M图层的线型符号。
-
设置图层gamma值调节颜色。
-
获取图层所在群组名称
-
获取或者设置图层是否开启光照效果。
-
获取或者设置相机的heading角度(单位:弧度)。
-
horizontalColor : Color
-
获取或者设置水平线颜色。
-
获取或设置水平线高度。
-
设置图层色调值调节颜色。
-
获取或设置图层的分层设色表达。
Example:
//设置图层分层设色属性 var hypsometricSetting = new Cesium.HypsometricSetting(); hypsometricSetting.MinVisibleValue = 30; hypsometricSetting.MaxVisibleValue = 150; var colorTable = new Cesium.ColorTable(); colorTable.insert(150, new Cesium.Color(1, 0, 0)); colorTable.insert(30, new Cesium.Color(0, 0, 1)); hypsometricSetting.ColorTable= colorTable; S3MTilesLayer.hypsometricSetting = { hypsometricSetting : hypsometricSetting, analysisMode: Cesium.hypsometricSettingEnum.AnalysisRegionMode.ARM_ALL } //获取图层分层设色属性 var hyp = S3MTilesLayer.hypsometricSetting ;
-
获取图层id。
-
获取或者设置是否在GPU中自动计算法线,默认值为true。值为true时,在GPU中自动计算法线,不使用数据自带的法线。值为false时,在GPU中不自动计算法线,使用数据自带的法线。
-
获取或者设置indexedDB属性信息
-
layerBounds : Rectangle
-
获取或设置图层范围。
-
获取或者设置加载模式。
-
获取或设置图层的LOD层级切换距离缩放系数。
-
获取或设置图层的最大可见高度。
-
获取或设置图层的最小可见高度。
-
设置纹理显示模式(混合、替换)
-
获取或者设置图层是否支持多选。
-
获取图层名称
-
设置图层饱和度值调节颜色。
-
SelectColorType : SelctColorType
-
获取选取对象的显示风格。
-
获取或设置选取对象的显示风格,模型纹理与颜色混合显示或纯色显示。
-
selectedColor : Color
-
获取或者设置选中图层显示的高亮颜色。
-
selectedTranslate : Cartesian3
-
获取或设置选中对象的偏移位置。
-
获取或者设置图层是否可选。
-
获取或设置透明选择过滤阈值。
-
获取或设置图层中模型参与显示阴影的范围类型。
-
constantsilhouetteColor : Color
-
设置或者获取边缘轮廓颜色,默认蓝色
-
设置或者获取边缘轮廓大小,默认2,单位像素
-
Default Value:
2.0
-
splitDirection : SplitDirection
-
获取或设置卷帘方向。
-
获取或设置卷帘位置。
-
style3D : Style3D
-
获取或设置图层风格。
Example:
//获取图层风格 var style = S3MTilesLayer.style3D; //设置图层风格 var style3D = new Cesium.Style3D(); var color = new Cesium.Color(1.0, 0.0, 0.0); style3D.fillForeColor = color; S3MTilesLayer.style3D = style3D; //设置后需刷新图层 S3MTilesLayer.refresh();
-
获取或者设置模型纹理在UV坐标上的运动速度
-
urlType : UrlType
-
获取或者设置图层数据的请求形式。
-
获取或设置图层可见性。
Example:
//获取可见性 var isVisible = S3MTilesLayer.visible; //设置不可见 S3MTilesLayer.visible = false;
-
获取或设置该图层的最大可见距离值,单位为米。该距离值用于距离过滤功能,当相机与图层的距离大于该距离值时,该图层将不可见。
-
获取或设置该图层的最小可见距离值,单位为米。该距离值用于距离过滤功能,当相机与图层的距离小于该距离值时,该图层将不可见。
-
体数据名称。
-
获取或设置图层线框模式。
Methods
-
添加开挖面。
Name Type Description options
Object 开挖区域参数: Name Type Description position
Array 开挖区域位置信息。 name
String 开挖区域名称。 Returns:
bool 成功返回true,失败返回false。 -
添加压平面,用于压平模型表面。
Name Type Description options
Object 压平区域参数: Name Type Description position
Array 指定压平区域位置信息。 name
String 压平区域名称。 Returns:
成功返回true,失败返回false。Example:
S3MTilesLayer.addFlattenRegion({ position : [13.0500640714, 47.8279189759, 400.0, 13.0500640714, 47.8230189759, 400.0, 13.0530640714, 47.8260189759, 400.0, 13.0538640714, 47.8230189759, 400.0, 13.0538640714, 47.8279189759, 400.0], name : 'flatten2'});
-
利用一组纹理图片对S3M图层进行体渲染。体渲染时需设置体渲染的范围。
Name Type Description imgArray
Promise.<Image> 纹理数组。 -
S3M图层指定范围叠加图片。
Name Type Description options
Object 对象具有以下属性: Name Type Description name
String 指定范围的名称。 bounds
Array 指定范围的点集数组。 image
Element html image元素,用于叠加的纹理图片。 Returns:
bool 成功返回true,失败返回false。 -
清除自定义裁剪面。
Example:
S3MTilesLayer.clearCustomClipBox();
-
清除多边形对象裁剪S3M图层。
-
获取图层数据集名称以及对应的Id范围(适用于多数据集生成缓存)。
Returns:
数组包含所有数据集相关信息,每个数据集对象包含数据集名称、起始Id、终止Id。Example:
var data = layer.datasetInfo(); Cesium.when(data,function(dataSet){ var length = dataSet.length; ....... });
-
销毁图层,释放内存、释放webgl资源
-
设置填充模式后边框线不消失
-
获取本地对象属性信息(indexedDB中的scvd)。
Name Type Description id
Number 索引。 -
获取剖面裁剪的范围。
-
获取图层的lOD层级切换距离缩放系数。
Returns:
LOD层级切换距离缩放系数。Example:
var num = S3MTilesLayer.getLodRangeScale();
-
getObjsColor() → Color
-
根据ID获取对应图元对象的颜色表。
Returns:
对应ID的颜色。 -
获得指定ID的对象可见性。
Name Type Description id
Number 指定的对象ID。 Returns:
对象是否可见。Example:
var id = 12; S3MTilesLayer.getObjsVisible(id);
-
获取属性查询参数。
Returns:
属性查询参数对象。 -
getSelection() → AssociativeArray
-
获取选择集。
Returns:
包含所有选中ID的关系数组。Example:
S3MTilesLayer.getSelection();
-
获取图层对应视口的可见性。
Name Type Description index
Number 索引。 Returns:
visible 可见性。Throws:
-
DeveloperError : 索引值范围为0~3。
-
-
获取所有的体数据名称。
Returns:
所有体数据名称数组。 -
刷新图层。
-
释放选择集。
Example:
S3MTilesLayer.releaseSelection();
-
移除所有的开挖面。
-
移除所有压平面。
Example:
S3MTilesLayer. removeAllFlattenRegion();
-
移除所有图元的操作。
-
移除所有图元设置的颜色。
-
移除所有设置的拉伸高度。
-
清除所有的对象偏移。
-
移除指定名称的开挖面。
Name Type Description name
String 开挖面的名称。 Returns:
bool 成功返回true,失败返回false。 -
移除指定名称的压平面。
Name Type Description name
String 待移除压平面的名称。 Returns:
移除成功返回true,失败返回false。Example:
S3MTilesLayer. removeFlattenRegion(regionName);
-
根据图元ID列表,移除指定图元的操作(裁剪或者偏移)。
Name Type Description ids
Array 图元ID列表。 -
根据图元ID列表移除相应图元被设置的颜色。
Name Type Description ids
Array 图元ID列表。 -
根据图元ID列表移除对象被设置的拉伸高度。
Name Type Description ids
Array 图元ID列表。 -
根据对象ID列表清除对象偏移。
Name Type Description ids
Array 对象ID列表。 -
为图层设置一个包围盒,盒子区域内模型具有体渲染效果,区域外模型保持原样。
Name Type Description left
Number 包围盒左侧的经度,以度为范围。 bottom
Number 包围盒下方的纬度,度为范围。 right
Number 包围盒右侧的经度,以度为范围。 top
Number 包围盒上方的纬度,以度为单位。 minHeight
Number 包围盒高度最小值,以米为范围。 maxHeight
Number 包围盒高度最大值,以米为范围。 -
根据W位特征值隐藏显示对象
Name Type Description categories
Array.<Number> | Number 特征值数组,或者特征值 mode
CategoryVisibleMode 隐藏、显示、重置 -
设置裁剪面
Name Type Description firstPoint
Cartesian3 绘制裁剪面的第一个点。 secondPoint
Cartesian3 绘制裁剪面的第二个点。 thirdPoint
Cartesian3 绘制裁剪面的第三个点。 renderClipSection
Boolean 绘制裁剪截面。 Example:
var p1 = new Cesium.Cartesian3(-8787.4,2084.7,7021.04335128); var p2 = new Cesium.Cartesian3(-8786.3,2081.8,7024.90146083); var p3 = new Cesium.Cartesian3(-8783.2,2086.8,7021.04335128); for(var i = 0;i < layers.length;i++){ layers[i].setClipSection(p1,p2,p3,true); }
-
添加自定义裁剪面。
Name Type Description options
Object 裁剪面参数: Name Type Description dimensions
Cartesian3 指定裁剪box的长宽高。 position
Cartesian3 指定裁剪面位置。 clipMode
String 指定裁剪模式。 裁剪模式包括以下几类:
clip_behind_any_plane:裁剪掉位于任何裁剪面后面的部分。
clip_behind_all_plane:裁剪掉位于所有裁剪面后面的部分。
only_keep_line:只保留裁剪线,裁剪掉其他部分。Returns:
添加成功返回true,失败返回false。Throws:
-
DeveloperError : options and options.dimensions and options.position are required.
Example:
var boxOptions = { dimensions : new Cesium.Cartesian3(10, 10, 10) position : Cesium.Cartesian3.fromDegrees(120, 40, 20), clipMode : "clip_behind_all_plane" }; S3MTilesLayer.setCustomClipBox(boxOptions);
-
-
设置区域裁剪参数。
Name Type Description options
Object 参数对象包含以下属性: Name Type Description position
Cartesian3 optional 中心点位置坐标。 dimensions
Cartesian2 optional 裁剪区域的宽度和高度,单位:米。 heading
Number optional 裁剪面绕Z轴的旋转角度,单位:度。 pitch
Number optional 裁剪面绕X轴的旋转角度,单位:度。 roll
Number optional 裁剪面绕Y轴的旋转角度,单位:度。 extrudeDistance
Number optional 裁剪区域中心点拉伸距离,单位:米。 -
剖面分析。
Name Type Description firstPoint
Cartesian3 绘制剖面的第一个点。 secondPoint
Cartesian3 绘制剖面的第二个点。 thirdPoint
Cartesian3 绘制剖面的第三个点。 clipPlaneMode
ClipSectionMode 裁剪截面模式。 Example:
var p1 = new Cesium.Cartesian3(-8787.4,2084.7,7021.04335128); var p2 = new Cesium.Cartesian3(-8786.3,2081.8,7024.90146083); var p3 = new Cesium.Cartesian3(-8783.2,2086.8,7021.04335128); for(var i = 0;i < layers.length;i++){ layers[i].setCustomClipPlane(p1,p2,p3,ClipPlaneMode.NONE); }
-
设置图层的lOD层级切换距离缩放系数。
Name Type Description lodrange
Number lOD层级切换距离缩放系数。 Example:
S3MTilesLayer.setLodRangeScale();
-
根据多边形对象裁剪S3M图层。
Name Type Description regions
Array 多边形数组。 mode
mode 裁剪模式,设置裁剪多边形对象的内部范围或外部范围。值为CLIP_INSIDE时裁剪内部范围,值为CLIP_OUTSIDE时裁剪外部范围。 -
针对指定的ID对象进行功能操作。
Name Type Description ids
Array 对象ID列表。 operationType
Number 功能操作类型,值为CLIP,针对裁剪功能生效。 -
根据图元IDS列表,设置对应图元的颜色。
Name Type Description ids
Array 图元ID列表。 color
Color 图元的颜色。 -
根据IDS列表,设置对象的拉伸高度。
Name Type Description ids
Array 图元ID列表。 height
Number 对象拉伸高度值。 -
根据对象ID列表设置对象偏移。
Name Type Description ids
Array 对象ID列表。 -
根据图元ID列表,设置对应的图元的可见性,并与该图层其他图元成互斥可见关系。
Name Type Description ids
Array 图元ID列表。 isVisible
Boolean 是否可见。 Example:
//设置该图层id为1的图元显示,其余所有图元全部不可见。 layer.setObjsVisible([1],true); //设置图元id=1的隐藏,其余所有图元可见。 layer.setObjsVisible([1],false);
-
根据图元ID列表,设置对应图元的可见性(手动设置)。
Name Type Description ids
Array 图元ID列表。 isVisible
Boolean 是否可见。 Example:
//设置id为1和2的图元为不可见,其余图元的可见状态不变。 layer.setOnlyObjsVisible([1,2],false); //设置id为1和2的图元为可见,其余图元的可见状态不变。 layer.setOnlyObjsVisible([1,2],true);
-
设置多边形偏移。
Name Type Description factor
Number 偏移斜率因子,默认为0。 units
Number 偏移单位,默认为0。 Example:
layer.setPolygonoffset(-1,-1);
-
设置属性查询参数。
Name Type Description options
Object 对象具有以下属性: Name Type Default Description url
String optional 数据服务url。 dataSourceName
String optional 数据源名称。 dataSetName
String optional 数据集名称。 isMerge
Boolean optional 该图层是否为合并数据集的,如果是则不用指定数据集名称。 hasGeometry
Boolean false
optional 属性查询返回结果是否包含几何信息。 Example:
layer.setQueryParameter({ url: 'localhost:8090/services/realspace/services/xxx/rest/data', dataSourceName: 'xxx', dataSetName: 'xxx' });
-
设置选择集,用于scene.pick时的选中。
Name Type Description id
Number 图元ID。 -
设置图层对应视口的可见性。
Name Type Description index
Number 索引。 visible
Boolean 可见性。 Throws:
-
DeveloperError : 索引值范围为0~3。
-
-
更新所有对象可见性
Name Type Description visible
Boolean 是否可见。 -
遍历所有图元,根据ID列表,更新对应图元颜色。
Name Type Description ids
AssociativeArray 图元ID列表与颜色的关系数组。 -
遍历所有图元,根据ID列表,更新对应图元可见性,互斥可见关系。 如果设置[1,2]为可见,则其余图元都不可见,如果设置[1,2]为不可见。 则其余图元都可见。
Name Type Description ids
AssociativeArray 图元ID列表与颜色的关系数组。 visible
Boolean 是否可见。 -
更新渲染状态。