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 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 459 function: alteraCoresClasses
434 460  
435 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 545 $linha[] = corRGB($estilo->color);
546 546 $linha[] = $estilo->symbolname;
547 547 $linha[] = $estilo->size;
  548 + $linha[] = $estilo->opacity;
548 549 $linhas[] = $tipoLayer."#".implode("#",$linha);
549 550 }
550 551 //retorna tipo do layer,id do estilo,outlinecolor,backgroundcolor,color,symbolname,size
... ... @@ -568,9 +569,11 @@ $color - Cor da frente.
568 569  
569 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 578 if(!$this->layer){return "erro";}
576 579 $classe = $this->layer->getclass($classe);
... ... @@ -597,12 +600,14 @@ $size - Tamanho que será aplicado ao símbolo.
597 600 {$estilo->set("symbolname",$symbolname);}
598 601 if ((isset ($size)) && ($size != "-1"))
599 602 {$estilo->set("size",$size);}
  603 + if(isset($opacidade))
  604 + {$estilo->set("opacity",$opacidade);}
600 605 if ($this->layer->getmetadata("sld") != "")
601 606 {
602 607 $sld = $this->layer->getmetadata("sld");
603 608 reSLD($this->arquivo,$this->nome,$sld);
604 609 }
605   - $this->layer->removeMetaData("cache");
  610 + $this->layer->setMetaData("cache","");
606 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 1378 {
1379 1379 $projMapa = $m->mapa->getProjection();
1380 1380 $m->mapa->setProjection("init=epsg:4291");
1381   - }
  1381 + }
  1382 + if ($opcao == "adicionaopacidade")
  1383 + {$retorno = $m->adicionaopacidade();}
1382 1384 if ($opcao == "adicionaclasse")
1383 1385 {$retorno = $m->adicionaclasse();}
1384 1386 if ($opcao == "valorunico")
... ... @@ -2303,7 +2305,7 @@ Define as características de simbologia de uma classe, cria, adiciona e exclui e
2303 2305 }
2304 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 2309 $m->salva();
2308 2310 }
2309 2311 if ($opcao == "listaSimbolos")
... ...
ferramentas/legenda/index.js.php
... ... @@ -122,6 +122,10 @@ i3GEOF.legenda = {
122 122 {onclick:{fn: i3GEOF.legenda.adicionaConta}}
123 123 );
124 124 new YAHOO.widget.Button(
  125 + "i3GEOlegendabotao15",
  126 + {onclick:{fn: i3GEOF.legenda.adicionaOpacidade}}
  127 + );
  128 + new YAHOO.widget.Button(
125 129 "i3GEOlegendabotao4",
126 130 {onclick:{fn: i3GEOF.legenda.paleta}}
127 131 );
... ... @@ -184,9 +188,11 @@ i3GEOF.legenda = {
184 188 '</div><br>'+
185 189 '<div id=i3GEOlegendaguia1obj style="width:99%;text-align:left;">'+
186 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 196 ' <tr>' +
191 197 ' <td><input id=i3GEOlegendabotao4 type="button" size=15 value="Gerar cores"></td>' +
192 198 ' <td>de:</td>' +
... ... @@ -482,6 +488,30 @@ i3GEOF.legenda = {
482 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 515 Function: paleta
486 516  
487 517 Gera as cores para as classes considerando um RGB inicial e um final
... ... @@ -873,6 +903,9 @@ i3GEOF.legenda = {
873 903 "<tr><td style='text-align:left;'>Tamanho:</td><td>"+
874 904 $inputText("","","i3GEOlegendasizes","",12,linha[6]) +
875 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 909 "<tr><td style='text-align:left;'>S&iacute;mbolo:</td><td>"+
877 910 $inputText("","","i3GEOlegendasymbolname","",12,linha[5]) +
878 911 "</td><td></td></tr></table>";
... ... @@ -932,6 +965,7 @@ i3GEOF.legenda = {
932 965 valido = "nao",
933 966 n = simbolos.length,
934 967 size = $i("i3GEOlegendasizes").value,
  968 + opacidade = $i("i3GEOlegendaopacidade").value,
935 969 p,cp,fim;
936 970 for (i=0;i<n;i++){
937 971 if(simbolos[i].title == symbolname)
... ... @@ -942,7 +976,7 @@ i3GEOF.legenda = {
942 976 i3GEOF.legenda.aguarde.visibility = "hidden";
943 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 980 cp = new cpaint();
947 981 fim = function(){
948 982 i3GEO.atualiza();
... ...