Autodesk forge Forge Viewer-getWorldCoordinates在不同的场合提供不同的值

Autodesk forge Forge Viewer-getWorldCoordinates在不同的场合提供不同的值,autodesk-forge,autodesk-viewer,autodesk-model-derivative,autodesk-data-management,Autodesk Forge,Autodesk Viewer,Autodesk Model Derivative,Autodesk Data Management,我创建了下面的函数来获取世界坐标,但它在两种情况下给出了不同的值 单击dbId时,我得到dbId坐标,并将其传递给下面的函数,该函数为我提供世界坐标,但您可以看到,当我将dbId选择保存到DB并下次重新加载页面以查看它时,它为我提供了不同的坐标。 为什么会这样 保存dbid阶段 dbid坐标 x:-26.277027130126953 y:18.102033615112305 z:-7.173819303512573 getWorldCoordinates x:256.7634728718010

我创建了下面的函数来获取世界坐标,但它在两种情况下给出了不同的值

单击dbId时,我得到dbId坐标,并将其传递给下面的函数,该函数为我提供世界坐标,但您可以看到,当我将dbId选择保存到DB并下次重新加载页面以查看它时,它为我提供了不同的坐标。 为什么会这样

保存dbid阶段

dbid坐标 x:-26.277027130126953 y:18.102033615112305 z:-7.173819303512573

getWorldCoordinates x:256.76347287180107 y:306.8180434914181 z:0

重新编码页面阶段

dbid坐标 x:-26.277027130126953 y:18.102033615112305 z:-7.173819303512573

getWorldCoordinates x:422.50000131979897 y:249.49997927733767 z:0

函数getObjPosition(dbId){ const model=viewer.model; const instanceTree=model.getData().instanceTree; const fragList=model.getFragmentList(); 设bounds=new THREE.Box3(); instanceTree.enumNodeFragments(dbId,(fragId)=>{ 设box=new-THREE.Box3(); fragList.getWorldBounds(fragId,box); 界限.联合(框); },对); const position=bounds.center(); 返回位置;
}不幸的是,我无法重现该问题

尝试实时演示-刷新页面,并在模型完成加载时看到提示的世界坐标

确保在模型完成加载后(例如,在纹理加载事件之后)转换坐标,否则可能会得到不稳定的结果:

NOP_VIEWER.addEventListener(Autodesk.Viewing.TEXTURES_LOADED_EVENT,()=>{
 alert(JSON.stringify(NOP_VIEWER.worldToClient(
                    new THREE.Vector3(-26.277027130126953,
                                      18.102033615112305,
                                      -7.173819303512573,))))
})

甚至我在GEOMETRY_LOADED_事件上尝试db fetch调用,所以我在TEXTURES_LOADED_事件中尝试了它,但仍然没有机会。在我的获取调用的成功处理程序中,它正在进行worldToClient转换。虽然我们采用了正确的方法,但我没有得到任何线索,说明它为什么不工作。很抱歉,这是错误的,获取代码中有一个错误…它再次工作了。。。
NOP_VIEWER.addEventListener(Autodesk.Viewing.TEXTURES_LOADED_EVENT,()=>{
 alert(JSON.stringify(NOP_VIEWER.worldToClient(
                    new THREE.Vector3(-26.277027130126953,
                                      18.102033615112305,
                                      -7.173819303512573,))))
})