//URL DEL SERVICIO var MY_WMS = "https://idecyl.jcyl.es/geoserver/sigren/wms"; //Indica si las capas se muestran en tiles var TILED = false; //Capa principal var sgjoin, espacio_overview, filterLayer, ortofotoPNOA, ortofotoMDT; //Array de layers de SIGREN var SGlayers = new Array(); //el control mapa var map; //los controles del mapa var mousePosition, lineMeasure, poligonMeasure, zbox, overview, feature, scale; //los estilos para las lineas de las herramientas zoombox, medición... var styleMap; //Variable que indica el modo actual de interacción con el usuario (arrastrar medicion...); var intMode = 0; //Bounding box de inicio del mapa, centrado en CYL var view_bounds = new OpenLayers.Bounds(168437.141, 4477238.5,550393.25, 4781552); var bounds = new OpenLayers.Bounds( 135159.734,4409598,631874.938,4819183); //Historial de movimientos var thistory=new Array(), historyIndex=0, historyLocked=false; //Algun filtro? var activefilter=-1, activeBaseLayer=0; u=-1; var ftime = true; //Se encarga de inicializar el mapa en openlayers function init_map(){ //Opciones de inicialización del mapa, incluye algunos controles básicos var options = { controls: [ new OpenLayers.Control.Navigation(), new OpenLayers.Control.ArgParser() ], maxExtent: bounds, maxResolution: 1492.01605078125, projection: "EPSG:25830", units: 'm' }; //Inicializamos el mapa con las opciones anteriores sobre el div 'map' (index.php) map = new OpenLayers.Map('map', options); //Añadimos las capas addlayers(); //Añadimos los estilos addStyles(); //Añadimos los controles addControls(); //Instrucción para reparar el bug de la posición del control mapa que se anteponia a los controles $('.olMapViewport').css('z-index','0'); window.setTimeout("checkSqlByRequest()",500); //Sobre el div legend construimos el gestor de capas personalizado, no es un control de openlayers //utilizamos el método loadlayers que escribe el innerHTML de este div loadLayers('legend'); //Ponemos el mapa en su extensión map.zoomToExtent(view_bounds); //Guardamos la posición inicial en el historial var obj = new Object(); obj.zoom = map.getZoom(); obj.center = map.getCenter(); thistory.push(obj); checkHistoryImages(); //Evento de cambio de posición o zoom en el mapa, cada vez que el usuario lo cambia //guardamos en el historial map.events.register("moveend", null, function() { changeLayers(); if(!historyLocked){ var obj = new Object(); obj.zoom = map.getZoom(); obj.center = map.getCenter(); if (thistory.length-1==historyIndex){ thistory.push(obj); historyIndex++; }else{ historyIndex++; thistory[historyIndex]=obj; for (var i = historyIndex+1; i< thistory.length; i++){ thistory.remove(i); } } } checkHistoryImages(); }); } //Gestion del cambio de MDT - PNOA function changeLayers(){ var cambio = 5; if (map.getZoom() > cambio){ if(activeBaseLayer==0){ activeBaseLayer = 1; map.removeLayer(ortofotoMDT); map.addLayer(ortofotoPNOA); map.setLayerIndex(ortofotoPNOA,1); } }else{ if(activeBaseLayer==1){ activeBaseLayer = 0; map.removeLayer(ortofotoPNOA); map.addLayer(ortofotoMDT); map.setLayerIndex(ortofotoMDT,1); } } loadLayers('legend'); } //Cambia las imágenes del panel de herramientas //para habilitar o deshabilitar el click anterior y posterior function checkHistoryImages(){ if(historyIndex+1 < thistory.length){ if( $("img[src$='nextd.png']").length > 0){ $("img[src$='nextd.png']").attr("src", "img/toolbar/next.png");} }else{ if( $("img[src$='next.png']").length > 0){ $("img[src$='next.png']").attr("src", "img/toolbar/nextd.png");} } if(!historyIndex-1 >= 0){ if( $("img[src$='prev.png']").length > 0){ $("img[src$='prev.png']").attr("src", "img/toolbar/prevd.png");} }else{ if( $("img[src$='prevd.png']").length > 0){ $("img[src$='prevd.png']").attr("src", "img/toolbar/prev.png");} } } //Función para mover el indice en el historial // y desplazarse por las posiciones guardadas function moveHistory(opp){ if((opp ==-1 && historyIndex-1 >= 0) || (opp==1 && historyIndex+1 < thistory.length)){ historyIndex=historyIndex + opp; historyLocked=true; map.moveTo(thistory[historyIndex].center,thistory[historyIndex].zoom); historyLocked=false; } checkHistoryImages(); } //Sobreescribimos el metodo remove del array pq va como el culo. Array.prototype.remove = function(from, to) { var rest = this.slice((to || from) + 1 || this.length); this.length = from < 0 ? this.length + from : from; return this.push.apply(this, rest); }; function addControls(){ // Control de la posición del ratón, muestra en la barra las coordenadas actuales // Utiliza un div creado en el index.php, geoPosition mousePosition = new OpenLayers.Control.MousePosition({ 'div':OpenLayers.Util.getElement('geoPosition'), formatOutput: function(lonLat) { return "UTM 30 ETRS89   x: " +Math.round(lonLat.lon*100)/100+ "  y: "+ Math.round(lonLat.lat*100)/100; } }); // Herramienta de medición de distancias, utiliza los estilos previamente definidos lineMeasure = new OpenLayers.Control.Measure( OpenLayers.Handler.Path, { persist: true, handlerOptions: { layerOptions: {styleMap: styleMap} } }); //Añadimos los controladores de eventos para estas mediciones de distancias lineMeasure.events.on({ "measure": handleMeasurements, "measurepartial": handleMeasurements }); // Herramienta de medición de áreas, utiliza los estilos previamente definidos poligonMeasure = new OpenLayers.Control.Measure( OpenLayers.Handler.Polygon, { persist: true, handlerOptions: { layerOptions: {styleMap: styleMap} } } ); //Añadimos los controladores de eventos para estas mediciones de áreas poligonMeasure.events.on({ "measure": handleMeasurements, "measurepartial": handleMeasurements }); //Heramienta zoom en caja zbox = new OpenLayers.Control.ZoomBox({alwaysZoom:true}); //Mapa pequeño de referencia, utiliza el div keymap, creado en index.php overview = new OpenLayers.Control.OverviewMap({ maximized: true, div: document.getElementById('keymap'), mapOptions: { projection: "EPSG:25830", layers: [espacio_overview], maxExtent: map.getExtend } }); overview.size = new OpenLayers.Size(132, 108); //Consultas feature Info crea un recuadro o punto para poder seleccionar registros feature = new OpenLayers.Control(); OpenLayers.Util.extend(feature, { draw: function () { this.box = new OpenLayers.Handler.Box( feature, {"done": handleFeature}); } }); //Control de Escala del mapa, utiliza el div scalebar en index.php scale = new OpenLayers.Control.ScaleLine(); //Añadimos los todos los controles creados anteriormente al mapa map.addControl(mousePosition); map.addControl(lineMeasure); map.addControl(poligonMeasure); map.addControl(zbox); map.addControl(overview); map.addControl(feature); map.addControl(scale); } function addStyles(){ //Elementos de los estilos var sketchSymbolizers = { "Point": { pointRadius: 4, graphicName: "square", fillColor: "white", fillOpacity: 1, strokeWidth: 1, strokeOpacity: 1, strokeColor: "#333333" }, "Line": { strokeWidth: 3, strokeOpacity: 1, strokeColor: "#990000", strokeDashstyle: "dash" }, "Polygon": { strokeWidth: 2, strokeOpacity: 1, strokeColor: "#990000", fillColor: "white", fillOpacity: 0.3 } }; var style = new OpenLayers.Style(); style.addRules([new OpenLayers.Rule({symbolizer: sketchSymbolizers})]); styleMap = new OpenLayers.StyleMap({"default": style}); } function addlayers(){ var kioscos = new OpenLayers.Layer.WMS.Post( "Quioscos", MY_WMS, { LAYERS: 'sigren:kiosco', transparent: "true", visibility:false, format: 'image/png', STYLES: '', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:10, repImg: 'img/QC.png', dbname: 'kiosco', dgroup: 'e' } ); var infras = new OpenLayers.Layer.WMS.Post( "Infraestructuras", MY_WMS, { LAYERS: 'sigren:infra', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:4, repImg: 'img/IM.png', dbname: 'infra', dgroup: 'e' } ); var aparcamientos = new OpenLayers.Layer.WMS.Post( "Aparcamientos", MY_WMS, { LAYERS: 'sigren:aparcamiento', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:5, repImg: 'img/AP.png', dbname: 'aparcamiento', dgroup: 'e' } ); var casas_parque = new OpenLayers.Layer.WMS.Post( "Casas del Parque", MY_WMS, { LAYERS: 'sigren:casa_parque', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:7, repImg: 'img/CP.png', dbname: 'casa_parque', dgroup: 'e' } ); var campamentos = new OpenLayers.Layer.WMS.Post( "Campamentos", MY_WMS, { LAYERS: 'sigren:campamento', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:6, legend: 'https://idecyl.jcyl.es/geoserver/sigren/wms?service=WMS&REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=20&HEIGHT=20&STRICT=false&style=campamento&TRANSPARENT=true', repImg: 'img/liac.png', dbname: 'campamento', dgroup: 'e' } ); var zona_acamp = new OpenLayers.Layer.WMS.Post( "Zona de acampada", MY_WMS, { LAYERS: 'sigren:zona_acamp', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:16, repImg: 'img/ZA.png', dbname: 'zona_acamp', dgroup: 'e' } ); var infra_dep = new OpenLayers.Layer.WMS.Post( "Instalación deportiva", MY_WMS, { LAYERS: 'sigren:instalacion_deportiva', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:9, repImg: 'img/ID.png', dbname: 'instalacion_deportiva', dgroup: 'e' } ); var pto_interes = new OpenLayers.Layer.WMS.Post( "Punto de interés", MY_WMS, { LAYERS: 'sigren:otro_punto_interes', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:13, repImg: 'img/PI.png', dbname: 'otro_punto_interes', dgroup: 'e' } ); var observatorios = new OpenLayers.Layer.WMS.Post( "Observatorios", MY_WMS, { LAYERS: 'sigren:observatorio', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:12, repImg: 'img/OB.png', dbname: 'observatorio', dgroup: 'e' } ); var arboles = new OpenLayers.Layer.WMS.Post( "Árboles singulares", MY_WMS, { LAYERS: 'sigren:arbol', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, STYLES: '', sigren_type:19, repImg: 'img/AS.png', dbname: 'arbol', dgroup: 'e' } ); var miradores = new OpenLayers.Layer.WMS.Post( "Miradores", MY_WMS, { LAYERS: 'sigren:mirador', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:11, repImg: 'img/MR.png', dbname: 'mirador', dgroup: 'e' } ); var centros = new OpenLayers.Layer.WMS.Post( "Centros de visitantes", MY_WMS, { LAYERS: 'sigren:centro_visitantes', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:8, legend: 'https://idecyl.jcyl.es/geoserver/sigren/wms?service=WMS&REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=20&HEIGHT=20&STRICT=false&style=centro_visitantes&TRANSPARENT=true', repImg: 'img/liac.png', dbname: 'centro_visitantes', dgroup: 'e' } ); var refugios = new OpenLayers.Layer.WMS.Post( "Refugios", MY_WMS, { LAYERS: 'sigren:refugio', transparent: "true", visibility:false, STYLES: '', format: 'image/png',CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:14, repImg: 'img/RF.png', dbname: 'refugio', dgroup: 'e' } ); var zona_rec = new OpenLayers.Layer.WMS.Post( "Área recreativa", MY_WMS, { LAYERS: 'sigren:zona_rec', transparent: "true", visibility:false, STYLES: '', format: 'image/png',CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:18, repImg: 'img/AR.png', dbname: 'zona_rec', dgroup: 'e' } ); var zona_ban = new OpenLayers.Layer.WMS.Post( "Zona baño", MY_WMS, { LAYERS: 'sigren:zona_bano', transparent: "true", visibility:false, STYLES: '', format: 'image/png',CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:17, repImg: 'img/ZB.png', dbname: 'zona_bano', dgroup: 'e' } ); var sendas = new OpenLayers.Layer.WMS.Post( "Sendas", MY_WMS, { LAYERS: 'sigren:senda', transparent: "true", visibility:false, STYLES: '', format: 'image/png', CQL_FILTER: 'atr_gr_visible=true', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, sigren_type:15, displayOutsideMaxExtent: true, repImg: 'img/liac.png', dgroup: 'e', dbname: 'senda', legend: 'https://idecyl.jcyl.es/geoserver/sigren/wms?service=WMS&REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=20&HEIGHT=20&STRICT=false&style=senda&TRANSPARENT=true', isBaseLayer: false } ); var espacios = new OpenLayers.Layer.WMS.Post( "Espacios", MY_WMS, { LAYERS: 'sigren:espacio', transparent: "true", STYLES: '', format: 'image/png', tiled: true, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], sigren_type:1, buffer: 0, repImg: 'img/liac.png', dgroup: 'e', legend: 'https://idecyl.jcyl.es/geoserver/sigren/wms?service=WMS&REQUEST=GetLegendGraphic&VERSION=1.0.0&FORMAT=image/png&WIDTH=20&HEIGHT=20&STRICT=false&style=espacio&TRANSPARENT=true', dbname: 'espacio', displayOutsideMaxExtent: true, isBaseLayer: false } ); var espacios_etiquetas = new OpenLayers.Layer.WMS.Post( "Etiquetas espacios", MY_WMS, { LAYERS: 'sigren:espacio', transparent: "true", format: 'image/png', STYLES: 'espacio_etiqueta', tiled: true, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, repImg: 'img/liac.png', dgroup: 'z', displayInLayerSwitcher: false, displayOutsideMaxExtent: true, isBaseLayer: false } ); var provincias_etiquetas = new OpenLayers.Layer.WMS.Post( "Etiquetas provincias", MY_WMS, { LAYERS: 'sigren:provincia', transparent: "true", format: 'image/png', STYLES: 'provincia_etiqueta', tiled: true, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, repImg: 'img/liac.png', dgroup: 'z', displayInLayerSwitcher: false, displayOutsideMaxExtent: true, isBaseLayer: false } ); var provincias = new OpenLayers.Layer.WMS.Post( "Provincias", MY_WMS, { LAYERS: 'sigren:provincia', transparent: "true", format: 'image/png', STYLES: 'provincia', tiled: true, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, repImg: 'img/liac.png', displayInLayerSwitcher: false, displayOutsideMaxExtent: true, dgroup: 'z', isBaseLayer: false } ); espacio_overview = new OpenLayers.Layer.WMS( "Espacios", MY_WMS, { LAYERS: 'sigren:espacio_overview', transparent: "true", format: 'image/png' }, { buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false } ); ortofotoMDT = new OpenLayers.Layer.WMS( "Modelo digital del terreno IDECyL", "https://idecyl.jcyl.es/IGCyL/services/MedioFisico/MDT/MapServer/WMSServer?", { LAYERS: '1,4', format: 'image/jpeg', tiled: true, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { buffer: 0, displayOutsideMaxExtent: true, sigren_type: 'MDT', dgroup: 'b', isBaseLayer: true } ); /*ortofotoPNOA = new OpenLayers.Layer.WMS( "Ortofoto IDECyL ", "https://idecyl.jcyl.es/IGCyL/services/PaisajeCubierta/OrtofotoActual/MapServer/WMSServer?", { LAYERS: '1,2,3,4', visibility:false, format: 'image/jpeg', tiled: true }, { buffer: 0, displayOutsideMaxExtent: true, dgroup: 'b', sigren_type: 'PNOA', isBaseLayer: true } );*/ ortofotoPNOA = new OpenLayers.Layer.WMS( "Ortofoto IDECyL ", "http://www.idee.es/wms/PNOA/PNOA?", { LAYERS: 'PNOA', visibility:false, format: 'image/jpeg', tiled: true }, { buffer: 0, displayOutsideMaxExtent: true, dgroup: 'b', sigren_type: 'PNOA', isBaseLayer: true } ); var planimetria = new OpenLayers.Layer.WMS( "Planimetría OpenStreetMap", MY_WMS, { LAYERS: 'vias,municipios,municipios_etiquetas', visibility:false, STYLES: '', transparent: "true", format: 'image/png', tiled: false }, { buffer: 0, displayOutsideMaxExtent: true, dgroup: 'bo', sigren_type: 'CESEFOR', isBaseLayer: false } ); //52,51,50,45,44,38,32,31,29,28,27,25,8,7,6 //59,58,60,47,46,48,40,39,41,51,50,52,55,54,53 var planimetria_oficial = new OpenLayers.Layer.WMS( "Planimetría IGN", "http://www.ign.es/wms-inspire/ign-base?", { // LAYERS: 'ManzanaUrbana,Baliza,Faro,Edificacion,AgrupacionEdificios,RedHidrografica_S,Laguna,Rio,ViaPecuaria,PuenteTunel,Pista,Senda,Camino,EnlaceCarreteras,CarreteraNacional,CarreteraConvencional,CarreteraAutonomica,VialUrbano,Autovia,Autopista_Autovia,Autopista,ComunidadAutonoma', LAYERS: 'IGNBaseTodo', visibility:false, transparent: "true", format: 'image/png', tiled: false }, { buffer: 0, displayOutsideMaxExtent: true, sigren_type: 'IDECYL', dgroup: 'bo', isBaseLayer: false } ); sendas.setVisibility(false); aparcamientos.setVisibility(false); arboles.setVisibility(false); zona_rec.setVisibility(false); campamentos.setVisibility(false); casas_parque.setVisibility(false); centros.setVisibility(false); infras.setVisibility(false); infra_dep.setVisibility(false); miradores.setVisibility(false); observatorios.setVisibility(false); pto_interes.setVisibility(false); kioscos.setVisibility(false); refugios.setVisibility(false); zona_acamp.setVisibility(false); zona_ban.setVisibility(false); planimetria_oficial.setVisibility(false); provincias_etiquetas.setVisibility(true); espacios_etiquetas.setVisibility(true); map.addLayer(ortofotoMDT); map.addLayer(planimetria_oficial); SGlayers.push(espacios); SGlayers.push(planimetria); SGlayers.push(sendas); SGlayers.push(provincias); SGlayers.push(aparcamientos); SGlayers.push(arboles); SGlayers.push(zona_rec); SGlayers.push(campamentos); SGlayers.push(casas_parque); SGlayers.push(centros); SGlayers.push(infras); SGlayers.push(infra_dep); SGlayers.push(miradores); SGlayers.push(observatorios); SGlayers.push(pto_interes); SGlayers.push(kioscos); SGlayers.push(refugios); SGlayers.push(zona_acamp); SGlayers.push(zona_ban); SGlayers.push(provincias_etiquetas); SGlayers.push(espacios_etiquetas); buildSIGREN() } function buildSIGREN(){ sgjoin = new OpenLayers.Layer.WMS.Post( "sgjoin", MY_WMS, { LAYERS: '', transparent: "true", visibility:false, format: 'image/png', tiled: TILED, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: true, isBaseLayer: false, sigren_type:4, repImg: '', dbname: '', dgroup: 'e' } ); map.addLayer(sgjoin); updateSIGREN(); } function updateSIGREN(){ var l = ""; var cql=""; var st=""; for(var e=0, len=SGlayers.length; e2"; } element.innerHTML = out; } function handleFeature(bounds) { //Determinamos si es un punto o una geometria lo que ha dibujado var mode = 1; var coords = ""; var layerstxt = ""; var PIXELS_TOLERANCE=12; if((bounds.toString().indexOf("x=")>-1) && (bounds.toString().indexOf("y=") > -1) ){ //punto var a = map.getLonLatFromPixel(new OpenLayers.Pixel(bounds.x, bounds.y)); coords = a.lon + " " + a.lat; mode = 1; buffer = (PIXELS_TOLERANCE * map.getResolution()); }else{ //Poligono var lt = map.getLonLatFromPixel(new OpenLayers.Pixel(bounds.left, bounds.top)); var lb = map.getLonLatFromPixel(new OpenLayers.Pixel(bounds.left, bounds.bottom)); var rt = map.getLonLatFromPixel(new OpenLayers.Pixel(bounds.right, bounds.top)); var rb = map.getLonLatFromPixel(new OpenLayers.Pixel(bounds.right, bounds.bottom)); coords = lt.lon + " " + lt.lat + "," + lb.lon + " " + lb.lat + "," + rb.lon + " " + rb.lat + "," + rt.lon + " " + rt.lat + "," + lt.lon + " " + lt.lat; mode = 2; buffer = 0; } //obtenemos las capas de equipamientos for(var i=0, len=SGlayers.length; i 0){ eq = $('#allEquip').is(':checked'); } var color = "#FFFFE8"; for(var i=0, len=layers.length; i'+layer.name+''; }else{ baseLayers = baseLayers + '
'+layer.name+'
'; } if(!parb){ color = "#ECEFD8";}else{ color = "#FFFFE8";} parb = !parb; }else if(layer.dgroup=="e"){ for(var e=0, len2=SGlayers.length; e'+layer.name+''; }else{ baseLayers = baseLayers + '
'+layer.name+'
'; } if(!parb){ color = "#ECEFD8";}else{ color = "#FFFFE8";} parb = !parb; }else if(layer.dgroup == "e"){ var checked = ""; var app = ""; if (layer.getVisibility()){ checked='checked="checked"';} if (layer.filtered){ color = "#FE4B4B"; app = '  [Eliminar filtro]'; } var data = ''; var img=""; var imgsrc=layer.repImg; if (layer.legend!=""){ if(layer.legend_desp){ img= '  '; imgsrc="img/lac.png"; } } data = ''+img+'
'+layer.name+ ' ' + app +'
'; equipLayers = equipLayers + data; if (!layer.getVisibility()){ eq=false;} if(!pare){ color = "#ECEFD8";}else{ color = "#FFFFE8";} pare = !pare; } } } }else if(layer.dgroup=="u"){ data = '
Eliminar capa'+layer.name+ '
'; userLayers = userLayers + data; if(!parb){ color = "#ECEFD8";}else{ color = "#FFFFE8";} parb = !parb; /*}else{ optionalLayers = optionalLayers + data; }*/ } } } if (baseLayers!=""){ baseLayers='
Capas base:
'+baseLayers+'
'; } var ac=""; if(eq){ac = 'checked="checked"';} if (equipLayers!=""){ equipLayers='
Equipamientos:
'+equipLayers; } if (userLayers!=""){ userLayers='
Capas del usuario:
'+userLayers; } if (optionalLayers!=""){ optionalLayers='
Capas opcionales:
'+optionalLayers; } $('#' + the_div).html( equipLayers + baseLayers+ userLayers + optionalLayers); } function getLegend(layer,type){ SGlayers[layer].legend_desp = !SGlayers[layer].legend_desp; loadLayers('legend'); } //al hacer click en un checkbox del gestor de capas function chvis(layer, type){ if(type==0){ var layers = this.map.layers.slice(); if(layers[layer].dgroup=="bo"){ for(var i=0, len=layers.length; i-1){ clearFilter(activefilter); } for(var i=0; i -1){ if(filter!=""){ SGlayers[i].mergeNewParams({CQL_FILTER: "NOT " + "(" + filter + ")"}); }else{ delete SGlayers[i].params.CQL_FILTER; } opFilter = filter; }else{ if(filter!=""){ var temp = "atr_gr_visible=true"; SGlayers[i].mergeNewParams({CQL_FILTER: temp + " AND NOT " + "(" + filter + ")"}); opFilter = temp + " AND " + "(" + filter + ")"; }else{ SGlayers[i].mergeNewParams({CQL_FILTER: "atr_gr_visible=true"}); opFilter = "atr_gr_visible=true"; } } //Le decimos que está filtrada SGlayers[i].filtered=true; //Creamos una nueva capa con los estilos de selección esta estará oculta filterLayer = new OpenLayers.Layer.WMS.Post("Filtro en "+SGlayers[i].name, MY_WMS, { LAYERS: 'sigren:' + layer.dbname, transparent: true, styles: layer.dbname +"_"+ "selected", format: 'image/png', tiled: true, tilesOrigin : map.maxExtent.left + ',' + map.maxExtent.bottom }, { unsupportedBrowsers: [], buffer: 0, displayOutsideMaxExtent: false, isBaseLayer: false, repImg: layer.repImg, dbname: layer.dbname, dgroup: 'f' } ); if(opFilter!=""){ filterLayer.mergeNewParams({CQL_FILTER: opFilter}); } filterLayer.displayInLayerSwitcher=false; //Añadimos esta capa temporal al mapa map.addLayer(filterLayer); //La ponemos visible su no está if(!layer.getVisibility()){ layer.setVisibility(true); } //regeneramos updateSIGREN(); //refrescamos la leyenda loadLayers('legend'); //Marcamos la bandera de filtrado activefilter = layer.sigren_type; } } } function clearFilterIfExist(){ if (activefilter>-1){ clearFilter(activefilter); } } function clearFilter(layerUniqueId){ for(var i=0; i