I want to save camera position on scene, what props do i need to save (with headingpitchrange) and how to restore position? I did read similar topics, but they are outdated and doesnt work.
I guess you need to save and restore camera position and orientation.
// save
const camera = viewer.camera;
const cameraPositionCartographic = camera.positionCartographic;
let view = {
longitude: CesiumMath.toDegrees(cameraPositionCartographic.longitude),
latitude: CesiumMath.toDegrees(cameraPositionCartographic.latitude),
height: cameraPositionCartographic.height,
heading: CesiumMath.toDegrees(camera.heading),
pitch: CesiumMath.toDegrees(camera.pitch),
roll: CesiumMath.toDegrees(camera.roll)
};
const jsonView = JSON.stringify(view);
// restore
view = JSON.parse(jsonView);
const destination = Cartesian3.fromDegrees(view.longitude, view.latitude, view.height);
const orientation = {
heading: CesiumMath.toRadians(view.heading),
pitch: CesiumMath.toRadians(view.pitch),
roll: CesiumMath.toRadians(view.roll)
};
viewer.camera.flyTo({
destination,
orientation
});
1 Like
I’ve tried do the same but with wrong orientation i guess, so it doesnt work:
...
orientation: {
direction: new Cartesian3(direction.x, direction.y, direction.z),
up: new Cartesian3(up.x, up.y, up.z),
},
...
Your example do the thing, thank you