// Marcador para la geolocalizacion var marcadorGeolocalizacion = null; // Para el como llegar var gdir; //Inicializa el mapa function cargarMapa(longitudInicial,latitudInicial){ var objMapa = document.getElementById("mapaGM"); if(objMapa){ var esSelector = (objMapa.className=="mapaSelector"); if(GBrowserIsCompatible()){ map = new GMap2(objMapa); //Aņade la capacidad de aumentar el zoom con doble click map.enableDoubleClickZoom(); //si no es selector ponemos el control de mapa map.addControl(new GOverviewMapControl(new GSize(100,100))); map.addControl(new GLargeMapControl()); map.enableContinuousZoom(); map.addControl(new GMapTypeControl()); if(esSelector){ //si es selector ponemos el evento para aņadir marcador en la posicion actual map.enableGoogleBar(); GEvent.addListener(map, "click", function(marker, point){ ponerLocalizacion(marker,point); }); //quitamos todos los eventos de doubleclick GEvent.clearListeners(map,"doubleclick"); } map.setCenter(new GLatLng(39.004778,-1.855831), 16); //si hay punto inicial lo ponemos if(longitudInicial && latitudInicial){ ponerLocalizacion(null,new GLatLng(latitudInicial,longitudInicial)); } //creamos objeto para el como llegar gdir = new GDirections(map); } } } //pone un marcador en la posicion pulsada function ponerLocalizacion(marker,point){ if(!marker){ if(marcadorGeolocalizacion) map.removeOverlay(marcadorGeolocalizacion); var icono = new GIcon(); icono.image = "/img/iconos/hotel.gif"; icono.iconSize = new GSize(20, 24); icono.iconAnchor = new GPoint(10,23); icono.infoWindowAnchor = new GPoint(8,10); //marcadorGeolocalizacion = new GMarker(point,icono); marcadorGeolocalizacion = new GMarker(point); map.addOverlay(marcadorGeolocalizacion); map.panTo(point); } } //ejecuta sobre el mapa el como llegar desde un punto a otro function ejecutarComoLlegar(destino, descDestino){ var controlOrigen = document.getElementById('origen'); var origen = controlOrigen.value; if("albacete,ciudad real,toledo,cuenca,guadalajara,valencia".indexOf(origen.toLowerCase())!=-1) origen += ", Espaņa"; var datosRuta = document.getElementById('datosRuta'); var resumen = document.getElementById('resumenRuta'); var indicaciones = document.getElementById('indicacionesRuta'); function comoLlegarError(){ if(origen.indexOf("Espaņa")==-1){ //si no encontramos resultados probamos a hacerlo con Espaņa detras origen += ", Espaņa"; gdir.load("from: "+origen+" to: "+destino,{ "locale": "es"}); }else{ //ocultamos todo datosRuta.style.display = "none"; alerta("No se puede realizar la busqueda."); } } //ponemos una imagen de "cargando" datosRuta.style.display = "block"; if(resumen) resumen.innerHTML = ""; //borramos posibles resultados anteriores if(gdir) gdir.clear(); var descripcionOrigen = origen; var descripcionDestino = descDestino; gdir = new GDirections(map); GEvent.addListener(gdir, "load", function(){ comoLlegarRecibido(descripcionOrigen,descripcionDestino); }); GEvent.addListener(gdir, "error", comoLlegarError); gdir.load("from: "+origen+" to: "+destino,{ "locale": "es", "getSteps": true}); } //procesamiento al recibir el como llegar function comoLlegarRecibido(descOrigen,descDestino){ //procesamiento al recibir el como llegar var resumen = document.getElementById('resumenRuta'); var indicaciones = document.getElementById('indicacionesRuta'); //rellenamos los datos del resumen de ruta if(resumen){ var html; html = ''; resumen.innerHTML = html; } //rellenamos las indicaciones if(indicaciones){ html = ""; html += ""; var n=1; for(var i=0;i'; html += ""; html += ""; html += ""; html += ""; n++; } } html += ""; html += "
Salida desde "+descOrigen.toUpperCase()+"
"; html += ""+n+""; html += ""; html += ruta.getStep(j).getDescriptionHtml(); html += ""; html += ruta.getStep(j).getDistance().html; html += "
Llegada a "+descDestino.toUpperCase()+"
"; indicaciones.innerHTML = html; } map.zoomOut(); }