// 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 = '
| Salida desde "+descOrigen.toUpperCase()+" | "; html += ""+n+""; html += " | "; html += ""; html += ruta.getStep(j).getDescriptionHtml(); html += " | "; html += ""; html += ruta.getStep(j).getDistance().html; html += " | "; html += ""; n++; } } html += "
| Llegada a "+descDestino.toUpperCase()+" |