The question about annotations has been asked many times, please use the search function.
As for moving the camera, I’d recommend using Yomutsu’s camera controls and for each label, pick a camera position that looks good. When you find a position you like, use:
const position = new Vector3();
const target = new Vector3();
You can save the
target however you like, for example log the values to the console and hard code them to a label.
Then when the user clicks the label, you can move back to that camera position like so:
const enableTransition = true; // whether to animate or jump to the new position
controls.setLookAt(position.x, position.y, position.z, target.x, target.y, target.z, enableTransition);
Using the latest three.js version which has iterable vectors you can shorten this to:
controls.setLookAt(...position, ...target, true);