From 138c467eb6598075d29e6f04d78c51ed72be9b9f Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 20 Mar 2018 12:46:41 -0300 Subject: [PATCH] Melhoria na criação do mapfile de cache na criação do mapa quando se usa um id do sistema metaestat --- classesphp/classe_metaestatinfo.php | 14 ++++++++++---- ms_criamapa.php | 47 ++++++++++++++++++++++++++--------------------- 2 files changed, 36 insertions(+), 25 deletions(-) diff --git a/classesphp/classe_metaestatinfo.php b/classesphp/classe_metaestatinfo.php index e0aae30..a395e11 100755 --- a/classesphp/classe_metaestatinfo.php +++ b/classesphp/classe_metaestatinfo.php @@ -545,7 +545,7 @@ class MetaestatInfo{ * @param faz o cache do mapfile * @return array("mapfile"=>,"layer"=>,"titulolayer"=>) */ - function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor="",$codigo_tipo_regiao="",$opacidade="",$suportaWMST=false,$cachemapfile=true){ + function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor="",$codigo_tipo_regiao="",$opacidade="",$suportaWMST=false,$cachemapfile=true,$nomeTemp=""){ //para permitir a inclusao de filtros, o fim do sql e marcado com /*FW*//*FW*/ //indicando onde deve comecar e terminar uma possivel clausula where //ou com /*FA*//*FA*/ @@ -557,7 +557,13 @@ class MetaestatInfo{ if($cachemapfile == false){ $this->nomecache = $this->nomecache . $this->nomeRandomico(5); } - $arq = $this->dir_tmp."/".$this->nomecache.".map"; + if($nomeTemp == ""){ + $arq = $this->dir_tmp."/".$this->nomecache.".map"; + $nomeDoLayer = $this->nomecache; + } else { + $arq = $nomeTemp; + $nomeDoLayer = str_replace(".map","",basename($nomeTemp)); + } //error_log("-- "); //error_log("--xxxxxxxxxxx---- nomecache: ".$arq); if(!file_exists($arq)){ @@ -699,7 +705,7 @@ class MetaestatInfo{ } } $dados[] = "LAYER"; - $dados[] = ' NAME "'.$this->nomecache.'"'; + $dados[] = ' NAME "'.$nomeDoLayer.'"'; $dados[] = " TYPE $tipolayer"; $dados[] = ' DATA "'.$sqlf.'"'; //$dados[] = ' CONNECTION "'.$conexao.'"'; @@ -793,7 +799,7 @@ class MetaestatInfo{ } } - return array("mapfile"=>$arq,"layer"=>$this->nomecache,"titulolayer"=>$titulolayer); + return array("mapfile"=>$arq,"layer"=>$nomeDoLayer,"titulolayer"=>$titulolayer); } /** * Cria um mapfile para visualizacao de regioes diff --git a/ms_criamapa.php b/ms_criamapa.php index 75ce29c..af34079 100755 --- a/ms_criamapa.php +++ b/ms_criamapa.php @@ -845,28 +845,33 @@ function incluiTemasIniciais() $metaestatidsligados = str_replace(',', " ", $metaestatidsligados); $metaestatidsligados = explode(" ", $metaestatidsligados); foreach ($metaestatids as $metaestatid) { - // $_pg["filtro"] = str_replace('"', "'", $_pg["filtro"]); - $m = new MetaestatInfo(); - - $parametros = $m->listaParametro($metaestatid, "", "", true, true); - // id_parametro_medida,coluna - $filtroPar = array(); - $tituloPar = array(); - foreach ($parametros as $parametro) { - $valoresparametro = $m->valorUnicoMedidaVariavel($metaestatid, $parametro["coluna"]); - //var_dump($valoresparametro); - //exit(); - $valormaior = $valoresparametro[count($valoresparametro) - 1]; - $filtroPar[] = " " . $parametro["coluna"] . "::text = '" . $valormaior[$parametro["coluna"]] . "' "; - $tituloPar[] = $parametro["coluna"] . ": " . $valormaior[$parametro["coluna"]]; - } - $dadosMedida = $m->listaMedidaVariavel("", $metaestatid); - // var_dump($dadosMedida);exit; - $tituloCamada = mb_convert_encoding($dadosMedida["nomemedida"],"ISO-8859-1",mb_detect_encoding($dadosMedida["nomemedida"])); - if(count($tituloPar)>0){ - $tituloCamada = $tituloCamada." (".implode(" ,",$tituloPar)." )"; + if(!file_exists($_SESSION["dir_tmp"]."/metaestatTempInit".$metaestatid.".map")){ + $m = new MetaestatInfo(); + $parametros = $m->listaParametro($metaestatid, "", "", true, true); + // id_parametro_medida,coluna + $filtroPar = array(); + $tituloPar = array(); + foreach ($parametros as $parametro) { + $valoresparametro = $m->valorUnicoMedidaVariavel($metaestatid, $parametro["coluna"]); + //var_dump($valoresparametro); + //exit(); + $valormaior = $valoresparametro[count($valoresparametro) - 1]; + $filtroPar[] = " " . $parametro["coluna"] . "::text = '" . $valormaior[$parametro["coluna"]] . "' "; + $tituloPar[] = $parametro["coluna"] . ": " . $valormaior[$parametro["coluna"]]; + } + $dadosMedida = $m->listaMedidaVariavel("", $metaestatid); + // var_dump($dadosMedida);exit; + $tituloCamada = mb_convert_encoding($dadosMedida["nomemedida"],"ISO-8859-1",mb_detect_encoding($dadosMedida["nomemedida"])); + if(count($tituloPar)>0){ + $tituloCamada = $tituloCamada." (".implode(" ,",$tituloPar)." )"; + } + $mapfilemetaestat = $m->mapfileMedidaVariavel($metaestatid, implode(" AND ", $filtroPar), 0, "polygon", $tituloCamada, "", "", "", "", false, true,$_SESSION["dir_tmp"]."/metaestatTempInit".$metaestatid.".map"); + } else { + $mapfilemetaestat = array( + "mapfile" => $_SESSION["dir_tmp"]."/metaestatTempInit".$metaestatid.".map", + "layer" => "metaestatTempInit".$metaestatid + ); } - $mapfilemetaestat = $m->mapfileMedidaVariavel($metaestatid, implode(" AND ", $filtroPar), 0, "polygon", $tituloCamada, "", "", "", "", false, true); // array(3) { ["mapfile"]=> string(52) "/tmp/ms_tmp/AAAAc20ad4d76fe97759aa27a0c99bff6710.map" ["layer"]=> string(36) "AAAAc20ad4d76fe97759aa27a0c99bff6710" ["titulolayer"]=> string(0) "" } // var_dump ($mapfilemetaestat); // exit; -- libgit2 0.21.2