From 4c4a50ba22a729c81ec5029f745d9fad538e0a0a Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Fri, 20 Mar 2009 13:11:57 +0000 Subject: [PATCH] --- classesphp/classe_legenda.php | 51 ++++++++++++++++++++++++++++++++++++++++++++++++--- classesphp/mapa_controle.php | 64 ++++++++++++++++++++++++++++++++++++++++++++++++++++------------ 2 files changed, 100 insertions(+), 15 deletions(-) diff --git a/classesphp/classe_legenda.php b/classesphp/classe_legenda.php index f62077f..a7ae9ae 100644 --- a/classesphp/classe_legenda.php +++ b/classesphp/classe_legenda.php @@ -231,6 +231,20 @@ string de variaveis no formato javascript que permitem montar a legenda. */ function legendaGrafica() { + $nomeslayers = $this->mapa->getalllayernames(); + foreach ($nomeslayers as $nomelayer) + { + $layer = $this->mapa->getlayerbyname($nomelayer); + if (($layer->data != "") && (strtoupper($layer->getmetadata("escondido")) != "SIM") && (strtoupper($layer->getmetadata("tema")) != "NAO")) + { + if ($layer->numclasses > 0) + { + $classe = $layer->getclass(0); + if (($classe->name == "") || ($classe->name == " ")) + {$classe->set("name",$layer->getmetadata("tema"));} + } + } + } $nomeImagem = nomeRandomico(); $imgo = $this->mapa->drawlegend(); $nomer = ($imgo->imagepath)."leg".$nomeImagem.".png"; @@ -586,8 +600,22 @@ array - "imagecolor"=>$imagecolor,"transparent"=>transparent,"position"=>$positi $transparent = $legenda->transparent; $imagecolor = corRGB($legenda->imagecolor); $label = $legenda->label; + $font = $label->font; + if($font == MS_BITMAP) + { + $l = $label->size; + if ($l == MS_TINY){$t = 5;} + if ($l == MS_SMALL){$t = 7;} + if ($l == MS_MEDIUM){$t = 10;} + if ($l == MS_LARGE){$t = 12;} + if ($l == MS_GIANT){$t = 14;} + $labelsize = $t; + } + else $labelsize = $label->size; - return(array("imagecolor"=>$imagecolor,"transparent"=>transparent,"position"=>$position,"status"=>$status,"outlinecolor"=>$outlinecolor,"keyspacingy"=>$keyspacingy,"keyspacingx"=>$keyspacingx,"keysizey"=>$keysizey,"keysizex"=>$keysizex,"height"=>$height,"width"=>$width,"labelsize"=>$labelsize)); + + $tipofonte = $label->type; + 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)); } /* function: aplicaParametrosLegImg @@ -616,7 +644,7 @@ $heigt $width */ - function aplicaParametrosLegImg($imagecolor,$position,$status,$outlinecolor,$keyspacingy,$keyspacingx,$keysizey,$keysizex,$height,$width,$labelsize) + function aplicaParametrosLegImg($fonte,$imagecolor,$position,$status,$outlinecolor,$keyspacingy,$keyspacingx,$keysizey,$keysizex,$height,$width,$labelsize) { $legenda = $this->mapa->legend; $legenda->set("height",$height); @@ -642,7 +670,24 @@ $width $cor = explode(",",$imagecolor); $corres->setRGB($cor[0],$cor[1],$cor[2]); $label = $legenda->label; - $label->set("size",$labelsize); + + if ($fonte != "bitmap") + { + $label->set("type",MS_TRUETYPE); + $label->set("font",$fonte); + $label->set("size",$labelsize); + } + else + { + $label->set("type",MS_BITMAP); + $t = MS_TINY; + if ($labelsize > 5 ){$t = MS_TINY;} + if ($labelsize >= 7 ){$t = MS_SMALL;} + if ($labelsize >= 10 ){$t = MS_MEDIUM;} + if ($labelsize >= 12 ){$t = MS_LARGE;} + if ($labelsize >= 14 ){$t = MS_GIANT;} + $label->set("size",$t); + } return("ok"); } } diff --git a/classesphp/mapa_controle.php b/classesphp/mapa_controle.php index 9be1ae9..c658a0c 100644 --- a/classesphp/mapa_controle.php +++ b/classesphp/mapa_controle.php @@ -2204,6 +2204,21 @@ Include: $cp->set_data($r); break; /* +Property: testaLegenda + +Testa os parâmetros de definição da legenda inserida no mapa. + +Include: + +*/ + case "testaLegenda": + include_once("classe_legenda.php"); + copy($map_file,str_replace(".map","testeleg.map",$map_file)); + $m = new Legenda(str_replace(".map","testeleg.map",$map_file)); + $m->aplicaParametrosLegImg($fonte,$imagecolor,$position,$status,$outlinecolor,$keyspacingy,$keyspacingx,$keysizey,$keysizex,$height,$width,$labelsize); + $cp->set_data($m->legendaGrafica()); + break; +/* Property: contagemclasse Acrescenta a contagem de elementos em cada classe. @@ -2263,7 +2278,7 @@ Include: $utilizacgi = "nao"; } $m = new Legenda($map_file); - $cp->set_data($m->aplicaParametrosLegImg($imagecolor,$position,$status,$outlinecolor,$keyspacingy,$keyspacingx,$keysizey,$keysizex,$height,$width,$labelsize)); + $cp->set_data($m->aplicaParametrosLegImg($fonte,$imagecolor,$position,$status,$outlinecolor,$keyspacingy,$keyspacingx,$keysizey,$keysizex,$height,$width,$labelsize)); $m->salva(); break; /* @@ -2340,9 +2355,14 @@ Include: case "selecaopt": include_once("classe_selecao.php"); copiaSeguranca($map_file); - $m = new Selecao($map_file,$tema); if(!isset($xy)){$xy = "";} - $cp->set_data($m->selecaoPT($xy,$tipo,$tolerancia)); + $temas = explode(",",$tema); + foreach($temas as $tema) + { + $m = new Selecao($map_file,$tema); + $ok[] = $m->selecaoPT($xy,$tipo,$tolerancia); + } + $cp->set_data(implode(",",$ok)); break; /* Property: selecaoext @@ -2355,8 +2375,13 @@ Include: case "selecaoext": include_once("classe_selecao.php"); copiaSeguranca($map_file); - $m = new Selecao($map_file,$tema); - $cp->set_data($m->selecaoEXT($tipo)); + $temas = explode(",",$tema); + foreach($temas as $tema) + { + $m = new Selecao($map_file,$tema); + $ok[] = $m->selecaoEXT($tipo); + } + $cp->set_data(implode(",",$ok)); break; /* Property: selecaobox @@ -2369,8 +2394,13 @@ Include: case "selecaobox": include_once("classe_selecao.php"); copiaSeguranca($map_file); - $m = new Selecao($map_file,$tema); - $cp->set_data($m->selecaoBOX($tipo,$ext)); + $temas = explode(",",$tema); + foreach($temas as $tema) + { + $m = new Selecao($map_file,$tema); + $ok[] = $m->selecaoBOX($tipo,$ext); + } + $cp->set_data(implode(",",$ok)); break; /* @@ -2398,8 +2428,13 @@ Include: case "selecaotema": include_once("classe_selecao.php"); copiaSeguranca($map_file); - $m = new Selecao($map_file,$tema); - $cp->set_data($m->selecaoTema($temao,$tipo)); + $temas = explode(",",$tema); + foreach($temas as $tema) + { + $m = new Selecao($map_file,$tema); + $ok[] = $m->selecaoTema($temao,$tipo); + } + $cp->set_data(implode(",",$ok)); break; /* Property: selecaoPoli @@ -2603,9 +2638,14 @@ function selecaoPoli($xs,$ys,$tema,$tipo) { global $map_file,$cp; include_once("classe_selecao.php"); - $m = new Selecao($map_file,$tema); - $cp->set_data($m->selecaoPorPoligono($tipo,$xs,$ys)); - $m->salva(); + $temas = explode(",",$tema); + foreach($temas as $tema) + { + $m = new Selecao($map_file,$tema); + $ok[] = $m->selecaoPorPoligono($tipo,$xs,$ys); + $m->salva(); + } + $cp->set_data(implode(",",$ok)); } /* Function: redesenhaMapa -- libgit2 0.21.2