From 08703c44a500e17cf9191cbc4be4386c4eb32d9d Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Sat, 31 Jan 2015 23:44:30 +0000 Subject: [PATCH] - --- classesjs/classe_eventos.js | 10 ---------- classesjs/classe_interface.js | 28 +++++++++++++++++++++++++++- classesjs/classe_mapa.js | 21 --------------------- 3 files changed, 27 insertions(+), 32 deletions(-) diff --git a/classesjs/classe_eventos.js b/classesjs/classe_eventos.js index 746a534..c3accd2 100644 --- a/classesjs/classe_eventos.js +++ b/classesjs/classe_eventos.js @@ -529,16 +529,6 @@ i3GEO.eventos = docMapa.onmouseup = function(exy) { i3GEO.eventos.mouseupMapa(exy); }; - docMapa.ontouchend = function(exy) { - if(i3GEO.Interface.ATUAL === "googlemaps"){ - if (i3GEO.eventos.cliquePerm.status === true) { - //exy = exy.latLng; - alert(exy) - i3GEO.eventos.mouseupMapa(exy); - } - i3GEO.eventos.cliquePerm.status = true; - } - }; docMapa.ontouchmove = function(exy) { i3GEO.eventos.cliquePerm.status = false; }; diff --git a/classesjs/classe_interface.js b/classesjs/classe_interface.js index 74d8d6c..3a5067b 100644 --- a/classesjs/classe_interface.js +++ b/classesjs/classe_interface.js @@ -2826,6 +2826,9 @@ i3GEO.Interface = { } }, registraEventos : function() { + //essa variavel guarda a posicao do mapa na tela + //e usada em vercoes com dispositivo touche para melhorar a performance + i3GEOtouchesPosMapa = ""; var modoAtual = ""; google.maps.event.addListener( i3GeoMap, @@ -2894,7 +2897,10 @@ i3GEO.Interface = { i3GeoMap, "mousemove", function(ponto) { - var teladms, tela, pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDMAPA)); + if(i3GEOtouchesPosMapa === ""){ + i3GEOtouchesPosMapa = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDMAPA)); + } + var teladms, tela, pos = i3GEOtouchesPosMapa; if (modoAtual === "move") { return; } @@ -2918,6 +2924,26 @@ i3GEO.Interface = { }; } ); + //se touch + $i(i3GEO.Interface.IDMAPA).ontouchend = function(e) { + var pos, p, lonlat; + if (i3GEO.eventos.cliquePerm.status === true) { + //recalcula a posicao do clique + if(e.changedTouches){ + if(i3GEOtouchesPosMapa === ""){ + i3GEOtouchesPosMapa = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDMAPA)); + } + pos = i3GEOtouchesPosMapa; + p = new google.maps.Point(e.changedTouches[0].clientX - pos[0],e.changedTouches[0].clientY - pos[1]); + e = null; + } + lonlat = i3GeoMapOverlay.getProjection().fromContainerPixelToLatLng(p); + objposicaocursor.ddx = lonlat.lng(); + objposicaocursor.ddy = lonlat.lat(); + i3GEO.eventos.mouseupMapa(); + } + i3GEO.eventos.cliquePerm.status = true; + }; }, retornaIndiceLayer : function(nomeLayer) { var i = false; diff --git a/classesjs/classe_mapa.js b/classesjs/classe_mapa.js index c8a1847..fa2710e 100644 --- a/classesjs/classe_mapa.js +++ b/classesjs/classe_mapa.js @@ -1501,27 +1501,6 @@ i3GEO.mapa = var ntemas, etiquetas, j, retorna, targ = "", x = objposicaocursor.ddx, y = objposicaocursor.ddy; - if (!e) { - e = window.event; - } - /* - try { - if (e.target) { - targ = e.target; - } else { - if (e.srcElement) { - targ = e.srcElement; - } - } - if (targ.parentNode) { - container = targ.parentNode.id; - } - - } catch (erro) { - targ = null; - } - */ - ntemas = i3GEO.arvoreDeCamadas.CAMADAS.length; etiquetas = false; for (j = 0; j < ntemas; j += 1) { -- libgit2 0.21.2