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,6 +75,7 @@ $tema - nome do tema
75 { 75 {
76 $this->mapa = ms_newMapObj($map_file); 76 $this->mapa = ms_newMapObj($map_file);
77 $this->arquivo = $map_file; 77 $this->arquivo = $map_file;
  78 + if($tema != "")
78 $this->layer = $this->mapa->getlayerbyname($tema); 79 $this->layer = $this->mapa->getlayerbyname($tema);
79 $this->nome = $tema; 80 $this->nome = $tema;
80 } 81 }
@@ -587,7 +588,12 @@ $resolucao - Resolucao de busca. @@ -587,7 +588,12 @@ $resolucao - Resolucao de busca.
587 if ($opcao == "ligados") 588 if ($opcao == "ligados")
588 { 589 {
589 foreach ($listatemas as $tema) 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 //pesquisa apenas os temas com tip 598 //pesquisa apenas os temas com tip
593 if ($opcao == "tip") 599 if ($opcao == "tip")
@@ -680,7 +686,7 @@ $item - Item único que será identificado. @@ -680,7 +686,7 @@ $item - Item único que será identificado.
680 686
681 $tiporetorno - Tipo de retorno dos dados. Se for vazio, o retorno é formatado como string, se for shape, retorna o objeto shape 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 $mapa = ms_newMapObj($map_file); 691 $mapa = ms_newMapObj($map_file);
686 $layer = $mapa->getLayerByName($tema); 692 $layer = $mapa->getLayerByName($tema);
@@ -768,7 +774,7 @@ function identificaQBP($tema,$x,$y,$map_file,$resolucao,$item,$tiporetorno="") @@ -768,7 +774,7 @@ function identificaQBP($tema,$x,$y,$map_file,$resolucao,$item,$tiporetorno="")
768 } 774 }
769 if ($layer->type == MS_LAYER_POLYGON) 775 if ($layer->type == MS_LAYER_POLYGON)
770 { 776 {
771 - $layer->set("toleranceunits",MS_PIXEL); 777 + $layer->set("toleranceunits",'MS_PIXEL');
772 $layer->set("tolerance",1); 778 $layer->set("tolerance",1);
773 $ident = @$layer->queryByPoint($pt, 1, 0); 779 $ident = @$layer->queryByPoint($pt, 1, 0);
774 } 780 }
classesphp/classe_vermultilayer.php
@@ -88,6 +88,11 @@ class vermultilayer @@ -88,6 +88,11 @@ class vermultilayer
88 $escala = $map->scale; 88 $escala = $map->scale;
89 $todoslayers = $map->getAlllayernames(); 89 $todoslayers = $map->getAlllayernames();
90 $multilayer = 0; 90 $multilayer = 0;
  91 + $temas = array();
  92 + $layers = array();
  93 + $nomes = array();
  94 + $nomesvisiveis = array();
  95 + $temasvisiveis = array();
91 foreach ($todoslayers as $temai) 96 foreach ($todoslayers as $temai)
92 { 97 {
93 $layer = $map->getlayerbyname($temai); 98 $layer = $map->getlayerbyname($temai);
classesphp/funcoes_gerais.php
@@ -900,10 +900,10 @@ Objeto map alterado. @@ -900,10 +900,10 @@ Objeto map alterado.
900 */ 900 */
901 function desligaTemas($objMapa) 901 function desligaTemas($objMapa)
902 { 902 {
903 - $numlayers = $objMap->numlayers; 903 + $numlayers = $objMapa->numlayers;
904 for ($i=0;$i < $numlayers;$i++) 904 for ($i=0;$i < $numlayers;$i++)
905 { 905 {
906 - $layer = $objMap->getlayer($i); 906 + $layer = $objMapa->getlayer($i);
907 $layer->set("status",MS_OFF); 907 $layer->set("status",MS_OFF);
908 } 908 }
909 return $objMapa; 909 return $objMapa;
@@ -1231,6 +1231,32 @@ function xy2imagem($map_file,$xy) @@ -1231,6 +1231,32 @@ function xy2imagem($map_file,$xy)
1231 return $pt; 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 function: xy2wkt 1260 function: xy2wkt
1235 1261
1236 Converte coordenadas em wkt. 1262 Converte coordenadas em wkt.
mobile/mobile.php
@@ -145,6 +145,13 @@ if ($tipo==&quot;localizar&quot;) @@ -145,6 +145,13 @@ if ($tipo==&quot;localizar&quot;)
145 include("localizar.php"); 145 include("localizar.php");
146 exit; 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 $mapa = ms_newMapObj($tmpfname); 155 $mapa = ms_newMapObj($tmpfname);
149 $w = $mapa->width; 156 $w = $mapa->width;
150 $h = $mapa->height; 157 $h = $mapa->height;
@@ -163,10 +170,9 @@ $hsrc = imagesy($ims); @@ -163,10 +170,9 @@ $hsrc = imagesy($ims);
163 $xdst = abs(($wdst - $wsrc) / 2); 170 $xdst = abs(($wdst - $wsrc) / 2);
164 $ydst = abs(($hdst - $hsrc) / 2); 171 $ydst = abs(($hdst - $hsrc) / 2);
165 $branco = imagecolorresolve($ims,255,255,255); 172 $branco = imagecolorresolve($ims,255,255,255);
166 -//imagecolortransparent($ims,$branco);  
167 -//imageSaveAlpha($ims, true);  
168 imagecopymerge($img,$ims,0,0,0,0,$wsrc,$hsrc,80); 173 imagecopymerge($img,$ims,0,0,0,0,$wsrc,$hsrc,80);
169 ImagePNG($img, $nome); 174 ImagePNG($img, $nome);
  175 +if(!isset($maparef)){$maparef = "";}
170 ?> 176 ?>
171 <div id='botoes' style="position:relative;top:1px;left:1px" > 177 <div id='botoes' style="position:relative;top:1px;left:1px" >
172 <select id='op' name='op' onchange='op(this.value)'> 178 <select id='op' name='op' onchange='op(this.value)'>
@@ -182,6 +188,9 @@ ImagePNG($img, $nome); @@ -182,6 +188,9 @@ ImagePNG($img, $nome);
182 <form id='f' action='mobile.php?' method='get'> 188 <form id='f' action='mobile.php?' method='get'>
183 <input type='hidden' name='tmpfname' value='<?php echo $tmpfname;?>' /> 189 <input type='hidden' name='tmpfname' value='<?php echo $tmpfname;?>' />
184 <input id='tipo' type=hidden name='tipo' value='' /> 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 </form> 194 </form>
186 <map name="sample"> 195 <map name="sample">
187 <area shape="rect" coords="0,0,40,23" onclick='zoommais()'> 196 <area shape="rect" coords="0,0,40,23" onclick='zoommais()'>
@@ -195,10 +204,28 @@ ImagePNG($img, $nome); @@ -195,10 +204,28 @@ ImagePNG($img, $nome);
195 <area shape="rect" coords="22,91,40,104" onclick='leste()'> 204 <area shape="rect" coords="22,91,40,104" onclick='leste()'>
196 <area shape="rect" coords="0,106,40,119" onclick='sul()'> 205 <area shape="rect" coords="0,106,40,119" onclick='sul()'>
197 <area shape="rect" coords="0,91,18,105" onclick='oeste()'> 206 <area shape="rect" coords="0,91,18,105" onclick='oeste()'>
  207 +<area shape="rect" coords="0,120,40,150" onclick='identifica()'>
198 </map> 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 </body> 224 </body>
201 <script> 225 <script>
  226 +modooperacao = ""
  227 +navn = false
  228 +navm = false
202 var app = navigator.appName.substring(0,1); 229 var app = navigator.appName.substring(0,1);
203 if (app=='N') navn=true; else navm=true; 230 if (app=='N') navn=true; else navm=true;
204 pan = "" 231 pan = ""
@@ -271,5 +298,55 @@ function op(valor) @@ -271,5 +298,55 @@ function op(valor)
271 {document.getElementById('f').action = "index.php?"} 298 {document.getElementById('f').action = "index.php?"}
272 document.getElementById('f').submit(); 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 </script> 351 </script>
275 </html> 352 </html>
mobile/navegacao.png

3.25 KB | W: | H:

3.93 KB | W: | H:

  • 2-up
  • Swipe
  • Onion skin