From fbeb11c9747e8503f7d414db3d2341246a33c1df Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 3 Jul 2013 03:59:52 +0000 Subject: [PATCH] --- admin/admin.db | Bin 205824 -> 0 bytes admin/php/classe_metaestat.php | 7 +++++-- ferramentas/metaestat/analise.php | 41 +++++++++++++++++++++++++++++++++++++++++ ferramentas/metaestat/index.js | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 101 insertions(+), 2 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index a5e2c2f..a82f3bb 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 678d0ae..78687bd 100755 --- a/admin/php/classe_metaestat.php +++ b/admin/php/classe_metaestat.php @@ -289,6 +289,9 @@ class Metaestat{ * @return array("sqlagrupamento"=>,"sql"=>,"sqlmapserver"=>,"filtro"=>,"colunas"=>,"alias"=>,"colunavalor"=>,"titulo"=>,"nomeregiao"=>) */ function sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor="",$tipolayer="polygon",$codigo_tipo_regiao = ""){ + // + //o sql que faz acesso aos dados e marcado com /*SE*//*SE*/ na string que sera usada nos mapfiles + // $filtro = false; $dados = $this->listaMedidaVariavel("",$id_medida_variavel); $pp = $this->listaParametro($id_medida_variavel,"",0); @@ -452,10 +455,10 @@ class Metaestat{ $sqlgeo .= " WHERE ".$j; if($agregaregiao == true){ - $sqlgeo = $colunageo." from ( ".$sqlgeo." __filtro__ ) as foo using unique ".$dadosAgregacao["colunaligacao_regiaopai"]." using srid=".$dadosgeo["srid"]; + $sqlgeo = $colunageo." from /*SE*/( ".$sqlgeo." __filtro__ )/*SE*/ as foo using unique ".$dadosAgregacao["colunaligacao_regiaopai"]." using srid=".$dadosgeo["srid"]; } else{ - $sqlgeo = $colunageo." from (".$sqlgeo." __filtro__ ) as foo using unique ".$dados["colunaidgeo"]." using srid=".$dadosgeo["srid"]; + $sqlgeo = $colunageo." from /*SE*/(".$sqlgeo." __filtro__ )/*SE*/ as foo using unique ".$dados["colunaidgeo"]." using srid=".$dadosgeo["srid"]; } //remove ambiguidades $sqlgeo = str_replace("d.".$dados["colunaidgeo"].",g.".$dados["colunaidgeo"],"d.".$dados["colunaidgeo"],$sqlgeo); diff --git a/ferramentas/metaestat/analise.php b/ferramentas/metaestat/analise.php index 3d68e76..f4c5721 100644 --- a/ferramentas/metaestat/analise.php +++ b/ferramentas/metaestat/analise.php @@ -121,6 +121,9 @@ switch (strtoupper($funcao)){ case "CALOR": $retorno = mapaDeCalor($map_file,$tema); break; + case "LISTALAYERSAGRUPADOS": + $retorno = listaLayersAgrupados($map_file); + break; case "ADICIONALIMITEREGIAO": if(empty($outlinecolor)){ $outlinecolor = "255,0,0"; @@ -631,4 +634,42 @@ function analise_aplicafiltroregiao($map_file,$codigo_tipo_regiao,$codigo_regiao $mapa->save($map_file); return "ok"; } +/** + * Cria um novo layer no mapa atual fazendo a juncao dos SQLs para obter em uma mesma tabela todas as colunas das medidas de variavies + * + * @param string com a lista de nomes de layers separados por virgula + * @return Nome do layer criado + * + */ +function juntaMedidasVariaveis($map_file,$layerNames){ + +} +/** + * Lista os nomes dos layers originados do sistema METAESTAT. + * Os layers sao agrupados por tipo de regiao e tipo de representacao + * @param unknown $map_file + * @return string + */ +function listaLayersAgrupados($map_file){ + //MS_LAYER_POINT, MS_LAYER_LINE, MS_LAYER_POLYGON + $tipos[0] = "ponto"; + $tipos[1] = "linha"; + $tipos[2] = "poligono"; + $mapa = ms_newMapObj($map_file); + $layers = analise_listaLayersMetaestat($mapa); + $m = new Metaestat(); + $camadas = array(); + foreach($layers as $l){ + $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO"); + $tema = (mb_convert_encoding(($l->getmetadata("tema")),"UTF-8","ISO-8859-1")); + $regiao = $m->listaTipoRegiao($codigo_tipo_regiao); + $camadas[] = array( + "layer"=>$l->name, + "tema"=>$tema, + "codigo_tipo_regiao"=>$codigo_tipo_regiao, + "tipolayer"=>$tipos[$l->type] + ); + } + return $camadas; +} ?> diff --git a/ferramentas/metaestat/index.js b/ferramentas/metaestat/index.js index 6e13e4b..95b9af2 100644 --- a/ferramentas/metaestat/index.js +++ b/ferramentas/metaestat/index.js @@ -193,6 +193,10 @@ i3GEOF.metaestat = { titulo: "Mostra os valores como textos no mapa", onclick: "i3GEOF.metaestat.analise.toponimia()", icone: "imagens/gisicons/label.png" + },{ + titulo: "Junta dados das camadas", + onclick: "i3GEOF.metaestat.analise.juntaMedidasVariaveis()", + icone: "imagens/gisicons/layer-group-add.png" } ], /** @@ -323,6 +327,57 @@ i3GEOF.metaestat = { i3GEO.util.dialogoFerramenta("i3GEO.tema.dialogo.toponimia()","toponimia","toponimia","index.js","i3GEOF.metaestat.analise.abreToponimia()"); }, /** + * Junta camadas em uma nova, contendo as colunas das medidas + */ + juntaMedidasVariaveis: function(){ + var p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?g_sid="+i3GEO.configura.sid + + "&funcao=listaLayersAgrupados", + temp = function(retorno){ + i3GEO.janela.fechaAguarde("aguardeBuscaDados"); + if($i("i3GEOF.junta_corpo")){ + return; + } + var minimiza,cabecalho,titulo,ins,n,i,lista = ""; + cabecalho = function(){ + }; + minimiza = function(){ + i3GEO.janela.minimiza("i3GEOF.junta"); + }; + //cria a janela flutuante + titulo = "Junção de medidas     "; + i3GEO.janela.cria( + "260px", + "340px", + "", + "", + "", + titulo, + "i3GEOF.junta", + false, + "hd", + cabecalho, + minimiza + ); + $i("i3GEOF.junta_corpo").style.backgroundColor = "white"; + n = retorno.data.length; + for(i=0;i"; + } + lista += "
"+retorno.data[i].tema+"
"; + ins = "" + + '

Escolha as camadas de mesmo tipo e região:

' + + lista + + '

'; + $i("i3GEOF.junta_corpo").innerHTML = ins; + new YAHOO.widget.Button( + "i3geojuntaAplica", + {onclick:{fn: i3GEOF.metaestat.analise.filtraPeriodo.adicionaFiltro}} + ); + }; + i3GEO.janela.abreAguarde("aguardeBuscaDados","Aguarde..."); + i3GEO.util.ajaxGet(p,temp); + }, + /** * Obtem os parametros necessarios ao funcionamento de i3GEOF.metaestat.analise.toponimia() * Abre a janela de opcoes de i3GEOF.toponimia.iniciaJanelaFlutuante() */ -- libgit2 0.21.2