Commit c9e21bda0d726106a6c631e6b2d7fd48c98383ff

Authored by Edmar Moretti
1 parent 1b0d9e44

Otimização das rotinas do tipo getalllayersname

admin/admin.db
No preview for this file type
admin/php/editormapfile.php
... ... @@ -212,12 +212,11 @@ switch (strtoupper($funcao))
212 212 $mapfile = $locaplic."/temas/".$codigoMap.".map";
213 213 $mapa = ms_newMapObj($mapfile);
214 214 $nomes = $mapa->getalllayernames();
215   - if($cachedir != "")
216   - {
  215 + if($cachedir != ""){
217 216 $d = $cachedir;
218 217 }
219   - else
220   - {$d = $dir_tmp."/cache";
  218 + else{
  219 + $d = $dir_tmp."/cache";
221 220 }
222 221 foreach($nomes as $nome)
223 222 {
... ... @@ -1080,7 +1079,7 @@ function refazerLayer()
1080 1079 $nl = ms_newLayerObj($mapatema,$layernovo);
1081 1080 $nl->set("name",$codigomap);
1082 1081 $nl->setmetadata("nomeoriginal","");
1083   - $nl->setmetadata("temaoriginal","");
  1082 + $nl->setmetadata("arquivotemaoriginal","");
1084 1083 $nl->setmetadata("olopacity","");
1085 1084 $nl->setmetadata("olstatus","");
1086 1085 $nl->setmetadata("gmopacity","");
... ... @@ -1216,17 +1215,17 @@ function autoClassesLayer()
1216 1215 {$geral = $locaplic."/aplicmap/geral1.map";
1217 1216 }
1218 1217 $mapageral = ms_newMapObj($geral);
1219   - $nomestemp = $mapageral->getalllayernames();
1220   - foreach($nomestemp as $l)
  1218 + $numlayers = $mapageral->numlayers;
  1219 + for ($i=0;$i < $numlayers;$i++)
1221 1220 {
1222   - $layertemp = $mapageral->getlayerbyname($l);
  1221 + $layertemp = $mapageral->getlayer($i);
1223 1222 $layertemp->set("status",MS_DELETE);
1224 1223 }
1225 1224 $mapatemp = ms_newMapObj($mapfile);
1226   - $nomestemp = $mapatemp->getalllayernames();
1227   - foreach($nomestemp as $l)
  1225 + $numlayers = $mapatemp->numlayers;
  1226 + for ($i=0;$i < $numlayers;$i++)
1228 1227 {
1229   - $layertemp = $mapatemp->getlayerbyname($l);
  1228 + $layertemp = $mapatemp->getlayer($i);
1230 1229 ms_newLayerObj($mapageral, $layertemp);
1231 1230 }
1232 1231 $mapageral->save($nometemp);
... ...
admin/php/menutemas.php
... ... @@ -1130,10 +1130,10 @@ function alteraTemas()
1130 1130 if($mapa = @ms_newMapObj($mapfile))
1131 1131 {
1132 1132 $mapa = ms_newMapObj($mapfile);
1133   - $nomes = $mapa->getalllayernames();
1134   - foreach($nomes as $n)
  1133 + $numlayers = $mapa->numlayers;
  1134 + for ($i=0;$i < $numlayers;$i++)
1135 1135 {
1136   - $layer = $mapa->getlayerbyname($n);
  1136 + $layer = $mapa->getlayer($i);
1137 1137 $layer->setmetadata("permitedownload",strtolower($download));
1138 1138 $layer->setmetadata("permiteogc",strtolower($ogc));
1139 1139 $layer->setmetadata("permitekml",strtolower($kml));
... ...
classesphp/classe_atlas.php
... ... @@ -40,12 +40,12 @@ class Atlas
40 40 /*
41 41 Function: __construct
42 42  
43   -Cria um objeto atlas
  43 +Cria um objeto atlas
44 44  
45 45 parameters:
46 46  
47 47 $atlasxml - Objeto xml com o atlas.
48   -*/
  48 +*/
49 49 function __construct($xml)
50 50 {
51 51 error_reporting(E_ALL);
... ... @@ -152,10 +152,10 @@ locaplic - localiza&amp;ccedil;&amp;atilde;o do i3geo no servidor
152 152 $temasa = array();
153 153 $layers = array();
154 154 $mapa = ms_newMapObj($map_file);
155   - $nomes = $mapa->getalllayernames();
156   - foreach ($nomes as $n)
  155 + $numlayers = $mapa->numlayers;
  156 + for ($i=0;$i < $numlayers;$i++)
157 157 {
158   - $l = $mapa->getlayerbyname($n);
  158 + $l = $mapa->getlayer($i);
159 159 if (($l->getmetadata("ATLAS")) != "nao")
160 160 {$l->set("status",MS_DELETE);}
161 161 }
... ... @@ -203,12 +203,12 @@ locaplic - localiza&amp;ccedil;&amp;atilde;o do i3geo no servidor
203 203 $m = new Mapa($map_file);
204 204 $m->adicionaTema((implode(",",$temasa)),$locaplic,"nao");
205 205 $m->salva();
206   -
  206 +
207 207 $mapa = ms_newMapObj($map_file);
208   - $nomes = $mapa->getalllayernames();
209   - foreach ($nomes as $n)
  208 + $numlayers = $mapa->numlayers;
  209 + for ($i=0;$i < $numlayers;$i++)
210 210 {
211   - $l = $mapa->getlayerbyname($n);
  211 + $l = $mapa->getlayer($i);
212 212 if (($l->getmetadata("ATLAS")) != "nao")
213 213 {$l->set("status",MS_OFF);}
214 214 }
... ... @@ -233,12 +233,12 @@ locaplic - localiza&amp;ccedil;&amp;atilde;o do i3geo no servidor
233 233 }
234 234 if (count($newext) == 4)
235 235 {$ext->setextent($newext[0], $newext[1], $newext[2], $newext[3]);}
236   - $mapa->save($map_file);
  236 + $mapa->save($map_file);
237 237 }
238 238 if(!function_exists("sobeAnno")){
239 239 include_once("funcoes_gerais.php");
240 240 }
241   - sobeAnno($map_file);
  241 + sobeAnno($map_file);
242 242 if ($w == ""){$w = 300;}
243 243 if($h == ""){$h = 300;}
244 244 return (array("link"=>$link,"w"=>$w,"h"=>$h,"mapexten"=>implode(" ",$newext)));
... ...
classesphp/classe_atributos.php
... ... @@ -742,9 +742,11 @@ $resolucao - Resolucao de busca.
742 742 */
743 743 function identifica($opcao,$xy,$resolucao)
744 744 {
745   - $temas = $this->mapa->getalllayernames();
746   - foreach ($temas as $tem)
  745 + $numlayers = $mapa->numlayers;
  746 + for ($i=0;$i < $numlayers;$i++)
747 747 {
  748 + $layer = $mapa->getlayer($i);
  749 + $tem = $l->name;
748 750 $vermultilayer = new vermultilayer();
749 751 $vermultilayer->verifica($this->arquivo,$tem);
750 752 if ($vermultilayer->resultado == 1) // o tema e multi layer
... ... @@ -758,8 +760,7 @@ $resolucao - Resolucao de busca.
758 760 }
759 761 else
760 762 {
761   - $l = $this->mapa->getlayerbyname($tem);
762   - if (($l->getmetadata("escondido") == "") && ($l->getmetadata("identifica") != "nao"))
  763 + if (($layer->getmetadata("escondido") == "") && ($layer->getmetadata("identifica") != "nao"))
763 764 {$listatemas[] = $tem;}
764 765 }
765 766 }
... ... @@ -971,10 +972,11 @@ $wkt - (opcional) {boolean} inclui ou n&amp;atilde;o o valor do wkt da geometria
971 972 if ($opcao == "tip")
972 973 {
973 974 $ltemp = array();
974   - $listatemas = $this->mapa->getalllayernames();
975   - foreach ($listatemas as $tema)
  975 + $numlayers = $this->mapa->numlayers;
  976 + for ($i=0;$i < $numlayers;$i++)
976 977 {
977   - $tl = $this->mapa->getlayerbyname($tema);
  978 + $tl = $mapa->getlayer($i);
  979 + $tema = $tl->name;
978 980 $itemtip = $tl->getmetadata("TIP");
979 981 if ($itemtip != "")
980 982 {
... ...
classesphp/classe_legenda.php
... ... @@ -41,68 +41,68 @@ class Legenda
41 41 {
42 42 /*
43 43 Variavel: $mapa
44   -
  44 +
45 45 Objeto mapa
46 46 */
47 47 protected $mapa;
48 48 /*
49 49 Variavel: $arquivo
50   -
  50 +
51 51 Arquivo map file
52 52 */
53 53 protected $arquivo;
54 54 /*
55 55 Variavel: $layer
56   -
  56 +
57 57 Objeto layer
58 58 */
59 59 protected $layer;
60 60 /*
61 61 Variavel: $nome
62   -
  62 +
63 63 Nome do layer
64 64 */
65 65 protected $nome;
66 66 /*
67 67 Variavel: $grupo
68   -
  68 +
69 69 Array com os temas do grupo, se houver
70 70 */
71 71 protected $grupo;
72 72 /*
73 73 Variavel: $visiveis
74   -
  74 +
75 75 Temas do grupo que s&atilde;o vis&iacute;veis em fun&ccedil;&atilde;o da escala
76 76 */
77 77 protected $visiveis;
78 78 /*
79 79 Variavel: $indices
80   -
  80 +
81 81 Indices dos layers do grupo
82 82 */
83 83 protected $indices;
84 84 /*
85 85 Variavel: $templateleg
86   -
  86 +
87 87 Template da legenda
88 88 */
89   - protected $templateleg;
  89 + protected $templateleg;
90 90 /*
91 91 Variavel: $localaplicacao
92   -
  92 +
93 93 Localiza&ccedil;&atilde;o da aplica&ccedil;&atilde;o
94 94 */
95 95 protected $localaplicacao;
96 96 /*
97 97 Variavel: $v
98   -
  98 +
99 99 Vers&atilde;o atual do Mapserver (primeiro d&iacute;gito)
100 100 */
101   - public $v;
  101 + public $v;
102 102 /*
103 103 Function: __construct
104 104  
105   -Cria um objeto Legenda
  105 +Cria um objeto Legenda
106 106  
107 107 parameters:
108 108  
... ... @@ -126,7 +126,7 @@ $template - nome do template para processar a legenda
126 126 $this->v = $this->v["principal"];
127 127 $this->localaplicacao = $locaplic;
128 128 if($map_file == "")
129   - {return;}
  129 + {return;}
130 130 $this->mapa = ms_newMapObj($map_file);
131 131 $this->arquivo = $map_file;
132 132 if($tema != "" && @$this->mapa->getlayerbyname($tema))
... ... @@ -166,8 +166,8 @@ $template - nome do template para processar a legenda
166 166 /*
167 167 function: salva
168 168  
169   -Salva o mapfile atual
170   -*/
  169 +Salva o mapfile atual
  170 +*/
171 171 function salva()
172 172 {
173 173 if (connection_aborted()){exit();}
... ... @@ -194,7 +194,7 @@ Constrói o SLD que &amp;eacute; aplicado ao metadata wms_sld_body. O SLD resultante
194 194 if($sld != "")
195 195 {$this->layer->setmetadata("wms_sld_body",str_replace('"',"'",$sld));}
196 196 $this->layer->set("type",$tipotemp);
197   - }
  197 + }
198 198 }
199 199  
200 200 /*
... ... @@ -248,7 +248,7 @@ string com a legenda HTML
248 248 {$desligar[] = $conta;}
249 249 $conta = $conta + 1;
250 250 }
251   - }
  251 + }
252 252 }
253 253 $legenda = $this->mapa->legend;
254 254 $legenda->set("template",$this->templateleg);
... ... @@ -269,10 +269,10 @@ string de variaveis no formato javascript que permitem montar a legenda.
269 269 */
270 270 function legendaGrafica()
271 271 {
272   - $nomeslayers = $this->mapa->getalllayernames();
273   - foreach ($nomeslayers as $nomelayer)
  272 + $numlayers = $mapa->numlayers;
  273 + for ($i=0;$i < $numlayers;$i++)
274 274 {
275   - $layer = $this->mapa->getlayerbyname($nomelayer);
  275 + $layer = $mapa->getlayer($i);
276 276 if (($layer->data != "") && (strtoupper($layer->getmetadata("escondido")) != "SIM") && (strtoupper($layer->getmetadata("tema")) != "NAO"))
277 277 {
278 278 if ($layer->numclasses > 0)
... ... @@ -286,7 +286,7 @@ string de variaveis no formato javascript que permitem montar a legenda.
286 286 $nomeImagem = nomeRandomico();
287 287 $imgo = $this->mapa->drawlegend();
288 288 if($imgo->imagepath == "")
289   - {echo "Erro IMAGEPATH vazio";exit;}
  289 + {echo "Erro IMAGEPATH vazio";exit;}
290 290 $nomer = ($imgo->imagepath)."leg".$nomeImagem.".png";
291 291 $imgo->saveImage($nomer);
292 292 $nomer = ($imgo->imageurl).basename($nomer);
... ... @@ -314,11 +314,11 @@ array
314 314 $layer = $this->mapa->getlayerbyname($l);
315 315 //verifica se &eacute; wms ou wfs
316 316 $c = $layer->connectiontype;
317   -
  317 +
318 318 $s = $layer->getmetadata("wms_sld_url");
319 319 $im = $layer->getmetadata("legendaimg");
320 320 $nc = $layer->numclasses;
321   -
  321 +
322 322 //
323 323 //se for wms e tiver classes define o tipo de layer para poder gerar a legenda corretamente
324 324 //
... ... @@ -329,7 +329,7 @@ array
329 329 if($tiporep == "linear")
330 330 {$layer->set("type",MS_LAYER_LINE);}
331 331 if ($tiporep == "pontual")
332   - {$layer->set("type",MS_LAYER_POINT);}
  332 + {$layer->set("type",MS_LAYER_POINT);}
333 333 }
334 334 //
335 335 //se for WMS e n&atilde;o tiver classes, tenta pegar a legenda via requisi&ccedil;&atilde;o WMS
... ... @@ -506,7 +506,7 @@ Retorna uma lista de s&amp;iacute;mbolos clic&amp;aacute;veis no formato HTML.
506 506  
507 507 Para cada tipo de simbologia deve haver um arquivo .map com as defini&ccedil;&otilde;es b&aacute;sicas.
508 508  
509   -Todos os s&iacute;mbolos do arquivo symbols/simbolos ser&atilde;o retornados como imagens.
  509 +Todos os s&iacute;mbolos do arquivo symbols/simbolos ser&atilde;o retornados como imagens.
510 510  
511 511 parameters:
512 512  
... ... @@ -570,7 +570,7 @@ String no formato HTML com as imagens dos s&amp;iacute;mbolos
570 570 $nomel = $l->name;
571 571 $tematemp= $this->mapa->getlayerbyname($nomel);
572 572 $c = $tematemp->getClass(0);
573   - $e = $c->getstyle(0);
  573 + $e = $c->getstyle(0);
574 574 $e->set("symbolname",$nomes);
575 575 $e->set("size",$tamanho);
576 576 $e->set("width",$width);
... ... @@ -654,7 +654,7 @@ $symbolname - Nome do s&amp;iacute;mbolo.
654 654  
655 655 $size - Tamanho que ser&aacute; aplicado ao s&iacute;mbolo.
656 656  
657   -$opacidade - Opacidade
  657 +$opacidade - Opacidade
658 658 */
659 659 function aplicaParametro($classe,$estilo,$outlinecolor,$backgroundcolor,$color,$symbolname,$size,$opacidade,$width,$pattern,$angle)
660 660 {
... ... @@ -755,7 +755,7 @@ array - &quot;imagecolor&quot;=&gt;$imagecolor,&quot;transparent&quot;=&gt;transparent,&quot;position&quot;=&gt;$positi
755 755 }
756 756 else
757 757 $labelsize = $label->size;
758   -
  758 +
759 759 $tipofonte = $label->type;
760 760 return(array("tipofonte"=>$tipofonte,"font"=>$font,"imagecolor"=>$imagecolor,"transparent"=>transparent,"position"=>$position,"status"=>$status,"outlinecolor"=>$outlinecolor,"keyspacingy"=>$keyspacingy,"keyspacingx"=>$keyspacingx,"keysizey"=>$keysizey,"keysizex"=>$keysizex,"height"=>$height,"width"=>$width,"labelsize"=>$labelsize));
761 761 }
... ... @@ -812,7 +812,7 @@ $width
812 812 $cor = explode(",",$imagecolor);
813 813 $corres->setRGB($cor[0],$cor[1],$cor[2]);
814 814 $label = $legenda->label;
815   -
  815 +
816 816 if ($fonte != "bitmap")
817 817 {
818 818 $label->set("type",MS_TRUETYPE);
... ...
classesphp/classe_mapa.php
... ... @@ -107,7 +107,7 @@ Salva o mapfile atual
107 107 */
108 108 function salva()
109 109 {
110   - if (connection_aborted()){exit();}
  110 + if(connection_aborted()){exit();}
111 111 $this->mapa->save($this->arquivo);
112 112 }
113 113 /*
... ... @@ -928,7 +928,7 @@ Os layers que formam grupos tamb&amp;eacute;m s&amp;atilde;o processados, tendo seus nom
928 928 Cada novo layer receber&aacute; um novo nome, definido de forma aleatória.
929 929 Os nomes dos temas podem conter o caminho completo do mapfile.
930 930 O nome original do LAYER (NAME) sera armazenado no metadata nomeoriginal
931   -O nome do tema (mapfile) original sera armazenado no metadata temaoriginal
  931 +O nome do tema (mapfile) original sera armazenado no metadata arquivotemaoriginal
932 932  
933 933 Parametros:
934 934  
... ... @@ -985,8 +985,9 @@ $random - indica se os nomes dos novos layers ser&amp;atilde;o modificados ou nao
985 985 {$nlayer->setmetadata("classe","");}
986 986 autoClasses($nlayer,$this->mapa);
987 987 $nlayer->set("status",MS_DEFAULT);
  988 + $nNome = str_replace(".map","",basename($nomemap));
  989 + $nlayer->setmetadata("arquivotemaoriginal",$nNome);
988 990 $nlayer->setmetadata("nomeoriginal",$nlayer->name);
989   - $nlayer->setmetadata("temaoriginal",str_replace(".map","",basename($nomemap)));
990 991 $nlayer->set("name",$nomeunico[$n]);
991 992 //altera o nome do grupo se existir
992 993 if ($nlayer->group != " " && $nlayer->group != "" )
... ...
classesphp/classe_vermultilayer.php
... ... @@ -40,48 +40,48 @@ class vermultilayer
40 40 {
41 41 /*
42 42 Variavel: $resultado
43   -
  43 +
44 44 Indica se &eacute; multi-layer ou n&atilde;o (0 ou 1)
45 45 */
46 46 var $resultado;
47 47 /*
48 48 Variavel: $temas
49   -
  49 +
50 50 Lista de códigos dos temas
51 51 */
52 52 var $temas; //lista de nomes de temas se for um grupo
53 53 /*
54 54 Variavel: $layers
55   -
  55 +
56 56 Lista de objetos layers
57 57 */
58 58 var $layers; //lista de objetos temas se for um grupo
59 59 /*
60 60 Variavel: $nomes
61   -
  61 +
62 62 Lista de nomes dos temas
63 63 */
64 64 var $nomes; //lista de nomes se for um grupo
65 65 /*
66 66 Variavel: $nomesvisiveis
67   -
  67 +
68 68 Lista dos nomes dos temas vis&iacute;veis
69 69 */
70 70 var $nomesvisiveis; //nomes dos temas vis&iacute;veis na escala
71 71 /*
72 72 Variavel: $temasvisiveis
73   -
  73 +
74 74 Lista com os códigos dos temas vis&iacute;veis
75 75 */
76 76 var $temasvisiveis; //temas vi'siveis na escala
77 77 /*
78 78 function: verifica
79   -
  79 +
80 80 Verifica se um tema &eacute; multilayer
81   -
  81 +
82 82 parameters:
83 83 $mapfile - arquivo mapfile
84   -
  84 +
85 85 $tema - código do tema que ser&aacute; verificado
86 86 */
87 87 function verifica($mapfile,$tema) //$mapfile = arquivo .map, $tema = nome do layer
... ... @@ -89,16 +89,17 @@ class vermultilayer
89 89 $map = ms_newMapObj($mapfile);
90 90 $map->preparequery();
91 91 $escala = $map->scaledenom ;
92   - $todoslayers = $map->getAlllayernames();
93 92 $multilayer = 0;
94 93 $temas = array();
95 94 $layers = array();
96 95 $nomes = array();
97 96 $nomesvisiveis = array();
98 97 $temasvisiveis = array();
99   - foreach ($todoslayers as $temai)
  98 +
  99 + $numlayers = $map->numlayers;
  100 + for ($i=0;$i < $numlayers;$i++)
100 101 {
101   - $layer = $map->getlayerbyname($temai);
  102 + $layer = $map->getlayer($i);
102 103 $testa = 0;
103 104 //verifica se o tema &eacute; visivel na escala
104 105 $mins = $layer->minscaledenom;
... ... @@ -131,10 +132,11 @@ class vermultilayer
131 132 $multilayer = 1;
132 133 $temas[] = $temai;
133 134 $layers[] = $layer;
134   - $nomes[] = pegaNome($layer);
  135 + $pn = pegaNome($layer);
  136 + $nomes[] = $pn;
135 137 if ($testa == 0)
136 138 {
137   - $nomesvisiveis[] = pegaNome($layer);
  139 + $nomesvisiveis[] = $pn;
138 140 $temasvisiveis[] = $temai;
139 141 }
140 142 }
... ...
classesphp/funcoes_gerais.php
... ... @@ -2100,10 +2100,10 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
2100 2100 if($teste == "")
2101 2101 {
2102 2102 $maptemp = ms_newMapObj($temasdir."/".$tema.".map");
2103   - $temastemp = $maptemp->getalllayernames();
2104   - foreach ($temastemp as $tt)
  2103 + $numlayers = $maptemp->numlayers;
  2104 + for ($i=0;$i < $numlayers;$i++)
2105 2105 {
2106   - $ll = $maptemp->getlayerbyname($tt);
  2106 + $ll = $maptemp->getlayer($i);
2107 2107 $permite = $ll->getmetadata("permitedownload");
2108 2108 if($permite != "nao")
2109 2109 {ms_newLayerObj($map, $ll);}
... ... @@ -2255,10 +2255,10 @@ function downloadTema2($map_file,$tema,$locaplic,$dir_tmp,$postgis_mapa)
2255 2255 $nomemapfileurl = "";
2256 2256 if(file_exists($temasdir."/".$tema.".map")){
2257 2257 $maptemp = ms_newMapObj($temasdir."/".$tema.".map");
2258   - $temas = $maptemp->getAllLayerNames();
2259   - foreach ($temas as $l)
  2258 + $numlayers = $maptemp->numlayers;
  2259 + for ($i=0;$i < $numlayers;$i++)
2260 2260 {
2261   - $gl = $maptemp->getlayerbyname($l);
  2261 + $gl = $maptemp->getlayer($i);
2262 2262 $gl->set("data","");
2263 2263 $gl->set("connection","");
2264 2264 }
... ... @@ -3101,10 +3101,10 @@ function listaLayersIndevidos($map_file){
3101 3101 $c = $m->numlayers;
3102 3102 for ($i=0;$i < $c;++$i) {
3103 3103 $layer = $m->getlayer($i);
3104   - $meta = $layer->getmetadata("temaoriginal");
  3104 + $meta = $layer->getmetadata("arquivotemaoriginal");
3105 3105 if($meta != ""){
3106 3106 $t = $restritos[$meta];
3107   - if(!in_array($t,$gruposusr)){
  3107 + if($t && !in_array($t,$gruposusr)){
3108 3108 array_push($indevidos,$layer->name);
3109 3109 }
3110 3110 }
... ...
classesphp/mapa_googleearth.php
... ... @@ -116,19 +116,20 @@ function retornaWms($map_fileX,$postgis_mapa){
116 116 //
117 117 $qyfile = dirname($map_fileX)."/".$_GET["layer"].".php";
118 118 $qy = file_exists($qyfile);
119   - $layersNames = $mapa->getalllayernames();
120 119 $o = $mapa->outputformat;
121 120 $o->set("imagemode",MS_IMAGEMODE_RGBA);
122 121 if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao´e alterado
123   - foreach ($layersNames as $layerName)
  122 + $numlayers = $mapa->numlayers;
  123 + for ($i=0;$i < $numlayers;$i++)
124 124 {
125   - $l = $mapa->getLayerByname($layerName);
  125 + $l = $mapa->getlayer($i);
126 126 if ($l->getmetadata("classesnome") != "")
127 127 {
128 128 if(!function_exists("autoClasses"))
129 129 {include_once("funcoes_gerais.php");}
130 130 autoClasses($l,$mapa);
131 131 }
  132 + $layerName = $l->name;
132 133 if($layerName != $_GET["layer"])
133 134 {$l->set("status",MS_OFF);}
134 135 if($layerName == $_GET["layer"] || $l->group == $_GET["layer"] && $l->group != "")
... ... @@ -213,7 +214,7 @@ function retornaWms($map_fileX,$postgis_mapa){
213 214 $cor = $classe0->getstyle(0)->color;
214 215 $cor->setrgb($c->red,$c->green,$c->blue);
215 216 $cor = $classe0->getstyle(0)->outlinecolor;
216   - $cor->setrgb($c->red,$c->green,$c->blue);
  217 + $cor->setrgb($c->red,$c->green,$c->blue);
217 218 $status = $l->open();
218 219 $status = $l->whichShapes($mapa->extent);
219 220 while ($shape = $l->nextShape())
... ...
classesphp/mapa_googlemaps.php
... ... @@ -126,13 +126,14 @@ $mapa = ms_newMapObj($map_fileX);
126 126 $ret = $mapa->extent;
127 127 $qyfile = dirname($map_fileX)."/".$_GET["layer"].".php";
128 128 $qy = file_exists($qyfile);
129   -
130   -$layersNames = $mapa->getalllayernames();
131 129 $cache = false;
132 130 if(!isset($_GET["telaR"])){//no caso de projecoes remotas, o mapfile nao´e alterado
133   - foreach ($layersNames as $layerName)
  131 +
  132 + $numlayers = $mapa->numlayers;
  133 + for ($i=0;$i < $numlayers;$i++)
134 134 {
135   - $l = $mapa->getLayerByname($layerName);
  135 + $l = $mapa->getlayer($i);
  136 + $layerName = $l->name;
136 137 if ($l->getmetadata("classesnome") != "")
137 138 {
138 139 if(!function_exists("autoClasses"))
... ... @@ -176,8 +177,10 @@ if(!isset($_GET[&quot;telaR&quot;])){//no caso de projecoes remotas, o mapfile nao´e alter
176 177 }
177 178 else{
178 179 $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");
179   - foreach ($layersNames as $layerName){
180   - $l = $mapa->getLayerByname($layerName);
  180 + $numlayers = $mapa->numlayers;
  181 + for ($i=0;$i < $numlayers;$i++)
  182 + {
  183 + $l = $mapa->getlayer($i);
181 184 if($l->getProjection() == "" )
182 185 {$l->setProjection("proj=latlong,a=6378137,b=6378137");}
183 186 }
... ... @@ -260,7 +263,7 @@ else
260 263 }
261 264 $l->close();
262 265 }
263   -
  266 +
264 267 }
265 268 if (!function_exists('imagepng'))
266 269 {
... ... @@ -297,7 +300,7 @@ else{
297 300 header('Content-Length: '.filesize($nomer));
298 301 header('Content-Type: image/png');
299 302 fpassthru(fopen($nomer, 'rb'));
300   - exit;
  303 + exit;
301 304 }
302 305 function salvaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){
303 306 global $img,$map_size;
... ... @@ -333,7 +336,7 @@ function carregaCacheImagem($cachedir,$bbox,$layer,$map,$w,$h){
333 336 header('Content-Type: image/png');
334 337 fpassthru(fopen($nome, 'rb'));
335 338 exit;
336   - }
  339 + }
337 340 }
338 341 function nomeRand($n=10)
339 342 {
... ...
ferramentas/imprimir/svg.php
... ... @@ -3,7 +3,7 @@ body
3 3 {margin:20px;font-family: Verdana, Arial, Helvetica, sans-serif;font-size: 14px;width:300px}
4 4 A
5 5 {text-align:left;font-family: Verdana, Arial, Helvetica, sans-serif;color: #2F4632;}
6   -A:hover
  6 +A:hover
7 7 {color: #4142ff;font-weight: normal;font-family: Verdana, Arial, Helvetica, sans-serif;}
8 8 </style>
9 9 <body>
... ... @@ -75,10 +75,10 @@ if($leb-&gt;type == &quot;MS_BITMAP&quot;){
75 75 $leb->set("font","Arial");
76 76 }
77 77 //altera o nome das classes vazias
78   -$temas = $map->getalllayernames();
79   -foreach ($temas as $tema)
  78 +$numlayers = $map->numlayers;
  79 +for ($i=0;$i < $numlayers;$i++)
80 80 {
81   - $layer = $map->getlayerbyname($tema);
  81 + $layer = $map->getlayer($i);
82 82 if (($layer->data != "") && (strtolower($layer->getmetadata("escondido")) != "sim") && (strtolower($layer->getmetadata("tema")) != "sim"))
83 83 {
84 84 if ($layer->numclasses > 0)
... ...
geraminiatura.php
... ... @@ -186,11 +186,11 @@ function verificaMiniatura($map,$tipo,$admin=false)
186 186 echo "erro no arquivo $tema <br>";
187 187 return;
188 188 }
189   - $temasn = $nmapa->getAllLayerNames();
190 189 $dados = "";
191   - foreach ($temasn as $teman)
  190 + $numlayers = $nmapa->numlayers;
  191 + for ($i=0;$i < $numlayers;$i++)
192 192 {
193   - $layern = $nmapa->getLayerByName($teman);
  193 + $layern = $nmapa->getlayer($i);
194 194 $layern->set("status",MS_DEFAULT);
195 195 ms_newLayerObj($mapa, $layern);
196 196 autoClasses($layern,$mapa,$locaplic);
... ...
ms_criamapa.php
... ... @@ -480,7 +480,8 @@ function adaptaLayers(){
480 480 global $tmpfname;
481 481 $mapa = ms_newMapObj($tmpfname);
482 482 $path = $mapa->shapepath;
483   - for($i=0;$i<($mapa->numlayers);++$i)
  483 + $numlayers = $mapa->numlayers;
  484 + for($i=0;$i<$numlayers;++$i)
484 485 {
485 486 $layer = $mapa->getLayer($i);
486 487 $ok = true;
... ... @@ -648,7 +649,8 @@ function incluiTemasIniciais()
648 649 if ($layern->name == "estadosl")
649 650 {$layern->set("data",$locaplic."/aplicmap/dados/estados.shp");}
650 651 $layern->setmetadata("nomeoriginal",$layern->name);
651   - $layern->setmetadata("temaoriginal",str_replace(".map","",basename($arqtemp)));
  652 + $nNome = str_replace(".map","",basename($arqtemp)).
  653 + $layern->setmetadata("arquivotemaoriginal",$nNome);
652 654 autoClasses($layern,$mapn);
653 655 //
654 656 //necess&aacute;rio para n&atilde;o alterar a extens&atilde;o do mapa por esse par&acirc;metro
... ... @@ -1103,9 +1105,10 @@ function incluiMapaGvsig($gvsiggvp,$gvsigview){
1103 1105 $gm = new gvsig2mapfile($gvsiggvp);
1104 1106 $dataView = $gm->getViewData($gvsigview);
1105 1107 //var_dump($dataView);exit;
1106   - $lnames = $mapn->getalllayernames();
1107   - foreach($lnames as $name){
1108   - $layer = $mapn->getlayerbyname($name);
  1108 + $numlayers = $mapn->numlayers;
  1109 + for ($i=0;$i < $numlayers;$i++)
  1110 + {
  1111 + $layer = $mapn->getlayer($i);
1109 1112 $layer->set("status",MS_DELETE);
1110 1113 }
1111 1114 $next = $dataView["extent"];
... ...
pacotes/gvsig/gvsig2mapfile/upload.php
... ... @@ -47,9 +47,10 @@ if (isset($_FILES[&#39;i3GEOuploadfile&#39;][&#39;name&#39;]))
47 47 $gm = new gvsig2mapfile($Arquivon);
48 48 $views = $gm->getViewsNames();
49 49 $dataView = $gm->getViewData($views[0]);
50   - $lnames = $mapn->getalllayernames();
51   - foreach($lnames as $name){
52   - $layer = $mapn->getlayerbyname($name);
  50 + $numlayers = $mapn->numlayers;
  51 + for ($i=0;$i < $numlayers;$i++)
  52 + {
  53 + $layer = $mapn->getlayer($i);
53 54 $layer->set("status",MS_DELETE);
54 55 }
55 56 $next = $dataView["extent"];
... ... @@ -59,7 +60,7 @@ if (isset($_FILES[&#39;i3GEOuploadfile&#39;][&#39;name&#39;]))
59 60 $mapn->save(str_replace(".gvp",".map",$Arquivon));
60 61 $handle = fopen(str_replace(".gvp",".map",$Arquivon), "r");
61 62 echo "<html>";
62   - while (!feof($handle))
  63 + while (!feof($handle))
63 64 {
64 65 $linha = fgets($handle);
65 66 echo $linha."<br>";
... ...
testamapfile.php
... ... @@ -190,12 +190,12 @@ function verifica($map,$solegenda)
190 190 }
191 191 //echo $base;exit;
192 192 $mapa = ms_newMapObj($base);
193   -
  193 +
194 194 error_reporting(0);
195   - $temasn = $mapa->getAllLayerNames();
196   - foreach ($temasn as $teman)
  195 + $numlayers = $mapa->numlayers;
  196 + for ($i=0;$i < $numlayers;$i++)
197 197 {
198   - $layern = $mapa->getLayerByName($teman);
  198 + $layern = $mapa->getlayer($i);
199 199 if (!empty($postgis_mapa))
200 200 {
201 201 if ($layern->connectiontype == MS_POSTGIS)
... ... @@ -211,7 +211,7 @@ function verifica($map,$solegenda)
211 211 }
212 212 }
213 213 }
214   -
  214 +
215 215 if(!stristr($tema, '.php') === FALSE){
216 216 echo "<br>Arquivo <i>$tema</i> &eacute; um programa PHP. O teste pode n&atilde;o funcionar.<br>";
217 217 include_once($locaplic."/".$tema);
... ... @@ -234,7 +234,7 @@ function verifica($map,$solegenda)
234 234 printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message);
235 235 $error = $error->next();
236 236 }
237   - return;
  237 + return;
238 238 }
239 239 }
240 240 else{
... ... @@ -255,11 +255,11 @@ function verifica($map,$solegenda)
255 255 return;
256 256 }
257 257 }
258   - $temasn = $nmapa->getAllLayerNames();
  258 + $numlayers = $nmapa->numlayers;
259 259 $dados = "";
260   - foreach ($temasn as $teman)
  260 + for ($i=0;$i < $numlayers;$i++)
261 261 {
262   - $layern = $nmapa->getLayerByName($teman);
  262 + $layern = $mapa->getlayer($i);
263 263 $layern->set("status",MS_DEFAULT);
264 264 if (!empty($postgis_mapa))
265 265 {
... ...
teste.php 0 → 100644
... ... @@ -0,0 +1,7 @@
  1 +<?php
  2 +$n = 10;
  3 +for($i=0;$i<$n;++$i){
  4 + echo $i."<br>";
  5 +}
  6 +
  7 +?>
0 8 \ No newline at end of file
... ...