Cesium JS无法在沙堡中选择地形
Cesium JS cannot pick terrain in sandcastle
我想简单地点击地形上的一个点来获取它的 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 and https://cesium.com/docs/tutorials/cesium-workshop/
为什么你的结果是空的?
因为 console.log 在 Sandcastle 中无法正常工作。
请尝试更改 "console.log("pos: ", pos);"到“console.log(位置);”
是否可以使用 console.log("pos: ", pos);
但只能在浏览器的检查模式下使用。
因此,不要使用默认的 Sandcastle 控制台,而是在检查模式下使用控制台(例如,在 Chrome 或 Firefox 中)。
我想简单地点击地形上的一个点来获取它的 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 and https://cesium.com/docs/tutorials/cesium-workshop/
为什么你的结果是空的?
因为 console.log 在 Sandcastle 中无法正常工作。
请尝试更改 "console.log("pos: ", pos);"到“console.log(位置);”
是否可以使用 console.log("pos: ", pos);
但只能在浏览器的检查模式下使用。
因此,不要使用默认的 Sandcastle 控制台,而是在检查模式下使用控制台(例如,在 Chrome 或 Firefox 中)。