/*jslint plusplus:false,white:false,undef: false, rhino: true, onevar: true, evil: true */ /* Title: 3d Gera um arquivo no formato WRL conforme a extensão geográfica do mapa atual. A imagem do mapa atual é sobreposta ao modelo 3d. Para obter os valores de Z e compor o modelo 3d, utiliza-se por default o LAYER definido no mapfile i3geo/temasaplic/3dmap O usuário pode escolher um tema existente no mapa atual ao invés do default. A obtenção do valor de Z é feita com base no valor de cor do píxel do LAYER e não no valor real da altimetria. Veja: Arquivo: i3geo/ferramentas/3d/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.t3d Gera um arquivo para visualização em 3d com o mapa atual. */ i3GEOF.t3d = { /* Variavel: aguarde Objeto DOM com a imagem de aguarde existente no cabeçalho da janela. */ aguarde: "", /* Propriedade: dmap Arquivo mapfile que contém o layer que será utilizado para a obtenção dos valores de Z. O arquivo deve ficar armazenado em i3geo/aplicmap Tipo: {string} Default: {3dmap.map} */ dmap: "3dmap.map", /* Para efeitos de compatibilidade antes da versão 4.7 que não tinha dicionário */ criaJanelaFlutuante: function(){ i3GEOF.t3d.iniciaDicionario(); }, /* Function: iniciaDicionario Carrega o dicionário e chama a função que inicia a ferramenta O Javascript é carregado com o id i3GEOF.nomedaferramenta.dicionario_script */ iniciaDicionario: function(){ if(typeof(i3GEOF.t3d.dicionario) === 'undefined'){ i3GEO.util.scriptTag( i3GEO.configura.locaplic+"/ferramentas/3d/dicionario.js", "i3GEOF.t3d.iniciaJanelaFlutuante()", "i3GEOF.t3d.dicionario_script" ); } else{ i3GEOF.t3d.iniciaJanelaFlutuante(); } }, /* Function: inicia Inicia a ferramenta. É chamado por criaJanelaFlutuante. Parametro: iddiv {String} - id do div que receberá o conteudo HTML da ferramenta */ inicia: function(iddiv){ try{ $i(iddiv).innerHTML += i3GEOF.t3d.html(); i3GEOF.t3d.t0(); } catch(erro){i3GEO.janela.tempoMsg(erro);} }, /* 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 = '
'; ins += '
'; ins += '
'; ins += '
'; return ins; }, /* Function: criaJanelaFlutuante Cria a janela flutuante para controle da ferramenta. */ iniciaJanelaFlutuante: function(){ var minimiza,cabecalho,janela,divid,temp,titulo; //cria a janela flutuante titulo = "3d    "; cabecalho = function(){}; minimiza = function(){ i3GEO.janela.minimiza("i3GEOF.t3d"); }; janela = i3GEO.janela.cria( "300px", "220px", "", "", "", titulo, "i3GEOF.t3d", false, "hd", cabecalho, minimiza, "", false ); divid = janela[2].id; janela[0].setFooter("
"); i3GEOF.t3d.aguarde = $i("i3GEOF.t3d_imagemCabecalho").style; i3GEOF.t3d.inicia(divid); temp = function(){ if(i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search("i3GEOF.t3d.t0()") > 0) {i3GEO.eventos.ATUALIZAARVORECAMADAS.remove("i3GEOF.t3d.t0()");} }; YAHOO.util.Event.addListener(janela[0].close, "click", temp); if(i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search("i3GEOF.t3d.t0()") < 0) {i3GEO.eventos.ATUALIZAARVORECAMADAS.push("i3GEOF.t3d.t0()");} }, t0: function() { var ins = "

O modelo 3d do mapa será gerado em WRML. Após o processamento, o arquivo ficará disponível para download."; ins += "

Para ver o arquivo em 3d vc precisará de um software específico."; ins += "

Experimente utilizar o Cortona ou FLUX"; $i("i3GEO3dresultado").innerHTML = ins; i3GEO.util.proximoAnterior("","i3GEOF.t3d.t1()","","i3GEOFgradeDePontost0","i3GEOF.t3d_rodape"); }, t1: function(){ var ins = "

O tempo de processamento pode variar em função do tamanho da imagem do mapa."; ins += "

Para obter um melhor resultado, o mapa é sempre reduzido para 400x400 pixels'."; $i("i3GEO3dresultado").innerHTML = ins; i3GEO.util.proximoAnterior("i3GEOF.t3d.t0()","i3GEOF.t3d.t2()","","i3GEOF.t3d.t1","i3GEOF.t3d_rodape"); }, t2: function(){ var ins = "

Diminuir o exagero vertical em:
"; ins += " x "; ins += "

Escolha o tema (opcional) com os valores de Z (se existir no mapa):
"; ins += "


"; ins += "

"; $i("i3GEO3dresultado").innerHTML = ins; i3GEO.util.proximoAnterior("i3GEOF.t3d.t1()","","","i3GEOF.t3d.t2","i3GEOF.t3d_rodape"); new YAHOO.widget.Button( "i3GEO3dbotao1", {onclick:{fn: i3GEOF.t3d.criar3d}} ); i3GEO.util.comboTemas( "i3GEO3dlistaRaster", function(retorno){ $i("i3GEO3ddest").innerHTML = retorno.dados; if ($i("i3GEO3dlistaRaster")){ $i("i3GEO3ddest").style.display="block"; } }, "i3GEO3ddest", "", false, "raster" ); }, /* Function: criar3d Abre uma nova janela no navegador para criar o arquivo 3d O arquivo é gerado pelo programa ferramentas/3d/3d.php e o resultado é mostrado em uma nova janela no navegador. */ criar3d: function(){ var raster = "", p; if ($i("i3GEO3dlistaRaster")) {raster = $i("i3GEO3dlistaRaster").value;} p = i3GEO.configura.locaplic+"/ferramentas/3d/3d.php?map3d="+i3GEOF.t3d.dmap+"&fz="+$i("i3GEO3dfz").value+"&temaz="+raster+"&ext="+i3GEO.parametros.mapexten; window.open(p); } };