Efectivamente, la función se deberÃa ejecutar solo cuando se compruebe que la altura es menor que una determinada . ¿Conoces las estructuras condicionales IF THEN...ELSE?
Le he echado un ojo al api de Google earth, y lo primero que he visto es que es muy pobre, la verdad es que está muy limitada comparada con el API de Gmaps. Y parece que hay un modo que deberÃa funcionar, pero que es largo y complicado:
1.-El método "GEView.getViewportGlobeBounds()" te va a devolver un objeto "KmlLatLonBox". Ver
aquÃ.
2.-La interfaz KmlLatLonBox dispone de las funciones KmlLatLonBox.getNorth() y KmlLatLonBox.getSouth() que te dan la latitud superior e inferior de la pantalla en la vista del momento (en grados decimales). Ver
aquÃ.
3.-Las restas (en su valor absoluto para que el algoritmo funcione bien en el hemisferio sur), y si el valor es menor que el que tú determines, se activa el enderezamiento.
Simple e intuitivo, ¿verdad?
Supongo que la cuestión es si te vale la pena tanta historia, o si directamente le aplicas la función en cada cambio de zoom. Yo te recomendaba esto por: elegancia, para no sobresaturar el procedimiento con operaciones innecesarias y sobre todo (y la mas importante) por que con tu método estabas impidiendo que el usuario pudiera voluntariamente inclinar la vista, pues en ese caso la función automáticamente enderezarÃa la vista e impedirÃa la operación.
La verdad es que veo el API de Google Earth cada vez mas limitado (además de mal explicado). Y no creo que lo amplÃen en un futuro, google ve mas negocio con el maps.
Oye, ¿que tal si dejas un checkbox para activar y desactivar el evento a gusto del usuario?. ¿y sobre el botón derecho? en gmaps exite ese evento, no se si en GE está.
Respecto al terreno, no se si tomarmelo como curioso o como un fallo. Ahora, que también es verdad que los programadores de GEarth pensaran que quien no quiera una vista en relieve, mejor que cargue la vista satelital de gmaps (con menor gestión de recursos).
Bueno, la pelota está en tu tejado.