From 65fba7cd01dad4bf98aba8ee4865a242fa7e3b4b Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Fri, 18 Jul 2014 19:39:24 +0000 Subject: [PATCH] Inclui opção para evitar cache de imagens do lado do navegador no mashup. Utiliza a opção de nocache no editor de mapfiles --- admin/php/editortexto.php | 34 ++++++++++++++++++++++++---------- mashups/openlayers.php | 26 ++++++++++++++++++++------ temas/_cursoaeroporto.map | 35 +---------------------------------- temas/_lbiomashp.map | 158 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------- 4 files changed, 124 insertions(+), 129 deletions(-) diff --git a/admin/php/editortexto.php b/admin/php/editortexto.php index 2c9bcd5..b1e76f6 100644 --- a/admin/php/editortexto.php +++ b/admin/php/editortexto.php @@ -50,11 +50,15 @@ body { $nomeMapfileTmp = str_replace(" ","",$nomeMapfileTmp); chmod($nomeMapfileTmp,0777); unlink($nomeMapfileTmp); - //echo $nomeMapfileTmp;exit; // if($_POST["tipo"] == "gravar"){ $fp = fopen($mapfile,"w"); - fwrite($fp,$gravarTexto); + if($fp == false){ + echo "Não foi possível salvar o arquivo. Verifique as permissões ou se há algum erro no mapfile

"; + } + else{ + fwrite($fp,$gravarTexto); + } fclose($fp); } echo 'RGB:

'; @@ -64,17 +68,27 @@ body { echo file_get_contents($mapfile); echo ""; $mapfile = str_replace("\\","/",$mapfile); - $mapa = ms_newMapObj($mapfile); - echo ""; echo ""; - - $n = $mapa->numlayers; - echo "

Colunas dos layers:

"; - for($i=0;$i<$n;$i++){ - $l = $mapa->getlayer($i); - echo $l->name.": ".(implode(",",pegaItens($l)))."

"; + if(!@ms_newMapObj($mapfile)){ + echo "Não foi possível criar o mapa. Verifique as permissões ou se há algum erro no mapfile

"; + } + else{ + $mapa = ms_newMapObj($mapfile); + $n = $mapa->numlayers; + echo "

Colunas dos layers:

"; + for($i=0;$i<$n;$i++){ + if(@$mapa->getlayer($i)){ + $l = $mapa->getlayer($i); + echo $l->name.": ".(implode(",",pegaItens($l)))."

"; + } + else{ + echo "Não foi possível criar o LAYER {$l->name}. Verifique as permissões ou se há algum erro no mapfile

"; + } + } } ?> diff --git a/mashups/openlayers.php b/mashups/openlayers.php index f10fd6b..389e660 100644 --- a/mashups/openlayers.php +++ b/mashups/openlayers.php @@ -8,6 +8,18 @@ include_once(dirname(__FILE__)."/../ms_configura.php"); include_once(dirname(__FILE__)."/../classesphp/pega_variaveis.php"); include_once(dirname(__FILE__)."/../classesphp/carrega_ext.php"); error_reporting(0); +if(!empty($desligacache)){ + $DESLIGACACHE = $desligacache; +} +// +//verifica se em cada camada deve ser inserido um parametro aleatorio para evitar cache de imagem do lado do cliente +// +if($nocache == "sim"){ + $nocache = "a".mt_rand(0, 1000)."&"; +} +else{ + $nocache = ""; +} // // recupera um mapa salvo no banco de administracao // @@ -233,7 +245,7 @@ if($temas != ""){ foreach($temas as $tema){ $nomeLayer = str_replace(".map","",basename($tema)); $nomeLayer = str_replace(".php","",$nomeLayer); - $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tema.'", "'.$servidor.'?tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{isBaseLayer:false})'; + $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tema.'", "'.$servidor.'?'.$nocache.'tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{isBaseLayer:false})'; } } else{ @@ -242,7 +254,7 @@ if($temas != ""){ include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); $gm = new gvsig2mapfile($locaplic."/temas/".$tema.".gvp"); $gvsigview = $gm->getViewsNames(); - $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$gvsigview[0].'", "../ogc.php?tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{layers:"'.$tema.'",transparent: "true", format: "image/png"},{singleTile:false,visibility:true,isBaseLayer:false})'; + $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$gvsigview[0].'", "../ogc.php?'.$nocache.'tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{layers:"'.$tema.'",transparent: "true", format: "image/png"},{singleTile:false,visibility:true,isBaseLayer:false})'; } else{ $nomeMap = ""; @@ -300,9 +312,9 @@ if($temas != ""){ 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.'&DESLIGACACHE='.$DESLIGACACHE.'",{tileOrigin: new OpenLayers.LonLat(-180, -90),serviceVersion:"&tms=",visibility:'.$visivel.',isBaseLayer:'.$ebase.',layername:"'.$nomeLayer.'",type:"png"})'; + $objOpenLayers[] = 'new OpenLayers.Layer.TMS("'.$tituloLayer.'", "../ogc.php?'.$nocache.'tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'",{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.'&DESLIGACACHE='.$DESLIGACACHE.'&",{cloneTMS:"'.$nomeLayer.'",layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{displayInLayerSwitcher:false,singleTile:true,visibility:false,isBaseLayer:false})'; + $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tituloLayer.'", "../ogc.php?'.$nocache.'tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{cloneTMS:"'.$nomeLayer.'",layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{displayInLayerSwitcher:false,singleTile:true,visibility:false,isBaseLayer:false})'; } else{ // $objOpenLayers[] = 'new OpenLayers.Layer.WMS( @@ -318,10 +330,10 @@ if($temas != ""){ $visivel = "true"; } if($tituloLayer != ""){ - $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tituloLayer.'", "../ogc.php?tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{singleTile:true,visibility:'.$visivel.',isBaseLayer:'.$ebase.'})'; + $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tituloLayer.'", "../ogc.php?'.$nocache.'tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{singleTile:true,visibility:'.$visivel.',isBaseLayer:'.$ebase.'})'; } else{ - $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tituloLayer.'", "../ogc.php?tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{displayInLayerSwitcher:false,singleTile:true,visibility:'.$visivel.',isBaseLayer:'.$ebase.'})'; + $objOpenLayers[] = 'new OpenLayers.Layer.WMS( "'.$tituloLayer.'", "../ogc.php?'.$nocache.'tema='.$tema.'&DESLIGACACHE='.$DESLIGACACHE.'&",{layers:"'.$nomeLayer.'",transparent: "true", format: "image/png"},{displayInLayerSwitcher:false,singleTile:true,visibility:'.$visivel.',isBaseLayer:'.$ebase.'})'; } } } @@ -366,6 +378,8 @@ function ajuda(){ ativalayerswicther (true|false) - inicia o mapa com a caixa de escolha das camadas (layerSwitcher) aberta ou não. Por default, inicia fechada ativarodadomouse (true|false) - ativa ou não o zoom com base na roda do mouse (default é true) legendahtml (true|false) - ativa ou não (default é false) a geração de legenda do tipo HTML no lugar de imagem png. Legendas HTML podem ser modificadas com base em CSS. A legenda é construída com o template i3geo/aplicmap/legendaOgc.html. + desligacache (sim|nao) - desativa o uso do cache de imagens em disco do lado do servidor, forçando a renderização dos tiles de cada camada em cada requisição + nocache (sim) - evita o uso de imagens em cache existentes no navegador do usuário fundo - lista com os nomes, separados por ',' dos layers que serão usados como fundo para o mapa. Se não for definido, será usado o default. O primeiro da lista será o fundo ativo. Se na lista de temas de fundo estiver algum diff --git a/temas/_cursoaeroporto.map b/temas/_cursoaeroporto.map index 56541a7..de2e570 100644 --- a/temas/_cursoaeroporto.map +++ b/temas/_cursoaeroporto.map @@ -1,34 +1,3 @@ -<<<<<<< .mine -MAP - FONTSET "../symbols/fontes.txt" - SYMBOLSET "../symbols/simbolosv6.sym" - LAYER - DATA "/var/www/i3geo/aplicmap/dados/sc22/AEROPORTO_CAMPO_DE_POUSO.shp" - METADATA - "CLASSE" "SIM" - "PLUGINI3GEO" '{"plugin":"heatmap","parametros":{"coluna":"1","radius":"15","max":"10"}}' - "TEMA" "Aeroportos SC22" - END # METADATA - NAME "_cursoaeroporto" - STATUS OFF - TEMPLATE "none.htm" - TILEITEM "location" - TYPE POINT - UNITS METERS - CLASS - NAME "" - STYLE - COLOR 255 0 0 - OUTLINECOLOR 0 0 0 - SIZE 15 - SYMBOL "ponto" - END # STYLE - END # CLASS - END # LAYER - -END # MAP - -======= MAP FONTSET "../symbols/fontes.txt" SYMBOLSET "../symbols/simbolosv6.sym" @@ -56,6 +25,4 @@ MAP END # CLASS END # LAYER -END # MAP - ->>>>>>> .r4835 +END # MAP \ No newline at end of file diff --git a/temas/_lbiomashp.map b/temas/_lbiomashp.map index ee2bfad..41e2b27 100644 --- a/temas/_lbiomashp.map +++ b/temas/_lbiomashp.map @@ -1,79 +1,79 @@ -MAP - FONTSET "/var/www/i3geo/symbols/fontes.txt" - SYMBOLSET "/var/www/i3geo/symbols/simbolosv6.sym" - LAYER - CONNECTION "" - DATA "/var/www/i3geo/aplicmap/dados/biomas.shp" - METADATA - "METAESTAT_ID_MEDIDA_VARIAVEL" "" - "cache" "SIM" - "CLASSE" "SIM" - "permitekmz" "nao" - "METAESTAT_CODIGO_TIPO_REGIAO" "" - "permitedownload" "sim" - "metaestat" "" - "permitekml" "sim" - "permiteogc" "sim" - "TEMA" "Biomas shapefile (acentuação)" - "convcaracter" "" - END # METADATA - NAME "_lbiomashp" - PROCESSING "ITEMS=CD_LEGENDA" - STATUS OFF - TEMPLATE "none.htm" - TILEITEM "location" - OPACITY 90 - TYPE POLYGON - UNITS METERS - CLASS - NAME "CAATINGA" - EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA') - STYLE - COLOR 128 214 231 - OUTLINECOLOR 255 255 255 - END # STYLE - END # CLASS - CLASS - NAME "PAMPA" - EXPRESSION ('[CD_LEGENDA]'eq'PAMPA') - STYLE - COLOR 114 23 92 - OUTLINECOLOR 255 255 255 - END # STYLE - END # CLASS - CLASS - NAME "CERRADO" - EXPRESSION ('[CD_LEGENDA]'eq'CERRADO') - STYLE - COLOR 168 160 140 - OUTLINECOLOR 255 255 255 - END # STYLE - END # CLASS - CLASS - NAME "PANTANAL" - EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL') - STYLE - COLOR 214 46 232 - OUTLINECOLOR 255 255 255 - END # STYLE - END # CLASS - CLASS - NAME "AMAZONIA" - EXPRESSION ('[CD_LEGENDA]'eq'AMAZONIA') - STYLE - COLOR 155 180 157 - OUTLINECOLOR 255 255 255 - END # STYLE - END # CLASS - CLASS - NAME "MATA ATLANTICA" - EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLANTICA') - STYLE - COLOR 161 186 110 - OUTLINECOLOR 255 255 255 - END # STYLE - END # CLASS - END # LAYER - -END # MAP - +MAP + FONTSET "/var/www/i3geo/symbols/fontes.txt" + SYMBOLSET "/var/www/i3geo/symbols/simbolosv6.sym" + LAYER + CONNECTION "" + DATA "/var/www/i3geo/aplicmap/dados/biomas.shp" + METADATA + "METAESTAT_ID_MEDIDA_VARIAVEL" "" + "cache" "SIM" + "CLASSE" "SIM" + "permitekmz" "nao" + "METAESTAT_CODIGO_TIPO_REGIAO" "" + "permitedownload" "sim" + "metaestat" "" + "permitekml" "sim" + "permiteogc" "sim" + "TEMA" "Biomas shapefile (acentuação)" + "convcaracter" "" + END # METADATA + NAME "_lbiomashp" + PROCESSING "ITEMS=CD_LEGENDA" + STATUS OFF + TEMPLATE "none.htm" + TILEITEM "location" + OPACITY 90 + TYPE POLYGON + UNITS METERS + CLASS + NAME "CAATINGA" + EXPRESSION ('[CD_LEGENDA]'eq'CAATINGA') + STYLE + COLOR 0 255 0 + OUTLINECOLOR 255 255 0 + END # STYLE + END # CLASS + CLASS + NAME "PAMPA" + EXPRESSION ('[CD_LEGENDA]'eq'PAMPA') + STYLE + COLOR 114 23 92 + OUTLINECOLOR 255 255 255 + END # STYLE + END # CLASS + CLASS + NAME "CERRADO" + EXPRESSION ('[CD_LEGENDA]'eq'CERRADO') + STYLE + COLOR 168 160 140 + OUTLINECOLOR 255 255 255 + END # STYLE + END # CLASS + CLASS + NAME "PANTANAL" + EXPRESSION ('[CD_LEGENDA]'eq'PANTANAL') + STYLE + COLOR 214 46 232 + OUTLINECOLOR 255 255 255 + END # STYLE + END # CLASS + CLASS + NAME "AMAZONIA" + EXPRESSION ('[CD_LEGENDA]'eq'AMAZONIA') + STYLE + COLOR 155 180 157 + OUTLINECOLOR 255 255 255 + END # STYLE + END # CLASS + CLASS + NAME "MATA ATLANTICA" + EXPRESSION ('[CD_LEGENDA]'eq'MATA ATLANTICA') + STYLE + COLOR 161 186 110 + OUTLINECOLOR 255 255 255 + END # STYLE + END # CLASS + END # LAYER + +END # MAP + -- libgit2 0.21.2