使用 Google Photorealistic 3D Tileset 获取点击位置 CesiumJS 的高度

Get altitude of click position CesiumJS with Google Photorealistic 3D Tileset

提问人:Kokizzu 提问时间:10/14/2023 最后编辑:Kokizzu 更新时间:10/14/2023 访问量:28

问:

这是示例演示应用程序

https://sandcastle.cesium.com/?src=Google%20Photorealistic%203D%20Tiles.html

我试图从这个片段中添加高度(修改后可以点击而不是鼠标移动)

在原始代码下方,然后运行 (F8),但它显示错误,它没有 globe 对象。

handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas);
handler.setInputAction(function (event) {
  let ray = viewer.camera.getPickRay(event.position);
  console.log(JSON.stringify(ray));
  let mousePosition = viewer.scene.globe.pick(ray, viewer.scene); 
  // error because globe undefined ^
  if (Cesium.defined(mousePosition)) {
    let cartographic = Cesium.Cartographic.fromCartesian(mousePosition);
    let latStr = Cesium.Math.toDegrees(cartographic.latitude);
    let lonStr = Cesium.Math.toDegrees(cartographic.longitude);
    let heightStr = cartographic.height;
    console.log(latStr, lonStr, heightStr)
}, Cesium.ScreenSpaceEventType.LEFT_CLICK);

如果我尝试启用 ,它在 CesiumJS 的初始化阶段失败了。globe: true

也尝试了这个问题的解决方案,但是如果使用Google磁贴集,则第二个答案没有地球对象,第一个答案仅获取陆地高度,而不是单击高度。

如何通过鼠标点击获得海拔高度(最好是海平面,或任何类型的海拔高度都可以)?

或者,除了谷歌 3d 逼真的 3d 图块集之外,还有其他更完整的 3d 图块集,我可以使用它来获取点击的高度位置?

铯JS 谷歌-3D-tileset

评论


答: 暂无答案