Commit 989f5ac60eb20dc1963a3473d237de3218299e76
1 parent
a854ed12
Exists in
master
and in
7 other branches
Alteração de classe_temas.php para permitir o uso de mais de um tema ao aplicar um filtro
Showing
2 changed files
with
64 additions
and
47 deletions
Show diff stats
admin/admin.db
No preview for this file type
classesphp/classe_temas.php
@@ -100,7 +100,7 @@ Cria um objeto map e seta a variavel tema | @@ -100,7 +100,7 @@ Cria um objeto map e seta a variavel tema | ||
100 | parameters: | 100 | parameters: |
101 | $map_file - Endereço do mapfile no servidor. | 101 | $map_file - Endereço do mapfile no servidor. |
102 | 102 | ||
103 | -$tema - nome do tema que será processado | 103 | +$tema - nome do tema que será processado. (Pode ser uma lista separada por ',' mas só funciona nas funções que trabalham sobre os índices dos layers) |
104 | 104 | ||
105 | $locaplic - (opcional) endereço do i3geo | 105 | $locaplic - (opcional) endereço do i3geo |
106 | 106 | ||
@@ -124,20 +124,24 @@ $ext - (opcional) extensão geográfica que será aplicada ao mapa | @@ -124,20 +124,24 @@ $ext - (opcional) extensão geográfica que será aplicada ao mapa | ||
124 | $this->arquivo = $map_file; | 124 | $this->arquivo = $map_file; |
125 | if($tema != "" && @$this->mapa->getlayerbyname($tema)) | 125 | if($tema != "" && @$this->mapa->getlayerbyname($tema)) |
126 | { | 126 | { |
127 | - $this->layer = $this->mapa->getlayerbyname($tema); | ||
128 | - $this->nome = $tema; | ||
129 | - $vermultilayer = new vermultilayer(); | ||
130 | - $vermultilayer->verifica($map_file,$tema); | ||
131 | - if ($vermultilayer->resultado == 1) // o tema e multi layer | ||
132 | - {$ls = $vermultilayer->temas;} | ||
133 | - else | ||
134 | - {$ls[] = $tema;} | ||
135 | - $this->grupo = $ls; | ||
136 | - $this->visiveis = $vermultilayer->temasvisiveis; | ||
137 | - foreach ($ls as $l) | ||
138 | - { | ||
139 | - $t = $this->mapa->getlayerbyname($l); | ||
140 | - $this->indices[] = $t->index; | 127 | + $listaTemas = str_replace(" ",",",$tema); |
128 | + $listaTemas = explode(",",$tema); | ||
129 | + foreach ($listaTemas as $tema){ | ||
130 | + $this->layer = $this->mapa->getlayerbyname($tema); | ||
131 | + $this->nome = $tema; | ||
132 | + $vermultilayer = new vermultilayer(); | ||
133 | + $vermultilayer->verifica($map_file,$tema); | ||
134 | + if ($vermultilayer->resultado == 1) // o tema e multi layer | ||
135 | + {$ls = $vermultilayer->temas;} | ||
136 | + else | ||
137 | + {$ls[] = $tema;} | ||
138 | + $this->grupo = $ls; | ||
139 | + $this->visiveis = $vermultilayer->temasvisiveis; | ||
140 | + foreach ($ls as $l) | ||
141 | + { | ||
142 | + $t = $this->mapa->getlayerbyname($l); | ||
143 | + $this->indices[] = $t->index; | ||
144 | + } | ||
141 | } | 145 | } |
142 | } | 146 | } |
143 | if($ext && $ext != ""){ | 147 | if($ext && $ext != ""){ |
@@ -458,45 +462,58 @@ $testa - Testa o filtro e retorna uma imagem. | @@ -458,45 +462,58 @@ $testa - Testa o filtro e retorna uma imagem. | ||
458 | */ | 462 | */ |
459 | function insereFiltro($filtro,$testa="") | 463 | function insereFiltro($filtro,$testa="") |
460 | { | 464 | { |
461 | - if(!$this->layer){return "erro";} | ||
462 | - $this->layer->setmetadata("cache",""); | ||
463 | - $fil = $this->layer->getFilterString(); | ||
464 | - $filtro = str_replace("|","'",$filtro); | ||
465 | - if ($this->layer->connectiontype == MS_POSTGIS) | ||
466 | - { | ||
467 | - $filtro = str_replace("'[","",$filtro); | ||
468 | - $filtro = str_replace("[","",$filtro); | ||
469 | - $filtro = str_replace("]'","",$filtro); | ||
470 | - $filtro = str_replace("]","",$filtro); | ||
471 | - $filtro = str_replace("("," ",$filtro); | ||
472 | - $filtro = str_replace(")"," ",$filtro); | ||
473 | - } | ||
474 | - if ($filtro == "") | ||
475 | - {$this->layer->setfilter($filtro);} | ||
476 | - else | ||
477 | - { | ||
478 | - $this->layer->setfilter($filtro); | ||
479 | - $v = versao(); | ||
480 | - //corrige bug do mapserver | ||
481 | - if (($v["completa"] == "4.10.0") && ($this->layer->connectiontype == MS_POSTGIS)) | ||
482 | - {$this->layer->setfilter("\"".$filtro."\"");} | ||
483 | - } | ||
484 | - if ($testa == "") | ||
485 | - { | ||
486 | - $img = $this->mapa->prepareimage(); | ||
487 | - if ($this->layer->draw($img) == 0) | 465 | + foreach($this->indices as $indice){ |
466 | + $layer = $this->mapa->getlayer($indice); | ||
467 | + if(!$layer){return "erro";} | ||
468 | + $layer->setmetadata("cache",""); | ||
469 | + $fil = $layer->getFilterString(); | ||
470 | + $filtro = str_replace("|","'",$filtro); | ||
471 | + if ($layer->connectiontype == MS_POSTGIS) | ||
488 | { | 472 | { |
489 | - $this->layer->setMetaData("cache",""); | ||
490 | - return ("ok"); | 473 | + $filtro = str_replace("'[","",$filtro); |
474 | + $filtro = str_replace("[","",$filtro); | ||
475 | + $filtro = str_replace("]'","",$filtro); | ||
476 | + $filtro = str_replace("]","",$filtro); | ||
477 | + $filtro = str_replace("("," ",$filtro); | ||
478 | + $filtro = str_replace(")"," ",$filtro); | ||
491 | } | 479 | } |
480 | + if ($filtro == "") | ||
481 | + {$layer->setfilter($filtro);} | ||
492 | else | 482 | else |
493 | - {return ("erro. Problemas com o filtro."." ".$filtro);} | 483 | + { |
484 | + $layer->setfilter($filtro); | ||
485 | + $v = versao(); | ||
486 | + //corrige bug do mapserver | ||
487 | + if (($v["completa"] == "4.10.0") && ($layer->connectiontype == MS_POSTGIS)) | ||
488 | + {$layer->setfilter("\"".$filtro."\"");} | ||
489 | + } | ||
490 | + if ($testa == "") | ||
491 | + { | ||
492 | + $layer->setMetaData("cache",""); | ||
493 | + /* | ||
494 | + $img = $this->mapa->prepareimage(); | ||
495 | + if ($this->layer->draw($img) == 0) | ||
496 | + { | ||
497 | + $this->layer->setMetaData("cache",""); | ||
498 | + return ("ok"); | ||
499 | + } | ||
500 | + else | ||
501 | + {return ("erro. Problemas com o filtro."." ".$filtro);} | ||
502 | + */ | ||
503 | + } | ||
504 | + /* | ||
505 | + else | ||
506 | + { | ||
507 | + $i = gravaImagemMapa($this->mapa); | ||
508 | + return ($i["url"]); | ||
509 | + } | ||
510 | + */ | ||
494 | } | 511 | } |
495 | - else | ||
496 | - { | 512 | + if ($testa != ""){ |
497 | $i = gravaImagemMapa($this->mapa); | 513 | $i = gravaImagemMapa($this->mapa); |
498 | return ($i["url"]); | 514 | return ($i["url"]); |
499 | } | 515 | } |
516 | + return "ok"; | ||
500 | } | 517 | } |
501 | /* | 518 | /* |
502 | function: mudaTransparencia | 519 | function: mudaTransparencia |