Commit 58e7affabc90896b21f8e99202ac4343212a413a

Authored by Edmar Moretti
1 parent b53cd23b

Incluida opção para aplicar automaticamente níveis de transparência às classes d…

…e um layer no editor de legenda
classesphp/classe_alteraclasse.php
@@ -430,6 +430,32 @@ A nova classe será uma cópia da classe 0. @@ -430,6 +430,32 @@ A nova classe será uma cópia da classe 0.
430 return("ok"); 430 return("ok");
431 } 431 }
432 /* 432 /*
  433 +function: adicionaopacidade
  434 +
  435 +Adiciona opacidade variável de 0 a 100 conforme o número de classes
  436 +
  437 +*/
  438 + function adicionaopacidade()
  439 + {
  440 + //error_reporting(E_ALL);
  441 + if(!$this->layer){return "erro";}
  442 + $numclasses = $this->layer->numclasses;
  443 + $n = intval(100 / $numclasses);
  444 + for($i=0;$i<$numclasses;++$i)
  445 + {
  446 + $classe = $this->layer->getclass($i);
  447 + $numestilos = $classe->numstyles;
  448 + $o = $i * $n;
  449 + for($j=0;$j<$numestilos;++$j)
  450 + {
  451 + $estilo = $classe->getstyle($j);
  452 + $estilo->set("opacity",$o);
  453 + }
  454 + }
  455 + $this->layer->setMetaData("cache","");
  456 + return("ok");
  457 + }
  458 +/*
433 function: alteraCoresClasses 459 function: alteraCoresClasses
434 460
435 Altera as cores das classes existentes em um objeto layer gerando uma paleta de cores de acordo com um valor inicial e final. 461 Altera as cores das classes existentes em um objeto layer gerando uma paleta de cores de acordo com um valor inicial e final.
classesphp/classe_legenda.php
@@ -545,6 +545,7 @@ string com o tipo do layer,id do estilo,outlinecolor,backgroundcolor,color,symbo @@ -545,6 +545,7 @@ string com o tipo do layer,id do estilo,outlinecolor,backgroundcolor,color,symbo
545 $linha[] = corRGB($estilo->color); 545 $linha[] = corRGB($estilo->color);
546 $linha[] = $estilo->symbolname; 546 $linha[] = $estilo->symbolname;
547 $linha[] = $estilo->size; 547 $linha[] = $estilo->size;
  548 + $linha[] = $estilo->opacity;
548 $linhas[] = $tipoLayer."#".implode("#",$linha); 549 $linhas[] = $tipoLayer."#".implode("#",$linha);
549 } 550 }
550 //retorna tipo do layer,id do estilo,outlinecolor,backgroundcolor,color,symbolname,size 551 //retorna tipo do layer,id do estilo,outlinecolor,backgroundcolor,color,symbolname,size
@@ -568,9 +569,11 @@ $color - Cor da frente. @@ -568,9 +569,11 @@ $color - Cor da frente.
568 569
569 $symbolname - Nome do símbolo. 570 $symbolname - Nome do símbolo.
570 571
571 -$size - Tamanho que será aplicado ao símbolo. 572 +$size - Tamanho que será aplicado ao símbolo.
  573 +
  574 +$opacidade - Opacidade
572 */ 575 */
573 - function aplicaParametro($classe,$estilo,$outlinecolor,$backgroundcolor,$color,$symbolname,$size) 576 + function aplicaParametro($classe,$estilo,$outlinecolor,$backgroundcolor,$color,$symbolname,$size,$opacidade)
574 { 577 {
575 if(!$this->layer){return "erro";} 578 if(!$this->layer){return "erro";}
576 $classe = $this->layer->getclass($classe); 579 $classe = $this->layer->getclass($classe);
@@ -597,12 +600,14 @@ $size - Tamanho que será aplicado ao símbolo. @@ -597,12 +600,14 @@ $size - Tamanho que será aplicado ao símbolo.
597 {$estilo->set("symbolname",$symbolname);} 600 {$estilo->set("symbolname",$symbolname);}
598 if ((isset ($size)) && ($size != "-1")) 601 if ((isset ($size)) && ($size != "-1"))
599 {$estilo->set("size",$size);} 602 {$estilo->set("size",$size);}
  603 + if(isset($opacidade))
  604 + {$estilo->set("opacity",$opacidade);}
600 if ($this->layer->getmetadata("sld") != "") 605 if ($this->layer->getmetadata("sld") != "")
601 { 606 {
602 $sld = $this->layer->getmetadata("sld"); 607 $sld = $this->layer->getmetadata("sld");
603 reSLD($this->arquivo,$this->nome,$sld); 608 reSLD($this->arquivo,$this->nome,$sld);
604 } 609 }
605 - $this->layer->removeMetaData("cache"); 610 + $this->layer->setMetaData("cache","");
606 return "ok"; 611 return "ok";
607 } 612 }
608 /* 613 /*
classesphp/mapa_controle.php
@@ -1378,7 +1378,9 @@ Altera uma classe de um tema, aplicando uma nova classificação ou modificando pa @@ -1378,7 +1378,9 @@ Altera uma classe de um tema, aplicando uma nova classificação ou modificando pa
1378 { 1378 {
1379 $projMapa = $m->mapa->getProjection(); 1379 $projMapa = $m->mapa->getProjection();
1380 $m->mapa->setProjection("init=epsg:4291"); 1380 $m->mapa->setProjection("init=epsg:4291");
1381 - } 1381 + }
  1382 + if ($opcao == "adicionaopacidade")
  1383 + {$retorno = $m->adicionaopacidade();}
1382 if ($opcao == "adicionaclasse") 1384 if ($opcao == "adicionaclasse")
1383 {$retorno = $m->adicionaclasse();} 1385 {$retorno = $m->adicionaclasse();}
1384 if ($opcao == "valorunico") 1386 if ($opcao == "valorunico")
@@ -2303,7 +2305,7 @@ Define as características de simbologia de uma classe, cria, adiciona e exclui e @@ -2303,7 +2305,7 @@ Define as características de simbologia de uma classe, cria, adiciona e exclui e
2303 } 2305 }
2304 if ($opcao == "aplica") 2306 if ($opcao == "aplica")
2305 { 2307 {
2306 - $retorno = $m->aplicaParametro($classe,$estilo,$outlinecolor,$backgroundcolor,$color,$symbolname,$size); 2308 + $retorno = $m->aplicaParametro($classe,$estilo,$outlinecolor,$backgroundcolor,$color,$symbolname,$size,$opacidade);
2307 $m->salva(); 2309 $m->salva();
2308 } 2310 }
2309 if ($opcao == "listaSimbolos") 2311 if ($opcao == "listaSimbolos")
ferramentas/legenda/index.js.php
@@ -122,6 +122,10 @@ i3GEOF.legenda = { @@ -122,6 +122,10 @@ i3GEOF.legenda = {
122 {onclick:{fn: i3GEOF.legenda.adicionaConta}} 122 {onclick:{fn: i3GEOF.legenda.adicionaConta}}
123 ); 123 );
124 new YAHOO.widget.Button( 124 new YAHOO.widget.Button(
  125 + "i3GEOlegendabotao15",
  126 + {onclick:{fn: i3GEOF.legenda.adicionaOpacidade}}
  127 + );
  128 + new YAHOO.widget.Button(
125 "i3GEOlegendabotao4", 129 "i3GEOlegendabotao4",
126 {onclick:{fn: i3GEOF.legenda.paleta}} 130 {onclick:{fn: i3GEOF.legenda.paleta}}
127 ); 131 );
@@ -184,9 +188,11 @@ i3GEOF.legenda = { @@ -184,9 +188,11 @@ i3GEOF.legenda = {
184 '</div><br>'+ 188 '</div><br>'+
185 '<div id=i3GEOlegendaguia1obj style="width:99%;text-align:left;">'+ 189 '<div id=i3GEOlegendaguia1obj style="width:99%;text-align:left;">'+
186 ' <p class=paragrafo ><input id=i3GEOlegendabotao1 size="22" type="button" value="Aplicar alterações">'+ 190 ' <p class=paragrafo ><input id=i3GEOlegendabotao1 size="22" type="button" value="Aplicar alterações">'+
187 - ' <input id=i3GEOlegendabotao2 size="22" type="button" value="Adicionar classe">' +  
188 - ' <input id=i3GEOlegendabotao3 size="25" type="button" value="Adiciona contagem"></p>' +  
189 - ' <table summary="" class=lista5 width="400px">' + 191 + ' <input id=i3GEOlegendabotao2 size="22" type="button" value="+ classe">' +
  192 + ' <input id=i3GEOlegendabotao3 size="25" type="button" value="+ contagem">' +
  193 + ' <input id=i3GEOlegendabotao15 size="25" type="button" value="Opacidade variável"></p>' +
  194 +
  195 + ' <table summary="" class=lista5 >' +
190 ' <tr>' + 196 ' <tr>' +
191 ' <td><input id=i3GEOlegendabotao4 type="button" size=15 value="Gerar cores"></td>' + 197 ' <td><input id=i3GEOlegendabotao4 type="button" size=15 value="Gerar cores"></td>' +
192 ' <td>de:</td>' + 198 ' <td>de:</td>' +
@@ -482,6 +488,30 @@ i3GEOF.legenda = { @@ -482,6 +488,30 @@ i3GEOF.legenda = {
482 cp.call(p,"alteraclasse",i3GEOF.legenda.mostralegenda); 488 cp.call(p,"alteraclasse",i3GEOF.legenda.mostralegenda);
483 }, 489 },
484 /* 490 /*
  491 + Function: adicionaOpacidade
  492 +
  493 + Adiciona opacidade variável em cada classe
  494 +
  495 + Veja:
  496 +
  497 + <ALTERACLASSE>
  498 + */
  499 + adicionaOpacidade: function(){
  500 + var retorna = function(){
  501 + i3GEO.atualiza();
  502 + i3GEO.Interface.atualizaTema("",i3GEOF.legenda.tema);
  503 + i3GEO.arvoreDeCamadas.atualizaLegenda(i3GEOF.legenda.tema);
  504 + i3GEOF.legenda.aguarde.visibility = "hidden";
  505 + i3GEOF.legenda.mostralegenda();
  506 + };
  507 + if(i3GEOF.legenda.aguarde.visibility === "visible")
  508 + {return;}
  509 + var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=alteraclasse&opcao=adicionaopacidade"+"&tema="+i3GEOF.legenda.tema+"&ext="+i3GEO.parametros.mapexten,
  510 + cp = new cpaint();
  511 + cp.set_response_type("JSON");
  512 + cp.call(p,"alteraclasse",retorna);
  513 + },
  514 + /*
485 Function: paleta 515 Function: paleta
486 516
487 Gera as cores para as classes considerando um RGB inicial e um final 517 Gera as cores para as classes considerando um RGB inicial e um final
@@ -873,6 +903,9 @@ i3GEOF.legenda = { @@ -873,6 +903,9 @@ i3GEOF.legenda = {
873 "<tr><td style='text-align:left;'>Tamanho:</td><td>"+ 903 "<tr><td style='text-align:left;'>Tamanho:</td><td>"+
874 $inputText("","","i3GEOlegendasizes","",12,linha[6]) + 904 $inputText("","","i3GEOlegendasizes","",12,linha[6]) +
875 "</td><td></td></tr>" + 905 "</td><td></td></tr>" +
  906 + "<tr><td style='text-align:left;'>Opacidade:</td><td>"+
  907 + $inputText("","","i3GEOlegendaopacidade","",3,linha[7]) +
  908 + "</td><td></td></tr>" +
876 "<tr><td style='text-align:left;'>S&iacute;mbolo:</td><td>"+ 909 "<tr><td style='text-align:left;'>S&iacute;mbolo:</td><td>"+
877 $inputText("","","i3GEOlegendasymbolname","",12,linha[5]) + 910 $inputText("","","i3GEOlegendasymbolname","",12,linha[5]) +
878 "</td><td></td></tr></table>"; 911 "</td><td></td></tr></table>";
@@ -932,6 +965,7 @@ i3GEOF.legenda = { @@ -932,6 +965,7 @@ i3GEOF.legenda = {
932 valido = "nao", 965 valido = "nao",
933 n = simbolos.length, 966 n = simbolos.length,
934 size = $i("i3GEOlegendasizes").value, 967 size = $i("i3GEOlegendasizes").value,
  968 + opacidade = $i("i3GEOlegendaopacidade").value,
935 p,cp,fim; 969 p,cp,fim;
936 for (i=0;i<n;i++){ 970 for (i=0;i<n;i++){
937 if(simbolos[i].title == symbolname) 971 if(simbolos[i].title == symbolname)
@@ -942,7 +976,7 @@ i3GEOF.legenda = { @@ -942,7 +976,7 @@ i3GEOF.legenda = {
942 i3GEOF.legenda.aguarde.visibility = "hidden"; 976 i3GEOF.legenda.aguarde.visibility = "hidden";
943 return; 977 return;
944 } 978 }
945 - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=editasimbolo&opcao=aplica&tema="+i3GEOF.legenda.tema+"&classe="+i3GEOF.legenda.classe+"&estilo="+i3GEOF.legenda.estilo+"&outlinecolor="+outlinecolor+"&backgroundcolor="+backgroundcolor+"&color="+color+"&symbolname="+symbolname+"&size="+size; 979 + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=editasimbolo&opcao=aplica&tema="+i3GEOF.legenda.tema+"&classe="+i3GEOF.legenda.classe+"&estilo="+i3GEOF.legenda.estilo+"&outlinecolor="+outlinecolor+"&backgroundcolor="+backgroundcolor+"&color="+color+"&symbolname="+symbolname+"&size="+size+"&opacidade="+opacidade;
946 cp = new cpaint(); 980 cp = new cpaint();
947 fim = function(){ 981 fim = function(){
948 i3GEO.atualiza(); 982 i3GEO.atualiza();