Commit 7b9c91bf1af154e0407ae8ccbf093c8e864f2ddb
1 parent
3b9a8fef
Exists in
master
and in
7 other branches
Contorno de erro do Mapserver na versão 6.0.3 ao criar imagens via save()
Showing
3 changed files
with
398 additions
and
418 deletions
Show diff stats
admin/admin.db
No preview for this file type
classesphp/mapa_googlemaps.php
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ção | ||
6 | -das variáveis de conexão com banco e outras operações específicas do i3Geo. | ||
7 | - | ||
8 | -É utilizado especificamente nas interfaces que utilizam a biblioteca Googlemaps. | ||
9 | - | ||
10 | -Precisa do código da "section" PHP aberta pelo i3Geo ou o código para acesso especial indicado no parâmetro telaR | ||
11 | -(veja a ferramenta TELAREMOTA). | ||
12 | - | ||
13 | -Parametros: | ||
14 | - | ||
15 | -g_sid {string} - código da "section" PHP | ||
16 | - | ||
17 | -telaR {string} - (opcional) utilizado para autorizar o uso do mapfile aberto (deve estar registrado em $fingerprint (variável de seção) | ||
18 | - | ||
19 | -tipolayer {fundo|} - (opcional) indica que a imagem a ser produzida compõe o fundo do mapa | ||
20 | - | ||
21 | -BBOX {xmin xmax ymin ymax} - extensão geográ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} - código do layer existente no mapa que será desenhado (ignorado quando telaR for definido) | ||
28 | - | ||
29 | -DESLIGACACHE {sim|nao} - força a não usar o cache de imagens qd definido como "sim", do contrário, o uso ou não do cache será definido automaticamente | ||
30 | - | ||
31 | -TIPOIMAGEM {cinza|sepiaclara|sepianormal|negativo|detectaBordas|embassa|gaussian_blur|selective_blur|mean_removal|pixelate | ||
32 | -} - filtro de imagem que será 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ério do Meio Ambiente Brasil | ||
42 | -Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
43 | - | ||
44 | -Este programa é software livre; você pode redistribuí-lo | ||
45 | -e/ou modificá-lo sob os termos da Licença Pública Geral | ||
46 | -GNU conforme publicada pela Free Software Foundation; | ||
47 | - | ||
48 | -Este programa é distribuído na expectativa de que seja útil, | ||
49 | -porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
50 | -de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | ||
51 | -Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
52 | -Você deve ter recebido uma cópia da Licença Pública Geral do | ||
53 | -GNU junto com este programa; se não, escreva para a | ||
54 | -Free Software Foundation, Inc., no endereç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(E_ALL); | ||
63 | -error_reporting(0); | ||
64 | -clearstatcache(); | ||
65 | -//verificação de seguranç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 | - } else{ | ||
80 | - if($img->imagepath == "") | ||
81 | - {echo "Erro IMAGEPATH vazio";exit;} | ||
82 | - if(ms_GetVersionInt() != 60003 ){ | ||
83 | - header('Content-Type: image/png'); | ||
84 | - $img->saveImage(); | ||
85 | - } | ||
86 | - else{ | ||
87 | - $nomer = ($img->imagepath)."temp".nomeRand().".png"; | ||
88 | - $img->saveImage($nomer); | ||
89 | - $img = imagecreatefrompng($nomer); | ||
90 | - imagealphablending($img, false); | ||
91 | - imagesavealpha($img, true); | ||
92 | - ob_clean(); | ||
93 | - echo header("Content-type: image/png \n\n"); | ||
94 | - imagepng($img); | ||
95 | - imagedestroy($img); | ||
96 | - } | ||
97 | - } | ||
98 | -} | ||
99 | -else{ | ||
100 | - exit; | ||
101 | -} | ||
102 | -if(!isset($_SESSION["map_file"])){ | ||
103 | - exit; | ||
104 | -} | ||
105 | -// | ||
106 | -$map_fileX = $_SESSION["map_file"]; | ||
107 | -$postgis_mapa = $_SESSION["postgis_mapa"]; | ||
108 | -$cachedir = $_SESSION["cachedir"]; | ||
109 | -// | ||
110 | -//converte a requisição do tile em coordenadas geo | ||
111 | -//http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#tile_numbers_to_lon.2Flat_2 | ||
112 | -// | ||
113 | -$x = $_GET["X"]; | ||
114 | -$y = $_GET["Y"]; | ||
115 | -$z = $_GET["Z"]; | ||
116 | - | 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ção | ||
6 | +das variáveis de conexão com banco e outras operações específicas do i3Geo. | ||
7 | + | ||
8 | +É 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â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ável de seção) | ||
18 | + | ||
19 | +tipolayer {fundo|} - (opcional) indica que a imagem a ser produzida compõe o fundo do mapa | ||
20 | + | ||
21 | +BBOX {xmin xmax ymin ymax} - extensão geográ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á desenhado (ignorado quando telaR for definido) | ||
28 | + | ||
29 | +DESLIGACACHE {sim|nao} - força a não usar o cache de imagens qd definido como "sim", do contrário, o uso ou não do cache será definido automaticamente | ||
30 | + | ||
31 | +TIPOIMAGEM {cinza|sepiaclara|sepianormal|negativo|detectaBordas|embassa|gaussian_blur|selective_blur|mean_removal|pixelate | ||
32 | +} - filtro de imagem que será 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ério do Meio Ambiente Brasil | ||
42 | +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com | ||
43 | + | ||
44 | +Este programa é software livre; você pode redistribuí-lo | ||
45 | +e/ou modificá-lo sob os termos da Licença Pública Geral | ||
46 | +GNU conforme publicada pela Free Software Foundation; | ||
47 | + | ||
48 | +Este programa é distribuído na expectativa de que seja útil, | ||
49 | +porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita | ||
50 | +de COMERCIABILIDADE OU ADEQUAÇÃO A UMA FINALIDADE ESPECÍFICA. | ||
51 | +Consulte a Licença Pública Geral do GNU para mais detalhes. | ||
52 | +Você deve ter recebido uma copia da Licença Pública Geral do | ||
53 | +GNU junto com este programa; se não, escreva para a | ||
54 | +Free Software Foundation, Inc., no endereç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(E_ALL); | ||
63 | +error_reporting(0); | ||
64 | +clearstatcache(); | ||
65 | +//verificação de seguranç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çã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 | + | ||
117 | $qyfile = dirname($map_fileX)."/".$_GET["layer"].".php"; | 99 | $qyfile = dirname($map_fileX)."/".$_GET["layer"].".php"; |
118 | -$qy = file_exists($qyfile); | ||
119 | - | 100 | +$qy = file_exists($qyfile); |
101 | + | ||
120 | if($qy == false && $_GET["cache"] == "sim" && $_GET["DESLIGACACHE"] != "sim"){ | 102 | if($qy == false && $_GET["cache"] == "sim" && $_GET["DESLIGACACHE"] != "sim"){ |
121 | carregaCacheImagem($_SESSION["cachedir"],$_SESSION["map_file"],$_GET["tms"]); | 103 | carregaCacheImagem($_SESSION["cachedir"],$_SESSION["map_file"],$_GET["tms"]); |
122 | -} | ||
123 | - | ||
124 | -$n = pow(2,$z); | ||
125 | -$lon1 = $x / $n * 360.0 - 180.0; | ||
126 | -$lat2 = rad2deg(atan(sinh(pi() * (1 - 2 * $y / $n)))); | ||
127 | -$x++; | ||
128 | -$y++; | ||
129 | -$lon2 = $x / $n * 360.0 - 180.0; | ||
130 | -$lat1 = rad2deg(atan(sinh(pi() * (1 - 2 * $y / $n)))); | 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)))); | ||
131 | $x--; | 113 | $x--; |
132 | -$y--; | ||
133 | - | ||
134 | -$projInObj = ms_newprojectionobj("proj=latlong,a=6378137,b=6378137"); | ||
135 | -$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"); | ||
136 | - | ||
137 | -$poPoint1 = ms_newpointobj(); | ||
138 | -$poPoint1->setXY($lon1, $lat1); | ||
139 | -$poPoint1->project($projInObj, $projOutObj); | ||
140 | -$poPoint2 = ms_newpointobj(); | ||
141 | -$poPoint2->setXY($lon2, $lat2); | ||
142 | -$poPoint2->project($projInObj, $projOutObj); | ||
143 | -$_GET["BBOX"] = $poPoint1->x." ".$poPoint1->y." ".$poPoint2->x." ".$poPoint2->y; | ||
144 | -$_GET["mapext"] = str_replace(","," ",$_GET["BBOX"]); | ||
145 | - | ||
146 | -$mapa = ms_newMapObj($map_fileX); | ||
147 | -$ret = $mapa->extent; | ||
148 | - | ||
149 | -$cache = false; | ||
150 | -if(!isset($_GET["telaR"])){ | ||
151 | - //no caso de projecoes remotas, o mapfile nao´e alterado | ||
152 | - $numlayers = $mapa->numlayers; | ||
153 | - for ($i=0;$i < $numlayers;++$i){ | ||
154 | - $l = $mapa->getlayer($i); | ||
155 | - $layerName = $l->name; | ||
156 | - $l->set("status",MS_OFF); | ||
157 | - if($layerName == $_GET["layer"] || $l->group == $_GET["layer"] && $l->group != ""){ | ||
158 | - $l->set("template","none.htm"); | ||
159 | - $l->set("status",MS_DEFAULT); | 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); | ||
160 | if ($l->getmetadata("classesnome") != ""){ | 142 | if ($l->getmetadata("classesnome") != ""){ |
161 | if(!function_exists("autoClasses")){ | 143 | if(!function_exists("autoClasses")){ |
162 | include_once("funcoes_gerais.php"); | 144 | include_once("funcoes_gerais.php"); |
163 | } | 145 | } |
164 | autoClasses($l,$mapa); | 146 | autoClasses($l,$mapa); |
165 | - } | ||
166 | - if(!empty($postgis_mapa)){ | ||
167 | - if($l->connectiontype == MS_POSTGIS){ | ||
168 | - $lcon = $l->connection; | ||
169 | - if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | ||
170 | - if(($lcon == " ") || ($lcon == "")){ | ||
171 | - $l->set("connection",$postgis_mapa); | ||
172 | - } | ||
173 | - else{ | ||
174 | - $l->set("connection",$postgis_mapa[$lcon]); | ||
175 | - } | ||
176 | - } | ||
177 | - } | ||
178 | - } | ||
179 | - if($l->getProjection() == "" ){ | ||
180 | - $l->setProjection("proj=latlong,a=6378137,b=6378137"); | ||
181 | - } | ||
182 | - } | ||
183 | - if($layerName == $_GET["layer"]){ | ||
184 | - if(strtolower($l->getmetadata("cache")) == "sim"){ | ||
185 | - $cache = true; | ||
186 | - } | ||
187 | - } | ||
188 | - } | ||
189 | -} | ||
190 | -else{ | ||
191 | - $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"); | ||
192 | - $numlayers = $mapa->numlayers; | ||
193 | - for ($i=0;$i < $numlayers;++$i){ | ||
194 | - $l = $mapa->getlayer($i); | ||
195 | - if($l->getProjection() == "" ) | ||
196 | - {$l->setProjection("proj=latlong,a=6378137,b=6378137");} | ||
197 | - } | ||
198 | -} | ||
199 | -if($_GET["layer"] == "") | ||
200 | -{$cache = true;} | ||
201 | - | ||
202 | -if(($_GET == false) || ($qy) || (strtolower($_GET["DESLIGACACHE"]) == "sim")) | ||
203 | -{$cache = false;} | ||
204 | -elseif(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") | ||
205 | -{$cache = false;} | ||
206 | - | ||
207 | -if($cache == true){ | ||
208 | - carregaCacheImagem(); | ||
209 | -} | ||
210 | -$mapa->setsize(256,256); | ||
211 | -$mapext = explode(" ",$_GET["mapext"]); | ||
212 | -$mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]); | ||
213 | - | ||
214 | -$o = $mapa->outputformat; | ||
215 | -$o->set("imagemode",MS_IMAGEMODE_RGBA); | ||
216 | - | ||
217 | -if(!isset($_GET["telaR"])){ | ||
218 | - $legenda = $mapa->legend; | ||
219 | - $legenda->set("status",MS_OFF); | ||
220 | - $escala = $mapa->scalebar; | ||
221 | - $escala->set("status",MS_OFF); | ||
222 | -} | ||
223 | -// | ||
224 | -//se o layer nao for do tipo fundo | ||
225 | -// | ||
226 | -if($_GET["tipolayer"] != "fundo") | ||
227 | -{$o->set("transparent",MS_TRUE);} | ||
228 | -if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") | ||
229 | -{$o->setOption("QUANTIZE_FORCE","OFF");} | ||
230 | -if($qy != true){ | ||
231 | - $img = $mapa->draw(); | ||
232 | -} | ||
233 | -else{ | ||
234 | - $handle = fopen ($qyfile, "r"); | ||
235 | - $conteudo = fread ($handle, filesize ($qyfile)); | ||
236 | - fclose ($handle); | ||
237 | - $shp = unserialize($conteudo); | ||
238 | - $l = $mapa->getLayerByname($_GET["layer"]); | ||
239 | - $indxlayer = $l->index; | ||
240 | - if ($l->connectiontype !== MS_POSTGIS){ | ||
241 | - foreach ($shp as $indx) | ||
242 | - {$mapa->querybyindex($indxlayer,-1,$indx,MS_TRUE);} | ||
243 | - $qm = $mapa->querymap; | ||
244 | - $qm->set("width",255); | ||
245 | - $qm->set("height",255); | ||
246 | - $img = $mapa->drawQuery(); | ||
247 | - } | ||
248 | - else{ | ||
249 | - $img = $mapa->draw(); | ||
250 | - $c = $mapa->querymap->color; | ||
251 | - $numclasses = $l->numclasses; | ||
252 | - if ($numclasses > 0) | ||
253 | - { | ||
254 | - $classe0 = $l->getClass(0); | ||
255 | - $classe0->setexpression(""); | ||
256 | - $classe0->set("name"," "); | ||
257 | - for ($i=1; $i < $numclasses; ++$i) | ||
258 | - { | ||
259 | - $classe = $l->getClass($i); | ||
260 | - $classe->set("status",MS_DELETE); | ||
261 | - } | ||
262 | - } | ||
263 | - $cor = $classe0->getstyle(0)->color; | ||
264 | - $cor->setrgb($c->red,$c->green,$c->blue); | ||
265 | - $cor = $classe0->getstyle(0)->outlinecolor; | ||
266 | - $cor->setrgb($c->red,$c->green,$c->blue); | ||
267 | - $v = versaoMS(); | ||
268 | - if($v["principal"] == 6){ | ||
269 | - $l->open(); | ||
270 | - foreach ($shp as $indx){ | ||
271 | - $shape = $l->getShape(new resultObj($indx)); | ||
272 | - $shape->draw($mapa,$l,$img); | ||
273 | - } | ||
274 | - $l->close(); | ||
275 | - } | ||
276 | - else{ | ||
277 | - $l->open(); | ||
278 | - foreach ($shp as $indx){ | ||
279 | - $shape = $l->getfeature($indx,-1); | ||
280 | - $shape->draw($mapa,$l,$img); | ||
281 | - } | ||
282 | - $l->close(); | ||
283 | - } | ||
284 | - } | ||
285 | -} | ||
286 | -if (!function_exists('imagepng')){ | ||
287 | - $s = PHP_SHLIB_SUFFIX; | ||
288 | - @dl( 'php_gd.'.$s ); | ||
289 | - if (!function_exists('imagepng')) | ||
290 | - {@dl( 'php_gd2.'.$s );} | ||
291 | - if (!function_exists('imagepng')) | ||
292 | - {$_GET["TIPOIMAGEM"] = "";} | ||
293 | -} | ||
294 | -if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum"){ | ||
295 | - if($img->imagepath == "") | ||
296 | - {echo "Erro IMAGEPATH vazio";exit;} | ||
297 | - $nomer = ($img->imagepath)."filtroimgtemp".nomeRand().".png"; | ||
298 | - $img->saveImage($nomer); | ||
299 | - filtraImg($nomer,trim($_GET["TIPOIMAGEM"])); | ||
300 | - $img = imagecreatefrompng($nomer); | ||
301 | - imagealphablending($img, false); | ||
302 | - imagesavealpha($img, true); | ||
303 | - ob_clean(); | ||
304 | - echo header("Content-type: image/png \n\n"); | ||
305 | - imagepng($img); | ||
306 | -} | ||
307 | -else{ | 147 | + } |
148 | + if(!empty($postgis_mapa)){ | ||
149 | + if($l->connectiontype == MS_POSTGIS){ | ||
150 | + $lcon = $l->connection; | ||
151 | + if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | ||
152 | + if(($lcon == " ") || ($lcon == "")){ | ||
153 | + $l->set("connection",$postgis_mapa); | ||
154 | + } | ||
155 | + else{ | ||
156 | + $l->set("connection",$postgis_mapa[$lcon]); | ||
157 | + } | ||
158 | + } | ||
159 | + } | ||
160 | + } | ||
161 | + if($l->getProjection() == "" ){ | ||
162 | + $l->setProjection("proj=latlong,a=6378137,b=6378137"); | ||
163 | + } | ||
164 | + } | ||
165 | + if($layerName == $_GET["layer"]){ | ||
166 | + if(strtolower($l->getmetadata("cache")) == "sim"){ | ||
167 | + $cache = true; | ||
168 | + } | ||
169 | + } | ||
170 | + } | ||
171 | +} | ||
172 | +else{ | ||
173 | + $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"); | ||
174 | + $numlayers = $mapa->numlayers; | ||
175 | + for ($i=0;$i < $numlayers;++$i){ | ||
176 | + $l = $mapa->getlayer($i); | ||
177 | + if($l->getProjection() == "" ) | ||
178 | + {$l->setProjection("proj=latlong,a=6378137,b=6378137");} | ||
179 | + } | ||
180 | +} | ||
181 | +if($_GET["layer"] == "") | ||
182 | +{$cache = true;} | ||
183 | + | ||
184 | +if(($_GET == false) || ($qy) || (strtolower($_GET["DESLIGACACHE"]) == "sim")) | ||
185 | +{$cache = false;} | ||
186 | +elseif(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") | ||
187 | +{$cache = false;} | ||
188 | + | ||
189 | +if($cache == true){ | ||
190 | + carregaCacheImagem(); | ||
191 | +} | ||
192 | +$mapa->setsize(256,256); | ||
193 | +$mapext = explode(" ",$_GET["mapext"]); | ||
194 | +$mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]); | ||
195 | + | ||
196 | +$o = $mapa->outputformat; | ||
197 | +$o->set("imagemode",MS_IMAGEMODE_RGBA); | ||
198 | + | ||
199 | +if(!isset($_GET["telaR"])){ | ||
200 | + $legenda = $mapa->legend; | ||
201 | + $legenda->set("status",MS_OFF); | ||
202 | + $escala = $mapa->scalebar; | ||
203 | + $escala->set("status",MS_OFF); | ||
204 | +} | ||
205 | +// | ||
206 | +//se o layer nao for do tipo fundo | ||
207 | +// | ||
208 | +if($_GET["tipolayer"] != "fundo") | ||
209 | +{$o->set("transparent",MS_TRUE);} | ||
210 | +if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") | ||
211 | +{$o->setOption("QUANTIZE_FORCE","OFF");} | ||
212 | +if($qy != true){ | ||
213 | + $img = $mapa->draw(); | ||
214 | +} | ||
215 | +else{ | ||
216 | + $handle = fopen ($qyfile, "r"); | ||
217 | + $conteudo = fread ($handle, filesize ($qyfile)); | ||
218 | + fclose ($handle); | ||
219 | + $shp = unserialize($conteudo); | ||
220 | + $l = $mapa->getLayerByname($_GET["layer"]); | ||
221 | + $indxlayer = $l->index; | ||
222 | + if ($l->connectiontype !== MS_POSTGIS){ | ||
223 | + foreach ($shp as $indx) | ||
224 | + {$mapa->querybyindex($indxlayer,-1,$indx,MS_TRUE);} | ||
225 | + $qm = $mapa->querymap; | ||
226 | + $qm->set("width",255); | ||
227 | + $qm->set("height",255); | ||
228 | + $img = $mapa->drawQuery(); | ||
229 | + } | ||
230 | + else{ | ||
231 | + $img = $mapa->draw(); | ||
232 | + $c = $mapa->querymap->color; | ||
233 | + $numclasses = $l->numclasses; | ||
234 | + if ($numclasses > 0) | ||
235 | + { | ||
236 | + $classe0 = $l->getClass(0); | ||
237 | + $classe0->setexpression(""); | ||
238 | + $classe0->set("name"," "); | ||
239 | + for ($i=1; $i < $numclasses; ++$i) | ||
240 | + { | ||
241 | + $classe = $l->getClass($i); | ||
242 | + $classe->set("status",MS_DELETE); | ||
243 | + } | ||
244 | + } | ||
245 | + $cor = $classe0->getstyle(0)->color; | ||
246 | + $cor->setrgb($c->red,$c->green,$c->blue); | ||
247 | + $cor = $classe0->getstyle(0)->outlinecolor; | ||
248 | + $cor->setrgb($c->red,$c->green,$c->blue); | ||
249 | + $v = versaoMS(); | ||
250 | + if($v["principal"] == 6){ | ||
251 | + $l->open(); | ||
252 | + foreach ($shp as $indx){ | ||
253 | + $shape = $l->getShape(new resultObj($indx)); | ||
254 | + $shape->draw($mapa,$l,$img); | ||
255 | + } | ||
256 | + $l->close(); | ||
257 | + } | ||
258 | + else{ | ||
259 | + $l->open(); | ||
260 | + foreach ($shp as $indx){ | ||
261 | + $shape = $l->getfeature($indx,-1); | ||
262 | + $shape->draw($mapa,$l,$img); | ||
263 | + } | ||
264 | + $l->close(); | ||
265 | + } | ||
266 | + } | ||
267 | +} | ||
268 | +if (!function_exists('imagepng')){ | ||
269 | + $s = PHP_SHLIB_SUFFIX; | ||
270 | + @dl( 'php_gd.'.$s ); | ||
271 | + if (!function_exists('imagepng')) | ||
272 | + {@dl( 'php_gd2.'.$s );} | ||
273 | + if (!function_exists('imagepng')) | ||
274 | + {$_GET["TIPOIMAGEM"] = "";} | ||
275 | +} | ||
276 | +if(trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum"){ | ||
277 | + if($img->imagepath == "") | ||
278 | + {echo "Erro IMAGEPATH vazio";exit;} | ||
279 | + $nomer = ($img->imagepath)."filtroimgtemp".nomeRand().".png"; | ||
280 | + $img->saveImage($nomer); | ||
281 | + filtraImg($nomer,trim($_GET["TIPOIMAGEM"])); | ||
282 | + $img = imagecreatefrompng($nomer); | ||
283 | + imagealphablending($img, false); | ||
284 | + imagesavealpha($img, true); | ||
285 | + ob_clean(); | ||
286 | + echo header("Content-type: image/png \n\n"); | ||
287 | + imagepng($img); | ||
288 | +} | ||
289 | +else{ | ||
308 | if($cache == true){ | 290 | if($cache == true){ |
309 | $nomer = salvaCacheImagem(); | 291 | $nomer = salvaCacheImagem(); |
310 | header('Content-Length: '.filesize($nomer)); | 292 | header('Content-Length: '.filesize($nomer)); |
@@ -315,9 +297,7 @@ else{ | @@ -315,9 +297,7 @@ else{ | ||
315 | fpassthru(fopen($nomer, 'rb')); | 297 | fpassthru(fopen($nomer, 'rb')); |
316 | } | 298 | } |
317 | else{ | 299 | else{ |
318 | - if($img->imagepath == "") | ||
319 | - {echo "Erro IMAGEPATH vazio";exit;} | ||
320 | - if(ms_GetVersionInt() != 60003 ){ | 300 | + if(ms_GetVersionInt() != 60003 ){ |
321 | header('Content-Type: image/png'); | 301 | header('Content-Type: image/png'); |
322 | $img->saveImage(); | 302 | $img->saveImage(); |
323 | } | 303 | } |
@@ -333,30 +313,30 @@ else{ | @@ -333,30 +313,30 @@ else{ | ||
333 | imagedestroy($img); | 313 | imagedestroy($img); |
334 | } | 314 | } |
335 | } | 315 | } |
336 | - exit; | ||
337 | -} | ||
338 | -//$cachedir e definido no ms_configura.php | 316 | + exit; |
317 | +} | ||
318 | +//$cachedir e definido no ms_configura.php | ||
339 | function salvaCacheImagem(){ | 319 | function salvaCacheImagem(){ |
340 | - global $img,$cachedir,$x,$y,$z,$map_fileX; | 320 | + global $img,$cachedir,$x,$y,$z,$map_fileX; |
341 | $layer = $_GET["layer"]; | 321 | $layer = $_GET["layer"]; |
342 | if($layer == "") | 322 | if($layer == "") |
343 | {$layer = "fundo";} | 323 | {$layer = "fundo";} |
344 | - if($cachedir == ""){ | ||
345 | - $cachedir = dirname(dirname($map_fileX))."/cache"; | 324 | + if($cachedir == ""){ |
325 | + $cachedir = dirname(dirname($map_fileX))."/cache"; | ||
346 | } | 326 | } |
347 | - $c = $cachedir."/googlemaps/$layer/$z/$x"; | ||
348 | - if(!file_exists($c."/$y.png")){ | ||
349 | - mkdir($cachedir."/googlemaps/$layer/$z/$x",0777,true); | ||
350 | - $img->saveImage($c."/$y.png"); | ||
351 | - chmod($c."/$y.png",0777); | 327 | + $c = $cachedir."/googlemaps/$layer/$z/$x"; |
328 | + if(!file_exists($c."/$y.png")){ | ||
329 | + mkdir($cachedir."/googlemaps/$layer/$z/$x",0777,true); | ||
330 | + $img->saveImage($c."/$y.png"); | ||
331 | + chmod($c."/$y.png",0777); | ||
352 | } | 332 | } |
353 | return $nome; | 333 | return $nome; |
354 | -} | 334 | +} |
355 | function carregaCacheImagem(){ | 335 | function carregaCacheImagem(){ |
356 | - global $img,$cachedir,$x,$y,$z,$map_fileX; | ||
357 | - $layer = $_GET["layer"]; | 336 | + global $img,$cachedir,$x,$y,$z,$map_fileX; |
337 | + $layer = $_GET["layer"]; | ||
358 | if($layer == "") | 338 | if($layer == "") |
359 | - {$layer = "fundo";} | 339 | + {$layer = "fundo";} |
360 | if($cachedir == ""){ | 340 | if($cachedir == ""){ |
361 | $cachedir = dirname(dirname($map_fileX))."/cache"; | 341 | $cachedir = dirname(dirname($map_fileX))."/cache"; |
362 | } | 342 | } |
@@ -367,104 +347,104 @@ function carregaCacheImagem(){ | @@ -367,104 +347,104 @@ function carregaCacheImagem(){ | ||
367 | fpassthru(fopen($c."/$y.png", 'rb')); | 347 | fpassthru(fopen($c."/$y.png", 'rb')); |
368 | exit; | 348 | exit; |
369 | } | 349 | } |
370 | -} | ||
371 | -/* | ||
372 | -function salvaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){ | ||
373 | - global $img,$map_size; | ||
374 | - //layers que são sempre iguais | ||
375 | - //error_reporting(E_ALL); | ||
376 | - if($layer == "copyright" || $layer == "") | ||
377 | - {$bbox = "";} | ||
378 | - if($layer == "") | ||
379 | - {$layer = "fundo";} | ||
380 | - if($cachedir == "") | ||
381 | - {$cachedir = dirname(dirname($map))."/cache/googlemaps/".$layer;} | ||
382 | - else | ||
383 | - {$cachedir = $cachedir."/googlemaps/".$layer;} | ||
384 | - @mkdir($cachedir,0777); | ||
385 | - $nome = $cachedir."/".$w.$h.$bbox.".png"; | ||
386 | - if(!file_exists($nome)) | ||
387 | - {$img->saveImage($nome);} | ||
388 | - return $nome; | ||
389 | -} | ||
390 | -function carregaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){ | ||
391 | - if($layer == "copyright" || $layer == "") | ||
392 | - {$bbox = "";} | ||
393 | - if($layer == "") | ||
394 | - {$layer = "fundo";} | ||
395 | - $nome = $w.$h.$bbox.".png"; | ||
396 | - if($cachedir == "") | ||
397 | - {$nome = dirname(dirname($map))."/cache/googlemaps/".$layer."/".$nome;} | ||
398 | - else | ||
399 | - {$nome = $cachedir."/googlemaps/".$layer."/".$nome;} | ||
400 | - if(file_exists($nome)){ | ||
401 | - header('Content-Length: '.filesize($nome)); | ||
402 | - header('Content-Type: image/png'); | ||
403 | - fpassthru(fopen($nome, 'rb')); | ||
404 | - exit; | ||
405 | - } | ||
406 | -} | ||
407 | -*/ | ||
408 | -function nomeRand($n=10) | ||
409 | -{ | ||
410 | - $nomes = ""; | ||
411 | - $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ'; | ||
412 | - $max = 51; | ||
413 | - for($i=0; $i < $n; ++$i) | ||
414 | - {$nomes .= $a{mt_rand(0, $max)};} | ||
415 | - return $nomes; | ||
416 | -} | ||
417 | -function filtraImg($nomer,$tipoimagem){ | ||
418 | - include_once("classe_imagem.php"); | ||
419 | - $tiposImagem = explode(" ",$tipoimagem); | ||
420 | - foreach ($tiposImagem as $tipoimagem){ | ||
421 | - $m = new Imagem($nomer); | ||
422 | - if ($tipoimagem == "cinza") | ||
423 | - {imagepng($m->cinzaNormal(),str_replace("\\","/",$nomer));} | ||
424 | - if ($tipoimagem == "sepiaclara") | ||
425 | - {imagepng($m->sepiaClara(),str_replace("\\","/",$nomer));} | ||
426 | - if ($tipoimagem == "sepianormal") | ||
427 | - {imagepng($m->sepiaNormal(),str_replace("\\","/",$nomer));} | ||
428 | - if ($tipoimagem == "negativo") | ||
429 | - {imagepng($m->negativo(),str_replace("\\","/",$nomer));} | ||
430 | - if ($tipoimagem == "detectaBordas") | ||
431 | - {imagepng($m->detectaBordas(),str_replace("\\","/",$nomer));} | ||
432 | - if ($tipoimagem == "embassa") | ||
433 | - {imagepng($m->embassa(),str_replace("\\","/",$nomer));} | ||
434 | - if ($tipoimagem == "gaussian_blur") | ||
435 | - {imagepng($m->gaussian_blur(),str_replace("\\","/",$nomer));} | ||
436 | - if ($tipoimagem == "selective_blur") | ||
437 | - {imagepng($m->selective_blur(),str_replace("\\","/",$nomer));} | ||
438 | - if ($tipoimagem == "mean_removal") | ||
439 | - {imagepng($m->mean_removal(),str_replace("\\","/",$nomer));} | ||
440 | - if ($tipoimagem == "pixelate") | ||
441 | - {imagepng($m->pixelate(),str_replace("\\","/",$nomer));} | ||
442 | - } | ||
443 | -} | ||
444 | -function ilegal(){ | ||
445 | - $img = imagecreatefrompng("../imagens/ilegal.png"); | ||
446 | - imagealphablending($img, false); | ||
447 | - imagesavealpha($img, true); | ||
448 | - ob_clean(); | ||
449 | - echo header("Content-type: image/png \n\n"); | ||
450 | - imagepng($img); | ||
451 | - exit; | ||
452 | -} | ||
453 | -function versaoMS() | ||
454 | -{ | ||
455 | - $v = "5.0.0"; | ||
456 | - $vs = explode(" ",ms_GetVersion()); | ||
457 | - $cvs = count($vs); | ||
458 | - for ($i=0;$i<$cvs;++$i) | ||
459 | - { | ||
460 | - if(trim(strtolower($vs[$i])) == "version") | ||
461 | - { | ||
462 | - $v = $vs[$i+1]; | ||
463 | - } | ||
464 | - } | ||
465 | - $versao["completa"] = $v; | ||
466 | - $v = explode(".",$v); | ||
467 | - $versao["principal"] = $v[0]; | ||
468 | - return $versao; | ||
469 | -} | 350 | +} |
351 | +/* | ||
352 | +function salvaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){ | ||
353 | + global $img,$map_size; | ||
354 | + //layers que são sempre iguais | ||
355 | + //error_reporting(E_ALL); | ||
356 | + if($layer == "copyright" || $layer == "") | ||
357 | + {$bbox = "";} | ||
358 | + if($layer == "") | ||
359 | + {$layer = "fundo";} | ||
360 | + if($cachedir == "") | ||
361 | + {$cachedir = dirname(dirname($map))."/cache/googlemaps/".$layer;} | ||
362 | + else | ||
363 | + {$cachedir = $cachedir."/googlemaps/".$layer;} | ||
364 | + @mkdir($cachedir,0777); | ||
365 | + $nome = $cachedir."/".$w.$h.$bbox.".png"; | ||
366 | + if(!file_exists($nome)) | ||
367 | + {$img->saveImage($nome);} | ||
368 | + return $nome; | ||
369 | +} | ||
370 | +function carregaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){ | ||
371 | + if($layer == "copyright" || $layer == "") | ||
372 | + {$bbox = "";} | ||
373 | + if($layer == "") | ||
374 | + {$layer = "fundo";} | ||
375 | + $nome = $w.$h.$bbox.".png"; | ||
376 | + if($cachedir == "") | ||
377 | + {$nome = dirname(dirname($map))."/cache/googlemaps/".$layer."/".$nome;} | ||
378 | + else | ||
379 | + {$nome = $cachedir."/googlemaps/".$layer."/".$nome;} | ||
380 | + if(file_exists($nome)){ | ||
381 | + header('Content-Length: '.filesize($nome)); | ||
382 | + header('Content-Type: image/png'); | ||
383 | + fpassthru(fopen($nome, 'rb')); | ||
384 | + exit; | ||
385 | + } | ||
386 | +} | ||
387 | +*/ | ||
388 | +function nomeRand($n=10) | ||
389 | +{ | ||
390 | + $nomes = ""; | ||
391 | + $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ'; | ||
392 | + $max = 51; | ||
393 | + for($i=0; $i < $n; ++$i) | ||
394 | + {$nomes .= $a{mt_rand(0, $max)};} | ||
395 | + return $nomes; | ||
396 | +} | ||
397 | +function filtraImg($nomer,$tipoimagem){ | ||
398 | + include_once("classe_imagem.php"); | ||
399 | + $tiposImagem = explode(" ",$tipoimagem); | ||
400 | + foreach ($tiposImagem as $tipoimagem){ | ||
401 | + $m = new Imagem($nomer); | ||
402 | + if ($tipoimagem == "cinza") | ||
403 | + {imagepng($m->cinzaNormal(),str_replace("\\","/",$nomer));} | ||
404 | + if ($tipoimagem == "sepiaclara") | ||
405 | + {imagepng($m->sepiaClara(),str_replace("\\","/",$nomer));} | ||
406 | + if ($tipoimagem == "sepianormal") | ||
407 | + {imagepng($m->sepiaNormal(),str_replace("\\","/",$nomer));} | ||
408 | + if ($tipoimagem == "negativo") | ||
409 | + {imagepng($m->negativo(),str_replace("\\","/",$nomer));} | ||
410 | + if ($tipoimagem == "detectaBordas") | ||
411 | + {imagepng($m->detectaBordas(),str_replace("\\","/",$nomer));} | ||
412 | + if ($tipoimagem == "embassa") | ||
413 | + {imagepng($m->embassa(),str_replace("\\","/",$nomer));} | ||
414 | + if ($tipoimagem == "gaussian_blur") | ||
415 | + {imagepng($m->gaussian_blur(),str_replace("\\","/",$nomer));} | ||
416 | + if ($tipoimagem == "selective_blur") | ||
417 | + {imagepng($m->selective_blur(),str_replace("\\","/",$nomer));} | ||
418 | + if ($tipoimagem == "mean_removal") | ||
419 | + {imagepng($m->mean_removal(),str_replace("\\","/",$nomer));} | ||
420 | + if ($tipoimagem == "pixelate") | ||
421 | + {imagepng($m->pixelate(),str_replace("\\","/",$nomer));} | ||
422 | + } | ||
423 | +} | ||
424 | +function ilegal(){ | ||
425 | + $img = imagecreatefrompng("../imagens/ilegal.png"); | ||
426 | + imagealphablending($img, false); | ||
427 | + imagesavealpha($img, true); | ||
428 | + ob_clean(); | ||
429 | + echo header("Content-type: image/png \n\n"); | ||
430 | + imagepng($img); | ||
431 | + exit; | ||
432 | +} | ||
433 | +function versaoMS() | ||
434 | +{ | ||
435 | + $v = "5.0.0"; | ||
436 | + $vs = explode(" ",ms_GetVersion()); | ||
437 | + $cvs = count($vs); | ||
438 | + for ($i=0;$i<$cvs;++$i) | ||
439 | + { | ||
440 | + if(trim(strtolower($vs[$i])) == "version") | ||
441 | + { | ||
442 | + $v = $vs[$i+1]; | ||
443 | + } | ||
444 | + } | ||
445 | + $versao["completa"] = $v; | ||
446 | + $v = explode(".",$v); | ||
447 | + $versao["principal"] = $v[0]; | ||
448 | + return $versao; | ||
449 | +} | ||
470 | ?> | 450 | ?> |
471 | \ No newline at end of file | 451 | \ No newline at end of file |
classesphp/mapa_openlayers.php
@@ -7,7 +7,7 @@ das vari&aacute;veis de conex&atilde;o com banco e outras opera&ccedil;&otilde;e | @@ -7,7 +7,7 @@ das vari&aacute;veis de conex&atilde;o com banco e outras opera&ccedil;&otilde;e | ||
7 | 7 | ||
8 | É utilizado especificamente nas interfaces que utilizam a biblioteca OpenLayers em LAYERS do tipo WMS. | 8 | É utilizado especificamente nas interfaces que utilizam a biblioteca OpenLayers em LAYERS do tipo WMS. |
9 | 9 | ||
10 | -Precisa do código da "section" PHP aberta pelo i3Geo ou o código para acesso especial indicado no parâmetro telaR | 10 | +Precisa do codigo da "section" PHP aberta pelo i3Geo ou o codigo para acesso especial indicado no parâmetro telaR |
11 | (veja a ferramenta TELAREMOTA). | 11 | (veja a ferramenta TELAREMOTA). |
12 | 12 | ||
13 | Parametros: | 13 | Parametros: |
@@ -24,7 +24,7 @@ WIDTH {numeric} - largura do mapa | @@ -24,7 +24,7 @@ WIDTH {numeric} - largura do mapa | ||
24 | 24 | ||
25 | HEIGHT {numeric} - altura do mapa | 25 | HEIGHT {numeric} - altura do mapa |
26 | 26 | ||
27 | -layer {string} - código do layer existente no mapa que será desenhado (ignorado quando telaR for definido) | 27 | +layer {string} - codigo do layer existente no mapa que será desenhado (ignorado quando telaR for definido) |
28 | 28 | ||
29 | DESLIGACACHE {sim|nao} - força a não usar o cache de imagens qd definido como "sim", do contrário, o uso ou não do cache será definido automaticamente | 29 | DESLIGACACHE {sim|nao} - força a não usar o cache de imagens qd definido como "sim", do contrário, o uso ou não do cache será definido automaticamente |
30 | 30 |