El API de Google Earth y KML


Google EarthLos de Google han conseguido hacer un API muy potente para usar Google Earth en nuestras webs. Igual que nos pasa con el API de Google Maps, es muy sencillo utilizar este API.

Para empezar necesitaremos la clave del API, podéis conseguirla en este enlace.

Puedes ver un ejemplo en la página.

El API de Google Earth

Para cargar el API deberemos incluir el script en nuestra cabecera HTML con

<script type=”text/javascript” src=”http://www.google.com/jsapi?key=CLAVE_API”></script>

Necesitaremos crear un div donde se mostrara el mundo. Para ello, en nuestro ejemplo creamos el div:

<div id=”div_earth” style=”margin: 10px; width: 600px; height: 400px”></div>

Dentro de nuestro código javascript cargamos el mundo en el div y lo inicializamos. Para ello:

<script type=”text/javascript”>
google.load(“earth”, “1″);
var ge = null;
function init() {
google.earth.createInstance(“div_earth”, initCallback, failureCallback);
}
function initCallback(pluginInstance) {
ge = pluginInstance;
ge.getWindow().setVisibility(true);
ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO);
}
</script>

Este  código es bastante genérico así que poca cosa hay que explicar.

  • google.earth.createInstance(“div_earth”, initCallback, failureCallback): Esta linea crea la instancia de Google Earth. El primer parametro, “div_earth”, es el div donde veremos la aplicación. El segundo sera la función javascript que se llamara para la inicialización. El tercero sera la función que se llamara si hay algún error.
  • ge.getNavigationControl().setVisibility(ge.VISIBILITY_AUTO): Mostramos los controles de navegación con los que el usuario se podrá mover, hacer zoom…

Uso de KML con el API

Mi idea era empezar por tutoriales básicos pero, por petición de uno de nuestros lectores, voy a explicar como utilizar ficheros KML en el API. Solo explicare como utilizarlos con el API, en siguientes post entraremos en los ficheros KML para ver como crearlos. Si quereis ver el fichero KML que usaremos podeis acceder desde este enlace.

Google Earth

Según la definición de la Wikipedia, “KML (del acrónimo en inglés Keyhole Markup Language) es un lenguaje de marcado basado en XML para representar datos geográficos en tres dimensiones. Fue desarrollado para ser manejado con Keyhole LT, precursor de Google Earth (Google adquirió Keyhole LT en Octubre de 2004 tras lanzar su versión LT 2)”.

KML es usado para definir objetos en 3D, textos, puntos de interés… en mapas y vistas en 3D. En el ejemplo que os mostraré dibujaremos las instalaciones del Google Campus. Podéis ver el resultado en la imagen.

Para cargar el fichero KML utilizaramos la función procesarKML.

function procesarKML()
{
var kmlUrl = ‘http://vidaenlaluna.es/ejemplos/api_google_kml/google_campus.kml’;
google.earth.fetchKml(ge, kmlUrl, function(kmlObject) {
if (kmlObject)
{
ge.getFeatures().appendChild(kmlObject);
document.getElementById(‘btnKML’).disabled = true;
alert(‘Fichero KML.correcto’);
}
else
{
alert(‘Fichero KML.incorrecto’);
}
});
}

Google.earth.fetchKml es el método del API encargado de procesar el fichero. Para ello le debemos pasar la instancia del plugin( anteriormente hemos creado la instancia en la variable ge ) y la URL del fichero KML. En el tercer parámetro enviamos la función que se ejecutara después de procesar el fichero. Esta función carga el objeto KML en el mapa si se ha procesado correctamente o alerta al usuario de que el fichero KML no es correcto.

Cualquier duda ya sabéis que podéis comentarla.

Comparte y ayudanos:
  • email
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • LinkedIn
  • Netvibes
  • StumbleUpon
  • Twitter
  • BarraPunto
  • Bitacoras.com
  • Live
  • Meneame
  • Yahoo! Bookmarks
  • Technorati

, , , ,

  1. #1 by Dani on 20/Sep/2009

    Buenas
    Me parece bastante interesante tu idea. Podemos hablar y compartir conocimientos.
    Estoy abierto a proyectos interesantes!!!

  2. #2 by Wilfo on 19/Sep/2009

    Hola amigos me interesa bastante esto acerca de google map , yo podria ayudar , pienso hacer un software localizador de autos en tiempo real en java(eclipse) necestio mas información , para ir compartiendo conocimientos …me gustaria saber tu opinión..ya tenes mi correo…

(No será publicado)