Commit 2ae9201fa5873760a4cd497c4a2010627066c487

Authored by Edmar Moretti
1 parent e77b50fc

correcao no cache de imagens

admin/admin.db
No preview for this file type
classesphp/mapa_googleearth.php
@@ -35,6 +35,7 @@ Arquivo: @@ -35,6 +35,7 @@ Arquivo:
35 i3geo/classesphp/mapa_googleearth.php 35 i3geo/classesphp/mapa_googleearth.php
36 36
37 */ 37 */
  38 +include("sani_request.php");
38 //error_reporting(0); 39 //error_reporting(0);
39 error_reporting(0); 40 error_reporting(0);
40 //para efeitos de compatibilidade 41 //para efeitos de compatibilidade
@@ -245,7 +246,7 @@ function retornaWms($map_fileX,$postgis_mapa){ @@ -245,7 +246,7 @@ function retornaWms($map_fileX,$postgis_mapa){
245 { 246 {
246 if($img->imagepath == "") 247 if($img->imagepath == "")
247 {echo "Erro IMAGEPATH vazio";exit;} 248 {echo "Erro IMAGEPATH vazio";exit;}
248 - $nomer = ($img->imagepath)."filtroimgtemp".nomeRandomico(); 249 + $nomer = ($img->imagepath)."filtroimgtemp".nomeRandomico().".png";
249 $img->saveImage($nomer); 250 $img->saveImage($nomer);
250 filtraImagem($nomer,$_GET["TIPOIMAGEM"]); 251 filtraImagem($nomer,$_GET["TIPOIMAGEM"]);
251 $img = imagecreatefrompng($nomer); 252 $img = imagecreatefrompng($nomer);
@@ -259,7 +260,7 @@ function retornaWms($map_fileX,$postgis_mapa){ @@ -259,7 +260,7 @@ function retornaWms($map_fileX,$postgis_mapa){
259 ob_clean(); 260 ob_clean();
260 if($img->imagepath == "") 261 if($img->imagepath == "")
261 {echo "Erro IMAGEPATH vazio";exit;} 262 {echo "Erro IMAGEPATH vazio";exit;}
262 - $nomer = ($img->imagepath)."imgtemp".nomeRandomico(); 263 + $nomer = ($img->imagepath)."imgtemp".nomeRandomico().".png";
263 $img->saveImage($nomer); 264 $img->saveImage($nomer);
264 $img = imagecreatefrompng($nomer); 265 $img = imagecreatefrompng($nomer);
265 imagealphablending($img, false); 266 imagealphablending($img, false);
classesphp/mapa_googlemaps.php
@@ -61,6 +61,7 @@ i3geo/classesphp/mapa_googlemaps.php @@ -61,6 +61,7 @@ i3geo/classesphp/mapa_googlemaps.php
61 */ 61 */
62 //error_reporting(0); 62 //error_reporting(0);
63 error_reporting(0); 63 error_reporting(0);
  64 +include("sani_request.php");
64 //para efeitos de compatibilidade 65 //para efeitos de compatibilidade
65 if (!function_exists('ms_GetVersion')){ 66 if (!function_exists('ms_GetVersion')){
66 include_once ("carrega_ext.php"); 67 include_once ("carrega_ext.php");
classesphp/mapa_googlemaps_alternativo.php
@@ -1,447 +0,0 @@ @@ -1,447 +0,0 @@
1 -<?php  
2 -/*  
3 -Title: mapa_googlemaps.php  
4 -  
5 -Faz o processamento de um mapfile segundo as necessidades do i3geo, como por exemplo, fazendo a substitui&ccedil;&atilde;o  
6 -das vari&aacute;veis de conex&atilde;o com banco e outras opera&ccedil;&otilde;es espec&iacute;ficas do i3Geo.  
7 -  
8 -&Eacute; utilizado especificamente nas interfaces que utilizam a biblioteca Googlemaps.  
9 -  
10 -Precisa do codigo da "section" PHP aberta pelo i3Geo ou o codigo para acesso especial indicado no par&acirc;metro telaR  
11 -(veja a ferramenta TELAREMOTA).  
12 -  
13 -Parametros:  
14 -  
15 -g_sid {string} - codigo da "section" PHP  
16 -  
17 -telaR {string} - (opcional) utilizado para autorizar o uso do mapfile aberto (deve estar registrado em $fingerprint (vari&aacute;vel de se&ccedil;&atilde;o)  
18 -  
19 -tipolayer {fundo|} - (opcional) indica que a imagem a ser produzida comp&otilde;e o fundo do mapa  
20 -  
21 -BBOX {xmin xmax ymin ymax} - extens&atilde;o geogr&aacute;fica a ser utilizada no desenho do mapa  
22 -  
23 -WIDTH {numeric} - largura do mapa  
24 -  
25 -HEIGHT {numeric} - altura do mapa  
26 -  
27 -layer {string} - codigo do layer existente no mapa que ser&aacute; desenhado (ignorado quando telaR for definido)  
28 -  
29 -DESLIGACACHE {sim|nao} - for&ccedil;a a n&atilde;o usar o cache de imagens qd definido como "sim", do contr&aacute;rio, o uso ou n&atilde;o do cache ser&aacute; definido automaticamente  
30 -  
31 -TIPOIMAGEM {cinza|sepiaclara|sepianormal|negativo|detectaBordas|embassa|gaussian_blur|selective_blur|mean_removal|pixelate  
32 -} - filtro de imagem que ser&aacute; aplicado na imagem  
33 -  
34 -  
35 -Licenca:  
36 -  
37 -GPL2  
38 -  
39 -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet  
40 -  
41 -Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil  
42 -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com  
43 -  
44 -Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo  
45 -e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral  
46 -GNU conforme publicada pela Free Software Foundation;  
47 -  
48 -Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,  
49 -por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita  
50 -de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.  
51 -Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.  
52 -Voc&ecirc; deve ter recebido uma copia da Licen&ccedil;a P&uacute;blica Geral do  
53 -GNU junto com este programa; se n&atilde;o, escreva para a  
54 -Free Software Foundation, Inc., no endere&ccedil;o  
55 -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.  
56 -  
57 -Arquivo:  
58 -  
59 -i3geo/classesphp/mapa_googlemaps.php  
60 -  
61 -*/  
62 -//error_reporting(0);  
63 -error_reporting(0);  
64 -clearstatcache();  
65 -//verifica&ccedil;&atilde;o de seguran&ccedil;a  
66 -$_SESSION = array();  
67 -session_name("i3GeoPHP");  
68 -if(@$_GET["g_sid"]){  
69 - session_id($_GET["g_sid"]);  
70 -}  
71 -else{  
72 - ilegal();  
73 -}  
74 -session_start();  
75 -if(@$_SESSION["fingerprint"]){  
76 - $f = explode(",",$_SESSION["fingerprint"]);  
77 - if (md5('I3GEOSEC' . $_SERVER['HTTP_USER_AGENT'] . session_id()) != $f[0] && !in_array($_GET["telaR"],$f) ){  
78 - ilegal();  
79 - }  
80 -}  
81 -else{  
82 - exit;  
83 -}  
84 -if(!isset($_SESSION["map_file"])){  
85 - exit;  
86 -}  
87 -//  
88 -$map_fileX = $_SESSION["map_file"];  
89 -$postgis_mapa = $_SESSION["postgis_mapa"];  
90 -$cachedir = $_SESSION["cachedir"];  
91 -//  
92 -//converte a requisi&ccedil;&atilde;o do tile em coordenadas geo  
93 -//http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#tile_numbers_to_lon.2Flat_2  
94 -//  
95 -$x = $_GET["X"];  
96 -$y = $_GET["Y"];  
97 -$z = $_GET["Z"];  
98 -  
99 -$qyfile = dirname($map_fileX)."/".$_GET["layer"].".php";  
100 -$qy = file_exists($qyfile);  
101 -  
102 -if($qy == false && $_GET["cache"] == "sim" && $_GET["DESLIGACACHE"] != "sim"){  
103 - carregaCacheImagem($_SESSION["cachedir"],$_SESSION["map_file"],$_GET["tms"]);  
104 -}  
105 -  
106 -$n = pow(2,$z);  
107 -$lon1 = $x / $n * 360.0 - 180.0;  
108 -$lat2 = rad2deg(atan(sinh(pi() * (1 - 2 * $y / $n))));  
109 -$x++;  
110 -$y++;  
111 -$lon2 = $x / $n * 360.0 - 180.0;  
112 -$lat1 = rad2deg(atan(sinh(pi() * (1 - 2 * $y / $n))));  
113 -$x--;  
114 -$y--;  
115 -  
116 -$projInObj = ms_newprojectionobj("proj=latlong,a=6378137,b=6378137");  
117 -$projOutObj = ms_newprojectionobj("proj=merc,a=6378137,b=6378137,lat_ts=0.0,lon_0=0.0,x_0=0.0,y_0=0,k=1.0,units=m");  
118 -  
119 -$poPoint1 = ms_newpointobj();  
120 -$poPoint1->setXY($lon1, $lat1);  
121 -$poPoint1->project($projInObj, $projOutObj);  
122 -$poPoint2 = ms_newpointobj();  
123 -$poPoint2->setXY($lon2, $lat2);  
124 -$poPoint2->project($projInObj, $projOutObj);  
125 -$_GET["BBOX"] = $poPoint1->x." ".$poPoint1->y." ".$poPoint2->x." ".$poPoint2->y;  
126 -$_GET["mapext"] = str_replace(","," ",$_GET["BBOX"]);  
127 -  
128 -$mapa = ms_newMapObj($map_fileX);  
129 -$ret = $mapa->extent;  
130 -  
131 -$cache = false;  
132 -if(!isset($_GET["telaR"])){  
133 - //no caso de projecoes remotas, o mapfile nao e alterado  
134 - $numlayers = $mapa->numlayers;  
135 - for ($i=0;$i < $numlayers;++$i){  
136 - $l = $mapa->getlayer($i);  
137 - $layerName = $l->name;  
138 - $l->set("status",MS_OFF);  
139 - if($layerName == $_GET["layer"] || $l->group == $_GET["layer"] && $l->group != ""){  
140 - $l->set("template","none.htm");  
141 - $l->set("status",MS_DEFAULT);  
142 - //corrige um bug do mapserver que nao calcula a escala direito  
143 - $l->set("maxscaledenom",$l->maxscaledenom * 100000);  
144 - $l->set("minscaledenom",$l->minscaledenom * 100000);  
145 - if ($l->getmetadata("classesnome") != ""){  
146 - if(!function_exists("autoClasses")){  
147 - include_once("funcoes_gerais.php");  
148 - }  
149 - autoClasses($l,$mapa);  
150 - }  
151 - if(!empty($postgis_mapa)){  
152 - if($l->connectiontype == MS_POSTGIS){  
153 - $lcon = $l->connection;  
154 - if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){  
155 - if(($lcon == " ") || ($lcon == "")){  
156 - $l->set("connection",$postgis_mapa);  
157 - }  
158 - else{  
159 - $l->set("connection",$postgis_mapa[$lcon]);  
160 - }  
161 - }  
162 - }  
163 - }  
164 - if($l->getProjection() == "" ){  
165 - $l->setProjection("proj=latlong,a=6378137,b=6378137");  
166 - }  
167 - }  
168 - if($layerName == $_GET["layer"]){  
169 - if(strtolower($l->getmetadata("cache")) == "sim"){  
170 - $cache = true;  
171 - }  
172 - }  
173 - }  
174 -}  
175 -else{  
176 - $mapa->setProjection("proj=merc,a=6378137,b=6378137,lat_ts=0.0,lon_0=0.0,x_0=0.0,y_0=0,k=1.0,units=m");  
177 - $numlayers = $mapa->numlayers;  
178 - for ($i=0;$i < $numlayers;++$i){  
179 - $l = $mapa->getlayer($i);  
180 - if($l->getProjection() == "" )  
181 - {$l->setProjection("proj=latlong,a=6378137,b=6378137");}  
182 - }  
183 -}  
184 -if($_GET["layer"] == "")  
185 -{$cache = true;}  
186 -  
187 -if(($_GET == false) || ($qy) || (strtolower($_GET["DESLIGACACHE"]) == "sim"))  
188 -{$cache = false;}  
189 -elseif(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum")  
190 -{$cache = false;}  
191 -  
192 -if($cache == true){  
193 - carregaCacheImagem();  
194 -}  
195 -$mapa->setsize(256,256);  
196 -$mapext = explode(" ",$_GET["mapext"]);  
197 -$mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]);  
198 -  
199 -$o = $mapa->outputformat;  
200 -$o->set("imagemode",MS_IMAGEMODE_RGBA);  
201 -  
202 -if(!isset($_GET["telaR"])){  
203 - $legenda = $mapa->legend;  
204 - $legenda->set("status",MS_OFF);  
205 - $escala = $mapa->scalebar;  
206 - $escala->set("status",MS_OFF);  
207 -}  
208 -//  
209 -//se o layer nao for do tipo fundo  
210 -//  
211 -if($_GET["tipolayer"] != "fundo")  
212 -{$o->set("transparent",MS_TRUE);}  
213 -if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum")  
214 -{$o->setOption("QUANTIZE_FORCE","OFF");}  
215 -if($qy != true){  
216 - $img = $mapa->draw();  
217 -}  
218 -else{  
219 - $handle = fopen ($qyfile, "r");  
220 - $conteudo = fread ($handle, filesize ($qyfile));  
221 - fclose ($handle);  
222 - $shp = unserialize($conteudo);  
223 - $l = $mapa->getLayerByname($_GET["layer"]);  
224 - $indxlayer = $l->index;  
225 - if ($l->connectiontype !== MS_POSTGIS){  
226 - foreach ($shp as $indx)  
227 - {$mapa->querybyindex($indxlayer,-1,$indx,MS_TRUE);}  
228 - $qm = $mapa->querymap;  
229 - $qm->set("width",255);  
230 - $qm->set("height",255);  
231 - $img = $mapa->drawQuery();  
232 - }  
233 - else{  
234 - $img = $mapa->draw();  
235 - $c = $mapa->querymap->color;  
236 - $numclasses = $l->numclasses;  
237 - if ($numclasses > 0)  
238 - {  
239 - $classe0 = $l->getClass(0);  
240 - $classe0->setexpression("");  
241 - $classe0->set("name"," ");  
242 - for ($i=1; $i < $numclasses; ++$i)  
243 - {  
244 - $classe = $l->getClass($i);  
245 - $classe->set("status",MS_DELETE);  
246 - }  
247 - }  
248 - $cor = $classe0->getstyle(0)->color;  
249 - $cor->setrgb($c->red,$c->green,$c->blue);  
250 - $cor = $classe0->getstyle(0)->outlinecolor;  
251 - $cor->setrgb($c->red,$c->green,$c->blue);  
252 - $v = versaoMS();  
253 - if($v["principal"] == 6){  
254 - $l->open();  
255 - foreach ($shp as $indx){  
256 - $shape = $l->getShape(new resultObj($indx));  
257 - $shape->draw($mapa,$l,$img);  
258 - }  
259 - $l->close();  
260 - }  
261 - else{  
262 - $l->open();  
263 - foreach ($shp as $indx){  
264 - $shape = $l->getfeature($indx,-1);  
265 - $shape->draw($mapa,$l,$img);  
266 - }  
267 - $l->close();  
268 - }  
269 - }  
270 -}  
271 -if (!function_exists('imagepng')){  
272 - $s = PHP_SHLIB_SUFFIX;  
273 - @dl( 'php_gd.'.$s );  
274 - if (!function_exists('imagepng'))  
275 - {@dl( 'php_gd2.'.$s );}  
276 - if (!function_exists('imagepng'))  
277 - {$_GET["TIPOIMAGEM"] = "";}  
278 -}  
279 -if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum"){  
280 - if($img->imagepath == "")  
281 - {echo "Erro IMAGEPATH vazio";exit;}  
282 - $nomer = ($img->imagepath)."filtroimgtemp".nomeRand().".png";  
283 - $img->saveImage($nomer);  
284 - filtraImg($nomer,trim($_GET["TIPOIMAGEM"]));  
285 - $img = imagecreatefrompng($nomer);  
286 - imagealphablending($img, false);  
287 - imagesavealpha($img, true);  
288 - ob_clean();  
289 - echo header("Content-type: image/png \n\n");  
290 - imagepng($img);  
291 -}  
292 -else{  
293 - if($cache == true){  
294 - $nomer = salvaCacheImagem();  
295 - header('Content-Length: '.filesize($nomer));  
296 - header('Content-Type: image/png');  
297 - header('Cache-Control: max-age=3600, must-revalidate');  
298 - header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT');  
299 - header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nomer)).' GMT', true, 200);  
300 - fpassthru(fopen($nomer, 'rb'));  
301 - }  
302 - else{  
303 - $nomer = ($img->imagepath)."temp".nomeRand().".png";  
304 - $img->saveImage($nomer);  
305 - $img = imagecreatefrompng($nomer);  
306 - imagealphablending($img, false);  
307 - imagesavealpha($img, true);  
308 - ob_clean();  
309 - echo header("Content-type: image/png \n\n");  
310 - imagepng($img);  
311 - imagedestroy($img);  
312 - }  
313 - exit;  
314 -}  
315 -//$cachedir e definido no ms_configura.php  
316 -function salvaCacheImagem(){  
317 - global $img,$cachedir,$x,$y,$z,$map_fileX;  
318 - $layer = $_GET["layer"];  
319 - if($layer == "")  
320 - {$layer = "fundo";}  
321 - if($cachedir == ""){  
322 - $cachedir = dirname(dirname($map_fileX))."/cache";  
323 - }  
324 - $c = $cachedir."/googlemaps/$layer/$z/$x";  
325 - if(!file_exists($c."/$y.png")){  
326 - mkdir($cachedir."/googlemaps/$layer/$z/$x",0777,true);  
327 - $img->saveImage($c."/$y.png");  
328 - chmod($c."/$y.png",0777);  
329 - }  
330 - return $nome;  
331 -}  
332 -function carregaCacheImagem(){  
333 - global $img,$cachedir,$x,$y,$z,$map_fileX;  
334 - $layer = $_GET["layer"];  
335 - if($layer == "")  
336 - {$layer = "fundo";}  
337 - if($cachedir == ""){  
338 - $cachedir = dirname(dirname($map_fileX))."/cache";  
339 - }  
340 - $c = $cachedir."/googlemaps/$layer/$z/$x";  
341 - if(file_exists($c."/$y.png")){  
342 - header('Content-Length: '.filesize($c."/$y.png"));  
343 - header('Content-Type: image/png');  
344 - fpassthru(fopen($c."/$y.png", 'rb'));  
345 - exit;  
346 - }  
347 -}  
348 -/*  
349 -function salvaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){  
350 - global $img,$map_size;  
351 - //layers que s&atilde;o sempre iguais  
352 - //error_reporting(0);  
353 - if($layer == "copyright" || $layer == "")  
354 - {$bbox = "";}  
355 - if($layer == "")  
356 - {$layer = "fundo";}  
357 - if($cachedir == "")  
358 - {$cachedir = dirname(dirname($map))."/cache/googlemaps/".$layer;}  
359 - else  
360 - {$cachedir = $cachedir."/googlemaps/".$layer;}  
361 - @mkdir($cachedir,0777);  
362 - $nome = $cachedir."/".$w.$h.$bbox.".png";  
363 - if(!file_exists($nome))  
364 - {$img->saveImage($nome);}  
365 - return $nome;  
366 -}  
367 -function carregaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){  
368 - if($layer == "copyright" || $layer == "")  
369 - {$bbox = "";}  
370 - if($layer == "")  
371 - {$layer = "fundo";}  
372 - $nome = $w.$h.$bbox.".png";  
373 - if($cachedir == "")  
374 - {$nome = dirname(dirname($map))."/cache/googlemaps/".$layer."/".$nome;}  
375 - else  
376 - {$nome = $cachedir."/googlemaps/".$layer."/".$nome;}  
377 - if(file_exists($nome)){  
378 - header('Content-Length: '.filesize($nome));  
379 - header('Content-Type: image/png');  
380 - fpassthru(fopen($nome, 'rb'));  
381 - exit;  
382 - }  
383 -}  
384 -*/  
385 -function nomeRand($n=10)  
386 -{  
387 - $nomes = "";  
388 - $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ';  
389 - $max = 51;  
390 - for($i=0; $i < $n; ++$i)  
391 - {$nomes .= $a{mt_rand(0, $max)};}  
392 - return $nomes;  
393 -}  
394 -function filtraImg($nomer,$tipoimagem){  
395 - include_once("classe_imagem.php");  
396 - $tiposImagem = explode(" ",$tipoimagem);  
397 - foreach ($tiposImagem as $tipoimagem){  
398 - $m = new Imagem($nomer);  
399 - if ($tipoimagem == "cinza")  
400 - {imagepng($m->cinzaNormal(),str_replace("\\","/",$nomer));}  
401 - if ($tipoimagem == "sepiaclara")  
402 - {imagepng($m->sepiaClara(),str_replace("\\","/",$nomer));}  
403 - if ($tipoimagem == "sepianormal")  
404 - {imagepng($m->sepiaNormal(),str_replace("\\","/",$nomer));}  
405 - if ($tipoimagem == "negativo")  
406 - {imagepng($m->negativo(),str_replace("\\","/",$nomer));}  
407 - if ($tipoimagem == "detectaBordas")  
408 - {imagepng($m->detectaBordas(),str_replace("\\","/",$nomer));}  
409 - if ($tipoimagem == "embassa")  
410 - {imagepng($m->embassa(),str_replace("\\","/",$nomer));}  
411 - if ($tipoimagem == "gaussian_blur")  
412 - {imagepng($m->gaussian_blur(),str_replace("\\","/",$nomer));}  
413 - if ($tipoimagem == "selective_blur")  
414 - {imagepng($m->selective_blur(),str_replace("\\","/",$nomer));}  
415 - if ($tipoimagem == "mean_removal")  
416 - {imagepng($m->mean_removal(),str_replace("\\","/",$nomer));}  
417 - if ($tipoimagem == "pixelate")  
418 - {imagepng($m->pixelate(),str_replace("\\","/",$nomer));}  
419 - }  
420 -}  
421 -function ilegal(){  
422 - $img = imagecreatefrompng("../imagens/ilegal.png");  
423 - imagealphablending($img, false);  
424 - imagesavealpha($img, true);  
425 - ob_clean();  
426 - echo header("Content-type: image/png \n\n");  
427 - imagepng($img);  
428 - exit;  
429 -}  
430 -function versaoMS()  
431 -{  
432 - $v = "5.0.0";  
433 - $vs = explode(" ",ms_GetVersion());  
434 - $cvs = count($vs);  
435 - for ($i=0;$i<$cvs;++$i)  
436 - {  
437 - if(trim(strtolower($vs[$i])) == "version")  
438 - {  
439 - $v = $vs[$i+1];  
440 - }  
441 - }  
442 - $versao["completa"] = $v;  
443 - $v = explode(".",$v);  
444 - $versao["principal"] = $v[0];  
445 - return $versao;  
446 -}  
447 -?>  
448 \ No newline at end of file 0 \ No newline at end of file
classesphp/mapa_openlayers.php
@@ -59,6 +59,7 @@ Arquivo: @@ -59,6 +59,7 @@ Arquivo:
59 i3geo/classesphp/mapa_openlayers.php 59 i3geo/classesphp/mapa_openlayers.php
60 60
61 */ 61 */
  62 +include("sani_request.php");
62 //para efeitos de compatibilidade 63 //para efeitos de compatibilidade
63 if (!function_exists('ms_GetVersion')){ 64 if (!function_exists('ms_GetVersion')){
64 include_once ("carrega_ext.php"); 65 include_once ("carrega_ext.php");
@@ -145,7 +146,7 @@ if(!empty($_GET[&quot;request&quot;])){ @@ -145,7 +146,7 @@ if(!empty($_GET[&quot;request&quot;])){
145 // 146 //
146 //resolve o problema da selecao nas versoes mais recentes nova do mapserver 147 //resolve o problema da selecao nas versoes mais recentes nova do mapserver
147 // 148 //
148 -$qyfile = dirname($map_fileX)."/".$_GET["layer"].".php"; 149 +$qyfile = dirname($map_fileX)."/".$_GET["layer"];
149 $qy = file_exists($qyfile); 150 $qy = file_exists($qyfile);
150 151
151 if($_GET["REQUEST"] == "getlegendgraphic" || $_GET["REQUEST"] == "getfeatureinfo" || $_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "getfeature"){ 152 if($_GET["REQUEST"] == "getlegendgraphic" || $_GET["REQUEST"] == "getfeatureinfo" || $_GET["REQUEST"] == "GetFeatureInfo" || strtolower($_GET["REQUEST"]) == "getfeature"){
@@ -493,6 +494,7 @@ function salvaCacheImagem($cachedir,$map,$tms){ @@ -493,6 +494,7 @@ function salvaCacheImagem($cachedir,$map,$tms){
493 else{ 494 else{
494 $nome = $cachedir.$tms; 495 $nome = $cachedir.$tms;
495 } 496 }
  497 + $nome = $nome.".png";
496 if(!file_exists($nome)){ 498 if(!file_exists($nome)){
497 @mkdir(dirname($nome),0774,true); 499 @mkdir(dirname($nome),0774,true);
498 chmod(dirname($nome),0774); 500 chmod(dirname($nome),0774);
@@ -514,6 +516,7 @@ function carregaCacheImagem($cachedir,$map,$tms,$i3georendermode=0){ @@ -514,6 +516,7 @@ function carregaCacheImagem($cachedir,$map,$tms,$i3georendermode=0){
514 else{ 516 else{
515 $nome = $cachedir.$tms; 517 $nome = $cachedir.$tms;
516 } 518 }
  519 + $nome = $nome.".png";
517 if(file_exists($nome)){ 520 if(file_exists($nome)){
518 if($i3georendermode = 0 || $i3georendermode = 1 || empty($i3georendermode)){ 521 if($i3georendermode = 0 || $i3georendermode = 1 || empty($i3georendermode)){
519 header('Content-Length: '.filesize($nome)); 522 header('Content-Length: '.filesize($nome));
classesphp/mapa_openlayers_alternativo.php
@@ -1,429 +0,0 @@ @@ -1,429 +0,0 @@
1 -<?php  
2 -/*  
3 -Title: mapa_openlayers.php  
4 -  
5 -Faz o processamento de um mapfile segundo as necessidades do i3geo, como por exemplo, fazendo a substitui&ccedil;&atilde;o  
6 -das vari&aacute;veis de conex&atilde;o com banco e outras opera&ccedil;&otilde;es espec&iacute;ficas do i3Geo.  
7 -  
8 -&Eacute; utilizado especificamente nas interfaces que utilizam a biblioteca OpenLayers em LAYERS do tipo WMS.  
9 -  
10 -Precisa do codigo da "section" PHP aberta pelo i3Geo ou o codigo para acesso especial indicado no par&acirc;metro telaR  
11 -(veja a ferramenta TELAREMOTA).  
12 -  
13 -Parametros:  
14 -  
15 -g_sid {string} - codigo da "section" PHP  
16 -  
17 -telaR {string} - (opcional) utilizado para autorizar o uso do mapfile aberto (deve estar registrado em $fingerprint (vari&aacute;vel de se&ccedil;&atilde;o)  
18 -  
19 -tipolayer {fundo|} - (opcional) indica que a imagem a ser produzida comp&otilde;e o fundo do mapa  
20 -  
21 -BBOX {xmin xmax ymin ymax} - extens&atilde;o geogr&aacute;fica a ser utilizada no desenho do mapa  
22 -  
23 -WIDTH {numeric} - largura do mapa  
24 -  
25 -HEIGHT {numeric} - altura do mapa  
26 -  
27 -layer {string} - codigo do layer existente no mapa que ser&aacute; desenhado (ignorado quando telaR for definido)  
28 -  
29 -DESLIGACACHE {sim|nao} - for&ccedil;a a n&atilde;o usar o cache de imagens qd definido como "sim", do contr&aacute;rio, o uso ou n&atilde;o do cache ser&aacute; definido automaticamente  
30 -  
31 -TIPOIMAGEM {cinza|sepiaclara|sepianormal|negativo|detectaBordas|embassa|gaussian_blur|selective_blur|mean_removal|pixelate  
32 -} - filtro de imagem que ser&aacute; aplicado na imagem  
33 -  
34 -Licenca:  
35 -  
36 -GPL2  
37 -  
38 -i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet  
39 -  
40 -Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil  
41 -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com  
42 -  
43 -Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo  
44 -e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral  
45 -GNU conforme publicada pela Free Software Foundation;  
46 -  
47 -Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,  
48 -por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita  
49 -de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.  
50 -Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.  
51 -Voc&ecirc; deve ter recebido uma cópia da Licen&ccedil;a P&uacute;blica Geral do  
52 -GNU junto com este programa; se n&atilde;o, escreva para a  
53 -Free Software Foundation, Inc., no endere&ccedil;o  
54 -59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.  
55 -  
56 -Arquivo:  
57 -  
58 -i3geo/classesphp/mapa_openlayers.php  
59 -  
60 -*/  
61 -error_reporting(0);  
62 -//para efeitos de compatibilidade  
63 -if (!function_exists('ms_GetVersion')){  
64 - include_once ("carrega_ext.php");  
65 -}  
66 -//carrega dados da se&ccedil;&atilde;o, verifica seguran&ccedil;a  
67 -inicializa();  
68 -//  
69 -//calcula a extensao geografica com base no x,y,z  
70 -//nos casos do modo notile, a requisicao e feita como se fosse um wms  
71 -//quando for do tipo tms $_GET["tms"] contem os parametros do tile  
72 -if(isset($_GET["tms"])){  
73 - $_GET["WIDTH"] = 256;  
74 - $_GET["HEIGHT"] = 256;  
75 - $temp = explode("/",$_GET["tms"]);  
76 - $z = $temp[2];  
77 - $x = $temp[3];  
78 - $y = str_replace(".png","",$temp[4]);  
79 -  
80 - $n = pow(2,$z+1);  
81 - $lon1 = $x / $n * 360.0 - 180.0;  
82 - $lon2 = ($x+1) / $n * 360.0 - 180.0;  
83 - $n = pow(2,$z);  
84 - $lat1 = $y / $n * 180.0 - 90.0;  
85 - $lat2 = ($y+1) / $n * 180.0 - 90.0;  
86 - $_GET["BBOX"] = $lon1." ".$lat1." ".$lon2." ".$lat2;  
87 -}  
88 -$map_fileX = $_SESSION["map_file"];  
89 -//  
90 -//resolve o problema da sele&ccedil;&atilde;o na vers&atilde;o nova do mapserver  
91 -//  
92 -$qyfile = dirname($map_fileX)."/".$_GET["layer"].".php";  
93 -$qy = file_exists($qyfile);  
94 -  
95 -if($qy == false && $_GET["cache"] == "sim" && $_GET["DESLIGACACHE"] != "sim"){  
96 - carregaCacheImagem($_SESSION["cachedir"],$_SESSION["map_file"],$_GET["tms"]);  
97 -}  
98 -//  
99 -//map_fileX e para o caso register_globals = On no PHP.INI  
100 -  
101 -if(isset($_GET["tipolayer"]) && $_GET["tipolayer"] == "fundo"){  
102 - $map_fileX = str_replace(".map","fundo.map",$map_fileX);  
103 -}  
104 -$postgis_mapa = $_SESSION["postgis_mapa"];  
105 -$cachedir = $_SESSION["cachedir"];  
106 -if(isset($_GET["BBOX"])){  
107 - $_GET["mapext"] = str_replace(","," ",$_GET["BBOX"]);  
108 - $_GET["map_size"] = $_GET["WIDTH"]." ".$_GET["HEIGHT"];  
109 -}  
110 -$_GET["TIPOIMAGEM"] = trim($_GET["TIPOIMAGEM"]);  
111 -$mapa = ms_newMapObj($map_fileX);  
112 -  
113 -//  
114 -//processa os layers do mapfile  
115 -//  
116 -if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao e alterado  
117 - $numlayers = $mapa->numlayers;  
118 - $cache = false;  
119 - for($i = 0;$i < $numlayers;++$i){  
120 - $l = $mapa->getLayer($i);  
121 - $layerName = $l->name;  
122 - if($layerName != $_GET["layer"]){  
123 - $l->set("status",MS_OFF);  
124 - }  
125 - if($layerName == $_GET["layer"] || $l->group == $_GET["layer"] && $l->group != ""){  
126 - if ($l->getmetadata("classesnome") != ""){  
127 - if(!function_exists("autoClasses"))  
128 - {include_once("funcoes_gerais.php");}  
129 - autoClasses($l,$mapa);  
130 - }  
131 - $l->set("status",MS_DEFAULT);  
132 - $l->set("template","none.htm");  
133 - if (!empty($postgis_mapa)){  
134 - if ($l->connectiontype == MS_POSTGIS){  
135 - $lcon = $l->connection;  
136 - if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){  
137 - if(($lcon == " ") || ($lcon == ""))  
138 - {$l->set("connection",$postgis_mapa);}  
139 - else  
140 - {$l->set("connection",$postgis_mapa[$lcon]);}  
141 - }  
142 - }  
143 - }  
144 - }  
145 - if($layerName == $_GET["layer"]){  
146 - if(strtolower($l->getmetadata("cache")) == "sim"){  
147 - $cache = true;  
148 - $nomecache = $l->getmetadata("nomeoriginal");  
149 - if($nomecache == ""){  
150 - $nomecache = $layerName;  
151 - }  
152 - }  
153 - }  
154 - if($_GET["REQUEST"] == "GetFeatureInfo" || $_GET["REQUEST"] == "getfeature"){  
155 - $l->setmetadata("gml_include_items","all");  
156 - $l->setmetadata("WMS_INCLUDE_ITEMS","all");  
157 - $l->setmetadata("WFS_INCLUDE_ITEMS","all");  
158 - $l->setmetadata("ows_enable_request","*");  
159 - $l->set("dump",MS_TRUE);  
160 - $l->setmetadata("ows_srs","AUTO");  
161 - }  
162 - }  
163 -}  
164 -if (!function_exists('imagepng'))  
165 -{$_GET["TIPOIMAGEM"] = "";}  
166 -  
167 -if($_GET["layer"] == "")  
168 -{$cache = true;}  
169 -  
170 -if(($_GET == false) || ($qy) || (strtolower($_GET["DESLIGACACHE"]) == "sim")){  
171 - $cache = false;  
172 -}  
173 -elseif($_GET["TIPOIMAGEM"] != "" && $_GET["TIPOIMAGEM"] != "nenhum")  
174 -{$cache = false;}  
175 -  
176 -if($cache == true && $_GET["cache"] != "nao"){  
177 - //carregaCacheImagem($cachedir,$_GET["BBOX"],$nomecache,$map_fileX,$_GET["WIDTH"],$_GET["HEIGHT"]);  
178 - carregaCacheImagem($cachedir,$map,$_GET["tms"]);  
179 -}  
180 -$map_size = explode(" ",$_GET["map_size"]);  
181 -$mapa->setsize($map_size[0],$map_size[1]);  
182 -if(isset($_GET["mapext"])){  
183 - $mapext = explode(" ",$_GET["mapext"]);  
184 - $mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]);  
185 -}  
186 -//  
187 -//qd a cahamda e para um WMS, redireciona para ogc.php  
188 -//  
189 -if($_GET["REQUEST"] == "GetFeatureInfo" || $_GET["request"] == "getfeature"){  
190 - $req = ms_newowsrequestobj();  
191 - $_GET = array_merge($_GET,$_POST);  
192 - foreach ($_GET as $k=>$v){  
193 - $req->setParameter($k, $v);  
194 - }  
195 - $proto = "http" . ((isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == "on") ? "s" : "") . "://";  
196 - $server = isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : $_SERVER['SERVER_NAME'];  
197 - $or = $proto.$server.$_SERVER['PHP_SELF'];  
198 - $mapa->setmetadata("wfs_onlineresource",$or."?".$_SERVER["QUERY_STRING"]);  
199 -  
200 - ms_ioinstallstdouttobuffer();  
201 - $mapa->owsdispatch($req);  
202 - $contenttype = ms_iostripstdoutbuffercontenttype();  
203 - header("Content-type: $contenttype");  
204 - ms_iogetStdoutBufferBytes();  
205 - ms_ioresethandlers();  
206 - exit;  
207 -}  
208 -  
209 -$o = $mapa->outputformat;  
210 -$o->set("imagemode",MS_IMAGEMODE_RGBA);  
211 -if(!isset($_GET["telaR"])){  
212 - $legenda = $mapa->legend;  
213 - $legenda->set("status",MS_OFF);  
214 - $escala = $mapa->scalebar;  
215 - $escala->set("status",MS_OFF);  
216 -}  
217 -//  
218 -//se o layer n&atilde;o for do tipo fundo  
219 -//  
220 -if($_GET["tipolayer"] != "fundo")  
221 -{$o->set("transparent",MS_TRUE);}  
222 -if($qy != true)  
223 -{$img = $mapa->draw();}  
224 -else{  
225 - $handle = fopen ($qyfile, "r");  
226 - $conteudo = fread ($handle, filesize ($qyfile));  
227 - fclose ($handle);  
228 - $shp = unserialize($conteudo);  
229 - $l = $mapa->getLayerByname($_GET["layer"]);  
230 - if ($l->connectiontype != MS_POSTGIS){  
231 - $indxlayer = $l->index;  
232 - foreach ($shp as $indx)  
233 - {$mapa->querybyindex($indxlayer,-1,$indx,MS_TRUE);}  
234 - $qm = $mapa->querymap;  
235 - $qm->set("width",$map_size[0]);  
236 - $qm->set("height",$map_size[1]);  
237 - $img = $mapa->drawQuery();  
238 - }  
239 - else{  
240 - $img = $mapa->draw();  
241 - $c = $mapa->querymap->color;  
242 - $numclasses = $l->numclasses;  
243 - if ($numclasses > 0)  
244 - {  
245 - $classe0 = $l->getClass(0);  
246 - $classe0->setexpression("");  
247 - $classe0->set("name"," ");  
248 - for ($i=1; $i < $numclasses; ++$i)  
249 - {  
250 - $classe = $l->getClass($i);  
251 - $classe->set("status",MS_DELETE);  
252 - }  
253 - }  
254 - $cor = $classe0->getstyle(0)->color;  
255 - $cor->setrgb($c->red,$c->green,$c->blue);  
256 - $cor = $classe0->getstyle(0)->outlinecolor;  
257 - $cor->setrgb($c->red,$c->green,$c->blue);  
258 - $status = $l->open();  
259 - $status = $l->whichShapes($mapa->extent);  
260 - while ($shape = $l->nextShape())  
261 - {  
262 - if(in_array($shape->index,$shp))  
263 - $shape->draw($mapa,$l,$img);  
264 - }  
265 - $l->close();  
266 - }  
267 - $cache = false;  
268 -}  
269 -if($_GET["TIPOIMAGEM"] != "" && $_GET["TIPOIMAGEM"] != "nenhum"){  
270 - if($img->imagepath == "")  
271 - {echo "Erro IMAGEPATH vazio";exit;}  
272 - $nomer = ($img->imagepath)."filtroimgtemp".nomeRand().".png";  
273 - $img->saveImage($nomer);  
274 - filtraImg($nomer,$_GET["TIPOIMAGEM"]);  
275 - $img = imagecreatefrompng($nomer);  
276 - imagealphablending($img, false);  
277 - imagesavealpha($img, true);  
278 - ob_clean();  
279 - echo header("Content-type: image/png \n\n");  
280 - imagepng($img);  
281 - imagedestroy($img);  
282 -}  
283 -else{  
284 - if($cache == true && $_GET["cache"] != "nao"){  
285 - //$nomer = salvaCacheImagem($cachedir,$_GET["BBOX"],$nomecache,$map_fileX,$_GET["WIDTH"],$_GET["HEIGHT"]);  
286 - $nomer = salvaCacheImagem($cachedir,$map_fileX,$_GET["tms"]);  
287 - header('Content-Length: '.filesize($nomer));  
288 - header('Content-Type: image/png');  
289 - header('Cache-Control: max-age=3600, must-revalidate');  
290 - header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT');  
291 - header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nomer)).' GMT', true, 200);  
292 - fpassthru(fopen($nomer, 'rb'));  
293 - }  
294 - else{  
295 - if($img->imagepath == "")  
296 - {echo "Erro IMAGEPATH vazio";exit;}  
297 - $nomer = ($img->imagepath)."temp".nomeRand().".png";  
298 - $img->saveImage($nomer);  
299 - $img = imagecreatefrompng($nomer);  
300 - imagealphablending($img, false);  
301 - imagesavealpha($img, true);  
302 - ob_clean();  
303 - echo header("Content-type: image/png \n\n");  
304 - imagepng($img);  
305 - imagedestroy($img);  
306 - }  
307 -}  
308 -function salvaCacheImagem($cachedir,$map,$tms){  
309 - global $img;  
310 - if($cachedir == ""){  
311 - $nome = dirname(dirname($map))."/cache".$tms;  
312 - }  
313 - else{  
314 - $nome = $cachedir.$tms;  
315 - }  
316 - if(!file_exists($nome)){  
317 - @mkdir(dirname($nome),0777,true);  
318 - $img->saveImage($nome);  
319 - chmod($nome,0777);  
320 - }  
321 - return $nome;  
322 -}  
323 -function carregaCacheImagem($cachedir,$map,$tms){  
324 - if($cachedir == ""){  
325 - $nome = dirname(dirname($map))."/cache".$tms;  
326 - }  
327 - else{  
328 - $nome = $cachedir.$tms;  
329 - }  
330 - if(file_exists($nome)){  
331 - header('Content-Length: '.filesize($nome));  
332 - header('Content-Type: image/png');  
333 - header('Cache-Control: max-age=3600, must-revalidate');  
334 - header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT');  
335 - header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200);  
336 - $etag = md5_file($nome);  
337 - header('Etag: '.$etag);  
338 - fpassthru(fopen($nome, 'rb'));  
339 - exit;  
340 - }  
341 -}  
342 -function XcarregaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){  
343 - if($layer == "copyright" || $layer == "")  
344 - {$bbox = "";}  
345 - if($layer == "")  
346 - {$layer = "fundo";}  
347 - $nome = $w.$h.$bbox.".png";  
348 - if($cachedir == "")  
349 - {$nome = dirname(dirname($map))."/cache/".$layer."/".$nome;}  
350 - else  
351 - {$nome = $cachedir."/".$layer."/".$nome;}  
352 - if(file_exists($nome)){  
353 - header('Content-Length: '.filesize($nome));  
354 - header('Content-Type: image/png');  
355 - header('Cache-Control: max-age=3600, must-revalidate');  
356 - header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT');  
357 - header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nome)).' GMT', true, 200);  
358 - $etag = md5_file($nome);  
359 - header('Etag: '.$etag);  
360 - fpassthru(fopen($nome, 'rb'));  
361 - exit;  
362 - }  
363 -}  
364 -function nomeRand($n=10)  
365 -{  
366 - $nomes = "";  
367 - $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ';  
368 - $max = 51;  
369 - for($i=0; $i < $n; ++$i)  
370 - {$nomes .= $a{mt_rand(0, $max)};}  
371 - return $nomes;  
372 -}  
373 -function filtraImg($nomer,$tipoimagem){  
374 - include_once("classe_imagem.php");  
375 - $tiposImagem = explode(" ",$tipoimagem);  
376 - foreach ($tiposImagem as $tipoimagem){  
377 - $m = new Imagem($nomer);  
378 - if ($tipoimagem == "cinza")  
379 - {imagepng($m->cinzaNormal(),str_replace("\\","/",$nomer));}  
380 - if ($tipoimagem == "sepiaclara")  
381 - {imagepng($m->sepiaClara(),str_replace("\\","/",$nomer));}  
382 - if ($tipoimagem == "sepianormal")  
383 - {imagepng($m->sepiaNormal(),str_replace("\\","/",$nomer));}  
384 - if ($tipoimagem == "negativo")  
385 - {imagepng($m->negativo(),str_replace("\\","/",$nomer));}  
386 - if ($tipoimagem == "detectaBordas")  
387 - {imagepng($m->detectaBordas(),str_replace("\\","/",$nomer));}  
388 - if ($tipoimagem == "embassa")  
389 - {imagepng($m->embassa(),str_replace("\\","/",$nomer));}  
390 - if ($tipoimagem == "gaussian_blur")  
391 - {imagepng($m->gaussian_blur(),str_replace("\\","/",$nomer));}  
392 - if ($tipoimagem == "selective_blur")  
393 - {imagepng($m->selective_blur(),str_replace("\\","/",$nomer));}  
394 - if ($tipoimagem == "mean_removal")  
395 - {imagepng($m->mean_removal(),str_replace("\\","/",$nomer));}  
396 - if ($tipoimagem == "pixelate")  
397 - {imagepng($m->pixelate(),str_replace("\\","/",$nomer));}  
398 - }  
399 -}  
400 -function inicializa(){  
401 - clearstatcache();  
402 - session_name("i3GeoPHP");  
403 - if(@$_GET["g_sid"]){  
404 - session_id($_GET["g_sid"]);  
405 - }  
406 - else{  
407 - ilegal();  
408 - }  
409 - session_start();  
410 - if(@$_SESSION["fingerprint"]){  
411 - $f = explode(",",$_SESSION["fingerprint"]);  
412 - if (md5('I3GEOSEC' . $_SERVER['HTTP_USER_AGENT'] . session_id()) != $f[0] && !in_array($_GET["telaR"],$f) )  
413 - {ilegal();}  
414 - }  
415 - else  
416 - {exit;}  
417 - if(!isset($_SESSION["map_file"]))  
418 - {exit;}  
419 -}  
420 -function ilegal(){  
421 - $img = imagecreatefrompng("../imagens/ilegal.png");  
422 - imagealphablending($img, false);  
423 - imagesavealpha($img, true);  
424 - ob_clean();  
425 - echo header("Content-type: image/png \n\n");  
426 - imagepng($img);  
427 - exit;  
428 -}  
429 -?>  
430 \ No newline at end of file 0 \ No newline at end of file
temas/_lbiomashp.map
@@ -7,7 +7,7 @@ MAP @@ -7,7 +7,7 @@ MAP
7 METADATA 7 METADATA
8 "METAESTAT_ID_MEDIDA_VARIAVEL" "" 8 "METAESTAT_ID_MEDIDA_VARIAVEL" ""
9 "TIP" "CD_LEGENDA" 9 "TIP" "CD_LEGENDA"
10 - "CACHE" "nao" 10 + "CACHE" "sim"
11 "CLASSE" "SIM" 11 "CLASSE" "SIM"
12 "permitekmz" "sim" 12 "permitekmz" "sim"
13 "ITENSDESC" "Bioma Teste de acentuação" 13 "ITENSDESC" "Bioma Teste de acentuação"