autodesk-forge - 使用 Autodesk Forge Viewer Geolocation Extension 的结果不正确
问题描述
这与我之前的问题有关。我发布了一个新问题,试图更好地解释这种情况。
我正在使用从无人机调查中获取的数据将标记对象放置在模型上。我可以访问高精度 GPS 数据以及 omega/phi/kappa 旋转数据。
我正在尝试使用Autodesk.Geolocation
扩展将 lon/lat/alt 数据转换为查看器空间。
所有模型最初都是在 Revit 中创建的。
当我使用Geolocation
扩展程序时,似乎refPointLMV
并GlobalOffset
没有正确考虑。
这是一个例子:
如您所见,模型上的选定点 [0] 与真正的 GPS 坐标相去甚远。此外,它refPointLMV
具有巨大的价值。
当我从无人机照片中获取一些 lon/lat/alt 数据时,也会发生类似的情况。无人机 GPS 数据将接近模型positionLL84
,例如 (4.586577106, 51.626037158, 49.095)。但是,当我这样做时,Geolocation.lonLatToLMV(4.586577106, 51.626037158, 49.095)
我会得到一个远离屏幕的结果。
两个多月以来,我们已经与 Autodesk 进行了与此相关的支持查询,但在那里没有取得太大的成功。他们说工程团队太忙了,无法解决这个问题,并建议尝试修复我们这边的错误。支持参考 LMV-5261。
我已经能够Geolocation.lonLatToLMV
使用以下代码将结果带入查看器空间:
const gpsPosition = new THREE.Vector3(
longitude,
latitude,
altitude,
);
const position = viewer
.getExtension('Autodesk.Geolocation')
.lonLatToLmv(gpsPosition);
const data = viewer.model.getData();
const globalOffset = data.globalOffset;
const refPointTransform = data.refPointTransform;
// applying the transform
position.add(globalOffset)
position.applyMatrix4(refPointTransform);
// HACK: after applying the above transforms, a final
// rotation of -45 degrees is required to move the points into position
// once this has been done, the locations match up exactly to photos.
// Seems like a weird hack, but I've tested with over 20 drone photos, they all match up.
const quaterion = new THREE.Quaternion().setFromEuler(
new THREE.Euler(0, 0, -Math.PI / 4),
);
position.applyQuaternion(quaterion);
这里的问题是我们正在使用单个模型进行测试,这显然不是一个强大的解决方案,我们可以期望它可以与我们投入的所有未来模型和无人机数据一起使用。
工程团队可能需要多长时间才能解决此问题?还是他们可能会解决这个问题?
解决方案
推荐阅读
- reactjs - 如果内容为空字符串,则样式组件不显示 ::after 伪类
- html - 具有全宽背景的引导容器子项
- javascript - 为什么我的 firebase 云功能会运行多次?
- c++ - C 8.2.1 狂想曲开发者
- excel - FoxitPhantom pdf 转 Excel 自动化
- php - 居中 HTML 对象 - 这包括标签、文本输入框和按钮?
- crm - 如何在 Zoho CRM 中自动填写字段
- arrays - React - 数组作为它们的长度传递
- schema - 如何在 OpenApi 中使用 OneOf 和两个类似的模式?
- java - FusedLocationProviderClient 返回错误的经纬度