Commit 418b50503c952e1e02ffd0840f025d1afc367df0
1 parent
cdf1f287
Exists in
master
and in
7 other branches
v6 - inclusão de opção para gerar um arquivo de configuração mapfile automaticam…
…ente quando um shapefile é enviado para o banco de dados postgis
Showing
5 changed files
with
55 additions
and
13 deletions
Show diff stats
admin/admin.db
No preview for this file type
admin/js/estat_editor.js
@@ -521,6 +521,7 @@ i3GEOadmin.editor = { | @@ -521,6 +521,7 @@ i3GEOadmin.editor = { | ||
521 | ); | 521 | ); |
522 | i3GEO.util.comboEpsg("comboInSrid","selInSrid","i3GEOadmin.editor.uploadshp.mudaComboInSrid",4326); | 522 | i3GEO.util.comboEpsg("comboInSrid","selInSrid","i3GEOadmin.editor.uploadshp.mudaComboInSrid",4326); |
523 | i3GEO.util.comboEpsg("comboOutSrid","selOutSrid","i3GEOadmin.editor.uploadshp.mudaComboOutSrid",4326); | 523 | i3GEO.util.comboEpsg("comboOutSrid","selOutSrid","i3GEOadmin.editor.uploadshp.mudaComboOutSrid",4326); |
524 | + window.location.hash="i3GEOuploadshp"; | ||
524 | }, | 525 | }, |
525 | mudaComboInSrid: function(obj){ | 526 | mudaComboInSrid: function(obj){ |
526 | $i("insrid").value = obj.value; | 527 | $i("insrid").value = obj.value; |
@@ -529,14 +530,16 @@ i3GEOadmin.editor = { | @@ -529,14 +530,16 @@ i3GEOadmin.editor = { | ||
529 | $i("outsrid").value = obj.value; | 530 | $i("outsrid").value = obj.value; |
530 | }, | 531 | }, |
531 | formulario: function(){ | 532 | formulario: function(){ |
532 | - var ins = '<fieldset class=subbloco >' + | 533 | + var ins = '' + |
533 | '<form id=i3GEOuploadf target="i3GEOuploadiframe" action="../php/metaestat_uploadshp_submit.php" method="post" ENCTYPE="multipart/form-data">' + | 534 | '<form id=i3GEOuploadf target="i3GEOuploadiframe" action="../php/metaestat_uploadshp_submit.php" method="post" ENCTYPE="multipart/form-data">' + |
535 | + '<fieldset class=subbloco >' + | ||
534 | '<p class="paragrafo" >shp: <br><input type="file" size=22 name="i3GEOuploadshp" style="top:0px;left:0px;cursor:pointer;"></p>' + | 536 | '<p class="paragrafo" >shp: <br><input type="file" size=22 name="i3GEOuploadshp" style="top:0px;left:0px;cursor:pointer;"></p>' + |
535 | '<p class="paragrafo" >shx: <br><input type="file" size=22 name="i3GEOuploadshx" style="top:0px;left:0px;cursor:pointer;"></p>' + | 537 | '<p class="paragrafo" >shx: <br><input type="file" size=22 name="i3GEOuploadshx" style="top:0px;left:0px;cursor:pointer;"></p>' + |
536 | '<p class="paragrafo" >dbf: <br><input type="file" size=22 name="i3GEOuploaddbf" style="top:0px;left:0px;cursor:pointer;"></p>' + | 538 | '<p class="paragrafo" >dbf: <br><input type="file" size=22 name="i3GEOuploaddbf" style="top:0px;left:0px;cursor:pointer;"></p>' + |
537 | '</fieldset>' + | 539 | '</fieldset>' + |
538 | '<fieldset class=subbloco >' + | 540 | '<fieldset class=subbloco >' + |
539 | - '<p class="paragrafo" >Nome da 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="tabelaDestino" name="tabelaDestino" style="top:0px;left:0px;cursor:pointer;"> ' + | 541 | + '<p class="paragrafo" >Nome da tabela (não utilize caracteres incompatíveis com o banco de dados, como -, acentos ou espaços em branco):<br>' + |
542 | + '<input class=digitar type="text" size=20 id="tabelaDestino" name="tabelaDestino" style="top:0px;left:0px;cursor:pointer;"> ' + | ||
540 | 'Ou escolha da lista: ' + | 543 | 'Ou escolha da lista: ' + |
541 | '<select onchange="javascript:$i(\'tabelaDestino\').value = this.value;">' + | 544 | '<select onchange="javascript:$i(\'tabelaDestino\').value = this.value;">' + |
542 | i3GEOadmin.editor.tabela.optionsTabela + | 545 | i3GEOadmin.editor.tabela.optionsTabela + |
@@ -558,17 +561,18 @@ i3GEOadmin.editor = { | @@ -558,17 +561,18 @@ i3GEOadmin.editor = { | ||
558 | '<p><div id=selOutSrid ></div><input class=digitar type="text" value="" size=20 id="outsrid" name="outsrid" style="top:0px;left:0px;cursor:pointer;"></p>' + | 561 | '<p><div id=selOutSrid ></div><input class=digitar type="text" value="" size=20 id="outsrid" name="outsrid" style="top:0px;left:0px;cursor:pointer;"></p>' + |
559 | '</fieldset>' + | 562 | '</fieldset>' + |
560 | '<fieldset class=subbloco >' + | 563 | '<fieldset class=subbloco >' + |
564 | + '<p class="paragrafo" ><input type=checkbox name=i3GEOuploadCriaMapfile id=i3GEOuploadCriaMapfile style="cursor:pointer;position:relative;top:2px;" /> Marque para criar o arquivo de configuração (mapfile) e visualizar os dados no mapa interativo (você poderá editar esse arquivo posteriormente no editor de mapfiles)' + | ||
561 | '<p class="paragrafo" ><input type="checkbox" id="incluiserialshp" name="incluiserialshp" style="cursor:pointer;position:relative;top:2px;"> Inclui uma coluna gid do tipo serial e chave primária com código único</p>' + | 565 | '<p class="paragrafo" ><input type="checkbox" id="incluiserialshp" name="incluiserialshp" style="cursor:pointer;position:relative;top:2px;"> Inclui uma coluna gid do tipo serial e chave primária com código único</p>' + |
562 | '<p class="paragrafo" ><input id=i3GEOuploadsubmit type="button" value="Enviar" size=12 />' + | 566 | '<p class="paragrafo" ><input id=i3GEOuploadsubmit type="button" value="Enviar" size=12 />' + |
563 | '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">' + | 567 | '<input type="hidden" name="MAX_FILE_SIZE" value="1000000">' + |
564 | '<input type="hidden" id="i3GEOuploadcodigoconexao" name="i3GEOuploadcodigoconexao" value="">' + | 568 | '<input type="hidden" id="i3GEOuploadcodigoconexao" name="i3GEOuploadcodigoconexao" value="">' + |
565 | '<input type="hidden" id="i3GEOuploadesquema" name="i3GEOuploadesquema" value="">' + | 569 | '<input type="hidden" id="i3GEOuploadesquema" name="i3GEOuploadesquema" value="">' + |
566 | - '</form>' + | ||
567 | "<p class='paragrafo' style=color:red >Não utilize '_' no nome do arquivo. Apenas letras e números são aceitos!!!</p>" + | 570 | "<p class='paragrafo' style=color:red >Não utilize '_' no nome do arquivo. Apenas letras e números são aceitos!!!</p>" + |
568 | '<iframe name=i3GEOuploadiframe style="text-align:left;border:1px solid gray;" width="98%" height="400px"></iframe>' + | 571 | '<iframe name=i3GEOuploadiframe style="text-align:left;border:1px solid gray;" width="98%" height="400px"></iframe>' + |
569 | '<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>' + | 572 | '<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>' + |
570 | '<p class="paragrafo" >Utilize o <a href="./estat_tipo_regiao.html" >cadastro de regiões</a> para registrar a tabela criada como uma nova unidade geográfica que poderá ser escolhida no processo de criação de variáveis.</p>' + | 573 | '<p class="paragrafo" >Utilize o <a href="./estat_tipo_regiao.html" >cadastro de regiões</a> para registrar a tabela criada como uma nova unidade geográfica que poderá ser escolhida no processo de criação de variáveis.</p>' + |
571 | - '</fieldset>'; | 574 | + '</fieldset>' + |
575 | + '</form>'; | ||
572 | return ins; | 576 | return ins; |
573 | }, | 577 | }, |
574 | submit: function(){ | 578 | submit: function(){ |
admin/php/conexao.php
@@ -33,7 +33,7 @@ Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til | @@ -33,7 +33,7 @@ Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til | ||
33 | porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | 33 | porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita |
34 | de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | 34 | de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. |
35 | Consulte a Licença Pública Geral do GNU para mais detalhes. | 35 | Consulte a Licença Pública Geral do GNU para mais detalhes. |
36 | -Você deve ter recebido uma cópia da Licença Pública Geral do | 36 | +Você deve ter recebido uma c�pia da Licença Pública Geral do |
37 | GNU junto com este programa; se não, escreva para a | 37 | GNU junto com este programa; se não, escreva para a |
38 | Free Software Foundation, Inc., no endereço | 38 | Free Software Foundation, Inc., no endereço |
39 | 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. | 39 | 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. |
admin/php/editormapfile.php
@@ -231,7 +231,7 @@ switch (strtoupper($funcao)) | @@ -231,7 +231,7 @@ switch (strtoupper($funcao)) | ||
231 | /* | 231 | /* |
232 | Valor: LIMPARCACHEMAPFILE | 232 | Valor: LIMPARCACHEMAPFILE |
233 | 233 | ||
234 | - Apaga o diret�rio contendo o cache de um tema (mapfile) | 234 | + Apaga o diretorio contendo o cache de um tema (mapfile) |
235 | 235 | ||
236 | Parametros: | 236 | Parametros: |
237 | 237 | ||
@@ -268,7 +268,7 @@ switch (strtoupper($funcao)) | @@ -268,7 +268,7 @@ switch (strtoupper($funcao)) | ||
268 | 268 | ||
269 | Exclui um mapfile. | 269 | Exclui um mapfile. |
270 | 270 | ||
271 | - S� é possível excluir se o mapfile não estiver vinculado a nenhum tema ou n� da árvore de temas | 271 | + So é possível excluir se o mapfile não estiver vinculado a nenhum tema ou no da árvore de temas |
272 | 272 | ||
273 | Parametros: | 273 | Parametros: |
274 | 274 | ||
@@ -1183,9 +1183,8 @@ function sobeDesce() | @@ -1183,9 +1183,8 @@ function sobeDesce() | ||
1183 | return "ok"; | 1183 | return "ok"; |
1184 | } | 1184 | } |
1185 | //essa funcao e usada tambem por i3geo/ferramentas/upload/upload.php | 1185 | //essa funcao e usada tambem por i3geo/ferramentas/upload/upload.php |
1186 | -function criarNovoMap() | ||
1187 | -{ | ||
1188 | - global $nome,$codigo,$locaplic,$it,$en,$es,$esquemaadmin,$metaestat,$tipoLayer,$data; | 1186 | +function criarNovoMap(){ |
1187 | + global $nome,$codigo,$locaplic,$it,$en,$es,$esquemaadmin,$metaestat,$tipoLayer,$data,$conexao; | ||
1189 | $arq = $locaplic."/temas/".$codigo.".map"; | 1188 | $arq = $locaplic."/temas/".$codigo.".map"; |
1190 | if(!file_exists($arq)){ | 1189 | if(!file_exists($arq)){ |
1191 | if(empty($tipoLayer)){ | 1190 | if(empty($tipoLayer)){ |
@@ -1201,6 +1200,10 @@ function criarNovoMap() | @@ -1201,6 +1200,10 @@ function criarNovoMap() | ||
1201 | $dados[] = ' CONNECTIONTYPE POSTGIS'; | 1200 | $dados[] = ' CONNECTIONTYPE POSTGIS'; |
1202 | $tipoLayer = "polygon"; | 1201 | $tipoLayer = "polygon"; |
1203 | } | 1202 | } |
1203 | + elseif(!empty($conexao)){ | ||
1204 | + $dados[] = ' CONNECTIONTYPE POSTGIS'; | ||
1205 | + $dados[] = ' CONNECTION "'.$conexao.'"'; | ||
1206 | + } | ||
1204 | $dados[] = " TYPE ".$tipoLayer; | 1207 | $dados[] = " TYPE ".$tipoLayer; |
1205 | if(empty($data)){ | 1208 | if(empty($data)){ |
1206 | $dados[] = ' DATA ""'; | 1209 | $dados[] = ' DATA ""'; |
@@ -1237,7 +1240,8 @@ function criarNovoMap() | @@ -1237,7 +1240,8 @@ function criarNovoMap() | ||
1237 | { | 1240 | { |
1238 | fwrite($fp,$dado."\n"); | 1241 | fwrite($fp,$dado."\n"); |
1239 | } | 1242 | } |
1240 | - require_once("conexao.php"); | 1243 | + |
1244 | + include("conexao.php"); | ||
1241 | if($convUTF){ | 1245 | if($convUTF){ |
1242 | $nome = utf8_encode($nome); | 1246 | $nome = utf8_encode($nome); |
1243 | $desc = utf8_encode($desc); | 1247 | $desc = utf8_encode($desc); |
admin/php/metaestat_uploadshp_submit.php
@@ -76,7 +76,7 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ | @@ -76,7 +76,7 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ | ||
76 | $colunasTemp = $layer->getItems(); | 76 | $colunasTemp = $layer->getItems(); |
77 | $colunas = array(); | 77 | $colunas = array(); |
78 | foreach($colunasTemp as $c){ | 78 | foreach($colunasTemp as $c){ |
79 | - //abaixo gid e forçado a entrar | 79 | + //abaixo gid e forcado a entrar |
80 | if(!is_numeric($c) && strtolower($c) != "gid"){ | 80 | if(!is_numeric($c) && strtolower($c) != "gid"){ |
81 | $colunas[] = $c; | 81 | $colunas[] = $c; |
82 | } | 82 | } |
@@ -182,6 +182,7 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ | @@ -182,6 +182,7 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ | ||
182 | ob_flush(); | 182 | ob_flush(); |
183 | flush(); | 183 | flush(); |
184 | sleep(1); | 184 | sleep(1); |
185 | + $srid = 4326; | ||
185 | for ($i=0; $i<$numshapes;$i++){ | 186 | for ($i=0; $i<$numshapes;$i++){ |
186 | $s = $layer->getShape(new resultObj($i)); | 187 | $s = $layer->getShape(new resultObj($i)); |
187 | $vs = array(); | 188 | $vs = array(); |
@@ -212,9 +213,11 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ | @@ -212,9 +213,11 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ | ||
212 | } | 213 | } |
213 | if(($_POST["insrid"] == $_POST["outsrid"]) || $_POST["outsrid"] == ""){ | 214 | if(($_POST["insrid"] == $_POST["outsrid"]) || $_POST["outsrid"] == ""){ |
214 | $vs[] = "st_geomfromtext('".$s->toWkt()."','".$_POST["insrid"]."')"; | 215 | $vs[] = "st_geomfromtext('".$s->toWkt()."','".$_POST["insrid"]."')"; |
216 | + $srid = $_POST["insrid"]; | ||
215 | } | 217 | } |
216 | else{ | 218 | else{ |
217 | $vs[] = "st_transform(st_geomfromtext('".$s->toWkt()."','".$_POST["insrid"]."'),'".$_POST["outsrid"]."')"; | 219 | $vs[] = "st_transform(st_geomfromtext('".$s->toWkt()."','".$_POST["insrid"]."'),'".$_POST["outsrid"]."')"; |
220 | + $srid = $_POST["outsrid"]; | ||
218 | } | 221 | } |
219 | $str = implode(",",$vs); | 222 | $str = implode(",",$vs); |
220 | $str = str_replace("nulo",'null',$str); | 223 | $str = str_replace("nulo",'null',$str); |
@@ -228,7 +231,7 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ | @@ -228,7 +231,7 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ | ||
228 | ob_flush(); | 231 | ob_flush(); |
229 | flush(); | 232 | flush(); |
230 | sleep(1); | 233 | sleep(1); |
231 | - if($_POST["incluiserialshp"] == "on"){ | 234 | + if($_POST["incluiserialshp"] == "on" || $_POST["i3GEOuploadCriaMapfile"] == "on"){ |
232 | $linhas[] = "alter table ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." add gid serial CONSTRAINT ".$_POST["tabelaDestino"]."_gid_pkey PRIMARY KEY"; | 235 | $linhas[] = "alter table ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." add gid serial CONSTRAINT ".$_POST["tabelaDestino"]."_gid_pkey PRIMARY KEY"; |
233 | echo "<br>alter table ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." add gid serial CONSTRAINT ".$_POST["tabelaDestino"]."_gid_pkey PRIMARY KEY"; | 236 | echo "<br>alter table ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." add gid serial CONSTRAINT ".$_POST["tabelaDestino"]."_gid_pkey PRIMARY KEY"; |
234 | } | 237 | } |
@@ -257,6 +260,37 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ | @@ -257,6 +260,37 @@ if (isset($_FILES['i3GEOuploadshp']['name'])){ | ||
257 | echo "<br>Registros na tabela final: ". count($r); | 260 | echo "<br>Registros na tabela final: ". count($r); |
258 | echo "<br>Diferenças podem ocorrer em função de caracteres acentuados não suportados pelo banco de dados"; | 261 | echo "<br>Diferenças podem ocorrer em função de caracteres acentuados não suportados pelo banco de dados"; |
259 | echo "<br><b>Feito!!!<br>Faça o reload da página"; | 262 | echo "<br><b>Feito!!!<br>Faça o reload da página"; |
263 | + if($_POST["i3GEOuploadCriaMapfile"] == "on"){ | ||
264 | + //verifica se o usuario marcou a opcao de cria mapfile | ||
265 | + //nesse caso o aplicativo de upload esta sendo executado de dentro do sistema de administracao, e o mapfile devera | ||
266 | + //ser criado e registrado no sistema | ||
267 | + $nome = $_POST["tabelaDestino"]; | ||
268 | + $codigo = $_POST["tabelaDestino"]; | ||
269 | + $it = $_POST["tabelaDestino"]; | ||
270 | + $en = $_POST["tabelaDestino"]; | ||
271 | + $es = $_POST["tabelaDestino"]; | ||
272 | + //descobre o tipo de geometria | ||
273 | + $tipo = "select ST_Dimension(the_geom) as d from ".$_POST["i3GEOuploadesquema"].".".$_POST["tabelaDestino"]." limit 1"; | ||
274 | + $q = $dbh->query($tipo,PDO::FETCH_ASSOC); | ||
275 | + $tipo = $q->fetchAll(); | ||
276 | + $tipo = $tipo[0]["d"]; | ||
277 | + $tipoLayer = "polygon"; | ||
278 | + if ($tipo == 0){ | ||
279 | + $tipoLayer = "point"; | ||
280 | + } | ||
281 | + if ($tipo == 1){ | ||
282 | + $tipoLayer = "line"; | ||
283 | + } | ||
284 | + $funcao = "CRIARNOVOMAP"; | ||
285 | + $output = "retorno"; | ||
286 | + $data = "the_geom from ($sql) as foo using unique gid using srid=$srid "; | ||
287 | + $conexao = 'dbname='.$conexao["bancodedados"].' user='.$conexao["usuario"].' password='.$conexao["senha"].' host='.$conexao["host"].' port='.$conexao["porta"]; | ||
288 | + include_once("editormapfile.php"); | ||
289 | + echo "<b><p class='paragrafo' >Criado o mapfile!!!<br>"; | ||
290 | + echo "Para editar clique: <a href='../../admin/html/editormapfile.html' target=_blank >".$nome."</a>"; | ||
291 | + echo "<script>window.scrollTo(0,10000);i3GEO.util.insereCookie('I3GEOletraAdmin','".$nome."');</script>"; | ||
292 | + } | ||
293 | + echo "<br><br>Fim"; | ||
260 | } | 294 | } |
261 | else{ | 295 | else{ |
262 | echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>"; | 296 | echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>"; |