Commit 5ddcd23c4d3948b7f817196b6048e61bce49f04d
1 parent
c67d1b81
Exists in
master
and in
7 other branches
Inclusão da ferramenta de identificação na versão mobile
Showing
5 changed files
with
122 additions
and
8 deletions
Show diff stats
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=="localizar") | @@ -145,6 +145,13 @@ if ($tipo=="localizar") | ||
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