/* Title: Distância entre pontos Calcula a Distância entre os pontos de um tema e os pontos de outro tema criando uma nova camada. Além da Distância, podem ser escolhidos itens dos temas de origem e de destino que irão ser mantidos na nova camada. Veja: Arquivo: i3geo/ferramentas/distanciaptpt/index.js.php Licenca: 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 ADEQUAÇÃ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(i3GEOF) === 'undefined'){ var i3GEOF = {}; } /* Classe: i3GEOF.distanciaptpt */ i3GEOF.distanciaptpt = { /* Variavel: aguarde Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela. */ aguarde: "", /** * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php */ MUSTACHE : "", /** * Susbtitutos para o template */ mustacheHash : function() { var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.distanciaptpt.dicionario); dicionario["aguarde"] = $trad("o1"); dicionario["locaplic"] = i3GEO.configura.locaplic; return dicionario; }, /* Function: inicia Inicia a ferramenta. É chamado por criaJanelaFlutuante Parametro: iddiv {String} - id do div que receberá o conteudo HTML da ferramenta */ inicia: function(iddiv){ if(i3GEOF.distanciaptpt.MUSTACHE == ""){ $.get(i3GEO.configura.locaplic + "/ferramentas/distanciaptpt/template_mst.html", function(template) { i3GEOF.distanciaptpt.MUSTACHE = template; i3GEOF.distanciaptpt.inicia(iddiv); }); return; } $i(iddiv).innerHTML = i3GEOF.distanciaptpt.html(); i3GEOF.distanciaptpt.t0(); }, /* Function: html Gera o código html para apresentação das opções da ferramenta Retorno: String com o código html */ html:function() { var ins = Mustache.render(i3GEOF.distanciaptpt.MUSTACHE, i3GEOF.distanciaptpt.mustacheHash()); return ins; }, /* Function: iniciaJanelaFlutuante Cria a janela flutuante para controle da ferramenta. */ iniciaJanelaFlutuante: function(){ var minimiza,cabecalho,janela,divid,temp,titulo; if($i("i3GEOF.distanciaptpt")){ return; } //cria a janela flutuante titulo = "" + $trad("u11a") + ""; cabecalho = function(){}; minimiza = function(){ i3GEO.janela.minimiza("i3GEOF.distanciaptpt",200); }; janela = i3GEO.janela.cria( "410px", "240px", "", "", "", titulo, "i3GEOF.distanciaptpt", false, "hd", cabecalho, minimiza, "", false, "", "", "", "", "17" ); divid = janela[2].id; janela[0].setFooter("
"); i3GEOF.distanciaptpt.aguarde = $i("i3GEOF.distanciaptpt_imagemCabecalho").style; i3GEOF.distanciaptpt.inicia(divid); temp = function(){ i3GEO.eventos.removeEventos("ATUALIZAARVORECAMADAS",["i3GEOF.distanciaptpt.t0()"]); }; YAHOO.util.Event.addListener(janela[0].close, "click", temp); i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS",["i3GEOF.distanciaptpt.t0()"]); }, t0: function() { i3GEO.util.proximoAnterior("","i3GEOF.distanciaptpt.t1()","","i3GEOFgradeDePontost0","i3GEOdistanciaptptresultado",true,"i3GEOF.distanciaptpt_rodape"); }, t1: function(){ i3GEO.util.proximoAnterior("i3GEOF.distanciaptpt.t0()","i3GEOF.distanciaptpt.t2()","","i3GEOF.distanciaptpt.t1","i3GEOdistanciaptptresultado",true,"i3GEOF.distanciaptpt_rodape"); i3GEOF.distanciaptpt.comboTemasOrigem(); i3GEOF.distanciaptpt.comboTemasDestino(); }, t2: function(){ i3GEO.util.proximoAnterior("i3GEOF.distanciaptpt.t1()","i3GEOF.distanciaptpt.t3()","","i3GEOF.distanciaptpt.t2","i3GEOdistanciaptptresultado",true,"i3GEOF.distanciaptpt_rodape"); i3GEOF.distanciaptpt.comboItensOrigem(); i3GEOF.distanciaptpt.comboItensDestino(); }, t3: function(){ i3GEO.util.proximoAnterior("i3GEOF.distanciaptpt.t2()","","","i3GEOF.distanciaptpt.t3","i3GEOdistanciaptptresultado",true,"i3GEOF.distanciaptpt_rodape"); }, /* Function: calcula Executa a operação de cálculo das distancias Veja: */ calcula: function(){ if(i3GEOF.distanciaptpt.aguarde.visibility === "visible") {return;} var distancia = $i("i3GEOFdistanciaptptdistancia").value, temaOrigem = $i("i3GEOdistanciaptpttemasComSel").value, temaDestino = $i("i3GEOdistanciaptpttemas").value, fim, p, cp; if ((distancia*1 > 0) && (temaOrigem != "") && (temaDestino != "")){ //i3GEOF.distanciaptpt.aguarde.visibility = "visible"; fim = function(retorno){ if (retorno.data==undefined ) {$i("i3GEOdistanciaptptfim").innerHTML = "

"+$trad('erroTempo',i3GEOF.distanciaptpt.dicionario);} else{ i3GEO.atualiza(); } i3GEOF.distanciaptpt.aguarde.visibility = "hidden"; }; p = i3GEO.configura.locaplic+"/ferramentas/distanciaptpt/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=distanciaptpt&temaorigem="+temaOrigem+"&temadestino="+temaDestino+"&distancia="+distancia+"&itemorigem="+$i("i3GEOFdistanciaptptItemOrigem").value+"&itemdestino="+$i("i3GEOFdistanciaptptItemDestino").value+"&ext="+i3GEO.parametros.mapexten; cp = new cpaint(); cp.set_response_type("JSON"); cp.call(p,"distanciaptpt",fim); } else{ $i("i3GEOdistanciaptptfim").innerHTML = $trad('erroParametro',i3GEOF.distanciaptpt.dicionario); } }, /* Function: comboTemasOrigem Cria um combo com a lista de temas pontuais com elementos selecionados Veja: */ comboTemasOrigem: function(){ i3GEO.util.comboTemas( "i3GEOdistanciaptpttemasComSel", function(retorno){ $i("i3GEOdistanciaptptSelTemasOrigem").innerHTML = retorno.dados; if ($i("i3GEOdistanciaptpttemasComSel")){ $i("i3GEOdistanciaptpttemasComSel").onchange = function(){ i3GEO.mapa.ativaTema($i("i3GEOdistanciaptpttemasComSel").value); }; } if(i3GEO.temaAtivo !== ""){ $i("i3GEOdistanciaptpttemasComSel").value = i3GEO.temaAtivo; } }, "i3GEOdistanciaptptSelTemasOrigem", "", false, "pontosSelecionados", "", false, true, "form-control comboTema" ); }, /* Function: comboTemasDestino Cria um combo com a lista de temas pontuais com elementos destino Veja: */ comboTemasDestino: function(){ i3GEO.util.comboTemas( "i3GEOdistanciaptpttemas", function(retorno){ $i("i3GEOdistanciaptptSelTemasDestino").innerHTML = retorno.dados; if ($i("i3GEOdistanciaptpttemas")){ $i("i3GEOdistanciaptpttemas").onchange = function(){ i3GEO.mapa.ativaTema($i("i3GEOdistanciaptpttemas").value); }; } if(i3GEO.temaAtivo !== ""){ $i("i3GEOdistanciaptpttemas").value = i3GEO.temaAtivo; } }, "i3GEOdistanciaptptSelTemasDestino", "", false, "pontos", "", false, true, "form-control comboTema" ); }, /* Function: comboItensOrigem Cria um combo para escolha de um item do tema de origem Veja: */ comboItensOrigem: function(){ i3GEO.util.comboItens( "i3GEOFdistanciaptptItemOrigem", $i("i3GEOdistanciaptpttemasComSel").value, function(retorno){ $i("i3GEOondeItensTemaOrigem").innerHTML = retorno.dados; $i("i3GEOondeItensTemaOrigem").style.display = "block"; }, "i3GEOondeItensTemaOrigem", "", "", "", "form-control comboTema" ); }, /* Function: comboItensDestino Cria um combo para escolha de um item do tema de destino Veja: */ comboItensDestino: function(){ i3GEO.util.comboItens( "i3GEOFdistanciaptptItemDestino", $i("i3GEOdistanciaptpttemas").value, function(retorno){ $i("i3GEOondeItensTemaDestino").innerHTML = retorno.dados; $i("i3GEOondeItensTemaDestino").style.display = "block"; }, "i3GEOondeItensTemaDestino", "", "", "", "form-control comboTema" ); } };