Commit 5ddcd23c4d3948b7f817196b6048e61bce49f04d

Authored by Edmar Moretti
1 parent c67d1b81

Inclusão da ferramenta de identificação na versão mobile

classesphp/classe_atributos.php
... ... @@ -75,6 +75,7 @@ $tema - nome do tema
75 75 {
76 76 $this->mapa = ms_newMapObj($map_file);
77 77 $this->arquivo = $map_file;
  78 + if($tema != "")
78 79 $this->layer = $this->mapa->getlayerbyname($tema);
79 80 $this->nome = $tema;
80 81 }
... ... @@ -587,7 +588,12 @@ $resolucao - Resolucao de busca.
587 588 if ($opcao == "ligados")
588 589 {
589 590 foreach ($listatemas as $tema)
590   - {$resultados[$tema] = $this->identificaQBP($tema,$xyarray[0],$xyarray[1],$this->arquivo,$resolucao);}
  591 + {
  592 + $l = $this->mapa->getlayerbyname($tema);
  593 + if($l->status == MS_DEFAULT)
  594 + $resultados[$tema] = $this->identificaQBP($tema,$xyarray[0],$xyarray[1],$this->arquivo,$resolucao);
  595 +
  596 + }
591 597 }
592 598 //pesquisa apenas os temas com tip
593 599 if ($opcao == "tip")
... ... @@ -680,7 +686,7 @@ $item - Item único que será identificado.
680 686  
681 687 $tiporetorno - Tipo de retorno dos dados. Se for vazio, o retorno é formatado como string, se for shape, retorna o objeto shape
682 688 */
683   -function identificaQBP($tema,$x,$y,$map_file,$resolucao,$item,$tiporetorno="")
  689 +function identificaQBP($tema,$x,$y,$map_file,$resolucao,$item="",$tiporetorno="")
684 690 {
685 691 $mapa = ms_newMapObj($map_file);
686 692 $layer = $mapa->getLayerByName($tema);
... ... @@ -768,7 +774,7 @@ function identificaQBP($tema,$x,$y,$map_file,$resolucao,$item,$tiporetorno="")
768 774 }
769 775 if ($layer->type == MS_LAYER_POLYGON)
770 776 {
771   - $layer->set("toleranceunits",MS_PIXEL);
  777 + $layer->set("toleranceunits",'MS_PIXEL');
772 778 $layer->set("tolerance",1);
773 779 $ident = @$layer->queryByPoint($pt, 1, 0);
774 780 }
... ...
classesphp/classe_vermultilayer.php
... ... @@ -88,6 +88,11 @@ class vermultilayer
88 88 $escala = $map->scale;
89 89 $todoslayers = $map->getAlllayernames();
90 90 $multilayer = 0;
  91 + $temas = array();
  92 + $layers = array();
  93 + $nomes = array();
  94 + $nomesvisiveis = array();
  95 + $temasvisiveis = array();
91 96 foreach ($todoslayers as $temai)
92 97 {
93 98 $layer = $map->getlayerbyname($temai);
... ...
classesphp/funcoes_gerais.php
... ... @@ -900,10 +900,10 @@ Objeto map alterado.
900 900 */
901 901 function desligaTemas($objMapa)
902 902 {
903   - $numlayers = $objMap->numlayers;
  903 + $numlayers = $objMapa->numlayers;
904 904 for ($i=0;$i < $numlayers;$i++)
905 905 {
906   - $layer = $objMap->getlayer($i);
  906 + $layer = $objMapa->getlayer($i);
907 907 $layer->set("status",MS_OFF);
908 908 }
909 909 return $objMapa;
... ... @@ -1231,6 +1231,32 @@ function xy2imagem($map_file,$xy)
1231 1231 return $pt;
1232 1232 }
1233 1233 /*
  1234 +function: imagem2xy
  1235 +
  1236 +Converte coordenadas de imagem em coordenadas geográficas.
  1237 +
  1238 +parameters:
  1239 +
  1240 +$map_file - Arquivo map file.
  1241 +
  1242 +$xy - XY com as coordenadas (separado por espaço no caso de string)
  1243 +*/
  1244 +function imagem2xy($map_file,$xy)
  1245 +{
  1246 + if (!is_array($xy))
  1247 + {$xy = explode(" ",$xy);}
  1248 + $map = ms_newMapObj($map_file);
  1249 + $map = desligatemas($map);
  1250 + $map = desligamargem($map);
  1251 + $imgo = $map->draw();
  1252 + $e = $map->extent;
  1253 + $c = $map->cellsize;
  1254 + $x = ($e->minx) + $xy[0] * $c;
  1255 + $y = ($e->maxy) + $xy[1] * $c;
  1256 + return array($x,$y);
  1257 +}
  1258 +
  1259 +/*
1234 1260 function: xy2wkt
1235 1261  
1236 1262 Converte coordenadas em wkt.
... ...
mobile/mobile.php
... ... @@ -145,6 +145,13 @@ if ($tipo==&quot;localizar&quot;)
145 145 include("localizar.php");
146 146 exit;
147 147 }
  148 +if ($tipo =="autopan")
  149 +{
  150 + include("../classesphp/classe_navegacao.php");
  151 + $m = new Navegacao($tmpfname);
  152 + $m->pan($x,$y,"","");
  153 + $m->salva();
  154 +}
148 155 $mapa = ms_newMapObj($tmpfname);
149 156 $w = $mapa->width;
150 157 $h = $mapa->height;
... ... @@ -163,10 +170,9 @@ $hsrc = imagesy($ims);
163 170 $xdst = abs(($wdst - $wsrc) / 2);
164 171 $ydst = abs(($hdst - $hsrc) / 2);
165 172 $branco = imagecolorresolve($ims,255,255,255);
166   -//imagecolortransparent($ims,$branco);
167   -//imageSaveAlpha($ims, true);
168 173 imagecopymerge($img,$ims,0,0,0,0,$wsrc,$hsrc,80);
169 174 ImagePNG($img, $nome);
  175 +if(!isset($maparef)){$maparef = "";}
170 176 ?>
171 177 <div id='botoes' style="position:relative;top:1px;left:1px" >
172 178 <select id='op' name='op' onchange='op(this.value)'>
... ... @@ -182,6 +188,9 @@ ImagePNG($img, $nome);
182 188 <form id='f' action='mobile.php?' method='get'>
183 189 <input type='hidden' name='tmpfname' value='<?php echo $tmpfname;?>' />
184 190 <input id='tipo' type=hidden name='tipo' value='' />
  191 + <input id='x' type=hidden name='x' value='' />
  192 + <input id='y' type=hidden name='y' value='' />
  193 + <input id='referencia' type=hidden name='maparef' value='<?php echo $maparef;?>' />
185 194 </form>
186 195 <map name="sample">
187 196 <area shape="rect" coords="0,0,40,23" onclick='zoommais()'>
... ... @@ -195,10 +204,28 @@ ImagePNG($img, $nome);
195 204 <area shape="rect" coords="22,91,40,104" onclick='leste()'>
196 205 <area shape="rect" coords="0,106,40,119" onclick='sul()'>
197 206 <area shape="rect" coords="0,91,18,105" onclick='oeste()'>
  207 +<area shape="rect" coords="0,120,40,150" onclick='identifica()'>
198 208 </map>
199   -<img id='mapa' style="position:relative;top:1px;left:1px" src='<?php echo $nomeimagem; ?>' usemap="#sample" />
  209 +<img id='mapa' onclick='autopan(event)' style="position:relative;top:1px;left:1px" src='<?php echo $nomeimagem; ?>' usemap="#sample" />
  210 +<br>
  211 +<a href=# onclick="maparef()">Ativar/desativar mapa de referência</a>
  212 +<?php
  213 +if ((isset($maparef)) && ($maparef == "sim"))
  214 +{
  215 + //$ref = $mapa->reference;
  216 + $imgo = $mapa->drawreferencemap();
  217 + $nome = ($imgo->imagepath).nomeRandomico().".png";
  218 + $imgo->saveImage($nome);
  219 + $nomeimagem = ($imgo->imageurl).basename($nome);
  220 + echo "<br><img style=position:relative;top:1px;left:1px src='".$nomeimagem."' />";
  221 +
  222 +}
  223 +?>
200 224 </body>
201 225 <script>
  226 +modooperacao = ""
  227 +navn = false
  228 +navm = false
202 229 var app = navigator.appName.substring(0,1);
203 230 if (app=='N') navn=true; else navm=true;
204 231 pan = ""
... ... @@ -271,5 +298,55 @@ function op(valor)
271 298 {document.getElementById('f').action = "index.php?"}
272 299 document.getElementById('f').submit();
273 300 }
  301 +function maparef()
  302 +{
  303 + var temp = document.getElementById("referencia").value;
  304 + if (temp == "sim")
  305 + {document.getElementById("referencia").value = "";}
  306 + else
  307 + {document.getElementById("referencia").value = "sim";}
  308 + document.getElementById('tipo').value = "";
  309 + document.getElementById('f').submit();
  310 +}
  311 +function autopan(exy)
  312 +{
  313 + var xy = capturaposicao(exy)
  314 + if((xy[0] > 40) || (xy[1] > 150) )
  315 + {
  316 + document.getElementById('x').value = xy[0]
  317 + document.getElementById('y').value = xy[1]
  318 + document.getElementById('tipo').value = "autopan";
  319 + document.getElementById('f').action = "mobile.php"
  320 + if (modooperacao == "identifica")
  321 + {document.getElementById('f').action = "identifica.php?"}
  322 + document.getElementById('f').submit();
  323 + }
  324 +}
  325 +function identifica()
  326 +{
  327 + modooperacao = "identifica"
  328 + document.getElementById("botoes").innerHTML = "Clique no mapa"
  329 +}
  330 +function capturaposicao(exy)
  331 +{
  332 + var e = (navn) ? exy : window.event;
  333 + var xfig = e.clientX;
  334 + var yfig = e.clientY;
  335 + var obj = document.getElementById("mapa")
  336 + var pos = findPos(obj)
  337 + var xfig = xfig - pos[0]
  338 + var yfig = yfig - pos[1]
  339 + return [xfig,yfig]
  340 +}
  341 +function findPos(obj) {
  342 + var curleft = curtop = 0;
  343 + if (obj.offsetParent) {
  344 + do {
  345 + curleft += obj.offsetLeft;
  346 + curtop += obj.offsetTop;
  347 + } while (obj = obj.offsetParent);
  348 + }
  349 + return [curleft,curtop];
  350 +}
274 351 </script>
275 352 </html>
... ...
mobile/navegacao.png

3.25 KB | W: | H:

3.93 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin