diff --git a/classesjs/classe_ajuda.js b/classesjs/classe_ajuda.js
index e9c5b6b..996a322 100644
--- a/classesjs/classe_ajuda.js
+++ b/classesjs/classe_ajuda.js
@@ -1,244 +1,275 @@
-/*
-Title: Ajuda
-
-i3GEO.ajuda
-
-Manipulação das mensagens de ajuda.
-
-Permite definir a mensagem padrão da janela de mensagens. Abrir a janela e definir seu conteúdo.
-Controla também o letreiro móvel que mostra mensagens especiais definidas em cada layer adicionado ao mapa.
-
-Exemplos:
-
- Se vc não quiser que a janela de ajuda seja aberta, inclua em seu HTML ou javascript
-
- i3GEO.ajuda.ATIVAJANELA = false;
-
- Para enviar uma mensagem para a janela, utilize
-
- i3GEO.ajuda.mostraJanela("texto");
-
-
-Arquivo:
-
-i3geo/classesjs/classe_ajuda.js
-
-Licença:
-
-GPL2
-
-i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
-
-Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil
-Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
-
-Este programa é software livre; você pode redistribuí-lo
-e/ou modificá-lo sob os termos da Licença Pública Geral
-GNU conforme publicada pela Free Software Foundation;
-
-Este programa é distribuído na expectativa de que seja útil,
-porém, SEM NENHUMA GARANTIA; nem mesmo a garantia implícita
-de COMERCIABILIDADE OU ADEQUACÃO A UMA FINALIDADE ESPECÍFICA.
-Consulte a Licença Pública Geral do GNU para mais detalhes.
-Você deve ter recebido uma cópia da Licença Pública Geral do
-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'){
+/**
+ * Title: Ajuda
+ *
+ * i3GEO.ajuda
+ *
+ * Manipulação das mensagens de ajuda.
+ *
+ * Permite definir a mensagem padrão da janela de mensagens. Abrir a
+ * janela e definir seu conteúdo. Controla também o letreiro
+ * móvel que mostra mensagens especiais definidas em cada layer
+ * adicionado ao mapa.
+ *
+ * Exemplos:
+ *
+ * Se vc não quiser que a janela de ajuda seja aberta, inclua em seu HTML
+ * ou javascript
+ *
+ * i3GEO.ajuda.ATIVAJANELA = false;
+ *
+ * Para enviar uma mensagem para a janela (quando estiver aberta), utilize
+ *
+ * i3GEO.ajuda.mostraJanela("texto");
+ *
+ * Para enviar uma mensagem temporária utilize:
+ *
+ *
+ * Arquivo:
+ *
+ * i3geo/classesjs/classe_ajuda.js
+ *
+ * Licença:
+ *
+ * GPL2
+ *
+ * i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
+ *
+ * Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente
+ * Brasil Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
+ *
+ * Este programa é software livre; você pode redistribuí-lo
+ * e/ou modificá-lo sob os termos da Licença Pública Geral
+ * GNU conforme publicada pela Free Software Foundation;
+ *
+ * Este programa é distribuído na expectativa de que seja
+ * útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia
+ * implícita de COMERCIABILIDADE OU ADEQUACÃO A UMA FINALIDADE
+ * ESPECÍFICA. Consulte a Licença Pública Geral do GNU para
+ * mais detalhes. Você deve ter recebido uma cópia da
+ * Licença Pública Geral do 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.ajuda = {
- /*
- Propriedade: ATIVAJANELA
-
- Define se a janela de mensagens pode ou não ser aberta.
-
- Default:
-
- {true}
-
- Tipo:
- {Boolean}
- */
- ATIVAJANELA: true,
- /*
- Propriedade: DIVAJUDA
-
- Nome do elemento HTML, do tipo DIV, que irá conter os textos de ajuda.
-
- Se esse DIV for encontrado no mapa, os textos serão mostrados em seu interior.
-
- Default:
-
- {"i3geo_ajuda"}
-
- Tipo:
- {String}
- */
- DIVAJUDA: "i3geo_ajuda",
- /*
- Propriedade: DIVLETREIRO
-
- Id do elemento HTML onde será incluído o banner (letreiro) de mensagens.
-
- Esse tipo de mensagem é obtida do METADATA "MENSAGEM" que pode ser incluído em um layer.
-
- Default:
-
- {"i3geo_letreiro"}
-
- Tipo:
- {String}
- */
- DIVLETREIRO: "i3geo_letreiro",
- /*
- Propriedade: MENSAGEMPADRAO
-
- Mensagem que será incluída ao iniciar a janela de mensagens ou quando não houver
- mensagem definida para o elemento sobre o qual o mouse estaciona.
-
- Default:
- {$trad("p1")}
-
- Tipo:
- {String}
- */
- MENSAGEMPADRAO: $trad("p1"),
- /*
- Propriedade: TRANSICAOSUAVE
-
- Altera a transparência quando o mouse sobrepõe � janela e quando sai
-
- Tipo:
- {boolean}
-
- Default:
- {true}
- */
- TRANSICAOSUAVE: true,
- /*
- Propriedade: OPACIDADE
-
- Valor da opacidade mínima utilizada quando TRANSICAOSUAVE for igual a true.
-
- Varia de 0 a 100
-
- Tipo:
- {numeric}
-
- Default:
- {20}
- */
- OPACIDADE: 20,
- /*
- Function: abreDoc
-
- Abre a documentacao do i3geo em uma nova janela do navegador
-
- Parametro:
-
- url - url que será adicionada a i3GEO.configura.locaplic
- */
- abreDoc: function(url){
- if(!url)
- {url = "/documentacao/index.html";}
- window.open(i3GEO.configura.locaplic+url);
+ /**
+ * Propriedade: ATIVAJANELA
+ *
+ * Define se a janela de mensagens pode ou não ser aberta.
+ *
+ * Tipo {Boolean} - true
+ */
+ ATIVAJANELA : true,
+ /**
+ * Propriedade: DIVAJUDA
+ *
+ * Nome do elemento HTML, do tipo DIV, que irá conter os textos de
+ * ajuda.
+ *
+ * Se esse DIV for encontrado no mapa, os textos serão mostrados em
+ * seu interior.
+ *
+ * Tipo {String} - i3geo_ajuda
+ */
+ DIVAJUDA : "i3geo_ajuda",
+ /**
+ * Propriedade: DIVLETREIRO
+ *
+ * Id do elemento HTML onde será incluído o banner (letreiro)
+ * de mensagens.
+ *
+ * Esse tipo de mensagem é obtida do METADATA "MENSAGEM" que pode ser
+ * incluído em um layer.
+ *
+ * Tipo {String} - i3geo_letreir
+ */
+ DIVLETREIRO : "i3geo_letreiro",
+ /**
+ * Propriedade: MENSAGEMPADRAO
+ *
+ * Mensagem que será incluída ao iniciar a janela de mensagens
+ * ou quando não houver mensagem definida para o elemento sobre o
+ * qual o mouse estaciona.
+ *
+ * Tipo {String} - $trad("p1")
+ */
+ MENSAGEMPADRAO : $trad("p1"),
+ /**
+ * Propriedade: TRANSICAOSUAVE
+ *
+ * Altera a transparência quando o mouse sobrepõe a janela e
+ * quando sai
+ *
+ * Tipo {boolean} - true
+ */
+ TRANSICAOSUAVE : true,
+ /**
+ * Propriedade: OPACIDADE
+ *
+ * Valor da opacidade mínima utilizada quando TRANSICAOSUAVE for
+ * igual a true.
+ *
+ * Varia de 0 a 100
+ *
+ * Tipo {numeric} - 20
+ */
+ OPACIDADE : 20,
+ /**
+ * Function: abreDoc
+ *
+ * Abre a documentacao do i3geo em uma nova janela do navegador
+ *
+ * Parametro:
+ *
+ * url {string} - url que será adicionada a i3GEO.configura.locaplic
+ */
+ abreDoc : function(url) {
+ if (!url) {
+ url = "/documentacao/index.html";
+ }
+ window.open(i3GEO.configura.locaplic
+ + url);
},
- /*
- Function: abreJanela
-
- Abre a janela flutuante para mostrar as mensagens de ajuda.
-
- Essa função é executada na inicialização do i3GEO
- */
- abreJanela: function(){
- if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.abreJanela()");}
- try {
- var nx,ny,corpo,texto,janela,temp,
- largura=262,
- YU = YAHOO.util,
- pos = [20,i3GEO.parametros.h / 2];
- if(this.ATIVAJANELA === false){return;}
+ /**
+ * Function: abreJanela
+ *
+ * Abre a janela flutuante para mostrar as mensagens de ajuda.
+ *
+ * Essa função é executada na
+ * inicialização do i3GEO
+ */
+ abreJanela : function() {
+ try {
+ var nx, ny, corpo, texto, janela, temp, largura = 262, YU = YAHOO.util, pos = [
+ 20, i3GEO.parametros.h / 2
+ ];
+ if (this.ATIVAJANELA === false) {
+ return;
+ }
temp = $i("contemFerramentas");
- if(temp){
- largura = parseInt(temp.style.width,10) - 5;
+ if (temp) {
+ largura = parseInt(
+ temp.style.width,
+ 10) - 5;
}
- if(!$i("janelaMenTexto")){
+ if (!$i("janelaMenTexto")) {
corpo = $i(i3GEO.Interface.IDCORPO);
- if(corpo){pos = YU.Dom.getXY(corpo);}
- else{
+ if (corpo) {
+ pos = YU.Dom.getXY(corpo);
+ } else {
corpo = $i(i3GEO.Interface.IDMAPA);
- if(corpo){pos = YU.Dom.getXY(corpo);}
+ if (corpo) {
+ pos = YU.Dom.getXY(corpo);
+ }
}
- nx = pos[0] - largura - 3;
+ nx = pos[0]
+ - largura
+ - 3;
ny = i3GEO.parametros.h - 78;
- texto = '
'+i3GEO.ajuda.MENSAGEMPADRAO+'
';
- if(nx < 0)
- {nx = 10;ny = ny - 50;}
- janela = i3GEO.janela.cria(largura - 3,70,"",nx,ny," ","i3geo_janelaMensagens",false,"hd","","",true);
+ texto = ''
+ + i3GEO.ajuda.MENSAGEMPADRAO
+ + '
';
+ if (nx < 0) {
+ nx = 10;
+ ny = ny - 50;
+ }
+ janela = i3GEO.janela.cria(
+ largura - 3,
+ 70,
+ "",
+ nx,
+ ny,
+ " ",
+ "i3geo_janelaMensagens",
+ false,
+ "hd",
+ "",
+ "",
+ true);
janela[2].innerHTML = texto;
- YU.Event.addListener(janela[0].close, "click", i3GEO.ajuda.fechaJanela);
+ YU.Event.addListener(
+ janela[0].close,
+ "click",
+ i3GEO.ajuda.fechaJanela);
this.ativaCookie();
}
- }
- catch(e){
- if(typeof(console) !== 'undefined'){console.error("i3GEO.ajuda.abreJanela "+e);}
+ } catch (e) {
+ if (typeof (console) !== 'undefined') {
+ console.error("i3GEO.ajuda.abreJanela "
+ + e);
+ }
}
},
- /*
- Ativa o cookie g_janelaMen e inclui o valor "sim".
-
- Toda a vez que a janela é aberta, o cookie é ativado.
-
- Ativando-se o cookie, a janela de mensagens será aberta automaticamente a próxima vez que o i3geo for iniciado
- */
- ativaCookie: function(){
+ /**
+ * Ativa o cookie g_janelaMen e inclui o valor "sim".
+ *
+ * Toda a vez que a janela é aberta, o cookie é ativado.
+ *
+ * Ativando-se o cookie, a janela de mensagens será aberta
+ * automaticamente a próxima vez que o i3geo for iniciado
+ */
+ ativaCookie : function() {
var i = i3GEO.util.insereCookie;
- i("g_janelaMen","sim");
- i("botoesAjuda","sim");
+ i(
+ "g_janelaMen",
+ "sim");
+ i(
+ "botoesAjuda",
+ "sim");
},
- /*
- Busca mensagens no metadata "MENSAGEM" existentes nos layers do mapa.
-
- Se existirem mensagens, as mesmas são incluídas no letreiro.
-
- O letreiro deve ser um elemento do tipo INPUT (text).
-
- Parametro:
-
- mensagem {String} - (opcional) texto que será mostrado no letreiro. Se não for informado
- será utilizado a variável i3GEO.parametros.mensagens
- */
- ativaLetreiro: function(mensagem){
- if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.ativaLetreiro()");}
+ /**
+ * Busca mensagens no metadata "MENSAGEM" existentes nos layers do mapa.
+ *
+ * Se existirem mensagens, as mesmas são incluídas no
+ * letreiro.
+ *
+ * O letreiro deve ser um elemento do tipo INPUT (text).
+ *
+ * Parametro:
+ *
+ * mensagem {String} - (opcional) texto que será mostrado no
+ * letreiro. Se não for informado será utilizado a
+ * variável i3GEO.parametros.mensagens
+ */
+ ativaLetreiro : function(mensagem) {
var l;
- if($i(i3GEO.ajuda.DIVLETREIRO))
- {
- if(arguments.length === 0)
- {mensagem = i3GEO.parametros.mensagens;}
- if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.ajuda.ativaLetreiro()") < 0)
- {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.ajuda.ativaLetreiro()");}
- try
- {clearTimeout(i3GEO.ajuda.tempoLetreiro);}
- catch(e){i3GEO.ajuda.tempoLetreiro = "";}
+ if ($i(i3GEO.ajuda.DIVLETREIRO)) {
+ if (arguments.length === 0) {
+ mensagem = i3GEO.parametros.mensagens;
+ }
+ if (i3GEO.eventos.NAVEGAMAPA.toString().search(
+ "i3GEO.ajuda.ativaLetreiro()") < 0) {
+ i3GEO.eventos.NAVEGAMAPA.push("i3GEO.ajuda.ativaLetreiro()");
+ }
+ try {
+ clearTimeout(i3GEO.ajuda.tempoLetreiro);
+ } catch (e) {
+ i3GEO.ajuda.tempoLetreiro = "";
+ }
l = $i(i3GEO.ajuda.DIVLETREIRO);
- if(l.style.display==="none"){return;}
- l.style.cursor="pointer";
- if(mensagem === ""){
+ if (l.style.display === "none") {
+ return;
+ }
+ l.style.cursor = "pointer";
+ if (mensagem === "") {
l.value = "";
return;
}
- if (l.size === 1)
- {l.size = i3GEO.parametros.w / 8;}
- BMessage = mensagem + " ---Clique para parar--- ";
- l.onclick = function()
- {l.style.display = "none";};
- if (BMessage !== " ---Clique para parar--- "){
+ if (l.size === 1) {
+ l.size = i3GEO.parametros.w / 8;
+ }
+ BMessage = mensagem
+ + " ---Clique para parar--- ";
+ l.onclick = function() {
+ l.style.display = "none";
+ };
+ if (BMessage !== " ---Clique para parar--- ") {
BQuantas = 0;
BSize = l.size;
- BPos=BSize;
+ BPos = BSize;
BSpeed = 1;
BSpaces = "";
i3GEO.ajuda.mostraLetreiro();
@@ -246,87 +277,132 @@ i3GEO.ajuda = {
i3GEO.ajuda.mostraLetreiro(mensagem);
}
},
- /*
- Desativa o cookie g_janelaMen.
-
- Toda a vez que a janela é fechada, o cookie é desativado.
-
- Desativando-se o cookie, a janela de mensagens não será aberta automaticamente a próxima vez que o i3geo for iniciado
- */
- desativaCookie: function(){
- i3GEO.util.insereCookie("g_janelaMen","nao");
+ /**
+ * Desativa o cookie g_janelaMen.
+ *
+ * Toda a vez que a janela é fechada, o cookie é desativado.
+ *
+ * Desativando-se o cookie, a janela de mensagens não será
+ * aberta automaticamente a próxima vez que o i3geo for iniciado
+ */
+ desativaCookie : function() {
+ i3GEO.util.insereCookie(
+ "g_janelaMen",
+ "nao");
},
- /*
- Function: fechaJanela.
-
- Fecha a janela de ajuda.
- */
- fechaJanela: function(){
- if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.fechaJanela()");}
+ /**
+ * Function: fechaJanela.
+ *
+ * Fecha a janela de ajuda.
+ */
+ fechaJanela : function() {
i3GEO.ajuda.desativaCookie();
- i3GEO.util.removeChild("i3geo_janelaMensagens_c",document.body);
+ i3GEO.util.removeChild(
+ "i3geo_janelaMensagens_c",
+ document.body);
},
- /*
- Function: mostraJanela
-
- Mostra um texto dentro da janela de mensagens padrão.
-
- Parametro:
-
- texto {String} - texto a ser mostrado
- */
- mostraJanela: function(texto){
- var j = $i(this.DIVAJUDA),
- k = $i("janelaMenTexto"),
- jm = $i("i3geo_janelaMensagens"),
- Dom = YAHOO.util.Dom,
- h = parseInt(Dom.getStyle(jm,"height"),10);
- if(j){
+ /**
+ * Function: mostraJanela
+ *
+ * Mostra um texto dentro da janela de mensagens padrão.
+ *
+ * Parametro:
+ *
+ * texto {String} - texto a ser mostrado
+ */
+ mostraJanela : function(texto) {
+ var j = $i(this.DIVAJUDA), k = $i("janelaMenTexto"), jm = $i("i3geo_janelaMensagens"), Dom = YAHOO.util.Dom, h = parseInt(
+ Dom.getStyle(
+ jm,
+ "height"),
+ 10);
+ if (j) {
j.innerHTML = texto === "" ? "-" : texto;
- }
- else{
- if(h)
- {Dom.setY("i3geo_janelaMensagens",Dom.getY(jm) + h);}
- if(k)
- {k.innerHTML = texto;}
- if(this.TRANSICAOSUAVE){
- texto !== "" ? Dom.setStyle(jm,"opacity","1") : Dom.setStyle(jm,"opacity",(this.OPACIDADE / 100));
+ } else {
+ if (h) {
+ Dom.setY(
+ "i3geo_janelaMensagens",
+ Dom.getY(jm)
+ + h);
+ }
+ if (k) {
+ k.innerHTML = texto;
+ }
+ if (this.TRANSICAOSUAVE) {
+ texto !== "" ? Dom.setStyle(
+ jm,
+ "opacity",
+ "1") : Dom.setStyle(
+ jm,
+ "opacity",
+ (this.OPACIDADE / 100));
+ }
+ h = parseInt(
+ Dom.getStyle(
+ jm,
+ "height"),
+ 10);
+ if (h) {
+ Dom.setY(
+ jm,
+ Dom.getY(jm)
+ - h);
}
- h = parseInt(Dom.getStyle(jm,"height"),10);
- if(h)
- {Dom.setY(jm,Dom.getY(jm) - h);}
}
},
- /*
- Function: mostraLetreiro
-
- Preenche o elemento INPUT com a mensagem de texto e faz a movimentação das letras.
-
- O aparecimento das letras é controlado por um temporizador e asmensagens são mostradas apenas duas vezes,
- desde o início do redesenho do mapa.
- */
- mostraLetreiro: function(){
- if(typeof(console) !== 'undefined'){console.info("i3GEO.ajuda.mostraLetreiro()");}
- for (var count=0; count ",
- "i3GEOF.linhaDoTempo",
- false,
- "hd",
- "",
- "",
- "",
- true,
- i3GEO.configura.locaplic+"/imagens/oxygen/16x16/clock.png"
- );
- atualizaLinhaDoTempo = function(){
- var doc = "", ifr = "";
- try{
- ifr = $i("wdocai");
- if (navn){
- if (ifr){
- doc = ifr.contentDocument;
- }
+ heatmap : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.heatmap()",
+ "heatmap",
+ "heatmap");
+ },
+ /**
+ * Function: saiku
+ *
+ * Ferramenta SAIKU
+ */
+ saiku : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.saiku()",
+ "saiku",
+ "saiku");
+ },
+ /**
+ *
+ * Ferramenta graficointerativo versao flash
+ */
+ graficoInterativo : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.graficoInterativo()",
+ "graficointerativo",
+ "graficointerativo");
+ },
+ /**
+ * Function: graficoInterativo1
+ *
+ * Ferramenta gráfico interativo
+ */
+ graficoInterativo1 : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.graficoInterativo1()",
+ "graficointerativo1",
+ "graficointerativo1");
+ },
+ /**
+ * Function: linhaDoTempo
+ *
+ * Ferramenta linha do tempo
+ */
+ linhaDoTempo : function() {
+ i3GEO.janela.cria(
+ "450px",
+ "350px",
+ i3GEO.configura.locaplic
+ + "/ferramentas/linhadotempo/index.php",
+ "",
+ "",
+ "Linha do tempo ",
+ "i3GEOF.linhaDoTempo",
+ false,
+ "hd",
+ "",
+ "",
+ "",
+ true,
+ i3GEO.configura.locaplic
+ + "/imagens/oxygen/16x16/clock.png");
+ 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()");
}
- 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");
- },
- /*
- Function: gradePontos
-
- Abre a janela de dialogo da ferramenta gradepontos
- */
- 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");
- },
- /*
- Function: gradeHex
-
- Abre a janela de dialogo da ferramenta gradehex
- */
- 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");
- },
- /*
- 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");
- },
- /*
- Function: pontoempoligono
-
- Abre a janela de dialogo da ferramenta 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");
- },
- /*
- Function: nptPol
-
- Abre a janela de dialogo da ferramenta 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");
- },
- /*
- Function: distanciaptpt
-
- Abre a janela de dialogo da ferramenta 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");
- },
- /*
- Function: dissolve
-
- Abre a janela de dialogo da ferramenta 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");
+ doc.getElementById("tl") ? window.parent.wdocai.carregaDados() : i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()");
+ } catch (e) {
+ i3GEO.eventos.NAVEGAMAPA.remove("atualizaLinhaDoTempo()");
+ }
+ };
+ 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%";
},
/**
- * i3GEO.analise.medeDistancia
- * Ativa e controla a opcao de medicao de distancias.
- * A medida e feita quando o usuario clica no mapa com esta opcao ativa
- * 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.
+ * Function: perfil
+ *
+ * Ferramenta perfil
*/
- medeDistancia:{
- /**
- * Armazena os pontos clicados para realizar os calculos
+ perfil : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.perfil()",
+ "perfil",
+ "perfil");
+ },
+ /**
+ * Function: gradePontos
+ *
+ * Ferramenta grade de pontos
+ */
+ gradePontos : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.gradePontos()",
+ "gradepontos",
+ "gradeDePontos");
+ },
+ /**
+ * Function: gradePol
+ *
+ * Ferramenta grade de polígonos
+ */
+ gradePol : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.gradePol()",
+ "gradepol",
+ "gradeDePoligonos");
+ },
+ /**
+ * Function: gradeHex
+ *
+ * Ferramenta grade de hexágonos
+ */
+ gradeHex : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.gradeHex()",
+ "gradehex",
+ "gradeDeHex");
+ },
+ /**
+ * Function: analisaGeometrias
+ *
+ * Ferramenta de análise de geometrias
+ */
+ analisaGeometrias : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.analisaGeometrias()",
+ "analisageometrias",
+ "analisaGeometrias");
+ },
+ /**
+ * Function: pontosdistri
+ *
+ * Ferramenta de cálculo de distribuição de pontos
+ */
+ pontosdistri : function() {
+ i3GEO.parametros.r === "nao" ? i3GEO.janela.tempoMsg($trad("x22")) : i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.pontosdistri()",
+ "pontosdistri",
+ "pontosDistri");
+ },
+ /**
+ * Function: pontoempoligono
+ *
+ * Ferramenta ponto em polígono
+ */
+ pontoempoligono : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.pontoempoligono()",
+ "pontoempoligono",
+ "pontoEmPoligono");
+ },
+ /**
+ * Function: centromassa
+ *
+ * Ferramenta centro médio
+ */
+ centromassa : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.centromassa()",
+ "centromassa",
+ "centromassa");
+ },
+ /**
+ * Function: nptPol
+ *
+ * Ferramenta número de pontos em polígono
+ */
+ nptPol : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.nptPol()",
+ "nptpol",
+ "nptpol");
+ },
+ /**
+ * Function: buffer
+ *
+ * Ferramenta buffer
+ */
+ buffer : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.buffer()",
+ "buffer",
+ "buffer");
+ },
+ /**
+ * Function: distanciaptpt
+ *
+ * Ferramenta distância entre pontos
+ */
+ distanciaptpt : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.distanciaptpt()",
+ "distanciaptpt",
+ "distanciaptpt");
+ },
+ /**
+ * Function: centroide
+ *
+ * Ferramenta centróide
+ */
+ centroide : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.centroide()",
+ "centroide",
+ "centroide");
+ },
+ /**
+ * Function: dissolve
+ *
+ * Ferramenta dissolve bordas comuns
+ */
+ dissolve : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.dissolve()",
+ "dissolve",
+ "dissolve");
+ },
+ /**
+ * Function: agrupaElementos
+ *
+ * Ferramenta agrupa elementos
+ */
+ agrupaElementos : function() {
+ i3GEO.util.dialogoFerramenta(
+ "i3GEO.analise.dialogo.agrupaElementos()",
+ "agrupaelementos",
+ "agrupaElementos");
+ }
+ },
+ /***************************************************************************
+ * Class: medeDistancia
+ *
+ * Ativa e controla a opção de medição de
+ * distâncias. A medida é feita quando o usuário clica no mapa com esta
+ * opção ativa. Quando o botão e acionado, abre-se a janela que mostra o
+ * resultado da medida, o ícone que segue o mouse é alterado. Para mostrar o
+ * resultado do cálculo, é incluido um div específico.
+ */
+ medeDistancia : {
+ /***********************************************************************
+ * Armazena os pontos clicados para realizar os calculos
+ */
+ pontos : {},
+ /***********************************************************************
+ * Function: inicia
+ *
+ * Inicia a operação de medição, abrindo a janela de resultados e
+ * criando os componentes necessários. São registrados os eventos de
+ * clique sobre o mapa e fechamento da janela de resultados
+ */
+ inicia : function() {
+ i3GEO.eventos.cliquePerm.desativa();
+ i3GEO.analise.medeDistancia.criaJanela();
+ i3GEO.analise.medeDistancia[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]);
+ //
+ // 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");
+ }
+ }
+ });
+ },
+ /***********************************************************************
+ * Fecha a janela e os elementos graficos criados para a ferramenta de
+ * medicao Chama a funcao de cada interface que complementam o processo
+ * de fechamento da janela
+ */
+ fechaJanela : function() {
+ var janela;
+ i3GEO.eventos.cliquePerm.ativa();
+ janela = YAHOO.i3GEO.janela.manager.find("mostradistancia");
+ if (janela) {
+ YAHOO.i3GEO.janela.manager.remove(janela);
+ janela.destroy();
+ }
+ i3GEO.barraDeBotoes.ativaIcone("pointer");
+ i3GEO.analise.medeDistancia[i3GEO.Interface["ATUAL"]].fechaJanela();
+ },
+ /***********************************************************************
+ * Funcoes especificas da interface openlayers
+ */
+ openlayers : {
+ /*******************************************************************
+ * Inicializa o processo Cria a variavel para guardar os pontos
+ * Executa a funcao de inicializacao do desenho, que cria o layer
+ * para receber os graficos
*/
- pontos: {},
- /**
- * 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() {
+ var linha, estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], controle = i3geoOL.getControlsBy(
+ "id",
+ "i3GeoMedeDistancia");
+ i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia();
+ i3GEO.analise.medeDistancia.pontos = {
+ xpt : [],
+ ypt : [],
+ dist : []
+ };
+ if (controle.length === 0) {
+ linha = new OpenLayers.Control.DrawFeature(
+ i3GEO.desenho.layergrafico,
+ OpenLayers.Handler.Path,
+ {
+ autoActivate : true,
+ id : "i3GeoMedeDistancia",
+ type : OpenLayers.Control.TYPE_TOOL,
+ callbacks : {
+ done : function(feature) {
+ var f = new OpenLayers.Feature.Vector(
+ feature,
+ {
+ origem : "medeDistancia"
+ },
+ {
+ graphicName : "square",
+ pointRadius : 10,
+ graphicOpacity : 1,
+ strokeWidth : estilo.linewidth,
+ strokeColor : estilo.linecolor
+ });
+ i3GEO.desenho.layergrafico.addFeatures([
+ f
+ ]);
+ if (i3GEO.Interface) {
+ i3GEO.Interface.openlayers.sobeLayersGraficos();
+ }
+ i3GEO.analise.medeDistancia.openlayers.mostraParcial(
+ 0,
+ 0,
+ 0);
+ i3GEO.analise.medeDistancia.openlayers.inicia();
+ },
+ modify : function(point) {
+ var n, x1, y1, x2, y2, trecho, parcial, direcao;
+ n = i3GEO.analise.medeDistancia.pontos.ypt.length;
+ if (n > 0) {
+ x1 = i3GEO.analise.medeDistancia.pontos.xpt[n - 1];
+ y1 = i3GEO.analise.medeDistancia.pontos.ypt[n - 1];
+ x2 = point.x;
+ y2 = point.y;
+ // projeta
+ if (i3GEO.Interface.openlayers.googleLike) {
+ temp = i3GEO.util.extOSM2Geo(x1
+ + " "
+ + y1
+ + " "
+ + x2
+ + " "
+ + y2);
+ temp = temp.split(" ");
+ x1 = temp[0];
+ y1 = temp[1];
+ x2 = temp[2];
+ y2 = temp[3];
+ }
+ trecho = i3GEO.calculo.distancia(
+ x1,
+ y1,
+ x2,
+ y2);
+ parcial = i3GEO.analise.medeDistancia.openlayers.somaDist();
+ direcao = i3GEO.calculo.direcao(
+ x1,
+ y1,
+ x2,
+ y2);
+ direcao = i3GEO.calculo.dd2dms(
+ direcao,
+ direcao);
+ direcao = direcao[0];
+ i3GEO.analise.medeDistancia.openlayers.mostraParcial(
+ trecho,
+ parcial,
+ direcao);
+ }
+ },
+ point : function(point) {
+ var n, x1, y1, x2, y2, trecho, temp, circ, label, raio, pontoRaio,
+ // registra os pontos e calcula a distancia
+ total = 0;
+ i3GEO.analise.medeDistancia.pontos.xpt.push(point.x);
+ i3GEO.analise.medeDistancia.pontos.ypt.push(point.y);
+ n = i3GEO.analise.medeDistancia.pontos.ypt.length;
+ if (n > 1) {
+ x1 = i3GEO.analise.medeDistancia.pontos.xpt[n - 2];
+ y1 = i3GEO.analise.medeDistancia.pontos.ypt[n - 2];
+ x2 = point.x;
+ y2 = point.y;
+ raio = point.distanceTo(new OpenLayers.Geometry.Point(
+ x1,
+ y1));
+ pontoRaio = new OpenLayers.Geometry.Point(
+ x1,
+ y1);
+ // projeta
+ if (i3GEO.Interface.openlayers.googleLike) {
+ temp = i3GEO.util.extOSM2Geo(x1
+ + " "
+ + y1
+ + " "
+ + x2
+ + " "
+ + y2);
+ temp = temp.split(" ");
+ x1 = temp[0];
+ y1 = temp[1];
+ x2 = temp[2];
+ y2 = temp[3];
+ }
+ trecho = i3GEO.calculo.distancia(
+ x1,
+ y1,
+ x2,
+ y2);
+ i3GEO.analise.medeDistancia.pontos.dist.push(trecho);
+ total = i3GEO.analise.medeDistancia.openlayers.somaDist();
+ i3GEO.analise.medeDistancia.openlayers.mostraTotal(
+ trecho,
+ total);
+ // raio
+ if ($i("pararraios")
+ && $i("pararraios").checked === true) {
+ circ = new OpenLayers.Feature.Vector(
+ OpenLayers.Geometry.Polygon.createRegularPolygon(
+ pontoRaio,
+ raio,
+ 30),
+ {
+ origem : "medeDistanciaExcluir"
+ },
+ {
+ fill : false,
+ strokeColor : estilo.circcolor,
+ strokeWidth : 1
+ });
+ i3GEO.desenho.layergrafico.addFeatures([
+ circ
+ ]);
+ }
+ // desenha ponto
+ if ($i("parartextos")
+ && $i("parartextos").checked === true) {
+ label = new OpenLayers.Feature.Vector(
+ new OpenLayers.Geometry.Point(
+ point.x,
+ point.y),
+ {
+ origem : "medeDistanciaExcluir"
+ },
+ {
+ graphicName : "square",
+ pointRadius : 3,
+ strokeColor : "black",
+ graphicOpacity : 1,
+ strokeWidth : 1,
+ fillColor : "white",
+ label : trecho.toFixed(3),
+ labelAlign : "rb",
+ fontColor : estilo.textcolor,
+ fontSize : 12,
+ fontWeight : "bold"
+ });
+ i3GEO.desenho.layergrafico.addFeatures([
+ label
+ ]);
+ }
+ }
+ }
+ }
+ });
+ i3geoOL.addControl(linha);
+ }
+ },
+ /*******************************************************************
+ * Soma os valores de distancia guardados em pontos.dist
*/
- inicia: function(){
- if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeDistancia.inicia()");}
- i3GEO.eventos.cliquePerm.desativa();
- i3GEO.analise.medeDistancia.criaJanela();
- i3GEO.analise.medeDistancia[i3GEO.Interface["ATUAL"]].inicia();
+ somaDist : function() {
+ var n, i, total = 0;
+ n = i3GEO.analise.medeDistancia.pontos.dist.length;
+ for (i = 0; i < n; i++) {
+ total += i3GEO.analise.medeDistancia.pontos.dist[i];
+ }
+ return total;
},
- /**
- * Cria a janela para mostrar os resultados da medicao
+ /*******************************************************************
+ * Fecha a janela que mostra os dados Pergunta ao usuario se os
+ * graficos devem ser removidos Os graficos sao marcados com o
+ * atributo "origem" Os raios e pontos sao sempre removidos
*/
- 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);
+ fechaJanela : function() {
+ var temp, controle = i3geoOL.getControlsBy(
+ "id",
+ "i3GeoMedeDistancia"), f = i3GEO.desenho.layergrafico.getFeaturesByAttribute(
+ "origem",
+ "medeDistancia");
+ if (controle.length > 0) {
+ controle[0].deactivate();
+ i3geoOL.removeControl(controle[0]);
}
- else{
- i3GEO.util.defineValor("mostradistancia_calculo","innerHTML","");
- janela = YAHOO.i3GEO.janela.manager.find("mostradistancia");
+ if (f
+ && f.length > 0) {
+ temp = window.confirm($trad("x94"));
+ if (temp) {
+ i3GEO.desenho.layergrafico.destroyFeatures(f);
+ }
+ }
+ f = i3GEO.desenho.layergrafico.getFeaturesByAttribute(
+ "origem",
+ "medeDistanciaExcluir");
+ if (f
+ && f.length > 0) {
+ i3GEO.desenho.layergrafico.destroyFeatures(f);
}
- 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");
- }}}
- );
},
- /**
- *Fecha a janela e os elementos graficos criados para a ferramenta de medicao
- *Chama a funcao de cada interface que complementam o processo de fechamento da janela
+ /*******************************************************************
+ * Mostra a totalizacao das linhas ja digitalizadas
*/
- fechaJanela: function(){
- var janela;
- i3GEO.eventos.cliquePerm.ativa();
- janela = YAHOO.i3GEO.janela.manager.find("mostradistancia");
- if(janela){
- YAHOO.i3GEO.janela.manager.remove(janela);
- janela.destroy();
+ mostraTotal : function(trecho, total) {
+ var mostra = $i("mostradistancia_calculo"), texto;
+ if (mostra) {
+ texto = ""
+ + $trad("x96")
+ + ": "
+ + total.toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x96")
+ + ": "
+ + (total * 1000).toFixed(2)
+ + " m"
+ + "
"
+ + $trad("x25")
+ + ": "
+ + i3GEO.calculo.metododistancia;
+ mostra.innerHTML = texto;
}
- i3GEO.barraDeBotoes.ativaIcone("pointer");
- i3GEO.analise.medeDistancia[i3GEO.Interface["ATUAL"]].fechaJanela();
},
- /**
- * Funcoes especificas da interface openlayers
+ /*******************************************************************
+ * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao
+ * do mouse
*/
- openlayers:{
- /**
- * Inicializa o processo
- * Cria a variavel para guardar os pontos
- * Executa a funcao de inicializacao do desenho, que cria o layer para receber os graficos
- */
- inicia: function(){
- var linha,
- estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao],
- controle = i3geoOL.getControlsBy("id","i3GeoMedeDistancia");
- i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia();
- i3GEO.analise.medeDistancia.pontos = {
- xpt: [],
- ypt: [],
- dist: []
- };
- if(controle.length === 0){
- linha = new OpenLayers.Control.DrawFeature(
- i3GEO.desenho.layergrafico,
- OpenLayers.Handler.Path,
- {
- autoActivate: true,
- id: "i3GeoMedeDistancia",
- type: OpenLayers.Control.TYPE_TOOL,
- callbacks:{
- done: function(feature){
- var f = new OpenLayers.Feature.Vector(
- feature,
- {
- origem: "medeDistancia"
- },
- {
- graphicName: "square",
- pointRadius: 10,
- graphicOpacity: 1,
- strokeWidth: estilo.linewidth,
- strokeColor: estilo.linecolor
- }
- );
- i3GEO.desenho.layergrafico.addFeatures([f]);
- if(i3GEO.Interface){
- i3GEO.Interface.openlayers.sobeLayersGraficos();
- }
- i3GEO.analise.medeDistancia.openlayers.mostraParcial(0,0,0);
- i3GEO.analise.medeDistancia.openlayers.inicia();
- },
- modify: function(point){
- var n,x1,y1,x2,y2,trecho,parcial,direcao;
- n = i3GEO.analise.medeDistancia.pontos.ypt.length;
- if(n > 0){
- x1 = i3GEO.analise.medeDistancia.pontos.xpt[n-1];
- y1 = i3GEO.analise.medeDistancia.pontos.ypt[n-1];
- x2 = point.x;
- y2 = point.y;
- //projeta
- if(i3GEO.Interface.openlayers.googleLike){
- temp = i3GEO.util.extOSM2Geo(x1+" "+y1+" "+x2+" "+y2);
- temp = temp.split(" ");
- x1 = temp[0];
- y1 = temp[1];
- x2 = temp[2];
- y2 = temp[3];
- }
- trecho = i3GEO.calculo.distancia(x1,y1,x2,y2);
- parcial = i3GEO.analise.medeDistancia.openlayers.somaDist();
- direcao = i3GEO.calculo.direcao(x1,y1,x2,y2);
- direcao = i3GEO.calculo.dd2dms(direcao,direcao);
- direcao = direcao[0];
- i3GEO.analise.medeDistancia.openlayers.mostraParcial(trecho,parcial,direcao);
- }
- },
- point: function(point){
- var n,x1,y1,x2,y2,trecho,temp,circ,label,raio,pontoRaio,
- //registra os pontos e calcula a distancia
- total = 0;
- i3GEO.analise.medeDistancia.pontos.xpt.push(point.x);
- i3GEO.analise.medeDistancia.pontos.ypt.push(point.y);
- n = i3GEO.analise.medeDistancia.pontos.ypt.length;
- if(n > 1){
- x1 = i3GEO.analise.medeDistancia.pontos.xpt[n-2];
- y1 = i3GEO.analise.medeDistancia.pontos.ypt[n-2];
- x2 = point.x;
- y2 = point.y;
- raio = point.distanceTo(new OpenLayers.Geometry.Point(x1,y1));
- pontoRaio = new OpenLayers.Geometry.Point(x1,y1);
- //projeta
- if(i3GEO.Interface.openlayers.googleLike){
- temp = i3GEO.util.extOSM2Geo(x1+" "+y1+" "+x2+" "+y2);
- temp = temp.split(" ");
- x1 = temp[0];
- y1 = temp[1];
- x2 = temp[2];
- y2 = temp[3];
- }
- trecho = i3GEO.calculo.distancia(x1,y1,x2,y2);
- i3GEO.analise.medeDistancia.pontos.dist.push(trecho);
- total = i3GEO.analise.medeDistancia.openlayers.somaDist();
- i3GEO.analise.medeDistancia.openlayers.mostraTotal(trecho,total);
- //raio
- if($i("pararraios") && $i("pararraios").checked === true ){
- circ = new OpenLayers.Feature.Vector(
- OpenLayers.Geometry.Polygon.createRegularPolygon(
- pontoRaio,
- raio,
- 30
- ),
- {
- origem: "medeDistanciaExcluir"
- },
- {
- fill: false,
- strokeColor: estilo.circcolor,
- strokeWidth: 1
- }
- );
- i3GEO.desenho.layergrafico.addFeatures([circ]);
- }
- //desenha ponto
- if($i("parartextos") && $i("parartextos").checked === true ){
- label = new OpenLayers.Feature.Vector(
- new OpenLayers.Geometry.Point(point.x,point.y),
- {
- origem: "medeDistanciaExcluir"
- },
- {
- graphicName: "square",
- pointRadius: 3,
- strokeColor: "black",
- graphicOpacity: 1,
- strokeWidth: 1,
- fillColor: "white",
- label: trecho.toFixed(3),
- labelAlign: "rb",
- fontColor: estilo.textcolor,
- fontSize: 12,
- fontWeight: "bold"
- }
- );
- i3GEO.desenho.layergrafico.addFeatures([label]);
- }
- }
- }
- }
- }
- );
- i3geoOL.addControl(linha);
- }
- },
- /**
- * Soma os valores de distancia guardados em pontos.dist
- */
- somaDist: function(){
- var n,i,
- total = 0;
- n = i3GEO.analise.medeDistancia.pontos.dist.length;
- for(i=0;i 0){
- controle[0].deactivate();
- i3geoOL.removeControl(controle[0]);
- }
- if(f && f.length > 0){
- temp = window.confirm($trad("x94"));
- if(temp){
- i3GEO.desenho.layergrafico.destroyFeatures(f);
- }
- }
- f = i3GEO.desenho.layergrafico.getFeaturesByAttribute("origem","medeDistanciaExcluir");
- if(f && f.length > 0){
- i3GEO.desenho.layergrafico.destroyFeatures(f);
- }
- },
- /**
- * Mostra a totalizacao das linhas ja digitalizadas
- */
- mostraTotal: function(trecho,total){
- var mostra = $i("mostradistancia_calculo"),
- texto;
- if (mostra){
- texto = ""+$trad("x96")+": "+total.toFixed(3)+" km"+
- "
"+$trad("x96")+": "+(total*1000).toFixed(2)+" m"+
- "
"+$trad("x25")+": "+i3GEO.calculo.metododistancia;
- mostra.innerHTML = texto;
- }
- },
- /**
- * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao do mouse
- */
- mostraParcial: function(trecho,parcial,direcao){
- var mostra = $i("mostradistancia_calculo_movel"),
- texto;
- if (mostra){
- texto = ""+$trad("x95")+": "+trecho.toFixed(3)+" km"+
- "
"+$trad("x97")+": "+(parcial + trecho).toFixed(3)+" km" +
- "
"+$trad("x23")+" (DMS): "+direcao;
- mostra.innerHTML = texto;
- }
+ mostraParcial : function(trecho, parcial, direcao) {
+ var mostra = $i("mostradistancia_calculo_movel"), texto;
+ if (mostra) {
+ texto = ""
+ + $trad("x95")
+ + ": "
+ + trecho.toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x97")
+ + ": "
+ + (parcial + trecho).toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x23")
+ + " (DMS): "
+ + direcao;
+ mostra.innerHTML = texto;
}
- },
- googlemaps:{
- /**
- * Inicializa o processo
- * Cria a variavel para guardar os pontos
- * Executa a funcao de inicializacao do desenho, que cria o layer para receber os graficos
- */
- inicia: function(){
- i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia();
- i3GeoMap.setOptions({disableDoubleClickZoom:true});
- i3GeoMap.setOptions({draggableCursor:'crosshair'});
- var evtdblclick = null,evtclick = null,evtmousemove = null,
- pontos = {
- xpt: [],
- ypt: [],
- dist: [],
- mvcLine: new google.maps.MVCArray(),
- mvcMarkers: new google.maps.MVCArray(),
- line: null,
- polygon: null
- },
- termina = function(){
- google.maps.event.removeListener(evtdblclick);
- google.maps.event.removeListener(evtclick);
- google.maps.event.removeListener(evtmousemove);
- pontos.line.setOptions({clickable: true});
- google.maps.event.addListener(pontos.line, 'click', function(shape) {
- if(shape.setEditable){
+ }
+ },
+ googlemaps : {
+ /*******************************************************************
+ * Inicializa o processo Cria a variavel para guardar os pontos
+ * Executa a funcao de inicializacao do desenho, que cria o layer
+ * para receber os graficos
+ */
+ inicia : function() {
+ i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia();
+ i3GeoMap.setOptions({
+ disableDoubleClickZoom : true
+ });
+ i3GeoMap.setOptions({
+ draggableCursor : 'crosshair'
+ });
+ var evtdblclick = null, evtclick = null, evtmousemove = null, pontos = {
+ xpt : [],
+ ypt : [],
+ dist : [],
+ mvcLine : new google.maps.MVCArray(),
+ mvcMarkers : new google.maps.MVCArray(),
+ line : null,
+ polygon : null
+ }, termina = function() {
+ google.maps.event.removeListener(evtdblclick);
+ google.maps.event.removeListener(evtclick);
+ google.maps.event.removeListener(evtmousemove);
+ pontos.line.setOptions({
+ clickable : true
+ });
+ google.maps.event.addListener(
+ pontos.line,
+ 'click',
+ function(shape) {
+ if (shape.setEditable) {
shape.setEditable(!shape.editable);
}
});
- if(pontos){
- i3GEO.desenho.googlemaps.shapes.push(pontos.mvcLine);
- i3GEO.desenho.googlemaps.shapes.push(pontos.line);
- pontos = null;
- }
- };
- evtclick = google.maps.event.addListener(i3GeoMap, "click", function(evt) {
- var x1,x2,y1,y2,trecho=0,total,n,
- estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao];
- // When the map is clicked, pass the LatLng obect to the measureAdd function
+ if (pontos) {
+ i3GEO.desenho.googlemaps.shapes.push(pontos.mvcLine);
+ i3GEO.desenho.googlemaps.shapes.push(pontos.line);
+ pontos = null;
+ }
+ };
+ evtclick = google.maps.event.addListener(
+ i3GeoMap,
+ "click",
+ function(evt) {
+ var x1, x2, y1, y2, trecho = 0, total, n, estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao];
+ // When the map is clicked, pass the LatLng obect to the
+ // measureAdd function
pontos.mvcLine.push(evt.latLng);
pontos.xpt.push(evt.latLng.lng());
pontos.ypt.push(evt.latLng.lat());
n = pontos.xpt.length;
- //desenha um circulo
+ // desenha um circulo
if (pontos.mvcLine.getLength() > 1) {
- x1 = pontos.xpt[n-2];
- y1 = pontos.ypt[n-2];
+ x1 = pontos.xpt[n - 2];
+ y1 = pontos.ypt[n - 2];
x2 = evt.latLng.lng();
y2 = evt.latLng.lat();
- //raio = google.maps.geometry.spherical.computeDistanceBetween(evt.latLng,new google.maps.LatLng(y1,x1))
- trecho = i3GEO.calculo.distancia(x1,y1,x2,y2);
+ // raio =
+ // google.maps.geometry.spherical.computeDistanceBetween(evt.latLng,new
+ // google.maps.LatLng(y1,x1))
+ trecho = i3GEO.calculo.distancia(
+ x1,
+ y1,
+ x2,
+ y2);
pontos.dist.push(trecho);
total = i3GEO.analise.medeDistancia.googlemaps.somaDist(pontos);
- i3GEO.analise.medeDistancia.googlemaps.mostraTotal(trecho,total);
- if($i("pararraios") && $i("pararraios").checked === true ){
- i3GEO.desenho.googlemaps.shapes.push(
- new google.maps.Circle({
- map: i3GeoMap,
- fillOpacity: 0,
- clickable: false,
- strokeColor: estilo.circcolor,
- strokeOpacity: 1,
- strokeWeight: estilo.linewidth,
- center: new google.maps.LatLng(y1,x1),
- radius: trecho*1000,
- origem: "medeDistanciaExcluir"
- })
- );
+ i3GEO.analise.medeDistancia.googlemaps.mostraTotal(
+ trecho,
+ total);
+ if ($i("pararraios")
+ && $i("pararraios").checked === true) {
+ i3GEO.desenho.googlemaps.shapes.push(new google.maps.Circle(
+ {
+ map : i3GeoMap,
+ fillOpacity : 0,
+ clickable : false,
+ strokeColor : estilo.circcolor,
+ strokeOpacity : 1,
+ strokeWeight : estilo.linewidth,
+ center : new google.maps.LatLng(
+ y1,
+ x1),
+ radius : trecho * 1000,
+ origem : "medeDistanciaExcluir"
+ }));
}
}
- //desenha uma marca no ponto
- if($i("parartextos") && $i("parartextos").checked === true ){
- i3GEO.desenho.googlemaps.shapes.push(
- new google.maps.Marker({
- map: i3GeoMap,
- fillOpacity: 0,
- clickable: false,
- position:evt.latLng,
- icon: {
- path: google.maps.SymbolPath.CIRCLE,
- scale: 2.5,
- strokeColor: "#ffffff",
- title: trecho.toFixed(0)+" km"
- },
- origem: "medeDistanciaExcluir"
- })
- );
+ // desenha uma marca no ponto
+ if ($i("parartextos")
+ && $i("parartextos").checked === true) {
+ i3GEO.desenho.googlemaps.shapes.push(new google.maps.Marker(
+ {
+ map : i3GeoMap,
+ fillOpacity : 0,
+ clickable : false,
+ position : evt.latLng,
+ icon : {
+ path : google.maps.SymbolPath.CIRCLE,
+ scale : 2.5,
+ strokeColor : "#ffffff",
+ title : trecho.toFixed(0)
+ + " km"
+ },
+ origem : "medeDistanciaExcluir"
+ }));
}
- //mais um ponto para criar uma linha movel
+ // mais um ponto para criar uma linha movel
pontos.mvcLine.push(evt.latLng);
});
- evtmousemove = google.maps.event.addListener(i3GeoMap, "mousemove", function(evt) {
- if(!$i("mostradistancia_calculo")){
+ evtmousemove = google.maps.event.addListener(
+ i3GeoMap,
+ "mousemove",
+ function(evt) {
+ if (!$i("mostradistancia_calculo")) {
termina.call();
return;
}
- var x1,y1,x2,y2,direcao,parcial,
- estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao],
- n = pontos.xpt.length;
+ var x1, y1, x2, y2, direcao, parcial, estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], n = pontos.xpt.length;
// If there is more than one vertex on the line
if (pontos.mvcLine.getLength() > 0) {
// If the line hasn't been created yet
if (!pontos.line) {
// Create the line (google.maps.Polyline)
- pontos.line = new google.maps.Polyline({
- map: i3GeoMap,
- clickable: false,
- strokeColor: estilo.linecolor,
- strokeOpacity: 1,
- strokeWeight: estilo.linewidth,
- path:pontos.mvcLine,
- origem: "medeDistancia"
- });
+ pontos.line = new google.maps.Polyline(
+ {
+ map : i3GeoMap,
+ clickable : false,
+ strokeColor : estilo.linecolor,
+ strokeOpacity : 1,
+ strokeWeight : estilo.linewidth,
+ path : pontos.mvcLine,
+ origem : "medeDistancia"
+ });
}
pontos.mvcLine.pop();
pontos.mvcLine.push(evt.latLng);
parcial = i3GEO.analise.medeDistancia.googlemaps.somaDist(pontos);
- x1 = pontos.xpt[n-1];
- y1 = pontos.ypt[n-1];
+ x1 = pontos.xpt[n - 1];
+ y1 = pontos.ypt[n - 1];
x2 = evt.latLng.lng();
y2 = evt.latLng.lat();
- //raio = google.maps.geometry.spherical.computeDistanceBetween(evt.latLng,new google.maps.LatLng(y1,x1))
- trecho = i3GEO.calculo.distancia(x1,y1,x2,y2);
- direcao = i3GEO.calculo.direcao(x1,y1,x2,y2);
- direcao = i3GEO.calculo.dd2dms(direcao,direcao);
+ // raio =
+ // google.maps.geometry.spherical.computeDistanceBetween(evt.latLng,new
+ // google.maps.LatLng(y1,x1))
+ trecho = i3GEO.calculo.distancia(
+ x1,
+ y1,
+ x2,
+ y2);
+ direcao = i3GEO.calculo.direcao(
+ x1,
+ y1,
+ x2,
+ y2);
+ direcao = i3GEO.calculo.dd2dms(
+ direcao,
+ direcao);
direcao = direcao[0];
- i3GEO.analise.medeDistancia.googlemaps.mostraParcial(trecho,parcial,direcao);
+ i3GEO.analise.medeDistancia.googlemaps.mostraParcial(
+ trecho,
+ parcial,
+ direcao);
}
});
- evtdblclick = google.maps.event.addListener(i3GeoMap, "dblclick", function(evt) {
+ evtdblclick = google.maps.event.addListener(
+ i3GeoMap,
+ "dblclick",
+ function(evt) {
termina.call();
});
- },
- /**
- * Soma os valores de distancia guardados em pontos.dist
- */
- somaDist: function(pontos){
- var n,i,
- total = 0;
- n = pontos.dist.length;
- for(i=0;i 0){
- temp = window.confirm($trad("x94"));
- if(temp){
- i3GEO.desenho.googlemaps.destroyFeatures(f);
- }
- }
- f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem","medeDistanciaExcluir");
- if(f && f.length > 0){
- i3GEO.desenho.googlemaps.destroyFeatures(f);
- }
- },
- /**
- * Mostra a totalizacao das linhas ja digitalizadas
- */
- mostraTotal: function(trecho,total){
- var mostra = $i("mostradistancia_calculo"),
- texto;
- if (mostra){
- texto = ""+$trad("x96")+": "+total.toFixed(3)+" km"+
- "
"+$trad("x96")+": "+(total*1000).toFixed(2)+" m"+
- "
"+$trad("x25")+": "+i3GEO.calculo.metododistancia;
- mostra.innerHTML = texto;
- }
- },
- /**
- * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao do mouse
- */
- mostraParcial: function(trecho,parcial,direcao){
- var mostra = $i("mostradistancia_calculo_movel"),
- texto;
- if (mostra){
- texto = ""+$trad("x95")+": "+trecho.toFixed(3)+" km"+
- "
"+$trad("x97")+": "+(parcial + trecho).toFixed(3)+" km" +
- "
"+$trad("x23")+" (DMS): "+direcao;
- mostra.innerHTML = texto;
- }
+ },
+ /*******************************************************************
+ * Soma os valores de distancia guardados em pontos.dist
+ */
+ somaDist : function(pontos) {
+ var n, i, total = 0;
+ n = pontos.dist.length;
+ for (i = 0; i < n; i++) {
+ total += pontos.dist[i];
}
+ return total;
},
- googleearth:{
- pontosdistobj: {
- xpt: [],
- ypt: [],
- dist: [],
- distV: [],
- xtela: [],
- ytela: [],
- ximg: [],
- yimg: [],
- linhas: [],
- linhastemp: []
- },
- inicia: function(){
- if(i3GEO.eventos.MOUSECLIQUE.toString().search("i3GEO.analise.medeDistancia.googleearth.clique()") < 0)
- {i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.googleearth.clique()");}
- if(i3GEO.eventos.MOUSEMOVE.toString().search("i3GEO.analise.medeDistancia.googleearth.movimento()") < 0)
- {i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.googleearth.movimento()");}
- if(i3GEO.eventos.NAVEGAMAPA.toString().search("i3GEO.analise.medeDistancia.fechaJanela()") < 0)
- {i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");}
- },
- clique: function(){
- var pontosdistobj = i3GEO.analise.medeDistancia.googleearth.pontosdistobj,
- n,d,dd;
- 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;
- if (n > 0){
- d = i3GEO.calculo.distancia(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],objposicaocursor.ddx,objposicaocursor.ddy);
- pontosdistobj.dist[n] = d + pontosdistobj.dist[n-1];
- if($i("pararraios") && $i("pararraios").checked === true ){
- dd = Math.sqrt(((Math.pow((pontosdistobj.xpt[n] - pontosdistobj.xpt[n-1]),2)) + (Math.pow((pontosdistobj.ypt[n] - pontosdistobj.ypt[n-1]),2)) ));
- i3GEO.desenho.googleearth.insereCirculo(pontosdistobj.xpt[n],pontosdistobj.ypt[n],dd,"","divGeometriasTemp");
- }
- if($i("parartextos") && $i("parartextos").checked === true ){
- i3GEO.desenho.googleearth.insereMarca(d+" km",objposicaocursor.ddx,objposicaocursor.ddy,"","divGeometriasTemp");
- }
- //cria a linha ligando os dois ultimos pontos
- i3GEO.desenho.googleearth.insereLinha(pontosdistobj.xpt[n-1],pontosdistobj.ypt[n-1],pontosdistobj.xpt[n],pontosdistobj.ypt[n],"","divGeometriasTemp");
- }
- },
- movimento: function(){
- var n,d,r,da,
- pontosdistobj = i3GEO.analise.medeDistancia.googleearth.pontosdistobj,
- calculo = i3GEO.calculo;
- n = pontosdistobj.xpt.length;
- 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 * 1;
- da = d + pontosdistobj.dist[n-1];
- i3GEO.analise.medeDistancia.googleearth.mostraParcial(d,da,r);
- }
- },
- /**
- * Fecha a janela que mostra os dados
- * Pergunta ao usuario se os graficos devem ser removidos
- * Os graficos sao marcados com o atributo "origem"
- * Os raios e pontos sao sempre removidos
- */
- fechaJanela: function(){
+ /*******************************************************************
+ * Fecha a janela que mostra os dados Pergunta ao usuario se os
+ * graficos devem ser removidos Os graficos sao marcados com o
+ * atributo "origem" Os raios e pontos sao sempre removidos
+ */
+ fechaJanela : function() {
+ i3GeoMap.setOptions({
+ disableDoubleClickZoom : false
+ });
+ i3GeoMap.setOptions({
+ draggableCursor : undefined
+ });
+ var f = i3GEO.desenho.googlemaps.getFeaturesByAttribute(
+ "origem",
+ "medeDistancia");
+ if (f
+ && f.length > 0) {
temp = window.confirm($trad("x94"));
- if(temp){
- i3GEO.desenho.googleearth.removePlacemark("divGeometriasTemp");
- }
- i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.googleearth.clique()");
- i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento.googleearth()");
- i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeDistancia.fechaJanela()");
- },
- /**
- * Mostra a totalizacao das linhas ja digitalizadas
- */
- mostraTotal: function(trecho,total){
- var mostra = $i("mostradistancia_calculo"),
- texto;
- if (mostra){
- texto = ""+$trad("x96")+": "+total.toFixed(3)+" km"+
- "
"+$trad("x96")+": "+(total*1000).toFixed(2)+" m"+
- "
"+$trad("x25")+": "+i3GEO.calculo.metododistancia;
- mostra.innerHTML = texto;
- }
- },
- /**
- * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao do mouse
- */
- mostraParcial: function(trecho,parcial,direcao){
- var mostra = $i("mostradistancia_calculo_movel"),
- texto;
- if (mostra){
- texto = ""+$trad("x95")+": "+trecho.toFixed(3)+" km"+
- "
"+$trad("x97")+": "+(parcial + trecho).toFixed(3)+" km" +
- "
"+$trad("x23")+" (DMS): "+direcao;
- mostra.innerHTML = texto;
+ if (temp) {
+ i3GEO.desenho.googlemaps.destroyFeatures(f);
}
}
- }
- },
- /*
- i3GEO.analise.medeArea
-
- Ativa e controla a opcao de medicao de area.
-
- A medida e feita quando o usuario clica no mapa com esta opcao ativa
-
- 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:{
- /**
- * Armazena os pontos clicados para realizar os calculos
- */
- pontos: {},
- /*
- 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
+ f = i3GEO.desenho.googlemaps.getFeaturesByAttribute(
+ "origem",
+ "medeDistanciaExcluir");
+ if (f
+ && f.length > 0) {
+ i3GEO.desenho.googlemaps.destroyFeatures(f);
+ }
+ },
+ /*******************************************************************
+ * Mostra a totalizacao das linhas ja digitalizadas
*/
- inicia: function(){
- if(typeof(console) !== 'undefined'){console.info("i3GEO.analise.medeDistancia.inicia()");}
- i3GEO.eventos.cliquePerm.desativa();
- i3GEO.analise.medeArea.criaJanela();
- i3GEO.analise.medeArea[i3GEO.Interface["ATUAL"]].inicia();
+ mostraTotal : function(trecho, total) {
+ var mostra = $i("mostradistancia_calculo"), texto;
+ if (mostra) {
+ texto = ""
+ + $trad("x96")
+ + ": "
+ + total.toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x96")
+ + ": "
+ + (total * 1000).toFixed(2)
+ + " m"
+ + "
"
+ + $trad("x25")
+ + ": "
+ + i3GEO.calculo.metododistancia;
+ mostra.innerHTML = texto;
+ }
},
- /*
- Cria a janela para mostrar os resultados da medicao
+ /*******************************************************************
+ * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao
+ * do mouse
*/
- 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);
+ mostraParcial : function(trecho, parcial, direcao) {
+ var mostra = $i("mostradistancia_calculo_movel"), texto;
+ if (mostra) {
+ texto = ""
+ + $trad("x95")
+ + ": "
+ + trecho.toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x97")
+ + ": "
+ + (parcial + trecho).toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x23")
+ + " (DMS): "
+ + direcao;
+ mostra.innerHTML = texto;
}
- else{
- janela = YAHOO.i3GEO.janela.manager.find("mostraarea");
+ }
+ },
+ googleearth : {
+ pontosdistobj : {
+ xpt : [],
+ ypt : [],
+ dist : [],
+ distV : [],
+ xtela : [],
+ ytela : [],
+ ximg : [],
+ yimg : [],
+ linhas : [],
+ linhastemp : []
+ },
+ inicia : function() {
+ if (i3GEO.eventos.MOUSECLIQUE.toString().search(
+ "i3GEO.analise.medeDistancia.googleearth.clique()") < 0) {
+ i3GEO.eventos.MOUSECLIQUE.push("i3GEO.analise.medeDistancia.googleearth.clique()");
+ }
+ if (i3GEO.eventos.MOUSEMOVE.toString().search(
+ "i3GEO.analise.medeDistancia.googleearth.movimento()") < 0) {
+ i3GEO.eventos.MOUSEMOVE.push("i3GEO.analise.medeDistancia.googleearth.movimento()");
+ }
+ if (i3GEO.eventos.NAVEGAMAPA.toString().search(
+ "i3GEO.analise.medeDistancia.fechaJanela()") < 0) {
+ i3GEO.eventos.NAVEGAMAPA.push("i3GEO.analise.medeDistancia.fechaJanela()");
}
- 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
+ clique : function() {
+ var pontosdistobj = i3GEO.analise.medeDistancia.googleearth.pontosdistobj, n, d, dd;
+ 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;
+ if (n > 0) {
+ d = i3GEO.calculo.distancia(
+ pontosdistobj.xpt[n - 1],
+ pontosdistobj.ypt[n - 1],
+ objposicaocursor.ddx,
+ objposicaocursor.ddy);
+ pontosdistobj.dist[n] = d
+ + pontosdistobj.dist[n - 1];
+ if ($i("pararraios")
+ && $i("pararraios").checked === true) {
+ dd = Math.sqrt(((Math.pow(
+ (pontosdistobj.xpt[n] - pontosdistobj.xpt[n - 1]),
+ 2)) + (Math.pow(
+ (pontosdistobj.ypt[n] - pontosdistobj.ypt[n - 1]),
+ 2))));
+ i3GEO.desenho.googleearth.insereCirculo(
+ pontosdistobj.xpt[n],
+ pontosdistobj.ypt[n],
+ dd,
+ "",
+ "divGeometriasTemp");
+ }
+ if ($i("parartextos")
+ && $i("parartextos").checked === true) {
+ i3GEO.desenho.googleearth.insereMarca(
+ d
+ + " km",
+ objposicaocursor.ddx,
+ objposicaocursor.ddy,
+ "",
+ "divGeometriasTemp");
+ }
+ // cria a linha ligando os dois ultimos pontos
+ i3GEO.desenho.googleearth.insereLinha(
+ pontosdistobj.xpt[n - 1],
+ pontosdistobj.ypt[n - 1],
+ pontosdistobj.xpt[n],
+ pontosdistobj.ypt[n],
+ "",
+ "divGeometriasTemp");
+ }
+ },
+ movimento : function() {
+ var n, d, r, da, pontosdistobj = i3GEO.analise.medeDistancia.googleearth.pontosdistobj, calculo = i3GEO.calculo;
+ n = pontosdistobj.xpt.length;
+ 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 * 1;
+ da = d
+ + pontosdistobj.dist[n - 1];
+ i3GEO.analise.medeDistancia.googleearth.mostraParcial(
+ d,
+ da,
+ r);
+ }
+ },
+ /*******************************************************************
+ * Fecha a janela que mostra os dados Pergunta ao usuario se os
+ * graficos devem ser removidos Os graficos sao marcados com o
+ * atributo "origem" Os raios e pontos sao sempre removidos
*/
- fechaJanela: function(){
- var janela;
- i3GEO.eventos.cliquePerm.ativa();
- janela = YAHOO.i3GEO.janela.manager.find("mostraarea");
- if(janela){
- YAHOO.i3GEO.janela.manager.remove(janela);
- janela.destroy();
+ fechaJanela : function() {
+ temp = window.confirm($trad("x94"));
+ if (temp) {
+ i3GEO.desenho.googleearth.removePlacemark("divGeometriasTemp");
}
- i3GEO.barraDeBotoes.ativaIcone("pointer");
- i3GEO.analise.medeArea[i3GEO.Interface["ATUAL"]].fechaJanela();
+ i3GEO.eventos.MOUSECLIQUE.remove("i3GEO.analise.medeDistancia.googleearth.clique()");
+ i3GEO.eventos.MOUSEMOVE.remove("i3GEO.analise.medeDistancia.movimento.googleearth()");
+ i3GEO.eventos.NAVEGAMAPA.remove("i3GEO.analise.medeDistancia.fechaJanela()");
},
- /**
- * Funcoes especificas da interface openlayers
+ /*******************************************************************
+ * Mostra a totalizacao das linhas ja digitalizadas
*/
- openlayers:{
- /**
- * Inicializa o processo
- * Cria a variavel para guardar os pontos
- * Executa a funcao de inicializacao do desenho, que cria o layer para receber os graficos
- */
- inicia: function(){
- var poligono,
- estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao],
- controle = i3geoOL.getControlsBy("id","i3GeoMedeArea");
- i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia();
- i3GEO.analise.medeArea.pontos = {
- xpt: [],
- ypt: [],
- dist: []
- };
- if(controle.length === 0){
- poligono = new OpenLayers.Control.DrawFeature(
- i3GEO.desenho.layergrafico,
- OpenLayers.Handler.Polygon,
- {
- autoActivate: true,
- id: "i3GeoMedeArea",
- type: OpenLayers.Control.TYPE_TOOL,
- callbacks:{
- done: function(feature){
- var f = new OpenLayers.Feature.Vector(
- feature,
- {
- origem: "medeArea"
- },
- {
- graphicName: "square",
- pointRadius: 10,
- graphicOpacity: 1,
- strokeWidth: estilo.linewidth,
- strokeColor: estilo.linecolor,
- fillColor: estilo.fillcolor,
- fillOpacity: 0.3
- }
- );
- i3GEO.desenho.layergrafico.addFeatures([f]);
- if(i3GEO.Interface){
- i3GEO.Interface.openlayers.sobeLayersGraficos();
- }
- i3GEO.analise.medeArea.openlayers.mostraParcial(0,0,0,0);
- i3GEO.analise.medeArea.openlayers.inicia();
- },
- modify: function(point,poligono){
- var n,x1,y1,x2,y2,
- trecho = 0,
- per = 0,
- direcao = 0,
- area = 0,
- proj = new OpenLayers.Projection("EPSG:4326");
- n = i3GEO.analise.medeArea.pontos.ypt.length;
- if(n > 1){
- x1 = i3GEO.analise.medeArea.pontos.xpt[n-1];
- y1 = i3GEO.analise.medeArea.pontos.ypt[n-1];
- x2 = point.x;
- y2 = point.y;
- //projeta
- if(i3GEO.Interface.openlayers.googleLike){
- temp = i3GEO.util.extOSM2Geo(x1+" "+y1+" "+x2+" "+y2);
- temp = temp.split(" ");
- x1 = temp[0];
- y1 = temp[1];
- x2 = temp[2];
- y2 = temp[3];
- proj = new OpenLayers.Projection("EPSG:900913");
- }
- trecho = i3GEO.calculo.distancia(x1,y1,x2,y2);
- direcao = i3GEO.calculo.direcao(x1,y1,x2,y2);
- direcao = i3GEO.calculo.dd2dms(direcao,direcao);
- direcao = direcao[0];
- per = i3GEO.analise.medeArea.openlayers.somaDist();
- //soma ate o primeiro ponto
- x1 = i3GEO.analise.medeArea.pontos.xpt[0];
- y1 = i3GEO.analise.medeArea.pontos.ypt[0];
- //projeta
- if(i3GEO.Interface.openlayers.googleLike){
- temp = i3GEO.util.extOSM2Geo(x1+" "+y1);
- temp = temp.split(" ");
- x1 = temp[0];
- y1 = temp[1];
- }
- per += i3GEO.calculo.distancia(x1,y1,x2,y2);
- area = poligono.geometry.getGeodesicArea(proj);
- i3GEO.analise.medeArea.openlayers.mostraParcial(trecho,per,area,direcao);
- }
+ mostraTotal : function(trecho, total) {
+ var mostra = $i("mostradistancia_calculo"), texto;
+ if (mostra) {
+ texto = ""
+ + $trad("x96")
+ + ": "
+ + total.toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x96")
+ + ": "
+ + (total * 1000).toFixed(2)
+ + " m"
+ + "
"
+ + $trad("x25")
+ + ": "
+ + i3GEO.calculo.metododistancia;
+ mostra.innerHTML = texto;
+ }
+ },
+ /*******************************************************************
+ * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao
+ * do mouse
+ */
+ mostraParcial : function(trecho, parcial, direcao) {
+ var mostra = $i("mostradistancia_calculo_movel"), texto;
+ if (mostra) {
+ texto = ""
+ + $trad("x95")
+ + ": "
+ + trecho.toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x97")
+ + ": "
+ + (parcial + trecho).toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x23")
+ + " (DMS): "
+ + direcao;
+ mostra.innerHTML = texto;
+ }
+ }
+ }
+ },
+ /**
+ * Class: medeArea
+ *
+ * Ativa e controla a opão de medição de área.
+ *
+ * A medida é feita quando o usuário clica no mapa com esta opção ativa
+ *
+ * Quando o botão é acionado, abre-se a janela que mostra o resultado da
+ * medida, o ícone que segue o mouse é alterado.
+ *
+ * Para mostrar o resultado do cálculo, é incluido um div específico.
+ */
+ medeArea : {
+ /***********************************************************************
+ * Armazena os pontos clicados para realizar os calculos
+ */
+ pontos : {},
+ /**
+ * Function: inicia
+ *
+ * Inicia a operação de medição, abrindo a janela de resultados e
+ * criando os componentes necessários
+ *
+ * São registrados os eventos de clique sobre o mapa e fechamento da
+ * janela de resultados
+ */
+ inicia : function() {
+ i3GEO.eventos.cliquePerm.desativa();
+ i3GEO.analise.medeArea.criaJanela();
+ i3GEO.analise.medeArea[i3GEO.Interface["ATUAL"]].inicia();
+ },
+ /**
+ * 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]);
+ },
+ /**
+ * Function: fechaJanela
+ *
+ * Fecha a janela e os elementos graficos criados para a ferramenta de
+ * medicao
+ */
+ fechaJanela : function() {
+ var janela;
+ i3GEO.eventos.cliquePerm.ativa();
+ janela = YAHOO.i3GEO.janela.manager.find("mostraarea");
+ if (janela) {
+ YAHOO.i3GEO.janela.manager.remove(janela);
+ janela.destroy();
+ }
+ i3GEO.barraDeBotoes.ativaIcone("pointer");
+ i3GEO.analise.medeArea[i3GEO.Interface["ATUAL"]].fechaJanela();
+ },
+ /***********************************************************************
+ * Funcoes especificas da interface openlayers
+ */
+ openlayers : {
+ /*******************************************************************
+ * Inicializa o processo Cria a variavel para guardar os pontos
+ * Executa a funcao de inicializacao do desenho, que cria o layer
+ * para receber os graficos
+ */
+ inicia : function() {
+ var poligono, estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], controle = i3geoOL.getControlsBy(
+ "id",
+ "i3GeoMedeArea");
+ i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia();
+ i3GEO.analise.medeArea.pontos = {
+ xpt : [],
+ ypt : [],
+ dist : []
+ };
+ if (controle.length === 0) {
+ poligono = new OpenLayers.Control.DrawFeature(
+ i3GEO.desenho.layergrafico,
+ OpenLayers.Handler.Polygon,
+ {
+ autoActivate : true,
+ id : "i3GeoMedeArea",
+ type : OpenLayers.Control.TYPE_TOOL,
+ callbacks : {
+ done : function(feature) {
+ var f = new OpenLayers.Feature.Vector(
+ feature,
+ {
+ origem : "medeArea"
},
- point: function(point,poligono){
- var n,x1,y1,x2,y2,temp,label,
- //registra os pontos e calcula a distancia
- per = 0,
- trecho = 0,
- area = 0,
- proj = new OpenLayers.Projection("EPSG:4326");
- i3GEO.analise.medeArea.pontos.xpt.push(point.x);
- i3GEO.analise.medeArea.pontos.ypt.push(point.y);
- n = i3GEO.analise.medeArea.pontos.ypt.length;
- if(n > 1){
- x1 = i3GEO.analise.medeArea.pontos.xpt[n-2];
- y1 = i3GEO.analise.medeArea.pontos.ypt[n-2];
- x2 = point.x;
- y2 = point.y;
- //projeta
- if(i3GEO.Interface.openlayers.googleLike){
- temp = i3GEO.util.extOSM2Geo(x1+" "+y1+" "+x2+" "+y2);
- temp = temp.split(" ");
- x1 = temp[0];
- y1 = temp[1];
- x2 = temp[2];
- y2 = temp[3];
- proj = new OpenLayers.Projection("EPSG:900913");
- }
- trecho = i3GEO.calculo.distancia(x1,y1,x2,y2);
- i3GEO.analise.medeArea.pontos.dist.push(trecho);
- per = i3GEO.analise.medeArea.openlayers.somaDist();
- //soma ate o primeiro ponto
- x1 = i3GEO.analise.medeArea.pontos.xpt[0];
- y1 = i3GEO.analise.medeArea.pontos.ypt[0];
- //projeta
- if(i3GEO.Interface.openlayers.googleLike){
- temp = i3GEO.util.extOSM2Geo(x1+" "+y1);
- temp = temp.split(" ");
- x1 = temp[0];
- y1 = temp[1];
- }
- per += i3GEO.calculo.distancia(x1,y1,x2,y2);
- //desenha ponto
- //if($i("parartextos") && $i("parartextos").checked === true ){
- label = new OpenLayers.Feature.Vector(
- new OpenLayers.Geometry.Point(point.x,point.y),
- {
- origem: "medeAreaExcluir"
- },
- {
- graphicName: "square",
- pointRadius: 3,
- strokeColor: "black",
- graphicOpacity: 1,
- strokeWidth: 1,
- fillColor: "white",
- label: trecho.toFixed(3),
- labelAlign: "rb",
- fontColor: estilo.textcolor,
- fontSize: 12,
- fontWeight: "bold"
- }
- );
- i3GEO.desenho.layergrafico.addFeatures([label]);
- if(n > 2){
- area = poligono.getGeodesicArea(proj);
- }
- }
- i3GEO.analise.medeArea.openlayers.mostraTotal(per,area);
+ {
+ graphicName : "square",
+ pointRadius : 10,
+ graphicOpacity : 1,
+ strokeWidth : estilo.linewidth,
+ strokeColor : estilo.linecolor,
+ fillColor : estilo.fillcolor,
+ fillOpacity : 0.3
+ });
+ i3GEO.desenho.layergrafico.addFeatures([
+ f
+ ]);
+ if (i3GEO.Interface) {
+ i3GEO.Interface.openlayers.sobeLayersGraficos();
+ }
+ i3GEO.analise.medeArea.openlayers.mostraParcial(
+ 0,
+ 0,
+ 0,
+ 0);
+ i3GEO.analise.medeArea.openlayers.inicia();
+ },
+ modify : function(point, poligono) {
+ var n, x1, y1, x2, y2, trecho = 0, per = 0, direcao = 0, area = 0, proj = new OpenLayers.Projection(
+ "EPSG:4326");
+ n = i3GEO.analise.medeArea.pontos.ypt.length;
+ if (n > 1) {
+ x1 = i3GEO.analise.medeArea.pontos.xpt[n - 1];
+ y1 = i3GEO.analise.medeArea.pontos.ypt[n - 1];
+ x2 = point.x;
+ y2 = point.y;
+ // projeta
+ if (i3GEO.Interface.openlayers.googleLike) {
+ temp = i3GEO.util.extOSM2Geo(x1
+ + " "
+ + y1
+ + " "
+ + x2
+ + " "
+ + y2);
+ temp = temp.split(" ");
+ x1 = temp[0];
+ y1 = temp[1];
+ x2 = temp[2];
+ y2 = temp[3];
+ proj = new OpenLayers.Projection(
+ "EPSG:900913");
+ }
+ trecho = i3GEO.calculo.distancia(
+ x1,
+ y1,
+ x2,
+ y2);
+ direcao = i3GEO.calculo.direcao(
+ x1,
+ y1,
+ x2,
+ y2);
+ direcao = i3GEO.calculo.dd2dms(
+ direcao,
+ direcao);
+ direcao = direcao[0];
+ per = i3GEO.analise.medeArea.openlayers.somaDist();
+ // soma ate o primeiro ponto
+ x1 = i3GEO.analise.medeArea.pontos.xpt[0];
+ y1 = i3GEO.analise.medeArea.pontos.ypt[0];
+ // projeta
+ if (i3GEO.Interface.openlayers.googleLike) {
+ temp = i3GEO.util.extOSM2Geo(x1
+ + " "
+ + y1);
+ temp = temp.split(" ");
+ x1 = temp[0];
+ y1 = temp[1];
+ }
+ per += i3GEO.calculo.distancia(
+ x1,
+ y1,
+ x2,
+ y2);
+ area = poligono.geometry.getGeodesicArea(proj);
+ i3GEO.analise.medeArea.openlayers.mostraParcial(
+ trecho,
+ per,
+ area,
+ direcao);
+ }
+ },
+ point : function(point, poligono) {
+ var n, x1, y1, x2, y2, temp, label,
+ // registra os pontos e calcula a distancia
+ per = 0, trecho = 0, area = 0, proj = new OpenLayers.Projection(
+ "EPSG:4326");
+ i3GEO.analise.medeArea.pontos.xpt.push(point.x);
+ i3GEO.analise.medeArea.pontos.ypt.push(point.y);
+ n = i3GEO.analise.medeArea.pontos.ypt.length;
+ if (n > 1) {
+ x1 = i3GEO.analise.medeArea.pontos.xpt[n - 2];
+ y1 = i3GEO.analise.medeArea.pontos.ypt[n - 2];
+ x2 = point.x;
+ y2 = point.y;
+ // projeta
+ if (i3GEO.Interface.openlayers.googleLike) {
+ temp = i3GEO.util.extOSM2Geo(x1
+ + " "
+ + y1
+ + " "
+ + x2
+ + " "
+ + y2);
+ temp = temp.split(" ");
+ x1 = temp[0];
+ y1 = temp[1];
+ x2 = temp[2];
+ y2 = temp[3];
+ proj = new OpenLayers.Projection(
+ "EPSG:900913");
+ }
+ trecho = i3GEO.calculo.distancia(
+ x1,
+ y1,
+ x2,
+ y2);
+ i3GEO.analise.medeArea.pontos.dist.push(trecho);
+ per = i3GEO.analise.medeArea.openlayers.somaDist();
+ // soma ate o primeiro ponto
+ x1 = i3GEO.analise.medeArea.pontos.xpt[0];
+ y1 = i3GEO.analise.medeArea.pontos.ypt[0];
+ // projeta
+ if (i3GEO.Interface.openlayers.googleLike) {
+ temp = i3GEO.util.extOSM2Geo(x1
+ + " "
+ + y1);
+ temp = temp.split(" ");
+ x1 = temp[0];
+ y1 = temp[1];
+ }
+ per += i3GEO.calculo.distancia(
+ x1,
+ y1,
+ x2,
+ y2);
+ // desenha ponto
+ // if($i("parartextos") &&
+ // $i("parartextos").checked === true ){
+ label = new OpenLayers.Feature.Vector(
+ new OpenLayers.Geometry.Point(
+ point.x,
+ point.y),
+ {
+ origem : "medeAreaExcluir"
+ },
+ {
+ graphicName : "square",
+ pointRadius : 3,
+ strokeColor : "black",
+ graphicOpacity : 1,
+ strokeWidth : 1,
+ fillColor : "white",
+ label : trecho.toFixed(3),
+ labelAlign : "rb",
+ fontColor : estilo.textcolor,
+ fontSize : 12,
+ fontWeight : "bold"
+ });
+ i3GEO.desenho.layergrafico.addFeatures([
+ label
+ ]);
+ if (n > 2) {
+ area = poligono.getGeodesicArea(proj);
}
}
+ i3GEO.analise.medeArea.openlayers.mostraTotal(
+ per,
+ area);
}
- );
- i3geoOL.addControl(poligono);
- }
- },
- /**
- * Soma os valores de distancia guardados em pontos.dist
- */
- somaDist: function(){
- var n,i,
- total = 0;
- n = i3GEO.analise.medeArea.pontos.dist.length;
- for(i=0;i 0){
- controle[0].deactivate();
- i3geoOL.removeControl(controle[0]);
- }
- if(f && f.length > 0){
- temp = window.confirm($trad("x94"));
- if(temp){
- i3GEO.desenho.layergrafico.destroyFeatures(f);
- }
- }
- f = i3GEO.desenho.layergrafico.getFeaturesByAttribute("origem","medeAreaExcluir");
- if(f && f.length > 0){
+ }
+ });
+ i3geoOL.addControl(poligono);
+ }
+ },
+ /*******************************************************************
+ * Soma os valores de distancia guardados em pontos.dist
+ */
+ somaDist : function() {
+ var n, i, total = 0;
+ n = i3GEO.analise.medeArea.pontos.dist.length;
+ for (i = 0; i < n; i++) {
+ total += i3GEO.analise.medeArea.pontos.dist[i];
+ }
+ return total;
+ },
+ /*******************************************************************
+ * Fecha a janela que mostra os dados Pergunta ao usuario se os
+ * graficos devem ser removidos Os graficos sao marcados com o
+ * atributo "origem" Os raios e pontos sao sempre removidos
+ */
+ fechaJanela : function() {
+ var temp, controle = i3geoOL.getControlsBy(
+ "id",
+ "i3GeoMedeArea"), f = i3GEO.desenho.layergrafico.getFeaturesByAttribute(
+ "origem",
+ "medeArea");
+ if (controle.length > 0) {
+ controle[0].deactivate();
+ i3geoOL.removeControl(controle[0]);
+ }
+ if (f
+ && f.length > 0) {
+ temp = window.confirm($trad("x94"));
+ if (temp) {
i3GEO.desenho.layergrafico.destroyFeatures(f);
}
- },
- /**
- * Mostra a totalizacao das linhas ja digitalizadas
- */
- mostraTotal: function(per,area){
- var mostra = $i("mostraarea_calculo"),
- texto;
- if (mostra){
- texto = ""+$trad("d21at")+": "+(area/1000000).toFixed(3)+" km2"+
- "
"+$trad("d21at")+": "+(area/10000).toFixed(2)+" ha"+
- "
"+$trad("x98")+": "+(per).toFixed(2)+" km"+
- "
"+$trad("x25")+": "+i3GEO.calculo.metododistancia;
- mostra.innerHTML = texto;
- }
- },
- /**
- * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao do mouse
- */
- mostraParcial: function(trecho,per,area,direcao){
- var mostra = $i("mostraarea_calculo_parcial"),
- texto;
- if (mostra){
- texto = ""+$trad("d21at")+": "+(area/1000000).toFixed(3)+" km2"+
- "
"+$trad("d21at")+": "+(area/10000).toFixed(2)+" ha"+
- "
"+$trad("x95")+": "+trecho.toFixed(3)+" km"+
- "
"+$trad("x98")+": "+(per).toFixed(3)+" km" +
- "
"+$trad("x23")+" (DMS): "+direcao;
- mostra.innerHTML = texto;
- }
+ }
+ f = i3GEO.desenho.layergrafico.getFeaturesByAttribute(
+ "origem",
+ "medeAreaExcluir");
+ if (f
+ && f.length > 0) {
+ i3GEO.desenho.layergrafico.destroyFeatures(f);
}
},
- googlemaps: {
- /**
- * Inicializa o processo
- * Cria a variavel para guardar os pontos
- * Executa a funcao de inicializacao do desenho, que cria o layer para receber os graficos
- */
- inicia: function(){
- if(!google.maps.geometry){
- alert($trad("x99"));
- return;
- }
- i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia();
- i3GeoMap.setOptions({disableDoubleClickZoom:true});
- i3GeoMap.setOptions({draggableCursor:'crosshair'});
- var evtdblclick = null,
- evtclick = null,
- evtmousemove = null,
- pontos = {
- xpt: [],
- ypt: [],
- dist: [],
- mvcLine: new google.maps.MVCArray(),
- mvcMarkers: new google.maps.MVCArray(),
- line: null,
- polygon: null
- },
- termina = function(){
- google.maps.event.removeListener(evtdblclick);
- google.maps.event.removeListener(evtclick);
- google.maps.event.removeListener(evtmousemove);
- pontos.line.setOptions({clickable: true});
- google.maps.event.addListener(pontos.line, 'click', function(shape) {
- if(shape.setEditable){
+ /*******************************************************************
+ * Mostra a totalizacao das linhas ja digitalizadas
+ */
+ mostraTotal : function(per, area) {
+ var mostra = $i("mostraarea_calculo"), texto;
+ if (mostra) {
+ texto = ""
+ + $trad("d21at")
+ + ": "
+ + (area / 1000000).toFixed(3)
+ + " km2"
+ + "
"
+ + $trad("d21at")
+ + ": "
+ + (area / 10000).toFixed(2)
+ + " ha"
+ + "
"
+ + $trad("x98")
+ + ": "
+ + (per).toFixed(2)
+ + " km"
+ + "
"
+ + $trad("x25")
+ + ": "
+ + i3GEO.calculo.metododistancia;
+ mostra.innerHTML = texto;
+ }
+ },
+ /*******************************************************************
+ * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao
+ * do mouse
+ */
+ mostraParcial : function(trecho, per, area, direcao) {
+ var mostra = $i("mostraarea_calculo_parcial"), texto;
+ if (mostra) {
+ texto = ""
+ + $trad("d21at")
+ + ": "
+ + (area / 1000000).toFixed(3)
+ + " km2"
+ + "
"
+ + $trad("d21at")
+ + ": "
+ + (area / 10000).toFixed(2)
+ + " ha"
+ + "
"
+ + $trad("x95")
+ + ": "
+ + trecho.toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x98")
+ + ": "
+ + (per).toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x23")
+ + " (DMS): "
+ + direcao;
+ mostra.innerHTML = texto;
+ }
+ }
+ },
+ googlemaps : {
+ /*******************************************************************
+ * Inicializa o processo Cria a variavel para guardar os pontos
+ * Executa a funcao de inicializacao do desenho, que cria o layer
+ * para receber os graficos
+ */
+ inicia : function() {
+ if (!google.maps.geometry) {
+ alert($trad("x99"));
+ return;
+ }
+ i3GEO.desenho[i3GEO.Interface["ATUAL"]].inicia();
+ i3GeoMap.setOptions({
+ disableDoubleClickZoom : true
+ });
+ i3GeoMap.setOptions({
+ draggableCursor : 'crosshair'
+ });
+ var evtdblclick = null, evtclick = null, evtmousemove = null, pontos = {
+ xpt : [],
+ ypt : [],
+ dist : [],
+ mvcLine : new google.maps.MVCArray(),
+ mvcMarkers : new google.maps.MVCArray(),
+ line : null,
+ polygon : null
+ }, termina = function() {
+ google.maps.event.removeListener(evtdblclick);
+ google.maps.event.removeListener(evtclick);
+ google.maps.event.removeListener(evtmousemove);
+ pontos.line.setOptions({
+ clickable : true
+ });
+ google.maps.event.addListener(
+ pontos.line,
+ 'click',
+ function(shape) {
+ if (shape.setEditable) {
shape.setEditable(!shape.editable);
}
});
- if(pontos){
- i3GEO.desenho.googlemaps.shapes.push(pontos.mvcLine);
- i3GEO.desenho.googlemaps.shapes.push(pontos.line);
- pontos = null;
- }
- };
- evtclick = google.maps.event.addListener(i3GeoMap, "click", function(evt) {
- var area=0,per;
- // When the map is clicked, pass the LatLng obect to the measureAdd function
+ if (pontos) {
+ i3GEO.desenho.googlemaps.shapes.push(pontos.mvcLine);
+ i3GEO.desenho.googlemaps.shapes.push(pontos.line);
+ pontos = null;
+ }
+ };
+ evtclick = google.maps.event.addListener(
+ i3GeoMap,
+ "click",
+ function(evt) {
+ var area = 0, per;
+ // When the map is clicked, pass the LatLng obect to the
+ // measureAdd function
pontos.mvcLine.push(evt.latLng);
pontos.xpt.push(evt.latLng.lng());
pontos.ypt.push(evt.latLng.lat());
- //desenha um circulo
+ // desenha um circulo
if (pontos.mvcLine.getLength() > 0) {
per = google.maps.geometry.spherical.computeLength(pontos.mvcLine);
area = google.maps.geometry.spherical.computeArea(pontos.mvcLine);
- i3GEO.analise.medeArea.googlemaps.mostraTotal(per,area);
+ i3GEO.analise.medeArea.googlemaps.mostraTotal(
+ per,
+ area);
}
- //desenha uma marca no ponto
- i3GEO.desenho.googlemaps.shapes.push(
- new google.maps.Marker({
- map: i3GeoMap,
- fillOpacity: 0,
- clickable: false,
- position:evt.latLng,
- icon: {
- path: google.maps.SymbolPath.CIRCLE,
- scale: 2.5,
- strokeColor: "#ffffff"
- },
- origem: "medeAreaExcluir"
- })
- );
- //mais um ponto para criar uma linha movel
+ // desenha uma marca no ponto
+ i3GEO.desenho.googlemaps.shapes.push(new google.maps.Marker(
+ {
+ map : i3GeoMap,
+ fillOpacity : 0,
+ clickable : false,
+ position : evt.latLng,
+ icon : {
+ path : google.maps.SymbolPath.CIRCLE,
+ scale : 2.5,
+ strokeColor : "#ffffff"
+ },
+ origem : "medeAreaExcluir"
+ }));
+ // mais um ponto para criar uma linha movel
pontos.mvcLine.push(evt.latLng);
});
- evtmousemove = google.maps.event.addListener(i3GeoMap, "mousemove", function(evt) {
- if(!$i("mostraarea_calculo")){
+ evtmousemove = google.maps.event.addListener(
+ i3GeoMap,
+ "mousemove",
+ function(evt) {
+ if (!$i("mostraarea_calculo")) {
termina.call();
return;
}
- var x1,y1,x2,y2,direcao,per,area,
- estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao],
- n = pontos.xpt.length;
+ var x1, y1, x2, y2, direcao, per, area, estilo = i3GEO.desenho.estilos[i3GEO.desenho.estiloPadrao], n = pontos.xpt.length;
// If there is more than one vertex on the line
if (pontos.mvcLine.getLength() > 0) {
// If the line hasn't been created yet
if (!pontos.line) {
// Create the line (google.maps.Polyline)
- pontos.line = new google.maps.Polygon({
- map: i3GeoMap,
- clickable: false,
- strokeColor: estilo.linecolor,
- strokeOpacity: 1,
- strokeWeight: estilo.linewidth,
- path:pontos.mvcLine,
- origem: "medeArea"
- });
+ pontos.line = new google.maps.Polygon(
+ {
+ map : i3GeoMap,
+ clickable : false,
+ strokeColor : estilo.linecolor,
+ strokeOpacity : 1,
+ strokeWeight : estilo.linewidth,
+ path : pontos.mvcLine,
+ origem : "medeArea"
+ });
}
pontos.mvcLine.pop();
pontos.mvcLine.push(evt.latLng);
per = google.maps.geometry.spherical.computeLength(pontos.mvcLine);
- x1 = pontos.xpt[n-1];
- y1 = pontos.ypt[n-1];
+ x1 = pontos.xpt[n - 1];
+ y1 = pontos.ypt[n - 1];
x2 = evt.latLng.lng();
y2 = evt.latLng.lat();
- trecho = i3GEO.calculo.distancia(x1,y1,x2,y2);
- direcao = i3GEO.calculo.direcao(x1,y1,x2,y2);
- direcao = i3GEO.calculo.dd2dms(direcao,direcao);
+ trecho = i3GEO.calculo.distancia(
+ x1,
+ y1,
+ x2,
+ y2);
+ direcao = i3GEO.calculo.direcao(
+ x1,
+ y1,
+ x2,
+ y2);
+ direcao = i3GEO.calculo.dd2dms(
+ direcao,
+ direcao);
direcao = direcao[0];
area = google.maps.geometry.spherical.computeArea(pontos.mvcLine);
- i3GEO.analise.medeArea.googlemaps.mostraParcial(trecho,per,area,direcao);
+ i3GEO.analise.medeArea.googlemaps.mostraParcial(
+ trecho,
+ per,
+ area,
+ direcao);
}
});
- evtdblclick = google.maps.event.addListener(i3GeoMap, "dblclick", function(evt) {
- pontos.mvcLine.push(new google.maps.LatLng(pontos.ypt[0],pontos.xpt[0]));
- var per = google.maps.geometry.spherical.computeLength(pontos.mvcLine),
- area = google.maps.geometry.spherical.computeArea(pontos.mvcLine);
- i3GEO.analise.medeArea.googlemaps.mostraTotal(per,area);
+ evtdblclick = google.maps.event.addListener(
+ i3GeoMap,
+ "dblclick",
+ function(evt) {
+ pontos.mvcLine.push(new google.maps.LatLng(
+ pontos.ypt[0],
+ pontos.xpt[0]));
+ var per = google.maps.geometry.spherical.computeLength(pontos.mvcLine), area = google.maps.geometry.spherical.computeArea(pontos.mvcLine);
+ i3GEO.analise.medeArea.googlemaps.mostraTotal(
+ per,
+ area);
termina.call();
});
- },
- /**
- * Soma os valores de distancia guardados em pontos.dist
- */
- somaDist: function(pontos){
- var n,i,
- total = 0;
- n = pontos.dist.length;
- for(i=0;i 0){
- temp = window.confirm($trad("x94"));
- if(temp){
- i3GEO.desenho.googlemaps.destroyFeatures(f);
- }
- }
- f = i3GEO.desenho.googlemaps.getFeaturesByAttribute("origem","medeAreaExcluir");
- if(f && f.length > 0){
+ },
+ /***
+ * Soma os valores de distancia guardados em pontos.dist
+ */
+ somaDist : function(pontos) {
+ var n, i, total = 0;
+ n = pontos.dist.length;
+ for (i = 0; i < n; i++) {
+ total += pontos.dist[i];
+ }
+ return total;
+ },
+ /***
+ * Fecha a janela que mostra os dados
+ * Pergunta ao usuario se os graficos devem ser removidos
+ * Os graficos sao marcados com o atributo "origem"
+ * Os raios e pontos sao sempre removidos
+ */
+ fechaJanela : function() {
+ i3GeoMap.setOptions({
+ disableDoubleClickZoom : false
+ });
+ i3GeoMap.setOptions({
+ draggableCursor : undefined
+ });
+ var f = i3GEO.desenho.googlemaps.getFeaturesByAttribute(
+ "origem",
+ "medeArea");
+ if (f
+ && f.length > 0) {
+ temp = window.confirm($trad("x94"));
+ if (temp) {
i3GEO.desenho.googlemaps.destroyFeatures(f);
}
- },
- /**
- * Mostra a totalizacao das linhas ja digitalizadas
- */
- mostraTotal: function(per,area){
- var mostra = $i("mostraarea_calculo"),
- texto;
- if (mostra){
- texto = ""+$trad("d21at")+": "+(area/1000000).toFixed(3)+" km2"+
- "
"+$trad("d21at")+": "+(area/10000).toFixed(2)+" ha"+
- "
"+$trad("x98")+": "+(per).toFixed(2)+" km"+
- "
"+$trad("x25")+": "+i3GEO.calculo.metododistancia;
- mostra.innerHTML = texto;
- }
- },
- /**
- * Mostra o valor do trecho entre o ultimo ponto clicado e a posicao do mouse
- */
- mostraParcial: function(trecho,per,area,direcao){
- var mostra = $i("mostraarea_calculo_parcial"),
- texto;
- if (mostra){
- texto = ""+$trad("d21at")+": "+(area/1000000).toFixed(3)+" km2"+
- "
"+$trad("d21at")+": "+(area/10000).toFixed(2)+" ha"+
- "
"+$trad("x95")+": "+trecho.toFixed(3)+" km"+
- "
"+$trad("x98")+": "+(per).toFixed(3)+" km" +
- "
"+$trad("x23")+" (DMS): "+direcao;
- mostra.innerHTML = texto;
- }
+ }
+ f = i3GEO.desenho.googlemaps.getFeaturesByAttribute(
+ "origem",
+ "medeAreaExcluir");
+ if (f
+ && f.length > 0) {
+ i3GEO.desenho.googlemaps.destroyFeatures(f);
+ }
+ },
+ /**
+ * Mostra a totalizacao das linhas ja digitalizadas
+ */
+ mostraTotal : function(per, area) {
+ var mostra = $i("mostraarea_calculo"), texto;
+ if (mostra) {
+ texto = ""
+ + $trad("d21at")
+ + ": "
+ + (area / 1000000).toFixed(3)
+ + " km2"
+ + "
"
+ + $trad("d21at")
+ + ": "
+ + (area / 10000).toFixed(2)
+ + " ha"
+ + "
"
+ + $trad("x98")
+ + ": "
+ + (per).toFixed(2)
+ + " km"
+ + "
"
+ + $trad("x25")
+ + ": "
+ + i3GEO.calculo.metododistancia;
+ mostra.innerHTML = texto;
}
},
- googleearth: {
+ /***************************************************************
+ * Mostra o valor do trecho entre o ultimo ponto clicado e a
+ * posicao do mouse
+ */
+ mostraParcial : function(trecho, per, area, direcao) {
+ var mostra = $i("mostraarea_calculo_parcial"), texto;
+ if (mostra) {
+ texto = ""
+ + $trad("d21at")
+ + ": "
+ + (area / 1000000).toFixed(3)
+ + " km2"
+ + "
"
+ + $trad("d21at")
+ + ": "
+ + (area / 10000).toFixed(2)
+ + " ha"
+ + "
"
+ + $trad("x95")
+ + ": "
+ + trecho.toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x98")
+ + ": "
+ + (per).toFixed(3)
+ + " km"
+ + "
"
+ + $trad("x23")
+ + " (DMS): "
+ + direcao;
+ mostra.innerHTML = texto;
+ }
}
- }
+ },
+ googleearth : {}
+ }
};
--
libgit2 0.21.2