Commit 33e39436810995864ae2da55609471aeee5cef4c

Authored by Edmar Moretti
1 parent 5fe14577

--no commit message

admin/admin.db
No preview for this file type
admin/php/classe_metaestat.php
... ... @@ -475,8 +475,9 @@ class Metaestat{
475 475 $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel);
476 476 $un = $this->listaUnidadeMedida($metaVariavel["codigo_unidade_medida"]);
477 477 $agrupamento = "";
  478 + $colunavalor = $metaVariavel["colunavalor"];
478 479 foreach($dados as $d){
479   - $valores[] = $d[$metaVariavel["colunavalor"]];
  480 + $valores[] = $d[$colunavalor];
480 481 }
481 482 if(!empty($agruparpor)){
482 483 $agrupamento = array();
... ... @@ -484,10 +485,10 @@ class Metaestat{
484 485 $g = $d[$agruparpor];
485 486 //var_dump($d);exit;
486 487 if(!empty($agrupamento[$g])){
487   - $agrupamento[$g] += $d[$metaVariavel["colunavalor"]];
  488 + $agrupamento[$g] += $d[$colunavalor];
488 489 }
489 490 else{
490   - $agrupamento[$g] = $d[$metaVariavel["colunavalor"]];
  491 + $agrupamento[$g] = $d[$colunavalor];
491 492 }
492 493 }
493 494 natsort($agrupamento);
... ... @@ -497,6 +498,7 @@ class Metaestat{
497 498 $min = "";
498 499 $max = "";
499 500 $quantidade = count($valores);
  501 + $quartis = array();
500 502 if($un["permitesoma"] == "1"){
501 503 $soma = array_sum($valores);
502 504 }
... ... @@ -507,9 +509,33 @@ class Metaestat{
507 509 sort($valores);
508 510 $min = $valores[0];
509 511 $max = $valores[$quantidade - 1];
  512 + include_once(__DIR__."/../../classesphp/classe_estatistica.php");
  513 + $calc = new estatistica();
  514 + $calc->calcula($valores);
  515 + $v = $calc->resultado;
  516 + //expressao para o mapfile
  517 + $expressao[] = "([".$colunavalor."]<=".($v["quartil1"]).")";
  518 + $expressao[] = "(([".$colunavalor."]>".($v["quartil1"]).")and([".$colunavalor."]<=".($v["quartil2"])."))";
  519 + $expressao[] = "(([".$colunavalor."]>".($v["quartil2"]).")and([".$colunavalor."]<=".($v["quartil3"])."))";
  520 + $expressao[] = "([".$colunavalor."]>".($v["quartil3"]).")";
  521 + $nomes[] = "<= ".($v["quartil1"]);
  522 + $nomes[] = "> ".($v["quartil1"])." e <= ".($v["quartil2"]);
  523 + $nomes[] = "> ".($v["quartil2"])." e <= ".($v["quartil3"]);
  524 + $nomes[] = "> ".($v["quartil3"]);
  525 +
  526 + $quartis = array(
  527 + "cortes"=>array(
  528 + "q1"=>$v['quartil1'],
  529 + "q2"=>$v['quartil2'],
  530 + "q3"=>$v['quartil3']
  531 + ),
  532 + "expressoes"=>$expressao,
  533 + "nomes"=>$nomes
  534 + );
510 535 }
511 536 $histograma = array_count_values($valores);
512 537 return array(
  538 + "colunavalor"=>$colunavalor,
513 539 "soma"=>$soma,
514 540 "media"=>$media,
515 541 "menor"=>$min,
... ... @@ -517,7 +543,8 @@ class Metaestat{
517 543 "quantidade"=>$quantidade,
518 544 "histograma"=>$histograma,
519 545 "grupos"=>$agrupamento,
520   - "unidademedida"=>$un
  546 + "unidademedida"=>$un,
  547 + "quartis"=>$quartis
521 548 );
522 549 }
523 550 return false;
... ...
admin/php/metaestat.php
... ... @@ -252,9 +252,18 @@ switch (strtoupper($funcao))
252 252 */
253 253 case "ALTERAMEDIDAVARIAVEL":
254 254 $m = new Metaestat();
  255 + $default = false;
  256 + //verifica se a criacao da medida esta sendo feita na tabela default
  257 + if($codigo_tipo_periodo < 5 && $codigo_estat_conexao == 0 && $esquemadb == "public" && $colunaidgeo == "codigoregiao"){
  258 + $default = true;
  259 + }
255 260 if(empty($id_medida_variavel)){
256 261 //isso ira criar um novo registro
257 262 $id_medida_variavel = $m->alteraMedidaVariavel($codigo_variavel);
  263 + //o filtro e necessario para permitir a selecao dos registros apenas do que pertence a medida da variavel escolhida
  264 + if($default == true){
  265 + $filtro = " id_medida_variavel = $id_medida_variavel ";
  266 + }
258 267 if(!empty($nomemedida)){
259 268 $m->alteraMedidaVariavel("",$id_medida_variavel,$codigo_unidade_medida,$codigo_tipo_periodo,$codigo_tipo_regiao,$codigo_estat_conexao,$esquemadb,$tabela,$colunavalor,$colunaidgeo,$filtro,$nomemedida);
260 269 }
... ... @@ -262,10 +271,9 @@ switch (strtoupper($funcao))
262 271 else{
263 272 $m->alteraMedidaVariavel("",$id_medida_variavel,$codigo_unidade_medida,$codigo_tipo_periodo,$codigo_tipo_regiao,$codigo_estat_conexao,$esquemadb,$tabela,$colunavalor,$colunaidgeo,$filtro,$nomemedida);
264 273 }
265   - //verifica se a criacao da medida esta sendo feita para a tabela default
266   - if($codigo_tipo_periodo < 5 && $codigo_estat_conexao == 0 && $esquemadb == "public" && $colunaidgeo == "codigoregiao"){
  274 + //adiciona os parametros de tempo conforme o tipo de periodo escolhido
  275 + if($default == true){
267 276 $parametros = $m->listaParametro($id_medida_variavel);
268   - //adiciona os parametros de tempo conforme o tipo de periodo escolhido
269 277 //anual
270 278 if($codigo_tipo_periodo >= 0){
271 279 if($m->buscaNoArray($parametros,"coluna","ano") == false){
... ... @@ -298,7 +306,6 @@ switch (strtoupper($funcao))
298 306 }
299 307 }
300 308 }
301   -
302 309 retornaJSON($m->listaMedidaVariavel("",$id_medida_variavel));
303 310 exit;
304 311 break;
... ... @@ -347,6 +354,38 @@ switch (strtoupper($funcao))
347 354 retornaJSON($m->listaClassificacaoMedida($id_medida_variavel,$id_classificacao));
348 355 exit;
349 356 break;
  357 + case "CALCULACLASSIFICACAO":
  358 + if($tipo == "quartil"){
  359 + $m = new Metaestat();
  360 + $dados = $m->sumarioMedidaVariavel($id_medida_variavel);
  361 + $dados = $dados["quartis"];
  362 + $n = count($dados["expressoes"]);
  363 + //as cores vem no formato rgb(0,0,0);
  364 + if(!empty($cores)){
  365 + $cores = str_replace("rgb(","",$cores);
  366 + $cores = str_replace(")","",$cores);
  367 + $cores = explode(";",$cores);
  368 + }
  369 + $m->excluirRegistro("i3geoestat_classes","id_classificacao",$id_classificacao);
  370 + for($i=0;$i<$n;++$i){
  371 + $id_classe = $m->alteraClasseClassificacao($id_classificacao);
  372 + $expressao = $dados["expressoes"][$i];
  373 + $titulo = $dados["nomes"][$i];
  374 + if(!empty($cores)){
  375 + $cor = explode(",",$cores[$i]);
  376 + $vermelho = $cor[0];
  377 + $verde = $cor[1];
  378 + $azul = $cor[2];
  379 + }
  380 + $m->alteraClasseClassificacao("",$id_classe,$titulo,$expressao,$vermelho,$verde,$azul,"","","-1","-1","-1","");
  381 + }
  382 + }
  383 + if($tipo == "intervalosiguais"){
  384 + //TODO
  385 + }
  386 + retornaJSON("ok");
  387 + exit;
  388 + break;
350 389 /*
351 390 Valor: ALTERACLASSECLASSIFICACAO
352 391  
... ...
classesjs/classe_util.js
... ... @@ -2190,7 +2190,7 @@ i3GEO.util = {
2190 2190 novoel,
2191 2191 wdocaiframe,
2192 2192 fix = false,
2193   - wsrc = i3GEO.configura.locaplic+"/ferramentas/colourramp/index.php?ncores="+ncores+"&doc="+janelaid+"&elemento="+elemento, //+janela+"&elemento="+elemento+"&tipo="+tipo,
  2193 + wsrc = i3GEO.configura.locaplic+"/ferramentas/colourramp/index.php?ncores="+ncores+"&doc="+janelaid+"&elemento="+elemento+"&locaplic="+i3GEO.configura.locaplic, //+janela+"&elemento="+elemento+"&tipo="+tipo,
2194 2194 nx = "",
2195 2195 texto = "Cor",
2196 2196 id = "i3geo_janelaCorRamp",
... ...
classesphp/class.palette.php
... ... @@ -36,13 +36,13 @@ class palette{
36 36 protected $colors=array(); //Arreglo de colores por los cuales debe pasar la paleta
37 37 /*
38 38 Variavel: $colorPath
39   -
  39 +
40 40 Array com os valores finais
41 41 */
42 42 public $colorPath=array(); //Arreglo de colores finales de la paleta
43 43 /*
44 44 Variavel: $colorRGB
45   -
  45 +
46 46 Array com os valores finais em RGB
47 47 */
48 48 public $colorRGB=array(); //Arreglo de colores finales de la paleta em rgb
... ... @@ -50,7 +50,7 @@ class palette{
50 50 /*
51 51 Function: __construct
52 52  
53   -Cria o objeto palette
  53 +Cria o objeto palette
54 54  
55 55 parameters:
56 56  
... ... @@ -123,12 +123,12 @@ $numSteps - n&amp;uacute;mero de cores finais
123 123 $string.="\t</tr>\n</table>\n";
124 124 return($string);
125 125 }
126   -
  126 +
127 127 public function listaColourRamps($locaplic){
128 128 $arquivos = array();
129   - if ($dh = opendir($locaplic."/symbols/colourramp"))
  129 + if ($dh = opendir($locaplic."/symbols/colourramp"))
130 130 {
131   - while (($file = readdir($dh)) !== false)
  131 + while (($file = readdir($dh)) !== false)
132 132 {
133 133 if(!stristr($file, '.cores') === FALSE)
134 134 {
... ... @@ -151,8 +151,10 @@ $numSteps - n&amp;uacute;mero de cores finais
151 151 $coresfinais = array();
152 152 $p = intval(($fim - $inicio) / $ncores);
153 153 for($i=$inicio;$i<=$fim;$i = $i + $p){
154   - if(count($coresfinais) < $ncores)
155   - $coresfinais[] = $cores[$i];
  154 + if(count($coresfinais) < $ncores){
  155 + if($cores[$i])
  156 + $coresfinais[] = $cores[$i];
  157 + }
156 158 }
157 159 return $coresfinais;
158 160 }
... ...
ferramentas/colourramp/index.php
... ... @@ -194,7 +194,7 @@ function aplicarCores()
194 194 doc.getElementById(elemento).onchange.call();
195 195 }
196 196 catch(e){}
197   - window.parent.YAHOO.janelaCorRamp.xp.panel.destroy();
  197 + window.parent.YAHOO.i3GEO.janela.manager.find("i3geo_janelaCorRamp").destroy();
198 198 }
199 199  
200 200 (function () {
... ...
ferramentas/metaestat/dicionario1.js
... ... @@ -86,6 +86,13 @@ it:&quot;&quot;
86 86 }],
87 87 "13":[
88 88 {
  89 +pt:"Escolher cores",
  90 +en:"",
  91 +es:"",
  92 +it:""
  93 +}],
  94 +"14":[
  95 +{
89 96 pt:"",
90 97 en:"",
91 98 es:"",
... ...
ferramentas/metaestat/index.js
... ... @@ -592,10 +592,10 @@ i3GEOF.metaestat = {
592 592 i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t3");
593 593 },
594 594 quartis: function(){
595   - //TODO quartis
596 595 var id_medida_variavel = $i("i3geoCartoComboMedidaVariavelEditor").value,
597 596 id_classificacao = $i("i3geoCartoComboClassificacoesEditor").value,
598   - p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=calculaClassificacao&tipo=quartil&id_classificacao="+id_classificacao+"&id_medida_variavel="+id_medida_variavel+"&g_sid="+i3GEO.configura.sid,
  597 + cores = $i("listaColourRampEditor").value,
  598 + p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=calculaClassificacao&tipo=quartil&cores="+cores+"&id_classificacao="+id_classificacao+"&id_medida_variavel="+id_medida_variavel+"&g_sid="+i3GEO.configura.sid,
599 599 temp = function(retorno){
600 600 core_carregando("desativa");
601 601 };
... ... @@ -603,7 +603,7 @@ i3GEOF.metaestat = {
603 603 i3GEO.util.ajaxGet(p,temp);
604 604 },
605 605 intervalosIguais: function(){
606   -
  606 +//TODO int iguais
607 607 },
608 608 t0: function(){
609 609 var ins = "<p class='paragrafo' >" + $trad(2,i3GEOF.metaestat.dicionario1) +
... ... @@ -719,26 +719,29 @@ i3GEOF.metaestat = {
719 719 i3GEO.php.listaClassificacaoMedida($i("i3geoCartoComboMedidaVariavelEditor").value,temp);
720 720 }
721 721 },
722   - t4: function(remove,textoSelecionado){
723   - //TODO incluir as opcoes de escolha de cores e criacao de classes por quartil e intervalos iguais
724   - if(remove == true){
725   - //remove o conteudo anteriormente construido
726   - i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t4");
727   - }
  722 + t4: function(){
  723 + //remove o conteudo anteriormente construido
  724 + i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t4");
728 725 if($i("i3geoCartoComboMedidaVariavelEditor").value === ""){
729 726 alert($trad(9,i3GEOF.metaestat.dicionario));
730 727 i3GEOF.metaestat.editor.t3(false);
731 728 }
732 729 else{
733 730 var temp = function(dados){
734   - var ins = "<p class='paragrafo' >" + $trad(10,i3GEOF.metaestat.dicionario1) + "<br><br>" +
735   - "<span></span>" +
736   - "<br><br><p><input id=i3GEOFmetaestatEditorBotao6 type='button' value='"+$trad(11,i3GEOF.metaestat.dicionario1)+"' />" +
737   - "&nbsp;<input id=i3GEOFmetaestatEditorBotao7 type='button' value='"+$trad(12,i3GEOF.metaestat.dicionario1)+"' />";
  731 + var ins = "<p class='paragrafo' >" + $trad(10,i3GEOF.metaestat.dicionario1) +
  732 + "<br><br><p>" +
  733 + "&nbsp;<input id=i3GEOFmetaestatEditorBotao8 type='button' value='"+$trad(13,i3GEOF.metaestat.dicionario1)+"' />" +
  734 + "<br><br>&nbsp;<input id=i3GEOFmetaestatEditorBotao6 type='button' value='"+$trad(11,i3GEOF.metaestat.dicionario1)+"' />" +
  735 + "&nbsp;<input id=i3GEOFmetaestatEditorBotao7 type='button' value='"+$trad(12,i3GEOF.metaestat.dicionario1)+"' />" +
  736 + '<input type=hidden value="" id="listaColourRampEditor" />'; //utilizado pelo seletor de colourramp;
738 737 i3GEO.util.proximoAnterior("i3GEOF.metaestat.editor.t3()","i3GEOF.metaestat.editor.t5()",ins,"i3GEOF.metaestat.editor.t4","i3GEOFmetaestatEditor",true);
739   - //i3GEO.util.abreColourRamp("","listaColourRamp",ncores);
740   - // '<input type=hidden value="" id="listaColourRamp" onchange="javascript:i3GEOF.legenda.aplicaColourRamp()" />'; //utilizado pelo seletor de colourramp
741   -
  738 + new YAHOO.widget.Button(
  739 + "i3GEOFmetaestatEditorBotao8",
  740 + {onclick:{fn: function(){
  741 + i3GEO.util.abreColourRamp("","listaColourRampEditor",5);
  742 + }}}
  743 + );
  744 + $i("i3GEOFmetaestatEditorBotao8-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px";
742 745 new YAHOO.widget.Button(
743 746 "i3GEOFmetaestatEditorBotao6",
744 747 {onclick:{fn: i3GEOF.metaestat.editor.quartis}}
... ... @@ -1061,14 +1064,14 @@ i3GEOF.metaestat = {
1061 1064 },
1062 1065 comboClassificacoesMedidaVariavel: function(dados,idcombo){
1063 1066 var ins,i,n = dados.length;
1064   - ins = "<select id='"+idcombo+"' style='box-shadow:0 1px 5px gray;width:"+(i3GEOF.metaestat.LARGURA - 20)+"px' onchange='i3GEOF.metaestat.principal.comboClassificacoesMedidaVariavelOnchange()'><option value=''>---</option>";
  1067 + ins = "<select id='"+idcombo+"' style='box-shadow:0 1px 5px gray;width:"+(i3GEOF.metaestat.LARGURA - 20)+"px' onchange='i3GEOF.metaestat.principal.comboClassificacoesMedidaVariavelOnchange(this)'><option value=''>---</option>";
1065 1068 for(i=0;i<n;i++){
1066 1069 ins += "<option title='"+dados[i].observacao+"' value='"+dados[i].id_classificacao+"'>"+dados[i].nome+"</option>";
1067 1070 }
1068 1071 ins += "</select>";
1069 1072 return ins;
1070 1073 },
1071   - comboClassificacoesMedidaVariavelOnchange: function(){
  1074 + comboClassificacoesMedidaVariavelOnchange: function(combo){
1072 1075  
1073 1076 }
1074 1077 }
... ...