From ae315f3722ada8e8afb8501bca8a10b0204a7368 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 2 May 2012 16:03:42 +0000 Subject: [PATCH] --- admin/js/listatemas.js | 27 ++++++++++++--------------- classesjs/classe_configura.js | 7 ++++--- classesjs/dicionario.js | 14 ++++++++++++++ classesphp/classe_atributos.php | 28 +++++++++++++++++++++++++--- classesphp/graficos.php | 15 +++++++++------ classesphp/mapa_controle.php | 20 +++++++++++++++++--- classesphp/pega_variaveis.php | 7 +++---- ferramentas/graficointerativo/index.js.php | 16 +++++++++++++--- ferramentas/tabela/index.js.php | 25 ++++++++++++++++++++----- ferramentas/upload/upload.php | 2 ++ ferramentas/uploaddbf/upload.php | 3 ++- ms_criamapa.php | 7 ++++--- 12 files changed, 125 insertions(+), 46 deletions(-) diff --git a/admin/js/listatemas.js b/admin/js/listatemas.js index c05b2f8..60530ff 100644 --- a/admin/js/listatemas.js +++ b/admin/js/listatemas.js @@ -75,17 +75,13 @@ function montaDivTemas(i) }; var ins = ""; ins += core_geraLinhas(param); - ins += "

Descrição (opcional):
"; ins += "

"; - ins += "

Link para a fonte (opcional):
"; ins += "

"; - ins += "

Tags (separe com espaço). Você pode digitar novos tags ou pegar da lista abaixo (opcional):"; ins += "
"; ins += "

Buscando...
"; - ins += "

Tipo (preencha apenas se for do tipo WMS):
"; ins += ""; return(ins); } function atualizaMiniatura(){ - $i("imagemMiniatura").src = "../../imagens/aguarde.gif"; + var i = $i("imagemMiniatura"); + i.src = "../../imagens/aguarde.gif"; var tema = $i("codigo_tema").value; var sUrl = "../php/menutemas.php?funcao=atualizaMiniatura&tema="+tema; var callback = { success:function(o) { + i.style.display = none; + i.onLoad = function(){ + $i("imagemMiniatura").style.display = "block"; + } try - {$i("imagemMiniatura").src = "../../temas/miniaturas/"+tema+".map.grande.png";} - catch(e){core_handleFailure(e,o.responseText);} + {i.src = "../../temas/miniaturas/"+tema+".map.grande.png";} + catch(e){ + i.style.display = block; + core_handleFailure(e,o.responseText); + } }, failure:core_handleFailure, argument: { foo:"foo", bar:"bar" } }; - core_makeRequest(sUrl,callback,"GET"); + core_makeRequest(sUrl,callback,"GET") } function gravaDadosTema(id) { diff --git a/classesjs/classe_configura.js b/classesjs/classe_configura.js index dac0d9a..f1677f8 100644 --- a/classesjs/classe_configura.js +++ b/classesjs/classe_configura.js @@ -150,7 +150,7 @@ i3GEO.configura = { { id:"omenudataAnalise14",text: $trad("u10"), url: "javascript:i3GEO.analise.dialogo.buffer()" }, { id:"omenudataAnalise15",text: $trad("u26"), url: "javascript:i3GEO.analise.dialogo.agrupaElementos()" }, { id:"omenudataAnalise16",text: $trad("u11"), url: "javascript:i3GEO.analise.dialogo.centroide()" }, - { id:"omenudataAnalise17",text: $trad("t37"), url: "javascript:i3GEO.analise.dialogo.graficoInterativo()" }, + { id:"omenudataAnalise17",text: $trad("t37b"), url: "javascript:i3GEO.analise.dialogo.graficoInterativo()" }, { id:"omenudataAnalise18",text: $trad("d30"), url: "javascript:i3GEO.analise.dialogo.linhaDoTempo()" } ], "janelas": [ @@ -191,8 +191,9 @@ i3GEO.configura = { { id:"omenudataFerramentas5b",text: $trad("t29"), url: "javascript:i3GEO.tema.dialogo.filtro()"}, { id:"omenudataFerramentas6b",text: $trad("t33"), url: "javascript:i3GEO.tema.dialogo.editaLegenda()"}, { id:"omenudataFerramentas7b",text: $trad("t42"), url: "javascript:i3GEO.tema.dialogo.cortina()"}, - { id:"omenudataFerramentas8b",text: $trad("t37"), url: "javascript:i3GEO.tema.dialogo.graficotema()"}, - { id:"omenudataFerramentas9b",text: $trad("t49"), url: "javascript:i3GEO.tema.dialogo.tme()"}, + { id:"omenudataFerramentas8b",text: $trad("t37a"), url: "javascript:i3GEO.tema.dialogo.graficotema()"}, + { id:"omenudataFerramentas9b",text: $trad("t37b"), url: "javascript:i3GEO.analise.dialogo.graficoInterativo()" }, + { id:"omenudataFerramentas10b",text: $trad("t49"), url: "javascript:i3GEO.tema.dialogo.tme()"}, { id:"omenudataFerramentas0c",text: ''+$trad("a15")+'',url: "#"}, { id:"omenudataFerramentas1c",text: $trad("a16"), url: "javascript:i3GEO.arvoreDeTemas.dialogo.conectaservico()"}, { id:"omenudataFerramentas0d",text: 'Upload',url: "#"}, diff --git a/classesjs/dicionario.js b/classesjs/dicionario.js index 887f7f1..b66ce1e 100644 --- a/classesjs/dicionario.js +++ b/classesjs/dicionario.js @@ -768,6 +768,20 @@ en:"Graphic", es:"Gráfico", it:"Grafico" }], +"t37a":[ +{ +pt:"Tema com gráficos", +en:"Graphic", +es:"Gráfico", +it:"Grafico" +}], +"t37b":[ +{ +pt:"Gráfico interativo", +en:"Graphic", +es:"Gráfico", +it:"Grafico" +}], "t38":[ { pt:"Exporta a legenda para o padrão SLD.", diff --git a/classesphp/classe_atributos.php b/classesphp/classe_atributos.php index 0a7ec66..9faebd8 100644 --- a/classesphp/classe_atributos.php +++ b/classesphp/classe_atributos.php @@ -319,11 +319,15 @@ $inicio - Inicia do registro. $fim - Termina no registro. $tipolista - Indica se serão mostrados todos os registros ou apenas os selecionados (tudo|selecionados) + +$dadosDaClasse - sim|nao Indica se serão obtidos os dados que descrevem a classe do layer que contém o registro */ - function listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista) + function listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista,$dadosDaClasse="nao") { error_reporting(0); if(!$this->layer){return "erro";} + if($this->v < 6) + {$dadosDaClasse="nao";} $resultadoFinal = array(); if ((!isset($tipolista)) || ($tipolista=="")){$tipolista = "tudo";} if (!isset($inicio)){$inicio = 0;} @@ -368,7 +372,16 @@ $tipolista - Indica se serão mostrados todos os registros ou apenas os seleciona {$valori = $this->converte($valori);} $valitem[] = array("item"=>$item,"valor"=>$valori); } - $registros[] = array("indice"=>$indx,"valores"=>$valitem,"status"=>$chk); + $classe = ""; + if($dadosDaClasse == "sim"){ + $indice = $this->layer->getClassIndex($shape); + $nome = $this->layer->getclass($indice)->name; + $classe = array( + "indice"=>$indice, + "nome"=>$nome + ); + } + $registros[] = array("indice"=>$indx,"valores"=>$valitem,"status"=>$chk,"classe"=>$classe); } $resultadoFinal[] = array("registros"=>$registros); } @@ -417,7 +430,16 @@ $tipolista - Indica se serão mostrados todos os registros ou apenas os seleciona //if (in_array($shp_index,$shp_atual)) if(isset($shp_atual[$indx])) {$chk = "CHECKED";} - $registros[] = array("indice"=>$indx,"valores"=>$valitem,"status"=>$chk); + $classe = ""; + if($dadosDaClasse == "sim"){ + $indice = $this->layer->getClassIndex($shape); + $nome = $this->layer->getclass($indice)->name; + $classe = array( + "indice"=>$indice, + "nome"=>$nome + ); + } + $registros[] = array("indice"=>$indx,"valores"=>$valitem,"status"=>$chk,"classe"=>$classe); $chk = ""; } $this->layer->close(); diff --git a/classesphp/graficos.php b/classesphp/graficos.php index 0dfe52b..6a122be 100644 --- a/classesphp/graficos.php +++ b/classesphp/graficos.php @@ -371,7 +371,7 @@ function iniciaParGrafico($gw,$gh,$res,$dir_tmp,$gfile_name,$margem,$margemexter $rcode[] = 'screen(1, new=FALSE)'; return $rcode; } -function iniciaDadosGrafico($map_file,$tema,$exclui,$itemclasses,$itemvalores,$tipo,$percentual,$ext="",$incluicores=true) +function iniciaDadosGrafico($map_file,$tema,$exclui,$itemclasses,$itemvalores,$tipo,$percentual,$ext="",$incluicores=true,$ordenax="nao") { global $interface; //pega os valores @@ -400,9 +400,10 @@ function iniciaDadosGrafico($map_file,$tema,$exclui,$itemclasses,$itemvalores,$t $max = max($dados); $soma = array_sum($dados); $tempm = array_keys($dados); + $tempval = array(); + $nnval[] = "n;x"; if ($tipo != "xy") { - $nnval[] = "n;x"; for ($i=0;$i < $nval; ++$i) { if ($dados[$tempm[$i]] > 0) @@ -421,21 +422,23 @@ function iniciaDadosGrafico($map_file,$tema,$exclui,$itemclasses,$itemvalores,$t if($incluicores == true) {$temp = $temp.";".$cores[$tempm[$i]];} } - $nnval[] = $temp; + $tempval[] = $temp; } } } else { - $nnval[] = "x;y"; foreach ($valores as $v) { $temp = $v[0].";".$v[1]; if($incluicores == true) {$temp = $temp.";".$cores[$v[0]];} - $nnval[] = $temp; - } + $tempval[] = $temp; + } } + if($ordenax == "sim") + {sort($tempval);} + $nnval = array_merge($nnval,$tempval); return array("dados"=>$nnval,"ndados"=>$nval,"max"=>$max); } function dadosLinhaDoTempo($map_file,$tema,$ext="") diff --git a/classesphp/mapa_controle.php b/classesphp/mapa_controle.php index 9195ca8..499157c 100644 --- a/classesphp/mapa_controle.php +++ b/classesphp/mapa_controle.php @@ -1772,9 +1772,10 @@ Pega os dados necessários para a geração dos gráficos da ferramenta seleção {$exclui = "";} if(!isset($tipo)) {$tipo = "nenhum";} - $retorno = iniciaDadosGrafico($map_file,$tema,$exclui,$itemclasses,$itemvalores,$tipo,false,$ext); + if(!isset($ordenax)) + {$ordenax = "nao";} + $retorno = iniciaDadosGrafico($map_file,$tema,$exclui,$itemclasses,$itemvalores,$tipo,false,$ext,true,$ordenax); break; - /* Valor: FUSAOGRAFICO @@ -2266,7 +2267,20 @@ Pega todos os valores dos itens de uma tabela de um tema. if(!isset($fim)){$fim = "";} if(!isset($tipolista)){$tipolista = "";} if(!isset($itemtema)){$itemtema = "";} - $retorno = $m->listaRegistros($itemtema,$tipo,"",$inicio,$fim,$tipolista); + $legenda = ""; + if(!isset($dadosDaClasse)){$dadosDaClasse = "nao";} + else{ + include_once("classe_legenda.php"); + $mc = new Legenda($map_file,$locaplic,$tema); + $linhas = $mc->tabelaLegenda(); + foreach($linhas as $linha){ + if($linha["tema"] == $tema){ + $legenda[$linha["idclasse"]] = $linha["imagem"]; + } + } + } + $retorno = $m->listaRegistros($itemtema,$tipo,"",$inicio,$fim,$tipolista,$dadosDaClasse); + $retorno["legenda"] = $legenda; break; /* Valor: EXTREGISTROS diff --git a/classesphp/pega_variaveis.php b/classesphp/pega_variaveis.php index 9b843f8..a4d9424 100644 --- a/classesphp/pega_variaveis.php +++ b/classesphp/pega_variaveis.php @@ -61,7 +61,7 @@ if (isset($_GET)) { if ($_GET[$k] != "''"){ $v = strip_tags($_GET[$k]); - eval("\$".$k."='".($v)."';"); + eval("\$".$k."='".(trim($v))."';"); } } } @@ -72,12 +72,11 @@ if (isset($_POST)) foreach(array_keys($_POST) as $k) { if (($_POST[$k] != "''")) - eval("\$".$k."='".(strip_tags($_POST[$k]))."';"); + eval("\$".$k."='".(strip_tags(trim($_POST[$k])))."';"); if (($_POST[$k] != "''") && ($k == "cpaint_argument")) { foreach($_POST["cpaint_argument"] as $argumento_) { - if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) {$argumento_ = str_replace("\\\"","",$argumento_);} else @@ -93,7 +92,7 @@ if (isset($_POST)) $valor_ = implode("=",$p_); if($parametro != "") - eval("\$".$parametro."='".(($valor_))."';"); + eval("\$".$parametro."='".(trim($valor_))."';"); } } } diff --git a/ferramentas/graficointerativo/index.js.php b/ferramentas/graficointerativo/index.js.php index dc49928..3d45135 100644 --- a/ferramentas/graficointerativo/index.js.php +++ b/ferramentas/graficointerativo/index.js.php @@ -267,8 +267,10 @@ i3GEOF.graficointerativo = { '

Adiciona as linhas em gráficos de barras

' + '

Utiliza valores acumulados

' + '

Utiliza valores relativos (%)

' + + '

Ordena o eixo X

' + '

Não processa os valores ao obter os dados (mantém os dados como estão na tabela de atributos) - essa opção é útil nos gráficos de distribuição de pontos

' + '

Atualiza o gráfico ao navegar pelo mapa

' + + '

Tipo de agregação dos valores do eixo Y

' + ''+ '' + @@ -296,7 +298,7 @@ i3GEOF.graficointerativo = { titulo = "Gráficos interativos    "; janela = i3GEO.janela.cria( "380px", - "260px", + "280px", "", "", "", @@ -456,7 +458,8 @@ i3GEOF.graficointerativo = { excluir = $i("i3GEOgraficointerativoexcluir").value, p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=graficoSelecao&tema="+tema+"&itemclasses="+x+"&itemvalores="+y+"&exclui="+excluir+"&ext="+i3GEO.parametros.mapexten, cp = new cpaint(), - tipo = "soma", + tipo = $i("i3GEOgraficointerativoTipoAgregacao").value, + ordenax = "sim", monta; if($i("i3GEOgraficointerativoDadosPuros").checked) @@ -471,6 +474,8 @@ i3GEOF.graficointerativo = { {alert("Escolha um item para X");return;} if(y === "") {alert("Escolha um item para Y");return;} + if(!$i("i3GEOgraficointerativoOrdenaX").checked) + {ordenax = "nao";} monta = function(retorno){ i3GEOF.graficointerativo.aguarde.visibility = "hidden"; i3GEOF.graficointerativo.montaTabelaDados(retorno); @@ -478,7 +483,7 @@ i3GEOF.graficointerativo = { }; i3GEOF.graficointerativo.aguarde.visibility = "visible"; cp.set_response_type("JSON"); - cp.call(p+"&tipo="+tipo,"graficoSelecao",monta); + cp.call(p+"&tipo="+tipo+"&ordenax="+ordenax,"graficoSelecao",monta); }, /* Function: montaTabelaDados @@ -628,6 +633,11 @@ i3GEOF.graficointerativo = { maior = 100; menor = 0; } + if(legendaX == legendaY){ + menor = 0; + legendaX += " (ocorrências)"; + legendaY += " (n. de ocorrências)"; + } if(i3GEOF.graficointerativo.tipo === "pizza2d"){ parametros = { "elements":[{ diff --git a/ferramentas/tabela/index.js.php b/ferramentas/tabela/index.js.php index fa8e33c..67d366e 100644 --- a/ferramentas/tabela/index.js.php +++ b/ferramentas/tabela/index.js.php @@ -237,6 +237,10 @@ i3GEOF.tabela = { ins += ' '; ins += ' Mostrar na listagem apenas os selecionados'; ins += ' '; + ins += ' '; + ins += ' '; + ins += ' Mostrar coluna com a legenda da classe'; + ins += ' '; ins += ' '; ins += ' '; ins += '
'; @@ -422,7 +426,9 @@ i3GEOF.tabela = { {tiporeg = "mapa";} if ($i("i3GEOtabelatipolista").checked) {tipolista = "selecionados";} - p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=listaregistros&inicio="+inicio+"&fim="+fim+"&tema="+i3GEOF.tabela.tema+"&tipo="+tiporeg+"&tipolista="+tipolista+"&ext="+i3GEO.parametros.mapexten; + if ($i("i3GEOtabelalegenda").checked) + {dadosDaClasse = "sim";} + p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=listaregistros&inicio="+inicio+"&fim="+fim+"&tema="+i3GEOF.tabela.tema+"&tipo="+tiporeg+"&tipolista="+tipolista+"&ext="+i3GEO.parametros.mapexten+"&dadosDaClasse="+dadosDaClasse; cp.set_response_type("JSON"); cp.call(p,"listaRegistros",i3GEOF.tabela.montaTabela); }, @@ -440,10 +446,12 @@ i3GEOF.tabela = { cor, j, n, - stat; + stat, + imagem, + i3GEOtabelalegenda = $i("i3GEOtabelalegenda").checked; //cabecalho da tabela ins = ""; - ins += ""; + ins += ""; n = retorno.data[0].itens.length; for (i=0;i 
"+retorno.data[0].itens[i]+"";} @@ -463,6 +471,12 @@ i3GEOF.tabela = { {stat = "";} } ins += "
"; + if(i3GEOtabelalegenda == true){ + imagem = retorno.data.legenda[retorno.data[1].registros[i].classe["indice"]]; + ins += ""; + } + else + {ins += "";} if(stat === "CHECKED") {i3GEOF.tabela.registros[retorno.data[1].registros[i].indice] = true;} vals = retorno.data[1].registros[i].valores; @@ -761,11 +775,12 @@ i3GEOF.tabela = { }, t0: function(){ $i("i3GEOtabelaresultado").innerHTML = ""; - var ins = "
"; + var ins = ""; ins += "

A representação gráfica dos dados tabulares utiliza todos os elementos da tabela ou os selecionados, se estiverem ativos no mapa."; - ins += "

Nas opçõs seguintes, defina o tipo e as opções do gráfico."; ins += "

Os gráficos são gerados com o software R, mas vc pode optar por usar a ferramenta de gráficos interativos que possuem outras opções e geram gráficos em Flash."; ins += "

"; + ins += "

Se você optar por usar o R, nas telas seguintes defina o tipo e as opções do gráfico."; + i3GEO.util.proximoAnterior("","i3GEOF.tabela.t1()",ins,"i3GEOFtabelat0","i3GEOtabelaresultado"); new YAHOO.widget.Button( "i3GEOtabelaGraficoI", diff --git a/ferramentas/upload/upload.php b/ferramentas/upload/upload.php index b7f0f8e..41a0eb7 100644 --- a/ferramentas/upload/upload.php +++ b/ferramentas/upload/upload.php @@ -47,6 +47,8 @@ if (isset($_FILES['i3GEOuploadshp']['name'])) verificaNome($_FILES['i3GEOuploaddbf']['name']); //remove acentos $nomePrefixo = str_replace(" ","_",removeAcentos(str_replace(".shp","",$_FILES['i3GEOuploadshp']['name']))); + $nomePrefixo = $nomePrefixo."_".(nomeRandomico(4)); + //sobe arquivo $Arquivo = $_FILES['i3GEOuploadshp']['tmp_name']; if(file_exists($dirmap."/".$nomePrefixo.".shp")) diff --git a/ferramentas/uploaddbf/upload.php b/ferramentas/uploaddbf/upload.php index 451a4ce..fb7167e 100644 --- a/ferramentas/uploaddbf/upload.php +++ b/ferramentas/uploaddbf/upload.php @@ -34,7 +34,8 @@ if (isset($_FILES['i3GEOuploaddbffile']['name'])) {echo "Ocorreu um erro no envio do arquivo";paraAguarde();exit;} $nome = explode(".",$_FILES['i3GEOuploaddbffile']['name']); $nome = $nome[0]; - $nomeshp = $dirmap."/".$nome.".shp"; + $nome = $nome."_".(nomeRandomico(4)); + $nomeshp = $dirmap."/".$nome.".shp"; if($status == 1) { if(!isset($tema)) //o arquivo deverá ser transformado em uma camada no mapa diff --git a/ms_criamapa.php b/ms_criamapa.php index d8f9ddc..155f6a3 100644 --- a/ms_criamapa.php +++ b/ms_criamapa.php @@ -142,7 +142,8 @@ require_once ($caminho."classesphp/carrega_ext.php"); // //quando $funcao existe, é pq o ms_criamapa.php está sendo utilizado como um include em classesphp/mapa_controle.php // -if (!isset($_GET["debug"])) +$parurl = array_merge($_GET,$_POST); +if (!isset($parurl["debug"])) {error_reporting(0);$debug="nao";} else {error_reporting(E_ALL);$debug="sim";} @@ -152,8 +153,8 @@ if (!isset($caminho)) {$caminho = "";} if (!file_exists($caminho."classesphp/carrega_ext.php")) {echo " Nao foi possivel localizar o diretório classephp. Provavelmente vc precisara definir a variavel $caminho";exit;} -if (isset($_GET["caminho"])) -{$caminho = $_GET["caminho"];} +if (isset($parurl["caminho"])) +{$caminho = $parurl["caminho"];} /* Carrega as extensões PHP -- libgit2 0.21.2