Commit 58553f92e2631772e4bcd358e80d8ade71f92e63
1 parent
4eb2a136
Exists in
master
V5 - 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
Showing
4 changed files
with
135 additions
and
82 deletions
Show diff stats
admin/php/editormapfile.php
... | ... | @@ -23,7 +23,7 @@ Este programa é distribuído na expectativa de que seja útil |
23 | 23 | porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita |
24 | 24 | de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. |
25 | 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 | 27 | GNU junto com este programa; se não, escreva para a |
28 | 28 | Free Software Foundation, Inc., no endereço |
29 | 29 | 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. |
... | ... | @@ -36,7 +36,7 @@ Parametros: |
36 | 36 | |
37 | 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 | 42 | include_once(dirname(__FILE__)."/login.php"); |
... | ... | @@ -82,6 +82,13 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){ |
82 | 82 | } |
83 | 83 | } |
84 | 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 | 92 | //faz a busca da função que deve ser executada |
86 | 93 | switch (strtoupper($funcao)) |
87 | 94 | { |
... | ... | @@ -112,8 +119,13 @@ switch (strtoupper($funcao)) |
112 | 119 | {JSON} |
113 | 120 | */ |
114 | 121 | case "CRIARNOVOMAP": |
115 | - retornaJSON(criarNovoMap()); | |
116 | - exit; | |
122 | + $resultado = criarNovoMap(); | |
123 | + if($output == "retorno"){ | |
124 | + return $resultado; | |
125 | + }else{ | |
126 | + retornaJSON($resultado); | |
127 | + exit; | |
128 | + } | |
117 | 129 | break; |
118 | 130 | |
119 | 131 | case "DOWNLOADGVP": |
... | ... | @@ -219,7 +231,7 @@ switch (strtoupper($funcao)) |
219 | 231 | /* |
220 | 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 | 236 | Parametros: |
225 | 237 | |
... | ... | @@ -256,7 +268,7 @@ switch (strtoupper($funcao)) |
256 | 268 | |
257 | 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 | 273 | Parametros: |
262 | 274 | |
... | ... | @@ -310,7 +322,7 @@ switch (strtoupper($funcao)) |
310 | 322 | |
311 | 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} - codigo do layer em mapfile que será utilizado para atualizar codigoMap | |
314 | 326 | |
315 | 327 | Retorno: |
316 | 328 | |
... | ... | @@ -344,7 +356,7 @@ switch (strtoupper($funcao)) |
344 | 356 | |
345 | 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 aleatorio, que pode ser modificado posteriormente. Por default, esse novo layer será do tipo linear | |
348 | 360 | |
349 | 361 | Parametros: |
350 | 362 | |
... | ... | @@ -1170,12 +1182,13 @@ function sobeDesce() |
1170 | 1182 | removeCabecalho($mapfile); |
1171 | 1183 | return "ok"; |
1172 | 1184 | } |
1173 | -function criarNovoMap() | |
1174 | -{ | |
1175 | - global $nome,$codigo,$locaplic,$it,$en,$es,$esquemaadmin,$metaestat; | |
1185 | +function criarNovoMap(){ | |
1186 | + global $nome,$codigo,$locaplic,$it,$en,$es,$esquemaadmin,$metaestat,$tipoLayer,$data; | |
1176 | 1187 | $arq = $locaplic."/temas/".$codigo.".map"; |
1177 | - if(!file_exists($arq)) | |
1178 | - { | |
1188 | + if(!file_exists($arq)){ | |
1189 | + if(empty($tipoLayer)){ | |
1190 | + $tipoLayer = "line"; | |
1191 | + } | |
1179 | 1192 | $dados[] = "MAP"; |
1180 | 1193 | $dados[] = "SYMBOLSET ../symbols/simbolosv6.sym"; |
1181 | 1194 | $dados[] = 'FONTSET "../symbols/fontes.txt"'; |
... | ... | @@ -1184,12 +1197,15 @@ function criarNovoMap() |
1184 | 1197 | $dados[] = ' TEMPLATE "none.htm"'; |
1185 | 1198 | if(!empty($metaestat) && $metaestat == "SIM"){ |
1186 | 1199 | $dados[] = ' CONNECTIONTYPE POSTGIS'; |
1187 | - $dados[] = " TYPE polygon"; | |
1200 | + $tipoLayer = "polygon"; | |
1201 | + } | |
1202 | + $dados[] = " TYPE ".$tipoLayer; | |
1203 | + if(empty($data)){ | |
1204 | + $dados[] = ' DATA ""'; | |
1188 | 1205 | } |
1189 | 1206 | else{ |
1190 | - $dados[] = " TYPE line"; | |
1207 | + $dados[] = ' DATA "'.$data.'"'; | |
1191 | 1208 | } |
1192 | - $dados[] = ' DATA ""'; | |
1193 | 1209 | $dados[] = ' METADATA'; |
1194 | 1210 | $dados[] = ' TEMA "'.$nome.'"'; |
1195 | 1211 | $dados[] = ' CLASSE "SIM"'; |
... | ... | @@ -1207,6 +1223,9 @@ function criarNovoMap() |
1207 | 1223 | $dados[] = ' STYLE'; |
1208 | 1224 | $dados[] = ' COLOR 0 0 0'; |
1209 | 1225 | $dados[] = ' SIZE 12'; |
1226 | + if($tipoLayer == "point"){ | |
1227 | + $dados[] = " SYMBOL 'ponto'"; | |
1228 | + } | |
1210 | 1229 | $dados[] = ' END'; |
1211 | 1230 | $dados[] = ' END'; |
1212 | 1231 | $dados[] = "END"; | ... | ... |
ferramentas/upload/dicionario.js
1 | -//+$trad(1,i3GEOF.upload.dicionario)+ | |
2 | -i3GEOF.upload.dicionario = { | |
3 | - 1: [{ | |
4 | - pt:"pasta no servidor onde os dados<br>serão armazenados (obrigatório)", | |
5 | - en:"", | |
6 | - es:"", | |
7 | - it:"" | |
8 | - }], | |
9 | - 2: [{ | |
10 | - pt:"Tipo de geometria", | |
11 | - en:"", | |
12 | - es:"", | |
13 | - it:"" | |
14 | - }], | |
15 | - 3: [{ | |
16 | - pt:"não conhecido", | |
17 | - en:"", | |
18 | - es:"", | |
19 | - it:"" | |
20 | - }], | |
21 | - 4: [{ | |
22 | - pt:"pontual", | |
23 | - en:"", | |
24 | - es:"", | |
25 | - it:"" | |
26 | - }], | |
27 | - 5: [{ | |
28 | - pt:"poligonal", | |
29 | - en:"", | |
30 | - es:"", | |
31 | - it:"" | |
32 | - }], | |
33 | - 6: [{ | |
34 | - pt:"linear", | |
35 | - en:"", | |
36 | - es:"", | |
37 | - it:"" | |
38 | - }], | |
39 | - 7: [{ | |
40 | - pt:"Projeção", | |
41 | - en:"", | |
42 | - es:"", | |
43 | - it:"" | |
44 | - }], | |
45 | - 8: [{ | |
46 | - pt:"Enviar", | |
47 | - en:"", | |
48 | - es:"", | |
49 | - it:"" | |
50 | - }], | |
51 | - 9: [{ | |
52 | - pt:"Não utilize _ no nome do arquivo. Apenas letras e números são aceitos!!!", | |
53 | - en:"", | |
54 | - es:"", | |
55 | - it:"" | |
56 | - }], | |
57 | - 10: [{ | |
58 | - pt:"", | |
59 | - en:"", | |
60 | - es:"", | |
61 | - it:"" | |
62 | - }] | |
1 | +//+$trad(1,i3GEOF.upload.dicionario)+ | |
2 | +i3GEOF.upload.dicionario = { | |
3 | + 1: [{ | |
4 | + pt:"Pasta no servidor onde os dados serão armazenados (obrigatório se você estiver utilizando o formulário dentro do sistema de administração)", | |
5 | + en:"", | |
6 | + es:"", | |
7 | + it:"" | |
8 | + }], | |
9 | + 2: [{ | |
10 | + pt:"Tipo de geometria", | |
11 | + en:"", | |
12 | + es:"", | |
13 | + it:"" | |
14 | + }], | |
15 | + 3: [{ | |
16 | + pt:"não conhecido", | |
17 | + en:"", | |
18 | + es:"", | |
19 | + it:"" | |
20 | + }], | |
21 | + 4: [{ | |
22 | + pt:"pontual", | |
23 | + en:"", | |
24 | + es:"", | |
25 | + it:"" | |
26 | + }], | |
27 | + 5: [{ | |
28 | + pt:"poligonal", | |
29 | + en:"", | |
30 | + es:"", | |
31 | + it:"" | |
32 | + }], | |
33 | + 6: [{ | |
34 | + pt:"linear", | |
35 | + en:"", | |
36 | + es:"", | |
37 | + it:"" | |
38 | + }], | |
39 | + 7: [{ | |
40 | + pt:"Projeção", | |
41 | + en:"", | |
42 | + es:"", | |
43 | + it:"" | |
44 | + }], | |
45 | + 8: [{ | |
46 | + pt:"Enviar", | |
47 | + en:"", | |
48 | + es:"", | |
49 | + it:"" | |
50 | + }], | |
51 | + 9: [{ | |
52 | + pt:"Não utilize _ no nome do arquivo. Apenas letras e números são aceitos!!!", | |
53 | + en:"", | |
54 | + es:"", | |
55 | + it:"" | |
56 | + }], | |
57 | + 10: [{ | |
58 | + pt:"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)", | |
59 | + en:"", | |
60 | + es:"", | |
61 | + it:"" | |
62 | + }] | |
63 | 63 | }; |
64 | 64 | \ No newline at end of file | ... | ... |
ferramentas/upload/index.js
... | ... | @@ -108,8 +108,10 @@ i3GEOF.upload = { |
108 | 108 | '<p class="paragrafo" >shx: <br><input type="file" size=22 name="i3GEOuploadshx" style="top:0px;left:0px;cursor:pointer;"></p>' + |
109 | 109 | '<p class="paragrafo" >dbf: <br><input type="file" size=22 name="i3GEOuploaddbf" style="top:0px;left:0px;cursor:pointer;"></p>'; |
110 | 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;"></p>'; | |
112 | - //ins += "<img onclick='i3GEOF.upload.selNavegador(\"dirDestino\")' src='"+limg+"' 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 | + " <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 /> '+$trad(10,i3GEOF.upload.dicionario); | |
113 | 115 | } |
114 | 116 | ins += '<p class="paragrafo" >'+$trad(2,i3GEOF.upload.dicionario)+': ' + |
115 | 117 | ' <select id=tipo name=tipo >' + | ... | ... |
ferramentas/upload/upload.php
... | ... | @@ -20,6 +20,7 @@ if (ob_get_level() == 0) ob_start(); |
20 | 20 | <head> |
21 | 21 | <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"> |
22 | 22 | <link rel="stylesheet" type="text/css" href="../../css/geral.css" /> |
23 | +<script src="../../classesjs/classe_util.js"></script> | |
23 | 24 | <title></title> |
24 | 25 | </head> |
25 | 26 | <body bgcolor="white" style="background-color:white;text-align:left;"> |
... | ... | @@ -40,7 +41,7 @@ if (isset($_FILES['i3GEOuploadshp']['name'])) |
40 | 41 | $dirmap = $dirDestino; |
41 | 42 | include_once(dirname(__FILE__)."/../../admin/php/login.php"); |
42 | 43 | if(verificaOperacaoSessao("admin/php/editortexto") == false){ |
43 | - echo "Vc nao pode realizar salvar os dados no servidor em uma pasta específica";exit; | |
44 | + echo "Vc nao pode salvar os dados no servidor em uma pasta específica";exit; | |
44 | 45 | } |
45 | 46 | if(!file_exists($dirmap)) |
46 | 47 | {echo "<p class='paragrafo' >Pasta não existe no servidor";paraAguarde();exit;} |
... | ... | @@ -60,7 +61,7 @@ if (isset($_FILES['i3GEOuploadshp']['name'])) |
60 | 61 | |
61 | 62 | $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shp"); |
62 | 63 | if($status != 1) |
63 | - {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo SHP. Pode ser uma limitação quanto ao tamanho do arquivo.";paraAguarde();exit;} | |
64 | + {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo SHP. Pode ser uma limitação quanto ao tamanho do arquivo ou permissão de escrita na pasta indicada.";paraAguarde();exit;} | |
64 | 65 | $Arquivo = $_FILES['i3GEOuploadshx']['tmp_name']; |
65 | 66 | $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shx"); |
66 | 67 | if($status != 1) |
... | ... | @@ -75,6 +76,7 @@ if (isset($_FILES['i3GEOuploadshp']['name'])) |
75 | 76 | |
76 | 77 | echo "<p class='paragrafo' >Arquivo enviado.</p>"; |
77 | 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 | 80 | if(isset($map_file)){ |
79 | 81 | echo "<p class='paragrafo' >Adicionando tema...</p>"; |
80 | 82 | ob_flush(); |
... | ... | @@ -126,6 +128,36 @@ if (isset($_FILES['i3GEOuploadshp']['name'])) |
126 | 128 | echo "<b><p class='paragrafo' >Tema criado!!! Redesenhando o mapa."; |
127 | 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 | 162 | else |
131 | 163 | { | ... | ... |