【发布时间】:2021-03-28 08:02:11
【问题描述】:
我试图简单地单击地形上的一个点来获取它的 3D 坐标,但我无法让它在 Cesium sandcastle 中工作:
var viewer = new Cesium.Viewer('cesiumContainer', {
terrainProvider : Cesium.createWorldTerrain()
});
var scene = viewer.scene;
scene.camera.setView({
destination: Cesium.Cartesian3.fromDegrees(2.3488, 48.8534, 450),
orientation: {
heading: Cesium.Math.toRadians(0),
pitch: Cesium.Math.toRadians(-40),
},
});
var handler = new Cesium.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function onLeftClick(movement) {
var ray = scene.camera.getPickRay(movement.position);
var pos = scene.globe.pick(ray, scene);
console.log("pos: ", pos);
}, Cesium.ScreenSpaceEventType.LEFT_CLICK
);
函数在每次点击时执行,但结果实际上是空的。
如何通过左键获取地形坐标?
示例的灵感来自:https://cesium.com/docs/cesiumjs-ref-doc/Globe.html#pick 和 https://cesium.com/docs/tutorials/cesium-workshop/
【问题讨论】:
标签: cesium