From 5ddcd23c4d3948b7f817196b6048e61bce49f04d Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 20 Feb 2008 21:28:18 +0000 Subject: [PATCH] Inclusão da ferramenta de identificação na versão mobile --- classesphp/classe_atributos.php | 12 +++++++++--- classesphp/classe_vermultilayer.php | 5 +++++ classesphp/funcoes_gerais.php | 30 ++++++++++++++++++++++++++++-- mobile/mobile.php | 83 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--- mobile/navegacao.png | Bin 3326 -> 0 bytes 5 files changed, 122 insertions(+), 8 deletions(-) diff --git a/classesphp/classe_atributos.php b/classesphp/classe_atributos.php index 531463c..addbd06 100644 --- a/classesphp/classe_atributos.php +++ b/classesphp/classe_atributos.php @@ -75,6 +75,7 @@ $tema - nome do tema { $this->mapa = ms_newMapObj($map_file); $this->arquivo = $map_file; + if($tema != "") $this->layer = $this->mapa->getlayerbyname($tema); $this->nome = $tema; } @@ -587,7 +588,12 @@ $resolucao - Resolucao de busca. if ($opcao == "ligados") { foreach ($listatemas as $tema) - {$resultados[$tema] = $this->identificaQBP($tema,$xyarray[0],$xyarray[1],$this->arquivo,$resolucao);} + { + $l = $this->mapa->getlayerbyname($tema); + if($l->status == MS_DEFAULT) + $resultados[$tema] = $this->identificaQBP($tema,$xyarray[0],$xyarray[1],$this->arquivo,$resolucao); + + } } //pesquisa apenas os temas com tip if ($opcao == "tip") @@ -680,7 +686,7 @@ $item - Item único que será identificado. $tiporetorno - Tipo de retorno dos dados. Se for vazio, o retorno é formatado como string, se for shape, retorna o objeto shape */ -function identificaQBP($tema,$x,$y,$map_file,$resolucao,$item,$tiporetorno="") +function identificaQBP($tema,$x,$y,$map_file,$resolucao,$item="",$tiporetorno="") { $mapa = ms_newMapObj($map_file); $layer = $mapa->getLayerByName($tema); @@ -768,7 +774,7 @@ function identificaQBP($tema,$x,$y,$map_file,$resolucao,$item,$tiporetorno="") } if ($layer->type == MS_LAYER_POLYGON) { - $layer->set("toleranceunits",MS_PIXEL); + $layer->set("toleranceunits",'MS_PIXEL'); $layer->set("tolerance",1); $ident = @$layer->queryByPoint($pt, 1, 0); } diff --git a/classesphp/classe_vermultilayer.php b/classesphp/classe_vermultilayer.php index 7885ea4..207999a 100644 --- a/classesphp/classe_vermultilayer.php +++ b/classesphp/classe_vermultilayer.php @@ -88,6 +88,11 @@ class vermultilayer $escala = $map->scale; $todoslayers = $map->getAlllayernames(); $multilayer = 0; + $temas = array(); + $layers = array(); + $nomes = array(); + $nomesvisiveis = array(); + $temasvisiveis = array(); foreach ($todoslayers as $temai) { $layer = $map->getlayerbyname($temai); diff --git a/classesphp/funcoes_gerais.php b/classesphp/funcoes_gerais.php index 155893f..4d65824 100644 --- a/classesphp/funcoes_gerais.php +++ b/classesphp/funcoes_gerais.php @@ -900,10 +900,10 @@ Objeto map alterado. */ function desligaTemas($objMapa) { - $numlayers = $objMap->numlayers; + $numlayers = $objMapa->numlayers; for ($i=0;$i < $numlayers;$i++) { - $layer = $objMap->getlayer($i); + $layer = $objMapa->getlayer($i); $layer->set("status",MS_OFF); } return $objMapa; @@ -1231,6 +1231,32 @@ function xy2imagem($map_file,$xy) return $pt; } /* +function: imagem2xy + +Converte coordenadas de imagem em coordenadas geográficas. + +parameters: + +$map_file - Arquivo map file. + +$xy - XY com as coordenadas (separado por espaço no caso de string) +*/ +function imagem2xy($map_file,$xy) +{ + if (!is_array($xy)) + {$xy = explode(" ",$xy);} + $map = ms_newMapObj($map_file); + $map = desligatemas($map); + $map = desligamargem($map); + $imgo = $map->draw(); + $e = $map->extent; + $c = $map->cellsize; + $x = ($e->minx) + $xy[0] * $c; + $y = ($e->maxy) + $xy[1] * $c; + return array($x,$y); +} + +/* function: xy2wkt Converte coordenadas em wkt. diff --git a/mobile/mobile.php b/mobile/mobile.php index 37f6537..77eaef2 100644 --- a/mobile/mobile.php +++ b/mobile/mobile.php @@ -145,6 +145,13 @@ if ($tipo=="localizar") include("localizar.php"); exit; } +if ($tipo =="autopan") +{ + include("../classesphp/classe_navegacao.php"); + $m = new Navegacao($tmpfname); + $m->pan($x,$y,"",""); + $m->salva(); +} $mapa = ms_newMapObj($tmpfname); $w = $mapa->width; $h = $mapa->height; @@ -163,10 +170,9 @@ $hsrc = imagesy($ims); $xdst = abs(($wdst - $wsrc) / 2); $ydst = abs(($hdst - $hsrc) / 2); $branco = imagecolorresolve($ims,255,255,255); -//imagecolortransparent($ims,$branco); -//imageSaveAlpha($ims, true); imagecopymerge($img,$ims,0,0,0,0,$wsrc,$hsrc,80); ImagePNG($img, $nome); +if(!isset($maparef)){$maparef = "";} ?>
+ + + @@ -195,10 +204,28 @@ ImagePNG($img, $nome); + - + +
+Ativar/desativar mapa de referência +reference; + $imgo = $mapa->drawreferencemap(); + $nome = ($imgo->imagepath).nomeRandomico().".png"; + $imgo->saveImage($nome); + $nomeimagem = ($imgo->imageurl).basename($nome); + echo "
"; + +} +?> diff --git a/mobile/navegacao.png b/mobile/navegacao.png index dc427ee..9878c72 100644 Binary files a/mobile/navegacao.png and b/mobile/navegacao.png differ -- libgit2 0.21.2