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 545 * @param faz o cache do mapfile
546 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 549 //para permitir a inclusao de filtros, o fim do sql e marcado com /*FW*//*FW*/
550 550 //indicando onde deve comecar e terminar uma possivel clausula where
551 551 //ou com /*FA*//*FA*/
... ... @@ -557,7 +557,13 @@ class MetaestatInfo{
557 557 if($cachemapfile == false){
558 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 567 //error_log("-- ");
562 568 //error_log("--xxxxxxxxxxx---- nomecache: ".$arq);
563 569 if(!file_exists($arq)){
... ... @@ -699,7 +705,7 @@ class MetaestatInfo{
699 705 }
700 706 }
701 707 $dados[] = "LAYER";
702   - $dados[] = ' NAME "'.$this->nomecache.'"';
  708 + $dados[] = ' NAME "'.$nomeDoLayer.'"';
703 709 $dados[] = " TYPE $tipolayer";
704 710 $dados[] = ' DATA "'.$sqlf.'"';
705 711 //$dados[] = ' CONNECTION "'.$conexao.'"';
... ... @@ -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 805 * Cria um mapfile para visualizacao de regioes
... ...
ms_criamapa.php
... ... @@ -845,28 +845,33 @@ function incluiTemasIniciais()
845 845 $metaestatidsligados = str_replace(',', " ", $metaestatidsligados);
846 846 $metaestatidsligados = explode(" ", $metaestatidsligados);
847 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 875 // array(3) { ["mapfile"]=> string(52) "/tmp/ms_tmp/AAAAc20ad4d76fe97759aa27a0c99bff6710.map" ["layer"]=> string(36) "AAAAc20ad4d76fe97759aa27a0c99bff6710" ["titulolayer"]=> string(0) "" }
871 876 // var_dump ($mapfilemetaestat);
872 877 // exit;
... ...