diff --git a/ferramentas/carregakml/index.js b/ferramentas/carregakml/index.js index f1ced76..380297a 100644 --- a/ferramentas/carregakml/index.js +++ b/ferramentas/carregakml/index.js @@ -150,12 +150,19 @@ i3GEOF.carregakml = { Adiciona o KML ao mapa */ adiciona: function(){ - if(i3GEOF.carregakml.aguarde.visibility === "visible") - {return;} - var url = $i("i3GEOcarregakmlurl").value; + var url, temp, cp, p; + if(i3GEOF.carregakml.aguarde.visibility === "visible"){ + return; + } + url = $i("i3GEOcarregakmlurl").value; if(url !== ""){ - i3GEOF.carregakml.aguarde.visibility = "visible"; - i3GEO.Interface[i3GEO.Interface.ATUAL].adicionaKml(false,url,url,true); + temp = function(retorno){ + i3GEO.atualiza(); + }; + cp = new cpaint(); + cp.set_response_type("JSON"); + p = i3GEO.configura.locaplic+"/ferramentas/carregakml/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=crialayer&url="+url; + cp.call(p,"foo",temp); i3GEOF.carregakml.aguarde.visibility = "hidden"; } } diff --git a/ferramentas/conectarservicos/index.js b/ferramentas/conectarservicos/index.js index fdb46ea..dff8795 100644 --- a/ferramentas/conectarservicos/index.js +++ b/ferramentas/conectarservicos/index.js @@ -154,7 +154,7 @@ i3GEOF.conectarservicos = * Cria a janela flutuante para controle da ferramenta. */ iniciaJanelaFlutuante : function() { - var minimiza, cabecalho, janela, divid, temp, titulo; + var minimiza, cabecalho, janela, divid, titulo; if($i("i3GEOF.conectarservicos")){ return; } diff --git a/ferramentas/cortina/index.js b/ferramentas/cortina/index.js index f6af0d0..5d72e4b 100644 --- a/ferramentas/cortina/index.js +++ b/ferramentas/cortina/index.js @@ -188,6 +188,10 @@ i3GEOF.cortina = { if(i3GEOF.cortina.tema !== ""){ if(i3GEO.Interface.ATUAL === "openlayers"){ layer = i3geoOL.getLayersByName(i3GEOF.cortina.tema)[0]; + //TODO nao funciona no OL3 + if(!layer.div){ + return; + } i3GEOF.cortina.estilo = layer.div.style; } if(i3GEO.Interface.ATUAL === "googlemaps"){ diff --git a/ferramentas/geolocal/index.js b/ferramentas/geolocal/index.js index 711bbb2..edbd61b 100644 --- a/ferramentas/geolocal/index.js +++ b/ferramentas/geolocal/index.js @@ -33,26 +33,27 @@ GNU junto com este programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ -if(typeof(i3GEOF) === 'undefined'){ +if (typeof (i3GEOF) === 'undefined') { var i3GEOF = {}; } /* -Classe: i3GEOF.geolocal + * Classe: i3GEOF.geolocal */ -i3GEOF.geolocal = { +i3GEOF.geolocal = + { /* - Variavel: posicoes - - Objetos capturados + * Variavel: posicoes + * + * Objetos capturados */ - posicoes: [], - tempo: null, + posicoes : [], + tempo : null, /* - Variavel: aguarde - - Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. + * Variavel: aguarde + * + * Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. */ - aguarde: "", + aguarde : "", /** * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php */ @@ -66,124 +67,121 @@ i3GEOF.geolocal = { return dicionario; }, /* - Function: inicia - - Inicia a ferramenta. É chamado por criaJanelaFlutuante - - Parametro: - - iddiv {String} - id do div que receberá o conteudo HTML da ferramenta + * Function: inicia + * + * Inicia a ferramenta. É chamado por criaJanelaFlutuante + * + * Parametro: + * + * iddiv {String} - id do div que receberá o conteudo HTML da ferramenta */ - inicia: function(iddiv){ - var ics,n,i; - //se nao permitir a localizacao, retorna uma mensagem - if(navigator.geolocation){ + inicia : function(iddiv) { + var ics, n, i; + // se nao permitir a localizacao, retorna uma mensagem + if (navigator.geolocation) { $i(iddiv).innerHTML = i3GEOF.geolocal.html(); $i("i3GEOFgeolocalFormTempo").onsubmit = i3GEOF.geolocal.capturaTempo; ics = $i(iddiv).getElementsByTagName("button"); n = ics.length; - for(i=0;i "; - janela = i3GEO.janela.cria( - "290", - "220", - "", - "", - "", - titulo, - "i3GEOF.geolocal", - false, - "hd", - cabecalho, - minimiza - ); + // cria a janela flutuante + titulo = + "
" + $trad( + 'localizaUsuario', + i3GEOF.geolocal.dicionario) + + "
"; + janela = i3GEO.janela.cria("290", "220", "", "", "", titulo, "i3GEOF.geolocal", false, "hd", cabecalho, minimiza); divid = janela[2].id; $i("i3GEOF.geolocal_corpo").style.backgroundColor = "white"; $i("i3GEOF.geolocal_corpo").style.textAlign = "left"; i3GEOF.geolocal.aguarde = $i("i3GEOF.geolocal_imagemCabecalho").style; i3GEOF.geolocal.inicia(divid); - temp = function(){ + temp = function() { i3GEOF.geolocal[i3GEO.Interface.ATUAL].removeLayer(); i3GEOF.geolocal.paraTempo(); }; YAHOO.util.Event.addListener(janela[0].close, "click", temp); }, - capturaCoordenada: function(){ - if(i3GEOF.geolocal.aguarde.visibility == "visible"){ + capturaCoordenada : function() { + if (i3GEOF.geolocal.aguarde.visibility == "visible") { return; } i3GEOF.geolocal.aguarde.visibility = "visible"; - var retorno = function(position){ + var retorno = function(position) { i3GEOF.geolocal.posicoes.push(position); - var n = parseInt($i("i3GEOFgeolocalMaximo").value,10); - if(n > 0 && i3GEOF.geolocal.posicoes.length > n){ - i3GEOF.geolocal.posicoes.splice(0,(i3GEOF.geolocal.posicoes.length - n)); + var n = parseInt($i("i3GEOFgeolocalMaximo").value, 10); + if (n > 0 && i3GEOF.geolocal.posicoes.length > n) { + i3GEOF.geolocal.posicoes.splice(0, (i3GEOF.geolocal.posicoes.length - n)); } i3GEOF.geolocal.listaCoord(); }; - navigator.geolocation.getCurrentPosition(retorno,i3GEOF.geolocal.erro); + navigator.geolocation.getCurrentPosition(retorno, i3GEOF.geolocal.erro); }, - capturaTempo: function(){ - var tempo = parseInt($i("i3GEOFgeolocalTempo").value,10); - if(tempo){ - if(tempo > 0){ - i3GEOF.geolocal.tempo = setInterval("i3GEOF.geolocal.capturaCoordenada()",tempo*1000); - } - else{ + capturaTempo : function() { + var tempo = parseInt($i("i3GEOFgeolocalTempo").value, 10); + if (tempo) { + if (tempo > 0) { + i3GEOF.geolocal.tempo = setInterval("i3GEOF.geolocal.capturaCoordenada()", tempo * 1000); + } else { clearInterval(i3GEOF.geolocal.tempo); } } return false; }, - paraTempo: function(){ - if($i("i3GEOFgeolocalTempo")){ + paraTempo : function() { + if ($i("i3GEOFgeolocalTempo")) { $i("i3GEOFgeolocalTempo").value = 0; } clearInterval(i3GEOF.geolocal.tempo); }, - erro: function(error){ + erro : function(error) { i3GEOF.geolocal.paraTempo(); var erro = ""; - switch(error.code){ + switch (error.code) { case error.PERMISSION_DENIED: erro = "User denied the request for Geolocation."; break; @@ -200,100 +198,193 @@ i3GEOF.geolocal = { i3GEO.janela.tempoMsg(erro); i3GEOF.geolocal.aguarde.visibility = "hidden"; }, - listaCoord: function(position){ - var ps = i3GEOF.geolocal.posicoes, - n = ps.length, - i, - ins = "", - res = ["LatitudeLongitude"]; - for(i=(n-1);i>=0;i--){ - ins = "" + - '' + - '' + - '' + - "" + ps[i].coords.latitude + "" + ps[i].coords.longitude + ""; + listaCoord : function(position) { + var ps = i3GEOF.geolocal.posicoes, n = ps.length, i, ins = "", res = [ + "LatitudeLongitude" + ]; + for (i = (n - 1); i >= 0; i--) { + ins = + "" + '' + + '' + + '' + + "" + + ps[i].coords.latitude + + "" + + ps[i].coords.longitude + + ""; res.push(ins); } $i("i3GEOFgeolocalListaDePontos").innerHTML = "" + res.join("") + "
"; $i("i3GEOFgeolocalNcoord").innerHTML = n; - i3GEOF.geolocal[i3GEO.Interface.ATUAL].desenha(); + if (i3GEO.Interface["ATUAL"] === "openlayers") { + if (typeof OpenLayers == "undefined") { + api = "ol3"; + } else { + api = "openlayers"; + } + } else { + api = i3GEO.Interface["ATUAL"]; + } + i3GEOF.geolocal[api].desenha(); i3GEOF.geolocal.aguarde.visibility = "hidden"; }, - limpa: function(){ + limpa : function() { i3GEOF.geolocal.posicoes = []; - i3GEOF.geolocal[i3GEO.Interface.ATUAL].removeLayer(); + if (i3GEO.Interface["ATUAL"] === "openlayers") { + if (typeof OpenLayers == "undefined") { + api = "ol3"; + } else { + api = "openlayers"; + } + } else { + api = i3GEO.Interface["ATUAL"]; + } + i3GEOF.geolocal[api].removeLayer(); i3GEOF.geolocal.listaCoord(); }, - excluiLinha: function(i){ - i3GEOF.geolocal.posicoes.splice(i,1); + excluiLinha : function(i) { + i3GEOF.geolocal.posicoes.splice(i, 1); i3GEOF.geolocal.listaCoord(); }, - panLinha: function(i){ + panLinha : function(i) { var posicao = i3GEOF.geolocal.posicoes[i]; - //@FIXME o pan nao funciona no OSM - if(posicao != undefined && i3GEO.Interface.openlayers.googleLike != true){ - i3GEO.navega.pan2ponto((posicao.coords.longitude),(posicao.coords.latitude)); + // @FIXME o pan nao funciona no OSM + if (posicao != undefined && i3GEO.Interface.openlayers.googleLike != true) { + i3GEO.navega.pan2ponto((posicao.coords.longitude), (posicao.coords.latitude)); } }, - info: function(i){ - i3GEO.mapa.dialogo.cliqueIdentificaDefault(i3GEOF.geolocal.posicoes[i].coords.longitude,i3GEOF.geolocal.posicoes[i].coords.latitude); + info : function(i) { + i3GEO.mapa.dialogo.cliqueIdentificaDefault( + i3GEOF.geolocal.posicoes[i].coords.longitude, + i3GEOF.geolocal.posicoes[i].coords.latitude); }, - mostraxy: function(i){ - if(i3GEO.Interface.ATUAL === "googleearth") - {return;} + mostraxy : function(i) { + if (i3GEO.Interface.ATUAL === "googleearth") { + return; + } var posicao = i3GEOF.geolocal.posicoes[i]; - i3GEO.desenho.addPin(posicao.coords.longitude,posicao.coords.latitude,"","",i3GEO.configura.locaplic+'/imagens/google/confluence.png',"pingeolocal"); + i3GEO.desenho.addPin( + posicao.coords.longitude, + posicao.coords.latitude, + "", + "", + i3GEO.configura.locaplic + '/imagens/google/confluence.png', + "pingeolocal"); }, - escondexy: function(){ + escondexy : function() { i3GEO.desenho.removePins("pingeolocal"); }, - posicoes2pontos: function(){ - var ps = i3GEOF.geolocal.posicoes, - n = ps.length, - i, - pontos = []; - for(i=0;i < n;i++){ + posicoes2pontos : function() { + var ps = i3GEOF.geolocal.posicoes, n = ps.length, i, pontos = []; + for (i = 0; i < n; i++) { pontos.push((ps[i].coords.longitude) + " " + ps[i].coords.latitude); } return pontos; }, - criaShp: function(){ - function ativanovotema(retorno){ - var pontos = i3GEOF.geolocal.posicoes2pontos(), - temaNovo = retorno.data, - converteParaLinha = function(){ - var cp = new cpaint(); - cp.set_response_type("JSON"); - var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=sphPT2shp¶=linha&tema="+temaNovo; - cp.call(p,"sphPT2shp",i3GEO.atualiza); - }; - var p = window.parent.i3GEO.configura.locaplic+"/ferramentas/inserexy2/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=insereSHP&tema="+retorno.data; + criaShp : function() { + function ativanovotema(retorno) { + var pontos = i3GEOF.geolocal.posicoes2pontos(), temaNovo = retorno.data, converteParaLinha = + function() { + var cp = new cpaint(); + cp.set_response_type("JSON"); + var p = + i3GEO.configura.locaplic + "/classesphp/mapa_controle.php?g_sid=" + + i3GEO.configura.sid + + "&funcao=sphPT2shp¶=linha&tema=" + + temaNovo; + cp.call(p, "sphPT2shp", i3GEO.atualiza); + }; + var p = + window.parent.i3GEO.configura.locaplic + "/ferramentas/inserexy2/exec.php?g_sid=" + + i3GEO.configura.sid + + "&funcao=insereSHP&tema=" + + retorno.data; var cp = new cpaint(); cp.set_response_type("JSON"); cp.set_transfer_mode('POST'); - cp.call(p,"insereSHP",converteParaLinha,"&xy="+pontos.join(" ")); + cp.call(p, "insereSHP", converteParaLinha, "&xy=" + pontos.join(" ")); } var cp = new cpaint(); cp.set_response_type("JSON"); cp.set_transfer_mode("POST"); - var p = window.parent.i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid; - cp.call(p,"criaSHPvazio",ativanovotema,"&funcao=criashpvazio"); + var p = window.parent.i3GEO.configura.locaplic + "/classesphp/mapa_controle.php?g_sid=" + i3GEO.configura.sid; + cp.call(p, "criaSHPvazio", ativanovotema, "&funcao=criashpvazio"); }, - openlayers: { - desenha: function(){ + ol3 : { + desenha : function() { + if (!i3GEO.desenho.layergrafico) { + i3GEO.desenho.openlayers.criaLayerGrafico(); + } + i3GEOF.geolocal.ol3.removeFiguras(); + var ps = i3GEOF.geolocal.posicoes, n = ps.length, i, feature; + for (i = 0; i < n; i++) { + feature = new ol.Feature({ + geometry : new ol.geom.Point([ + ps[i].coords.longitude, ps[i].coords.latitude + ]), + origem : 'i3GEOFgeolocal' + }); + i3GEO.desenho.layergrafico.getSource().addFeature(feature); + // linha + if (ps[i + 1]) { + feature = new ol.Feature({ + geometry : new ol.geom.LineString([ + [ + ps[i].coords.longitude, ps[i].coords.latitude + ], [ + ps[i + 1].coords.longitude, ps[i + 1].coords.latitude + ] + ]), + origem : 'i3GEOFgeolocal' + }); + i3GEO.desenho.layergrafico.getSource().addFeature(feature); + } + } + }, + removeFiguras : function() { + var features, n, f, i, remover = []; + features = i3GEO.desenho.layergrafico.getSource().getFeatures(); + n = features.length; + for(i = 0; i < n; i++){ + f = features[i]; + if(f.getProperties().origem === "i3GEOFselecao"){ + remover.push(f); + } + } + for(r in remover){ + i3GEO.desenho.layergrafico.getSource().removeFeature(remover[r]); + } + }, + removeLayer : function() { + + } + }, + openlayers : { + desenha : function() { // allow testing of specific renderers via "?renderer=Canvas", etc - var renderer = OpenLayers.Util.getParameters(window.location.href).renderer, - layer_style = OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']), - style_blue = OpenLayers.Util.extend({}, layer_style), - vectorLayer, - ps = i3GEOF.geolocal.posicoes, - n = ps.length, - i, - point, - pointFeature = [], - pointList = []; + var renderer = OpenLayers.Util.getParameters(window.location.href).renderer, layer_style = + OpenLayers.Util.extend({}, OpenLayers.Feature.Vector.style['default']), style_blue = + OpenLayers.Util.extend({}, layer_style), vectorLayer, ps = i3GEOF.geolocal.posicoes, n = ps.length, i, point, pointFeature = + [], pointList = []; - renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers; + renderer = (renderer) ? [ + renderer + ] : OpenLayers.Layer.Vector.prototype.renderers; style_blue.strokeColor = "blue"; style_blue.fillColor = "yellow"; @@ -302,91 +393,83 @@ i3GEOF.geolocal = { style_blue.strokeWidth = 2; style_blue.rotation = 0; style_blue.strokeLinecap = "butt"; - if(i3geoOL.getLayersByName("Coordenadas").length === 0){ + if (i3geoOL.getLayersByName("Coordenadas").length === 0) { vectorLayer = new OpenLayers.Layer.Vector("Coordenadas", { - style: layer_style, - renderers: renderer + style : layer_style, + renderers : renderer }); - } - else{ + } else { vectorLayer = i3geoOL.getLayersByName("Coordenadas")[0]; vectorLayer.removeFeatures(vectorLayer.features); } - for(i=0;i */ executa: function(){ - if (($i("i3GEOgradeCoordintervalo").value == 0) || ($i("i3GEOgradeCoordintervalo").value == "")) - {i3GEO.janela.tempoMsg($trad('distLinhas',i3GEOF.gradeCoord.dicionario));} + if (($i("i3GEOgradeCoordintervalo").value == 0) || ($i("i3GEOgradeCoordintervalo").value == "")){ + i3GEO.janela.tempoMsg($trad('distLinhas',i3GEOF.gradeCoord.dicionario)); + } else { - if(i3GEOF.gradeCoord.aguarde.visibility === "visible") - {return;} + if(i3GEOF.gradeCoord.aguarde.visibility === "visible"){ + return; + } i3GEOF.gradeCoord.aguarde.visibility = "visible"; var temp = function(){ i3GEO.atualiza(); diff --git a/ferramentas/legenda/template_mst.html b/ferramentas/legenda/template_mst.html index b1266fc..b8a157b 100644 --- a/ferramentas/legenda/template_mst.html +++ b/ferramentas/legenda/template_mst.html @@ -107,7 +107,7 @@

  - {{{consideraElementosVisisveis}}} + {{{consideraElementosVisisveis}}}

{{{ignoraValores}}}:

diff --git a/ferramentas/mascara/index.js b/ferramentas/mascara/index.js index 02c4d83..7db6c9d 100644 --- a/ferramentas/mascara/index.js +++ b/ferramentas/mascara/index.js @@ -194,7 +194,7 @@ i3GEOF.mascara = { + "&funcao=aplicar" + "&tema=" + tema + "&mascarar=" + mascarar.join(","); - cp = new cpaint() + cp = new cpaint(); fim = function(retorno){ i3GEO.Interface.atualizaMapa(); i3GEOF.mascara.aguarde.visibility = "hidden"; diff --git a/ferramentas/opcoes_fundo/index.js b/ferramentas/opcoes_fundo/index.js index 1960a99..210cdf2 100644 --- a/ferramentas/opcoes_fundo/index.js +++ b/ferramentas/opcoes_fundo/index.js @@ -1,151 +1,157 @@ -if(typeof(i3GEOF) === 'undefined'){ +if (typeof (i3GEOF) === 'undefined') { var i3GEOF = {}; } /* -Classe: i3GEOF.opcoesFundo -*/ -i3GEOF.opcoesFundo = { - /* - Variavel: aguarde - - Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. - */ - aguarde: "", - /** - * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php - */ - MUSTACHE : "", - /** - * Susbtitutos para o template - */ - mustacheHash : function() { - var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.opcoesFundo.dicionario); - dicionario["locaplic"] = i3GEO.configura.locaplic; - dicionario["asp"] = '"'; - return dicionario; - }, - /* - Function: inicia - - Inicia a ferramenta. É chamado por criaJanelaFlutuante - - Parametro: - - iddiv {String} - id do div que receberá o conteudo HTML da ferramenta - */ - inicia: function(iddiv){ - try{ - i3GEOF.opcoesFundo.aguarde.visibility = "visible"; - $i(iddiv).innerHTML += i3GEOF.opcoesFundo.html(); - var b = new YAHOO.widget.Button( - "i3GEOopcoesFundobotao1", - {onclick:{fn: i3GEOF.opcoesFundo.executa}} - ); - b.addClass("rodar150"); - i3GEO.util.aplicaAquarela("i3GEOF.opcoesFundo_corpo"); - var p = i3GEO.configura.locaplic+"/ferramentas/opcoes_fundo/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=pegacorfundo", - cp = new cpaint(), - retorno = function(retorno){ + * Classe: i3GEOF.opcoesFundo + */ +i3GEOF.opcoesFundo = + { + /* + * Variavel: aguarde + * + * Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. + */ + aguarde : "", + /** + * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php + */ + MUSTACHE : "", + /** + * Susbtitutos para o template + */ + mustacheHash : function() { + var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.opcoesFundo.dicionario); + dicionario["locaplic"] = i3GEO.configura.locaplic; + dicionario["asp"] = '"'; + return dicionario; + }, + /* + * Function: inicia + * + * Inicia a ferramenta. É chamado por criaJanelaFlutuante + * + * Parametro: + * + * iddiv {String} - id do div que receberá o conteudo HTML da ferramenta + */ + inicia : function(iddiv) { + try { + i3GEOF.opcoesFundo.aguarde.visibility = "visible"; + $i(iddiv).innerHTML += i3GEOF.opcoesFundo.html(); + var b = new YAHOO.widget.Button("i3GEOopcoesFundobotao1", { + onclick : { + fn : i3GEOF.opcoesFundo.executa + } + }); + b.addClass("rodar150"); + i3GEO.util.aplicaAquarela("i3GEOF.opcoesFundo_corpo"); + var p = + i3GEO.configura.locaplic + "/ferramentas/opcoes_fundo/exec.php?g_sid=" + i3GEO.configura.sid + "&funcao=pegacorfundo", cp = + new cpaint(), retorno = function(retorno) { i3GEOF.opcoesFundo.aguarde.visibility = "hidden"; - if(retorno.data.erro){i3GEO.janela.tempoMsg("Erro");return;} + if (retorno.data.erro) { + i3GEO.janela.tempoMsg("Erro"); + return; + } $i("i3GEOopcoesFundocor").value = retorno.data; }; - cp.set_response_type("JSON"); - cp.call(p,"corQM",retorno); - } - catch(erro){i3GEO.janela.tempoMsg(erro);} - if(i3GEO.Interface.ATUAL === "googlemaps" || i3GEO.Interface.ATUAL === "googleearth") - {i3GEO.janela.tempoMsg($trad('ajuda',i3GEOF.opcoesFundo.dicionario));} - }, - /* - Function: html - - Gera o código html para apresentação das opções da ferramenta - - Retorno: - - String com o código html - */ - html:function() { - var ins = Mustache.render(i3GEOF.opcoesFundo.MUSTACHE, i3GEOF.opcoesFundo.mustacheHash()); - return ins; - }, - /* - Function: iniciaJanelaFlutuante - - Cria a janela flutuante para controle da ferramenta. - */ - iniciaJanelaFlutuante: function(){ - var janela,divid,titulo,cabecalho,minimiza; - if ($i("i3GEOF.opcoesFundo")) { - return; - } - cabecalho = function(){}; - minimiza = function(){ - i3GEO.janela.minimiza("i3GEOF.opcoesFundo"); - }; - //cria a janela flutuante - titulo = "
" + $trad("p9")+"
"; - janela = i3GEO.janela.cria( - "210px", - "80px", - "", - "", - "", - titulo, - "i3GEOF.opcoesFundo", - false, - "hd", - cabecalho, - "" - ); - divid = janela[2].id; - $i("i3GEOF.opcoesFundo_corpo").style.backgroundColor = "white"; - $i("i3GEOF.opcoesFundo_corpo").style.textAlign = "left"; - i3GEOF.opcoesFundo.aguarde = $i("i3GEOF.opcoesFundo_imagemCabecalho").style; - i3GEOF.opcoesFundo.inicia(divid); - }, - /* - Function: corj - - Abre a janela para o usuário selecionar uma cor interativamente - */ - corj: function(obj) - {i3GEO.util.abreCor("",obj);}, - /* - Function: executa - - Aplica a nova cor - - A cor do fundo na interface Openlayers é definida por meio de estilo, mas é necessário persistir a cor no mapfile existente no servidor. - */ - executa: function(){ - if(i3GEOF.opcoesFundo.aguarde.visibility === "visible") - {return;} - i3GEOF.opcoesFundo.aguarde.visibility = "visible"; - var temp = function(){ + cp.set_response_type("JSON"); + cp.call(p, "corQM", retorno); + } catch (erro) { + i3GEO.janela.tempoMsg(erro); + } + if (i3GEO.Interface.ATUAL === "googlemaps" || i3GEO.Interface.ATUAL === "googleearth") { + i3GEO.janela.tempoMsg($trad('ajuda', i3GEOF.opcoesFundo.dicionario)); + } + }, + /* + * Function: html + * + * Gera o código html para apresentação das opções da ferramenta + * + * Retorno: + * + * String com o código html + */ + html : function() { + var ins = Mustache.render(i3GEOF.opcoesFundo.MUSTACHE, i3GEOF.opcoesFundo.mustacheHash()); + return ins; + }, + /* + * Function: iniciaJanelaFlutuante + * + * Cria a janela flutuante para controle da ferramenta. + */ + iniciaJanelaFlutuante : function() { + var janela, divid, titulo, cabecalho, minimiza; + if ($i("i3GEOF.opcoesFundo")) { + return; + } + cabecalho = function() { + }; + minimiza = function() { + i3GEO.janela.minimiza("i3GEOF.opcoesFundo"); + }; + // cria a janela flutuante + titulo = + "
" + $trad("p9") + + "
"; + janela = i3GEO.janela.cria("210px", "80px", "", "", "", titulo, "i3GEOF.opcoesFundo", false, "hd", cabecalho, ""); + divid = janela[2].id; + $i("i3GEOF.opcoesFundo_corpo").style.backgroundColor = "white"; + $i("i3GEOF.opcoesFundo_corpo").style.textAlign = "left"; + i3GEOF.opcoesFundo.aguarde = $i("i3GEOF.opcoesFundo_imagemCabecalho").style; + i3GEOF.opcoesFundo.inicia(divid); + }, + /* + * Function: corj + * + * Abre a janela para o usuário selecionar uma cor interativamente + */ + corj : function(obj) { + i3GEO.util.abreCor("", obj); + }, + /* + * Function: executa + * + * Aplica a nova cor + * + * A cor do fundo na interface Openlayers é definida por meio de estilo, mas é necessário persistir a cor no + * mapfile existente no servidor. + */ + executa : function() { + if (i3GEOF.opcoesFundo.aguarde.visibility === "visible") { + return; + } + i3GEOF.opcoesFundo.aguarde.visibility = "visible"; + var temp, cor, p, cp; + temp = function() { i3GEOF.opcoesFundo.aguarde.visibility = "hidden"; - if(i3GEO.Interface.ATUAL === "openlayers"){ - //var layer = i3geoOL.getLayersByName("Nenhum")[0]; - //layer.mergeNewParams({"DESLIGACACHE":"sim"}); - //layer.mergeNewParams({r:Math.random()}); - if($i(i3geoOL.id+"_events")){ - $i(i3geoOL.id+"_events").style.backgroundColor = "rgb("+$i("i3GEOopcoesFundocor").value+")"; + if (i3GEO.Interface.ATUAL === "openlayers") { + if (i3geoOL.id && $i(i3geoOL.id + "_events")) { + $i(i3geoOL.id + "_events").style.backgroundColor = "rgb(" + $i("i3GEOopcoesFundocor").value + ")"; } - if ($i(i3geoOL.id + "_OpenLayers_ViewPort")) { - $i(i3geoOL.id + "_OpenLayers_ViewPort").style.backgroundColor = "rgb("+$i("i3GEOopcoesFundocor").value+")"; + if (i3geoOL.id && $i(i3geoOL.id + "_OpenLayers_ViewPort")) { + $i(i3geoOL.id + "_OpenLayers_ViewPort").style.backgroundColor = "rgb(" + $i("i3GEOopcoesFundocor").value + ")"; } - //para OL3 - if($i("openlayers")){ + // para OL3 + if ($i("openlayers")) { $i("openlayers").style.backgroundColor = "rgb(" + $i("i3GEOopcoesFundocor").value + ")"; + i3GEO.parametros.cordefundo = $i("i3GEOopcoesFundocor").value; } } i3GEO.atualiza(); - }, - cor = $i("i3GEOopcoesFundocor").value, - p = i3GEO.configura.locaplic+"/ferramentas/opcoes_fundo/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=corfundo&cor="+cor, + }; + cor = $i("i3GEOopcoesFundocor").value; + p = + i3GEO.configura.locaplic + "/ferramentas/opcoes_fundo/exec.php?g_sid=" + + i3GEO.configura.sid + + "&funcao=corfundo&cor=" + + cor; cp = new cpaint(); - cp.set_response_type("JSON"); - cp.call(p,"corQM",temp); - } -}; \ No newline at end of file + cp.set_response_type("JSON"); + cp.call(p, "corQM", temp); + } + }; \ No newline at end of file diff --git a/ferramentas/selecao/index.js b/ferramentas/selecao/index.js index 36efefa..9d1894c 100644 --- a/ferramentas/selecao/index.js +++ b/ferramentas/selecao/index.js @@ -34,475 +34,584 @@ Free Software Foundation, Inc., no endereço 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA. */ -if(typeof(i3GEOF) === 'undefined'){ +if (typeof (i3GEOF) === 'undefined') { var i3GEOF = {}; } /* -Classe: i3GEOF.selecao + * Classe: i3GEOF.selecao */ -i3GEOF.selecao = { - tipoSel: "", +i3GEOF.selecao = + { + tipoSel : "", /* - Variavel: aguarde - - Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. + * Variavel: aguarde + * + * Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. */ - aguarde: "", + aguarde : "", /* - Para efeitos de compatibilidade antes da versão 4.7 que não tinha dicionário + * Para efeitos de compatibilidade antes da versão 4.7 que não tinha dicionário */ - criaJanelaFlutuante: function(){ + criaJanelaFlutuante : function() { i3GEOF.selecao.iniciaDicionario(); }, /* - Function: iniciaDicionario - - Carrega o dicionário e chama a função que inicia a ferramenta - - O Javascript é carregado com o id i3GEOF.nomedaferramenta.dicionario_script + * Function: iniciaDicionario + * + * Carrega o dicionário e chama a função que inicia a ferramenta + * + * O Javascript é carregado com o id i3GEOF.nomedaferramenta.dicionario_script */ - iniciaDicionario: function(){ - if(typeof(i3GEOF.selecao.dicionario) === 'undefined'){ + iniciaDicionario : function() { + if (typeof (i3GEOF.selecao.dicionario) === 'undefined') { i3GEO.util.scriptTag( - i3GEO.configura.locaplic+"/ferramentas/selecao/dicionario.js", - "i3GEOF.selecao.iniciaJanelaFlutuante()", - "i3GEOF.selecao.dicionario_script" - ); - } - else{ + i3GEO.configura.locaplic + "/ferramentas/selecao/dicionario.js", + "i3GEOF.selecao.iniciaJanelaFlutuante()", + "i3GEOF.selecao.dicionario_script"); + } else { i3GEOF.selecao.iniciaJanelaFlutuante(); } }, /* - Function: inicia - - Inicia a ferramenta. É chamado por criaJanelaFlutuante - - Parametro: - - iddiv {String} - id do div que receberá o conteudo HTML da ferramenta + * Function: inicia + * + * Inicia a ferramenta. É chamado por criaJanelaFlutuante + * + * Parametro: + * + * iddiv {String} - id do div que receberá o conteudo HTML da ferramenta */ - inicia: function(iddiv){ - var b,i,n,ics; - try{ + inicia : function(iddiv) { + var b, i, n, ics; + try { $i(iddiv).innerHTML += i3GEOF.selecao.html(); - i3GEO.guias.mostraGuiaFerramenta("i3GEOselecaoguia1","i3GEOselecaoguia"); - //eventos das guias - $i("i3GEOselecaoguia4").onclick = function(){ - i3GEO.guias.mostraGuiaFerramenta("i3GEOselecaoguia4","i3GEOselecaoguia"); + i3GEO.guias.mostraGuiaFerramenta("i3GEOselecaoguia1", "i3GEOselecaoguia"); + // eventos das guias + $i("i3GEOselecaoguia4").onclick = function() { + i3GEO.guias.mostraGuiaFerramenta("i3GEOselecaoguia4", "i3GEOselecaoguia"); }; - $i("i3GEOselecaoguia1").onclick = function(){ - i3GEO.guias.mostraGuiaFerramenta("i3GEOselecaoguia1","i3GEOselecaoguia"); + $i("i3GEOselecaoguia1").onclick = function() { + i3GEO.guias.mostraGuiaFerramenta("i3GEOselecaoguia1", "i3GEOselecaoguia"); }; - $i("i3GEOselecaoguia2").onclick = function(){ - if($i("i3GEOselecaotemasLigados")){ - if($i("i3GEOselecaotemasLigados").value === "") - {i3GEO.janela.tempoMsg($trad('selecionaTema',i3GEOF.selecao.dicionario));return;} + $i("i3GEOselecaoguia2").onclick = function() { + if ($i("i3GEOselecaotemasLigados")) { + if ($i("i3GEOselecaotemasLigados").value === "") { + i3GEO.janela.tempoMsg($trad('selecionaTema', i3GEOF.selecao.dicionario)); + return; + } i3GEO.mapa.ativaTema($i("i3GEOselecaotemasLigados").value); - i3GEO.guias.mostraGuiaFerramenta("i3GEOselecaoguia2","i3GEOselecaoguia"); - try - {$i("i3GEOselecaoparametros").innerHTML = "";} - catch(e){} + i3GEO.guias.mostraGuiaFerramenta("i3GEOselecaoguia2", "i3GEOselecaoguia"); + try { + $i("i3GEOselecaoparametros").innerHTML = ""; + } catch (e) { + } i3GEOF.selecao.adicionaLinhaFiltro(); } }; - $i("i3GEOselecaoguia3").onclick = function(){ - i3GEO.guias.mostraGuiaFerramenta("i3GEOselecaoguia3","i3GEOselecaoguia"); - i3GEO.util.comboTemas( - "i3GEOselecaoTemaoverlay", - function(retorno){ - $i("i3GEOselecaooverlay").innerHTML = retorno.dados; - }, - "i3GEOselecaooverlay", - "", - false, - "naolinearSelecionados", - "display:block" - ); + $i("i3GEOselecaoguia3").onclick = function() { + i3GEO.guias.mostraGuiaFerramenta("i3GEOselecaoguia3", "i3GEOselecaoguia"); + i3GEO.util.comboTemas("i3GEOselecaoTemaoverlay", function(retorno) { + $i("i3GEOselecaooverlay").innerHTML = retorno.dados; + }, "i3GEOselecaooverlay", "", false, "naolinearSelecionados", "display:block"); }; i3GEOF.selecao.criaCombosTemas(); - i3GEO.util.mensagemAjuda("i3GEOselecaomen1",$i("i3GEOselecaomen1").innerHTML); - i3GEO.util.mensagemAjuda("i3GEOselecaomen2",$i("i3GEOselecaomen2").innerHTML); - b = new YAHOO.widget.Button( - "i3GEOselecaobotao1", - {onclick:{fn: i3GEOF.selecao.atributo}} - ); + i3GEO.util.mensagemAjuda("i3GEOselecaomen1", $i("i3GEOselecaomen1").innerHTML); + i3GEO.util.mensagemAjuda("i3GEOselecaomen2", $i("i3GEOselecaomen2").innerHTML); + b = new YAHOO.widget.Button("i3GEOselecaobotao1", { + onclick : { + fn : i3GEOF.selecao.atributo + } + }); b.addClass("rodar"); - b = new YAHOO.widget.Button( - "i3GEOselecaobotao2", - {onclick:{fn: i3GEOF.selecao.aplicaselecaoTema}} - ); + b = new YAHOO.widget.Button("i3GEOselecaobotao2", { + onclick : { + fn : i3GEOF.selecao.aplicaselecaoTema + } + }); b.addClass("rodar"); - b = new YAHOO.widget.Button( - "i3GEOFSelecaoQuery", - {onclick:{fn: i3GEO.mapa.dialogo.queryMap}} - ); + b = new YAHOO.widget.Button("i3GEOFSelecaoQuery", { + onclick : { + fn : i3GEO.mapa.dialogo.queryMap + } + }); b.addClass("abrir"); i3GEOF.selecao.ativaFoco(); ics = $i("i3GEOselecaoguia1obj").getElementsByTagName("button"); n = ics.length; - for(i=0;i' + - ' ' + - '

' + - '' + - '' + - ' '+ - ''; + ins += + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + ' ' + + '
' + + '
' + + '
' + + ' 0' + + '

' + + $trad('temas', i3GEOF.selecao.dicionario) + + '

' + + '
' + + ' ' + + '' + + ' ' + + ''; return ins; }, /* - Function: iniciaJanelaFlutuante - - Cria a janela flutuante para controle da ferramenta. + * Function: iniciaJanelaFlutuante + * + * Cria a janela flutuante para controle da ferramenta. */ - iniciaJanelaFlutuante: function(){ - var minimiza,cabecalho,janela,divid,temp,titulo; - if($i("i3GEOF.selecao")){ + iniciaJanelaFlutuante : function() { + var minimiza, cabecalho, janela, divid, temp, titulo; + if ($i("i3GEOF.selecao")) { return; } - //cria a janela flutuante - cabecalho = function(){ + // cria a janela flutuante + cabecalho = function() { i3GEOF.selecao.ativaFoco(); }; - minimiza = function(){ - var t = i3GEO.janela.minimiza("i3GEOF.selecao","100px"); - if(t === "min"){ + minimiza = function() { + var t = i3GEO.janela.minimiza("i3GEOF.selecao", "100px"); + if (t === "min") { $i("i3GEOFSelecaoCabecalhoI").style.display = "none"; } else { $i("i3GEOFSelecaoCabecalhoI").style.display = "block"; } }; titulo = - "" - + "
" - + "
" + $trad("x51") - + "
"; - janela = i3GEO.janela.cria( - "510px", - "210px", - "", - "", - "", - titulo, - "i3GEOF.selecao", - false, - "hd", - cabecalho, - minimiza - ); + "" + + "
" + + "
" + + $trad("x51") + + "
"; + janela = i3GEO.janela.cria("510px", "210px", "", "", "", titulo, "i3GEOF.selecao", false, "hd", cabecalho, minimiza); divid = janela[2].id; i3GEOF.selecao.aguarde = $i("i3GEOF.selecao_imagemCabecalho").style; $i("i3GEOF.selecao_corpo").style.backgroundColor = "white"; i3GEOF.selecao.inicia(divid); - i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS",["i3GEOF.selecao.criaCombosTemas()"]); + i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS", [ + "i3GEOF.selecao.criaCombosTemas()" + ]); i3GEO.eventos.cliquePerm.desativa(); - temp = function(){ + temp = function() { + var api; i3GEO.eventos.cliquePerm.ativa(); - i3GEO.eventos.removeEventos("ATUALIZAARVORECAMADAS",["i3GEOF.selecao.criaCombosTemas()"]); + i3GEO.eventos.removeEventos("ATUALIZAARVORECAMADAS", [ + "i3GEOF.selecao.criaCombosTemas()" + ]); i3GEO.barraDeBotoes.ativaPadrao(); - i3GEOF.selecao.removeFiguras[i3GEO.Interface["ATUAL"]](); + if(i3GEO.Interface["ATUAL"] === "openlayers"){ + if (typeof OpenLayers == "undefined") { + api = "ol3"; + i3GEO.Interface.openlayers.interacoes[0].setActive(true);//duplo clique + } else { + api = "openlayers"; + } + } + else{ + api = i3GEO.Interface["ATUAL"]; + } + i3GEOF.selecao.removeFiguras[api](); }; YAHOO.util.Event.addListener(janela[0].close, "click", temp); - i3GEO.util.mudaCursor(i3GEO.configura.cursores,"crosshair",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic); + i3GEO.util.mudaCursor(i3GEO.configura.cursores, "crosshair", i3GEO.Interface.IDMAPA, i3GEO.configura.locaplic); }, /* - Function: ativaFoco - - Refaz a interface da ferramenta quando a janela flutuante tem seu foco ativado + * Function: ativaFoco + * + * Refaz a interface da ferramenta quando a janela flutuante tem seu foco ativado */ - ativaFoco: function(){ + ativaFoco : function() { i3GEO.eventos.cliquePerm.desativa(); - i3GEO.util.mudaCursor(i3GEO.configura.cursores,"crosshair",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic); + i3GEO.util.mudaCursor(i3GEO.configura.cursores, "crosshair", i3GEO.Interface.IDMAPA, i3GEO.configura.locaplic); i3GEO.barraDeBotoes.ativaIcone("selecao"); i3GEOF.selecao.pegaTemasSel(); i3GEOF.selecao.mudaicone(); var i = $i("i3GEOF.selecao_c").style; i3GEO.janela.ULTIMOZINDEX++; i.zIndex = 21000 + i3GEO.janela.ULTIMOZINDEX; - if(i3GEO.Interface.ATUAL != "openlayers"){ + if (i3GEO.Interface.ATUAL != "openlayers") { i3GEO.Interface[i3GEO.Interface.ATUAL].recalcPar(); } }, /* - Function: criaCombosTemas - - Cria os combos de seleção de temas + * Function: criaCombosTemas + * + * Cria os combos de seleção de temas */ - criaCombosTemas: function(){ - i3GEO.util.comboTemas( - "i3GEOselecaotemasLigados", - function(retorno){ - var nsel,temp; - temp = $i("i3GEOselecaoComboTemas"); - if(!temp){return;} - temp.innerHTML = retorno.dados; - if($i("i3GEOselecaotemasLigados")){ - $i("i3GEOselecaotemasLigados").value = i3GEO.temaAtivo; - //verifica qts elementos selecionados - if(i3GEO.temaAtivo != ""){ - nsel = i3GEO.arvoreDeCamadas.pegaTema(i3GEO.temaAtivo); - $i("i3GEOselecaoNsel").innerHTML = $trad('selecionados',i3GEOF.selecao.dicionario)+": "+(nsel.nsel) + "
"; - } - $i("i3GEOselecaotemasLigados").onchange = function(){i3GEOF.selecao.pegaTemasSel();}; - } - }, - "i3GEOselecaoComboTemas", - "", - true, - "ligados", - "width:440px;font-size:12px" - ); + criaCombosTemas : function() { + i3GEO.util.comboTemas("i3GEOselecaotemasLigados", function(retorno) { + var nsel, temp; + temp = $i("i3GEOselecaoComboTemas"); + if (!temp) { + return; + } + temp.innerHTML = retorno.dados; + if ($i("i3GEOselecaotemasLigados")) { + $i("i3GEOselecaotemasLigados").value = i3GEO.temaAtivo; + // verifica qts elementos selecionados + if (i3GEO.temaAtivo != "") { + nsel = i3GEO.arvoreDeCamadas.pegaTema(i3GEO.temaAtivo); + $i("i3GEOselecaoNsel").innerHTML = $trad('selecionados', i3GEOF.selecao.dicionario) + ": " + (nsel.nsel) + "
"; + } + $i("i3GEOselecaotemasLigados").onchange = function() { + i3GEOF.selecao.pegaTemasSel(); + }; + } + }, "i3GEOselecaoComboTemas", "", true, "ligados", "width:440px;font-size:12px"); }, /* - Function: mudaicone - - Altera as bordas dos ícones + * Function: mudaicone + * + * Altera as bordas dos ícones */ - mudaicone: function(){ + mudaicone : function() { $i("i3GEOselecaopt").parentNode.style.backgroundColor = "#F5F5F5"; $i("i3GEOselecaoext").parentNode.style.backgroundColor = "#F5F5F5"; - if($i("i3GEOselecaobox")){ + if ($i("i3GEOselecaobox")) { $i("i3GEOselecaobox").parentNode.style.backgroundColor = "#F5F5F5"; } - if($i("i3GEOselecaopoli")){ + if ($i("i3GEOselecaopoli")) { $i("i3GEOselecaopoli").parentNode.style.backgroundColor = "#F5F5F5"; } - if($i("i3GEOselecaoFigura")){ + if ($i("i3GEOselecaoFigura")) { $i("i3GEOselecaoFigura").parentNode.style.backgroundColor = "#F5F5F5"; } }, /* - Function: pegaTemasSel - - Pega a lista de temas escolhidos pelo usuário + * Function: pegaTemasSel + * + * Pega a lista de temas escolhidos pelo usuário */ - pegaTemasSel: function(){ - var selObj = $i("i3GEOselecaotemasLigados"), - selectedArray = [], - i, - nsel; - if(selObj){ - for (i=0; i"; + $i("i3GEOselecaoNsel").innerHTML = $trad('selecionados', i3GEOF.selecao.dicionario) + ": " + (nsel.nsel) + "
"; } } return selectedArray.toString(); }, /* - Function: fimSelecao - - Funcoes executadas quando uma operacao de selecao e concluida - - */ - fimSelecao: function(retorno){ - var nsel, - tema = i3GEO.temaAtivo; + * Function: fimSelecao + * + * Funcoes executadas quando uma operacao de selecao e concluida + * + */ + fimSelecao : function(retorno) { + var nsel, tema = i3GEO.temaAtivo; i3GEOF.selecao.aguarde.visibility = "hidden"; i3GEO.janela.fechaAguarde("i3GEO.atualiza"); - i3GEO.Interface.atualizaTema(retorno,tema); - nsel = i3GEO.arvoreDeCamadas.pegaTema(tema,retorno.data.temas); - $i("i3GEOselecaoNsel").innerHTML = $trad('selecionados',i3GEOF.selecao.dicionario)+": "+(nsel.nsel); - i3GEO.eventos.adicionaEventos("SELECAO",["i3GEOF.tabela.atualizaListaDeRegistros()"]); + i3GEO.Interface.atualizaTema(retorno, tema); + nsel = i3GEO.arvoreDeCamadas.pegaTema(tema, retorno.data.temas); + $i("i3GEOselecaoNsel").innerHTML = $trad('selecionados', i3GEOF.selecao.dicionario) + ": " + (nsel.nsel); + i3GEO.eventos.adicionaEventos("SELECAO", [ + "i3GEOF.tabela.atualizaListaDeRegistros()" + ]); i3GEO.eventos.executaEventos(i3GEO.eventos.SELECAO); }, /* - Function: operacao - - Executa uma operação sobre o conjunto de elementos selecionados - - Veja: - - - - Parametro: - - tipo {String} - tipo de operação inverte|limpa + * Function: operacao + * + * Executa uma operação sobre o conjunto de elementos selecionados + * + * Veja: + * + * + * + * Parametro: + * + * tipo {String} - tipo de operação inverte|limpa */ - operacao: function(tipo){ - if(i3GEOF.selecao.aguarde.visibility === "visible"){ + operacao : function(tipo) { + if (i3GEOF.selecao.aguarde.visibility === "visible") { return; } - try{ - if($i("i3GEOselecaotemasLigados").value === ""){ + try { + if ($i("i3GEOselecaotemasLigados").value === "") { i3GEO.janela.tempoMsg("Escolha um tema"); return; } i3GEOF.selecao.aguarde.visibility = "visible"; i3GEO.mapa.ativaTema($i("i3GEOselecaotemasLigados").value); - var tema = i3GEO.temaAtivo, - fim = function(retorno){ + var tema = i3GEO.temaAtivo, fim = function(retorno) { i3GEOF.selecao.fimSelecao(retorno); }; - i3GEO.php.selecaopt(fim,tema,"",tipo,0); + i3GEO.php.selecaopt(fim, tema, "", tipo, 0); + } catch (e) { + i3GEO.janela.tempoMsg("Erro: " + e); + i3GEOF.selecao.aguarde.visibility = "hidden"; } - catch(e){i3GEO.janela.tempoMsg("Erro: "+e);i3GEOF.selecao.aguarde.visibility = "hidden";} }, /* - Function: tiposel - - Executa um tipo de seleção interativa - - Parameter: - - obj {objeto dom) - objeto que foi clicado para disparar a operação. O valor identifica o tipo de operação + * Function: tiposel + * + * Executa um tipo de seleção interativa + * + * Parameter: + * + * obj {objeto dom) - objeto que foi clicado para disparar a operação. O valor identifica o tipo de + * operação */ - tiposel: function(obj){ - if(i3GEOF.selecao.aguarde.visibility === "visible"){ + tiposel : function(obj) { + if (i3GEOF.selecao.aguarde.visibility === "visible") { return; } - try{ - if($i("i3GEOselecaotemasLigados").value === ""){ + // try { + if ($i("i3GEOselecaotemasLigados").value === "") { i3GEO.janela.tempoMsg("Escolha um tema"); return; } - var fim = function(retorno){ + var api, fim = function(retorno) { i3GEOF.selecao.fimSelecao(retorno); - }, - tema = i3GEOF.selecao.pegaTemasSel(); - if (obj.value == "i3GEOselecaoext"){ + }, tema = i3GEOF.selecao.pegaTemasSel(); + if (i3GEO.Interface["ATUAL"] === "openlayers") { + if (typeof OpenLayers == "undefined") { + api = "ol3"; + } else { + api = "openlayers"; + } + } else { + api = i3GEO.Interface["ATUAL"]; + } + if (obj.value == "i3GEOselecaoext") { i3GEOF.selecao.tipoSel = obj.value; i3GEOF.selecao.aguarde.visibility = "visible"; - i3GEO.php.selecaobox(fim,tema,$i("i3GEOselecaotipoOperacao").value,i3GEO.parametros.mapexten); + i3GEO.php.selecaobox(fim, tema, $i("i3GEOselecaotipoOperacao").value, i3GEO.parametros.mapexten); } - if (obj.value == "i3GEOselecaobox"){ + if (obj.value == "i3GEOselecaobox") { i3GEOF.selecao.tipoSel = obj.value; i3GEOF.selecao.mudaicone(); obj.style.backgroundColor = "#cedff2"; i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); - i3GEOF.selecao.box[i3GEO.Interface["ATUAL"]].inicia(); + i3GEOF.selecao.box[api].inicia(); } - if (obj.value == "i3GEOselecaopt"){ + if (obj.value == "i3GEOselecaopt") { i3GEOF.selecao.tipoSel = obj.value; i3GEOF.selecao.mudaicone(); obj.style.backgroundColor = "#cedff2"; i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); - i3GEOF.selecao.clique[i3GEO.Interface["ATUAL"]].inicia(); + i3GEOF.selecao.clique[api].inicia(); } - if (obj.value == "i3GEOselecaopoli"){ + if (obj.value == "i3GEOselecaopoli") { i3GEOF.selecao.tipoSel = obj.value; i3GEOF.selecao.mudaicone(); obj.style.backgroundColor = "#cedff2"; i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); - i3GEOF.selecao.poligono[i3GEO.Interface["ATUAL"]].inicia(); + i3GEOF.selecao.poligono[api].inicia(); } - if (obj.value == "i3GEOselecaofigura"){ + if (obj.value == "i3GEOselecaofigura") { i3GEOF.selecao.tipoSel = obj.value; i3GEOF.selecao.mudaicone(); obj.style.backgroundColor = "#cedff2"; i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); - i3GEOF.selecao.figura[i3GEO.Interface["ATUAL"]].inicia(); + i3GEOF.selecao.figura[api].inicia(); } - } - catch(e){i3GEO.janela.tempoMsg("Erro: "+e);i3GEOF.selecao.aguarde.visibility = "hidden";} + // } catch (e) { + // i3GEO.janela.tempoMsg("Erro: " + e); + // i3GEOF.selecao.aguarde.visibility = "hidden"; + // } }, /* - Function: removeFiguras - Remove as figuras marcadas como origem igual a i3GEOFselecao - */ - removeFiguras:{ - openlayers: function(){ - if(i3GEO.desenho.layergrafico){ + * Function: removeFiguras Remove as figuras marcadas como origem igual a i3GEOFselecao + */ + removeFiguras : { + ol3 : function(){ + var features, n, f, i, remover = []; + features = i3GEO.desenho.layergrafico.getSource().getFeatures(); + n = features.length; + for(i = 0; i < n; i++){ + f = features[i]; + if(f.getProperties().origem === "i3GEOFselecao"){ + remover.push(f); + } + } + for(r in remover){ + i3GEO.desenho.layergrafico.getSource().removeFeature(remover[r]); + } + }, + openlayers : function() { + if (i3GEO.desenho.layergrafico) { var temp, f = i3GEO.desenho.layergrafico.getFeaturesByAttribute("origem", "i3GEOFselecao"); - if(f && f.length > 0){ + if (f && f.length > 0) { temp = window.confirm($trad("x94")); if (temp) { i3GEO.desenho.layergrafico.destroyFeatures(f); @@ -510,9 +619,9 @@ i3GEOF.selecao = { } } }, - googlemaps: function(){ - var temp, f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem","i3GEOFselecao"); - if(f && f.length > 0){ + googlemaps : function() { + var temp, f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem", "i3GEOFselecao"); + if (f && f.length > 0) { temp = window.confirm($trad("x94")); if (temp) { i3GEO.desenho.googlemaps.destroyFeatures(f); @@ -521,378 +630,497 @@ i3GEOF.selecao = { } }, /* - Classe: i3GEOF.selecao.box - - Controla o desenho do box para a seleção e executa a operação de seleção + * Classe: i3GEOF.selecao.box + * + * Controla o desenho do box para a seleção e executa a operação de seleção */ - box:{ - openlayers: { - inicia: function(){ + box : { + ol3 : { + draw : "", + inicia : function() { + i3GEO.eventos.cliquePerm.desativa(); + i3GEOF.selecao.box.ol3.removeControle(); + i3GEOF.selecao.box.ol3.draw = new ol.interaction.DragBox({ + //condition: ol.events.condition.shiftKeyOnly, + style: new ol.style.Style({ + stroke: new ol.style.Stroke({ + color: [0, 0, 255, 1] + }) + }) + }); + i3GEOF.selecao.box.ol3.draw.on("boxend",function(evt){ + var feature, geo, pol = i3GEOF.selecao.box.ol3.draw.getGeometry(); + if ($i("i3GEOFselecaoMantemFigura").checked === true) { + feature = new ol.Feature({ + geometry: pol, + origem: 'i3GEOFselecao' + }); + //i3GEOF.selecao.box.ol3.draw.feature.setProperties({origem : "i3GEOFselecao"}); + i3GEO.desenho.layergrafico.getSource().addFeature(feature); + } + i3GEOF.selecao.box.ol3.removeControle(); + i3GEO.eventos.cliquePerm.ativa(); + pol = i3GEO.util.projOSM2Geo(pol); + geo = pol.getExtent(); + i3GEOF.selecao.box.termina( + i3GEO.temaAtivo, + $i("i3GEOselecaotipoOperacao").value, + geo.join(" ")); + }); + i3geoOL.addInteraction(i3GEOF.selecao.box.ol3.draw); + }, + removeControle : function() { + i3geoOL.removeInteraction(i3GEOF.selecao.box.ol3.draw); + i3GEOF.selecao.box.ol3.draw = ""; + } + }, + openlayers : { + inicia : function() { i3GEO.eventos.cliquePerm.desativa(); i3GEOF.selecao.box.openlayers.removeControle(); - var box = new OpenLayers.Control.DrawFeature( - i3GEO.desenho.layergrafico, - OpenLayers.Handler.Box, - { - autoActivate: true, - id: "i3GEOFselecaoBox", - type: OpenLayers.Control.TYPE_TOOL, - callbacks:{ - done: function(feature){ - i3GEOF.selecao.box.openlayers.removeControle(); - var g,f,xminymin = i3geoOL.getLonLatFromPixel({ - x: feature.left, - y: feature.bottom - }), - xmaxymax = i3geoOL.getLonLatFromPixel({ - x: feature.right, - y: feature.top + var box = + new OpenLayers.Control.DrawFeature(i3GEO.desenho.layergrafico, OpenLayers.Handler.Box, { + autoActivate : true, + id : "i3GEOFselecaoBox", + type : OpenLayers.Control.TYPE_TOOL, + callbacks : { + done : function(feature) { + i3GEOF.selecao.box.openlayers.removeControle(); + var g, f, xminymin = i3geoOL.getLonLatFromPixel({ + x : feature.left, + y : feature.bottom + }), xmaxymax = i3geoOL.getLonLatFromPixel({ + x : feature.right, + y : feature.top + }); + i3GEOF.selecao.box.termina(i3GEO.temaAtivo, $i("i3GEOselecaotipoOperacao").value, xminymin.lon + " " + + xminymin.lat + + " " + + xmaxymax.lon + + " " + + xmaxymax.lat); + if ($i("i3GEOFselecaoMantemFigura").checked === true) { + g = new OpenLayers.Bounds(xminymin.lon, xminymin.lat, xmaxymax.lon, xmaxymax.lat); + f = new OpenLayers.Feature.Vector(g.toGeometry(), { + origem : "i3GEOFselecao" + }, { + fillColor : "orange", + fillOpacity : 0.4, + strokeColor : "orange", + strokeOpacity : 1, + strokeWidth : 2 }); - i3GEOF.selecao.box.termina( - i3GEO.temaAtivo, - $i("i3GEOselecaotipoOperacao").value, - xminymin.lon+" "+xminymin.lat+" "+xmaxymax.lon+" "+xmaxymax.lat - ); - if($i("i3GEOFselecaoMantemFigura").checked === true){ - g = new OpenLayers.Bounds(xminymin.lon,xminymin.lat,xmaxymax.lon,xmaxymax.lat); - f = new OpenLayers.Feature.Vector(g.toGeometry(), { - origem : "i3GEOFselecao" - }, { - fillColor: "orange", - fillOpacity: 0.4, - strokeColor: "orange", - strokeOpacity: 1, - strokeWidth: 2 - }); - i3GEO.desenho.layergrafico.addFeatures([f]); - if (i3GEO.Interface) { - i3GEO.Interface.openlayers.sobeLayersGraficos(); - } + i3GEO.desenho.layergrafico.addFeatures([ + f + ]); + if (i3GEO.Interface) { + i3GEO.Interface.openlayers.sobeLayersGraficos(); } } } - }); + } + }); i3geoOL.addControl(box); }, - removeControle: function(){ - var controle = i3geoOL.getControlsBy("id","i3GEOFselecaoBox"); - if(controle.length > 0){ + removeControle : function() { + var controle = i3geoOL.getControlsBy("id", "i3GEOFselecaoBox"); + if (controle.length > 0) { controle[0].deactivate(); i3geoOL.removeControl(controle[0]); } } }, - termina: function(tema,tipo,box){ - var retorna = function(retorno){ + termina : function(tema, tipo, box) { + var retorna = function(retorno) { i3GEOF.selecao.fimSelecao(retorno); }; - i3GEO.janela.abreAguarde("i3GEO.atualiza",$trad("o1")); + i3GEO.janela.abreAguarde("i3GEO.atualiza", $trad("o1")); i3GEO.eventos.cliquePerm.ativa(); - i3GEO.php.selecaobox(retorna,tema,tipo,box); + i3GEO.php.selecaobox(retorna, tema, tipo, box); + i3GEOF.selecao.mudaicone(); } }, /* - Function: clique - - Seleciona elementos clicando no mapa + * Function: clique + * + * Seleciona elementos clicando no mapa */ - clique: { - openlayers: { - inicia: function(){ + clique : { + ol3 : { + draw : "", + inicia : function() { + i3GEO.eventos.cliquePerm.desativa(); + i3GEOF.selecao.clique.ol3.removeControle(); + i3GEOF.selecao.clique.ol3.draw = new ol.interaction.Draw({ + // features : i3GEO.desenho.layergrafico.getFeatures(), + type : "Point", + maxPoints : 1 + }); + i3GEOF.selecao.clique.ol3.draw.on("drawend",function(evt){ + var geo, ponto = evt.feature.getGeometry(); + if ($i("i3GEOFselecaoMantemFigura").checked === true) { + evt.feature.setProperties({origem : "i3GEOFselecao"}); + i3GEO.desenho.layergrafico.getSource().addFeature(evt.feature); + } + i3GEOF.selecao.clique.ol3.removeControle(); + i3GEO.eventos.cliquePerm.ativa(); + ponto = i3GEO.util.projOSM2Geo(ponto); + geo = ponto.getCoordinates(); + i3GEOF.selecao.clique.termina( + i3GEO.temaAtivo, + $i("i3GEOselecaotipoOperacao").value, + $i("i3GEOselecaotoleranciapt").value, + geo[0], + geo[1]); + }); + i3geoOL.addInteraction(i3GEOF.selecao.clique.ol3.draw); + }, + removeControle : function() { + i3geoOL.removeInteraction(i3GEOF.selecao.clique.ol3.draw); + i3GEOF.selecao.clique.ol3.draw = ""; + } + }, + // versao 2 do openlayers + openlayers : { + inicia : function() { i3GEO.eventos.cliquePerm.desativa(); i3GEOF.selecao.clique.openlayers.removeControle(); - var ponto = new OpenLayers.Control.DrawFeature( - i3GEO.desenho.layergrafico, - OpenLayers.Handler.Point, - { - autoActivate: true, - id: "i3GEOFselecaoPonto", - type: OpenLayers.Control.TYPE_TOOL, - callbacks:{ - done: function(feature){ - i3GEOF.selecao.clique.openlayers.removeControle(); - feature = i3GEO.util.projOSM2Geo(feature); - i3GEOF.selecao.clique.termina( - i3GEO.temaAtivo, - $i("i3GEOselecaotipoOperacao").value, - $i("i3GEOselecaotoleranciapt").value, - feature.x, - feature.y - ); - if($i("i3GEOFselecaoMantemFigura").checked === true){ - feature = i3GEO.util.projGeo2OSM(feature); - f = new OpenLayers.Feature.Vector(feature, { - origem : "i3GEOFselecao" - }, { - fillColor: "orange", - fillOpacity: 0.4, - strokeColor: "orange", - strokeOpacity: 1, - strokeWidth: 2, - graphicName : "square", - pointRadius : 6 - }); + var ponto = + new OpenLayers.Control.DrawFeature(i3GEO.desenho.layergrafico, OpenLayers.Handler.Point, { + autoActivate : true, + id : "i3GEOFselecaoPonto", + type : OpenLayers.Control.TYPE_TOOL, + callbacks : { + done : function(feature) { + i3GEOF.selecao.clique.openlayers.removeControle(); + feature = i3GEO.util.projOSM2Geo(feature); + i3GEOF.selecao.clique.termina( + i3GEO.temaAtivo, + $i("i3GEOselecaotipoOperacao").value, + $i("i3GEOselecaotoleranciapt").value, + feature.x, + feature.y); + if ($i("i3GEOFselecaoMantemFigura").checked === true) { + feature = i3GEO.util.projGeo2OSM(feature); + f = new OpenLayers.Feature.Vector(feature, { + origem : "i3GEOFselecao" + }, { + fillColor : "orange", + fillOpacity : 0.4, + strokeColor : "orange", + strokeOpacity : 1, + strokeWidth : 2, + graphicName : "square", + pointRadius : 6 + }); - i3GEO.desenho.layergrafico.addFeatures([f]); - if (i3GEO.Interface) { - i3GEO.Interface.openlayers.sobeLayersGraficos(); - } + i3GEO.desenho.layergrafico.addFeatures([ + f + ]); + if (i3GEO.Interface) { + i3GEO.Interface.openlayers.sobeLayersGraficos(); } } } - }); + } + }); i3geoOL.addControl(ponto); }, - removeControle: function(){ - var controle = i3geoOL.getControlsBy("id","i3GEOFselecaoPonto"); - if(controle.length > 0){ + removeControle : function() { + var controle = i3geoOL.getControlsBy("id", "i3GEOFselecaoPonto"); + if (controle.length > 0) { controle[0].deactivate(); i3geoOL.removeControl(controle[0]); } } }, - googlemaps: { - inicia: function(){ + googlemaps : { + inicia : function() { var evtclick = null; i3GEO.eventos.cliquePerm.desativa(); - evtclick = google.maps.event.addListener(i3GeoMap, "click", function(evt) { - if(i3GEOF.selecao.tipoSel === "i3GEOselecaopt"){ - i3GEOF.selecao.clique.termina( + evtclick = + google.maps.event.addListener(i3GeoMap, "click", function(evt) { + if (i3GEOF.selecao.tipoSel === "i3GEOselecaopt") { + i3GEOF.selecao.clique.termina( i3GEO.temaAtivo, $i("i3GEOselecaotipoOperacao").value, $i("i3GEOselecaotoleranciapt").value, evt.latLng.lng(), - evt.latLng.lat() - ); - if($i("i3GEOFselecaoMantemFigura").checked === true){ - i3GEO.desenho.googlemaps.shapes.push( - new google.maps.Marker({ - map: i3GeoMap, - fillOpacity: 0, - clickable: false, - position:evt.latLng, - icon: { - path: google.maps.SymbolPath.CIRCLE, - scale: 4, - strokeColor: "orange" + evt.latLng.lat()); + if ($i("i3GEOFselecaoMantemFigura").checked === true) { + i3GEO.desenho.googlemaps.shapes.push(new google.maps.Marker({ + map : i3GeoMap, + fillOpacity : 0, + clickable : false, + position : evt.latLng, + icon : { + path : google.maps.SymbolPath.CIRCLE, + scale : 4, + strokeColor : "orange" }, - origem: "i3GEOFselecao" - }) - ); - } + origem : "i3GEOFselecao" + })); + } - } - google.maps.event.removeListener(evtclick); - }); + } + google.maps.event.removeListener(evtclick); + }); } }, - termina: function(tema,tipo,tolerancia,x,y){ - if(typeof(console) !== 'undefined'){console.info("i3GEO.selecao.porxy()");} - var retorna = function(retorno){ + termina : function(tema, tipo, tolerancia, x, y) { + if (typeof (console) !== 'undefined') { + console.info("i3GEO.selecao.porxy()"); + } + var retorna = function(retorno) { i3GEOF.selecao.fimSelecao(retorno); }; i3GEO.eventos.cliquePerm.ativa(); - i3GEO.php.selecaopt(retorna,tema,x+" "+y,tipo,tolerancia); + i3GEO.php.selecaopt(retorna, tema, x + " " + y, tipo, tolerancia); + i3GEOF.selecao.mudaicone(); } }, /* - Function: figura - - Seleciona elementos com base em uma figura existente no mapa + * Function: figura + * + * Seleciona elementos com base em uma figura existente no mapa */ - figura: { - openlayers: { - executa: function(feature){ + figura : { + ol3 : { + draw : "", + inicia : function() { + var features = i3GEO.desenho.layergrafico.getFeatures(); + if(features.getLength() === 0){ + return; + } + i3GEO.eventos.cliquePerm.desativa(); + i3GEOF.selecao.figura.ol3.removeControle(); + i3GEOF.selecao.figura.ol3.draw = new ol.interaction.Select(); + i3GEOF.selecao.figura.ol3.draw.on("select",function(evt){ + var wkt, geo, i, n, f, format = new ol.format.WKT(); + geo = i3GEOF.selecao.figura.ol3.draw.getFeatures(); + n = geo.getLength(); + for(i=0; i 0){ + if (f && f.length > 0) { i3GEOF.selecao.figura.openlayers.executa(f[0]); return; } - ponto = new OpenLayers.Control.SelectFeature( - i3GEO.desenho.layergrafico, - { - clickout: true, - toggle: true, - multiple: false, - hover: false, - toggleKey: "ctrlKey", // ctrl key removes from selection - box: false, - autoActivate: true, - id: "i3GEOFselecaoFigura", - type: OpenLayers.Control.TYPE_TOOL, - onSelect: function(feature){ - i3GEOF.selecao.figura.openlayers.executa(feature); - } - }); + ponto = new OpenLayers.Control.SelectFeature(i3GEO.desenho.layergrafico, { + clickout : true, + toggle : true, + multiple : false, + hover : false, + toggleKey : "ctrlKey", // ctrl key removes from selection + box : false, + autoActivate : true, + id : "i3GEOFselecaoFigura", + type : OpenLayers.Control.TYPE_TOOL, + onSelect : function(feature) { + i3GEOF.selecao.figura.openlayers.executa(feature); + } + }); i3geoOL.addControl(ponto); }, - removeControle: function(){ - var controle = i3geoOL.getControlsBy("id","i3GEOFselecaoFigura"); - if(controle.length > 0){ + removeControle : function() { + var controle = i3geoOL.getControlsBy("id", "i3GEOFselecaoFigura"); + if (controle.length > 0) { controle[0].deactivate(); i3geoOL.removeControl(controle[0]); } } }, - //FIXME nao funciona no googlemaps - googlemaps: { - inicia: function(){ - var n,i, - evtclick = null; + // FIXME nao funciona no googlemaps + googlemaps : { + inicia : function() { + var n, i, evtclick = null; i3GEO.eventos.cliquePerm.desativa(); - i3GEO.util.mudaCursor(i3GEO.configura.cursores,"pointer",i3GEO.Interface.IDMAPA,i3GEO.configura.locaplic); + i3GEO.util.mudaCursor(i3GEO.configura.cursores, "pointer", i3GEO.Interface.IDMAPA, i3GEO.configura.locaplic); i3GEO.editorGM.drawingManager.setOptions({ - drawingMode: null + drawingMode : null }); n = i3GEO.desenho.googlemaps.shapes.length; - for(i=0;i 0){ + removeControle : function() { + var controle = i3geoOL.getControlsBy("id", "i3GEOFselecaoPoli"); + if (controle.length > 0) { controle[0].deactivate(); i3geoOL.removeControl(controle[0]); } } }, - googlemaps: { - inicia: function(){ + googlemaps : { + inicia : function() { i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia(); - i3GeoMap.setOptions({disableDoubleClickZoom:true}); - i3GeoMap.setOptions({draggableCursor:'crosshair'}); - var evtdblclick = null, - evtclick = null, - evtmousemove = null, - pontos = { - mvcLine: new google.maps.MVCArray(), - line: null, - polygon: null, - x: [], - y: [] - }, - termina = function(){ + i3GeoMap.setOptions({ + disableDoubleClickZoom : true + }); + i3GeoMap.setOptions({ + draggableCursor : 'crosshair' + }); + var evtdblclick = null, evtclick = null, evtmousemove = null, pontos = { + mvcLine : new google.maps.MVCArray(), + line : null, + polygon : null, + x : [], + y : [] + }, termina = function() { google.maps.event.removeListener(evtdblclick); google.maps.event.removeListener(evtclick); google.maps.event.removeListener(evtmousemove); - var f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem","i3GEOFselecao"); + var f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem", "i3GEOFselecao"); i3GEOF.selecao.poligono.termina({ - xpt: pontos.x, - ypt: pontos.y + xpt : pontos.x, + ypt : pontos.y }); - if(f && f.length > 0 && $i("i3GEOFselecaoMantemFigura").checked === false){ + if (f && f.length > 0 && $i("i3GEOFselecaoMantemFigura").checked === false) { i3GEO.desenho.googlemaps.destroyFeatures(f); } - f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem","i3GEOFselecaoMarcas"); - if(f && f.length > 0){ + f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem", "i3GEOFselecaoMarcas"); + if (f && f.length > 0) { i3GEO.desenho.googlemaps.destroyFeatures(f); } }; @@ -900,21 +1128,19 @@ i3GEOF.selecao = { pontos.mvcLine.push(evt.latLng); pontos.x.push(evt.latLng.lng()); pontos.y.push(evt.latLng.lat()); - i3GEO.desenho.googlemaps.shapes.push( - new google.maps.Marker({ - map: i3GeoMap, - fillOpacity: 0, - clickable: false, - position:evt.latLng, - icon: { - path: google.maps.SymbolPath.CIRCLE, - scale: 2.5, - strokeColor: "#ffffff" - }, - origem: "i3GEOFselecaoMarcas" - }) - ); - //mais um ponto para criar uma linha movel + i3GEO.desenho.googlemaps.shapes.push(new google.maps.Marker({ + map : i3GeoMap, + fillOpacity : 0, + clickable : false, + position : evt.latLng, + icon : { + path : google.maps.SymbolPath.CIRCLE, + scale : 2.5, + strokeColor : "#ffffff" + }, + origem : "i3GEOFselecaoMarcas" + })); + // mais um ponto para criar uma linha movel pontos.mvcLine.push(evt.latLng); }); evtmousemove = google.maps.event.addListener(i3GeoMap, "mousemove", function(evt) { @@ -922,13 +1148,13 @@ i3GEOF.selecao = { if (!pontos.line) { // Create the line (google.maps.Polyline) pontos.line = new google.maps.Polygon({ - map: i3GeoMap, - clickable: false, - strokeColor: "#000000", - strokeOpacity: 1, - strokeWeight: 2, - path: pontos.mvcLine, - origem: "i3GEOFselecao" + map : i3GeoMap, + clickable : false, + strokeColor : "#000000", + strokeOpacity : 1, + strokeWeight : 2, + path : pontos.mvcLine, + origem : "i3GEOFselecao" }); i3GEO.desenho.googlemaps.shapes.push(pontos.line); } @@ -942,107 +1168,109 @@ i3GEOF.selecao = { } }, /* - Function: termina - - Termina o desenho do polígono e executa a operação de seleção + * Function: termina + * + * Termina o desenho do polígono e executa a operação de seleção */ - termina: function(pontos){ - var xs,ys,retorna,p,cp,tema=i3GEO.temaAtivo; + termina : function(pontos) { + var xs, ys, retorna, p, cp, tema = i3GEO.temaAtivo; n = pontos.xpt.length; xs = pontos.xpt.toString(","); ys = pontos.ypt.toString(","); - retorna = function(retorno){ + retorna = function(retorno) { i3GEOF.selecao.fimSelecao(retorno); }; - i3GEO.janela.abreAguarde("i3GEO.atualiza",$trad("o1")); + i3GEO.janela.abreAguarde("i3GEO.atualiza", $trad("o1")); i3GEO.eventos.cliquePerm.ativa(); - p = i3GEO.configura.locaplic+"/ferramentas/selecao/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=selecaoPoli"; + i3GEOF.selecao.mudaicone(); + p = i3GEO.configura.locaplic + "/ferramentas/selecao/exec.php?g_sid=" + i3GEO.configura.sid + "&funcao=selecaoPoli"; cp = new cpaint(); - //cp.set_debug(2) + // cp.set_debug(2) cp.set_transfer_mode('POST'); cp.set_response_type("JSON"); cp.call( p, "selecaoPoli", retorna, - "xs="+xs, - "ys="+ys, - "tema="+tema, - "tipo="+$i("i3GEOselecaotipoOperacao").value, - "buffer="+$i("i3GEOselecaotoleranciapt").value - ); + "xs=" + xs, + "ys=" + ys, + "tema=" + tema, + "tipo=" + $i("i3GEOselecaotipoOperacao").value, + "buffer=" + $i("i3GEOselecaotoleranciapt").value); } }, /* - Function: criatema - - Cria um novo tema com a seleção atual + * Function: criatema + * + * Cria um novo tema com a seleção atual */ - criatema: function(){ - if(i3GEOF.selecao.aguarde.visibility === "visible") - {return;} - try{ - if($i("i3GEOselecaotemasLigados").value === "") - {i3GEO.janela.tempoMsg("Escolha um tema");return;} + criatema : function() { + if (i3GEOF.selecao.aguarde.visibility === "visible") { + return; + } + try { + if ($i("i3GEOselecaotemasLigados").value === "") { + i3GEO.janela.tempoMsg("Escolha um tema"); + return; + } i3GEOF.selecao.aguarde.visibility = "visible"; - var fim = function(){ + var fim = function() { i3GEOF.selecao.aguarde.visibility = "hidden"; i3GEO.atualiza(); }; - i3GEO.php.criatemaSel(fim,$i("i3GEOselecaotemasLigados").value); + i3GEO.php.criatemaSel(fim, $i("i3GEOselecaotemasLigados").value); + } catch (e) { + i3GEO.janela.tempoMsg("Erro: " + e); + i3GEOF.selecao.aguarde.visibility = "hidden"; } - catch(e){i3GEO.janela.tempoMsg("Erro: "+e);i3GEOF.selecao.aguarde.visibility = "hidden";} }, /* - Function: adicionaLinhaFiltro - - Adiciona uma nova linha de filtro + * Function: adicionaLinhaFiltro + * + * Adiciona uma nova linha de filtro */ - adicionaLinhaFiltro: function(){ - var add,xis,interrogacao,operador,conector,valor,ntr,ntad,ntd,ntd1,ntd2,ntd3,ntd4,ntd5,tabela; - try{ + adicionaLinhaFiltro : function() { + var add, xis, interrogacao, operador, conector, valor, ntr, ntad, ntd, ntd1, ntd2, ntd3, ntd4, ntd5, tabela; + try { add = document.createElement("img"); - add.src = i3GEO.configura.locaplic+'/imagens/oxygen/16x16/list-add.png'; - add.style.cursor="pointer"; - add.onclick = function(){ + add.src = i3GEO.configura.locaplic + '/imagens/oxygen/16x16/list-add.png'; + add.style.cursor = "pointer"; + add.onclick = function() { i3GEOF.selecao.adicionaLinhaFiltro(); }; xis = document.createElement("img"); - xis.src = i3GEO.configura.locaplic+'/imagens/oxygen/16x16/edit-delete.png'; - xis.style.cursor="pointer"; - xis.onclick = function(){ - var p = this.parentNode.parentNode.parentNode, - i; - for (i = 0; i < p.childNodes.length;i++){ + xis.src = i3GEO.configura.locaplic + '/imagens/oxygen/16x16/edit-delete.png'; + xis.style.cursor = "pointer"; + xis.onclick = function() { + var p = this.parentNode.parentNode.parentNode, i; + for (i = 0; i < p.childNodes.length; i++) { p.removeChild(p.childNodes[i]); } }; interrogacao = document.createElement("img"); - interrogacao.src = i3GEO.configura.locaplic+'/imagens/oxygen/16x16/format-line-spacing-normal.png'; - interrogacao.title='mostra valores'; - interrogacao.style.cursor="pointer"; - interrogacao.style.margin="5px"; - interrogacao.onclick = function(){ - var obj = (this.parentNode.parentNode.getElementsByTagName("input"))[0], - itemTema = (this.parentNode.parentNode.getElementsByTagName("select"))[0].value; - i3GEO.util.comboValoresItem( - "i3GEOselecaocbitens", - i3GEO.temaAtivo, - itemTema, - function(retorno){ - $i("i3GEOselecaovalores").innerHTML = "

" + $trad('selecionaValor',i3GEOF.selecao.dicionario) + ":

" - + "
" + retorno.dados + "
"; - if ($i("i3GEOselecaocbitens")){ - $i("i3GEOselecaocbitens").onchange = function(){ - obj.value = this.value; - }; - } - }, - "i3GEOselecaovalores", - "display:block" - ); - }; + interrogacao.src = i3GEO.configura.locaplic + '/imagens/oxygen/16x16/format-line-spacing-normal.png'; + interrogacao.title = 'mostra valores'; + interrogacao.style.cursor = "pointer"; + interrogacao.style.margin = "5px"; + interrogacao.onclick = + function() { + var obj = (this.parentNode.parentNode.getElementsByTagName("input"))[0], itemTema = + (this.parentNode.parentNode.getElementsByTagName("select"))[0].value; + i3GEO.util.comboValoresItem("i3GEOselecaocbitens", i3GEO.temaAtivo, itemTema, function(retorno) { + $i("i3GEOselecaovalores").innerHTML = + "

" + $trad('selecionaValor', i3GEOF.selecao.dicionario) + + ":

" + + "
" + + retorno.dados + + "
"; + if ($i("i3GEOselecaocbitens")) { + $i("i3GEOselecaocbitens").onchange = function() { + obj.value = this.value; + }; + } + }, "i3GEOselecaovalores", "display:block"); + }; operador = "
"; - ntr = document.createElement("tr"); ntad = document.createElement("td"); ntad.appendChild(add); @@ -1076,16 +1303,12 @@ i3GEOF.selecao = { ntr.appendChild(ntd); ntd1 = document.createElement("td"); - i3GEO.util.comboItens( - "i3GEOselecaoItensAtrib", - i3GEO.temaAtivo, - function(retorno){ - ntd1.innerHTML = "
" + retorno.dados + "
"; - $i("i3GEOselecaoItensAtrib").onchange = function(){ - $i("i3GEOselecaovalores").innerHTML = ""; - }; - } - ); + i3GEO.util.comboItens("i3GEOselecaoItensAtrib", i3GEO.temaAtivo, function(retorno) { + ntd1.innerHTML = "
" + retorno.dados + "
"; + $i("i3GEOselecaoItensAtrib").onchange = function() { + $i("i3GEOselecaovalores").innerHTML = ""; + }; + }); ntr.appendChild(ntd1); ntd2 = document.createElement("td"); @@ -1104,37 +1327,43 @@ i3GEOF.selecao = { ntd5.innerHTML = conector; ntr.appendChild(ntd5); - //ntb = document.createElement("tbody"); - //ntb.appendChild(ntr); - if(navm) - {tabela = $i("i3GEOselecaoparametros").getElementsByTagName("tbody")[0];} - else - {tabela = $i("i3GEOselecaoparametros");} + // ntb = document.createElement("tbody"); + // ntb.appendChild(ntr); + if (navm) { + tabela = $i("i3GEOselecaoparametros").getElementsByTagName("tbody")[0]; + } else { + tabela = $i("i3GEOselecaoparametros"); + } tabela.appendChild(ntr); + } catch (e) { + i3GEO.janela.tempoMsg("Erro: " + e); } - catch(e){i3GEO.janela.tempoMsg("Erro: "+e);} }, /* - Function: atributo - - Seleciona por atributo + * Function: atributo + * + * Seleciona por atributo */ - atributo: function(){ - if(i3GEOF.selecao.aguarde.visibility === "visible") - {return;} - if($i("i3GEOselecaotemasLigados").value === "") - {i3GEO.janela.tempoMsg($trad('selecionaTema',i3GEOF.selecao.dicionario));return;} - try{ + atributo : function() { + if (i3GEOF.selecao.aguarde.visibility === "visible") { + return; + } + if ($i("i3GEOselecaotemasLigados").value === "") { + i3GEO.janela.tempoMsg($trad('selecionaTema', i3GEOF.selecao.dicionario)); + return; + } + try { i3GEOF.selecao.aguarde.visibility = "visible"; - var filtro = "", - g,ipt,i,ii,nos,s,itemsel,valor,operador,conector,temp; - if(navm){ii = 2;} - else - {ii = 0;} + var filtro = "", g, ipt, i, ii, nos, s, itemsel, valor, operador, conector, temp; + if (navm) { + ii = 2; + } else { + ii = 0; + } g = $i("i3GEOselecaoparametros"); ipt = g.getElementsByTagName("tr"); - if (ipt.length > 0){ - for (i=ii;i 0) { + for (i = ii; i < ipt.length; i++) { nos = ipt[i].childNodes; s = nos[2].getElementsByTagName("select"); itemsel = s[0].value; @@ -1144,46 +1373,49 @@ i3GEOF.selecao = { valor = s[0].value; s = nos[6].getElementsByTagName("select"); conector = s[0].value; - if (valor*1) - {filtro = filtro + "(["+itemsel+"] "+operador+" "+valor+")";} - else - {filtro = filtro + "(|["+itemsel+"]| "+operador+" |"+valor+"|)";} - if ((i + 1) != ipt.length) //tem conector - {filtro = filtro + conector;} - else - {filtro = "("+filtro+")";} + if (valor * 1) { + filtro = filtro + "([" + itemsel + "] " + operador + " " + valor + ")"; + } else { + filtro = filtro + "(|[" + itemsel + "]| " + operador + " |" + valor + "|)"; + } + if ((i + 1) != ipt.length) // tem conector + { + filtro = filtro + conector; + } else { + filtro = "(" + filtro + ")"; + } } } - if (filtro === ""){ + if (filtro === "") { i3GEOF.selecao.aguarde.visibility = "hidden"; return; } - temp = function(retorno){ + temp = function(retorno) { i3GEOF.selecao.fimSelecao(retorno); }; - i3GEO.php.selecaoatrib2(temp,i3GEO.temaAtivo,filtro,$i("i3GEOselecaotipoOperacao").value); - } - catch(e){ - i3GEO.janela.tempoMsg("Erro: "+e); + i3GEO.php.selecaoatrib2(temp, i3GEO.temaAtivo, filtro, $i("i3GEOselecaotipoOperacao").value); + } catch (e) { + i3GEO.janela.tempoMsg("Erro: " + e); i3GEOF.selecao.aguarde.visibility = "hidden"; } }, /* - Function: aplicaselecaoTema - - Realiza a seleção cruzando um tema com outro + * Function: aplicaselecaoTema + * + * Realiza a seleção cruzando um tema com outro */ - aplicaselecaoTema: function(){ - if(i3GEOF.selecao.aguarde.visibility === "visible") - {return;} - if($i("i3GEOselecaotemasLigados").value === ""){ - i3GEO.janela.tempoMsg($trad('selecionaTema',i3GEOF.selecao.dicionario)); + aplicaselecaoTema : function() { + if (i3GEOF.selecao.aguarde.visibility === "visible") { + return; + } + if ($i("i3GEOselecaotemasLigados").value === "") { + i3GEO.janela.tempoMsg($trad('selecionaTema', i3GEOF.selecao.dicionario)); i3GEOF.selecao.aguarde.visibility = "hidden"; return; } - try{ + try { i3GEOF.selecao.aguarde.visibility = "visible"; - var temp = function(retorno){ + var temp = function(retorno) { i3GEOF.selecao.fimSelecao(retorno); }; i3GEO.php.selecaotema( @@ -1191,64 +1423,66 @@ i3GEOF.selecao = { $i("i3GEOselecaoTemaoverlay").value, i3GEO.temaAtivo, $i("i3GEOselecaotipoOperacao").value, - $i("i3GEOselecaotoleranciapt").value - ); - } - catch(e){ - i3GEO.janela.tempoMsg("Erro: "+e); + $i("i3GEOselecaotoleranciapt").value); + } catch (e) { + i3GEO.janela.tempoMsg("Erro: " + e); i3GEOF.selecao.aguarde.visibility = "hidden"; } }, /* - Function: grafico - - Abre uma janela flutuante para criar gráficos + * Function: grafico + * + * Abre uma janela flutuante para criar gráficos */ - grafico: function(){ + grafico : function() { i3GEO.analise.dialogo.graficoInterativo1(); }, /* - Function: graficoPerfil - - Abre uma janela flutuante para criar gráficos de perfil + * Function: graficoPerfil + * + * Abre uma janela flutuante para criar gráficos de perfil */ - graficoPerfil: function(){ - var cp,p; - if(i3GEOF.selecao.aguarde.visibility === "visible") - {return;} - if($i("i3GEOselecaotemasLigados").value === "") - {i3GEO.janela.tempoMsg("Escolha um tema");return;} - try{ + graficoPerfil : function() { + var cp, p; + if (i3GEOF.selecao.aguarde.visibility === "visible") { + return; + } + if ($i("i3GEOselecaotemasLigados").value === "") { + i3GEO.janela.tempoMsg("Escolha um tema"); + return; + } + try { i3GEOF.selecao.aguarde.visibility = "visible"; - var temp = function(retorno){ + var temp = function(retorno) { i3GEOF.selecao.aguarde.visibility = "hidden"; - if (retorno.data != undefined){ - var x = [], - y = [], - i, - n = retorno.data.length, - js = i3GEO.configura.locaplic+"/ferramentas/perfil/index.js"; - for (i=0;i