Skip to content
导览

小品管理 EZ3DSketchManager

小品管理是用于控制云渲染小品操作的工具, 该工具的主要功能包括:

  1. 通过url加载小品模型
  2. 通过json加载小品模型
  3. 获取所有图层
  4. 批量移除小品图层
  5. 设置双击小品节点回调函数

我们将提供详细的使用指南和功能说明,帮助用户更好地使用该工具。

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加载小品模型。

  • 参数说明
NameTypeDescription
layerNamestring图层名称
urlstring小品模型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加载小品模型。

  • 参数说明
NameTypeDescription
layerNamestring图层名称
jsonSketch小品模型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 方法来设置双击小品节点回调函数。

  • 参数说明
NameTypeDescription
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);