【问题标题】:forge Viewer - Markup camera change issueforge Viewer - 标记相机更改问题
【发布时间】:2025-12-29 06:45:06
【问题描述】:

在我的查看器中,我使用云模式绘制了一个标记,并且在相机更改事件期间,当标记继续移动时,我无法将关联的标签与标记映射。 为了完成这项工作,我存储坐标,并在相机更改事件时使用 worldToClient 查找新坐标,但这不起作用

所以问题在于寻找原始世界坐标。我尝试了以下多种方法,但似乎没有什么对我有用。非常感谢这方面的帮助。只是为了了解这一点,我附上相机更换前后的模型截图。

/*** option 1***/
worldCoord = markup.markups[0].generateBoundingBox().max;
/*** option 2***/
var coords = viewer.impl.clientToViewport(pos.x, pos.y);
worldCoord = coords.unproject(viewer.impl.camera)
/*** option 3***/
worldCoord = markup.markups[0].getClientPosition()
/*** option 4***/
worldCoord = viewer.clientToWorld(pos.x,pos.y,true);
/***option 5***/
worldCoord = markup.markups[0].getBoundingRect()

【问题讨论】:

    标签: autodesk-forge autodesk-viewer autodesk-model-derivative


    【解决方案1】:

    我终于明白了。

    我们可以使用您的标签存储图层名称信息,并使用以下代码在您的相机更改事件中获取它。

    position = markup.svgLayersMap[layerName].markups[0].getClientPosition()

    希望这对某人有所帮助

    【讨论】: