Commit ebb5931152e45266196fd79f02a31f55f7cb0971
1 parent
7094315d
Exists in
master
and in
7 other branches
$1
Showing
7 changed files
with
67 additions
and
36 deletions
Show diff stats
admin/admin.db
No preview for this file type
admin/js/estat_editor.js
| ... | ... | @@ -582,7 +582,7 @@ i3GEOadmin.editor = { |
| 582 | 582 | }, |
| 583 | 583 | formulario: function(){ |
| 584 | 584 | var ins = '<fieldset><form id=i3GEOuploadcsvf target="i3GEOuploadcsviframe" action="../php/metaestat_uploadcsv_submit.php" method="post" ENCTYPE="multipart/form-data">' + |
| 585 | - '<p class="paragrafo" >CSV (utilize ponto como separador de valores decimais ou a importação poderá não ocorrer): <br><br><input class=digitar type="file" size=22 name="i3GEOuploadcsv" style="top:0px;left:0px;cursor:pointer;"></p>' + | |
| 585 | + '<p class="paragrafo" >CSV (Não utilize separador de milhar e utilize ponto como separador de casas decimais ou a importação poderá não ocorrer): <br><br><input class=digitar type="file" size=22 name="i3GEOuploadcsv" style="top:0px;left:0px;cursor:pointer;"></p>' + | |
| 586 | 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;"> ' + |
| 587 | 587 | 'Ou escolha da lista: ' + |
| 588 | 588 | '<select onchange="javascript:$i(\'tabelaDestinocsv\').value = this.value;">' + |
| ... | ... | @@ -595,7 +595,7 @@ i3GEOadmin.editor = { |
| 595 | 595 | '<option value=apagar >Apagar dados atuais e incluir do CSV</option>' + |
| 596 | 596 | '</select></p>' + |
| 597 | 597 | '<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>' + |
| 598 | - '<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>' + | |
| 598 | + '<p class="paragrafo" >Opcional (utilize sempre coordenadas em décimos de grau no CSV): <br><br>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>' + | |
| 599 | 599 | '<p class="paragrafo" ><input id=i3GEOuploadcsvsubmit type="button" value="Enviar" size=12 />' + |
| 600 | 600 | '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">' + |
| 601 | 601 | '<input type="hidden" id="i3GEOuploadcsvcodigoconexao" name="i3GEOuploadcsvcodigoconexao" value="">' + |
| ... | ... | @@ -603,6 +603,7 @@ i3GEOadmin.editor = { |
| 603 | 603 | '</form>' + |
| 604 | 604 | '<iframe name=i3GEOuploadcsviframe style="text-align:left;border:1px solid gray;" width="98%" height="400px"></iframe>' + |
| 605 | 605 | '<p class="paragrafo" >Após terminar o processo, atualize essa página para que a nova tabela criada apareça nas listas de seleção.</p>' + |
| 606 | + '<p class="paragrafo" >Utilize o <a href="./estat_tipo_regiao.html" >cadastro de regiões</a> para registrar a tabela criada com latitude e longitude como uma nova unidade geográfica que poderá ser escolhida no processo de criação de variáveis.</p>' + | |
| 606 | 607 | '</fieldset>'; |
| 607 | 608 | return ins; |
| 608 | 609 | }, | ... | ... |
admin/js/estat_variavel.js
| ... | ... | @@ -301,21 +301,21 @@ i3GEOadmin.variaveis = { |
| 301 | 301 | }, |
| 302 | 302 | montaDiv: function(i){ |
| 303 | 303 | var temp,ins = "",limg=i3GEO.configura.locaplic+"/imagens/ic_zoom.png", |
| 304 | - param = { | |
| 305 | - "linhas":[ | |
| 306 | - {titulo:"Nome:",id:"Enomemedida",size:"50",value:i.nomemedida,tipo:"text",div:""}, | |
| 307 | - {titulo:"Unidade de medida:",id:"",size:"50",value:i.codigo_unidade_medida,tipo:"text",div:"<div id=Ccodigo_unidade_medida ></div>"}, | |
| 308 | - {titulo:"Tipo de período:",id:"",size:"50",value:i.codigo_tipo_periodo,tipo:"text",div:"<div id=Ccodigo_tipo_periodo ></div>"}, | |
| 309 | - {titulo:"Tipo de região:",id:"",size:"50",value:i.codigo_tipo_regiao,tipo:"text",div:"<div id=Ccodigo_tipo_regiao ></div>"}, | |
| 310 | - {titulo:"Tabela do banco que contem os valores: <img onclick='i3GEOadmin.variaveis.selTabela(\"Etabela\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"sim\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Etabela",size:"50",value:i.tabela,tipo:"text",div:""} | |
| 311 | - ] | |
| 312 | - }; | |
| 313 | - ins += core_geraLinhas(param); | |
| 314 | - ins += "<br><br><div id='editorMedidaDefault' >"; | |
| 315 | 304 | param = { |
| 316 | 305 | "linhas":[ |
| 306 | + {titulo:"Nome:",id:"Enomemedida",size:"50",value:i.nomemedida,tipo:"text",div:""}, | |
| 307 | + {titulo:"Unidade de medida:",id:"",size:"50",value:i.codigo_unidade_medida,tipo:"text",div:"<div id=Ccodigo_unidade_medida ></div>"}, | |
| 308 | + {titulo:"Tipo de período:",id:"",size:"50",value:i.codigo_tipo_periodo,tipo:"text",div:"<div id=Ccodigo_tipo_periodo ></div>"}, | |
| 309 | + {titulo:"Tipo de região:",id:"",size:"50",value:i.codigo_tipo_regiao,tipo:"text",div:"<div id=Ccodigo_tipo_regiao ></div>"}, | |
| 317 | 310 | {titulo:"Conexão:",id:"",size:"50",value:i.codigo_estat_conexao,tipo:"text",div:"<div id=Ccodigo_estat_conexao ></div>"}, |
| 318 | 311 | {titulo:"Esquema do banco: <img onclick='i3GEOadmin.variaveis.selEsquema(\"Eesquemadb\",\"Ecodigo_estat_conexao\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Eesquemadb",size:"50",value:i.esquemadb,tipo:"text",div:""}, |
| 312 | + {titulo:"Tabela do banco que contem os valores: <img onclick='i3GEOadmin.variaveis.selTabela(\"Etabela\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"sim\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Etabela",size:"50",value:i.tabela,tipo:"text",div:""} | |
| 313 | + ] | |
| 314 | + }; | |
| 315 | + ins += core_geraLinhas(param); | |
| 316 | + ins += "<br><br><div id='editorMedidaDefault' >"; | |
| 317 | + param = { | |
| 318 | + "linhas":[ | |
| 319 | 319 | {titulo:"Coluna com os valores: <img onclick='i3GEOadmin.variaveis.selColuna(\"Ecolunavalor\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"Etabela\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Ecolunavalor",size:"50",value:i.colunavalor,tipo:"text",div:""}, |
| 320 | 320 | {titulo:"Coluna de ligação com a tabela GEO: <img onclick='i3GEOadmin.variaveis.selColuna(\"Ecolunaidgeo\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"Etabela\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Ecolunaidgeo",size:"50",value:i.colunaidgeo,tipo:"text",div:""}, |
| 321 | 321 | {titulo:"Coluna com os IDs únicos que identificam cada registro da tabela com os valores: <img onclick='i3GEOadmin.variaveis.selColuna(\"Ecolunaidunico\",\"Ecodigo_estat_conexao\",\"Eesquemadb\",\"Etabela\")' src='"+limg+"' style='cursor:pointer;position :relative;top:2px'/>",id:"Ecolunaidunico",size:"50",value:i.colunaidunico,tipo:"text",div:""}, | ... | ... |
admin/php/metaestat_uploadcsv_submit.php
| ... | ... | @@ -114,6 +114,18 @@ if (ob_get_level() == 0) ob_start(); |
| 114 | 114 | } catch (PDOException $e) { |
| 115 | 115 | echo 'Connection failed: ' . $e->getMessage(); |
| 116 | 116 | } |
| 117 | + //encoding do banco de dados | |
| 118 | + $sql = "SELECT pg_encoding_to_char(encoding) FROM pg_database WHERE datname = '".$conexao["bancodedados"]."'"; | |
| 119 | + $res = $dbh->query($sql,PDO::FETCH_ASSOC); | |
| 120 | + $encodingdb = $res->fetchAll(); | |
| 121 | + $encodingdb = $encodingdb[0]; | |
| 122 | + $encodingdb = $encodingdb["pg_encoding_to_char"]; | |
| 123 | + if($encodingdb == "UTF8"){ | |
| 124 | + $encodingdb = "UTF-8"; | |
| 125 | + } | |
| 126 | + if($encodingdb == "LATIN1"){ | |
| 127 | + $encodingdb = "ISO-8859-1"; | |
| 128 | + } | |
| 117 | 129 | //gera o script para criar a tabela e verifica se ja existe |
| 118 | 130 | $sql = "SELECT table_name FROM information_schema.tables where table_schema = '".$_POST["i3GEOuploadcsvesquema"]."' AND table_name = '".$_POST["tabelaDestinocsv"]."'"; |
| 119 | 131 | $res = $dbh->query($sql,PDO::FETCH_ASSOC); |
| ... | ... | @@ -171,28 +183,40 @@ if (ob_get_level() == 0) ob_start(); |
| 171 | 183 | $vs = array(); |
| 172 | 184 | for ($j=0; $j<$ncolunas;$j++){ |
| 173 | 185 | if($tipoColuna[$colunas[$j]] == "varchar"){ |
| 174 | - $texto = str_replace("'","",$s[$j]); | |
| 175 | - $vs[] = "'".$texto."'"; | |
| 176 | - } | |
| 177 | - else{ | |
| 178 | - if(empty($s[$j]) && $s[$j] != 0){ | |
| 179 | - $vs[] = 'null'; | |
| 186 | + $texto = $s[$j]; | |
| 187 | + $texto = str_replace("'","",$texto); | |
| 188 | + $enc = mb_detect_encoding($texto); | |
| 189 | + if(enc != ""){ | |
| 190 | + $texto = "'".mb_convert_encoding($texto,$encodingdb,$enc)."'"; | |
| 180 | 191 | } |
| 181 | 192 | else{ |
| 182 | - $vs[] = $s[$j]; | |
| 193 | + $texto = "'".$texto."'"; | |
| 194 | + } | |
| 195 | + if($texto == "''"){ | |
| 196 | + $texto = 'null'; | |
| 197 | + } | |
| 198 | + $vs[] = $texto; | |
| 199 | + } | |
| 200 | + else{ | |
| 201 | + $valor = $s[$j]; | |
| 202 | + if($valor == ""){ | |
| 203 | + $valor = "nulo"; | |
| 183 | 204 | } |
| 205 | + $vs[] = $valor; | |
| 184 | 206 | } |
| 185 | - if($colunas[$j] == $_POST["colunaxcsv"]){ | |
| 207 | + if(strtolower($colunas[$j]) == strtolower($_POST["colunaxcsv"])){ | |
| 186 | 208 | $valorX = $s[$j]; |
| 187 | 209 | } |
| 188 | - if($colunas[$j] == $_POST["colunaycsv"]){ | |
| 210 | + if(strtolower($colunas[$j]) == strtolower($_POST["colunaycsv"])){ | |
| 189 | 211 | $valorY = $s[$j]; |
| 190 | 212 | } |
| 191 | 213 | } |
| 192 | 214 | if($_POST["colunaxcsv"] != "" && $_POST["colunaycsv"] != ""){ |
| 193 | 215 | $vs[] = "ST_PointFromText('POINT(". str_replace(",",".",$valorX)." ".str_replace(",",".",$valorY).")',4326)"; |
| 194 | 216 | } |
| 195 | - $linhasql[] = $insert."VALUES(".implode(",",$vs).")"; | |
| 217 | + $str = implode(",",$vs); | |
| 218 | + $str = str_replace("nulo",'null',$str); | |
| 219 | + $linhasql[] = $insert."VALUES(".$str.")"; | |
| 196 | 220 | } |
| 197 | 221 | echo "<pre>"; |
| 198 | 222 | //var_dump($linhasql);exit; | ... | ... |
admin/php/metaestat_uploadshp_submit.php
| ... | ... | @@ -115,7 +115,7 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ |
| 115 | 115 | ob_flush(); |
| 116 | 116 | flush(); |
| 117 | 117 | sleep(1); |
| 118 | - | |
| 118 | + | |
| 119 | 119 | try { |
| 120 | 120 | $dbh = new PDO('pgsql:dbname='.$conexao["bancodedados"].';user='.$conexao["usuario"].';password='.$conexao["senha"].';host='.$conexao["host"].';port='.$conexao["porta"]); |
| 121 | 121 | } catch (PDOException $e) { |
| ... | ... | @@ -204,14 +204,16 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ |
| 204 | 204 | } |
| 205 | 205 | else{ |
| 206 | 206 | $valor = $s->getValue($layer,$coluna); |
| 207 | - if(empty($valor) && $valor != 0){ | |
| 208 | - $valor = 'null'; | |
| 207 | + if($valor = "" || (empty($valor) && $valor != 0){ | |
| 208 | + $valor = 'nulo'; | |
| 209 | 209 | } |
| 210 | 210 | $vs[] = $valor; |
| 211 | 211 | } |
| 212 | 212 | } |
| 213 | 213 | $vs[] = "st_geomfromtext('".$s->toWkt()."','".$_POST["srid"]."')"; |
| 214 | - $linhas[] = $insert."VALUES(".implode(",",$vs).")"; | |
| 214 | + $str = implode(",",$vs); | |
| 215 | + $str = str_replace("nulo",'null',$str); | |
| 216 | + $linhas[] = $insert."VALUES(".$str.")"; | |
| 215 | 217 | } |
| 216 | 218 | //echo "<pre>".var_dump($linhas);exit; |
| 217 | 219 | $layer->close(); | ... | ... |
ferramentas/metaestat/analise.php
| ... | ... | @@ -677,12 +677,12 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula |
| 677 | 677 | //pega valores do primeiro layer para a tabela0 |
| 678 | 678 | if($conta == 0){ |
| 679 | 679 | $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO"); |
| 680 | - $gid = $medidavariavel["colunaidunico"]; | |
| 681 | 680 | } |
| 682 | 681 | $conta++; |
| 683 | 682 | } |
| 684 | 683 | //coluna com a geometria |
| 685 | 684 | $regiao = $m->listaTipoRegiao($codigo_tipo_regiao); |
| 685 | + $gid = $regiao["identificador"]; | |
| 686 | 686 | $n = count($sqls); |
| 687 | 687 | |
| 688 | 688 | $cwhere = array(); |
| ... | ... | @@ -691,7 +691,7 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula |
| 691 | 691 | } |
| 692 | 692 | $colunasDados = array(); |
| 693 | 693 | $itens = array($gid,"regiao"); |
| 694 | - $itensdesc = array("gid","Regiao"); | |
| 694 | + $itensdesc = array("id","Regiao"); | |
| 695 | 695 | $tabelaColuna = array(); |
| 696 | 696 | for($i=0;$i<$n;$i++){ |
| 697 | 697 | $colunasDados[] = "tabela".$i.".".$colunasValor[$i]." as valortema".$i; |
| ... | ... | @@ -735,11 +735,11 @@ function juntaMedidasVariaveis($map_file,$layerNames,$nome,$colunascalc,$formula |
| 735 | 735 | $nlayer->setmetadata("tema",$nome); |
| 736 | 736 | $nlayer->setmetadata("METAESTAT_DERIVADO","sim"); |
| 737 | 737 | $nlayer->setmetadata("METAESTAT_ID_MEDIDA_VARIAVEL",""); |
| 738 | - $nlayer->setmetadata("TIP",""); | |
| 739 | - $nlayer->setmetadata("arquivotemaoriginal",""); | |
| 740 | - $nlayer->setmetadata("nomeoriginal",""); | |
| 741 | - $nlayer->setmetadata("ITENS",implode(",",$itens)); | |
| 742 | - $nlayer->setmetadata("ITENSDESC",implode(",",$itensdesc)); | |
| 738 | + $nlayer->setmetadata("TIP",""); | |
| 739 | + $nlayer->setmetadata("arquivotemaoriginal",""); | |
| 740 | + $nlayer->setmetadata("nomeoriginal",""); | |
| 741 | + $nlayer->setmetadata("ITENS",implode(",",$itens)); | |
| 742 | + $nlayer->setmetadata("ITENSDESC",implode(",",$itensdesc)); | |
| 743 | 743 | $nclass = $nlayer->numclasses; |
| 744 | 744 | for($i=1;$i<$nclass;$i++){ |
| 745 | 745 | $nlayer->getclass($i)->set("status",MS_DELETE); | ... | ... |
ferramentas/metaestat/index.js
| ... | ... | @@ -1620,11 +1620,15 @@ i3GEOF.metaestat = { |
| 1620 | 1620 | //insere uma opcao para ativar as opcoes adicionais que sao usadas quando o usuario quer |
| 1621 | 1621 | //usar dados ja existentes em um banco de dados |
| 1622 | 1622 | var temp,botoesdiv = $i("okcancel_checkbox"), |
| 1623 | - btn = document.createElement("div"); | |
| 1624 | - btn.innerHTML = "<br><input type=checkbox style='position:relative;top:3px;cursor:pointer;' onclick='javascript:$i(\"editorMedidaDefault\").style.display = \"block\";'/> Quero usar uma tabela já existente ou alterar os parâmetros adicionais"; | |
| 1623 | + btn = document.createElement("div"), | |
| 1624 | + oclick = '$i(\"editorMedidaDefault\").style.display = \"block\";$i(\"Eesquemadb\").style.display = \"block\";$i(\"Etabela\").style.display = \"block\";'; | |
| 1625 | + btn.innerHTML = "<br><input type=checkbox style='position:relative;top:3px;cursor:pointer;' onclick='javascript:"+oclick+"'/> Quero usar uma tabela já existente ou alterar os parâmetros adicionais"; | |
| 1625 | 1626 | botoesdiv.appendChild(btn); |
| 1626 | 1627 | |
| 1627 | 1628 | $i("editorMedidaDefault").style.display = "none"; |
| 1629 | + $i("Eesquemadb").style.display = "none"; | |
| 1630 | + $i("Etabela").style.display = "none"; | |
| 1631 | + | |
| 1628 | 1632 | //passa o codigo da variavel |
| 1629 | 1633 | $i("Ecodigo_variavel").value = $i("i3geoCartoComboVariavelEditor").value; |
| 1630 | 1634 | //define os valores que sao padrao | ... | ... |