1. MultiRegionsClipping

1.1. 初始化 new MultiRegionsClipping(geomap, options)

多区域裁切类,支持多个简单多边形区域的地形和模型(目前仅支持B3DM类型和PNTS类型)剖切。地形裁切时支持设置被裁切区域的深度、支持底部和侧面纹理的设置。 可以用来替换GlobalClipping类,GlobalClipping类存在凹多边形裁切不完整和拉近视角时切面抖动等问题。 注意事项: - 1.简单多边形是指不包含交叉和内部空洞的凹多边形或凸多边形; - 2.该类使用的是globe对象(地形和影像)和tileset对象(3DTiles模型)的多个区域裁切属性,会与用到globe和tileset的单个区域裁切属性clippingPlanes的相关功能(包括但不限于PlaneClipTool、GlobalClipping和ClipTools等类)在同时使用时产生冲突(优先使用多个区域裁切属性,从而出现其他功能暂时无效的情况)。

Param Type Default Description
geomap GeoMap

GeoMap的实例对象

[options] Object

包含以下参数的Object对象:

[options.globeClipEnabled] String true

是否开启地形裁切

[options.modelClipEnabled] Number true

是否开启模型裁切

[options.clipModels] Array.<Cesium3DTileset> []

参与裁切的模型列表

Example

var multiClipping = new BOSGeo.MultiRegionsClipping(geomap, {
  globeClipEnabled: true
});

1.2. 属性

属性名 Type Default ReadOnly Description
globeClipEnabled Boolean true false

是否开启地形裁切

modelClipEnabled Boolean true false

是否开启模型裁切

clipModels Array.<Cesium3DTileset> [] false

是否开启模型裁切

1.3. 方法

1.3.1. multiRegionsClipping.addClippingModel(model) ⇒ Boolean

添加裁切模型

Returns: Boolean -

是否添加成功

Param Type Description
model Cesium3DTileset

新增的裁切模型对象

1.3.2. multiRegionsClipping.removeClippingModel(modelId) ⇒ Boolean

将指定id的模型的从裁切模型集合中移除

Returns: Boolean -

true表示移除成功,false表示当前modelId移除失败或者原本就不存在于待裁切的模型列表中

Param Type Description
modelId String

模型添加时的唯一id

1.3.3. multiRegionsClipping.addClippingRegion(options) ⇒ Promise.<String>

添加裁切区域

Returns: Promise.<String> -

promise中返回string或者undefined,当前裁切区域的id,若为undefined则表示添加的区域不符合规范

Param Type Default Description
options Object

开挖参数信息

options.positions Array.<Cartesian3>

裁切区域顶点笛卡尔坐标集

[options.depth] Number 10

开挖相对(对应绘制顶点地形最小)深度,值必须大于零

[options.sideImage] String Default_Side_Path

开挖侧面贴图地址

[options.bottomImage] String Default_Bottom_Path

开挖底面贴图地址

[options.sample] String 1

地形高度采样间隔,单位为米,值必须大于零

Example

var regionId;
var positions = []; // 非重复位置的顶点个数必须大于三
multiClipping.addClippingRegion({
 positions,
}).then((id) => {
 regionId = id;
});

1.3.4. multiRegionsClipping.modifyClippingRegion(regionId, options) ⇒ Boolean

修改裁切区域(目前仅支持地形的开挖深度、侧面贴图和底部贴图的修改)

Returns: Boolean -

true表示修改成功,false表示当前regionId不存在或者没有需要更新的信息

Param Type Default Description
regionId String

要修改的裁切区域id(添加时返回的)

options Object

修改的裁切区域信息

[options.depth] Number 10

裁切区域开挖深度,深度为相对于开挖顶点中高程最低点而言的,值必须大于零

[options.bottomImage] String

裁切区域底部贴图地址

[options.sideImage] String

裁切区域侧面贴图地址

Example

multiClipping.modifyClippingRegion(regionId, {
 depth: 20
});

1.3.5. multiRegionsClipping.removeClippingRegion(regionId) ⇒ Boolean

移除指定裁切区域

Param Type
regionId String

1.3.6. multiRegionsClipping.flyToClippingRegion(regionId, [offset]) ⇒ Boolean

定位到指定id的裁切区域

Returns: Boolean -

当前id裁切区域是否存在

Param Type Description
regionId String

指定id的裁切区域(添加时返回的)

[offset] HeadingPitchRange

基于裁切区域包围球中心的偏移

Example

const radiansPerDegree = Math.PI / 180;
var offset = new BOSGeo.HeadingPitchRange(0, -90 * radiansPerDegree , 0);
multiClipping.flyToClippingRegion(regionId, offset); // 俯视开挖区域

1.3.7. multiRegionsClipping.removeAll()

移除所有裁切区域

1.3.8. multiRegionsClipping.destroy() ⇒ Object

销毁

Returns: Object -

返回销毁后的对象

版权所有@盈嘉互联(北京)科技有限公司 京ICP备15051988号-9 Copyright © 2022 all right reserved,powered by Gitbook该文件修订时间: 2022-07-19 11:34:25

results matching ""

    No results matching ""