Estoy intentando simplemente hacer clic en un punto de un terreno para obtener sus coordenadas 3D, pero no puedo hacer que esto funcione en el castillo de arena de Cesium:
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
);
La función se ejecuta con cada clic, pero el resultado en realidad está vacío.
¿Cómo puedo obtener las coordenadas del terreno con un clic izquierdo?
El ejemplo está inspirado en: https://cesium.com/docs/cesiumjs-ref-doc/Globe.html#pick y https://cesium.com/docs/tutorials/cesium-workshop/
------------------------------------
¿Por qué el resultado está vacío?
Porque console.log no funciona como esperaba en Sandcastle.
Intente cambiar "console.log("pos: ", pos);&quAntiguo Testamento; a "console.log(pos);"
1
¿Alguna explicación de por qué no funciona al insertar texto antes de los valores reales?
– caballero_suizo
25 de junio de 2021 a las 13:03
------------------------------------
¿Es posible utilizar console.log("pos: ", pos); pero sólo dentro del modo de inspección de un navegador.
Entonces, en lugar de usar el Sandcastle co predeterminadonsole, use la consola en modo de inspección (por ejemplo, en Chrome o Firefox).