Commit 915c2695e09cf00c36ad3a99cffeb3870cece6da
1 parent
379a256b
Exists in
master
and in
7 other branches
$1
Showing
5 changed files
with
85 additions
and
66 deletions
Show diff stats
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á ser utilizada para espacializar os dados estatí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ção para armazenar no banco os dados que serão relacionados às tabelas contendo limites ou localidades </p>" + | |
166 | + "<p class=paragrafo >Crie uma tabela nova a partir de um arquivo CSV. Utilize essa opção para armazenar no banco os dados que serão relacionados às tabelas contendo limites ou localidades. Se no CSV existirem colunas com as coordenadas, a tabela criada poderá 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ção poderá nã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ão utilize caracteres incompatíveis com o banco de dados, como -, acentos ou espaç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;"> Inclui uma coluna gid do tipo serial e chave primária com código único</p>' + |
589 | - | |
588 | + '<p class="paragrafo" >Opcional: coluna que conté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é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ça o reload da pá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ça o reload da pá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> <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ão fórmulas que utilizam as colunas que forem juntadas e que serão acrescentadas"+ | |
419 | - "à nova camada. Cada uma dessas colunas receberá um nome sequencial, por exemplo <i>valortema0,valortema1,"+ | |
420 | - "valortema2...</i><br>As colunas calculadas podem utilizar essas colunas como entrada em fórmulas."+ | |
418 | + "Os cálculos são fórmulas que utilizam as colunas que forem juntadas e que serão incluídas "+ | |
419 | + "na nova camada. Cada uma dessas colunas receberá um nome sequencial, por exemplo <i>valortema0,valortema1,"+ | |
420 | + "valortema2...</i><br><br>As colunas calculadas podem utilizar esses nomes como entrada em fórmulas. "+ | |
421 | 421 | "Cada fórmula irá 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 | ... | ... |