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 | 100 | parameters: |
| 101 | 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 | 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 | 124 | $this->arquivo = $map_file; |
| 125 | 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 | 147 | if($ext && $ext != ""){ |
| ... | ... | @@ -458,45 +462,58 @@ $testa - Testa o filtro e retorna uma imagem. |
| 458 | 462 | */ |
| 459 | 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 | 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 | 513 | $i = gravaImagemMapa($this->mapa); |
| 498 | 514 | return ($i["url"]); |
| 499 | 515 | } |
| 516 | + return "ok"; | |
| 500 | 517 | } |
| 501 | 518 | /* |
| 502 | 519 | function: mudaTransparencia | ... | ... |