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 | } | ... | ... |