From 915c2695e09cf00c36ad3a99cffeb3870cece6da Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Thu, 26 Sep 2013 14:27:31 +0000 Subject: [PATCH] $1 --- admin/admin.db | Bin 210944 -> 0 bytes admin/js/estat_editor.js | 5 ++--- admin/php/metaestat_uploadcsv_submit.php | 76 ++++++++++++++++++++++++++++++++++++++++++++++------------------------------ ferramentas/metaestat/analise.php | 41 ++++++++++++++++++++++------------------- ferramentas/metaestat/index.js | 29 +++++++++++++++-------------- 5 files changed, 85 insertions(+), 66 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index 750fbc1..3fd022c 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/js/estat_editor.js b/admin/js/estat_editor.js index 6e120d3..adb6d5d 100644 --- a/admin/js/estat_editor.js +++ b/admin/js/estat_editor.js @@ -163,10 +163,9 @@ i3GEOadmin.editor = { "

Crie uma tabela no banco contendo limites ou localidades que poderá ser utilizada para espacializar os dados estatísticos existentes em outras tabelas
" + "

" + "
" + - "

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

" + + "

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.

" + "

" + "
" + - "

Crie uma tabela vazia no banco de dados, definindo o nome e os tipos de colunas

" + ""; @@ -586,7 +585,7 @@ i3GEOadmin.editor = { '

CSV (utilize ponto como separador de valores decimais ou a importação poderá não ocorrer):

' + '

Nome da nova tabela (não utilize caracteres incompatíveis com o banco de dados, como -, acentos ou espaços em branco):

' + '

 Inclui uma coluna gid do tipo serial e chave primária com código único

' + - + '

Opcional: coluna que contém as latitudes (Y) coluna que contém as longitudes (X)

' + '

' + '' + '' + diff --git a/admin/php/metaestat_uploadcsv_submit.php b/admin/php/metaestat_uploadcsv_submit.php index 70f7ab4..5afc6b0 100644 --- a/admin/php/metaestat_uploadcsv_submit.php +++ b/admin/php/metaestat_uploadcsv_submit.php @@ -115,6 +115,10 @@ if (ob_get_level() == 0) ob_start(); foreach($colunas as $coluna){ $temp[] = strtolower($coluna)." ".$tipoColuna[$coluna]; } + if($_POST["colunaxcsv"] != "" && $_POST["colunaycsv"] != ""){ + $temp[] = "the_geom geometry"; + $colunas[] = "the_geom"; + } $sql .= implode(",",$temp).") WITH(OIDS=FALSE)"; $sqltabela[] = $sql; $sqltabela[] = "ALTER TABLE ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." OWNER TO ".$conexao["usuario"]; @@ -132,6 +136,8 @@ if (ob_get_level() == 0) ob_start(); $linhasql = array(); $insert = "INSERT INTO ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]."(".strtolower(implode(",",$colunas)).")"; $nlinhas = count($linhas); + $valorX = 0; + $valorY = 0; for ($i=0; $i<$nlinhas;$i++){ $s = $linhas[$i]; $vs = array(); @@ -147,45 +153,55 @@ if (ob_get_level() == 0) ob_start(); $vs[] = $s[$j]; } } + if($colunas[$j] == $_POST["colunaxcsv"]){ + $valorX = $s[$j]; + } + if($colunas[$j] == $_POST["colunaycsv"]){ + $valorY = $s[$j]; + } + } + if($_POST["colunaxcsv"] != "" && $_POST["colunaycsv"] != ""){ + $vs[] = "ST_PointFromText('POINT(". str_replace(",",".",$valorX)." ".str_replace(",",".",$valorY).")',4326)"; } $linhasql[] = $insert."VALUES(".implode(",",$vs).")"; } - //echo "

";
+			echo "
";
 			//var_dump($linhasql);exit;
 			try {
 				$dbh = new PDO('pgsql:dbname='.$conexao["bancodedados"].';user='.$conexao["usuario"].';password='.$conexao["senha"].';host='.$conexao["host"].';port='.$conexao["porta"]);
 			} catch (PDOException $e) {
-		echo 'Connection failed: ' . $e->getMessage();
-	}
-	echo "
Incluindo dados"; - echo ""; - ob_flush(); - flush(); - sleep(1); - if($_POST["incluiserialcsv"] == "on"){ - $linhasql[] = "alter table ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." add gid serial CONSTRAINT gid_pkey PRIMARY KEY"; - } - foreach($sqltabela as $linha){ - try { - $dbh->query($linha); - } catch (PDOException $e) { - echo 'Erro: ' . $e->getMessage(); - } - } - foreach($linhasql as $linha){ - try { - $dbh->query($linha); - } catch (PDOException $e) { - echo 'Erro: ' . $e->getMessage(); - } - } - echo "
Feito!!!
Faça o reload da página"; + echo 'Connection failed: ' . $e->getMessage(); + } + echo "
Incluindo dados"; + echo ""; + ob_flush(); + flush(); + sleep(1); + if($_POST["incluiserialcsv"] == "on"){ + $linhasql[] = "alter table ".$_POST["i3GEOuploadcsvesquema"].".".$_POST["tabelaDestinocsv"]." add gid serial CONSTRAINT gid_pkey PRIMARY KEY"; + } + foreach($sqltabela as $linha){ + try { + $dbh->query($linha); + } catch (PDOException $e) { + echo 'Erro: ' . $e->getMessage(); + } + } + foreach($linhasql as $linha){ + try { + $dbh->query($linha); + } catch (PDOException $e) { + echo 'Erro: ' . $e->getMessage(); + } + } + echo "
Feito!!!
Faça o reload da página"; } else{ - echo "

Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.

"; -} + echo "

Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.

"; + } + + ?> + -?> - diff --git a/ferramentas/metaestat/analise.php b/ferramentas/metaestat/analise.php index 52fd8c2..857999a 100644 --- a/ferramentas/metaestat/analise.php +++ b/ferramentas/metaestat/analise.php @@ -700,25 +700,28 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula $itensdesc[] = $nomesLayers[$i]; } //pega as colunas e as formulas adicionais - $colunascalc = explode(",",$colunascalc); - $formulas = explode(",",$formulas); - $nformulas = count($formulas); - $complemento = array(); - for($i=0;$i<$nformulas;$i++){ - $complemento[] = "(".$formulas[$i].") as ".$colunascalc[$i]; - } - $complemento = implode(",",$complemento); - //substitui pelo nome correto das colunas - foreach(array_keys($tabelaColuna) as $k){ - $complemento = str_replace($k,$tabelaColuna[$k],$complemento); - } - if($complemento != ""){ - $complemento .= ","; - $itens = array_merge($itens,$colunascalc); - $itensdesc = array_merge($itensdesc,$colunascalc); - $complemento = str_ireplace("select","",$complemento); - $complemento = str_ireplace("update","",$complemento); - $complemento = str_ireplace("delete","",$complemento); + $complemento = ""; + if($colunascalc != "" && $formulas != ""){ + $colunascalc = explode(",",$colunascalc); + $formulas = explode(",",$formulas); + $nformulas = count($formulas); + $complemento = array(); + for($i=0;$i<$nformulas;$i++){ + $complemento[] = "(".$formulas[$i].") as ".$colunascalc[$i]; + } + $complemento = implode(",",$complemento); + //substitui pelo nome correto das colunas + foreach(array_keys($tabelaColuna) as $k){ + $complemento = str_replace($k,$tabelaColuna[$k],$complemento); + } + if($complemento != ""){ + $complemento .= ","; + $itens = array_merge($itens,$colunascalc); + $itensdesc = array_merge($itensdesc,$colunascalc); + $complemento = str_ireplace("select","",$complemento); + $complemento = str_ireplace("update","",$complemento); + $complemento = str_ireplace("delete","",$complemento); + } } //echo $complemento;exit; $sqlfinal = "SELECT $complemento tabela0.".$gid.",tabela0.".$regiao["colunanomeregiao"]." as regiao,tabela0.".$regiao["colunageo"]." as the_geom,".implode(",",$colunasDados)." from ".implode(",",$sqls)." WHERE "; diff --git a/ferramentas/metaestat/index.js b/ferramentas/metaestat/index.js index 1ee3eb5..ecc8bc1 100644 --- a/ferramentas/metaestat/index.js +++ b/ferramentas/metaestat/index.js @@ -351,7 +351,7 @@ i3GEOF.metaestat = { i3GEOF.toponimia.iniciaJanelaFlutuante(); }; i3GEO.janela.abreAguarde("aguardeAnalise","Aguarde..."); - i3GEO.util.ajaxGet(p,temp); + i3GEO.util.ajaxGet(p,temp); }, /** * Junta camadas em uma nova, contendo as colunas das medidas @@ -405,7 +405,7 @@ i3GEOF.metaestat = { $inputText("","","i3GEOFjuntaNovoNome","",30,'') + '

' + '
' + - '

Colunas calculadas (opcional)

' + + '

Colunas calculadas (opcional) 

' + '
' ; $i("i3GEOF.junta_corpo").innerHTML = ins; new YAHOO.widget.Button( @@ -415,14 +415,14 @@ i3GEOF.metaestat = { i3GEOF.metaestat.analise.juntaMedidasVariaveis.noNovoCalculo(); //ajuda para o calculo i3GEO.util.mensagemAjuda("i3GEOFjuntaColunasCalculadasMensagemAjuda", - "As colunas calculadas são fórmulas que utilizam as colunas que forem juntadas e que serão acrescentadas"+ - "à nova camada. Cada uma dessas colunas receberá um nome sequencial, por exemplo valortema0,valortema1,"+ - "valortema2...
As colunas calculadas podem utilizar essas colunas como entrada em fórmulas."+ + "Os cálculos são fórmulas que utilizam as colunas que forem juntadas e que serão incluídas "+ + "na nova camada. Cada uma dessas colunas receberá um nome sequencial, por exemplo valortema0,valortema1,"+ + "valortema2...

As colunas calculadas podem utilizar esses nomes como entrada em fórmulas. "+ "Cada fórmula irá gerar uma nova coluna na tabela e deve utilizar a sintaxe SQL (SQL no Postgres)"+ - "
Exemplos de uso:
" + - "coluna de nome soma
" + - "valortema0 + valortema1
" + - "coluna de nome taxa
" + + "

Exemplos de uso:

" + + "coluna de nome: soma
" + + "valortema0 + valortema1

" + + "coluna de nome: taxa
" + "(valortema0 * 100) / valortema1" ); }, @@ -476,9 +476,10 @@ i3GEOF.metaestat = { p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?g_sid="+i3GEO.configura.sid + "&funcao=juntaMedidasVariaveis&layerNames="+lista.join(",")+"&nome="+$i("i3GEOFjuntaNovoNome").value; ps = i3GEOF.metaestat.analise.juntaMedidasVariaveis.pegaCalculos(); - atualiza = function(){ + atualiza = function(retorno){ i3GEO.janela.fechaAguarde("aguardeAnalise"); i3GEO.atualiza(); + i3GEO.temaAtivo = retorno.data; i3GEOF.metaestat.analise.comboCamadas(); }; //i3GEO.util.ajaxGet(p,atualiza); @@ -609,7 +610,7 @@ i3GEOF.metaestat = { i3GEOF.tme.iniciaJanelaFlutuante(); }; i3GEO.janela.abreAguarde("aguardeAnalise","Aguarde..."); - i3GEO.util.ajaxGet(p,temp); + i3GEO.util.ajaxGet(p,temp); }, /** * Abre a ferramenta que mostra um relatorio com sumario estatistico dos dados @@ -713,7 +714,7 @@ i3GEOF.metaestat = { return; } i3GEO.mapa.ativaTema($i("i3geoCartoAnaliseCamadasCombo").value); - + if(typeof(i3GEOF.legenda.dicionario) === 'undefined'){ i3GEO.util.scriptTag( i3GEO.configura.locaplic+"/ferramentas/legenda/dicionario.js", @@ -723,7 +724,7 @@ i3GEOF.metaestat = { } else{ i3GEOF.metaestat.analise.janelaEditorLegenda(); - } + } }, janelaEditorLegenda: function(){ i3GEOF.legenda.iniciaJanelaFlutuante(); @@ -736,7 +737,7 @@ i3GEOF.metaestat = { $i("i3GEOFlegendaClassesOpcionais").style.display = "none"; } var temp = $i("i3GEOF.legenda_corpo"); - temp.getElementsByTagName("div")[0].style.display = "none"; + temp.getElementsByTagName("div")[0].style.display = "none"; }, /** * Ativa a ferramenta que permite editar os simbolos utilizados em uma classe da legenda -- libgit2 0.21.2