Commit bfc21a687a79941e2ca500781c63f8a35ed804b3

Authored by Edmar Moretti
1 parent 246213ee

Separacao do codigo utilizado no upload de shp do sistema de administracao e das ferramentas

admin/php/subirshapefile.php
1 <?php 1 <?php
2 -//  
3 -//caso o usu&aacute;rio seja um administrador, ele pode enviar um nome de diret&oacute;rio onde os arquivos ser&atilde;o armazenados  
4 -//na vari&aacute;vel $dirDestino  
5 -//  
6 -include_once (dirname(__FILE__)."/../../classesphp/sani_request.php");  
7 -$_GET = array_merge($_GET,$_POST); 2 +include_once(dirname(__FILE__)."/login.php");
  3 +
  4 +if(in_array(strtoupper($funcao),$funcoesEdicao)){
  5 + if(verificaOperacaoSessao("admin/html/subirshapefile") == false){
  6 + retornaJSON("Vc nao pode realizar essa operacao.");exit;
  7 + }
  8 +}
8 if(isset($_GET["tipo"])){ 9 if(isset($_GET["tipo"])){
9 - $tipo = $_GET["tipo"]; 10 + $tipo = $_GET["tipo"];
10 } 11 }
11 -require_once(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php");  
12 -include_once (dirname(__FILE__)."/../../classesphp/carrega_ext.php");  
13 -error_reporting(0);  
14 -session_name("i3GeoPHP");  
15 -if(isset($_GET["g_sid"]) && $_GET["g_sid"] != ""){  
16 - session_id($_GET["g_sid"]);  
17 - session_start();  
18 - $map_file = $_SESSION["map_file"]; 12 +//locaplic e usado para definir a pasta de destino
  13 +if(empty($locaplic)){
  14 + exit;
19 } 15 }
20 -if (ob_get_level() == 0) ob_start(); 16 +error_reporting(0);
21 ?> 17 ?>
22 <html> 18 <html>
23 <head> 19 <head>
@@ -32,216 +28,158 @@ if (ob_get_level() == 0) ob_start(); @@ -32,216 +28,158 @@ if (ob_get_level() == 0) ob_start();
32 <?php 28 <?php
33 if (isset($_FILES['i3GEOuploadshp']['name'])) 29 if (isset($_FILES['i3GEOuploadshp']['name']))
34 { 30 {
35 - $dirDestino = $_POST["dirDestino"];  
36 - require_once (dirname(__FILE__)."/../../ms_configura.php"); 31 + $dirDestino = $_POST["dirDestino"];
  32 + if(empty($dirDestino)){
  33 + echo "Pasta nao encontrada"; exit;
  34 + }
  35 + $checaDestino = dirname($locaplic);
  36 + $dirDestino = str_replace($checaDestino,"",$dirDestino);
  37 + $dirDestino = $checaDestino."/".$dirDestino;
37 38
38 - if(isset($logExec) && $logExec["upload"] == true){  
39 - i3GeoLog("prog: upload filename:" . $_FILES['i3GEOuploadshp']['name'],$dir_tmp);  
40 - } 39 + if(isset($logExec) && $logExec["upload"] == true){
  40 + i3GeoLog("prog: upload filename:" . $_FILES['i3GEOuploadshp']['name'],$dir_tmp);
  41 + }
41 42
42 - echo "<p class='paragrafo' >Carregando o arquivo...</p>";  
43 - ob_flush();  
44 - flush();  
45 - sleep(1);  
46 - if(isset($map_file) && $map_file != ""){  
47 - $mapa = ms_newMapObj($map_file);  
48 - $dirmap = dirname($map_file);  
49 - }  
50 - if(isset($dirDestino) && $dirDestino != ""){  
51 - $dirmap = $dirDestino;  
52 - include_once(dirname(__FILE__)."/../../admin/php/login.php");  
53 - if(verificaOperacaoSessao("admin/php/editortexto") == false){  
54 - echo "Vc nao pode salvar os dados no servidor em uma pasta espec&iacute;fica";exit;  
55 - }  
56 - if(!file_exists($dirmap))  
57 - {echo "<p class='paragrafo' >Pasta n&atilde;o existe no servidor";paraAguarde();exit;}  
58 - }  
59 - //verifica nomes  
60 - verificaNome($_FILES['i3GEOuploadshp']['name']);  
61 - verificaNome($_FILES['i3GEOuploadshx']['name']);  
62 - verificaNome($_FILES['i3GEOuploaddbf']['name']); 43 + echo "<p class='paragrafo' >Carregando o arquivo...</p>";
  44 + ob_flush();
  45 + flush();
  46 + sleep(1);
  47 + $dirmap = $dirDestino;
  48 + if(!file_exists($dirmap)){
  49 + echo "<p class='paragrafo' >Pasta n&atilde;o existe no servidor";
  50 + paraAguarde();
  51 + exit;
  52 + }
  53 + //verifica nomes
  54 + verificaNome($_FILES['i3GEOuploadshp']['name']);
  55 + verificaNome($_FILES['i3GEOuploadshx']['name']);
  56 + verificaNome($_FILES['i3GEOuploaddbf']['name']);
63 57
64 - if($_FILES['i3GEOuploadprj']['name'] != ""){  
65 - verificaNome($_FILES['i3GEOuploadprj']['name']);  
66 - } 58 + if($_FILES['i3GEOuploadprj']['name'] != ""){
  59 + verificaNome($_FILES['i3GEOuploadprj']['name']);
  60 + }
67 61
68 - //remove acentos  
69 - $nomePrefixo = str_replace(" ","_",removeAcentos(str_replace(".shp","",$_FILES['i3GEOuploadshp']['name']))); 62 + //remove acentos
  63 + $nomePrefixo = str_replace(" ","_",removeAcentos(str_replace(".shp","",$_FILES['i3GEOuploadshp']['name'])));
70 64
71 - $nomePrefixo = str_replace(".","",$nomePrefixo);  
72 - $nomePrefixo = strip_tags($nomePrefixo);  
73 - $nomePrefixo = htmlspecialchars($nomePrefixo, ENT_QUOTES);  
74 - $nomePrefixo = $nomePrefixo . md5(uniqid(rand(), true)); 65 + $nomePrefixo = str_replace(".","",$nomePrefixo);
  66 + $nomePrefixo = strip_tags($nomePrefixo);
  67 + $nomePrefixo = htmlspecialchars($nomePrefixo, ENT_QUOTES);
75 68
76 - //sobe arquivo  
77 - $Arquivo = $_FILES['i3GEOuploadshp']['tmp_name'];  
78 - if(file_exists($dirmap."/".$nomePrefixo.".shp"))  
79 - {echo "<p class='paragrafo' >J&aacute; existe um SHP com o nome ";paraAguarde();exit;}  
80 - $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shp");  
81 - if($status != 1)  
82 - {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo SHP. Pode ser uma limita&ccedil;&atilde;o quanto ao tamanho do arquivo ou permiss&atilde;o de escrita na pasta indicada.";paraAguarde();exit;} 69 + //sobe arquivo
  70 + $Arquivo = $_FILES['i3GEOuploadshp']['tmp_name'];
  71 + if(file_exists($dirmap."/".$nomePrefixo.".shp")){
  72 + echo "<p class='paragrafo' >J&aacute; existe um SHP com o nome ";
  73 + paraAguarde();
  74 + exit;
  75 + }
  76 + $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shp");
  77 + if($status != 1)
  78 + {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo SHP. Pode ser uma limita&ccedil;&atilde;o quanto ao tamanho do arquivo ou permiss&atilde;o de escrita na pasta indicada.";paraAguarde();exit;}
83 79
84 - $Arquivo = $_FILES['i3GEOuploadshx']['tmp_name'];  
85 - $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shx");  
86 - if($status != 1)  
87 - {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo SHX";paraAguarde();exit;} 80 + $Arquivo = $_FILES['i3GEOuploadshx']['tmp_name'];
  81 + $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".shx");
  82 + if($status != 1)
  83 + {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo SHX";paraAguarde();exit;}
88 84
89 - $Arquivo = $_FILES['i3GEOuploaddbf']['tmp_name'];  
90 - $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".dbf");  
91 - if($status != 1)  
92 - {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo DBF";paraAguarde();exit;} 85 + $Arquivo = $_FILES['i3GEOuploaddbf']['tmp_name'];
  86 + $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".dbf");
  87 + if($status != 1)
  88 + {echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo DBF";paraAguarde();exit;}
93 89
94 - if($_FILES['i3GEOuploadprj']['name'] != ""){  
95 - $Arquivo = $_FILES['i3GEOuploadprj']['tmp_name'];  
96 - $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".prj");  
97 - if($status != 1){  
98 - echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo PRJ";paraAguarde();exit;  
99 - }  
100 - } 90 + if($_FILES['i3GEOuploadprj']['name'] != ""){
  91 + $Arquivo = $_FILES['i3GEOuploadprj']['tmp_name'];
  92 + $status = move_uploaded_file($Arquivo,$dirmap."/".$nomePrefixo.".prj");
  93 + if($status != 1){
  94 + echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo PRJ";paraAguarde();exit;
  95 + }
  96 + }
101 97
102 - if(!file_exists($dirmap."/".$nomePrefixo.".shp"))  
103 - {echo "<p class='paragrafo' >Ocorreu algum problema no envio do arquivo ";paraAguarde();exit;} 98 + if(!file_exists($dirmap."/".$nomePrefixo.".shp"))
  99 + {echo "<p class='paragrafo' >Ocorreu algum problema no envio do arquivo ";paraAguarde();exit;}
104 100
105 101
106 - $checkphp = fileContemString($dirmap."/".$nomePrefixo.".prj","<?");  
107 - if($checkphp == true){  
108 - echo "Arquivo prj invalido";  
109 - unlink($dirmap."/".$nomePrefixo.".shp");  
110 - unlink($dirmap."/".$nomePrefixo.".dbf");  
111 - unlink($dirmap."/".$nomePrefixo.".shx");  
112 - unlink($dirmap."/".$nomePrefixo.".prj");  
113 - exit;  
114 - }  
115 - $checkphp = fileContemString($dirmap."/".$nomePrefixo.".shx","<?");  
116 - if($checkphp == true){  
117 - echo "Arquivo shx invalido";  
118 - unlink($dirmap."/".$nomePrefixo.".shp");  
119 - unlink($dirmap."/".$nomePrefixo.".dbf");  
120 - unlink($dirmap."/".$nomePrefixo.".shx");  
121 - unlink($dirmap."/".$nomePrefixo.".prj");  
122 - exit;  
123 - }  
124 - $checkphp = fileContemString($dirmap."/".$nomePrefixo.".dbf","<?");  
125 - if($checkphp == true){  
126 - echo "Arquivo dbf invalido";  
127 - unlink($dirmap."/".$nomePrefixo.".shp");  
128 - unlink($dirmap."/".$nomePrefixo.".dbf");  
129 - unlink($dirmap."/".$nomePrefixo.".shx");  
130 - unlink($dirmap."/".$nomePrefixo.".prj");  
131 - exit;  
132 - }  
133 -echo $dirmap."/".$nomePrefixo;  
134 - echo "<p class='paragrafo' >Arquivo enviado.</p>";  
135 - echo "<p class='paragrafo'></p>";  
136 - //nesse caso o formulario de upload esta sendo executado de dentro de um mapa interativo, por isso o mapfile ja existe  
137 - if(isset($map_file)){  
138 - echo "<p class='paragrafo' >Adicionando tema...</p>";  
139 - ob_flush();  
140 - flush();  
141 - sleep(1);  
142 - $novolayer = ms_newLayerObj($mapa);  
143 - $novolayer->set("data",$dirmap."/".$nomePrefixo.".shp");  
144 - $novolayer->set("name",$_FILES['i3GEOuploadshp']['name']);  
145 - $novolayer->setmetadata("TEMA",$_FILES['i3GEOuploadshp']['name']);  
146 - $novolayer->setmetadata("DOWNLOAD","SIM");  
147 - $sfileObj = ms_newShapefileObj($dirmap."/".$nomePrefixo.".shp", -1);  
148 - if(!isset($tipo) || $tipo == "")  
149 - {$tipo = $sfileObj->type;}  
150 - if ($tipo == 1){$novolayer->set("type",MS_LAYER_POINT);} // ponto  
151 - if ($tipo == 3){$novolayer->set("type",MS_LAYER_LINE);}  
152 - if ($tipo == 5){$novolayer->set("type",MS_LAYER_POLYGON);}  
153 - $novolayer->setmetadata("TEMALOCAL","SIM");  
154 - $novolayer->setmetadata("CLASSE","SIM");  
155 - $novolayer->setmetadata("TEXTO","NAO");  
156 - //if (($tipo != 3) and ($tipo != 8 )){$novolayer->set("type",0);}  
157 - $novolayer->setfilter("");  
158 - $classe = ms_newClassObj($novolayer);  
159 - $classe->set("name","");  
160 - $estilo = ms_newStyleObj($classe);  
161 - if ($tipo == 1)  
162 - {  
163 - $estilo->set("symbolname","ponto");  
164 - $estilo->set("size",6);  
165 - }  
166 - $estilo->color->setrgb(200,50,0);  
167 - $estilo->outlinecolor->setrgb(0,0,0);  
168 - // le os itens  
169 - $novolayer->set("status",MS_DEFAULT);  
170 - $abriu = $novolayer->open();  
171 - $items = $novolayer->getItems();  
172 - $fechou = $novolayer->close();  
173 - if ($items != "")  
174 - {  
175 - $its = implode(",",$items);  
176 - $novolayer->setmetadata("ITENS",$its);  
177 - $novolayer->setmetadata("ITENSDESC",$its);  
178 - $novolayer->set("template","none.htm");  
179 - }  
180 - if(isset($_GET["uploadEPSG"]) && $_GET["uploadEPSG"] != ""){  
181 - $novolayer->setProjection("init=epsg:".$_GET["uploadEPSG"]);  
182 - }  
183 - if(file_exists($dirmap."/".$nomePrefixo.".prj")){  
184 - $novolayer->setProjection("AUTO");  
185 - }  
186 - //$adiciona = ms_newLayerObj($mapa, $novolayer);  
187 - $salvo = $mapa->save($map_file);  
188 - //grava os templates de cada tema  
189 - echo "<b><p class='paragrafo' >Tema criado!!! Redesenhando o mapa.";  
190 - echo "<script>window.scrollTo(0,10000);window.parent.i3GEO.atualiza()</script>";  
191 - }  
192 - elseif($i3GEOuploadCriaMapfile == "on"){  
193 - //verifica se o usuario marcou a opcao de cria mapfile  
194 - //nesse caso o aplicativo de upload esta sendo executado de dentro do sistema de administracao, e o mapfile devera  
195 - //ser criado e registrado no sistema  
196 - $nome = $nomePrefixo;  
197 - $codigo = $nomePrefixo;  
198 - $it = $nomePrefixo;  
199 - $en = $nomePrefixo;  
200 - $es = $nomePrefixo;  
201 - $sfileObj = ms_newShapefileObj($dirmap."/".$nomePrefixo.".shp", -1);  
202 - if(!isset($tipo) || $tipo == ""){  
203 - $tipo = $sfileObj->type;  
204 - }  
205 - if ($tipo == 1){  
206 - $tipoLayer = "point";  
207 - }  
208 - if ($tipo == 3){  
209 - $tipoLayer = "line";  
210 - }  
211 - if ($tipo == 5){  
212 - $tipoLayer = "polygon";  
213 - }  
214 - $funcao = "CRIARNOVOMAP";  
215 - $output = "retorno";  
216 - $data = $dirmap."/".$nomePrefixo.".shp";  
217 - include_once($locaplic."/admin/php/editormapfile.php");  
218 - echo "<b><p class='paragrafo' >Criado!!!<br>";  
219 - echo "Para editar clique: <a href='../../admin/html/editormapfile.html' target=_blank >editar</a>";  
220 - echo "<script>window.scrollTo(0,10000);i3GEO.util.insereCookie('I3GEOletraAdmin','".$nomePrefixo."');</script>";  
221 - } 102 + $checkphp = fileContemString($dirmap."/".$nomePrefixo.".prj","<?");
  103 + if($checkphp == true){
  104 + echo "Arquivo prj invalido";
  105 + unlink($dirmap."/".$nomePrefixo.".shp");
  106 + unlink($dirmap."/".$nomePrefixo.".dbf");
  107 + unlink($dirmap."/".$nomePrefixo.".shx");
  108 + unlink($dirmap."/".$nomePrefixo.".prj");
  109 + exit;
  110 + }
  111 + $checkphp = fileContemString($dirmap."/".$nomePrefixo.".shx","<?");
  112 + if($checkphp == true){
  113 + echo "Arquivo shx invalido";
  114 + unlink($dirmap."/".$nomePrefixo.".shp");
  115 + unlink($dirmap."/".$nomePrefixo.".dbf");
  116 + unlink($dirmap."/".$nomePrefixo.".shx");
  117 + unlink($dirmap."/".$nomePrefixo.".prj");
  118 + exit;
  119 + }
  120 + $checkphp = fileContemString($dirmap."/".$nomePrefixo.".dbf","<?");
  121 + if($checkphp == true){
  122 + echo "Arquivo dbf invalido";
  123 + unlink($dirmap."/".$nomePrefixo.".shp");
  124 + unlink($dirmap."/".$nomePrefixo.".dbf");
  125 + unlink($dirmap."/".$nomePrefixo.".shx");
  126 + unlink($dirmap."/".$nomePrefixo.".prj");
  127 + exit;
  128 + }
  129 + echo "<p class='paragrafo' >Arquivo enviado.</p>";
  130 + echo "<p class='paragrafo'></p>";
  131 + if($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 >editar</a>";
  159 + echo "<script>window.scrollTo(0,10000);i3GEO.util.insereCookie('I3GEOletraAdmin','".$nomePrefixo."');</script>";
  160 + }
222 } 161 }
223 else 162 else
224 { 163 {
225 - echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>"; 164 + echo "<p class='paragrafo' >Erro ao enviar o arquivo. Talvez o tamanho do arquivo seja maior do que o permitido.</p>";
226 } 165 }
227 -restauraCon($map_file,$postgis_mapa);  
228 paraAguarde(); 166 paraAguarde();
229 function paraAguarde(){ 167 function paraAguarde(){
230 - echo "<script>try{window.scrollTo(0,10000);window.parent.i3GEOF.upload.aguarde.visibility='hidden';}catch(e){};</script>"; 168 + echo "<script>try{window.scrollTo(0,10000);window.parent.i3GEOF.upload.aguarde.visibility='hidden';}catch(e){};</script>";
231 } 169 }
232 function verificaNome($nome){ 170 function verificaNome($nome){
233 - if(strlen(basename($nome)) > 200){  
234 - exit;  
235 - }  
236 - $nome = strtolower($nome);  
237 - $lista = explode(".",$nome);  
238 - $extensao = $lista[count($lista) - 1];  
239 - if(($extensao != "dbf") && ($extensao != "shx") && ($extensao != "shp") && ($extensao != "prj"))  
240 - {  
241 - echo "Nome de arquivo inv&aacute;lido. $nome";  
242 - paraAguarde();  
243 - exit;  
244 - } 171 + if(strlen(basename($nome)) > 200){
  172 + exit;
  173 + }
  174 + $nome = strtolower($nome);
  175 + $lista = explode(".",$nome);
  176 + $extensao = $lista[count($lista) - 1];
  177 + if(($extensao != "dbf") && ($extensao != "shx") && ($extensao != "shp") && ($extensao != "prj"))
  178 + {
  179 + echo "Nome de arquivo inv&aacute;lido. $nome";
  180 + paraAguarde();
  181 + exit;
  182 + }
245 } 183 }
246 ?> 184 ?>
247 </body> 185 </body>
classesjs/dicionario.js
@@ -879,9 +879,9 @@ var g_traducao = @@ -879,9 +879,9 @@ var g_traducao =
879 ], 879 ],
880 "a3a" : [ 880 "a3a" : [
881 { 881 {
882 - pt : "Importar Web Map Context (WMC)",  
883 - en : "Import Web Map Context (WMC)",  
884 - es : "Importar Web Map Context (WMC)" 882 + pt : "Importar Web Map Context",
  883 + en : "Import Web Map Context",
  884 + es : "Importar Web Map Context"
885 } 885 }
886 ], 886 ],
887 "a4" : [ 887 "a4" : [
@@ -970,9 +970,9 @@ var g_traducao = @@ -970,9 +970,9 @@ var g_traducao =
970 ], 970 ],
971 "a14" : [ 971 "a14" : [
972 { 972 {
973 - pt : "Upload SHP, CSV, DBF, GPX, KML",  
974 - en : "Upload SHP, CSV, DBF, GPX, KML",  
975 - es : "Subir SHP, CSV, DBF, GPX, KML" 973 + pt : "Upload SHP, CSV...",
  974 + en : "Upload SHP, CSV...",
  975 + es : "Subir SHP, CSV..."
976 } 976 }
977 ], 977 ],
978 "a15" : [ 978 "a15" : [
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 'pastaArmazenamento' : [ { 3 'pastaArmazenamento' : [ {
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)", 4 + pt : "Pasta no servidor onde os dados ser&atilde;o armazenados",
5 en : "", 5 en : "",
6 es : "" 6 es : ""
7 } ], 7 } ],
js/dicionario.js
@@ -879,9 +879,9 @@ var g_traducao = @@ -879,9 +879,9 @@ var g_traducao =
879 ], 879 ],
880 "a3a" : [ 880 "a3a" : [
881 { 881 {
882 - pt : "Importar Web Map Context (WMC)",  
883 - en : "Import Web Map Context (WMC)",  
884 - es : "Importar Web Map Context (WMC)" 882 + pt : "Importar Web Map Context",
  883 + en : "Import Web Map Context",
  884 + es : "Importar Web Map Context"
885 } 885 }
886 ], 886 ],
887 "a4" : [ 887 "a4" : [
@@ -970,9 +970,9 @@ var g_traducao = @@ -970,9 +970,9 @@ var g_traducao =
970 ], 970 ],
971 "a14" : [ 971 "a14" : [
972 { 972 {
973 - pt : "Upload SHP, CSV, DBF, GPX, KML",  
974 - en : "Upload SHP, CSV, DBF, GPX, KML",  
975 - es : "Subir SHP, CSV, DBF, GPX, KML" 973 + pt : "Upload SHP, CSV...",
  974 + en : "Upload SHP, CSV...",
  975 + es : "Subir SHP, CSV..."
976 } 976 }
977 ], 977 ],
978 "a15" : [ 978 "a15" : [