Commit 33e39436810995864ae2da55609471aeee5cef4c
1 parent
5fe14577
Exists in
master
and in
7 other branches
--no commit message
Showing
8 changed files
with
114 additions
and
36 deletions
Show diff stats
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&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&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
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 | - " <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 | + " <input id=i3GEOFmetaestatEditorBotao8 type='button' value='"+$trad(13,i3GEOF.metaestat.dicionario1)+"' />" + | |
| 734 | + "<br><br> <input id=i3GEOFmetaestatEditorBotao6 type='button' value='"+$trad(11,i3GEOF.metaestat.dicionario1)+"' />" + | |
| 735 | + " <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 | } | ... | ... |