Commit 138c467eb6598075d29e6f04d78c51ed72be9b9f

Authored by Edmar Moretti
1 parent cfe3c3f9

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
@@ -545,7 +545,7 @@ class MetaestatInfo{ @@ -545,7 +545,7 @@ class MetaestatInfo{
545 * @param faz o cache do mapfile 545 * @param faz o cache do mapfile
546 * @return array("mapfile"=>,"layer"=>,"titulolayer"=>) 546 * @return array("mapfile"=>,"layer"=>,"titulolayer"=>)
547 */ 547 */
548 - function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor="",$codigo_tipo_regiao="",$opacidade="",$suportaWMST=false,$cachemapfile=true){ 548 + function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor="",$codigo_tipo_regiao="",$opacidade="",$suportaWMST=false,$cachemapfile=true,$nomeTemp=""){
549 //para permitir a inclusao de filtros, o fim do sql e marcado com /*FW*//*FW*/ 549 //para permitir a inclusao de filtros, o fim do sql e marcado com /*FW*//*FW*/
550 //indicando onde deve comecar e terminar uma possivel clausula where 550 //indicando onde deve comecar e terminar uma possivel clausula where
551 //ou com /*FA*//*FA*/ 551 //ou com /*FA*//*FA*/
@@ -557,7 +557,13 @@ class MetaestatInfo{ @@ -557,7 +557,13 @@ class MetaestatInfo{
557 if($cachemapfile == false){ 557 if($cachemapfile == false){
558 $this->nomecache = $this->nomecache . $this->nomeRandomico(5); 558 $this->nomecache = $this->nomecache . $this->nomeRandomico(5);
559 } 559 }
560 - $arq = $this->dir_tmp."/".$this->nomecache.".map"; 560 + if($nomeTemp == ""){
  561 + $arq = $this->dir_tmp."/".$this->nomecache.".map";
  562 + $nomeDoLayer = $this->nomecache;
  563 + } else {
  564 + $arq = $nomeTemp;
  565 + $nomeDoLayer = str_replace(".map","",basename($nomeTemp));
  566 + }
561 //error_log("-- "); 567 //error_log("-- ");
562 //error_log("--xxxxxxxxxxx---- nomecache: ".$arq); 568 //error_log("--xxxxxxxxxxx---- nomecache: ".$arq);
563 if(!file_exists($arq)){ 569 if(!file_exists($arq)){
@@ -699,7 +705,7 @@ class MetaestatInfo{ @@ -699,7 +705,7 @@ class MetaestatInfo{
699 } 705 }
700 } 706 }
701 $dados[] = "LAYER"; 707 $dados[] = "LAYER";
702 - $dados[] = ' NAME "'.$this->nomecache.'"'; 708 + $dados[] = ' NAME "'.$nomeDoLayer.'"';
703 $dados[] = " TYPE $tipolayer"; 709 $dados[] = " TYPE $tipolayer";
704 $dados[] = ' DATA "'.$sqlf.'"'; 710 $dados[] = ' DATA "'.$sqlf.'"';
705 //$dados[] = ' CONNECTION "'.$conexao.'"'; 711 //$dados[] = ' CONNECTION "'.$conexao.'"';
@@ -793,7 +799,7 @@ class MetaestatInfo{ @@ -793,7 +799,7 @@ class MetaestatInfo{
793 } 799 }
794 } 800 }
795 801
796 - return array("mapfile"=>$arq,"layer"=>$this->nomecache,"titulolayer"=>$titulolayer); 802 + return array("mapfile"=>$arq,"layer"=>$nomeDoLayer,"titulolayer"=>$titulolayer);
797 } 803 }
798 /** 804 /**
799 * Cria um mapfile para visualizacao de regioes 805 * Cria um mapfile para visualizacao de regioes
ms_criamapa.php
@@ -845,28 +845,33 @@ function incluiTemasIniciais() @@ -845,28 +845,33 @@ function incluiTemasIniciais()
845 $metaestatidsligados = str_replace(',', " ", $metaestatidsligados); 845 $metaestatidsligados = str_replace(',', " ", $metaestatidsligados);
846 $metaestatidsligados = explode(" ", $metaestatidsligados); 846 $metaestatidsligados = explode(" ", $metaestatidsligados);
847 foreach ($metaestatids as $metaestatid) { 847 foreach ($metaestatids as $metaestatid) {
848 - // $_pg["filtro"] = str_replace('"', "'", $_pg["filtro"]);  
849 - $m = new MetaestatInfo();  
850 -  
851 - $parametros = $m->listaParametro($metaestatid, "", "", true, true);  
852 - // id_parametro_medida,coluna  
853 - $filtroPar = array();  
854 - $tituloPar = array();  
855 - foreach ($parametros as $parametro) {  
856 - $valoresparametro = $m->valorUnicoMedidaVariavel($metaestatid, $parametro["coluna"]);  
857 - //var_dump($valoresparametro);  
858 - //exit();  
859 - $valormaior = $valoresparametro[count($valoresparametro) - 1];  
860 - $filtroPar[] = " " . $parametro["coluna"] . "::text = '" . $valormaior[$parametro["coluna"]] . "' ";  
861 - $tituloPar[] = $parametro["coluna"] . ": " . $valormaior[$parametro["coluna"]];  
862 - }  
863 - $dadosMedida = $m->listaMedidaVariavel("", $metaestatid);  
864 - // var_dump($dadosMedida);exit;  
865 - $tituloCamada = mb_convert_encoding($dadosMedida["nomemedida"],"ISO-8859-1",mb_detect_encoding($dadosMedida["nomemedida"]));  
866 - if(count($tituloPar)>0){  
867 - $tituloCamada = $tituloCamada." (".implode(" ,",$tituloPar)." )"; 848 + if(!file_exists($_SESSION["dir_tmp"]."/metaestatTempInit".$metaestatid.".map")){
  849 + $m = new MetaestatInfo();
  850 + $parametros = $m->listaParametro($metaestatid, "", "", true, true);
  851 + // id_parametro_medida,coluna
  852 + $filtroPar = array();
  853 + $tituloPar = array();
  854 + foreach ($parametros as $parametro) {
  855 + $valoresparametro = $m->valorUnicoMedidaVariavel($metaestatid, $parametro["coluna"]);
  856 + //var_dump($valoresparametro);
  857 + //exit();
  858 + $valormaior = $valoresparametro[count($valoresparametro) - 1];
  859 + $filtroPar[] = " " . $parametro["coluna"] . "::text = '" . $valormaior[$parametro["coluna"]] . "' ";
  860 + $tituloPar[] = $parametro["coluna"] . ": " . $valormaior[$parametro["coluna"]];
  861 + }
  862 + $dadosMedida = $m->listaMedidaVariavel("", $metaestatid);
  863 + // var_dump($dadosMedida);exit;
  864 + $tituloCamada = mb_convert_encoding($dadosMedida["nomemedida"],"ISO-8859-1",mb_detect_encoding($dadosMedida["nomemedida"]));
  865 + if(count($tituloPar)>0){
  866 + $tituloCamada = $tituloCamada." (".implode(" ,",$tituloPar)." )";
  867 + }
  868 + $mapfilemetaestat = $m->mapfileMedidaVariavel($metaestatid, implode(" AND ", $filtroPar), 0, "polygon", $tituloCamada, "", "", "", "", false, true,$_SESSION["dir_tmp"]."/metaestatTempInit".$metaestatid.".map");
  869 + } else {
  870 + $mapfilemetaestat = array(
  871 + "mapfile" => $_SESSION["dir_tmp"]."/metaestatTempInit".$metaestatid.".map",
  872 + "layer" => "metaestatTempInit".$metaestatid
  873 + );
868 } 874 }
869 - $mapfilemetaestat = $m->mapfileMedidaVariavel($metaestatid, implode(" AND ", $filtroPar), 0, "polygon", $tituloCamada, "", "", "", "", false, true);  
870 // array(3) { ["mapfile"]=> string(52) "/tmp/ms_tmp/AAAAc20ad4d76fe97759aa27a0c99bff6710.map" ["layer"]=> string(36) "AAAAc20ad4d76fe97759aa27a0c99bff6710" ["titulolayer"]=> string(0) "" } 875 // array(3) { ["mapfile"]=> string(52) "/tmp/ms_tmp/AAAAc20ad4d76fe97759aa27a0c99bff6710.map" ["layer"]=> string(36) "AAAAc20ad4d76fe97759aa27a0c99bff6710" ["titulolayer"]=> string(0) "" }
871 // var_dump ($mapfilemetaestat); 876 // var_dump ($mapfilemetaestat);
872 // exit; 877 // exit;