//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; eMedición: " + measure.toFixed(3) + " " + units;
} else {
out += "Medición: " + measure.toFixed(3) + " " + units + "2" + "sup>";
}
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 = '
'+layer.name+ ' ' + app +'
'+img+'
';
equipLayers = equipLayers + data;
if (!layer.getVisibility()){ eq=false;}
if(!pare){ color = "#ECEFD8";}else{ color = "#FFFFE8";}
pare = !pare;
}
}
}
}else if(layer.dgroup=="u"){
data = '
'+layer.name+ '
';
userLayers = userLayers + data;
if(!parb){ color = "#ECEFD8";}else{ color = "#FFFFE8";}
parb = !parb;
/*}else{
optionalLayers = optionalLayers + data;
}*/
}
}
}
if (baseLayers!=""){
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