ACC APIs创建问题接口传递3D点位的疑问及坐标转换咨询
ACC API 创建问题时传递Viewer 3D点位的方法
不需要将THREE.js Vector3转换为二维经纬度,ACC的Issues API支持直接存储模型空间的3D坐标,你需要用viewablePosition字段来传递,而非文档示例里的gpsCoordinates。
具体操作步骤:
- 获取Viewer中的3D点位
在Viewer的点击事件中,通过viewer.clientToWorld或命中测试结果提取模型空间的3D坐标:
viewer.addEventListener(Autodesk.Viewing.SELECTION_CHANGED_EVENT, (event) => { if (event.selections.length > 0) { const hitTestResult = viewer.impl.hitTest(event.clientX, event.clientY); if (hitTestResult) { // 提取模型空间的三维坐标 const worldPoint = hitTestResult.point; // 转换为API兼容的格式 const viewablePosition = { x: worldPoint.x, y: worldPoint.y, z: worldPoint.z }; // 后续用于构造创建问题的参数 } } });
- 构造Issues API请求参数
在POST请求的请求体中,添加viewablePosition字段,同时补充关联模型的viewableId(可从当前Viewer实例中获取):
const issuePayload = { title: "模型点位异常", statusId: "你的状态ID", subtypeId: "你的子类型ID", viewableId: viewer.model.getViewableId(), // 获取当前模型的视图ID viewablePosition: { x: worldPoint.x, y: worldPoint.y, z: worldPoint.z } };
- 提交请求
将上述issuePayload作为请求体,调用ACC Issues的创建接口即可。提交后,ACC平台会将该3D点位与问题绑定,后续查看问题时将自动定位到模型对应位置。
注意:viewableId是必填项,用于指定点位所属的模型视图,确保ACC能正确关联并定位到目标模型位置。
内容的提问来源于stack exchange,提问作者Gustavo da Costa e Silva
相关产品推荐
相关产品推荐

