Found this regarding KML. I believe Google Earth API is the same except Lat/Lon order.

http://portal.opengeospatial.org/files/?artifact_id=27810

Section 6.2 Coordinate Reference System (pg14)

"The KML encoding of every kml:Location and coordinate tuple uses geodetic longitude,

geodetic latitude, and altitude (in that order) as defined in Annex A by the GML Coordinate

Reference System (CRS) with identifier LonLat84_5773. Note that altitude is measured

from the vertical datum, which is the WGS84 EGM96 Geoid. The altitude measurement

(orthometric H) is illustrated in Figure 1."

"Figure 1: Altitude H is Measured from the Vertical Datum (Geoid) and is Compared to

the Ellipsoid Height h and the Geoid Undulation N."

So you’re given heights from undulation surfaces (both MSL and terrain are uneven.) OK, so lets say you know the tuples of 3 points. When looking from one point what is the 3D angle between the other 2 points? What is the 3D distance between any 2 points?

To calculate any of this you need to first convert heights to the common reference ellipsoid for all 3 points (then to Cartesian.) Google Earth API won’t give you any of these (camera,ground, or MSL) relative to reference ellipsoid, so you can’t calculate them. You’d have to reference an outside source for this information.

With Cesium you have access to Earth-Fixed xyz coordinates for position and orientation vectors. Plus the ability to create any ray to test distance to ellipsoid or terrain. (and soon MSL.) Height is just a special case of a straight down ray. Google Earth did have hitTest but I believe only with Terrain and ray.origin is always the camera.origin.