From 288ad233defa506f95f783d892f5508716aad97d Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 19 May 2015 04:39:30 +0000 Subject: [PATCH] Adaptação para OL3 da árvore de temas --- js/arvoredetemas.js | 2 +- js/guias.js | 9 ++------- js/interface.js | 24 +++++++++++++++++------- js/mapa.js | 282 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------------------------------------------------------------------------- js/tema.js | 2 +- js/util.js | 9 ++++++--- 6 files changed, 167 insertions(+), 161 deletions(-) diff --git a/js/arvoredetemas.js b/js/arvoredetemas.js index a3afe5f..139620f 100644 --- a/js/arvoredetemas.js +++ b/js/arvoredetemas.js @@ -2624,7 +2624,7 @@ i3GEO.arvoreDeTemas = { console.error(r); } }; - i3GEO.mapa.ativaTema(""); + i3GEO.mapa.ativaTema(); // // pega os temas ativados na arvore de menus // diff --git a/js/guias.js b/js/guias.js index a16846e..6e92455 100755 --- a/js/guias.js +++ b/js/guias.js @@ -112,14 +112,9 @@ i3GEO.guias = click : function() { var ondeArvore; i3GEO.guias.mostra("adiciona"); + ondeArvore = "arvoreAdicionaTema"; if (!$i("arvoreAdicionaTema")) { - try { - ondeArvore = objmapa.guiaMenu + "obj"; - } catch (e) { - ondeArvore = "guia2obj"; - } - } else { - ondeArvore = "arvoreAdicionaTema"; + ondeArvore = "guia2obj"; } // para efeitos de compatibilidade if (document.getElementById("outrasOpcoesAdiciona")) { diff --git a/js/interface.js b/js/interface.js index 39fcb4f..d2fa636 100755 --- a/js/interface.js +++ b/js/interface.js @@ -762,10 +762,11 @@ i3GEO.Interface = redesenha : function() { var openlayers = i3GEO.Interface.openlayers; openlayers.criaLayers(); + //FIXME returns aqui openlayers.ordenaLayers(); - openlayers.recalcPar(); - i3GEO.janela.fechaAguarde(); - openlayers.sobeLayersGraficos(); + //openlayers.recalcPar(); + //i3GEO.janela.fechaAguarde(); + //openlayers.sobeLayersGraficos(); }, /** * Cria o mapa do lado do cliente (navegador) Define o que for necessario para a criacao de @@ -805,16 +806,22 @@ i3GEO.Interface = i3geoOL.getLayersByName = function(nome) { var res = [], layers = this.getLayers(), n = layers.getLength(), i; for (i = 0; i < n; i++) { - if (layers.item(i).name && layers.item(i).name === nome) { + if (layers.item(i).get("name") && layers.item(i).get("name") === nome) { res.push(layers.item(i)); } } return res; }; i3geoOL.addLayers = function(lista) { - var n = lista.length, i; + var n = lista.length, i, lan, l; for (i = 0; i < n; i++) { - this.addLayer(lista[i]); + lan = lista[i].get("name"); + if(lan){ + l = this.getLayersByName(lan); + if(l.length === 0){ + this.addLayer(lista[i]); + } + } } }; i3geoOL.getLayersBy = function(chave, valor) { @@ -1340,11 +1347,14 @@ i3GEO.Interface = if (i3GEO.Interface.openlayers.googleLike === true) { opcoes.projection = "EPSG:3857"; } + //erro aqui - corrigir + /* layer = new OpenLayers.Layer.WMS(camada.name, urllayer, { LAYERS : camada.name, format : camada.wmsformat, transparent : true }, opcoes); + */ } else { // FIXME testar isso @@ -1516,7 +1526,7 @@ i3GEO.Interface = ordenaLayers : function() { var ordem = i3GEO.arvoreDeCamadas.CAMADAS, nordem = ordem.length, layer, layers, i, maiorindice; // maior indice - layers = i3geoOL.layers; + layers = i3geoOL.getLayers(); maiorindice = i3geoOL.getLayerIndex(layers[(layers.length) - 1]); for (i = nordem - 1; i >= 0; i--) { layers = i3geoOL.getLayersByName(ordem[i].name); diff --git a/js/mapa.js b/js/mapa.js index 784cb3d..ac5e3c9 100644 --- a/js/mapa.js +++ b/js/mapa.js @@ -18,22 +18,22 @@ /** * 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 ADEQUACAO 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 = {}; @@ -43,75 +43,75 @@ i3GEO.mapa = { /** * Propriedade: TEMASINICIAISLIGADOS - * + * * Lista indicando quais temas serao adicionados ao mapa na inicializacao - * + * * Esse valor e utilizado para completar a variavel mashuppar utilizada por i3GEO. - * + * * Os temas sao aqueles que aparecem em i3geo/temas - * + * * Tipo: - * + * * {string} */ TEMASINICIAISLIGADOS : "", /** * Propriedade: TEMASINICIAIS - * + * * Lista indicando quais temas serao ligados na inicializacao - * + * * Esse valor e utilizado para completar a variavel mashuppar utilizada por i3GEO. - * + * * Os temas sao aqueles que aparecem em i3geo/temas - * + * * Tipo: - * + * * {string} */ TEMASINICIAIS : "", /** * Propriedade: AUTORESIZE - * + * * Indica se o tamanho do mapa sera ajustado toda vez que o navegador for redimensionado - * + * * Tipo: - * + * * {boolean} - * + * * Default: - * + * * false */ AUTORESIZE : false, /** * Propriedade: RESOLUCAOTIP - * + * * Resolução de busca utilizada no balão de identificação - * + * * Tipo: - * + * * {numeric} - * + * * Default: - * + * * 12 */ RESOLUCAOTIP : 8, /** * Armazena o nome dos objetos geoXml adicionados ao mapa pela API do google maps - * + * * Tipo {Array} */ GEOXML : [], /** * Function: insereDobraPagina - * + * * Insere o icone do tipo "dobra de pagina" que permite alterar o renderizador do mapa - * + * * Parametros: - * + * * {string} - tipo de icone googlemaps|openlayers - * + * * {string} - endereco da imagem que sera utilizada no icone */ insereDobraPagina : function(tipo, imagem) { @@ -157,7 +157,7 @@ i3GEO.mapa = }, /** * Ativa o redimensionamento automatico do mapa sempre que o navegador for redimensionado - * + * * e definido como um evento do elemento window */ ativaAutoResize : function() { @@ -193,11 +193,11 @@ i3GEO.mapa = }, /** * Ajusta o posicionamento do corpo do mapa - * + * * Esse ajuste e necessario na inicializacao, uma vez que o mapa utiliza style.position='absolute' - * + * * Parameters: - * + * * elemento {String} - id do elemento HTML que devera ser ajustado e que contem o mapa */ ajustaPosicao : function(elemento) { @@ -230,32 +230,29 @@ i3GEO.mapa = }, /** * Function: ativaTema - * + * * Altera a variavel i3GEO.temaAtivo e atualiza a interface em funcao do novo tema que for ativado - * + * * O tema anteriormente ativo tem sua cor alterada para a cor normal e o novo tema e destacado com uma cor diferente - * + * * Executa tambem as funcoes armazenadas em i3GEO.eventos.ATIVATEMA - * + * * Parametros: - * + * * {string} - codigo da camada */ ativaTema : function(codigo) { + //if (i3GEO.temaAtivo !== "") { + // i3GEO.util.defineValor("ArvoreTituloTema" + i3GEO.temaAtivo, "style.color", ""); + //} if (codigo) { - if (codigo === "") { - return; - } - if (i3GEO.temaAtivo !== "") { - i3GEO.util.defineValor("ArvoreTituloTema" + i3GEO.temaAtivo, "style.color", ""); - } i3GEO.temaAtivo = codigo; - i3GEO.util.defineValor("ArvoreTituloTema" + codigo, "style.color", "brown"); + //i3GEO.util.defineValor("ArvoreTituloTema" + codigo, "style.color", "brown"); } }, /** * Function: ativaLogo - * + * * Ativa ou desativa a logo marca. */ ativaLogo : function() { @@ -275,9 +272,9 @@ i3GEO.mapa = }, /** * Verifica se ocorreu algum problema na atualizacao do corpo do mapa e inicia o processo de tentativa de recuperacao - * + * * Parametro: - * + * * {objeto} - objeto recebido da funcao PHP de atualizacao do mapa */ verifica : function(retorno) { @@ -313,14 +310,14 @@ i3GEO.mapa = }, /** * Tenta recuperar o mapa caso ocorra algum problema - * + * * O i3Geo mantem sempre uma copia do arquivo mapfile em uso. Essa funcao tenta usar essa copia para restaurar o funcionamento do * mapa */ recupera : { /** * Armazena a quantidade de tentativas de recuperacao que foram feitas - * + * * Tipo {Integer} */ TENTATIVA : 0, @@ -344,17 +341,17 @@ i3GEO.mapa = }, /** * Controla a obtencao da legenda do mapa na forma de uma imagem - * + * * e utilizado principalmente para armazenar as imagens para a funcao de obtencao do historico do mapa */ legendaIMAGEM : { /** * Faz a chamada em AJAX que gera a legenda - * + * * O resultado e processado pela funcao passada como parametro - * + * * Parametro: - * + * * funcao {function} - funcao que recebera o resultado da chamada AJAX. O objeto CPAINT e enviado como parametro. */ obtem : function(funcao) { @@ -363,7 +360,7 @@ i3GEO.mapa = }, /** * Function: compactaLayerGrafico - * + * * Retorna uma string no formato base64 + JSON contendo as geometrias existentes no layer grafico do mapa Essas geometrias podem ser * criadas com o editor vetorial */ @@ -385,7 +382,7 @@ i3GEO.mapa = }, /** * Function: desCompactaLayerGrafico - * + * * Descompacta um layer grafico criado com compactaLayerGrafico */ desCompactaLayerGrafico : function(geometrias) { @@ -405,7 +402,7 @@ i3GEO.mapa = }, /** * Function: restauraGraficos - * + * * Descompacta graficos salvos no mapa atual */ restauraGraficos : function(graficos) { @@ -423,7 +420,7 @@ i3GEO.mapa = }, /** * Function: restauraTabelas - * + * * Descompacta tabelas salvas no mapa atual */ restauraTabelas : function(tabelas) { @@ -448,7 +445,7 @@ i3GEO.mapa = if (cookies) { props = cookies.split("::"); nprops = props.length; - //nao tente remover eval com window[], nao funciona com namespace + // nao tente remover eval com window[], nao funciona com namespace for (i = 0; i < nprops; i++) { try { temp = props[i].split("|"); @@ -480,25 +477,25 @@ i3GEO.mapa = // TODO incluir opcao para escolha do template da legenda /** * Section: i3GEO.mapa.legendaHTML - * + * * Controla a obtencao da legenda do mapa formatada em HTML. - * + * * util para mostrar a legenda na tela em um div qualquer - * + * * Por default, a legenda sera inserida no DIV com id = wlegenda_corpo */ legendaHTML : { /** * Propriedade: incluiBotaoLibera - * + * * Define se na legenda sera incluido o botao para liberar a legenda e inclui-la em uma janela flutuante - * + * * Tipo: - * + * * {boolean} - * + * * Default: - * + * * true */ incluiBotaoLibera : false, @@ -512,18 +509,18 @@ i3GEO.mapa = CAMADASSEMLEGENDA : [], /** * Function: cria - * + * * Cria a legenda HTML - * + * * O elemento HTML definido em ID deve ter style=display:block - * + * * A legenda e incluida no id definido. Se id for igual a "", sera apenas definido o evento de atualizacao, permitindo que seja * criada a janela flutuante, por exemplo: - * + * * i3GEO.mapa.legendaHTML.cria(""); i3GEO.mapa.legendaHTML.libera(); - * + * * Parametros: - * + * * {String} - id do elemento que recebera a legenda */ cria : function(id) { @@ -538,7 +535,7 @@ i3GEO.mapa = }, /** * Function: atualiza - * + * * Atualiza o elemento HTML do mapa utilizado para mostrar a legenda */ atualiza : function() { @@ -653,13 +650,13 @@ i3GEO.mapa = }, /** * Faz a chamada em AJAX que gera a legenda - * + * * O resultado e processado pela funcao passada como parametro - * + * * O template utilizado para gerar a legenda é definido em i3GEO.configura.templateLegenda - * + * * Parametro: - * + * * funcao {function} - funcao que recebera o resultado da chamada AJAX. O objeto CPAINT e enviado como parametro. */ obtem : function(funcao) { @@ -667,9 +664,9 @@ i3GEO.mapa = }, /** * Liga ou desliga um unico tema. Utilizado pela legenda HTML, permitindo que um tema seja processado diretamente na legenda. - * + * * Parametro: - * + * * inputbox {object) - objeto do tipo input checkbox com a propriedade value indicando o codigo do tema que sera processado */ ativaDesativaTema : function(inputbox) { @@ -707,19 +704,19 @@ i3GEO.mapa = }, /** * Function: libera - * + * * Libera a legenda criando uma janela flutuante sobre o mapa - * + * * Parametros: - * + * * {sim|nao} - (opcional) inclui ou nao o checkbox que permitem desligar a camada - * + * * {numeric} - largura da janela - * + * * {numeric} - altura - * + * * {numeric} - posicao desde o topo - * + * * {numeric} - posicao desde a esquerda */ libera : function(ck, largura, altura, topo, esquerda) { @@ -776,7 +773,7 @@ i3GEO.mapa = }, /** * Section: i3GEO.mapa.dialogo - * + * * Abre as telas de dialogo das opcoes de manipulacao do mapa atual */ dialogo : { @@ -787,7 +784,8 @@ i3GEO.mapa = i3GEO.configura.locaplic + "/ferramentas/conectarwms/listalayers.php?servico=" + servico, "", "", - "
"+$trad("a4") + "" + $trad("a4") + + "
", "i3GEO.conectarwms", @@ -800,7 +798,7 @@ i3GEO.mapa = }, /** * Function: mascara - * + * * Abre a janela de diálogo com as ferramenta mascara */ mascara : function() { @@ -813,7 +811,7 @@ i3GEO.mapa = }, /** * Function: ferramentas - * + * * Abre a janela de diálogo com as ferramentas que atuam sobre o mapa */ ferramentas : function() { @@ -826,11 +824,11 @@ i3GEO.mapa = }, /** * Function: html2canvas - * + * * Abre uma janela com a conversão de um objeto HTML em PNG - * + * * Parametros: - * + * * {obj} - objeto dom contendo o html a ser convertido */ html2canvas : function(obj) { @@ -841,13 +839,13 @@ i3GEO.mapa = }, /** * Function: wkt2layer - * + * * Janela de conversao de wkt em layer - * + * * Parametros: - * + * * {string} - (opcional) WKT - * + * * {texto} - (opcional) texto a ser incluido na feicao */ wkt2layer : function(wkt, texto) { @@ -858,11 +856,11 @@ i3GEO.mapa = }, /** * Function: atalhosedicao - * + * * Janela com as principais opcoes de edicao de um layer. Utilizado pelo sistema de administracao - * + * * Parametro: - * + * * {string} - codigo do tema */ atalhosedicao : function(idtema) { @@ -876,7 +874,7 @@ i3GEO.mapa = }, /** * Function: geolocal - * + * * Abre a janela de dialogo da ferramenta de geolocalizacao do usuario */ geolocal : function() { @@ -889,7 +887,7 @@ i3GEO.mapa = }, /** * Function: listaDeMapasBanco - * + * * Lista os mapas cadastrados no sistema de administracao do i3geo */ listaDeMapasBanco : function() { @@ -910,7 +908,7 @@ i3GEO.mapa = }, /** * Function: congelaMapa - * + * * Congela a visão atual do mapa mostrando-o em uma janela flutuante */ congelaMapa : function() { @@ -934,7 +932,7 @@ i3GEO.mapa = }, /** * Function: metaestat - * + * * Abre a janela de dialogo da ferramenta de cartogramas estatisticos METAESTAT */ metaestat : function(largura, altura, topo, esquerda) { @@ -947,7 +945,7 @@ i3GEO.mapa = }, /** * Function: metaestatListaMapas - * + * * Lista os mapas publicados no METAESTAT */ metaestatListaMapas : function() { @@ -960,7 +958,7 @@ i3GEO.mapa = }, /** * Function: preferencias - * + * * Preferencias do usuario */ preferencias : function() { @@ -968,7 +966,7 @@ i3GEO.mapa = }, /** * Function: locregiao - * + * * Abre a janela de dialogo da ferramenta de busca de regiao cadastrada no METAESTAT */ locregiao : function(largura, altura, topo, esquerda) { @@ -979,7 +977,7 @@ i3GEO.mapa = }, /** * Function: filtraregiao - * + * * Abre a janela de dialogo da ferramenta de busca de regioes cadastradas no METAESTAT com opcao de filtrar a regiao escolhida */ filtraregiao : function() { @@ -992,7 +990,7 @@ i3GEO.mapa = }, /** * Function: animacao - * + * * Abre a janela de dialogo da ferramenta que permite animar o mapa atual */ animacao : function() { @@ -1005,7 +1003,7 @@ i3GEO.mapa = }, /** * Function: opacidade - * + * * Abre a janela de dialogo da ferramenta de definicao da transparencia das camadas principais do mapa */ opacidade : function() { @@ -1013,7 +1011,7 @@ i3GEO.mapa = }, /** * Function: telaRemota - * + * * Abre a janela de dialogo da ferramenta de configuracao de uma tela remota */ telaRemota : function() { @@ -1021,7 +1019,7 @@ i3GEO.mapa = }, /** * Function: t3d - * + * * Abre a janela de dialogo da ferramenta de geracao da visualizacao em 3d */ t3d : function() { @@ -1029,7 +1027,7 @@ i3GEO.mapa = }, /** * Function: imprimir - * + * * Abre a janela de dialogo da ferramenta que permite imprimir o mapa atual */ imprimir : function() { @@ -1042,7 +1040,7 @@ i3GEO.mapa = }, /** * Function: mostraExten - * + * * Abre a janela de dialogo da ferramenta que mostra a extensao geografica atual do mapa */ mostraExten : function() { @@ -1055,7 +1053,7 @@ i3GEO.mapa = }, /** * Function: outputformat - * + * * Abre a janela de dialogo da ferramenta outputformat */ outputformat : function() { @@ -1068,7 +1066,7 @@ i3GEO.mapa = }, /** * Function: autoredesenha - * + * * Abre a janela de dialogo da ferramenta opcoes_autoredesenha */ autoredesenha : function() { @@ -1081,7 +1079,7 @@ i3GEO.mapa = }, /** * Function: salvaMapa - * + * * Abre a janela de dialogo da ferramenta salvamapa */ salvaMapa : function() { @@ -1099,7 +1097,7 @@ i3GEO.mapa = }, /** * Function: carregaMapa - * + * * Abre a janela de dialogo da ferramenta carregamapa */ carregaMapa : function() { @@ -1112,7 +1110,7 @@ i3GEO.mapa = }, /** * Function: convertews - * + * * Abre a janela de dialogo da ferramenta convertews */ convertews : function() { @@ -1130,7 +1128,7 @@ i3GEO.mapa = }, /** * Function: convertekml - * + * * Abre a janela de dialogo da ferramenta convertemapakml */ convertekml : function() { @@ -1147,7 +1145,7 @@ i3GEO.mapa = }, /** * Function: queryMap - * + * * Abre a janela de dialogo da ferramenta opcoes_querymap */ queryMap : function() { @@ -1160,7 +1158,7 @@ i3GEO.mapa = }, /** * Function: template - * + * * Abre a janela de dialogo da ferramenta template */ template : function() { @@ -1175,7 +1173,7 @@ i3GEO.mapa = }, /** * Function: tamanho - * + * * Abre a janela de dialogo da ferramenta opcoes_tamanho */ tamanho : function() { @@ -1188,7 +1186,7 @@ i3GEO.mapa = }, /** * Function: tipoimagem - * + * * Abre a janela de dialogo da ferramenta tipoimagem */ tipoimagem : function() { @@ -1201,7 +1199,7 @@ i3GEO.mapa = }, /** * Function: corFundo - * + * * Abre a janela de dialogo da ferramenta opcoes_fundo */ corFundo : function() { @@ -1214,7 +1212,7 @@ i3GEO.mapa = }, /** * Function: opcoesEscala - * + * * Abre a janela de dialogo da ferramenta opcoes_escala */ opcoesEscala : function() { @@ -1227,7 +1225,7 @@ i3GEO.mapa = }, /** * Function: opcoesLegenda - * + * * Abre a janela de dialogo da ferramenta opcoes_legenda */ opcoesLegenda : function() { @@ -1240,7 +1238,7 @@ i3GEO.mapa = }, /** * Function: gradeCoord - * + * * Abre a janela de dialogo da ferramenta gradecoord */ gradeCoord : function() { @@ -1253,7 +1251,7 @@ i3GEO.mapa = }, /** * Function: cliqueTexto - * + * * Abre a janela de dialogo da ferramenta inseretxt */ cliqueTexto : function() { @@ -1266,7 +1264,7 @@ i3GEO.mapa = }, /** * Function: selecao - * + * * Abre a janela de dialogo da ferramenta selecao */ selecao : function() { @@ -1274,7 +1272,7 @@ i3GEO.mapa = }, /** * Function: cliquePonto - * + * * Abre a janela de dialogo da ferramenta inserexy2 */ cliquePonto : function() { @@ -1287,7 +1285,7 @@ i3GEO.mapa = }, /** * Function: cliqueGrafico - * + * * Abre a janela de dialogo da ferramenta inseregrafico */ cliqueGrafico : function() { @@ -1300,17 +1298,17 @@ i3GEO.mapa = }, /** * Function: cliqueIdentificaDefault - * + * * Abre a janela de dialogo da ferramenta identifica - * + * * Veja também i3GEO.configura.tipotip - * + * * Parametros: - * + * * {numerico} - (opcional) coordenada x - * + * * {numerco} - (opcional) coordenada y - * + * */ cliqueIdentificaDefault : function(x, y) { // FIXIT nada elegante @@ -1354,7 +1352,7 @@ i3GEO.mapa = }, /** * Mostra etiquetas no mapa com informacoes sobre os temas com etiquetas ativas - * + * * Essa e a funcao padrao definida em i3GEO.configura */ verificaTipDefault : function(e) { diff --git a/js/tema.js b/js/tema.js index 80f8758..5fa9ca3 100644 --- a/js/tema.js +++ b/js/tema.js @@ -83,7 +83,7 @@ i3GEO.tema = i3GEO.php.excluitema(i3GEO.atualiza, [ tema ]); - i3GEO.mapa.ativaTema(""); + i3GEO.mapa.ativaTema(); i3GEO.temaAtivo = ""; }, /** diff --git a/js/util.js b/js/util.js index 5655664..f8d635a 100755 --- a/js/util.js +++ b/js/util.js @@ -2562,9 +2562,12 @@ i3GEO.util = * {string} - valor que sera aplicado */ defineValor : function(id, prop, valor) { - try { - $i(id)[prop] = valor; - } catch (e) { + var o = $i(id); + if(o){ + try { + $i(id)[prop] = valor; + } catch (e) { + } } }, /** -- libgit2 0.21.2