From 5a681e41224ea73dc784364f49966bb15fa9c9b2 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 27 Mar 2013 03:37:07 +0000 Subject: [PATCH] Inclusão de rotina para geração e recuperação de imagens em cache em ogc.php e mashup openlayers --- admin/admin.db | Bin 197632 -> 0 bytes classesphp/mapa_openlayers.php | 22 ---------------------- mashups/openlayers.js | 39 +++++++++++++++++++++++++++++++++------ mashups/openlayers.php | 29 ++++++++++++++++++++--------- mashups/openlayers_compacto.js | 37 ++++++++++++++++++++++++++++++++----- mashups/openlayers_compacto.js.php | 37 ++++++++++++++++++++++++++++++++----- ogc.php | 145 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------ 7 files changed, 208 insertions(+), 101 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 252840f..6d2e460 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/classesphp/mapa_openlayers.php b/classesphp/mapa_openlayers.php index 1e7d30d..b38b2b9 100644 --- a/classesphp/mapa_openlayers.php +++ b/classesphp/mapa_openlayers.php @@ -334,28 +334,6 @@ function carregaCacheImagem($cachedir,$map,$tms){ exit; } } -function XcarregaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){ - if($layer == "copyright" || $layer == "") - {$bbox = "";} - if($layer == "") - {$layer = "fundo";} - $nome = $w.$h.$bbox.".png"; - if($cachedir == "") - {$nome = dirname(dirname($map))."/cache/".$layer."/".$nome;} - else - {$nome = $cachedir."/".$layer."/".$nome;} - if(file_exists($nome)){ - header('Content-Length: '.filesize($nome)); - header('Content-Type: image/png'); - header('Cache-Control: max-age=3600, must-revalidate'); - header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); - header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200); - $etag = md5_file($nome); - header('Etag: '.$etag); - fpassthru(fopen($nome, 'rb')); - exit; - } -} function nomeRand($n=10) { $nomes = ""; diff --git a/mashups/openlayers.js b/mashups/openlayers.js index 7062805..5137018 100755 --- a/mashups/openlayers.js +++ b/mashups/openlayers.js @@ -204,7 +204,7 @@ i3GEO.editorOL = { {i3GEO.editorOL.ativaLayerSwitcher();} if(i3GEO.editorOL.ativarodadomouse === false) {i3GEO.editorOL.desativaRodaDoMouse();} - + if(i3GEO.editorOL.numzoom !== ""){ i3GEO.editorOL.mapa.setOptions({ numZoomLevels: i3GEO.editorOL.numzoom @@ -277,6 +277,17 @@ i3GEO.editorOL = { } return ins; }, + layersClonados: function(paramsLayers){ + var layers = i3GEO.editorOL.mapa.layers, + nlayers = layers.length, + ins = [],i; + for(i=0;inumlayers);++$i) { + $nlayers = $maptemp->numlayers; + for($i=0;$i<($nlayers);++$i) { $layern = $maptemp->getLayer($i); $layers[] = $layern->name; } @@ -204,7 +204,17 @@ if($temas != ""){ $visivel = "false"; if(in_array($tema,$visiveis)) {$visivel = "true";} - $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tituloLayer.'", "../ogc.php?tema='.$tema.'&",{layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{singleTile:true,visibility:'.$visivel.',isBaseLayer:'.$ebase.'})'; + if($nlayers == 1 && strtoupper($layern->getmetadata("cache")) == "SIM"){ + //nesse caso o layer e adicionado como TMS + //tms leva os parametros do TMS + $objOpenLayers[] = 'new OpenLayers.Layer.TMS("'.$tituloLayer.'", "../ogc.php?tema='.$tema.'",{tileOrigin: new OpenLayers.LonLat(-180, -90),serviceVersion:"&tms=",visibility:'.$visivel.',isBaseLayer:'.$ebase.',layername:"'.$nomeLayer.'",type:"png"})'; + //cria um clone WMS para efeitos de getfeatureinfo + $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tituloLayer.'", "../ogc.php?tema='.$tema.'&",{cloneTMS:"'.$nomeLayer.'",layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{displayInLayerSwitcher:false,singleTile:true,visibility:false,isBaseLayer:false})'; + } + else{ + $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tituloLayer.'", "../ogc.php?tema='.$tema.'&",{layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{singleTile:true,visibility:'.$visivel.',isBaseLayer:'.$ebase.'})'; + } + //var_dump($objOpenLayers);exit; } } else @@ -313,18 +323,19 @@ Parâmetros: + - + + --> + + - +