/* Funciones relativas al funcionamiento de GMAPS */ var map; var infoWindow = null; var bounds; var zoomLevel = null; var latlng = null; var zoomear = true; var centrar = true; /** * Se encarga de arrancar variables y demas para el mapa de google * @return */ function arrancaMaps() { document.getElementById("mapa").innerHTML = ""; infoWindow = new google.maps.InfoWindow(); bounds = new google.maps.LatLngBounds(); if (zoomLevel == null) { zoomLevel = 6; } if (latlng == null) { latlng = new google.maps.LatLng(40.430224,-3.713379); } var myOptions = { zoom: zoomLevel, center: latlng, navigationControl: true, mapTypeControl: false, scaleControl: false, mapTypeId: google.maps.MapTypeId.ROADMAP }; map = new google.maps.Map(document.getElementById("mapa"), myOptions); google.maps.event.addListener(map, 'click', function(){ closeInfoWindow(); }); google.maps.event.addListener(map, 'zoom_changed', function() { zoomLevel = map.getZoom(); }); // esto es para ir guardando el centro que ponga el usuario google.maps.event.addListener(map, 'center_changed', function() { var location = map.getCenter(); latlng = new google.maps.LatLng(location.lat(),location.lng()); }); cargaIntervMaps(); } function closeInfoWindow() { infoWindow.close(); } /** * Se encarga de posicionar las bases en el mapa de google * @return */ function cargaIntervMaps() { $.ajax({ complete: function (e, XHR, options) {}, contentType: "application/x-www-form-urlencoded;charset=UTF-8", data: { app: "gsm", autonomia: $("#autonomia").val(), provincia: $("#provincia").val() }, dataType: "json", error: function(xhr, ajaxOptions, thrownError){ setAvisosDialogText('Se ha producido un error al realizar la carga de los Equipos de Respuesta Inmediata.'); $('#avisos_dialog').dialog('open'); }, success: function(json) { var contenido = ""; if (json.resultado == "OK") { if (json.gsm) { for ( var i = 0; i < json.gsm.length; i++) { montaUbicacion(json.gsm[i]); } zoomear = false; centrar = false; } } else { setAvisosDialogText('Se ha producido un error al realizar la carga de los Equipos de Respuesta Inmediata.'); $('#avisos_dialog').dialog('open'); } }, type: "POST", url: 'gsm.do' }); } function montaUbicacion(json) { if (json.latitud && json.longitud) { var latR = parseFloat(json.latitud.replace(",",".")); var lonR = parseFloat(json.longitud.replace(",",".")); var img_status = ""; if (json.activa == "S") { // ACTIVA img_status = "images/gsm/salvamento.png"; } //Si existen varios eries para una misma provincia /*if (json.varios == "S") { img_status = "images/eries/erie-rojo_varios.png";//varios centros }*/ var image = new google.maps.MarkerImage(img_status, new google.maps.Size(52, 52), new google.maps.Point(0,0), new google.maps.Point(0, 52), new google.maps.Size(52, 52)); var marker = new google.maps.Marker({ map: map, position: new google.maps.LatLng(latR, lonR), icon: image }); google.maps.event.addListener(marker, 'click', function(){ openInfoWindow(marker, json); }); // verificamos que centrar este a true, que solo ocurre en la primera carga, para centrar el mapa en las // bases que carguemos if (centrar) { var latlngAux = new google.maps.LatLng(marker.getPosition().lat(), marker.getPosition().lng()); bounds.extend(latlngAux); } // verificamos que zoomear esta a true, que solo ocurre en la primera carga, para ajustar el zoom en las // bases que carguemos if (zoomear) { map.fitBounds(bounds); } } else { //alert("La base con indicativo " + json.indicativo + " no tiene datos de longitud y latitud"); } } function openInfoWindow(marker, content) { var activa = content.activa; var codigoCentro = content.codigoCentro; var descripcion = content.descripcion; var domain = $('#domain').val(); var contenido = "
" + "" + descripcion + "
" + "Acceder"+ "
"; infoWindow.setContent(contenido); infoWindow.open(map, marker); $('.capaContInfoPlaya').tooltip(); } function setPositionCapaLogo() { /*var capaLogo = $('#capaLogo'); var capaLogoH = capaLogo.height(); var capaLogoW = capaLogo.width(); var heightW = $(window).height(); var widthW = $(window).width(); capaLogo.css({top: (heightW - (heightW * 0.1) - capaLogoH), left: (widthW - (widthW * 0.1) - capaLogoW)});*/ } function setPositionCapaCombos() { /*var capaCombos = $('#divSel'); var capaLogoH = capaCombos.height(); var capaLogoW = capaCombos.width(); var heightW = $(window).height(); var widthW = $(window).width(); capaCombos.css({top: (heightW - (heightW * 0.1) - capaLogoH), left: (widthW - (widthW * 0.1) - capaLogoW)});*/ } /** Funcionalidad de los combos **/ /** * Se encarga de cargar los combos con los datos necesarios */ function cargaCombosInicio() { // aplicamos los eventos $('#selIniAuton').change(cambiaAutonomia); // busqueda de playa $('#btn_Inicio').click(validaSeleccionInicio); $.ajax({ beforeSend: function(){ $('#img_waiting').dialog('open'); }, contentType: "application/x-www-form-urlencoded;charset=UTF-8", complete: function () { $('#img_waiting').dialog('close'); }, data: { app: "gsm", codAuton: $("#autonomia").val() }, dataType: "json", success: function(json) { if (json.resultado != "success") { setAvisosDialogText(json.mensaje); $('#avisos_dialog').dialog('open'); } else { var carga = json.carga; // la carga va a determinar que tenemos que cargar if (carga == "autonomia") { // viene informacion de autonomias cargaCombosAutonomia(json, true); } else if (carga == "provincia") { // viene informacion de provincias cargaCombosProvincia(json, true); } else { // NO DEBE entrar por aqui, pero lo evaluamos por si acaso setAvisosDialogText("Se ha producido un error al realizar la carga de la informaci\u00F3n de los desplegables"); $('#avisos_dialog').dialog('open'); } } }, type: "POST", url: "admCombos.do" }); } /** * Carga el combo de autonomias con lo que venga en el json * * @param json * @param inicio */ function cargaCombosAutonomia(json, inicio) { var jQselObj = $('#selIniAuton'); var jsonArr = json.autonomias; // lo primero es vaciar el select jQselObj.html(''); // le seteamos una primera opcion var opt = $('