Autodesk forge 使用GPS坐标将自定义对象放置到查看器空间

Autodesk forge 使用GPS坐标将自定义对象放置到查看器空间,autodesk-forge,autodesk-viewer,Autodesk Forge,Autodesk Viewer,我使用从无人机调查中获取的数据将标记对象放置在模型上。我可以获得高精度GPS数据和ω/φ/卡帕旋转数据 我们的目标是在我选择一张照片时将观察者相机移动到适当的位置,这样我们就可以从照片中很好地看到模型的这一部分 到目前为止,我们只使用一个模型,我想验证我是否正确地使用了转换,以便可以使用其他模型。另外,我需要使用omega/phi/kappa匹配相机方向,我想知道是否也需要转换方向数据 该模型最初来自Revit 以下是我使用NOP_VIEWER.model.getData找到的各种转换 全局偏移

我使用从无人机调查中获取的数据将标记对象放置在模型上。我可以获得高精度GPS数据和ω/φ/卡帕旋转数据

我们的目标是在我选择一张照片时将观察者相机移动到适当的位置,这样我们就可以从照片中很好地看到模型的这一部分

到目前为止,我们只使用一个模型,我想验证我是否正确地使用了转换,以便可以使用其他模型。另外,我需要使用omega/phi/kappa匹配相机方向,我想知道是否也需要转换方向数据

该模型最初来自Revit

以下是我使用NOP_VIEWER.model.getData找到的各种转换

全局偏移向量3 placementWithOffset Matrix4-似乎只是作为矩阵的全局偏移的倒数? PlacementTransformMatrix4-通常未定义,我看到一些提示,这是一个用户定义的矩阵。 refpointtransformmatrix4 此外,NOP_VIEWER.model.getData.metadata中还有一些转换:

metadata.georreference.positionLL84数组[3]-这是存储模型GPS坐标的位置 metadata.GEOREFERNCE.refPointLMV数组[3]-不知道这是什么,它在许多模型上都有巨大且看似随机的值。例如,在我当前的模型上,它是[-17746143.211481072,-6429345.31882183,27.360225423452952] 元数据。[自定义值].angleToTrueNorth-我想这是在指定模型是与true对齐还是与magnetic north对齐? 元数据。[自定义值].refPointTransform-Array[12]-用于创建上述refPointTransform矩阵的数据 我已经能够使用以下步骤将位置数据导入查看器空间:

使用Autodesk.geolocation扩展名lonLatToLmv函数将lon/lat/alt转换为查看器坐标。 获取转换后的数据并应用各种转换,直到它在模型空间中正确定位。 const gpsposposition=新的3.Vector3 经度 纬度 海拔高度 ; 常量位置=查看器 .getExtension“Autodesk.Geolocation” .Lonlattolmvgps位置; const data=viewer.model.getData; 常量globalOffset=data.globalOffset; 常量refPointTransform=data.refPointTransform; 常数angleToTrueNorth=3.Math.degToRad data.metadata['custom values'].angleToTrueNorth ; //应用变换 position.addglobalOffset position.ApplyMatrix x4RefPointTransform; //最后,根据角度将位置旋转到正北。 常量四元数=新的3.Quaternion.setFromEuler 新的3.0,0,-角度到正北, ; 位置。应用四元数四元数; 问题:

我是否也需要对旋转数据应用一些变换? 我是否正确应用了变换? 编辑:我发现data.refPointTransform矩阵已经对angleToTrueNorth进行了编码,所以我两次应用它显然是做错了什么


我目前无法访问无人机照片数据,以指定它们是否与正北或磁北对齐,但我假设它们是正北。

您发现的地理定位参数是内部的,不应直接使用,特别是因为不同的输入文件格式Revit、IFC、Navisworks、,etc可能以不同的形式输出此信息。使用示例代码中使用的地理定位扩展及其方法lonLatToLmv应该会为您提供映射到场景坐标系的最终lat/long/alt值。如果没有,请向我们发送一个示例文件和代码片段,以便在autodesk.com上伪造网络帮助,我们将对此进行调查

就您发现的各种xform属性而言:

当模型的顶点数据移动到原点附近时,有时会在模型上定义全局偏移,以避免精度问题 placementWithOffset是通过将globalOffset应用于placementTransform来在内部计算的 placementTransform是一个可选参数,可以在加载模型时传入;转换将应用于模型中各个元素的所有xforms refPointTransform是另一种元数据类型,有时可以在globalOffset不足时从AEC设计转换的模型上定义
我对你的建议加了一条。一位同事正在研究这个问题,应该很快回复。>您发现的地理定位参数是内部的。。。是的,我已经猜到了。但是,在我们的案例中,我们将只使用Revit模型,因此我们在这方面有更多的余地。我有一个与此问题相关的支持请求,现在已经有两个多月了。他们12月12日的最新回复:>很抱歉,我还没有从我们的工程团队那里收到这些信息。目前,他们正忙于其他高优先级的任务和bug修复,而且据我所知,他们没有资源进行进一步的调查。之后,他们建议计算误差偏移量,并尝试在我们这端修复它。这就是我现在的处境。我想我更喜欢 伊利希望在这里得到回应,而不是试图再次获得支持。