Hola Polifemo
Curiosa esa forma de determinar si está dentro de un margen de altura. Mides la diferencia entre latitudes y si es pequeña, estas cerca del suelo.. nunca se me hubiera ocurrido
Le echaré un vistazo.
Por cierto, he hecho una consulta al respecto de la exageración del terreno en la página oficial de Google Earth (donde puedes reportar fallos y solicitar funciones, no la conocía) y esto me han contestado de momento code.google.com/ ...ail?id=619
Al principio, me han regañado remitiéndome a un ejemplo y diciendo que pusiera como valor 0 (lo que ya habíamos intentado y que no funciona). Cuando les he dicho que eso no funciona y que el ejemplo que citan tampoco funciona correctamente parece que han reconsiderado el tema. A ver que pasa.
También he consultado sobre el tema de la inclinación y he incluido la forma de dibujar circulos sin que se conviertan en ovalos. Ahí no han contestado todavía
Un saludo
...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... Leer más ...
¿Es curioso verdad? Algo que está resuelto en el programa y que parece que no es posible hacer en el plugin.
Estaría bien hacer que solo se ejecute a partir de una altura determinada pero no se me ocurre la forma de hacerlo. Aunque pensándolo bien, quizá tendría que ser una función que comprobara a que altura está la vista y hacer que se ejecute la de enderezar_vista cuando correspondiese pero ¿que se ganaría con ello? Mientras la vista no se inclina, el usuario no percibe nada, solo se ve cuando empieza a inclinarse que, cada vez que se mueve el ratón, la vista se "endereza".
He probado con las otras opciones que permite la función con el fin de hacer lo mas transparente posible la ejecución de la función al usuario pero no consigo que lo sea así que la que creo que mas se ajusta a lo que buscaba es la de mover el ratón. Estas posibilidades que comento son:
google.earth.addEventListener(ge.getGlobe(), 'mouseclick', enderezar_vista);
google.earth.addEventListener(ge.getGlobe(), 'mousedblclick', enderezar_vista);
google.earth.addEventListener(ge.getGlobe(), 'mouseover', enderezar_vista);
google.earth.addEventListener(ge.getGlobe(), 'mousedown... Leer más ...
Vaya, pensé que desactivando la opción de ver la vista terreno desaparecería el giro paulatino. Pero no, independientemente de que esté o no activa la vista terreno y la de streetview, siempre se inclina automáticamente el punto de vista.
La verdad es que no encuentre mas opción que la de tu función enderezar_vista(). Lo único que añadiría es que como mínimo le pongas como condición que solo se ejecute cuando la altura sea menor de X metros.
Echa un ojo por internet a ver si alguien ha dado con la solución. Porque si no... amigo Morta, creo que estamos vencidos.
Ah, que no es que en GoogleEarth no se incline la vista al acercarte, es que hay que activarlo en Herramientas/Opciones/Pestaña de navegación.
Respecto a la exageración del terreno. Supongo que con la función de la misma interface "setTerrainExaggeration(double terrainExaggeration)" estableciendo el double a un valor de uno funcionará.
Si funciona, desde luego mejor solución esa que cargar una función en cada evento. Si no funciona, yo solo activaría el evento cuando estés por debajo de una altura determinada; es decir cuando empiece a inclinar la vista.
A ver si alguien me puede echar un cable. No se si solo me ocurre a mi o que pero cuando acerco la vista hasta el suelo, automáticamente se inclina y llega a mostrar el horizonte. Me gustaría evitarlo y que siempre se quede en vertical sobre el punto que enfocamos. No se si me explico. Cuando nos vamos acercando a la superficie, llega un momento en que cuando estamos muy cerca del suelo, la vista se va inclinando automáticamente. Observo que solo ocurre en el plugin y no en el programa normal de Google Earth. Pongo un ejemplo básico:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>Inclinación de la vista al acercarse al suelo</title>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<script src="http://www.google.com/jsapi?key=ABQIAAAArCZgeQ8ddm8YbeJQqqHN5BTYrZjdppbykE52CdH9dtH9wJ0VsBQSgm6ZbaTJsaMARyyYkz_JttmHMQ"></script>
<script type="text/javascript">
google.load("earth", "1");
var ge = null;
function init() {
google.earth.createInstance("map3d", initCB... Leer más ...