diff --git a/admin/admin.db b/admin/admin.db index b6e3369..cd2b481 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/php/classe_metaestat.php b/admin/php/classe_metaestat.php index 8de3cb5..578a04c 100755 --- a/admin/php/classe_metaestat.php +++ b/admin/php/classe_metaestat.php @@ -475,8 +475,9 @@ class Metaestat{ $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); $un = $this->listaUnidadeMedida($metaVariavel["codigo_unidade_medida"]); $agrupamento = ""; + $colunavalor = $metaVariavel["colunavalor"]; foreach($dados as $d){ - $valores[] = $d[$metaVariavel["colunavalor"]]; + $valores[] = $d[$colunavalor]; } if(!empty($agruparpor)){ $agrupamento = array(); @@ -484,10 +485,10 @@ class Metaestat{ $g = $d[$agruparpor]; //var_dump($d);exit; if(!empty($agrupamento[$g])){ - $agrupamento[$g] += $d[$metaVariavel["colunavalor"]]; + $agrupamento[$g] += $d[$colunavalor]; } else{ - $agrupamento[$g] = $d[$metaVariavel["colunavalor"]]; + $agrupamento[$g] = $d[$colunavalor]; } } natsort($agrupamento); @@ -497,6 +498,7 @@ class Metaestat{ $min = ""; $max = ""; $quantidade = count($valores); + $quartis = array(); if($un["permitesoma"] == "1"){ $soma = array_sum($valores); } @@ -507,9 +509,33 @@ class Metaestat{ sort($valores); $min = $valores[0]; $max = $valores[$quantidade - 1]; + include_once(__DIR__."/../../classesphp/classe_estatistica.php"); + $calc = new estatistica(); + $calc->calcula($valores); + $v = $calc->resultado; + //expressao para o mapfile + $expressao[] = "([".$colunavalor."]<=".($v["quartil1"]).")"; + $expressao[] = "(([".$colunavalor."]>".($v["quartil1"]).")and([".$colunavalor."]<=".($v["quartil2"])."))"; + $expressao[] = "(([".$colunavalor."]>".($v["quartil2"]).")and([".$colunavalor."]<=".($v["quartil3"])."))"; + $expressao[] = "([".$colunavalor."]>".($v["quartil3"]).")"; + $nomes[] = "<= ".($v["quartil1"]); + $nomes[] = "> ".($v["quartil1"])." e <= ".($v["quartil2"]); + $nomes[] = "> ".($v["quartil2"])." e <= ".($v["quartil3"]); + $nomes[] = "> ".($v["quartil3"]); + + $quartis = array( + "cortes"=>array( + "q1"=>$v['quartil1'], + "q2"=>$v['quartil2'], + "q3"=>$v['quartil3'] + ), + "expressoes"=>$expressao, + "nomes"=>$nomes + ); } $histograma = array_count_values($valores); return array( + "colunavalor"=>$colunavalor, "soma"=>$soma, "media"=>$media, "menor"=>$min, @@ -517,7 +543,8 @@ class Metaestat{ "quantidade"=>$quantidade, "histograma"=>$histograma, "grupos"=>$agrupamento, - "unidademedida"=>$un + "unidademedida"=>$un, + "quartis"=>$quartis ); } return false; diff --git a/admin/php/metaestat.php b/admin/php/metaestat.php index 4a33ee7..e6bdc73 100644 --- a/admin/php/metaestat.php +++ b/admin/php/metaestat.php @@ -252,9 +252,18 @@ switch (strtoupper($funcao)) */ case "ALTERAMEDIDAVARIAVEL": $m = new Metaestat(); + $default = false; + //verifica se a criacao da medida esta sendo feita na tabela default + if($codigo_tipo_periodo < 5 && $codigo_estat_conexao == 0 && $esquemadb == "public" && $colunaidgeo == "codigoregiao"){ + $default = true; + } if(empty($id_medida_variavel)){ //isso ira criar um novo registro $id_medida_variavel = $m->alteraMedidaVariavel($codigo_variavel); + //o filtro e necessario para permitir a selecao dos registros apenas do que pertence a medida da variavel escolhida + if($default == true){ + $filtro = " id_medida_variavel = $id_medida_variavel "; + } if(!empty($nomemedida)){ $m->alteraMedidaVariavel("",$id_medida_variavel,$codigo_unidade_medida,$codigo_tipo_periodo,$codigo_tipo_regiao,$codigo_estat_conexao,$esquemadb,$tabela,$colunavalor,$colunaidgeo,$filtro,$nomemedida); } @@ -262,10 +271,9 @@ switch (strtoupper($funcao)) else{ $m->alteraMedidaVariavel("",$id_medida_variavel,$codigo_unidade_medida,$codigo_tipo_periodo,$codigo_tipo_regiao,$codigo_estat_conexao,$esquemadb,$tabela,$colunavalor,$colunaidgeo,$filtro,$nomemedida); } - //verifica se a criacao da medida esta sendo feita para a tabela default - if($codigo_tipo_periodo < 5 && $codigo_estat_conexao == 0 && $esquemadb == "public" && $colunaidgeo == "codigoregiao"){ + //adiciona os parametros de tempo conforme o tipo de periodo escolhido + if($default == true){ $parametros = $m->listaParametro($id_medida_variavel); - //adiciona os parametros de tempo conforme o tipo de periodo escolhido //anual if($codigo_tipo_periodo >= 0){ if($m->buscaNoArray($parametros,"coluna","ano") == false){ @@ -298,7 +306,6 @@ switch (strtoupper($funcao)) } } } - retornaJSON($m->listaMedidaVariavel("",$id_medida_variavel)); exit; break; @@ -347,6 +354,38 @@ switch (strtoupper($funcao)) retornaJSON($m->listaClassificacaoMedida($id_medida_variavel,$id_classificacao)); exit; break; + case "CALCULACLASSIFICACAO": + if($tipo == "quartil"){ + $m = new Metaestat(); + $dados = $m->sumarioMedidaVariavel($id_medida_variavel); + $dados = $dados["quartis"]; + $n = count($dados["expressoes"]); + //as cores vem no formato rgb(0,0,0); + if(!empty($cores)){ + $cores = str_replace("rgb(","",$cores); + $cores = str_replace(")","",$cores); + $cores = explode(";",$cores); + } + $m->excluirRegistro("i3geoestat_classes","id_classificacao",$id_classificacao); + for($i=0;$i<$n;++$i){ + $id_classe = $m->alteraClasseClassificacao($id_classificacao); + $expressao = $dados["expressoes"][$i]; + $titulo = $dados["nomes"][$i]; + if(!empty($cores)){ + $cor = explode(",",$cores[$i]); + $vermelho = $cor[0]; + $verde = $cor[1]; + $azul = $cor[2]; + } + $m->alteraClasseClassificacao("",$id_classe,$titulo,$expressao,$vermelho,$verde,$azul,"","","-1","-1","-1",""); + } + } + if($tipo == "intervalosiguais"){ + //TODO + } + retornaJSON("ok"); + exit; + break; /* Valor: ALTERACLASSECLASSIFICACAO diff --git a/classesjs/classe_util.js b/classesjs/classe_util.js index 2c37d8d..b6b2b31 100644 --- a/classesjs/classe_util.js +++ b/classesjs/classe_util.js @@ -2190,7 +2190,7 @@ i3GEO.util = { novoel, wdocaiframe, fix = false, - wsrc = i3GEO.configura.locaplic+"/ferramentas/colourramp/index.php?ncores="+ncores+"&doc="+janelaid+"&elemento="+elemento, //+janela+"&elemento="+elemento+"&tipo="+tipo, + wsrc = i3GEO.configura.locaplic+"/ferramentas/colourramp/index.php?ncores="+ncores+"&doc="+janelaid+"&elemento="+elemento+"&locaplic="+i3GEO.configura.locaplic, //+janela+"&elemento="+elemento+"&tipo="+tipo, nx = "", texto = "Cor", id = "i3geo_janelaCorRamp", diff --git a/classesphp/class.palette.php b/classesphp/class.palette.php index 308d266..5f47196 100644 --- a/classesphp/class.palette.php +++ b/classesphp/class.palette.php @@ -36,13 +36,13 @@ class palette{ protected $colors=array(); //Arreglo de colores por los cuales debe pasar la paleta /* Variavel: $colorPath - + Array com os valores finais */ public $colorPath=array(); //Arreglo de colores finales de la paleta /* Variavel: $colorRGB - + Array com os valores finais em RGB */ public $colorRGB=array(); //Arreglo de colores finales de la paleta em rgb @@ -50,7 +50,7 @@ class palette{ /* Function: __construct -Cria o objeto palette +Cria o objeto palette parameters: @@ -123,12 +123,12 @@ $numSteps - número de cores finais $string.="\t\n\n"; return($string); } - + public function listaColourRamps($locaplic){ $arquivos = array(); - if ($dh = opendir($locaplic."/symbols/colourramp")) + if ($dh = opendir($locaplic."/symbols/colourramp")) { - while (($file = readdir($dh)) !== false) + while (($file = readdir($dh)) !== false) { if(!stristr($file, '.cores') === FALSE) { @@ -151,8 +151,10 @@ $numSteps - número de cores finais $coresfinais = array(); $p = intval(($fim - $inicio) / $ncores); for($i=$inicio;$i<=$fim;$i = $i + $p){ - if(count($coresfinais) < $ncores) - $coresfinais[] = $cores[$i]; + if(count($coresfinais) < $ncores){ + if($cores[$i]) + $coresfinais[] = $cores[$i]; + } } return $coresfinais; } diff --git a/ferramentas/colourramp/index.php b/ferramentas/colourramp/index.php index c0e564b..1749c10 100644 --- a/ferramentas/colourramp/index.php +++ b/ferramentas/colourramp/index.php @@ -194,7 +194,7 @@ function aplicarCores() doc.getElementById(elemento).onchange.call(); } catch(e){} - window.parent.YAHOO.janelaCorRamp.xp.panel.destroy(); + window.parent.YAHOO.i3GEO.janela.manager.find("i3geo_janelaCorRamp").destroy(); } (function () { diff --git a/ferramentas/metaestat/dicionario1.js b/ferramentas/metaestat/dicionario1.js index 9fcbb52..e175263 100644 --- a/ferramentas/metaestat/dicionario1.js +++ b/ferramentas/metaestat/dicionario1.js @@ -86,6 +86,13 @@ it:"" }], "13":[ { +pt:"Escolher cores", +en:"", +es:"", +it:"" +}], +"14":[ +{ pt:"", en:"", es:"", diff --git a/ferramentas/metaestat/index.js b/ferramentas/metaestat/index.js index 20dd99f..33231ce 100644 --- a/ferramentas/metaestat/index.js +++ b/ferramentas/metaestat/index.js @@ -592,10 +592,10 @@ i3GEOF.metaestat = { i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t3"); }, quartis: function(){ - //TODO quartis var id_medida_variavel = $i("i3geoCartoComboMedidaVariavelEditor").value, id_classificacao = $i("i3geoCartoComboClassificacoesEditor").value, - 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, + cores = $i("listaColourRampEditor").value, + 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, temp = function(retorno){ core_carregando("desativa"); }; @@ -603,7 +603,7 @@ i3GEOF.metaestat = { i3GEO.util.ajaxGet(p,temp); }, intervalosIguais: function(){ - +//TODO int iguais }, t0: function(){ var ins = "

" + $trad(2,i3GEOF.metaestat.dicionario1) + @@ -719,26 +719,29 @@ i3GEOF.metaestat = { i3GEO.php.listaClassificacaoMedida($i("i3geoCartoComboMedidaVariavelEditor").value,temp); } }, - t4: function(remove,textoSelecionado){ - //TODO incluir as opcoes de escolha de cores e criacao de classes por quartil e intervalos iguais - if(remove == true){ - //remove o conteudo anteriormente construido - i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t4"); - } + t4: function(){ + //remove o conteudo anteriormente construido + i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t4"); if($i("i3geoCartoComboMedidaVariavelEditor").value === ""){ alert($trad(9,i3GEOF.metaestat.dicionario)); i3GEOF.metaestat.editor.t3(false); } else{ var temp = function(dados){ - var ins = "

" + $trad(10,i3GEOF.metaestat.dicionario1) + "

" + - "" + - "

" + - " "; + var ins = "

" + $trad(10,i3GEOF.metaestat.dicionario1) + + "

" + + " " + + "

 " + + " " + + ''; //utilizado pelo seletor de colourramp; i3GEO.util.proximoAnterior("i3GEOF.metaestat.editor.t3()","i3GEOF.metaestat.editor.t5()",ins,"i3GEOF.metaestat.editor.t4","i3GEOFmetaestatEditor",true); - //i3GEO.util.abreColourRamp("","listaColourRamp",ncores); - // ''; //utilizado pelo seletor de colourramp - + new YAHOO.widget.Button( + "i3GEOFmetaestatEditorBotao8", + {onclick:{fn: function(){ + i3GEO.util.abreColourRamp("","listaColourRampEditor",5); + }}} + ); + $i("i3GEOFmetaestatEditorBotao8-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px"; new YAHOO.widget.Button( "i3GEOFmetaestatEditorBotao6", {onclick:{fn: i3GEOF.metaestat.editor.quartis}} @@ -1061,14 +1064,14 @@ i3GEOF.metaestat = { }, comboClassificacoesMedidaVariavel: function(dados,idcombo){ var ins,i,n = dados.length; - ins = ""; for(i=0;i"+dados[i].nome+""; } ins += ""; return ins; }, - comboClassificacoesMedidaVariavelOnchange: function(){ + comboClassificacoesMedidaVariavelOnchange: function(combo){ } } -- libgit2 0.21.2