Commit 73a089dc5bf9aa3f96df7cafa7c63717e03bcc92

Authored by Edmar Moretti
1 parent 114ebd45

--no commit message

admin/admin.db
No preview for this file type
ferramentas/metaestat/analise.php
@@ -124,6 +124,9 @@ switch (strtoupper($funcao)){ @@ -124,6 +124,9 @@ switch (strtoupper($funcao)){
124 case "LISTALAYERSAGRUPADOS": 124 case "LISTALAYERSAGRUPADOS":
125 $retorno = listaLayersAgrupados($map_file); 125 $retorno = listaLayersAgrupados($map_file);
126 break; 126 break;
  127 + case "JUNTAMEDIDASVARIAVEIS":
  128 + $retorno = juntaMedidasVariaveis($map_file,$layerNames,$nome);
  129 + break;
127 case "ADICIONALIMITEREGIAO": 130 case "ADICIONALIMITEREGIAO":
128 if(empty($outlinecolor)){ 131 if(empty($outlinecolor)){
129 $outlinecolor = "255,0,0"; 132 $outlinecolor = "255,0,0";
@@ -501,7 +504,7 @@ function analise_listaCamadasFiltroTempo($map_file){ @@ -501,7 +504,7 @@ function analise_listaCamadasFiltroTempo($map_file){
501 function analise_aplicaFiltroTempo($map_file,$tema,$pari,$vali,$parf,$valf){ 504 function analise_aplicaFiltroTempo($map_file,$tema,$pari,$vali,$parf,$valf){
502 $mapa = ms_newMapObj($map_file); 505 $mapa = ms_newMapObj($map_file);
503 $layer = $mapa->getlayerbyname($tema); 506 $layer = $mapa->getlayerbyname($tema);
504 - $id_medida_variavel = $layer->getmetadata("ID_MEDIDA_VARIAVEL"); 507 + $id_medida_variavel = $layer->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL");
505 $data = $layer->data; 508 $data = $layer->data;
506 $m = new Metaestat(); 509 $m = new Metaestat();
507 //pega os parametros de tempo inicial 510 //pega os parametros de tempo inicial
@@ -563,15 +566,21 @@ function analise_listaCamadasMetaestat($map_file){ @@ -563,15 +566,21 @@ function analise_listaCamadasMetaestat($map_file){
563 /** 566 /**
564 * Lista os objetos layers do mapa atual que sao originarias do sistema de metadados 567 * Lista os objetos layers do mapa atual que sao originarias do sistema de metadados
565 * @param arquivo mapfile do mapa atual 568 * @param arquivo mapfile do mapa atual
  569 + * @excluiderivados exclui da lista os layers marcados como derivados de outros layers do sistema metaestat
566 * @return Array com os layers 570 * @return Array com os layers
567 */ 571 */
568 -function analise_listaLayersMetaestat($mapa){ 572 +function analise_listaLayersMetaestat($mapa,$excluiderivados = false){
569 $c = $mapa->numlayers; 573 $c = $mapa->numlayers;
570 $layers = array(); 574 $layers = array();
571 for ($i=0;$i < $c;++$i){ 575 for ($i=0;$i < $c;++$i){
572 $l = $mapa->getlayer($i); 576 $l = $mapa->getlayer($i);
573 if($l->getmetadata("METAESTAT") == "SIM"){ 577 if($l->getmetadata("METAESTAT") == "SIM"){
574 - $layers[] = $l; 578 + if($excluiderivados == false){
  579 + $layers[] = $l;
  580 + }
  581 + elseif ($l->getmetadata("METAESTAT_DERIVADO") != "sim"){
  582 + $layers[] = $l;
  583 + }
575 } 584 }
576 } 585 }
577 return $layers; 586 return $layers;
@@ -641,8 +650,54 @@ function analise_aplicafiltroregiao($map_file,$codigo_tipo_regiao,$codigo_regiao @@ -641,8 +650,54 @@ function analise_aplicafiltroregiao($map_file,$codigo_tipo_regiao,$codigo_regiao
641 * @return Nome do layer criado 650 * @return Nome do layer criado
642 * 651 *
643 */ 652 */
644 -function juntaMedidasVariaveis($map_file,$layerNames){ 653 +function juntaMedidasVariaveis($map_file,$layerNames,$nome){
  654 + //o sql que faz acesso aos dados e marcado com /*SE*//*SE*/
  655 + $mapa = ms_newMapObj($map_file);
  656 + $layernames = explode(",",$layerNames);
  657 + $sqlLayers = array();
  658 + $conta = 0;
  659 + $m = new Metaestat();
  660 + $colunasValor = array();
  661 + $colunasIdentificador = array();
  662 + $sqls = array();
  663 + $nomesLayers = array();
  664 + foreach($layernames as $layername){
  665 + $l = $mapa->getlayerbyname($layername);
  666 + $s = explode("/*SE*/",$l->data);
  667 + //pega o sql e da define um alias
  668 + $sqls[] = $s[1]." as tabela".$conta;
  669 + //
  670 + $id_medida_variavel = $l->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL");
  671 + $nomesLayers[] = $l->getmetadata("tema");
  672 + $medidavariavel = $m->listaMedidaVariavel("",$id_medida_variavel);
  673 + //pega o nome da coluna que contem os valores e a coluna de ligacao
  674 + $colunasValor[] = $medidavariavel["colunavalor"];
  675 + $colunasIdentificador[] = $medidavariavel["colunaidgeo"];
  676 + //pega valores do primeiro layer para a tabela0
  677 + if($conta == 0){
  678 + $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO");
  679 + $gid = $medidavariavel["colunaidunico"];
  680 + }
  681 + $conta++;
  682 + }
  683 + //coluna com a geometria
  684 + $regiao = $m->listaTipoRegiao($codigo_tipo_regiao);
  685 + $n = count($sqls);
645 686
  687 + $cwhere = array();
  688 + for($i=1;$i<$n;$i++){
  689 + $cwhere[] = "tabela0.".$colunasIdentificador[0]." = "."tabela".$i.".".$colunasIdentificador[$i];
  690 + }
  691 + $colunasDados = array();
  692 + for($i=0;$i<$n;$i++){
  693 + $colunasDados[] = "tabela".$i.".".$colunasValor[$i]." as valorTema".$i;
  694 + }
  695 + $sqlfinal = "SELECT tabela0.".$gid.",tabela0.".$regiao["colunageo"]." as the_geom,".implode(",",$colunasDados)." from ".implode(",",$sqls)." WHERE ";
  696 + $sqlfinal .= implode($cwhere," AND ");
  697 + $sqlfinal = str_replace("/*FA*/","",$sqlfinal);
  698 + $sqlfinal = str_replace("/*FAT*/","",$sqlfinal);
  699 + $data = "SELECT the_geom from ($sqlfinal) as foo using unique $gid using srid=".$regiao["srid"];
  700 + return $data;
646 } 701 }
647 /** 702 /**
648 * Lista os nomes dos layers originados do sistema METAESTAT. 703 * Lista os nomes dos layers originados do sistema METAESTAT.
@@ -656,7 +711,7 @@ function listaLayersAgrupados($map_file){ @@ -656,7 +711,7 @@ function listaLayersAgrupados($map_file){
656 $tipos[1] = "linha"; 711 $tipos[1] = "linha";
657 $tipos[2] = "poligono"; 712 $tipos[2] = "poligono";
658 $mapa = ms_newMapObj($map_file); 713 $mapa = ms_newMapObj($map_file);
659 - $layers = analise_listaLayersMetaestat($mapa); 714 + $layers = analise_listaLayersMetaestat($mapa,true);
660 $m = new Metaestat(); 715 $m = new Metaestat();
661 $camadas = array(); 716 $camadas = array();
662 foreach($layers as $l){ 717 foreach($layers as $l){
ferramentas/metaestat/index.js
@@ -339,10 +339,10 @@ i3GEOF.metaestat = { @@ -339,10 +339,10 @@ i3GEOF.metaestat = {
339 } 339 }
340 var aplica,minimiza,cabecalho,titulo,ins,n,i,lista = "<table class=lista4 >"; 340 var aplica,minimiza,cabecalho,titulo,ins,n,i,lista = "<table class=lista4 >";
341 aplica = function(){ 341 aplica = function(){
342 - var atualiza,p,lista,i,ics = $i("i3GEOF.junta_corpo").getElementsByTagName("input"); 342 + var atualiza,p,lista = [],i,ics = $i("i3GEOF.junta_corpo").getElementsByTagName("input");
343 n = ics.length; 343 n = ics.length;
344 for(i=0;i<n;i++){ 344 for(i=0;i<n;i++){
345 - if(ics[i].type == "checkbox" && ics[i].checked == true){ 345 + if(ics[i].type == "checkbox" && ics[i].checked === true){
346 lista.push(ics[i].value); 346 lista.push(ics[i].value);
347 } 347 }
348 } 348 }
@@ -352,7 +352,7 @@ i3GEOF.metaestat = { @@ -352,7 +352,7 @@ i3GEOF.metaestat = {
352 } 352 }
353 i3GEO.janela.abreAguarde("aguardeBuscaDados","Aguarde..."); 353 i3GEO.janela.abreAguarde("aguardeBuscaDados","Aguarde...");
354 p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?g_sid="+i3GEO.configura.sid + 354 p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?g_sid="+i3GEO.configura.sid +
355 - "&funcao=juntaMedidasVariaveis&layerNames=".lista.join(","); 355 + "&funcao=juntaMedidasVariaveis&layerNames="+lista.join(",")+"&nome="+$i("i3GEOFjuntaNovoNome").value;
356 atualiza = function(){ 356 atualiza = function(){
357 i3GEO.janela.fechaAguarde("aguardeBuscaDados"); 357 i3GEO.janela.fechaAguarde("aguardeBuscaDados");
358 i3GEO.atualiza(); 358 i3GEO.atualiza();
@@ -382,12 +382,14 @@ i3GEOF.metaestat = { @@ -382,12 +382,14 @@ i3GEOF.metaestat = {
382 $i("i3GEOF.junta_corpo").style.backgroundColor = "white"; 382 $i("i3GEOF.junta_corpo").style.backgroundColor = "white";
383 n = retorno.data.length; 383 n = retorno.data.length;
384 for(i=0;i<n;i++){ 384 for(i=0;i<n;i++){
385 - lista += "<tr><td><input style=cursor:pointer type=checkbox id='"+retorno.data[i].layer+"' ></td><td>"+retorno.data[i].tema+"</td></tr>"; 385 + lista += "<tr><td><input style=cursor:pointer type=checkbox value='"+retorno.data[i].layer+"' ></td><td>"+retorno.data[i].tema+"</td></tr>";
386 } 386 }
387 lista += "</table>"; 387 lista += "</table>";
388 ins = "" + 388 ins = "" +
389 '<p class=paragrafo ><b>Escolha as camadas de mesmo tipo e regi&atilde;o:</b></p>' + 389 '<p class=paragrafo ><b>Escolha as camadas de mesmo tipo e regi&atilde;o:</b></p>' +
390 lista + 390 lista +
  391 + '<br><p class=paragrafo >Nome da nova camada</p>' +
  392 + $inputText("","","i3GEOFjuntaNovoNome","",30,'') +
391 '<br><br><input id=i3geojuntaAplica type="button" value="Aplicar" />'; 393 '<br><br><input id=i3geojuntaAplica type="button" value="Aplicar" />';
392 $i("i3GEOF.junta_corpo").innerHTML = ins; 394 $i("i3GEOF.junta_corpo").innerHTML = ins;
393 new YAHOO.widget.Button( 395 new YAHOO.widget.Button(