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 = '
' +
- '';
- 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 = '' +
+ '';
+ 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 = '' +
- '' +
- '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 = '' +
+ '' +
+ '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 = "";
- 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