Commit 959e458be4b0d152cbee9ce29f59588bbbb6b3f4

Authored by Edmar Moretti
1 parent 36987e22

Inclusão de parâmetro no ms_configura para definição da pasta para armazenamento de cache

admin/admin.db
No preview for this file type
admin/php/editormapfile.php
@@ -174,19 +174,26 @@ switch (strtoupper($funcao)) @@ -174,19 +174,26 @@ switch (strtoupper($funcao))
174 $mapfile = $locaplic."/temas/".$codigoMap.".map"; 174 $mapfile = $locaplic."/temas/".$codigoMap.".map";
175 $mapa = ms_newMapObj($mapfile); 175 $mapa = ms_newMapObj($mapfile);
176 $nomes = $mapa->getalllayernames(); 176 $nomes = $mapa->getalllayernames();
  177 + if($cachedir != "")
  178 + {$d = $cachedir;}
  179 + else
  180 + {$d = $dir_tmp."/cache";}
177 foreach($nomes as $nome) 181 foreach($nomes as $nome)
178 { 182 {
179 - $dir = $dir_tmp."/cache/".$nome;  
180 - if (is_dir($dir)) {  
181 - $objects = scandir($dir);  
182 - foreach ($objects as $object) {  
183 - if ($object != "." && $object != "..") {  
184 - if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object); 183 + $dirs[] = $d."/".$nome;
  184 + $dirs[] = $d."/googlemaps/".$nome;
  185 + foreach($dirs as $dir){
  186 + if (is_dir($dir)) {
  187 + $objects = scandir($dir);
  188 + foreach ($objects as $object) {
  189 + if ($object != "." && $object != "..") {
  190 + if (filetype($dir."/".$object) == "dir") rrmdir($dir."/".$object); else unlink($dir."/".$object);
  191 + }
185 } 192 }
  193 + reset($objects);
  194 + rmdir($dir);
186 } 195 }
187 - reset($objects);  
188 - rmdir($dir);  
189 - } 196 + }
190 } 197 }
191 retornaJSON("ok"); 198 retornaJSON("ok");
192 exit; 199 exit;
classesphp/funcoes_gerais.php
@@ -2625,11 +2625,13 @@ Parametro: @@ -2625,11 +2625,13 @@ Parametro:
2625 2625
2626 $dir_tmp {string} - Diretório temporário (no servidor) utilizado pelo mapserver. 2626 $dir_tmp {string} - Diretório temporário (no servidor) utilizado pelo mapserver.
2627 2627
  2628 +$$cachedir {string} - Diretório de cache temporário definido no ms_configura.php
  2629 +
2628 Retorno: 2630 Retorno:
2629 2631
2630 {boleano} 2632 {boleano}
2631 */ 2633 */
2632 -function criaDirMapa($dir_tmp) 2634 +function criaDirMapa($dir_tmp,$cachedir="")
2633 { 2635 {
2634 if(!file_exists($dir_tmp)){ 2636 if(!file_exists($dir_tmp)){
2635 @mkdir ($dir_tmp,0777); 2637 @mkdir ($dir_tmp,0777);
@@ -2642,8 +2644,14 @@ function criaDirMapa($dir_tmp) @@ -2642,8 +2644,14 @@ function criaDirMapa($dir_tmp)
2642 $mapfile = $dir_tmp."/".$tmpdirname."/".$tmpdirname.".map"; 2644 $mapfile = $dir_tmp."/".$tmpdirname."/".$tmpdirname.".map";
2643 $tmpimgname = "img".$tmpdirname; 2645 $tmpimgname = "img".$tmpdirname;
2644 @mkdir($dir_tmp."/comum",0777); 2646 @mkdir($dir_tmp."/comum",0777);
2645 - @mkdir($dir_tmp."/cache",0777);  
2646 - @mkdir($dir_tmp."/cache/googlemaps",0777); 2647 + if($cachedir == ""){
  2648 + @mkdir($dir_tmp."/cache",0777);
  2649 + @mkdir($dir_tmp."/cache/googlemaps",0777);
  2650 + }
  2651 + else{
  2652 + @mkdir($cachedir,0777);
  2653 + @mkdir($cachedir."/googlemaps",0777);
  2654 + }
2647 if(file_exists($dir_tmp."/".$tmpdirname)) 2655 if(file_exists($dir_tmp."/".$tmpdirname))
2648 return array($mapfile,$tmpdirname,$tmpimgname); 2656 return array($mapfile,$tmpdirname,$tmpimgname);
2649 else 2657 else
classesphp/mapa_googlemaps.php
@@ -89,6 +89,7 @@ if(!isset($_SESSION["map_file"])) @@ -89,6 +89,7 @@ if(!isset($_SESSION["map_file"]))
89 // 89 //
90 $map_fileX = $_SESSION["map_file"]; 90 $map_fileX = $_SESSION["map_file"];
91 $postgis_mapa = $_SESSION["postgis_mapa"]; 91 $postgis_mapa = $_SESSION["postgis_mapa"];
  92 +$cachedir = $_SESSION["cachedir"];
92 // 93 //
93 //converte a requisição do tile em coordenadas geo 94 //converte a requisição do tile em coordenadas geo
94 //http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#tile_numbers_to_lon.2Flat_2 95 //http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#tile_numbers_to_lon.2Flat_2
@@ -192,7 +193,7 @@ if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") @@ -192,7 +193,7 @@ if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum")
192 if($qy) 193 if($qy)
193 {$cache = false;} 194 {$cache = false;}
194 if($cache == true) 195 if($cache == true)
195 -{carregaCacheImagem($_GET["BBOX"],$nomecache,$map_fileX,$_GET["WIDTH"],$_GET["HEIGHT"]);} 196 +{carregaCacheImagem($cachedir,$_GET["BBOX"],$nomecache,$map_fileX,$_GET["WIDTH"],$_GET["HEIGHT"]);}
196 197
197 $map_size = explode(" ",$_GET["map_size"]); 198 $map_size = explode(" ",$_GET["map_size"]);
198 $mapa->setsize($map_size[0],$map_size[1]); 199 $mapa->setsize($map_size[0],$map_size[1]);
@@ -286,7 +287,7 @@ if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") @@ -286,7 +287,7 @@ if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum")
286 } 287 }
287 else{ 288 else{
288 if($cache == true) 289 if($cache == true)
289 - {$nomer = salvaCacheImagem($_GET["BBOX"],$nomecache,$map_fileX,$_GET["WIDTH"],$_GET["HEIGHT"]);} 290 + {$nomer = salvaCacheImagem($cachedir,$_GET["BBOX"],$nomecache,$map_fileX,$_GET["WIDTH"],$_GET["HEIGHT"]);}
290 else{ 291 else{
291 if($img->imagepath == "") 292 if($img->imagepath == "")
292 {echo "Erro IMAGEPATH vazio";exit;} 293 {echo "Erro IMAGEPATH vazio";exit;}
@@ -301,27 +302,34 @@ else{ @@ -301,27 +302,34 @@ else{
301 echo header("Content-type: image/png \n\n"); 302 echo header("Content-type: image/png \n\n");
302 imagepng($img); 303 imagepng($img);
303 } 304 }
304 -function salvaCacheImagem($bbox,$layer,$map,$w,$h){ 305 +function salvaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){
305 global $img,$map_size; 306 global $img,$map_size;
306 //layers que são sempre iguais 307 //layers que são sempre iguais
  308 + //error_reporting(E_ALL);
307 if($layer == "copyright" || $layer == "") 309 if($layer == "copyright" || $layer == "")
308 {$bbox = "";} 310 {$bbox = "";}
309 if($layer == "") 311 if($layer == "")
310 {$layer = "fundo";} 312 {$layer = "fundo";}
311 - $nomedir = dirname(dirname($map))."/cache/googlemaps/".$layer;  
312 - @mkdir($nomedir,0777);  
313 - $nome = $nomedir."/".$w.$h.$bbox.".png"; 313 + if($cachedir == "")
  314 + {$cachedir = dirname(dirname($map))."/cache/googlemaps/".$layer;}
  315 + else
  316 + {$cachedir = $cachedir."/googlemaps/".$layer;}
  317 + @mkdir($cachedir,0777);
  318 + $nome = $cachedir."/".$w.$h.$bbox.".png";
314 if(!file_exists($nome)) 319 if(!file_exists($nome))
315 {$img->saveImage($nome);} 320 {$img->saveImage($nome);}
316 return $nome; 321 return $nome;
317 } 322 }
318 -function carregaCacheImagem($bbox,$layer,$map,$w,$h){ 323 +function carregaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){
319 if($layer == "copyright" || $layer == "") 324 if($layer == "copyright" || $layer == "")
320 {$bbox = "";} 325 {$bbox = "";}
321 if($layer == "") 326 if($layer == "")
322 {$layer = "fundo";} 327 {$layer = "fundo";}
323 $nome = $w.$h.$bbox.".png"; 328 $nome = $w.$h.$bbox.".png";
324 - $nome = dirname(dirname($map))."/cache/googlemaps/".$layer."/".$nome; 329 + if($cachedir == "")
  330 + {$nome = dirname(dirname($map))."/cache/googlemaps/".$layer."/".$nome;}
  331 + else
  332 + {$nome = $cachedir."/googlemaps/".$layer."/".$nome;}
325 if(file_exists($nome)) 333 if(file_exists($nome))
326 { 334 {
327 if (!function_exists('imagepng')) 335 if (!function_exists('imagepng'))
classesphp/mapa_openlayers.php
@@ -92,6 +92,7 @@ if(!isset($_SESSION["map_file"])) @@ -92,6 +92,7 @@ if(!isset($_SESSION["map_file"]))
92 //map_fileX é necessário caso register_globals = On no PHP.INI 92 //map_fileX é necessário caso register_globals = On no PHP.INI
93 $map_fileX = $_SESSION["map_file"]; 93 $map_fileX = $_SESSION["map_file"];
94 $postgis_mapa = $_SESSION["postgis_mapa"]; 94 $postgis_mapa = $_SESSION["postgis_mapa"];
  95 +$cachedir = $_SESSION["cachedir"];
95 if(isset($_GET["tipolayer"]) && $_GET["tipolayer"] == "fundo") 96 if(isset($_GET["tipolayer"]) && $_GET["tipolayer"] == "fundo")
96 {$map_fileX = str_replace(".map","fundo.map",$map_fileX);} 97 {$map_fileX = str_replace(".map","fundo.map",$map_fileX);}
97 if(isset($_GET["BBOX"])) 98 if(isset($_GET["BBOX"]))
@@ -168,7 +169,7 @@ if(strtolower($_GET["DESLIGACACHE"]) == "sim") @@ -168,7 +169,7 @@ if(strtolower($_GET["DESLIGACACHE"]) == "sim")
168 if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") 169 if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum")
169 {$cache = false;} 170 {$cache = false;}
170 if($cache == true) 171 if($cache == true)
171 -{carregaCacheImagem($_GET["BBOX"],$nomecache,$map_fileX,$_GET["WIDTH"],$_GET["HEIGHT"]);} 172 +{carregaCacheImagem($cachedir,$_GET["BBOX"],$nomecache,$map_fileX,$_GET["WIDTH"],$_GET["HEIGHT"]);}
172 173
173 $map_size = explode(" ",$_GET["map_size"]); 174 $map_size = explode(" ",$_GET["map_size"]);
174 $mapa->setsize($map_size[0],$map_size[1]); 175 $mapa->setsize($map_size[0],$map_size[1]);
@@ -286,7 +287,7 @@ if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") @@ -286,7 +287,7 @@ if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum")
286 } 287 }
287 else{ 288 else{
288 if($cache == true) 289 if($cache == true)
289 - {$nomer = salvaCacheImagem($_GET["BBOX"],$nomecache,$map_fileX,$_GET["WIDTH"],$_GET["HEIGHT"]);} 290 + {$nomer = salvaCacheImagem($cachedir,$_GET["BBOX"],$nomecache,$map_fileX,$_GET["WIDTH"],$_GET["HEIGHT"]);}
290 else{ 291 else{
291 if($img->imagepath == "") 292 if($img->imagepath == "")
292 {echo "Erro IMAGEPATH vazio";exit;} 293 {echo "Erro IMAGEPATH vazio";exit;}
@@ -302,17 +303,20 @@ else{ @@ -302,17 +303,20 @@ else{
302 imagepng($img); 303 imagepng($img);
303 imagedestroy($img); 304 imagedestroy($img);
304 } 305 }
305 -function salvaCacheImagem($bbox,$layer,$map,$w,$h){ 306 +function salvaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){
306 global $img,$map_size; 307 global $img,$map_size;
  308 + //echo "oi".$cachedir;exit;
307 //layers que são sempre iguais 309 //layers que são sempre iguais
308 if($layer == "copyright" || $layer == "") 310 if($layer == "copyright" || $layer == "")
309 {$bbox = "";} 311 {$bbox = "";}
310 if($layer == "") 312 if($layer == "")
311 {$layer = "fundo";} 313 {$layer = "fundo";}
312 -  
313 - $nomedir = dirname(dirname($map))."/cache/".$layer;  
314 - @mkdir($nomedir,0777);  
315 - $nome = $nomedir."/".$w.$h.$bbox.".png"; 314 + if($cachedir == "")
  315 + {$cachedir = dirname(dirname($map))."/cache/".$layer;}
  316 + else
  317 + {$cachedir = $cachedir."/".$layer;}
  318 + @mkdir($cachedir,0777);
  319 + $nome = $cachedir."/".$w.$h.$bbox.".png";
316 if(!file_exists($nome)) 320 if(!file_exists($nome))
317 { 321 {
318 $img->saveImage($nome); 322 $img->saveImage($nome);
@@ -320,14 +324,17 @@ function salvaCacheImagem($bbox,$layer,$map,$w,$h){ @@ -320,14 +324,17 @@ function salvaCacheImagem($bbox,$layer,$map,$w,$h){
320 } 324 }
321 return $nome; 325 return $nome;
322 } 326 }
323 -function carregaCacheImagem($bbox,$layer,$map,$w,$h){ 327 +function carregaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){
324 if($layer == "copyright" || $layer == "") 328 if($layer == "copyright" || $layer == "")
325 {$bbox = "";} 329 {$bbox = "";}
326 if($layer == "") 330 if($layer == "")
327 {$layer = "fundo";} 331 {$layer = "fundo";}
328 332
329 $nome = $w.$h.$bbox.".png"; 333 $nome = $w.$h.$bbox.".png";
330 - $nome = dirname(dirname($map))."/cache/".$layer."/".$nome; 334 + if($cachedir == "")
  335 + {$nome = dirname(dirname($map))."/cache/".$layer."/".$nome;}
  336 + else
  337 + {$nome = $cachedir."/".$layer."/".$nome;}
331 if(file_exists($nome)) 338 if(file_exists($nome))
332 { 339 {
333 if (!function_exists('imagepng')) 340 if (!function_exists('imagepng'))
ms_configura.php
@@ -398,6 +398,20 @@ if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) @@ -398,6 +398,20 @@ if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
398 Vc pode usar essa variável para customizar a inicialização do mapa. 398 Vc pode usar essa variável para customizar a inicialização do mapa.
399 */ 399 */
400 $base = ""; 400 $base = "";
  401 + /*
  402 + Variable: cachedir
  403 +
  404 + Pasta onde ficarão armazenadas as imagens geradas pelo i3Geo para os LAYERS que permitem cache.
  405 +
  406 + Os layers que permitem cache são definidos no sistema de administração do i3Geo.
  407 +
  408 + Se cachedir for vazia, será utilizado o default do i3geo (diretório temporário)
  409 +
  410 + Exemplo
  411 +
  412 + $cachedir = 'c:/temp/cache';
  413 + */
  414 + $cachedir = "c:/temp/cache";
401 } 415 }
402 else //se for linux 416 else //se for linux
403 { 417 {
@@ -433,5 +447,6 @@ else //se for linux @@ -433,5 +447,6 @@ else //se for linux
433 $conexaoadmin = "";//$locaplic."/admin/php/conexaopostgresql.php"; 447 $conexaoadmin = "";//$locaplic."/admin/php/conexaopostgresql.php";
434 $interfacePadrao = "openlayers.htm"; 448 $interfacePadrao = "openlayers.htm";
435 $base = ""; 449 $base = "";
  450 + $cachedir = "";
436 } 451 }
437 ?> 452 ?>
438 \ No newline at end of file 453 \ No newline at end of file
ms_criamapa.php
@@ -191,7 +191,7 @@ if(isset($idioma) && $idioma != "") @@ -191,7 +191,7 @@ if(isset($idioma) && $idioma != "")
191 /* 191 /*
192 Cria os diretórios temporários que serão utilizados pelo i3geo para armazenar as imagens e outros dados. 192 Cria os diretórios temporários que serão utilizados pelo i3geo para armazenar as imagens e outros dados.
193 */ 193 */
194 -$diretorios = criaDirMapa($dir_tmp); 194 +$diretorios = criaDirMapa($dir_tmp,$cachedir);
195 if(!$diretorios) 195 if(!$diretorios)
196 {echo "<p style=color:red ><b>N&atilde;o foi poss&iacute;vel criar os diret&oacute;rios tempor&aacute;rios em $dir_tmp.</b></p>";exit;} 196 {echo "<p style=color:red ><b>N&atilde;o foi poss&iacute;vel criar os diret&oacute;rios tempor&aacute;rios em $dir_tmp.</b></p>";exit;}
197 criaIndex(); 197 criaIndex();
@@ -204,6 +204,7 @@ As variáveis vêm do arquivo ms_configura.php e são armazenadas em uma seção com @@ -204,6 +204,7 @@ As variáveis vêm do arquivo ms_configura.php e são armazenadas em uma seção com
204 */ 204 */
205 if (!isset($mapext)){$mapext="";} 205 if (!isset($mapext)){$mapext="";}
206 $editores_ = $editores; 206 $editores_ = $editores;
  207 +$cachedir_ = $cachedir;
207 $dir_tmp_ = $dir_tmp; 208 $dir_tmp_ = $dir_tmp;
208 $emailInstituicao_ = $emailInstituicao; 209 $emailInstituicao_ = $emailInstituicao;
209 $locmapserv_ = $locmapserv; 210 $locmapserv_ = $locmapserv;
@@ -261,6 +262,7 @@ isso pq algumas aplicações podem ser prejudicadas caso o aguarde seja mostrado @@ -261,6 +262,7 @@ isso pq algumas aplicações podem ser prejudicadas caso o aguarde seja mostrado
261 */ 262 */
262 $_SESSION["editores"] = $editores_; 263 $_SESSION["editores"] = $editores_;
263 $_SESSION["dir_tmp"] = $dir_tmp_; 264 $_SESSION["dir_tmp"] = $dir_tmp_;
  265 +$_SESSION["cachedir"] = $cachedir_;
264 $_SESSION["emailInstituicao"] = $emailInstituicao_; 266 $_SESSION["emailInstituicao"] = $emailInstituicao_;
265 $_SESSION["locmapserv"] = $locmapserv_; 267 $_SESSION["locmapserv"] = $locmapserv_;
266 $_SESSION["locaplic"] = $locaplic_; 268 $_SESSION["locaplic"] = $locaplic_;
@@ -208,7 +208,7 @@ if ($tipo == &quot;&quot; || $tipo == &quot;metadados&quot;) @@ -208,7 +208,7 @@ if ($tipo == &quot;&quot; || $tipo == &quot;metadados&quot;)
208 { 208 {
209 $l->set("name",$tx); 209 $l->set("name",$tx);
210 if($cache == true && strtolower($l->getmetadata("cache")) == "sim"){ 210 if($cache == true && strtolower($l->getmetadata("cache")) == "sim"){
211 - carregaCacheImagem($_GET["BBOX"],$t,$_GET["WIDTH"],$_GET["HEIGHT"]); 211 + carregaCacheImagem($_GET["BBOX"],$t,$_GET["WIDTH"],$_GET["HEIGHT"],$cachedir);
212 } 212 }
213 } 213 }
214 $l->setmetadata("gml_include_items","all"); 214 $l->setmetadata("gml_include_items","all");
@@ -433,11 +433,13 @@ function ogc_imprimeListaDeTemas() @@ -433,11 +433,13 @@ function ogc_imprimeListaDeTemas()
433 } 433 }
434 echo $imprimir."</body></html>"; 434 echo $imprimir."</body></html>";
435 } 435 }
436 -function carregaCacheImagem($bbox,$layer,$w,$h){ 436 +function carregaCacheImagem($bbox,$layer,$w,$h,$cachedir=""){
437 global $dir_tmp; 437 global $dir_tmp;
438 -  
439 $nome = $w.$h.$bbox.".png"; 438 $nome = $w.$h.$bbox.".png";
440 - $nome = $dir_tmp."/cache/".$layer."/".$nome; 439 + if($cachedir == "")
  440 + {$nome = $dir_tmp."/cache/".$layer."/".$nome;}
  441 + else
  442 + {$nome = $cachedir."/".$layer."/".$nome;}
441 if(file_exists($nome)) 443 if(file_exists($nome))
442 { 444 {
443 if (!function_exists('imagepng')) 445 if (!function_exists('imagepng'))
temas/biomashp.map
1 -MAP  
2 -  
3 -  
4 - FONTSET "c:\ms4w\apache\htdocs\i3geo\symbols\fontes.txt"  
5 - SYMBOLSET "c:\ms4w\apache\htdocs\i3geo\symbols\simbolos.sym" 1 +MAP
  2 + FONTSET "c:\ms4w\apache\htdocs\i3geo\symbols\fontes.txt"
  3 + SYMBOLSET "c:\ms4w\apache\htdocs\i3geo\symbols\simbolos.sym"
6 LAYER 4 LAYER
7 CONNECTION "" 5 CONNECTION ""
8 DATA "c:\ms4w\apache\htdocs\i3geo\aplicmap\dados\biomas.shp" 6 DATA "c:\ms4w\apache\htdocs\i3geo\aplicmap\dados\biomas.shp"
@@ -10,30 +8,31 @@ MAP @@ -10,30 +8,31 @@ MAP
10 GROUP "biomashp" 8 GROUP "biomashp"
11 HEADER "teste.htm" 9 HEADER "teste.htm"
12 METADATA 10 METADATA
13 - "cache" ""  
14 "ltempoitemimagem" "" 11 "ltempoitemimagem" ""
15 - "ltempoitemdescricao" "" 12 + "cache" "SIM"
16 "CLASSE" "SIM" 13 "CLASSE" "SIM"
17 - "ltempoiteminicio" "" 14 + "ltempoitemdescricao" ""
18 "palletestep" "" 15 "palletestep" ""
19 - "ltempoitemtip" "" 16 + "ltempoiteminicio" ""
20 "permitekmz" "sim" 17 "permitekmz" "sim"
21 - "ltempoitemtitulo" ""  
22 - "description_template" "" 18 + "ltempoitemtip" ""
23 "iconetema" "http://www.gpsdrive.de/development/map-icons/square.small/leisure/park.png" 19 "iconetema" "http://www.gpsdrive.de/development/map-icons/square.small/leisure/park.png"
  20 + "description_template" ""
  21 + "ltempoitemtitulo" ""
24 "ltempoitemlink" "" 22 "ltempoitemlink" ""
25 - "extensao" "-44 -23 -39 -21"  
26 "palletefile" "" 23 "palletefile" ""
  24 + "extensao" "-44 -23 -39 -21"
27 "NOMEORIGINAL" "" 25 "NOMEORIGINAL" ""
28 - "ltempoformatodata" ""  
29 "permitedownload" "sim" 26 "permitedownload" "sim"
  27 + "ltempoformatodata" ""
30 "ltempoitemicone" "" 28 "ltempoitemicone" ""
31 "download" "SIM" 29 "download" "SIM"
32 - "permiteogc" ""  
33 "permitekml" "sim" 30 "permitekml" "sim"
  31 + "permiteogc" ""
  32 + "convcaracter" ""
34 "TEMA" "bioma shp" 33 "TEMA" "bioma shp"
35 - "editorsql" ""  
36 "identifica" "NAO" 34 "identifica" "NAO"
  35 + "editorsql" ""
37 "ltempoitemfim" "" 36 "ltempoitemfim" ""
38 END 37 END
39 NAME "biomashp" 38 NAME "biomashp"
@@ -109,4 +108,6 @@ MAP @@ -109,4 +108,6 @@ MAP
109 TITLE "" 108 TITLE ""
110 END 109 END
111 END 110 END
  111 +
112 END 112 END
  113 +