Commit 915c2695e09cf00c36ad3a99cffeb3870cece6da

Authored by Edmar Moretti
1 parent 379a256b

$1

admin/admin.db
No preview for this file type
admin/js/estat_editor.js
... ... @@ -163,10 +163,9 @@ i3GEOadmin.editor = {
163 163 "<p class=paragrafo >Crie uma tabela no banco contendo limites ou localidades que poder&aacute; ser utilizada para espacializar os dados estat&iacute;sticos existentes em outras tabelas<br>" +
164 164 "<input type=button value='Upload Shapefile' id='i3GEOadmin_botaoupload' /></p>" +
165 165 "<div id='i3GEOadmin_formupload'></div>" +
166   - "<p class=paragrafo >Crie uma tabela nova a partir de um arquivo CSV. Utilize essa op&ccedil;&atilde;o para armazenar no banco os dados que ser&atilde;o relacionados &agrave;s tabelas contendo limites ou localidades </p>" +
  166 + "<p class=paragrafo >Crie uma tabela nova a partir de um arquivo CSV. Utilize essa op&ccedil;&atilde;o para armazenar no banco os dados que ser&atilde;o relacionados &agrave;s tabelas contendo limites ou localidades. Se no CSV existirem colunas com as coordenadas, a tabela criada poder&aacute; armazenar a geometria possibilitando seu uso como localidades. </p>" +
167 167 "<input type=button value='Upload CSV' id='i3GEOadmin_botaouploadcsv' /></p>" +
168 168 "<div id='i3GEOadmin_formuploadcsv'></div>" +
169   -
170 169 "<p class=paragrafo >Crie uma tabela vazia no banco de dados, definindo o nome e os tipos de colunas<br><input type=button value='Criar uma nova tabela' id='i3GEOadmintabelaCriar' /></p>" +
171 170 "</fieldset>";
172 171  
... ... @@ -586,7 +585,7 @@ i3GEOadmin.editor = {
586 585 '<p class="paragrafo" >CSV (utilize ponto como separador de valores decimais ou a importa&ccedil;&atilde;o poder&aacute; n&atilde;o ocorrer): <br><input class=digitar type="file" size=22 name="i3GEOuploadcsv" style="top:0px;left:0px;cursor:pointer;"></p>' +
587 586 '<p class="paragrafo" >Nome da nova tabela (n&atilde;o utilize caracteres incompat&iacute;veis com o banco de dados, como -, acentos ou espa&ccedil;os em branco):<br><input class=digitar type="text" size=20 id="tabelaDestinocsv" name="tabelaDestinocsv" style="top:0px;left:0px;cursor:pointer;"></p>' +
588 587 '<p class="paragrafo" ><input type="checkbox" id="incluiserialcsv" name="incluiserialcsv" style="cursor:pointer;position:relative;top:2px;">&nbsp;Inclui uma coluna gid do tipo serial e chave prim&aacute;ria com c&oacute;digo &uacute;nico</p>' +
589   -
  588 + '<p class="paragrafo" >Opcional: coluna que cont&eacute;m as latitudes (Y) <input class=digitar type="text" size=8 id="colunaycsv" name="colunaycsv" style="top:0px;left:0px;cursor:pointer;"> coluna que cont&eacute;m as longitudes (X) <input class=digitar type="text" size=8 id="colunaxcsv" name="colunaxcsv" style="top:0px;left:0px;cursor:pointer;"></p>' +
590 589 '<p class="paragrafo" ><input id=i3GEOuploadcsvsubmit type="button" value="Enviar" size=12 />' +
591 590 '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">' +
592 591 '<input type="hidden" id="i3GEOuploadcsvcodigoconexao" name="i3GEOuploadcsvcodigoconexao" value="">' +
... ...
admin/php/metaestat_uploadcsv_submit.php
... ... @@ -115,6 +115,10 @@ if (ob_get_level() == 0) ob_start();
115 115 foreach($colunas as $coluna){
116 116 $temp[] = strtolower($coluna)." ".$tipoColuna[$coluna];
117 117 }
  118 + if($_POST["colunaxcsv"] != "" && $_POST["colunaycsv"] != ""){
  119 + $temp[] = "the_geom geometry";
  120 + $colunas[] = "the_geom";
  121 + }
118 122 $sql .= implode(",",$temp).") WITH(OIDS=FALSE)";
119 123 $sqltabela[] = $sql;
120 124 $sqltabela[] = "ALTER TABLE ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." OWNER TO ".$conexao["usuario"];
... ... @@ -132,6 +136,8 @@ if (ob_get_level() == 0) ob_start();
132 136 $linhasql = array();
133 137 $insert = "INSERT INTO ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]."(".strtolower(implode(",",$colunas)).")";
134 138 $nlinhas = count($linhas);
  139 + $valorX = 0;
  140 + $valorY = 0;
135 141 for ($i=0; $i<$nlinhas;$i++){
136 142 $s = $linhas[$i];
137 143 $vs = array();
... ... @@ -147,45 +153,55 @@ if (ob_get_level() == 0) ob_start();
147 153 $vs[] = $s[$j];
148 154 }
149 155 }
  156 + if($colunas[$j] == $_POST["colunaxcsv"]){
  157 + $valorX = $s[$j];
  158 + }
  159 + if($colunas[$j] == $_POST["colunaycsv"]){
  160 + $valorY = $s[$j];
  161 + }
  162 + }
  163 + if($_POST["colunaxcsv"] != "" && $_POST["colunaycsv"] != ""){
  164 + $vs[] = "ST_PointFromText('POINT(". str_replace(",",".",$valorX)." ".str_replace(",",".",$valorY).")',4326)";
150 165 }
151 166 $linhasql[] = $insert."VALUES(".implode(",",$vs).")";
152 167 }
153   - //echo "<pre>";
  168 + echo "<pre>";
154 169 //var_dump($linhasql);exit;
155 170 try {
156 171 $dbh = new PDO('pgsql:dbname='.$conexao["bancodedados"].';user='.$conexao["usuario"].';password='.$conexao["senha"].';host='.$conexao["host"].';port='.$conexao["porta"]);
157 172 } catch (PDOException $e) {
158   - echo 'Connection failed: ' . $e->getMessage();
159   - }
160   - echo "<br>Incluindo dados";
161   - echo "<script>window.scrollTo(0,10000);</script>";
162   - ob_flush();
163   - flush();
164   - sleep(1);
165   - if($_POST["incluiserialcsv"] == "on"){
166   - $linhasql[] = "alter table ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." add gid serial CONSTRAINT gid_pkey PRIMARY KEY";
167   - }
168   - foreach($sqltabela as $linha){
169   - try {
170   - $dbh->query($linha);
171   - } catch (PDOException $e) {
172   - echo 'Erro: ' . $e->getMessage();
173   - }
174   - }
175   - foreach($linhasql as $linha){
176   - try {
177   - $dbh->query($linha);
178   - } catch (PDOException $e) {
179   - echo 'Erro: ' . $e->getMessage();
180   - }
181   - }
182   - echo "<b><br>Feito!!!<br>Fa&ccedil;a o reload da p&aacute;gina";
  173 + echo 'Connection failed: ' . $e->getMessage();
  174 + }
  175 + echo "<br>Incluindo dados";
  176 + echo "<script>window.scrollTo(0,10000);</script>";
  177 + ob_flush();
  178 + flush();
  179 + sleep(1);
  180 + if($_POST["incluiserialcsv"] == "on"){
  181 + $linhasql[] = "alter table ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." add gid serial CONSTRAINT gid_pkey PRIMARY KEY";
  182 + }
  183 + foreach($sqltabela as $linha){
  184 + try {
  185 + $dbh->query($linha);
  186 + } catch (PDOException $e) {
  187 + echo 'Erro: ' . $e->getMessage();
  188 + }
  189 + }
  190 + foreach($linhasql as $linha){
  191 + try {
  192 + $dbh->query($linha);
  193 + } catch (PDOException $e) {
  194 + echo 'Erro: ' . $e->getMessage();
  195 + }
  196 + }
  197 + echo "<b><br>Feito!!!<br>Fa&ccedil;a o reload da p&aacute;gina";
183 198 }
184 199 else{
185   - echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>";
186   -}
  200 + echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>";
  201 + }
  202 +
  203 + ?>
  204 + <script>window.scrollTo(0,10000);</script>
187 205  
188   -?>
189   -<script>window.scrollTo(0,10000);</script>
190 206 </body>
191 207 </html>
... ...
ferramentas/metaestat/analise.php
... ... @@ -700,25 +700,28 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula
700 700 $itensdesc[] = $nomesLayers[$i];
701 701 }
702 702 //pega as colunas e as formulas adicionais
703   - $colunascalc = explode(",",$colunascalc);
704   - $formulas = explode(",",$formulas);
705   - $nformulas = count($formulas);
706   - $complemento = array();
707   - for($i=0;$i<$nformulas;$i++){
708   - $complemento[] = "(".$formulas[$i].") as ".$colunascalc[$i];
709   - }
710   - $complemento = implode(",",$complemento);
711   - //substitui pelo nome correto das colunas
712   - foreach(array_keys($tabelaColuna) as $k){
713   - $complemento = str_replace($k,$tabelaColuna[$k],$complemento);
714   - }
715   - if($complemento != ""){
716   - $complemento .= ",";
717   - $itens = array_merge($itens,$colunascalc);
718   - $itensdesc = array_merge($itensdesc,$colunascalc);
719   - $complemento = str_ireplace("select","",$complemento);
720   - $complemento = str_ireplace("update","",$complemento);
721   - $complemento = str_ireplace("delete","",$complemento);
  703 + $complemento = "";
  704 + if($colunascalc != "" && $formulas != ""){
  705 + $colunascalc = explode(",",$colunascalc);
  706 + $formulas = explode(",",$formulas);
  707 + $nformulas = count($formulas);
  708 + $complemento = array();
  709 + for($i=0;$i<$nformulas;$i++){
  710 + $complemento[] = "(".$formulas[$i].") as ".$colunascalc[$i];
  711 + }
  712 + $complemento = implode(",",$complemento);
  713 + //substitui pelo nome correto das colunas
  714 + foreach(array_keys($tabelaColuna) as $k){
  715 + $complemento = str_replace($k,$tabelaColuna[$k],$complemento);
  716 + }
  717 + if($complemento != ""){
  718 + $complemento .= ",";
  719 + $itens = array_merge($itens,$colunascalc);
  720 + $itensdesc = array_merge($itensdesc,$colunascalc);
  721 + $complemento = str_ireplace("select","",$complemento);
  722 + $complemento = str_ireplace("update","",$complemento);
  723 + $complemento = str_ireplace("delete","",$complemento);
  724 + }
722 725 }
723 726 //echo $complemento;exit;
724 727 $sqlfinal = "SELECT $complemento tabela0.".$gid.",tabela0.".$regiao["colunanomeregiao"]." as regiao,tabela0.".$regiao["colunageo"]." as the_geom,".implode(",",$colunasDados)." from ".implode(",",$sqls)." WHERE ";
... ...
ferramentas/metaestat/index.js
... ... @@ -351,7 +351,7 @@ i3GEOF.metaestat = {
351 351 i3GEOF.toponimia.iniciaJanelaFlutuante();
352 352 };
353 353 i3GEO.janela.abreAguarde("aguardeAnalise","Aguarde...");
354   - i3GEO.util.ajaxGet(p,temp);
  354 + i3GEO.util.ajaxGet(p,temp);
355 355 },
356 356 /**
357 357 * Junta camadas em uma nova, contendo as colunas das medidas
... ... @@ -405,7 +405,7 @@ i3GEOF.metaestat = {
405 405 $inputText("","","i3GEOFjuntaNovoNome","",30,'') +
406 406 '<br><br><input id=i3geojuntaAplica type="button" value="Aplicar" />' +
407 407 '<div id=i3GEOFjuntaColunasCalculadas >' +
408   - '<br><p class=paragrafo ><b>Colunas calculadas (opcional)</b></p></div>' +
  408 + '<br><p class=paragrafo ><b>Colunas calculadas (opcional)</b>&nbsp;<img title="Adiciona entrada de formulario" onclick="i3GEOF.metaestat.analise.juntaMedidasVariaveis.noNovoCalculo()" src="'+i3GEO.configura.locaplic+'/imagens/plus.gif" style="cursor: pointer;"></p></div>' +
409 409 '<div id=i3GEOFjuntaColunasCalculadasMensagemAjuda ></div>' ;
410 410 $i("i3GEOF.junta_corpo").innerHTML = ins;
411 411 new YAHOO.widget.Button(
... ... @@ -415,14 +415,14 @@ i3GEOF.metaestat = {
415 415 i3GEOF.metaestat.analise.juntaMedidasVariaveis.noNovoCalculo();
416 416 //ajuda para o calculo
417 417 i3GEO.util.mensagemAjuda("i3GEOFjuntaColunasCalculadasMensagemAjuda",
418   - "As colunas calculadas s&atilde;o f&oacute;rmulas que utilizam as colunas que forem juntadas e que ser&atilde;o acrescentadas"+
419   - "&agrave; nova camada. Cada uma dessas colunas receber&aacute; um nome sequencial, por exemplo <i>valortema0,valortema1,"+
420   - "valortema2...</i><br>As colunas calculadas podem utilizar essas colunas como entrada em f&oacute;rmulas."+
  418 + "Os c&aacute;lculos s&atilde;o f&oacute;rmulas que utilizam as colunas que forem juntadas e que ser&atilde;o inclu&iacute;das "+
  419 + "na nova camada. Cada uma dessas colunas receber&aacute; um nome sequencial, por exemplo <i>valortema0,valortema1,"+
  420 + "valortema2...</i><br><br>As colunas calculadas podem utilizar esses nomes como entrada em f&oacute;rmulas. "+
421 421 "Cada f&oacute;rmula ir&aacute; gerar uma nova coluna na tabela e deve utilizar a sintaxe SQL (<a href='http://www.postgresql.org/docs/9.3/static/functions-math.html' target=_blank >SQL no Postgres</a>)"+
422   - "<br>Exemplos de uso:<br>" +
423   - "coluna de nome <b>soma</b><br>" +
424   - "valortema0 + valortema1 <br>" +
425   - "coluna de nome <b>taxa</b><br>" +
  422 + "<br><br>Exemplos de uso:<br><br>" +
  423 + "coluna de nome: <b>soma</b><br>" +
  424 + "valortema0 + valortema1 <br><br>" +
  425 + "coluna de nome: <b>taxa</b><br>" +
426 426 "(valortema0 * 100) / valortema1"
427 427 );
428 428 },
... ... @@ -476,9 +476,10 @@ i3GEOF.metaestat = {
476 476 p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?g_sid="+i3GEO.configura.sid +
477 477 "&funcao=juntaMedidasVariaveis&layerNames="+lista.join(",")+"&nome="+$i("i3GEOFjuntaNovoNome").value;
478 478 ps = i3GEOF.metaestat.analise.juntaMedidasVariaveis.pegaCalculos();
479   - atualiza = function(){
  479 + atualiza = function(retorno){
480 480 i3GEO.janela.fechaAguarde("aguardeAnalise");
481 481 i3GEO.atualiza();
  482 + i3GEO.temaAtivo = retorno.data;
482 483 i3GEOF.metaestat.analise.comboCamadas();
483 484 };
484 485 //i3GEO.util.ajaxGet(p,atualiza);
... ... @@ -609,7 +610,7 @@ i3GEOF.metaestat = {
609 610 i3GEOF.tme.iniciaJanelaFlutuante();
610 611 };
611 612 i3GEO.janela.abreAguarde("aguardeAnalise","Aguarde...");
612   - i3GEO.util.ajaxGet(p,temp);
  613 + i3GEO.util.ajaxGet(p,temp);
613 614 },
614 615 /**
615 616 * Abre a ferramenta que mostra um relatorio com sumario estatistico dos dados
... ... @@ -713,7 +714,7 @@ i3GEOF.metaestat = {
713 714 return;
714 715 }
715 716 i3GEO.mapa.ativaTema($i("i3geoCartoAnaliseCamadasCombo").value);
716   -
  717 +
717 718 if(typeof(i3GEOF.legenda.dicionario) === 'undefined'){
718 719 i3GEO.util.scriptTag(
719 720 i3GEO.configura.locaplic+"/ferramentas/legenda/dicionario.js",
... ... @@ -723,7 +724,7 @@ i3GEOF.metaestat = {
723 724 }
724 725 else{
725 726 i3GEOF.metaestat.analise.janelaEditorLegenda();
726   - }
  727 + }
727 728 },
728 729 janelaEditorLegenda: function(){
729 730 i3GEOF.legenda.iniciaJanelaFlutuante();
... ... @@ -736,7 +737,7 @@ i3GEOF.metaestat = {
736 737 $i("i3GEOFlegendaClassesOpcionais").style.display = "none";
737 738 }
738 739 var temp = $i("i3GEOF.legenda_corpo");
739   - temp.getElementsByTagName("div")[0].style.display = "none";
  740 + temp.getElementsByTagName("div")[0].style.display = "none";
740 741 },
741 742 /**
742 743 * Ativa a ferramenta que permite editar os simbolos utilizados em uma classe da legenda
... ...