首页 / 浏览问题 / 三维GIS / 问题详情
supermap iclient3D for cesium 经纬度转屏幕坐标为undefined
9EXP 2024年07月28日
vue2中使用supermap iclient3D for cesium 生成热力图时需要获取屏幕坐标。
const cartesian = Cesium.Cartesian3.fromDegrees(
  Number(item.x),
  Number(item.y),
);
const projected =  Cesium.SceneTransforms.wgs84ToWindowCoordinates(viewer.scene, cartesian);
console.log(cartesian,projected)

打印projected是undefined。直接将点添加到viewer.entities 是可以正常落点的

1个回答

您好,可以从以下几个方面排查下:

1、在调用 Cesium.Cartesian3.fromDegrees 方法时,确保经纬度值 item.x 和 item.y 是有效的数字。如果这些值无效或者超出了有效的经纬度范围,可能会导致 Cartesian3 对象生成失败。

2、确保在尝试转换坐标时,Cesium 的场景已经完全加载。有时候如果尝试在场景未完全加载时执行坐标转换操作,可能会导致转换失败或返回 undefined。可以通过监听 Cesium 的场景加载事件来确保操作发生在场景完全加载后。

希望可以帮助您
1,455EXP 2024年07月29日
...