Instalando Google Earth en Ubuntu 12.04

Aunque mañana (26 de abril) sale el “Pangolín preciso” muchos nos hemos descuernado estos días con la beta, teniendo ganas de probarlo antes de su salida. Como hoy hemos estado amenazados de “ciclogénesis explosiva” y, en general, hace un día de esos que no inspiran a salir de casa me he dedicado a buscar cuestiones por foros e intentar resolverlas. Esta es una de ellas ¿cómo instalar Google Earth en dicha versión? Desde linea de comandos son tres líneas, ya sea la versión 32 bits o la de 64.

Para la versión de 32 bits la cosa es así:

<br />wget http://dl.google.com/dl/earth/client/current/google-earth-stable_current_i386.deb<br /><br />sudo dpkg -i google-earth-stable_current_i386.deb<br /><br />sudo apt-get install -f<br />

Proceso explicado rápidamente: Descargamos desde el repositorio de google, desempaquetamos e instalamos lo descargado y, finalmente, instalamos las dependencias no cumplidas.

Para la versión de 64 bits la cosa es igual pero cambiando el nombre de la versión a descargar:

<br />wget http://dl.google.com/dl/earth/client/current/google-earth-stable_current_amd64.deb<br /><br />sudo dpkg -i google-earth-stable_current_amd64.deb<br /><br />sudo apt-get install -f<br />

Seeep, el proceso es el mismo. Con esto ya tenéis GoogleEarth en vuestro Ubuntu 12.04 Precise Pangolin.

Pero no es tan fácil, porque nunca es tan fácil. En Ubuntu 11.10 daba un problemilla al abrirse (se abría y se cerraba de golpe), no se si se mantendrá en 12.04 porque lo subsané antes de probar si fallaba (mea culpa… y culpa meó). La cosa es como sigue:

<br />sudo gedit ~/.config/Google/GoogleEarthPlus.conf<br />

Tenéis que editar el archivo de configuración, ya que el fallo viene por la ventana de sugerencias que se abre automáticamente. Para poder arreglar esto buscáis el parámetro enableTips=true y cambiáis el true por false. Con eso ya estaría. Si os falla tras instalar probar a hacer esto. No comprobé si había nuevos errores.

El API de geolocalización en HTML5

Aunque la geolocalización no forme parte de la especificación original de HTML5 (al menos según dice el manual de Remy Sharp, que es el que en un primer momento fue manual de referencia), su funcionalidad es una de las más atractivas e interesantes de dicho lenguaje, sobre todo en un contexto de web cada vez más orientada a dispositivos móviles (tablet, smartphone).

En fin, el API de geolocalización de HMTL5 permite que el navegador acceda a los datos de la posición del dispositivo desde el que se está accediendo a la web, ya sea por triangulación usando el GPS, o el GSM del teléfono; o a través de la posición de tu dirección IP.

El API posee tres métodos básicos:

  • getCurrentPosition(): Recoge la posición del dispositivo una vez.
  • watchPosition(): Recupera y actualiza la posición conforme va cambiando.
  • clearWatch(): Detiene la actualización de la posición.

En caso de éxito, getCurrentPosition() y watchPosition() devuelven un objeto Position, formado a su vez por un objeto coords (con todas las coordenadas) y un timestamp. El objeto coords tiene varias propiedades, algunas reconocidas por todos los navegadores y otras no:

  • latitude: un número flotante de sólo lectura que indica la latitud.
  • longitude: un número flotante de sólo lectura que indica la longitud.
  • accuracy: un número flotante de sólo lectura que indica la precisión de la longitud y la latitud en metros.
  • altitude: un número flotante de sólo lectura que indica la altura. No todos los dispositivos los permiten, en esos casos viene a nulo
  • altitudeAccuracy: un número flotante de sólo lectura que indica la precisión de la altura en metros. No todos los dispositivos los permiten, en esos casos viene a nulo
  • heading: un número flotante de sólo lectura que indica la dirección y el recorrido, expresada en grados. No todos los dispositivos los permiten, en esos casos viene a nulo
  • speed: un número flotante de sólo lectura que indica la velocidad de desplazamiento, expresada en metros por segundo. No todos los dispositivos los permiten, en esos casos viene a nulo

Ahora que te has leído la teoría, lo mejor es un ejemplo práctico, similar al que aparece en el manual de Lawson y Sharp (Introducing HTML5):

if(navigator.geolocation){
    navigator.geolocation.getCurrentPosition(function (position{
        var coordenadas = position.coords;
        showMap(coordenadas.latitude, coordenadas.longitude, coordenadas.accuracy);
    });
}else{
    window.alert("El navegador no soporta el API de geolocalización");
}

Plantéate que sería un código que llame a una función que genere un mapa recibiendo las coordenadas (como las API de GoogleMaps o OpenStreetMap). Primero comprueba que el navegador soporte el API, luego almacena las coordenadas conseguidas con getCurrentPosition en una variable objeto y finalmente las envía a la función que genera el mapa.

En fin, un API con muchas posibilidades en las nuevas aplicaciones web para dispositivos móviles.