【问题标题】:How to move to any given coordinates in forge viewer如何在伪造查看器中移动到任何给定坐标
【发布时间】:2021-12-26 13:49:35
【问题描述】:

我正在努力在 forge viewer 中移动功能。我尝试了不同的方法来实现这一点,但我无法做到这一点。注:坐标已给出。我只想导航或移动到那个坐标。

【问题讨论】:

    标签: autodesk-forge


    【解决方案1】:

    您可以对viewer.navigation 对象使用不同的方法,例如:

    • setView(position, target) 立即将相机移动到给定的位置和方向

    • setTransitionRequest(state, pos, coi, fov, reorient, pivot) 在短时间内将相机转换到新状态。以下是不同参数的含义:

      • state: boolean - 请求的值,设置为 true 以请求更改视图。
      • pos: THREE.Vector3 - 世界空间中的新相机位置
      • coi: THREE.Vector3 - 世界空间中相机应朝向的点。
      • fov: number - 以度为单位的垂直视野
      • reorient: boolean - 设置为 true 以重新计算向上向量
      • pivot: THREE.Vector3 - 新的支点

    【讨论】:

    • 感谢您的回答,但我找不到 setTransitionRequest 方法。
    • Yes :/ 出于某种原因,自动生成的文档不包含此方法。这就是我在这里包含方法签名的原因。我们将对此进行调查。
    • 是的,你是对的,文档不包含此方法,但它也会引发错误,说 setTransitionRequest 不是函数。
    • 抱歉,这是setRequestTransition,不是setTransitionRequest
    【解决方案2】:

    添加到彼得的答案...

    如果您有 lat-long 位置,那么您可以将相机移动到该位置,方法是将 lat-long 转换为 LMV 模型坐标 x、y、z 位置。

    https://forge.autodesk.com/en/docs/viewer/v7/reference/Extensions/GeolocationExtension/#lonlattolmv-lonlat

    获得 x,y,z 位置后,使用 setView()。

    如果您希望在多个位置之间实现更平滑的摄像机移动 (lerp),则可以使用这种持续时间较慢的 viewer.restoreState() 技术。

    这是一个演示: https://forge.autodesk.com/blog/view-each-floor-using-vertical-explode

    【讨论】:

    • 感谢您的回答。它有帮助,但现在它正在导航到模型的外侧,我想导航到准确的那个点。目标有什么问题吗?
    猜你喜欢
    • 2020-07-18
    • 2022-01-27
    • 2018-06-28
    • 2021-09-29
    • 2020-05-28
    • 2021-04-23
    • 2018-08-23
    • 2021-09-06
    • 2020-04-10
    相关资源
    最近更新 更多