Commit 56475d097029d0251b3cf1313782f4bb83df9cc1

Authored by Edmar Moretti
1 parent d61aae81

Corrigir a função que mostra os limites geográficos na ferramenta de análise do …

…METAESTAT para evitar a inclusão repetida de layers
admin/admin.db
No preview for this file type
admin/php/classe_metaestat.php
... ... @@ -484,12 +484,17 @@ class Metaestat{
484 484 }
485 485 return array("mapfile"=>$arq,"layer"=>$this->nomecache,"titulolayer"=>$titulolayer);
486 486 }
487   - function mapfileTipoRegiao($codigo_tipo_regiao,$outlinecolor="255,0,0",$width=1,$nomes="nao"){
  487 + function mapfileTipoRegiao($codigo_tipo_regiao,$outlinecolor="255,0,0",$width=1,$nomes="nao",$forcaArquivo=false){
488 488 //para permitir a inclusao de filtros, o fim do sql e marcado com /*FW*//*FW*/
489 489 //indicando onde deve comecar e terminar uma possivel clausula where
490 490 //Layers adicionados aqui sao marcados com o metadata METAESTAT "SIM"
491 491 //O codigo_tipo_regiao e marcado com o metadata METAESTAT_CODIGO_TIPO_REGIAO
492   - $arq = $this->dir_tmp."/".$this->nomecache.".map";
  492 + if($forcaArquivo == false){
  493 + $arq = $this->dir_tmp."/".$this->nomecache.".map";
  494 + }
  495 + else{
  496 + $arq = $this->dir_tmp."/".$this->nomecache.nomeRandomico(3).".map";
  497 + }
493 498 if(!file_exists($arq)){
494 499 $tipolayer = "polygon";
495 500 $meta = $this->listaTipoRegiao($codigo_tipo_regiao);
... ... @@ -577,7 +582,7 @@ class Metaestat{
577 582 fwrite($fp,$dado."\n");
578 583 }
579 584 }
580   - return array("mapfile"=>$arq,"layer"=>$this->nomecache,"titulolayer"=>$titulolayer);
  585 + return array("mapfile"=>$arq,"layer"=>$this->nomecache,"titulolayer"=>$titulolayer,"codigo_tipo_regiao"=>$codigo_tipo_regiao);
581 586 }
582 587 function mapfileCompleto($mapfile){
583 588 $f = $this->base;
... ...
ferramentas/metaestat/analise.php
... ... @@ -101,6 +101,18 @@ switch (strtoupper($funcao)){
101 101 break;
102 102 case "CALOR":
103 103 $retorno = mapaDeCalor($map_file,$tema);
  104 + break;
  105 + case "ADICIONALIMITEREGIAO":
  106 + if(empty($outlinecolor)){
  107 + $outlinecolor = "255,0,0";
  108 + }
  109 + if(empty($width)){
  110 + $width = 1;
  111 + }
  112 + if(empty($nomes)){
  113 + $nomes = "nao";
  114 + }
  115 + $retorno = adicionaLimiteRegiao($map_file,$codigo_tipo_regiao,$outlinecolor,$width,$nomes);
104 116 break;
105 117 }
106 118 if (!connection_aborted()){
... ... @@ -108,6 +120,31 @@ if (!connection_aborted()){
108 120 }
109 121 else
110 122 {exit();}
  123 +function adicionaLimiteRegiao($map_file,$codigo_tipo_regiao,$outlinecolor,$width,$nomes){
  124 + global $locaplic,$dir_tmp;
  125 + $m = new Metaestat();
  126 + $res = $m->mapfileTipoRegiao($codigo_tipo_regiao,$outlinecolor,$width,$nomes,true);
  127 + $mapaNovo = ms_newMapObj($res["mapfile"]);
  128 + $layerNovo = $mapaNovo->getlayerbyname($res["layer"]);
  129 + $layerNovo->set("status",MS_DEFAULT);
  130 + $dataNovo = $layerNovo->data;
  131 + $mapa = ms_newMapObj($map_file);
  132 + $c = $mapa->numlayers;
  133 + for($i=0;$i < $c;++$i){
  134 + $l = $mapa->getlayer($i);
  135 + if($l->data == $dataNovo){
  136 + $l->set("status",MS_DELETE);
  137 + }
  138 + }
  139 + ms_newLayerObj($mapa, $layerNovo);
  140 + if($nomes == "sim"){
  141 + $layerNovo = $mapaNovo->getlayerbyname($res["layer"]."_anno");
  142 + $layerNovo->set("status",MS_DEFAULT);
  143 + ms_newLayerObj($mapa, $layerNovo);
  144 + }
  145 + $mapa->save($map_file);
  146 + return "ok";
  147 +}
111 148 function mapaDeCalor($map_file,$tema){
112 149 global $locaplic,$dir_tmp,$R_path,$ext;
113 150 $nome = basename($map_file).$tema."calor";
... ...
ferramentas/metaestat/mostraregiao.js
... ... @@ -63,10 +63,12 @@ i3GEOF.mostraregiao = {
63 63 inicia: function(divid){
64 64 $i(divid).innerHTML = i3GEOF.mostraregiao.html();
65 65 i3GEOF.mostraregiao.comboRegioes($i("i3geomostraregiaoTipoRegiao"));
  66 + YAHOO.i3GEO.janela.manager.find("i3GEOF.mostraregiao").setFooter('<input id=i3geomostraregiaoAplica type="button" value="'+$trad("p14")+'" />');
66 67 new YAHOO.widget.Button(
67 68 "i3geomostraregiaoAplica",
68 69 {onclick:{fn: function(){i3GEOF.mostraregiao.aplica();}}}
69 70 );
  71 + $i("i3geomostraregiaoAplica-button").style.width = "180px";
70 72 },
71 73 //utiliza o dicionario compartilhado
72 74 iniciaDicionario: function(){
... ... @@ -113,15 +115,14 @@ i3GEOF.mostraregiao = {
113 115 },
114 116 html: function(){
115 117 var ins = "" +
116   - '<input id=i3geomostraregiaoAplica type="button" value="'+$trad("p14")+'" />&nbsp;' +
117   - '<br><br><div class="paragrafo" id="i3geomostraregiaoTipoRegiao" >' +
  118 + '<div class="paragrafo" id="i3geomostraregiaoTipoRegiao" >' +
118 119 '</div>' +
119 120 '<p class=paragrafo ><input type=checkbox id="i3geomostraregiaoNomes" style="cursor:pointer;position:relative;top:2px;" /> Inclui nomes</p>' +
120 121 '<p class=paragrafo >Contorno:</p>' +
121 122 'Cor: &nbsp;' + $inputText("","","i3geomostraregiaoOutlinecolor","",12,"255,0,0") +
122 123 '&nbsp;<img alt="aquarela.gif" style=position:relative;top:2px;cursor:pointer src="'+i3GEO.configura.locaplic+'/imagens/aquarela.gif" onclick="i3GEOF.mostraregiao.corj(\'i3geomostraregiaoOutlinecolor\')" /> ' +
123 124 '<br><br>Largura: &nbsp;' + $inputText("","","i3geomostraregiaoWidth","",3,"1") +
124   - '<br>' ;
  125 + '<br><br>' ;
125 126 return ins;
126 127 },
127 128 comboRegioes: function(objonde){
... ... @@ -154,13 +155,8 @@ i3GEOF.mostraregiao = {
154 155 i3GEO.janela.abreAguarde("aguardeMostraRegiao","Aguarde...");
155 156 var temp = function(retorno){
156 157 i3GEO.janela.fechaAguarde("aguardeMostraRegiao");
157   - if(retorno.layer == ""){
158   - i3GEO.atualiza();
159   - return;
160   - }
161   - if(i3GEO.arvoreDeCamadas.pegaTema(retorno.layer) == ""){
162   - i3GEO.php.adtema(i3GEO.atualiza,retorno.mapfile);
163   - }
  158 + i3GEO.atualiza();
  159 +
164 160 };
165 161 if(nomes.checked == true){
166 162 nomes = "sim";
... ... @@ -168,7 +164,17 @@ i3GEOF.mostraregiao = {
168 164 else{
169 165 nomes = "nao";
170 166 }
171   - i3GEO.php.mapfileTipoRegiao(temp,combo.value,$i("i3geomostraregiaoOutlinecolor").value,$i("i3geomostraregiaoWidth").value,nomes);
  167 + i3GEO.janela.AGUARDEMODAL = true;
  168 + i3GEO.janela.abreAguarde("aguardeMostraRegiao","Aplicando...");
  169 + i3GEO.janela.AGUARDEMODAL = false;
  170 + p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?funcao=adicionaLimiteRegiao"+
  171 + "&codigo_tipo_regiao="+combo.value+
  172 + "&g_sid="+i3GEO.configura.sid+
  173 + "&outlinecolor="+$i("i3geomostraregiaoOutlinecolor").value+
  174 + "&width="+$i("i3geomostraregiaoWidth").value+
  175 + "&nomes="+nomes;
  176 + i3GEO.util.ajaxGet(p,temp);
  177 + //i3GEO.php.mapfileTipoRegiao(temp,combo.value,$i("i3geomostraregiaoOutlinecolor").value,$i("i3geomostraregiaoWidth").value,nomes);
172 178 },
173 179 corj: function(obj){
174 180 i3GEO.util.abreCor("",obj);
... ...