var map;
var gdir;
var geocoder = null;
var addressMarker;
    function initialize() {
      if (GBrowserIsCompatible()) {      
        map = new GMap2(document.getElementById("map_canvas"));
        map.setMapType(G_HYBRID_MAP);
        // Centra el mapa en unas coordenadas determinadas
        //con un nivel de zoom (15)
        map.setCenter(new GLatLng(38.981917, -3.928979), 15);
        // Crea un punto.
        var point = new GLatLng(38.981917, -3.928979);
        // Pinta el punto en el mapa
        map.addOverlay(new GMarker(point));
        // Define los controles que se veran sobre el mapa
        map.addControl(new GLargeMapControl());
        var mapControl = new GMapTypeControl();
        map.addControl(mapControl);
        //Asociamos el div 'directions' a las direcciones que
        //devolverá Google Maps
        gdir = new GDirections(map, document.getElementById("directions"));
        //Listener para los errores que se produzcan cuando procese la petición
        GEvent.addListener(gdir, "error", handleErrors);
      }
    }

    //Función encargada de calcular la ruta con el API de Maps
    function setDirections(fromAddress) {    
    fromAddress=fromAddress+',Espa\xf1a';
    //alert(fromAddress);
      gdir.load("from: " + fromAddress + " to: @38.981917, -3.928979",
        { "locale": "es" });
        //Como es de suponer la opción locale:es hace que la ruta que  
        //nos escriba esté en español.
    }

    //Manejo de errores
    function handleErrors(){
       if (gdir.getStatus().code == G_GEO_UNKNOWN_ADDRESS)
         alert("No se puede calcular la ruta desde la dirección indicada, compruebe que está bien escrita o esta no sa ambigua");
       else if (gdir.getStatus().code == G_GEO_SERVER_ERROR)
         alert("Error desconocido");

       else if (gdir.getStatus().code == G_GEO_MISSING_QUERY)
         alert("No se ha introducido una dirección de inicio");

       else if (gdir.getStatus().code == G_GEO_BAD_KEY)
         alert("Clave usada por el mapa no valida o no corresponde con el dominio desde el que se usa.");

       else if (gdir.getStatus().code == G_GEO_BAD_REQUEST)
         alert("La dirección no puede ser parseada.");

       else alert("oppps ha ocurrido un error :(.");

    }

    function onGDirectionsLoad(){
    }


