我開發時用的最多的一個方法,為的是獲得具體點的坐標和記錄當前相機視角,一部分代碼是什么意思我也忘了,反正好用就行;
var arrLoc = []; var pickPosition = { x: null, y: null } var handler = new Cesium.ScreenSpaceEventHandler(viewer.scene.canvas); //定義事件 handler.setInputAction(function (movement) { // screenLocation.x = movement.position.x; // screenLocation.y = movement.position.y; var cartesian = viewer.camera.pickEllipsoid( movement.position, scene.globe.ellipsoid ); if (cartesian) { var cartographic = Cesium.Cartographic.fromCartesian(cartesian); var longitudeString = Cesium.Math.toDegrees( cartographic.longitude ).toFixed(2); //要更高的精度就修改保留的小數位數 var latitudeString = Cesium.Math.toDegrees( cartographic.latitude ).toFixed(2); //同上 pickPosition.x = longitudeString; pickPosition.y = latitudeString; let cf = { x: parseFloat(pickPosition.x), y: parseFloat(pickPosition.y) } console.log(cf) //鼠標點擊位置 var a = { position: viewer.camera.position, heading: viewer.camera.heading, pitch: viewer.camera.pitch } console.log(a) //當前視角 } }, Cesium.ScreenSpaceEventType.LEFT_CLICK);