From cff3c9895894403345199291b860003958eb41b3 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Mon, 5 May 2014 19:44:14 +0000 Subject: [PATCH] correção de sintaxe javascript --- classesjs/classe_analise.js | 1017 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- classesjs/classe_calculo.js | 26 +++++++++++++++----------- classesjs/classe_desenho.js | 554 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ 3 files changed, 828 insertions(+), 769 deletions(-) diff --git a/classesjs/classe_analise.js b/classesjs/classe_analise.js index 59db2ae..0b478b9 100644 --- a/classesjs/classe_analise.js +++ b/classesjs/classe_analise.js @@ -32,12 +32,14 @@ Você deve ter recebido uma cópia da Licença Pública G 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(i3GEO) === 'undefined'){ var i3GEO = {}; } i3GEO.analise = { - /* + //armazena os pontos coletados nas funcoes de medicao de area e distancia + pontosdistobj: {}, + /* Classe: i3GEO.analise.dialogo Abre as telas de dialogo das opcoes de analise @@ -47,181 +49,181 @@ i3GEO.analise = { Para abrir a mensagem de dialogo de geracao de buffer, utilize i3GEO.analise.dialogo.buffer() - */ - dialogo:{ - /* + */ + dialogo:{ + /* Function: saiku Abre a janela de dialogo da ferramenta SAIKU - */ - saiku: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.saiku()","saiku","saiku"); - }, - /* + */ + saiku: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.saiku()","saiku","saiku"); + }, + /* Function: graficoInterativo Abre a janela de dialogo da ferramenta graficointerativo versao flash - */ - graficoInterativo: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo()","graficointerativo","graficointerativo"); - }, - /* + */ + graficoInterativo: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo()","graficointerativo","graficointerativo"); + }, + /* Function: graficoInterativo1 Abre a janela de dialogo da ferramenta graficointerativo - */ - graficoInterativo1: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo1()","graficointerativo1","graficointerativo1"); - }, - /* + */ + graficoInterativo1: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.graficoInterativo1()","graficointerativo1","graficointerativo1"); + }, + /* Function: linhaDoTempo Abre a janela de dialogo da ferramenta linhadotempo - */ - linhaDoTempo: function(){ - if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.dialogo.linhaDoTempo()");} - i3GEO.janela.cria("450px","350px",i3GEO.configura.locaplic+"/ferramentas/linhadotempo/index.php","","","Linha do tempo    "); - atualizaLinhaDoTempo = function(){ - var doc = "", ifr = ""; - try{ - ifr = $i("wdocai"); - if (navn){ - if (ifr){ - doc = ifr.contentDocument; + */ + linhaDoTempo: function(){ + if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.dialogo.linhaDoTempo()");} + i3GEO.janela.cria("450px","350px",i3GEO.configura.locaplic+"/ferramentas/linhadotempo/index.php","","","Linha do tempo    "); + atualizaLinhaDoTempo = function(){ + var doc = "", ifr = ""; + try{ + ifr = $i("wdocai"); + if (navn){ + if (ifr){ + doc = ifr.contentDocument; + } } - } - else{ - if(document.frames("wdocai")){ - doc = document.frames("wdocai").document; + else{ + if(document.frames("wdocai")){ + doc = document.frames("wdocai").document; + } } + doc.getElementById("tl") ? window.parent.wdocai.carregaDados() : i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()"); } - doc.getElementById("tl") ? window.parent.wdocai.carregaDados() : i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()"); - } - catch(e){ - i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()"); - if(typeof(console) !== 'undefined'){console.error("i3GEO.analise.linhaDoTempo "+e);} - } - }; - if(i3GEO.eventos.NAVEGAMAPA.toString().search("atualizaLinhaDoTempo()") < 0) - {i3GEO.eventos.NAVEGAMAPA.push("atualizaLinhaDoTempo()");} - var ifr = $i("wdocai"); - //ifr.style.height = "75%"; - ifr.style.width = "100%"; - }, - /* + catch(e){ + i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()"); + if(typeof(console) !== 'undefined'){console.error("i3GEO.analise.linhaDoTempo "+e);} + } + }; + if(i3GEO.eventos.NAVEGAMAPA.toString().search("atualizaLinhaDoTempo()") < 0) + {i3GEO.eventos.NAVEGAMAPA.push("atualizaLinhaDoTempo()");} + var ifr = $i("wdocai"); + //ifr.style.height = "75%"; + ifr.style.width = "100%"; + }, + /* Function: perfil Abre a janela de dialogo da ferramenta perfil - */ - perfil: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.perfil()","perfil","perfil"); - }, - /* + */ + perfil: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.perfil()","perfil","perfil"); + }, + /* Function: gradePontos Abre a janela de dialogo da ferramenta gradepontos - */ - gradePontos: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradePontos()","gradepontos","gradeDePontos"); - }, - /* + */ + gradePontos: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradePontos()","gradepontos","gradeDePontos"); + }, + /* Function: gradePol Abre a janela de dialogo da ferramenta gradepol - */ - gradePol: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradePol()","gradepol","gradeDePoligonos"); - }, - /* + */ + gradePol: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradePol()","gradepol","gradeDePoligonos"); + }, + /* Function: gradeHex Abre a janela de dialogo da ferramenta gradehex - */ - gradeHex: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradeHex()","gradehex","gradeDeHex"); - }, - /* + */ + gradeHex: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.gradeHex()","gradehex","gradeDeHex"); + }, + /* Function: analisaGeometrias Abre a janela de dialogo da ferramenta analisageometrias - */ - analisaGeometrias: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.analisaGeometrias()","analisageometrias","analisaGeometrias"); - }, - /* + */ + analisaGeometrias: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.analisaGeometrias()","analisageometrias","analisaGeometrias"); + }, + /* Function: pontosdistri Abre a janela de dialogo da ferramenta pontosdistri - */ - pontosdistri: function(){ - i3GEO.parametros.r === "nao" ? i3GEO.janela.tempoMsg($trad("x22")) : i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.pontosdistri()","pontosdistri","pontosDistri"); - }, - /* + */ + pontosdistri: function(){ + i3GEO.parametros.r === "nao" ? i3GEO.janela.tempoMsg($trad("x22")) : i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.pontosdistri()","pontosdistri","pontosDistri"); + }, + /* Function: pontoempoligono Abre a janela de dialogo da ferramenta pontoempoligono - */ - pontoempoligono: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.pontoempoligono()","pontoempoligono","pontoEmPoligono"); - }, - /* + */ + pontoempoligono: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.pontoempoligono()","pontoempoligono","pontoEmPoligono"); + }, + /* Function: centromassa Abre a janela de dialogo da ferramenta centro medio - */ - centromassa: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.centromassa()","centromassa","centromassa"); - }, - /* + */ + centromassa: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.centromassa()","centromassa","centromassa"); + }, + /* Function: nptPol Abre a janela de dialogo da ferramenta nptpol - */ - nptPol: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.nptPol()","nptpol","nptpol"); - }, - /* + */ + nptPol: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.nptPol()","nptpol","nptpol"); + }, + /* Function: buffer Abre a janela de dialogo da ferramenta buffer - */ - buffer: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.buffer()","buffer","buffer"); - }, - /* + */ + buffer: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.buffer()","buffer","buffer"); + }, + /* Function: distanciaptpt Abre a janela de dialogo da ferramenta distanciaptpt - */ - distanciaptpt: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.distanciaptpt()","distanciaptpt","distanciaptpt"); - }, - /* + */ + distanciaptpt: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.distanciaptpt()","distanciaptpt","distanciaptpt"); + }, + /* Function: centroide Abre a janela de dialogo da ferramenta centroide - */ - centroide: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.centroide()","centroide","centroide"); - }, - /* + */ + centroide: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.centroide()","centroide","centroide"); + }, + /* Function: dissolve Abre a janela de dialogo da ferramenta dissolve - */ - dissolve: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.dissolve()","dissolve","dissolve"); - }, - /* + */ + dissolve: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.dissolve()","dissolve","dissolve"); + }, + /* Function: agrupaElementos Abre a janela de dialogo da ferramenta agrupaelementos - */ - agrupaElementos: function(){ - i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.agrupaElementos()","agrupaelementos","agrupaElementos"); - } - }, - /* + */ + agrupaElementos: function(){ + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.agrupaElementos()","agrupaelementos","agrupaElementos"); + } + }, + /* Classe: i3GEO.analise.medeDistancia Ativa e controla a opcao de medicao de distancias. @@ -231,243 +233,293 @@ i3GEO.analise = { Quando o botao e acionado, abre-se a janela que mostra o resultado da medida, o icone que segue o mouse e alterado. Para mostrar o resultado do calculo, e incluido um div especifico. - */ - medeDistancia:{ - /* + */ + medeDistancia:{ + /* Function: inicia Inicia a operacao de medicao, abrindo a janela de resultados e criando os componentes necessorios Sao registrados os eventos de clique sobre o mapa e fechamento da janela de resultados - */ - inicia: function(){ - if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeDistancia.inicia()");} - i3GEO.eventos.cliquePerm.desativa(); - pontosdistobj = { - xpt: [], - ypt: [], - dist: [], - distV: [], - xtela: [], - ytela: [], - ximg: [], - yimg: [], - linhas: [], - linhastemp: [] - }; - i3GEO.analise.medeDistancia.criaJanela(); - if (g_tipoacao !== "mede"){ - if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.clique()") < 0) - {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.clique()");} - if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.movimento()") < 0) - {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.movimento()");} - if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0) - {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");} - $i("mostradistancia").style.display="block"; - if(i3GEO.Interface.ATUAL !== "googleearth"){ - i3GEO.desenho.criaContainerRichdraw(); - i3GEO.desenho.richdraw.lineColor = "black"; - i3GEO.desenho.richdraw.lineWidth = "2px"; - } - g_tipoacao = "mede"; - } - else{ - if(i3GEO.Interface.ATUAL !== "googleearth") - {i3GEO.desenho.richdraw.fecha();} - var Dom = YAHOO.util.Dom; - Dom.setStyle("mostradistancia","display","none"); - Dom.setStyle("pontosins","display","none"); - } - }, - /* + */ + inicia: function(){ + if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeDistancia.inicia()");} + i3GEO.eventos.cliquePerm.desativa(); + i3GEO.analise.pontosdistobj = { + xpt: [], + ypt: [], + dist: [], + distV: [], + xtela: [], + ytela: [], + ximg: [], + yimg: [], + linhas: [], + linhastemp: [] + }; + i3GEO.analise.medeDistancia.criaJanela(); + i3GEO.analise.i3GEO.Interface["ATUAL"].inicia(); + }, + /* Cria a janela para mostrar os resultados da medicao - */ - criaJanela: function(){ - var novoel,ins,imagemxy,janela; - if (!$i("mostradistancia")){ - novoel = document.createElement("div"); - novoel.id = "mostradistancia"; - ins = '
 Distância aproximada    
' + - '
' + - '
' + - '
' + - '' + - '' + - '' + - '' + - '
Raios ' + - '' + - 'Textos' + - ' Estilo:'+i3GEO.desenho.caixaEstilos()+' 
' + - '
' + - '
'; - novoel.innerHTML = ins; - novoel.style.borderColor="gray"; - document.body.appendChild(novoel); - janela = new YAHOO.widget.Panel("mostradistancia", {iframe:true,width:"330px",fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); - YAHOO.i3GEO.janela.manager.register(janela); - janela.render(); - YAHOO.util.Event.addListener(janela.close, "click", i3GEO.analise.medeDistancia.fechaJanela); - } - else{ - i3GEO.util.defineValor("mostradistancia_calculo","innerHTML",""); - janela = YAHOO.i3GEO.janela.manager.find("mostradistancia"); - } - janela.show(); - imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); - janela.moveTo(imagemxy[0]+150,imagemxy[1]); - if(navm && i3GEO.Interface.ATUAL === "googleearth" ){ - janela.moveTo(0,0); - } - // - //botao que abre a ferramenta de calculo de perfis. - //pontosdistobj contem as coordenadas dos pontos - // - new YAHOO.widget.Button( - "i3GEObotaoPerfil", - {onclick:{fn: function(){ - var js = i3GEO.configura.locaplic+"/ferramentas/perfil/index.js"; - i3GEO.util.scriptTag(js,"i3GEOF.perfil.criaJanelaFlutuante(pontosdistobj)","i3GEOF.perfil_script"); - }}} - ); - }, - /* + */ + criaJanela: function(){ + var novoel,ins,imagemxy,janela; + if (!$i("mostradistancia")){ + novoel = document.createElement("div"); + novoel.id = "mostradistancia"; + ins = '
 Distância aproximada    
' + + '
' + + '
' + + '
' + + '' + + '' + + '' + + '' + + '
Raios ' + + '' + + 'Textos' + + ' Estilo:'+i3GEO.desenho.caixaEstilos()+' 
' + + '
' + + '
'; + novoel.innerHTML = ins; + novoel.style.borderColor="gray"; + document.body.appendChild(novoel); + janela = new YAHOO.widget.Panel("mostradistancia", {iframe:true,width:"330px",fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); + YAHOO.i3GEO.janela.manager.register(janela); + janela.render(); + YAHOO.util.Event.addListener(janela.close, "click", i3GEO.analise.medeDistancia.fechaJanela); + } + else{ + i3GEO.util.defineValor("mostradistancia_calculo","innerHTML",""); + janela = YAHOO.i3GEO.janela.manager.find("mostradistancia"); + } + janela.show(); + imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); + janela.moveTo(imagemxy[0]+150,imagemxy[1]); + // + //botao que abre a ferramenta de calculo de perfis. + //pontosdistobj contem as coordenadas dos pontos + // + new YAHOO.widget.Button( + "i3GEObotaoPerfil", + {onclick:{fn: function(){ + var js = i3GEO.configura.locaplic+"/ferramentas/perfil/index.js"; + i3GEO.util.scriptTag(js,"i3GEOF.perfil.criaJanelaFlutuante(i3GEO.analise.pontosdistobj)","i3GEOF.perfil_script"); + }}} + ); + }, + /* Function: fechaJanela Fecha a janela e os elementos graficos criados para a ferramenta de medicao - */ - fechaJanela: function(){ - var janela; - i3GEO.eventos.cliquePerm.ativa(); - i3GEO.Interface.ATUAL !== "googleearth" ? i3GEO.desenho.richdraw.fecha() : i3GEO.Interface.googleearth.removePlacemark("divGeometriasTemp"); - i3GEO.util.removeChild("pontosins"); - if($i("divGeometriasTemp")) - {i3GEO.desenho.richdraw.fecha();} - i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.clique()"); - i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento()"); - i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeDistancia.fechaJanela()"); - i3GEO.barraDeBotoes.ativaBotoes(); - janela = YAHOO.i3GEO.janela.manager.find("mostradistancia"); - if(janela){ - YAHOO.i3GEO.janela.manager.remove(janela); - janela.destroy(); - } - i3GEO.barraDeBotoes.ativaIcone("pointer"); - }, - /* - Adiciona uma marca na tela e realiza o calculo de distancia dos pontos inseridos - */ - clique: function(){ - var n,d,decimal,dd; - if (g_tipoacao === "mede"){ - n = pontosdistobj.xpt.length; - pontosdistobj.xpt[n] = objposicaocursor.ddx; - pontosdistobj.ypt[n] = objposicaocursor.ddy; - pontosdistobj.xtela[n] = objposicaocursor.telax; - pontosdistobj.ytela[n] = objposicaocursor.telay; - pontosdistobj.ximg[n] = objposicaocursor.imgx; - pontosdistobj.yimg[n] = objposicaocursor.imgy; - pontosdistobj.dist[n] = 0; - //cria a linha que sera utilizada para seguir a posicao do mouse e o ultimo ponto - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ - try{ - pontosdistobj.linhas[n] = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n]-1),(pontosdistobj.yimg[n]-1),(pontosdistobj.ximg[n]-1),(pontosdistobj.yimg[n]-1)); - } - catch(e){ - if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho.richdraw "+e);} - } + */ + fechaJanela: function(){ + var janela; + i3GEO.eventos.cliquePerm.ativa(); + i3GEO.Interface.ATUAL !== "googleearth" ? i3GEO.desenho.richdraw.fecha() : i3GEO.Interface.googleearth.removePlacemark("divGeometriasTemp"); + i3GEO.util.removeChild("pontosins"); + if($i("divGeometriasTemp")) + {i3GEO.desenho.richdraw.fecha();} + i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.clique()"); + i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento()"); + i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeDistancia.fechaJanela()"); + i3GEO.barraDeBotoes.ativaBotoes(); + janela = YAHOO.i3GEO.janela.manager.find("mostradistancia"); + if(janela){ + YAHOO.i3GEO.janela.manager.remove(janela); + janela.destroy(); } - if (n > 0){ - d = i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); - decimal = 0; - d = d + ""; - d = d.split("."); - decimal = d[1].substr(0,5); - d = d[0]+"."+decimal; - d = d * 1; - pontosdistobj.dist[n] = d + pontosdistobj.dist[n-1]; - if(navm) - {i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1]),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n]),pontosdistobj.yimg[n]);} - if($i("pararraios") && $i("pararraios").checked === true ){ - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ - i3GEO.desenho.aplica("insereCirculo","",n); - } - if(i3GEO.Interface.ATUAL === "googleearth"){ - dd = Math.sqrt(((Math.pow((pontosdistobj.xpt[n] - pontosdistobj.xpt[n-1]),2)) + (Math.pow((pontosdistobj.ypt[n] - pontosdistobj.ypt[n-1]),2)) )); - i3GEO.Interface.googleearth.insereCirculo(pontosdistobj.xpt[n],pontosdistobj.ypt[n],dd,"","divGeometriasTemp"); + i3GEO.barraDeBotoes.ativaIcone("pointer"); + }, + openlayers:{ + inicia: function(){ + if (g_tipoacao !== "mede"){ + if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.clique()") < 0) + {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.clique()");} + if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.movimento()") < 0) + {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.movimento()");} + if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0) + {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");} + $i("mostradistancia").style.display="block"; + if(i3GEO.Interface.ATUAL !== "googleearth"){ + i3GEO.desenho.criaContainerRichdraw(); + i3GEO.desenho.richdraw.lineColor = "black"; + i3GEO.desenho.richdraw.lineWidth = "2px"; } + g_tipoacao = "mede"; } - if($i("parartextos") && $i("parartextos").checked === true ){ - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ - i3GEO.desenho.aplica("insereTexto","",n+1,d+" km"); - } - if(i3GEO.Interface.ATUAL === "googleearth") - {i3GEO.Interface.googleearth.insereMarca(d+" km",objposicaocursor.ddx,objposicaocursor.ddy,"","divGeometriasTemp");} + else{ + if(i3GEO.Interface.ATUAL !== "googleearth") + {i3GEO.desenho.richdraw.fecha();} + var Dom = YAHOO.util.Dom; + Dom.setStyle("mostradistancia","display","none"); + Dom.setStyle("pontosins","display","none"); } - //cria a linha ligando os dois ultimos pontos - if(i3GEO.Interface.ATUAL === "googleearth"){ - i3GEO.Interface.googleearth.insereLinha(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],pontosdistobj.xpt[n],pontosdistobj.ypt[n],"","divGeometriasTemp"); + } + }, + googlemaps:{ + inicia: function(){ + if (g_tipoacao !== "mede"){ + if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.clique()") < 0) + {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.clique()");} + if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.movimento()") < 0) + {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.movimento()");} + if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0) + {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");} + $i("mostradistancia").style.display="block"; + i3GEO.desenho.criaContainerRichdraw(); + i3GEO.desenho.richdraw.lineColor = "black"; + i3GEO.desenho.richdraw.lineWidth = "2px"; + g_tipoacao = "mede"; + } + else{ + i3GEO.desenho.richdraw.fecha(); + var Dom = YAHOO.util.Dom; + Dom.setStyle("mostradistancia","display","none"); + Dom.setStyle("pontosins","display","none"); } } - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ - i3GEO.util.insereMarca.cria(objposicaocursor.imgx,objposicaocursor.imgy,i3GEO.analise.medeDistancia.paraCalculo,"divGeometriasTemp","",i3GEO.configura.locaplic+"/imagens/estasel.png",6,6); - i3GEO.desenho.insereCirculo(objposicaocursor.imgx,objposicaocursor.imgy,3,"white"); + }, + googleearth:{ + inicia: function(){ + if (g_tipoacao !== "mede"){ + if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.clique()") < 0) + {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.clique()");} + if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.movimento()") < 0) + {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.movimento()");} + if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0) + {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");} + $i("mostradistancia").style.display="block"; + g_tipoacao = "mede"; + } + else{ + var Dom = YAHOO.util.Dom; + Dom.setStyle("mostradistancia","display","none"); + Dom.setStyle("pontosins","display","none"); + } } - } - }, - /* - Para o calculo de distancias e ativa o botao "pan" - */ - paraCalculo: function(){ - var botaoPan = $i("pan"); - g_tipoacao = ""; - botaoPan ? botaoPan.onclick.call() : i3GEO.barraDeBotoes.ativaBotoes(); - }, - /* - Realiza os calculos e desenho da linha conforme o usuario movimenta o mouse - */ - movimento: function(){ - var n,d,r,decimal,da,mostra,texto, - //pontosdistobj = i3GEO.analise.medeDistancia.pontosdistobj, - calculo = i3GEO.calculo; - if (g_tipoacao === "mede"){ - YAHOO.util.Dom.setStyle("mostradistancia","display","block"); - n = pontosdistobj.xpt.length; - try{ - //console.info(objposicaocursor.ddx); - if (n > 0){ - d = calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); - r = calculo.direcao(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); - r = calculo.dd2dms(r,r); - r = r[0]; + }, + + + + ////////////////////////////////////// + /* + Adiciona uma marca na tela e realiza o calculo de distancia dos pontos inseridos + */ + clique: function(){ + var n,d,decimal,dd, + pontosdistobj = i3GEO.analise.pontosdistobj; + if (g_tipoacao === "mede"){ + n = pontosdistobj.xpt.length; + pontosdistobj.xpt[n] = objposicaocursor.ddx; + pontosdistobj.ypt[n] = objposicaocursor.ddy; + pontosdistobj.xtela[n] = objposicaocursor.telax; + pontosdistobj.ytela[n] = objposicaocursor.telay; + pontosdistobj.ximg[n] = objposicaocursor.imgx; + pontosdistobj.yimg[n] = objposicaocursor.imgy; + pontosdistobj.dist[n] = 0; + //cria a linha que sera utilizada para seguir a posicao do mouse e o ultimo ponto + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ + try{ + pontosdistobj.linhas[n] = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n]-1),(pontosdistobj.yimg[n]-1),(pontosdistobj.ximg[n]-1),(pontosdistobj.yimg[n]-1)); + } + catch(e){ + if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho.richdraw "+e);} + } + } + if (n > 0){ + d = i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); + decimal = 0; d = d + ""; d = d.split("."); decimal = d[1].substr(0,5); d = d[0]+"."+decimal; d = d * 1; - da = d + pontosdistobj.dist[n-1]; - da = da + ""; - da = da.split("."); - decimal = da[1].substr(0,5); - da = da[0]+"."+decimal; - da = da * 1; - - mostra = $i("mostradistancia_calculo"); - if (mostra){ - texto = " Dist acum.= "+da+" km
atual= "+d+" km
"+$trad("x23")+" (DMS)= "+r; - texto += "
"+$trad("x25")+": "+calculo.metododistancia; - mostra.innerHTML = texto; + pontosdistobj.dist[n] = d + pontosdistobj.dist[n-1]; + if(navm) + {i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1]),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n]),pontosdistobj.yimg[n]);} + if($i("pararraios") && $i("pararraios").checked === true ){ + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ + i3GEO.desenho.aplica("insereCirculo","",n); + } + if(i3GEO.Interface.ATUAL === "googleearth"){ + dd = Math.sqrt(((Math.pow((pontosdistobj.xpt[n] - pontosdistobj.xpt[n-1]),2)) + (Math.pow((pontosdistobj.ypt[n] - pontosdistobj.ypt[n-1]),2)) )); + i3GEO.Interface.googleearth.insereCirculo(pontosdistobj.xpt[n],pontosdistobj.ypt[n],dd,"","divGeometriasTemp"); + } + } + if($i("parartextos") && $i("parartextos").checked === true ){ + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ + i3GEO.desenho.aplica("insereTexto","",n+1,d+" km"); + } + if(i3GEO.Interface.ATUAL === "googleearth") + {i3GEO.Interface.googleearth.insereMarca(d+" km",objposicaocursor.ddx,objposicaocursor.ddy,"","divGeometriasTemp");} + } + //cria a linha ligando os dois ultimos pontos + if(i3GEO.Interface.ATUAL === "googleearth"){ + i3GEO.Interface.googleearth.insereLinha(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],pontosdistobj.xpt[n],pontosdistobj.ypt[n],"","divGeometriasTemp"); + } + } + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ + i3GEO.util.insereMarca.cria(objposicaocursor.imgx,objposicaocursor.imgy,i3GEO.analise.medeDistancia.paraCalculo,"divGeometriasTemp","",i3GEO.configura.locaplic+"/imagens/estasel.png",6,6); + i3GEO.desenho.insereCirculo(objposicaocursor.imgx,objposicaocursor.imgy,3,"white"); + } + } + }, + /* + Para o calculo de distancias e ativa o botao "pan" + */ + paraCalculo: function(){ + var botaoPan = $i("pan"); + g_tipoacao = ""; + botaoPan ? botaoPan.onclick.call() : i3GEO.barraDeBotoes.ativaBotoes(); + }, + /* + Realiza os calculos e desenho da linha conforme o usuario movimenta o mouse + */ + movimento: function(){ + var n,d,r,decimal,da,mostra,texto, + pontosdistobj = i3GEO.analise.pontosdistobj, + calculo = i3GEO.calculo; + if (g_tipoacao === "mede"){ + YAHOO.util.Dom.setStyle("mostradistancia","display","block"); + n = pontosdistobj.xpt.length; + try{ + //console.info(objposicaocursor.ddx); + if (n > 0){ + d = calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); + r = calculo.direcao(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy); + r = calculo.dd2dms(r,r); + r = r[0]; + + d = d + ""; + d = d.split("."); + decimal = d[1].substr(0,5); + d = d[0]+"."+decimal; + d = d * 1; + da = d + pontosdistobj.dist[n-1]; + da = da + ""; + da = da.split("."); + decimal = da[1].substr(0,5); + da = da[0]+"."+decimal; + da = da * 1; + + mostra = $i("mostradistancia_calculo"); + if (mostra){ + texto = " Dist acum.= "+da+" km
atual= "+d+" km
"+$trad("x23")+" (DMS)= "+r; + texto += "
"+$trad("x25")+": "+calculo.metododistancia; + mostra.innerHTML = texto; + } + if(i3GEO.Interface.ATUAL !== "googleearth" && navn) + {i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n);} } - if(i3GEO.Interface.ATUAL !== "googleearth" && navn) - {i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n);} } + catch(e){} } - catch(e){} } - } - }, - /* + }, + /* Classe: i3GEO.analise.medeArea Ativa e controla a opcao de medicao de area. @@ -477,32 +529,32 @@ i3GEO.analise = { Quando o botao e acionado, abre-se a janela que mostra o resultado da medida, o icone que segue o mouse e alterado. Para mostrar o resultado do calculo, e incluido um div especifico. - */ - medeArea:{ - /* + */ + medeArea:{ + /* Function: inicia Inicia a operacao de medicao, abrindo a janela de resultados e criando os componentes necessarios Sao registrados os eventos de clique sobre o mapa e fechamento da janela de resultados - */ - inicia: function(){ - if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeArea.inicia()");} - i3GEO.eventos.cliquePerm.desativa(); - pontosdistobj = { - xpt: [], - ypt: [], - dist: [], - distV: [], - xtela: [], - ytela: [], - ximg: [], - yimg: [], - linhas: [], - linhastemp: [] - }; - var x,y,ll1,ll2,d, - calculo = i3GEO.calculo, + */ + inicia: function(){ + if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeArea.inicia()");} + i3GEO.eventos.cliquePerm.desativa(); + i3GEO.analise.pontosdistobj = { + xpt: [], + ypt: [], + dist: [], + distV: [], + xtela: [], + ytela: [], + ximg: [], + yimg: [], + linhas: [], + linhastemp: [] + }; + var x,y,ll1,ll2,d, + calculo = i3GEO.calculo, montacontainer = function(){ var desenho = i3GEO.desenho; $i("mostraarea_calculo").innerHTML = "Clique no mapa para desenhar o poligono. Clique duas vezes para concluir"; @@ -512,149 +564,150 @@ i3GEO.analise = { desenho.richdraw.lineColor = "green"; desenho.richdraw.lineWidth = "2px"; }; - i3GEO.analise.medeArea.criaJanela(); - if (g_tipoacao !== "area"){ - $i("mostraarea_calculo").innerHTML = ""; - if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeArea.clique()") < 0) - {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeArea.clique()");} - if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeArea.movimento()") < 0) - {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeArea.movimento()");} - if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeArea.fechaJanela()") < 0) - {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeArea.fechaJanela()");} - // - //a API do Openlayers e GoogleMaps tem uma funcao propria de obtencao da resolucao de cada pixel - //essa funcao e embutida em i3GEO.calculo.tela2dd - // - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ - x = parseInt(i3GEO.parametros.w / 2,10); - y = parseInt(i3GEO.parametros.h / 2,10); - ll1 = calculo.tela2dd(x,y,"",""); - ll2 = calculo.tela2dd(x + 1,y,"",""); - d = calculo.distancia(ll1[0],ll1[1],ll2[0],ll2[1]); - d = d * 1000; - g_areapixel = d * d; - g_areapixel < 0 ? i3GEO.janela.tempoMsg("Nao e possivel calcular a area. Entre em contato com o administrador do sistema.") : montacontainer(); + i3GEO.analise.medeArea.criaJanela(); + if (g_tipoacao !== "area"){ + $i("mostraarea_calculo").innerHTML = ""; + if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeArea.clique()") < 0) + {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeArea.clique()");} + if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeArea.movimento()") < 0) + {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeArea.movimento()");} + if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeArea.fechaJanela()") < 0) + {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeArea.fechaJanela()");} + // + //a API do Openlayers e GoogleMaps tem uma funcao propria de obtencao da resolucao de cada pixel + //essa funcao e embutida em i3GEO.calculo.tela2dd + // + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ + x = parseInt(i3GEO.parametros.w / 2,10); + y = parseInt(i3GEO.parametros.h / 2,10); + ll1 = calculo.tela2dd(x,y,"",""); + ll2 = calculo.tela2dd(x + 1,y,"",""); + d = calculo.distancia(ll1[0],ll1[1],ll2[0],ll2[1]); + d = d * 1000; + g_areapixel = d * d; + g_areapixel < 0 ? i3GEO.janela.tempoMsg("Nao e possivel calcular a area. Entre em contato com o administrador do sistema.") : montacontainer(); + } } - } - else{i3GEO.desenho.richdraw.fecha();} - }, - /* + else{i3GEO.desenho.richdraw.fecha();} + }, + /* Cria a janela para mostrar os resultados da medicao - */ - criaJanela: function(){ - var novoel,ins,imagemxy,janela; - if (!$i("mostraarea")){ - novoel = document.createElement("div"); - novoel.id = "mostraarea"; - ins = '
Área aproximada    
' + - '
' + - 'Estilo: '+i3GEO.desenho.caixaEstilos()+'
' + - '
' + - '
'; - novoel.innerHTML = ins; - novoel.style.borderColor="gray"; - document.body.appendChild(novoel); - janela = new YAHOO.widget.Panel("mostraarea", {width:"220px",fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); - YAHOO.i3GEO.janela.manager.register(janela); - janela.render(); - YAHOO.util.Event.addListener(janela.close, "click", i3GEO.analise.medeArea.fechaJanela); - } - else{ - janela = YAHOO.i3GEO.janela.manager.find("mostraarea"); - } - janela.show(); - imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); - janela.moveTo(imagemxy[0]+150,imagemxy[1]); - }, - /* + */ + criaJanela: function(){ + var novoel,ins,imagemxy,janela; + if (!$i("mostraarea")){ + novoel = document.createElement("div"); + novoel.id = "mostraarea"; + ins = '
Área aproximada    
' + + '
' + + 'Estilo: '+i3GEO.desenho.caixaEstilos()+'
' + + '
' + + '
'; + novoel.innerHTML = ins; + novoel.style.borderColor="gray"; + document.body.appendChild(novoel); + janela = new YAHOO.widget.Panel("mostraarea", {width:"220px",fixedcenter: false, constraintoviewport: true, underlay:"none", close:true, visible:true, draggable:true, modal:false } ); + YAHOO.i3GEO.janela.manager.register(janela); + janela.render(); + YAHOO.util.Event.addListener(janela.close, "click", i3GEO.analise.medeArea.fechaJanela); + } + else{ + janela = YAHOO.i3GEO.janela.manager.find("mostraarea"); + } + janela.show(); + imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); + janela.moveTo(imagemxy[0]+150,imagemxy[1]); + }, + /* Function: fechaJanela Fecha a janela e os elementos graficos criados para a ferramenta de medicao - */ - fechaJanela: function(){ - var janela; - i3GEO.eventos.cliquePerm.ativa(); - i3GEO.desenho.richdraw.fecha(); - i3GEO.util.removeChild("pontosArea",document.body); - i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeArea.clique()"); - i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeArea.movimento()"); - i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeArea.fechaJanela()"); - i3GEO.barraDeBotoes.ativaBotoes(); - janela = YAHOO.i3GEO.janela.manager.find("mostraarea"); - if(janela){ - YAHOO.i3GEO.janela.manager.remove(janela); - janela.destroy(); - } - i3GEO.barraDeBotoes.ativaIcone("pointer"); - }, - /* + */ + fechaJanela: function(){ + var janela; + i3GEO.eventos.cliquePerm.ativa(); + i3GEO.desenho.richdraw.fecha(); + i3GEO.util.removeChild("pontosArea",document.body); + i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeArea.clique()"); + i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeArea.movimento()"); + i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeArea.fechaJanela()"); + i3GEO.barraDeBotoes.ativaBotoes(); + janela = YAHOO.i3GEO.janela.manager.find("mostraarea"); + if(janela){ + YAHOO.i3GEO.janela.manager.remove(janela); + janela.destroy(); + } + i3GEO.barraDeBotoes.ativaIcone("pointer"); + }, + /* Adiciona uma marca na tela e realiza o calculo de distancia dos pontos inseridos - */ - clique: function(){ - var n,m; - //pontosdistobj = i3GEO.analise.medeArea.pontosdistobj; - if (g_tipoacao === "area"){ - n = pontosdistobj.xpt.length; - pontosdistobj.xpt[n] = objposicaocursor.ddx; - pontosdistobj.ypt[n] = objposicaocursor.ddy; - pontosdistobj.xtela[n] = objposicaocursor.telax; - pontosdistobj.ytela[n] = objposicaocursor.telay; - pontosdistobj.ximg[n] = objposicaocursor.imgx; - pontosdistobj.yimg[n] = objposicaocursor.imgy; - pontosdistobj.dist[n] = 0; - //inclui a linha para ligar com o ponto inicial - if (n === 0){ - try { - pontosdistobj.linhastemp = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1,pontosdistobj.ximg[0]-1,pontosdistobj.yimg[0]-1); + */ + clique: function(){ + var n,m; + pontosdistobj = i3GEO.analise.pontosdistobj; + if (g_tipoacao === "area"){ + n = pontosdistobj.xpt.length; + pontosdistobj.xpt[n] = objposicaocursor.ddx; + pontosdistobj.ypt[n] = objposicaocursor.ddy; + pontosdistobj.xtela[n] = objposicaocursor.telax; + pontosdistobj.ytela[n] = objposicaocursor.telay; + pontosdistobj.ximg[n] = objposicaocursor.imgx; + pontosdistobj.yimg[n] = objposicaocursor.imgy; + pontosdistobj.dist[n] = 0; + //inclui a linha para ligar com o ponto inicial + if (n === 0){ + try { + pontosdistobj.linhastemp = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1,pontosdistobj.ximg[0]-1,pontosdistobj.yimg[0]-1); + } + catch(e){ + if(typeof(console) !== 'undefined'){console.error(e);} + } } - catch(e){ - if(typeof(console) !== 'undefined'){console.error(e);} + else{ + if(navm) + {i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1]),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n]),pontosdistobj.yimg[n]);} + //parece qe tem um problema de versao do ie aqui + //if(navm) + //{i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n]);} } + try{ + pontosdistobj.linhas[n] = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1,pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1); + } + catch(men){ + if(typeof(console) !== 'undefined'){console.error(men);} + } + m = i3GEO.calculo.area(pontosdistobj.xtela,pontosdistobj.ytela,g_areapixel); + i3GEO.util.defineValor("mostraarea_calculo","innerHTML","
m2= "+m.toFixed(2)+"
km2= "+(m/1000000).toFixed(2)+"
ha= "+(m/10000).toFixed(2)); + if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ + i3GEO.util.insereMarca.cria(objposicaocursor.imgx,objposicaocursor.imgy,i3GEO.analise.medeArea.paraCalculo,"divGeometriasTemp","",i3GEO.configura.locaplic+"/imagens/estasel.png",6,6); + i3GEO.desenho.insereCirculo(objposicaocursor.imgx,objposicaocursor.imgy,3,"white"); + } + if(i3GEO.Interface.ATUAL === "googleearth") + {i3GEO.util.insereMarca.cria(objposicaocursor.ddx,objposicaocursor.ddy,i3GEO.analise.medeArea.paraCalculo,"divGeometriasTemp","");} } - else{ - if(navm) - {i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1]),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n]),pontosdistobj.yimg[n]);} - //parece qe tem um problema de versao do ie aqui - //if(navm) - //{i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, (pontosdistobj.ximg[n-1])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n-1],(pontosdistobj.ximg[n])-(i3GEO.parametros.w/2),pontosdistobj.yimg[n]);} - } - try{ - pontosdistobj.linhas[n] = i3GEO.desenho.richdraw.renderer.create(i3GEO.desenho.richdraw.mode, i3GEO.desenho.richdraw.fillColor, i3GEO.desenho.richdraw.lineColor, i3GEO.desenho.richdraw.lineWidth, pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1,pontosdistobj.ximg[n]-1,pontosdistobj.yimg[n]-1); - } - catch(men){ - if(typeof(console) !== 'undefined'){console.error(men);} - } - m = i3GEO.calculo.area(pontosdistobj,g_areapixel); - i3GEO.util.defineValor("mostraarea_calculo","innerHTML","
m2= "+m.toFixed(2)+"
km2= "+(m/1000000).toFixed(2)+"
ha= "+(m/10000).toFixed(2)); - if(i3GEO.util.in_array(i3GEO.Interface.ATUAL,["openlayers","googlemaps"])){ - i3GEO.util.insereMarca.cria(objposicaocursor.imgx,objposicaocursor.imgy,i3GEO.analise.medeArea.paraCalculo,"divGeometriasTemp","",i3GEO.configura.locaplic+"/imagens/estasel.png",6,6); - i3GEO.desenho.insereCirculo(objposicaocursor.imgx,objposicaocursor.imgy,3,"white"); - } - if(i3GEO.Interface.ATUAL === "googleearth") - {i3GEO.util.insereMarca.cria(objposicaocursor.ddx,objposicaocursor.ddy,i3GEO.analise.medeArea.paraCalculo,"divGeometriasTemp","");} - } - }, - /* + }, + /* Para o calculo de area e ativa o botao "pan" - */ - paraCalculo: function(){ - var botaoPan = $i("pan"); - g_tipoacao = ""; - botaoPan ? botaoPan.onclick.call() : i3GEO.barraDeBotoes.ativaBotoes(); - }, - /* + */ + paraCalculo: function(){ + var botaoPan = $i("pan"); + g_tipoacao = ""; + botaoPan ? botaoPan.onclick.call() : i3GEO.barraDeBotoes.ativaBotoes(); + }, + /* Realiza o desenho do poligono conforme o usuario movimenta o mouse - */ - movimento: function(){ - var n; - if (g_tipoacao === "area"){ - n = pontosdistobj.xpt.length; - if (n > 0){ - i3GEO.desenho.aplica("resizePoligono",pontosdistobj.linhastemp,1); - i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n); + */ + movimento: function(){ + var n, + pontosdistobj = i3GEO.analise.pontosdistobj; + if (g_tipoacao === "area"){ + n = pontosdistobj.xpt.length; + if (n > 0){ + i3GEO.desenho.aplica("resizePoligono",pontosdistobj.linhastemp,1); + i3GEO.desenho.aplica("resizeLinha",pontosdistobj.linhas[n-1],n); + } } } } - } }; //YAHOO.log("carregou classe analise", "Classes i3geo"); \ No newline at end of file diff --git a/classesjs/classe_calculo.js b/classesjs/classe_calculo.js index 377ee2f..2a4bc48 100644 --- a/classesjs/classe_calculo.js +++ b/classesjs/classe_calculo.js @@ -266,7 +266,9 @@ i3GEO.calculo = { Parametros: - pontos {Array} - array com a lista de pontos pontos.xtela corresponde a um array com os valores de x e pontos.ytela aos valores de y + x {Array} - array com a lista de pontos x + + y {Array} - array com a lista de pontos y pixel {Numeric} - área de cada pixel no mapa @@ -275,21 +277,23 @@ i3GEO.calculo = { Type: {Numeric} */ - area: function(pontos,pixel){ + area: function(x,y,pixel){ if(typeof(console) !== 'undefined'){console.info("i3GEO.calculo.area()");} - var $polygon_area,$i,$array_length; + var n = x.length, + $polygon_area,$i; try{ - if(pontos.xpt.length > 2){ - $array_length = pontos.xpt.length; - pontos.xtela.push(pontos.xtela[0]); - pontos.ytela.push(pontos.ytela[0]); + if(n > 2){ + x.push(x[0]); + y.push(y[0]); $polygon_area = 0; - for ($i=0;$i < $array_length;$i+=1) - {$polygon_area += ((pontos.xtela[$i] * pontos.ytela[$i+1])-(pontos.ytela[$i] * pontos.xtela[$i+1]));} + for ($i=0;$i < n;$i+=1){ + $polygon_area += ((x[$i] * y[$i+1])-(y[$i] * x[$i+1])); + } $polygon_area = Math.abs($polygon_area) / 2; } - else - {$polygon_area = 0;} + else{ + $polygon_area = 0; + } return $polygon_area*pixel; } catch(e){return (0);} diff --git a/classesjs/classe_desenho.js b/classesjs/classe_desenho.js index c5b0042..47046e6 100644 --- a/classesjs/classe_desenho.js +++ b/classesjs/classe_desenho.js @@ -40,148 +40,149 @@ Você deve ter recebido uma cópia da Licença Pública G 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(i3GEO) === 'undefined'){ var i3GEO = {}; } i3GEO.desenho = { - /* + /* Variavel: richdraw Objeto richdraw criado por criaContainerRichdraw Tipo: {richdraw object} - */ - richdraw: "", - /* + */ + richdraw: "", + /* Propriedade: estilos Estilos que podem ser utilizados para desenhar os elementos - */ - estilos: { - "normal":{ - fillcolor: 'red', - linecolor: 'black', - linewidth: '1', - circcolor: 'white', - textcolor: 'gray' - }, - "palido":{ - fillcolor: 'gray', - linecolor: 'gray', - linewidth: '1', - circcolor: 'gray', - textcolor: 'gray' - }, - "vermelho":{ - fillcolor: 'gray', - linecolor: 'red', - linewidth: '1', - circcolor: 'pink', - textcolor: 'brown' + */ + estilos: { + "normal":{ + fillcolor: 'red', + linecolor: 'black', + linewidth: '1', + circcolor: 'white', + textcolor: 'gray' + }, + "palido":{ + fillcolor: 'gray', + linecolor: 'gray', + linewidth: '1', + circcolor: 'gray', + textcolor: 'gray' + }, + "vermelho":{ + fillcolor: 'gray', + linecolor: 'red', + linewidth: '1', + circcolor: 'pink', + textcolor: 'brown' + }, + "verde":{ + fillcolor: 'gray', + linecolor: 'green', + linewidth: '1', + circcolor: 'DarkGreen', + textcolor: 'GreenYellow' + } }, - "verde":{ - fillcolor: 'gray', - linecolor: 'green', - linewidth: '1', - circcolor: 'DarkGreen', - textcolor: 'GreenYellow' - } - }, - /* + /* Propriedade: estiloPadrao Estilo utilizado como padrão - */ - estiloPadrao: "normal", - /* - Funções utilizadas quando o mapa baseia-se na interface OpenLayers - */ - openlayers: { + */ + estiloPadrao: "normal", /* - * Cria o layer onde os desenhos serao inseridos + Funções utilizadas quando o mapa baseia-se na interface OpenLayers */ - inicia: function(){ - if(!i3GEO.desenho.layergrafico || i3GEO.desenho.layergrafico != undefined){ - i3GEO.desenho.openlayers.criaLayerGrafico(); - } - }, - //i3GEO.editorOL.layergrafico - criaLayerGrafico: function(){ - var sketchSymbolizers = { - "Point": { - fillColor: "rgb(${fillColor})", - fillOpacity: "${opacidade}", - strokeWidth: "${strokeWidth}", - strokeOpacity: "${opacidade}", - strokeColor: "rgb(${strokeColor})", - label: "${texto}", - pointRadius: "${pointRadius}", - graphicName: "${graphicName}", - fontSize: "${fontSize}", - fontColor: "rgb(${fontColor})", - fontFamily: "Arial", - fontWeight: "normal", - labelAlign: "lb", - labelXOffset: "3", - labelYOffset: "3", - externalGraphic: "${externalGraphic}" - }, - "Line": { - strokeWidth: "${strokeWidth}", - strokeOpacity: "${opacidade}", - strokeColor: "rgb(${strokeColor})" - }, - "Polygon": { - strokeWidth: "${strokeWidth}", - strokeOpacity: "${opacidade}", - strokeColor: "rgb(${strokeColor})", - fillColor: "rgb(${fillColor})", - fillOpacity: "${opacidade}", - zIndex: 5000 - } + openlayers: { + /* + * Cria o layer onde os desenhos serao inseridos + */ + inicia: function(){ + if(!i3GEO.desenho.layergrafico || i3GEO.desenho.layergrafico != undefined){ + i3GEO.desenho.openlayers.criaLayerGrafico(); + } + }, + //i3GEO.editorOL.layergrafico + criaLayerGrafico: function(){ + var sketchSymbolizers = { + "Point": { + fillColor: "rgb(${fillColor})", + fillOpacity: "${opacidade}", + strokeWidth: "${strokeWidth}", + strokeOpacity: "${opacidade}", + strokeColor: "rgb(${strokeColor})", + label: "${texto}", + pointRadius: "${pointRadius}", + graphicName: "${graphicName}", + fontSize: "${fontSize}", + fontColor: "rgb(${fontColor})", + fontFamily: "Arial", + fontWeight: "normal", + labelAlign: "lb", + labelXOffset: "3", + labelYOffset: "3", + externalGraphic: "${externalGraphic}" + }, + "Line": { + strokeWidth: "${strokeWidth}", + strokeOpacity: "${opacidade}", + strokeColor: "rgb(${strokeColor})" + }, + "Polygon": { + strokeWidth: "${strokeWidth}", + strokeOpacity: "${opacidade}", + strokeColor: "rgb(${strokeColor})", + fillColor: "rgb(${fillColor})", + fillOpacity: "${opacidade}", + zIndex: 5000 + } }, style = new OpenLayers.Style(), styleMap1 = new OpenLayers.StyleMap( - { - "default": style, - "vertex": { - strokeOpacity: 1, - strokeWidth: 1, - fillColor: "white", - fillOpacity: 0.45, - pointRadius: 4 - } - }, - { - extendDefault: false - } + { + "default": style, + "vertex": { + strokeOpacity: 1, + strokeWidth: 1, + fillColor: "white", + fillOpacity: 0.45, + pointRadius: 4 + } + }, + { + extendDefault: false + } ), renderer = OpenLayers.Util.getParameters(window.location.href).renderer; - - style.addRules([ - new OpenLayers.Rule({symbolizer: sketchSymbolizers}) - ]); - renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers; - i3GEO.desenho.layergrafico = new OpenLayers.Layer.Vector("Edição",{ - styleMap: styleMap1, - displayInLayerSwitcher:true, - visibility:true, - renderers: renderer, - vertexRenderIntent: "vertex" + + style.addRules( + [new OpenLayers.Rule({symbolizer: sketchSymbolizers})] + ); + renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers; + i3GEO.desenho.layergrafico = new OpenLayers.Layer.Vector( + "Edição",{ + styleMap: styleMap1, + displayInLayerSwitcher:true, + visibility:true, + renderers: renderer, + vertexRenderIntent: "vertex" + } + ); + //para efeitos de compatibilidade + if(i3GEO.editorOL.mapa){ + i3GEO.editorOL.mapa.addLayers([i3GEO.desenho.layergrafico]); + } + else{ + i3geoOL.addLayers([i3GEO.desenho.layergrafico]); } - ); - //para efeitos de compatibilidade - if(i3GEO.editorOL.mapa){ - i3GEO.editorOL.mapa.addLayers([i3GEO.desenho.layergrafico]); - } - else{ - i3geoOL.addLayers([i3GEO.desenho.layergrafico]); } - } - }, - /* + }, + /* Cria os elementos 'dom' necessários ao uso das funções de desenho sobre o mapa. As ferramentas de cálculo de distâncias e áreas utilizam esse container. @@ -195,64 +196,64 @@ i3GEO.desenho = { Essa função cria também o objeto pontosdistobj que é utilizado para armazenar os dados obtidos da movimentação do mouse sobre o mapa - */ - criaContainerRichdraw: function(){ - if(typeof(console) !== 'undefined'){console.info("i3GEO.desenho.criaContainerRichdraw()");} - pontosdistobj = { - xpt: [], - ypt: [], - dist: [], - distV: [], - xtela: [], - ytela: [], - ximg: [], - yimg: [], - linhas: [] - }; - if(i3GEO.Interface.ATUAL === "googleearth") - {return;} - try{ - var divgeo,renderer; - divgeo = i3GEO.desenho.criaDivContainer(); - divgeo.innerHTML = ""; - // - //cria o objeto renderer conforme o browser em uso - //esse objeto será utilizado nas funções de desenho - //mais detalhes, veja em pacotes/richdraw - //Conforme a resposta do navegador, utiliza-se a criação VML ou SVG - // + */ + criaContainerRichdraw: function(){ + if(typeof(console) !== 'undefined'){console.info("i3GEO.desenho.criaContainerRichdraw()");} + i3GEO.analise.pontosdistobj = { + xpt: [], + ypt: [], + dist: [], + distV: [], + xtela: [], + ytela: [], + ximg: [], + yimg: [], + linhas: [] + }; + if(i3GEO.Interface.ATUAL === "googleearth") + {return;} try{ - renderer = new VMLRenderer(); - i3GEO.desenho.richdraw = new RichDrawEditor(divgeo, renderer); - } - catch(erro){ - renderer = new SVGRenderer(); - i3GEO.desenho.richdraw = new RichDrawEditor(divgeo, renderer); - renderer.svgRoot.style.width = divgeo.style.width; - renderer.svgRoot.style.height = divgeo.style.height; - } - // - //definição dos símbolos default para os elementos gráficos - // - i3GEO.desenho.definePadrao(i3GEO.desenho.estiloPadrao); - i3GEO.desenho.richdraw.editCommand('mode', 'line'); - divgeo.style.display="block"; - // - //após o container ser criado, é necessário que as funções - //de clique sobre o mapa sejam ativadas - //para funcionarem sobre o container - // - i3GEO.eventos.ativa(divgeo); - if($i("localizarxygeoProjxg")){ - var temp = function(){ - i3GEO.coordenadas.atualizaGeo(objposicaocursor.dmsx,objposicaocursor.dmsy,"localizarxygeoProj"); - }; - YAHOO.util.Event.addListener(divgeo,"mousemove", temp); + var divgeo,renderer; + divgeo = i3GEO.desenho.criaDivContainer(); + divgeo.innerHTML = ""; + // + //cria o objeto renderer conforme o browser em uso + //esse objeto será utilizado nas funções de desenho + //mais detalhes, veja em pacotes/richdraw + //Conforme a resposta do navegador, utiliza-se a criação VML ou SVG + // + try{ + renderer = new VMLRenderer(); + i3GEO.desenho.richdraw = new RichDrawEditor(divgeo, renderer); + } + catch(erro){ + renderer = new SVGRenderer(); + i3GEO.desenho.richdraw = new RichDrawEditor(divgeo, renderer); + renderer.svgRoot.style.width = divgeo.style.width; + renderer.svgRoot.style.height = divgeo.style.height; + } + // + //definição dos símbolos default para os elementos gráficos + // + i3GEO.desenho.definePadrao(i3GEO.desenho.estiloPadrao); + i3GEO.desenho.richdraw.editCommand('mode', 'line'); + divgeo.style.display="block"; + // + //após o container ser criado, é necessário que as funções + //de clique sobre o mapa sejam ativadas + //para funcionarem sobre o container + // + i3GEO.eventos.ativa(divgeo); + if($i("localizarxygeoProjxg")){ + var temp = function(){ + i3GEO.coordenadas.atualizaGeo(objposicaocursor.dmsx,objposicaocursor.dmsy,"localizarxygeoProj"); + }; + YAHOO.util.Event.addListener(divgeo,"mousemove", temp); + } } - } - catch(men){alert("Erro ao tentar criar container richdraw "+men);} - }, - /* + catch(men){alert("Erro ao tentar criar container richdraw "+men);} + }, + /* Cria o elemento DIV que será utilizado para renderizar os elementos gráficos. Nesse DIV serão incluídos os elementos de desenho em SVG ou VML @@ -261,39 +262,39 @@ i3GEO.desenho = { Return: DOM object - */ - criaDivContainer: function(){ - desenhoUltimaLinha = ""; - desenhoUltimaLinhaPol = ""; - if (!$i("divGeometriasTemp")){ - var pos,novoel,ne; - // - //pega a posição da imagem do mapa para posicionar corretamente o container - // - pos = [0,0]; - pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); - // - //cria o container - // - novoel = document.createElement("div"); - novoel.id = "divGeometriasTemp"; - ne = novoel.style; - ne.cursor="crosshair"; - ne.zIndex=0; - if(i3GEO.Interface.TABLET === true) - {ne.zIndex=5000;} - ne.position="absolute"; - ne.width=i3GEO.parametros.w + "px"; - ne.height=i3GEO.parametros.h + "px"; - ne.border="0px solid black"; - ne.display="none"; - ne.top=pos[1] + "px"; - ne.left=pos[0] + "px"; - document.body.appendChild(novoel); - } - return ($i("divGeometriasTemp")); - }, - /* + */ + criaDivContainer: function(){ + desenhoUltimaLinha = ""; + desenhoUltimaLinhaPol = ""; + if (!$i("divGeometriasTemp")){ + var pos,novoel,ne; + // + //pega a posição da imagem do mapa para posicionar corretamente o container + // + pos = [0,0]; + pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); + // + //cria o container + // + novoel = document.createElement("div"); + novoel.id = "divGeometriasTemp"; + ne = novoel.style; + ne.cursor="crosshair"; + ne.zIndex=0; + if(i3GEO.Interface.TABLET === true) + {ne.zIndex=5000;} + ne.position="absolute"; + ne.width=i3GEO.parametros.w + "px"; + ne.height=i3GEO.parametros.h + "px"; + ne.border="0px solid black"; + ne.display="none"; + ne.top=pos[1] + "px"; + ne.left=pos[0] + "px"; + document.body.appendChild(novoel); + } + return ($i("divGeometriasTemp")); + }, + /* Desenha ou reposiciona elementos na tela usando a biblioteca richdraw Parametros: @@ -305,45 +306,46 @@ i3GEO.desenho = { n {numeric} - índice do elemento no array pontosdistobj texto {string} - texto que será inserido no tipo "insereTexto" - */ - aplica: function(tipo,objeto,n,texto){ - var dy,dx,w,c; - if(i3GEO.desenho.richdraw && $i(i3GEO.Interface.IDCORPO)){ - //pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); - // - //faz o reposicionamento de linhas quando o mouse é movido e a linha está ativa - // - if((tipo==="resizeLinha") || (tipo==="resizePoligono")){ - try - {i3GEO.desenho.richdraw.renderer.resize(objeto,0,0,objposicaocursor.imgx,objposicaocursor.imgy);} - catch(erro){ - if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho "+erro);} - } - } - if(tipo==="insereCirculo"){ - dx = Math.pow(((pontosdistobj.xtela[n])*1) - ((pontosdistobj.xtela[n-1])*1),2); - dy = Math.pow(((pontosdistobj.ytela[n])*1) - ((pontosdistobj.ytela[n-1])*1),2); - w = Math.sqrt(dx + dy); - c = ""; - if(navn){ - c = 'rgba(255,255,255,0'; + */ + aplica: function(tipo,objeto,n,texto){ + var dy,dx,w,c, + pontosdistobj = i3GEO.analise.pontosdistobj; + if(i3GEO.desenho.richdraw && $i(i3GEO.Interface.IDCORPO)){ + //pos = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); + // + //faz o reposicionamento de linhas quando o mouse é movido e a linha está ativa + // + if((tipo==="resizeLinha") || (tipo==="resizePoligono")){ + try + {i3GEO.desenho.richdraw.renderer.resize(objeto,0,0,objposicaocursor.imgx,objposicaocursor.imgy);} + catch(erro){ + if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho "+erro);} + } } - if(chro){ + if(tipo==="insereCirculo"){ + dx = Math.pow(((pontosdistobj.xtela[n])*1) - ((pontosdistobj.xtela[n-1])*1),2); + dy = Math.pow(((pontosdistobj.ytela[n])*1) - ((pontosdistobj.ytela[n-1])*1),2); + w = Math.sqrt(dx + dy); c = ""; + if(navn){ + c = 'rgba(255,255,255,0'; + } + if(chro){ + c = ""; + } + i3GEO.desenho.insereCirculo(pontosdistobj.ximg[n-1],pontosdistobj.yimg[n-1],w,c); } - i3GEO.desenho.insereCirculo(pontosdistobj.ximg[n-1],pontosdistobj.yimg[n-1],w,c); - } - if(tipo==="insereTexto"){ - try{ - i3GEO.desenho.richdraw.renderer.create('text', '', i3GEO.desenho.richdraw.textColor, 1, pontosdistobj.ximg[n-1],pontosdistobj.yimg[n-1],"","",texto); - } - catch(men){ - if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho "+men);} + if(tipo==="insereTexto"){ + try{ + i3GEO.desenho.richdraw.renderer.create('text', '', i3GEO.desenho.richdraw.textColor, 1, pontosdistobj.ximg[n-1],pontosdistobj.yimg[n-1],"","",texto); + } + catch(men){ + if(typeof(console) !== 'undefined'){console.error("i3GEO.desenho "+men);} + } } } - } - }, - /* + }, + /* Insere um circulo no container de elementos gráficos Parametros: @@ -353,53 +355,53 @@ i3GEO.desenho = { y {numerico} - posição do ponto em coordenadas de imagem w {numerico} - raio do círculo em pixels - + b {string} - cor do fundo - */ - insereCirculo: function(x,y,w,b){ - if(!b){ - b = ""; - } - try{ - i3GEO.desenho.richdraw.renderer.create('circ', b, i3GEO.desenho.richdraw.circColor, i3GEO.desenho.richdraw.lineWidth, x,y,w,w); - } - catch(men){ - if(typeof(console) !== 'undefined'){console.error(men);} - } - }, - /* + */ + insereCirculo: function(x,y,w,b){ + if(!b){ + b = ""; + } + try{ + i3GEO.desenho.richdraw.renderer.create('circ', b, i3GEO.desenho.richdraw.circColor, i3GEO.desenho.richdraw.lineWidth, x,y,w,w); + } + catch(men){ + if(typeof(console) !== 'undefined'){console.error(men);} + } + }, + /* Aplica um determinado padrao de estilos para os novos elementos que serão adicionados Parametro: padrao {string} - nome do estilo - */ - definePadrao: function(padrao){ - padrao = i3GEO.desenho.estilos[padrao]; - i3GEO.desenho.richdraw.editCommand('fillcolor', padrao.fillcolor); - i3GEO.desenho.richdraw.editCommand('linecolor', padrao.linecolor); - i3GEO.desenho.richdraw.editCommand('linewidth', padrao.linewidth); - i3GEO.desenho.richdraw.editCommand('circcolor', padrao.circcolor); - i3GEO.desenho.richdraw.editCommand('textcolor', padrao.textcolor); - }, - /* + */ + definePadrao: function(padrao){ + padrao = i3GEO.desenho.estilos[padrao]; + i3GEO.desenho.richdraw.editCommand('fillcolor', padrao.fillcolor); + i3GEO.desenho.richdraw.editCommand('linecolor', padrao.linecolor); + i3GEO.desenho.richdraw.editCommand('linewidth', padrao.linewidth); + i3GEO.desenho.richdraw.editCommand('circcolor', padrao.circcolor); + i3GEO.desenho.richdraw.editCommand('textcolor', padrao.textcolor); + }, + /* Cria uma caixa de seleção para escolha do estilo a ser utilizado - */ - caixaEstilos: function(){ - var lista = i3GEO.util.listaChaves(i3GEO.desenho.estilos), + */ + caixaEstilos: function(){ + var lista = i3GEO.util.listaChaves(i3GEO.desenho.estilos), n = lista.length, i, caixa, sel; - caixa = ""; + for(i=0;i"+lista[i]+""; + } + caixa += ""; + return caixa; } - caixa += ""; - return caixa; - } }; -//YAHOO.log("carregou classe desenho", "Classes i3geo"); \ No newline at end of file +//YAHOO.log("carregou classe desenho", "Classes i3geo"); -- libgit2 0.21.2