小品管理 EZ3DSketchManager
小品管理是用于控制云渲染小品操作的工具, 该工具的主要功能包括:
- 通过url加载小品模型
- 通过json加载小品模型
- 获取所有图层
- 批量移除小品图层
- 设置双击小品节点回调函数
我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。
eZ3DSketchManager
用户可以调用云渲染实例 cloud
上的 get3DSketchManager()
方法来获取 EZ3DSketchManager
小品操作管理器。
ts
const eZ3DSketchManager = await cloud.get3DSketchManager();
const eZ3DSketchManager = await cloud.get3DSketchManager();
用户调用 cloud.get3DSketchManager()
后,eZ3DSketchManager
属性会被自动挂载到当前 cloud
实例上。
ts
await cloud.get3DSketchManager()
const eZ3DSketchManager = cloud.eZ3DSketchManager
await cloud.get3DSketchManager()
const eZ3DSketchManager = cloud.eZ3DSketchManager
通过url加载小品模型 | addLayerForUrl
- 说明:通过url加载小品模型
我们可以调用 EZ3DSketchManager
上面的 addLayerForUrl
方法来通过url加载小品模型。
- 参数说明
Name | Type | Description |
---|---|---|
layerName | string | 图层名称 |
url | string | 小品模型json所在url(json格式参考addLayerForJson) |
调用示例:
ts
const eZ3DSketchManager = await cloud.get3DSketchManager();
await eZ3DSketchManager.addLayerForUrl(layerName, url);
const eZ3DSketchManager = await cloud.get3DSketchManager();
await eZ3DSketchManager.addLayerForUrl(layerName, url);
通过json加载小品模型 | addLayerForJson
- 说明:通过json加载小品模型
我们可以调用 EZ3DSketchManager
上面的 addLayerForJson
方法来通过json加载小品模型。
- 参数说明
Name | Type | Description |
---|---|---|
layerName | string | 图层名称 |
json | Sketch | 小品模型json |
调用示例:
ts
三维下参数格式:
const param = {
modelUrl: 'http://localhost:3333/playground/model/crane_35t.wlkx',
bShow: true,
bShowByVisibleRange: true,
visibleInterval: {
visibleMin: 0,
visibleMax: 200,
},
data: [
{
guid: '3',
HDPos: {
x: 10, y: 0, z: 0, //三维下位置坐标
},
roll: 90, //滚转角 y轴顺时针旋转
heading: 0, //偏航角 绕z轴顺时针旋转
pitch: 0, //俯仰角 绕x轴顺时针旋转
},
{
guid: '4',
HDPos: {
x: 50, y: 0, z: 0,
},
roll: 30,
heading: 0,
pitch: 0,
},
],
};
gis下参数格式:
const param = {
modelUrl: 'http://localhost:3333/playground/model/crane_35t.wlkx',
bShow: true,
bShowByVisibleRange: true,
visibleInterval: {
visibleMin: 0,
visibleMax: 500,
},
data: [
{
guid: '3',
GCSPos: { //gis下位置经纬高坐标
lon: 113.230893,
lat: 32.990833,
alt: 20,
},
roll: 0,
heading: 0,
pitch: 0,
},
{
guid: '4',
GCSPos: {
lon: 113.231,
lat: 32.990833,
alt: 20,
},
roll: 30,
heading: 0,
pitch: 0,
},
],
};
const eZ3DSketchManager = await cloud.get3DSketchManager();
await eZ3DSketchManager.addLayerForJson(layerName, param);
三维下参数格式:
const param = {
modelUrl: 'http://localhost:3333/playground/model/crane_35t.wlkx',
bShow: true,
bShowByVisibleRange: true,
visibleInterval: {
visibleMin: 0,
visibleMax: 200,
},
data: [
{
guid: '3',
HDPos: {
x: 10, y: 0, z: 0, //三维下位置坐标
},
roll: 90, //滚转角 y轴顺时针旋转
heading: 0, //偏航角 绕z轴顺时针旋转
pitch: 0, //俯仰角 绕x轴顺时针旋转
},
{
guid: '4',
HDPos: {
x: 50, y: 0, z: 0,
},
roll: 30,
heading: 0,
pitch: 0,
},
],
};
gis下参数格式:
const param = {
modelUrl: 'http://localhost:3333/playground/model/crane_35t.wlkx',
bShow: true,
bShowByVisibleRange: true,
visibleInterval: {
visibleMin: 0,
visibleMax: 500,
},
data: [
{
guid: '3',
GCSPos: { //gis下位置经纬高坐标
lon: 113.230893,
lat: 32.990833,
alt: 20,
},
roll: 0,
heading: 0,
pitch: 0,
},
{
guid: '4',
GCSPos: {
lon: 113.231,
lat: 32.990833,
alt: 20,
},
roll: 30,
heading: 0,
pitch: 0,
},
],
};
const eZ3DSketchManager = await cloud.get3DSketchManager();
await eZ3DSketchManager.addLayerForJson(layerName, param);
获取所有图层 | getAllLayer
- 说明:获取所有图层
我们可以调用 EZ3DSketchManager
上面的 getAllLayer
方法来获取所有图层。
调用示例:
ts
const eZ3DSketchManager = await cloud.get3DSketchManager();
const layers = await eZ3DSketchManager.getAllLayer();
const eZ3DSketchManager = await cloud.get3DSketchManager();
const layers = await eZ3DSketchManager.getAllLayer();
批量移除小品图层 | removeLayers
- 批量移除小品图层
我们可以调用 EZ3DSketchManager
上面的 removeLayers
方法来批量移除小品图层。
调用示例:
ts
const eZ3DSketchManager = await cloud.get3DSketchManager();
await eZ3DSketchManager.removeLayers([layer1,layer2]);
const eZ3DSketchManager = await cloud.get3DSketchManager();
await eZ3DSketchManager.removeLayers([layer1,layer2]);
设置双击小品节点回调函数 | setDbClickCallback
- 说明:设置双击小品节点回调函数
我们可以调用 EZ3DSketchManager
上面的 setDbClickCallback
方法来设置双击小品节点回调函数。
- 参数说明
Name | Type | Description |
---|---|---|
fn | (node : null | EZ3DSketchObject ) => void | 函数对象,参数为EZ3DSketchObject | null,返回值为void |
调用示例:
ts
async function pickSketch(node: EZ3DSketchObject | null) {
console.warn(node);
}
const eZ3DSketchManager = await cloud.get3DSketchManager();
await eZ3DSketchManager.setDbClickCallback(pickSketch);
async function pickSketch(node: EZ3DSketchObject | null) {
console.warn(node);
}
const eZ3DSketchManager = await cloud.get3DSketchManager();
await eZ3DSketchManager.setDbClickCallback(pickSketch);