(ENU=EastNorthUp frame, HPR=HeadingPitchRoll)
Currently pointer location has no bearing when using mousewheel to change altitude. It seems most map services do take into account the pointer position. You’ll notice that the lat/lon under the pointer is constant when changing altitude. Even Google Maps in Earth mode does this at low altitudes (but only approximately at high altitudes.)
Cesium already has functions that can determine the lat/lon under the pointer. Some possible methods:
Method 1: keeps target on the same part of the screen but doesn’t maintain ENU HPR
-Simply move the camera.position in a straight line in Earth-Fixed Cartesian toward that point.
-While maintaining Earth-Fixed HPR, not ENU HPR (basically keep camera.direction,camera.right,camera,up vectors constant.)
Method 2: keeps ENU HPR but doesn’t keep target on the same part of the screen
-Simply move the camera.position in a straight line in Earth-Fixed Cartesian toward that point.
-While maintaining ENU HPR.
-Problem: the lat/lon under the pointer will keep shifting
Method 3: keeps ENU HPR and keeps target on the same part of the screen
Probably involves moving the camera along a bizarre curve. If the other methods don’t ‘pan out’ the logic for this method should probably be pursued.