Commit ca5cf2f6cf18c4db98bb38b771614c45a9b65f8c

Authored by Edmar Moretti
1 parent fba462a8

V6 - inclusão de opção no formulário de upload de shapefile para criar automatic…

…amente o mapfile de visualização. O mapfile é criado e registrado no editor de mapfiles
admin/admin.db
No preview for this file type
admin/php/editormapfile.php
@@ -23,7 +23,7 @@ Este programa é distribuído na expectativa de que seja útil @@ -23,7 +23,7 @@ Este programa é distribuído na expectativa de que seja útil
23 porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita 23 porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
24 de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. 24 de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA.
25 Consulte a Licença Pública Geral do GNU para mais detalhes. 25 Consulte a Licença Pública Geral do GNU para mais detalhes.
26 -Você deve ter recebido uma cópia da Licença Pública Geral do 26 +Você deve ter recebido uma copia da Licença Pública Geral do
27 GNU junto com este programa; se não, escreva para a 27 GNU junto com este programa; se não, escreva para a
28 Free Software Foundation, Inc., no endereço 28 Free Software Foundation, Inc., no endereço
29 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. 29 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
@@ -36,7 +36,7 @@ Parametros: @@ -36,7 +36,7 @@ Parametros:
36 36
37 O parâmetro principal é "funcao", que define qual operação será executada, por exemplo, editormapfile.php?funcao=pegaMapfiles 37 O parâmetro principal é "funcao", que define qual operação será executada, por exemplo, editormapfile.php?funcao=pegaMapfiles
38 38
39 -Cada operação possuí seus próprios parâmetros, que devem ser enviados também na requisição da operação. 39 +Cada operação possuí seus proprios parâmetros, que devem ser enviados também na requisição da operação.
40 40
41 */ 41 */
42 include_once(dirname(__FILE__)."/login.php"); 42 include_once(dirname(__FILE__)."/login.php");
@@ -82,6 +82,13 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){ @@ -82,6 +82,13 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){
82 } 82 }
83 } 83 }
84 error_reporting(0); 84 error_reporting(0);
  85 +//define o parametro de output do resultado da funcao
  86 +//algumas funcoes podem ser inseridas com include em outros programas
  87 +//nesse caso, defina output como "retorno"
  88 +//caso contrario sera definido como json
  89 +if(empty($output)){
  90 + $output = "json";
  91 +}
85 //faz a busca da função que deve ser executada 92 //faz a busca da função que deve ser executada
86 switch (strtoupper($funcao)) 93 switch (strtoupper($funcao))
87 { 94 {
@@ -112,9 +119,14 @@ switch (strtoupper($funcao)) @@ -112,9 +119,14 @@ switch (strtoupper($funcao))
112 {JSON} 119 {JSON}
113 */ 120 */
114 case "CRIARNOVOMAP": 121 case "CRIARNOVOMAP":
115 - retornaJSON(criarNovoMap());  
116 - exit;  
117 - break; 122 + $resultado = criarNovoMap();
  123 + if($output == "retorno"){
  124 + return $resultado;
  125 + }else{
  126 + retornaJSON($resultado);
  127 + exit;
  128 + }
  129 + break;
118 130
119 case "DOWNLOADGVP": 131 case "DOWNLOADGVP":
120 if(file_exists($locaplic."/temas/".$codigoMap.".gvp")){ 132 if(file_exists($locaplic."/temas/".$codigoMap.".gvp")){
@@ -219,7 +231,7 @@ switch (strtoupper($funcao)) @@ -219,7 +231,7 @@ switch (strtoupper($funcao))
219 /* 231 /*
220 Valor: LIMPARCACHEMAPFILE 232 Valor: LIMPARCACHEMAPFILE
221 233
222 - Apaga o diretório contendo o cache de um tema (mapfile) 234 + Apaga o diret�rio contendo o cache de um tema (mapfile)
223 235
224 Parametros: 236 Parametros:
225 237
@@ -256,7 +268,7 @@ switch (strtoupper($funcao)) @@ -256,7 +268,7 @@ switch (strtoupper($funcao))
256 268
257 Exclui um mapfile. 269 Exclui um mapfile.
258 270
259 - Só é possível excluir se o mapfile não estiver vinculado a nenhum tema ou nó da árvore de temas 271 + S� é possível excluir se o mapfile não estiver vinculado a nenhum tema ou n� da árvore de temas
260 272
261 Parametros: 273 Parametros:
262 274
@@ -310,7 +322,7 @@ switch (strtoupper($funcao)) @@ -310,7 +322,7 @@ switch (strtoupper($funcao))
310 322
311 maporigem {string} - nome completo do arquivo mapfile que contem o layer que será utilizado para alterar o original 323 maporigem {string} - nome completo do arquivo mapfile que contem o layer que será utilizado para alterar o original
312 324
313 - nomelayer {string} - código do layer em mapfile que será utilizado para atualizar codigoMap 325 + nomelayer {string} - c�digo do layer em mapfile que será utilizado para atualizar codigoMap
314 326
315 Retorno: 327 Retorno:
316 328
@@ -344,7 +356,7 @@ switch (strtoupper($funcao)) @@ -344,7 +356,7 @@ switch (strtoupper($funcao))
344 356
345 Cria um novo layer em um mapfile 357 Cria um novo layer em um mapfile
346 358
347 - O novo layer receberá um nome aleatório, que pode ser modificado posteriormente. Por default, esse novo layer será do tipo linear 359 + O novo layer receberá um nome aleat�rio, que pode ser modificado posteriormente. Por default, esse novo layer será do tipo linear
348 360
349 Parametros: 361 Parametros:
350 362
@@ -1170,12 +1182,15 @@ function sobeDesce() @@ -1170,12 +1182,15 @@ function sobeDesce()
1170 removeCabecalho($mapfile); 1182 removeCabecalho($mapfile);
1171 return "ok"; 1183 return "ok";
1172 } 1184 }
  1185 +//essa funcao e usada tambem por i3geo/ferramentas/upload/upload.php
1173 function criarNovoMap() 1186 function criarNovoMap()
1174 { 1187 {
1175 - global $nome,$codigo,$locaplic,$it,$en,$es,$esquemaadmin,$metaestat; 1188 + global $nome,$codigo,$locaplic,$it,$en,$es,$esquemaadmin,$metaestat,$tipoLayer,$data;
1176 $arq = $locaplic."/temas/".$codigo.".map"; 1189 $arq = $locaplic."/temas/".$codigo.".map";
1177 - if(!file_exists($arq))  
1178 - { 1190 + if(!file_exists($arq)){
  1191 + if(empty($tipoLayer)){
  1192 + $tipoLayer = "line";
  1193 + }
1179 $dados[] = "MAP"; 1194 $dados[] = "MAP";
1180 $dados[] = "SYMBOLSET ../symbols/simbolosv6.sym"; 1195 $dados[] = "SYMBOLSET ../symbols/simbolosv6.sym";
1181 $dados[] = 'FONTSET "../symbols/fontes.txt"'; 1196 $dados[] = 'FONTSET "../symbols/fontes.txt"';
@@ -1184,12 +1199,15 @@ function criarNovoMap() @@ -1184,12 +1199,15 @@ function criarNovoMap()
1184 $dados[] = ' TEMPLATE "none.htm"'; 1199 $dados[] = ' TEMPLATE "none.htm"';
1185 if(!empty($metaestat) && $metaestat == "SIM"){ 1200 if(!empty($metaestat) && $metaestat == "SIM"){
1186 $dados[] = ' CONNECTIONTYPE POSTGIS'; 1201 $dados[] = ' CONNECTIONTYPE POSTGIS';
1187 - $dados[] = " TYPE polygon"; 1202 + $tipoLayer = "polygon";
  1203 + }
  1204 + $dados[] = " TYPE ".$tipoLayer;
  1205 + if(empty($data)){
  1206 + $dados[] = ' DATA ""';
1188 } 1207 }
1189 else{ 1208 else{
1190 - $dados[] = " TYPE line"; 1209 + $dados[] = ' DATA "'.$data.'"';
1191 } 1210 }
1192 - $dados[] = ' DATA ""';  
1193 $dados[] = ' METADATA'; 1211 $dados[] = ' METADATA';
1194 $dados[] = ' TEMA "'.$nome.'"'; 1212 $dados[] = ' TEMA "'.$nome.'"';
1195 $dados[] = ' CLASSE "SIM"'; 1213 $dados[] = ' CLASSE "SIM"';
@@ -1207,6 +1225,9 @@ function criarNovoMap() @@ -1207,6 +1225,9 @@ function criarNovoMap()
1207 $dados[] = ' STYLE'; 1225 $dados[] = ' STYLE';
1208 $dados[] = ' COLOR 0 0 0'; 1226 $dados[] = ' COLOR 0 0 0';
1209 $dados[] = ' SIZE 12'; 1227 $dados[] = ' SIZE 12';
  1228 + if($tipoLayer == "point"){
  1229 + $dados[] = " SYMBOL 'ponto'";
  1230 + }
1210 $dados[] = ' END'; 1231 $dados[] = ' END';
1211 $dados[] = ' END'; 1232 $dados[] = ' END';
1212 $dados[] = "END"; 1233 $dados[] = "END";
@@ -181,7 +181,7 @@ select option:hover { @@ -181,7 +181,7 @@ select option:hover {
181 .aplicar 181 .aplicar
182 {visibility:visible;color: #2F4632;background:rgb(240,240,240);text-align: center;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 12px;border-style:outset;border-width:2px;border-color:#cc0000;cursor:pointer;z-index:1000;} 182 {visibility:visible;color: #2F4632;background:rgb(240,240,240);text-align: center;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 12px;border-style:outset;border-width:2px;border-color:#cc0000;cursor:pointer;z-index:1000;}
183 .digitar 183 .digitar
184 -{box-shadow:1px 1px 3px 0px lightgray;margin:0px;color:#426252;background-color:white;border:1px solid rgb(250,250,250); font-size: 10px;font-family: Verdana, Arial, Helvetica, sans-serif;} 184 +{box-shadow:1px 1px 3px 0px lightgray;margin:0px;color:#426252;background-color:white;border:1px solid rgb(180,180,180); height:17px; font-size: 12px;font-family: Verdana, Arial, Helvetica, sans-serif;}
185 .digitarOver 185 .digitarOver
186 { 186 {
187 margin:0px;color:#426252;background-color:#F6F6F6;border:1px solid rgb(250,250,250);font-size: 10px;font-family: Verdana, Arial, Helvetica, sans-serif; 187 margin:0px;color:#426252;background-color:#F6F6F6;border:1px solid rgb(250,250,250);font-size: 10px;font-family: Verdana, Arial, Helvetica, sans-serif;
css/i3geo6.css
@@ -176,7 +176,7 @@ font-size: 13px; @@ -176,7 +176,7 @@ font-size: 13px;
176 .aplicar 176 .aplicar
177 {visibility:visible;color: #2F4632;background:rgb(240,240,240);text-align: center;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 12px;border-style:outset;border-width:2px;border-color:#cc0000;cursor:pointer;z-index:1000;} 177 {visibility:visible;color: #2F4632;background:rgb(240,240,240);text-align: center;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 12px;border-style:outset;border-width:2px;border-color:#cc0000;cursor:pointer;z-index:1000;}
178 .digitar 178 .digitar
179 -{box-shadow:1px 1px 3px 0px lightgray;margin:0px;color:#426252;background-color:white;border:1px solid rgb(250,250,250); font-size: 10px;font-family: Verdana, Arial, Helvetica, sans-serif;} 179 +{box-shadow:1px 1px 3px 0px lightgray;margin:0px;color:#426252;background-color:white;border:1px solid rgb(180,180,180); height:17px; font-size: 12px;font-family: Verdana, Arial, Helvetica, sans-serif;}
180 .digitarOver 180 .digitarOver
181 { 181 {
182 margin:0px;color:#426252;background-color:#F6F6F6;border:1px solid rgb(250,250,250);font-size: 10px;font-family: Verdana, Arial, Helvetica, sans-serif; 182 margin:0px;color:#426252;background-color:#F6F6F6;border:1px solid rgb(250,250,250);font-size: 10px;font-family: Verdana, Arial, Helvetica, sans-serif;
css/i3geo6.css.php
@@ -176,7 +176,7 @@ font-size: 13px; @@ -176,7 +176,7 @@ font-size: 13px;
176 .aplicar 176 .aplicar
177 {visibility:visible;color: #2F4632;background:rgb(240,240,240);text-align: center;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 12px;border-style:outset;border-width:2px;border-color:#cc0000;cursor:pointer;z-index:1000;} 177 {visibility:visible;color: #2F4632;background:rgb(240,240,240);text-align: center;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 12px;border-style:outset;border-width:2px;border-color:#cc0000;cursor:pointer;z-index:1000;}
178 .digitar 178 .digitar
179 -{box-shadow:1px 1px 3px 0px lightgray;margin:0px;color:#426252;background-color:white;border:1px solid rgb(250,250,250); font-size: 10px;font-family: Verdana, Arial, Helvetica, sans-serif;} 179 +{box-shadow:1px 1px 3px 0px lightgray;margin:0px;color:#426252;background-color:white;border:1px solid rgb(180,180,180); height:17px; font-size: 12px;font-family: Verdana, Arial, Helvetica, sans-serif;}
180 .digitarOver 180 .digitarOver
181 { 181 {
182 margin:0px;color:#426252;background-color:#F6F6F6;border:1px solid rgb(250,250,250);font-size: 10px;font-family: Verdana, Arial, Helvetica, sans-serif; 182 margin:0px;color:#426252;background-color:#F6F6F6;border:1px solid rgb(250,250,250);font-size: 10px;font-family: Verdana, Arial, Helvetica, sans-serif;
ferramentas/upload/dicionario.js
1 //+$trad(1,i3GEOF.upload.dicionario)+ 1 //+$trad(1,i3GEOF.upload.dicionario)+
2 i3GEOF.upload.dicionario = { 2 i3GEOF.upload.dicionario = {
3 1: [{ 3 1: [{
4 - pt:"pasta no servidor onde os dados<br>ser&atilde;o armazenados (obrigat&oacute;rio)", 4 + pt:"Pasta no servidor onde os dados ser&atilde;o armazenados (obrigat&oacute;rio se voc&ecirc; estiver utilizando o formul&aacute;rio dentro do sistema de administra&ccedil;&atilde;o)",
5 en:"", 5 en:"",
6 es:"", 6 es:"",
7 it:"" 7 it:""
@@ -55,7 +55,7 @@ i3GEOF.upload.dicionario = { @@ -55,7 +55,7 @@ i3GEOF.upload.dicionario = {
55 it:"" 55 it:""
56 }], 56 }],
57 10: [{ 57 10: [{
58 - pt:"", 58 + pt:"Marque para criar o arquivo de configura&ccedil;&atilde;o (mapfile) e visualizar os dados no mapa interativo (voc&ecirc; poder&aacute; editar esse arquivo posteriormente no editor de mapfiles)",
59 en:"", 59 en:"",
60 es:"", 60 es:"",
61 it:"" 61 it:""
ferramentas/upload/index.js
@@ -108,8 +108,10 @@ i3GEOF.upload = { @@ -108,8 +108,10 @@ i3GEOF.upload = {
108 '<p class="paragrafo" >shx: <br><input type="file" size=22 name="i3GEOuploadshx" style="top:0px;left:0px;cursor:pointer;"></p>' + 108 '<p class="paragrafo" >shx: <br><input type="file" size=22 name="i3GEOuploadshx" style="top:0px;left:0px;cursor:pointer;"></p>' +
109 '<p class="paragrafo" >dbf: <br><input type="file" size=22 name="i3GEOuploaddbf" style="top:0px;left:0px;cursor:pointer;"></p>'; 109 '<p class="paragrafo" >dbf: <br><input type="file" size=22 name="i3GEOuploaddbf" style="top:0px;left:0px;cursor:pointer;"></p>';
110 if(i3GEO.parametros.editor === "sim"){ 110 if(i3GEO.parametros.editor === "sim"){
111 - ins += '<p class="paragrafo" >'+$trad(1,i3GEOF.upload.dicionario)+':<br><input class=digitar type="text" size=45 name="dirDestino" id="dirDestino" style="top:0px;left:0px;cursor:pointer;">';  
112 - ins += "&nbsp;<img onclick='i3GEO.util.navegadorDir(\"dirDestino\",false,false,false,true);' src='"+i3GEO.configura.locaplic+"/imagens/ic_zoom.png' style='cursor:pointer;position :relative;top:2px'/></p>"; 111 + ins += '<p class="paragrafo" >'+$trad(1,i3GEOF.upload.dicionario)+':<br>' +
  112 + '<input class=digitar type="text" size=45 name="dirDestino" id="dirDestino" style="top:0px;left:0px;cursor:pointer;">' +
  113 + "&nbsp;<img onclick='i3GEO.util.navegadorDir(\"dirDestino\",false,false,false,true);' src='"+i3GEO.configura.locaplic+"/imagens/ic_zoom.png' style='cursor:pointer;position :relative;top:2px'/></p>" +
  114 + '<p class="paragrafo" ><input type=checkbox name=i3GEOuploadCriaMapfile id=i3GEOuploadCriaMapfile />&nbsp;'+$trad(10,i3GEOF.upload.dicionario);
113 } 115 }
114 ins += '<p class="paragrafo" >'+$trad(2,i3GEOF.upload.dicionario)+': ' + 116 ins += '<p class="paragrafo" >'+$trad(2,i3GEOF.upload.dicionario)+': ' +
115 ' <select id=tipo name=tipo >' + 117 ' <select id=tipo name=tipo >' +
ferramentas/upload/upload.php
@@ -20,6 +20,7 @@ if (ob_get_level() == 0) ob_start(); @@ -20,6 +20,7 @@ if (ob_get_level() == 0) ob_start();
20 <head> 20 <head>
21 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> 21 <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1">
22 <link rel="stylesheet" type="text/css" href="../../css/geral.css" /> 22 <link rel="stylesheet" type="text/css" href="../../css/geral.css" />
  23 +<script src="../../classesjs/classe_util.js"></script>
23 <title></title> 24 <title></title>
24 </head> 25 </head>
25 <body bgcolor="white" style="background-color:white;text-align:left;"> 26 <body bgcolor="white" style="background-color:white;text-align:left;">
@@ -75,6 +76,7 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;])) @@ -75,6 +76,7 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;]))
75 76
76 echo "<p class='paragrafo' >Arquivo enviado.</p>"; 77 echo "<p class='paragrafo' >Arquivo enviado.</p>";
77 echo "<p class='paragrafo'>Nome: ".$dirmap."/".$nomePrefixo.".shp </p>"; 78 echo "<p class='paragrafo'>Nome: ".$dirmap."/".$nomePrefixo.".shp </p>";
  79 + //nesse caso o formulario de upload esta sendo executado de dentro de um mapa interativo, por isso o mapfile ja existe
78 if(isset($map_file)){ 80 if(isset($map_file)){
79 echo "<p class='paragrafo' >Adicionando tema...</p>"; 81 echo "<p class='paragrafo' >Adicionando tema...</p>";
80 ob_flush(); 82 ob_flush();
@@ -126,6 +128,36 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;])) @@ -126,6 +128,36 @@ if (isset($_FILES[&#39;i3GEOuploadshp&#39;][&#39;name&#39;]))
126 echo "<b><p class='paragrafo' >Tema criado!!! Redesenhando o mapa."; 128 echo "<b><p class='paragrafo' >Tema criado!!! Redesenhando o mapa.";
127 echo "<script>window.scrollTo(0,10000);window.parent.i3GEO.atualiza()</script>"; 129 echo "<script>window.scrollTo(0,10000);window.parent.i3GEO.atualiza()</script>";
128 } 130 }
  131 + elseif($i3GEOuploadCriaMapfile == "on"){
  132 + //verifica se o usuario marcou a opcao de cria mapfile
  133 + //nesse caso o aplicativo de upload esta sendo executado de dentro do sistema de administracao, e o mapfile devera
  134 + //ser criado e registrado no sistema
  135 + $nome = $nomePrefixo;
  136 + $codigo = $nomePrefixo;
  137 + $it = $nomePrefixo;
  138 + $en = $nomePrefixo;
  139 + $es = $nomePrefixo;
  140 + $sfileObj = ms_newShapefileObj($dirmap."/".$nomePrefixo.".shp", -1);
  141 + if(!isset($tipo) || $tipo == ""){
  142 + $tipo = $sfileObj->type;
  143 + }
  144 + if ($tipo == 1){
  145 + $tipoLayer = "point";
  146 + }
  147 + if ($tipo == 3){
  148 + $tipoLayer = "line";
  149 + }
  150 + if ($tipo == 5){
  151 + $tipoLayer = "polygon";
  152 + }
  153 + $funcao = "CRIARNOVOMAP";
  154 + $output = "retorno";
  155 + $data = $dirmap."/".$nomePrefixo.".shp";
  156 + include_once($locaplic."/admin/php/editormapfile.php");
  157 + echo "<b><p class='paragrafo' >Criado!!!<br>";
  158 + echo "Para editar clique: <a href='../../admin/html/editormapfile.html' target=_blank >".$nomePrefixo."</a>";
  159 + echo "<script>window.scrollTo(0,10000);i3GEO.util.insereCookie('I3GEOletraAdmin','".$nomePrefixo."');</script>";
  160 + }
129 } 161 }
130 else 162 else
131 { 163 {