arquivo = $atlasxml; $this->xml = simplexml_load_file($atlasxml); } /* Method: pegaListaDeAtlas Pega a lista de atlas existentes e as informações básicas sobre cada um */ function pegaListaDeAtlas($tituloinstituicao) { $tituloinstituicao = mb_convert_encoding($tituloinstituicao,"HTML-ENTITIES","auto"); $atlas = array(); foreach($this->xml->ATLAS as $s) { $id = mb_convert_encoding($s->ID,"HTML-ENTITIES","auto"); $titulo = mb_convert_encoding($s->TITULO,"HTML-ENTITIES","auto"); $descricao = mb_convert_encoding($s->DESCRICAO,"HTML-ENTITIES","auto"); $icone = mb_convert_encoding($s->ICONE,"HTML-ENTITIES","auto"); $w = mb_convert_encoding($s->WABERTURA,"HTML-ENTITIES","auto"); $h = mb_convert_encoding($s->HABERTURA,"HTML-ENTITIES","auto"); $templatehtml = mb_convert_encoding($s->TEMPLATEHTML,"HTML-ENTITIES","auto"); $atlas[] = array("ID"=>$id,"TITULO"=>$titulo,"DESCRICAO"=>$descricao,"ICONE"=>$icone,"W"=>$w,"H"=>$h,"TEMPLATEHTML"=>$templatehtml); } return (array("atlas"=>$atlas,"tituloinstituicao"=>$tituloinstituicao,"atlasxml"=>$this->arquivo)); } /* Method: criaAtlas Lê os parâmetros específicos para abrir um atlas */ function criaAtlas($atlasId) { $parametros = array(); foreach($this->xml->ATLAS as $s) { $id = mb_convert_encoding($s->ID,"HTML-ENTITIES","auto"); if ($id == $atlasId) { $interface = mb_convert_encoding($s->TEMPLATEHTML,"HTML-ENTITIES","auto"); } } return ($interface); } /* Method: pegaListaDePranchas Pega a lista de atlas existentes e as informações básicas sobre cada um Parameters: atlasId - identificador do Atlas desejado */ function pegaListaDePranchas($atlasId) { $p = array(); foreach($this->xml->ATLAS as $s) { $id = mb_convert_encoding($s->ID,"HTML-ENTITIES","auto"); if ($id == $atlasId) { $titulo = mb_convert_encoding($s->TITULO,"HTML-ENTITIES","auto"); $link = mb_convert_encoding($s->LINKMAISINFO,"HTML-ENTITIES","auto"); $w = mb_convert_encoding($s->WABERTURA,"HTML-ENTITIES","auto"); $h = mb_convert_encoding($s->HABERTURA,"HTML-ENTITIES","auto"); $icone = mb_convert_encoding($s->ICONE,"HTML-ENTITIES","auto"); $tipoguias = mb_convert_encoding($s->TIPOGUIAS,"HTML-ENTITIES","auto"); $pdefault = mb_convert_encoding($s->PRANCHADEFAULT,"HTML-ENTITIES","auto"); foreach($s->PRANCHAS as $pranchas) { foreach($pranchas->PRANCHA as $prancha) { $t = mb_convert_encoding($prancha->TITULO,"HTML-ENTITIES","auto"); $i = mb_convert_encoding($prancha->ICONE,"HTML-ENTITIES","auto"); $pranchaId = mb_convert_encoding($prancha->ID,"HTML-ENTITIES","auto"); $p[] = array("id"=>$pranchaId,"titulo"=>$t,"icone"=>$i); } } } } return (array("tipoguias"=>$tipoguias,"pranchadefault"=>$pdefault,"icone"=>$icone,"titulo"=>$titulo,"w"=>$w,"h"=>$h,"link"=>$link,"pranchas"=>$p)); } /* Method: abrePrancha Ativa uma prancha do atlas. Inclui os temas definidos na configuração da prancha. Ao adicionar um tema, é incluido o metadata ATLAS = "sim" no layer Parameters: atlasId - id do atlas pranchaId - identificador da prancha de um atlas map_file - nome do mapfile do mapa atual locaplic - localização do i3geo no servidor */ function abrePrancha($atlasId,$pranchaId,$map_file,$locaplic) { $p = array(); $temasa = array(); $layers = array(); $mapa = ms_newMapObj($map_file); $nomes = $mapa->getalllayernames(); foreach ($nomes as $n) { $l = $mapa->getlayerbyname($n); //echo $n." ".$l->getmetadata("ATLAS"); if (($l->getmetadata("ATLAS")) != "nao") {$l->set("status",MS_DELETE);} } $mapa->save($map_file); $mp = ""; foreach($this->xml->ATLAS as $s) { $ida = mb_convert_encoding($s->ID,"HTML-ENTITIES","auto"); if ($ida == $atlasId) { foreach($s->PRANCHAS as $pranchas) { foreach($pranchas->PRANCHA as $prancha) { if($pranchaId == mb_convert_encoding($prancha->ID,"HTML-ENTITIES","auto")) { $link = mb_convert_encoding($prancha->LINKMAISINFO,"HTML-ENTITIES","auto"); $w = mb_convert_encoding($prancha->WABERTURA,"HTML-ENTITIES","auto"); $h = mb_convert_encoding($prancha->HABERTURA,"HTML-ENTITIES","auto"); $mp = mb_convert_encoding($prancha->MAPEXT,"HTML-ENTITIES","auto"); //pega os temas foreach($prancha->TEMAS as $temas) { foreach($temas->TEMA as $tema) { $codigo = mb_convert_encoding($tema->CODIGO,"HTML-ENTITIES","auto"); $ligado = mb_convert_encoding($tema->LIGADO,"HTML-ENTITIES","auto"); if ($codigo != "") { $temasa[] = $codigo; if (strtolower($ligado) == "sim") {$layers[] = $codigo;} } } } } } } } } if(count($temasa) > 0) { include("classe_mapa.php"); $mapa = ""; $m = new Mapa($map_file); $m->adicionaTema((implode(",",$temasa)),$locaplic,"nao"); $m->salva(); $mapa = ms_newMapObj($map_file); $nomes = $mapa->getalllayernames(); foreach ($nomes as $n) { $l = $mapa->getlayerbyname($n); if (($l->getmetadata("ATLAS")) != "nao") {$l->set("status",MS_OFF);} } foreach($layers as $t) { $layer = $mapa->getlayerbyname($t); $layer->set("status",MS_DEFAULT); } $mapa->save($map_file); } //verifica extensão geográfica if ($mp != "") { $ext = $mapa->extent; $newext = array(); $temp = explode(",",$mp); foreach ($temp as $t) { if ($t != "") {$newext[] = $t;} } if (count($newext) == 4) {$ext->setextent($newext[0], $newext[1], $newext[2], $newext[3]);} $mapa->save($map_file); } if ($w == ""){$w = 300;} if($h == ""){$h = 300;} return (array("link"=>$link,"w"=>$w,"h"=>$h)); } } ?>