/* Title: Cartogramas estatísticos Arquivo: i3geo/ferramentas/metaestat/index.js 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.metaestat Gerencia os componentes do módulo de geração de cartogramas estatísticos utilizados no mapa interativo. */ i3GEOF.metaestat = { /** * Tipo de interface utilizada para construcao dos parametros * * flutuante - uma janela flutuante sera criada e os componentes da ferramenta serao inseridos nessa janela * * flutuanteSimples -interface qd a medida da variavel ja tiver sido definida. Utilizada ao adicionar uma camada via catalogo de temas * * "" - os componentes serao inseridos em um div qualquer definido em i3GEOF.metaestat.inicia */ INTERFACE: "flutuante", /** * guarda o valor do codigo da ultima variavel escolhida ou passada como parametro na inicializacao */ CODIGO_VARIAVEL: "", /** * guarda o valor do codigo da ultima medidda da variavel escolhida ou passada como parametro na inicializacao */ ID_MEDIDA_VARIAVEL: "", /** * codigo da conexao com o banco de dados que sera utilizada como default * e utilizado em customizacoes da interface, como o geosaude, permitindo acessar as listas de esquemas e tabelas */ CONEXAODEFAULT: 0, /** * Posicao em pixels da janela flutuante com os componentes da ferramenta */ TOP: 50, /** * Posicao em pixels da janela flutuante com os componentes da ferramenta */ LEFT: 100, /** * Largura em pixels da janela flutuante com os componentes da ferramenta */ LARGURA: 270, /** * Altura em pixels da janela flutuante com os componentes da ferramenta */ ALTURA: 250, /** * guarda a lista de camadas que foram adicionadas ao mapa */ CAMADAS: [], /** * guarda os dados das medidas obtidos para a ultima variavel escolhida */ DADOSMEDIDASVARIAVEL: [], /** * ativa o modo de selecao de multiplos valores nos combos de parametros */ MULTIPARAMETROS: false, //para efeitos de compatibilidade com i3GEO.mapa.dialogo criaJanelaFlutuante: function(){ i3GEOF.metaestat.inicia(); }, /** * Inicia a ferramenta * Carrega o dicionario de traducao com i3GEOF.metaestat.comum.iniciaDicionario() que por sua vez inicia a ferramenta com i3GEOF.metaestat.principal.inicia() * @param tipo de interface veja i3GEOF.metaestat.INTERFACE. Para usar o default, utilize "" * @param codigo da variavel que aparecera como selecionada no combo de selecao de variaveis. Default "" * @param codigo da medida da variavel que aparecera como selecionada no combo de selecao de medidas. Default "" */ inicia: function(Interface,codigo_variavel,id_medida_variavel){ if(Interface && Interface != ""){ i3GEOF.metaestat.INTERFACE = Interface; } i3GEOF.metaestat.CODIGO_VARIAVEL = ""; i3GEOF.metaestat.ID_MEDIDA_VARIAVEL = ""; if(codigo_variavel && codigo_variavel != ""){ i3GEOF.metaestat.CODIGO_VARIAVEL = codigo_variavel; } if(id_medida_variavel && id_medida_variavel != ""){ i3GEOF.metaestat.ID_MEDIDA_VARIAVEL = id_medida_variavel; } i3GEOF.metaestat.comum.iniciaDicionario(); }, /** * Funcoes e variaveis que controlam as opcoes de analise (botoes da janela de analise) */ analise: { /** * Objeto que define os botoes da ferramenta * Exemplo: * i3GEOF.metaestat.analise.botoes = [{ titulo:"Focar o mapa em um determinado limite geográfico", onclick:"i3GEO.mapa.dialogo.locregiao()", icone: "imagens/gisicons/open-street-maps.png" }]; */ botoes: [{ titulo:"Focar o mapa em um determinado limite geográfico", onclick:"i3GEO.mapa.dialogo.locregiao()", icone: "imagens/gisicons/open-street-maps.png" },{ titulo: "Mostrar no mapa os limites geográficos cadastrados", onclick: "i3GEOF.metaestat.analise.mostraRegiao()", icone: "imagens/gisicons/open-street-maps-show.png" },{ titulo: "Mostrar apenas os dados de determinado limite geográfico", onclick: "i3GEO.mapa.dialogo.filtraregiao()", icone: "imagens/gisicons/open-street-maps-filtro.png" },{ titulo: "Mostrar apenas os dados de um período de tempo", onclick: "i3GEOF.metaestat.analise.filtraPeriodo.inicia()", icone: "imagens/gisicons/open-street-maps-filtrotime.png" },{ titulo: "Tabela de atributos", onclick: "i3GEO.tema.dialogo.tabela()", icone: "imagens/gisicons/table.png" },{ titulo: "Gráfico interativo", onclick: "i3GEO.analise.dialogo.graficoInterativo1()", icone: "imagens/oxygen/22x22/view_statistics.png" },{ titulo: "Opacidade", onclick: "i3GEO.mapa.dialogo.opacidade()", icone: "imagens/gisicons/layer-opacity.png" },{ titulo: "Animação", onclick: "i3GEOF.metaestat.analise.ativaAnimacao()", icone: "imagens/gisicons/player-forward.png" },{ titulo: "Alterar classificação", onclick: "i3GEOF.metaestat.analise.alteraClasses()", icone: "imagens/gisicons/calculator.png" },{ titulo: "Alterar cores", onclick: "i3GEOF.metaestat.analise.alteraCores()", icone: "imagens/gisicons/24-to-8-bits.png" },{ titulo: $trad("t42"), onclick: "i3GEO.tema.dialogo.cortina()", icone: "imagens/gisicons/mapset.png" },{ titulo: $trad("t49"), onclick: "i3GEOF.metaestat.analise.ativaTme()", icone: "imagens/gisicons/3d-light.png" },{ titulo: "Estatísticas gerais", onclick: "i3GEOF.metaestat.analise.estatistica()", icone: "imagens/gisicons/stats.png" },{ titulo: "Ativa/Desativa contorno dos limites geográficos", onclick: "i3GEOF.metaestat.analise.contorno()", icone: "imagens/gisicons/boundary-remove-add.png" },{ titulo: "Altera a forma de representação gráfica", onclick: "i3GEOF.metaestat.analise.alteraRep()", icone: "imagens/gisicons/shape.png" },{ titulo: "Mapa de calor", onclick: "i3GEOF.metaestat.analise.calor()", icone: "imagens/gisicons/dem.png" },{ titulo: "Congela visão", onclick: "i3GEO.mapa.dialogo.congelaMapa()", icone: "imagens/gisicons/mapset-add.png" },{ titulo: "Mostra os valores como textos no mapa", onclick: "i3GEOF.metaestat.analise.toponimia()", icone: "imagens/gisicons/label.png" },{ titulo: "Junta dados das camadas", onclick: "i3GEOF.metaestat.analise.juntaMedidasVariaveis.inicia()", icone: "imagens/gisicons/layer-group-add.png" } ], /** * Inicia a ferramenta ativando os componentes da interface * Executa as funcoes i3GEOF.metaestat.analise.abreJanela() e i3GEOF.metaestat.analise.comboCamadas() * @param id do div que recebera os componentes HTML da ferramenta */ inicia: function(iddiv){ var ics,n,i; if(!iddiv || !$i(iddiv)){ iddiv = "i3geoCartoAnalise_corpo"; } if(i3GEOF.metaestat.INTERFACE == "flutuante"){ i3GEOF.metaestat.analise.abreJanela(); } $i(iddiv).innerHTML = i3GEOF.metaestat.analise.html(); ics = $i(iddiv).getElementsByTagName("button"); n = ics.length; for(i=0;i
"; } } } else{ ins = retorno.data; } i3GEO.janela.mensagemSimples(ins,"Estatísticas"); }; i3GEO.util.ajaxGet(p,monta); } else{ i3GEO.janela.fechaAguarde("aguardeAnalise"); i3GEO.janela.tempoMsg("Ocorreu algum erro"); } }; if($i("aguardeAnalise_c") && $i("aguardeAnalise_c").style.visibility == "visible"){ return; }; i3GEO.janela.abreAguarde("aguardeAnalise","Aguarde..."); i3GEO.util.ajaxGet(p,temp); }, /** * Abre a ferramenta que permite realizar uma animacao baseada nas camadas existentes no mapa * executa i3GEO.mapa.dialogo.animacao() com a funcao i3GEOF.metaestat.analise.listaCamadasAnimacao() */ ativaAnimacao: function(){ i3GEO.util.dialogoFerramenta("i3GEO.mapa.dialogo.animacao()","animacao","animacao","index.js","i3GEOF.metaestat.analise.listaCamadasAnimacao()"); }, /** * Lista as camadas que podem ser usadas na ferramenta de animacao * Preenche o div com a lista usando i3GEOF.animacao.listaDeCamadas() * Marca os checkbox das camadas que sao oriundas do sistema metaestat e que estao no mapa */ listaCamadasAnimacao: function(){ i3GEOF.animacao.iniciaJanelaFlutuante(); i3GEOF.animacao.listaDeCamadas(); var temp = function(retorno){ var temas = retorno.data, n = temas.length, cs = $i("i3GEOFanimacaoLista").getElementsByTagName("input"), ns = cs.length, i,j; for(i=0;iInício do período:
' + '' + 'Fim do período:
' + '' + 'Nome do parâmetro:
" +
"
Nome do parâmetro:
" +
"
Valor:
" +
"";
};
i3GEO.php.listaValoresParametroMedidaVariavel(id_parametro_medida,temp);
},
adicionaFiltro: function(){
i3GEO.janela.tempoMsg("O filtro de tempo não modifica as camadas que foram criadas considerando-se uma data específica");
var p,pini,pfim,
temp = function(retorno){
i3GEO.janela.fechaAguarde("aguardeAnalise");
i3GEO.Interface.atualizaMapa();
};
i3GEO.janela.AGUARDEMODAL = true;
i3GEO.janela.abreAguarde("aguardeAnalise","Aplicando...");
i3GEO.janela.AGUARDEMODAL = false;
//pega o filtro
pini = i3GEOF.metaestat.analise.filtraPeriodo.pegaParametros("i3GEOF.filtraperiodo.Pi_0");
pfim = i3GEOF.metaestat.analise.filtraPeriodo.pegaParametros("i3GEOF.filtraperiodo.Pf_0");
//
p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?funcao=aplicaFiltroTempo" +
"&pari="+pini[0] +
"&vali="+pini[1] +
"&parf="+pfim[0] +
"&valf="+pfim[1] +
"&tema="+$i("i3GEOF.filtraperiodo.comboCamada").value +
"&g_sid="+i3GEO.configura.sid;
if(pini[0].length == 0 || pini[1].length == 0){
i3GEO.janela.fechaAguarde("aguardeAnalise");
return;
}
i3GEO.util.ajaxGet(p,temp);
},
removeFiltro: function(){
var p,
temp = function(retorno){
i3GEO.janela.fechaAguarde("aguardeAnalise");
i3GEO.Interface.atualizaMapa();
};
i3GEO.janela.AGUARDEMODAL = true;
i3GEO.janela.abreAguarde("aguardeAnalise","Aplicando...");
i3GEO.janela.AGUARDEMODAL = false;
p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?funcao=removeFiltroTempo" +
"&tema="+$i("i3GEOF.filtraperiodo.comboCamada").value +
"&g_sid="+i3GEO.configura.sid;
i3GEO.util.ajaxGet(p,temp);
},
pegaParametros:function(id){
var c = $i(id).getElementsByTagName("select"),
n = c.length,
par = [],
val = [],
i;
if(!c){
return [par,val];
}
for(i=0;i
'+$trad(8,i3GEOF.metaestat.dicionario)+'
' + ""; if(onde){ onde.innerHTML = ins; //i3GEOF.metaestat.classes.botaoAdicionarCamada(); } return ins; }, /** * Monta o combo com as opcoes de tipo de classificacao * Obtem a lista de i3GEO.php.listaClassificacaoMedida() * @retrun HTML */ comboTipoClassificacao: function(){ var onde = $i("i3geoCartoTipoClassificacao"), combo = $i("i3geoCartoComboMedidasVariavel"), temp = function(dados){ var n = dados.length, ins = ''+$trad(9,i3GEOF.metaestat.dicionario)+'
', i; ins += ""; //{"id_classificacao":"1","nome":"Pela media","id_medida_variavel":"1","observacao":""} if(onde){ onde.innerHTML = ins; } return ins; }; if(combo.value != ""){ i3GEOF.metaestat.comum.aguarde(onde); i3GEO.php.listaClassificacaoMedida(combo.value,temp); } else{ onde.innerHTML = ""; } }, comboTipoClassificacaoOnchange: function(){ }, /** * Monta o combo com as opcoes de tipo de regiao * Obtem a lista de i3GEO.php.listaRegioesMedidaVariavel() * @retrun HTML */ comboRegiao: function(id_medida_variavel){ i3GEOF.metaestat.comum.aguarde($i("i3geoCartoRegioesMedidasVariavel")); var onde = $i("i3geoCartoRegioesMedidasVariavel"), combo = $i("i3geoCartoComboMedidasVariavel"), temp = function(dados){ var n = dados.length, ins = ''+$trad(13,i3GEOF.metaestat.dicionario)+'
', i; ins += ""; if(onde){ onde.innerHTML = ins; } return ins; }; if(combo.value != ""){ i3GEOF.metaestat.comum.aguarde(onde); i3GEO.php.listaRegioesMedidaVariavel(combo.value,temp); } } }, /** * Funcoes de uso comum das demais funcoes */ comum:{ /** * Faz a carga do dicionario de traducao e na sequencia inicia a ferramenta com i3GEOF.metaestat.principal.inicia() */ iniciaDicionario: function(){ if(typeof(i3GEOF.metaestat.dicionario) === 'undefined'){ i3GEO.util.scriptTag( i3GEO.configura.locaplic+"/ferramentas/metaestat/dicionario.js", "i3GEOF.metaestat.principal.inicia()", "i3GEOF.metaestat.dicionario_script" ); } else{ i3GEOF.metaestat.principal.inicia(); } }, /** * Aplica ao mapa o status de ligado/desligado de cada camada * O status das camadas e mantido em i3GEOF.metaestat.CAMADAS * Utiliza a funcao i3GEO.arvoreDeCamadas.ligaDesligaTemas */ desligaCamadas: function(){ if(i3GEOF.metaestat.CAMADAS.length > 0){ i3GEO.arvoreDeCamadas.ligaDesligaTemas(i3GEOF.metaestat.CAMADAS.join(","),false); } }, /** * Armazena o tipo de representacao que o usuario escolheu pela ultima vez * O tipo de representacao corresponde ao tipo de geometria que sera utilizada para desenhar os componentes da camada * E definida pelo onchange do combo criado por i3GEOF.metaestat.classes.comboTipoRep(); * Armazena o valor de [value,texto] */ tipoRep: [], /** * Armazena o tipo de regiao que o usuario escolheu pela ultima vez * O tipo de regiao corresponde ao tipo de limite geografico utilizado para desenhar a camada a ser escolhida * E definida pelo onchange do combo criado por i3GEOF.metaestat.classes.comboRegiao(); * Armazena o valor de [value,texto] */ tipoRegiao: [], /** * Armazena o tipo de classificacao que o usuario escolheu pela ultima vez * E definida pelo onchange do combo criado por i3GEOF.metaestat.classes.comboTipoClassificacao(); * A classificacao define os intervalos de classe e simbologia utilizadas pela camada * Armazena o valor de [value,texto] */ tipoClassificacao: [], /** * Adiciona uma nova camada ao mapa conforme as opcoes escolhidas pelo usuario * O usuario deve ter escolhido antes a variavel, medida e demais parametros * Os parametros sao obtidos dos componentes de formulario ou variaveis ja definidas em * funcao das escolhas feitas pelo usuario * Ao executar, primeiro cria um mapfile temporario com i3GEO.php.mapfileMedidaVariavel() e * depois adiciona com i3GEO.php.adtema() * Atualiza o combo da janela de analise com i3GEOF.metaestat.analise.comboCamadas(); */ adicionaCamada: function(){ //function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor=""){ var v = i3GEOF.metaestat.comum.verificaParametros(), temp = function(retorno){ if(i3GEO.arvoreDeCamadas.pegaTema(retorno.layer) == ""){ i3GEOF.metaestat.comum.desligaCamadas(); var atualiza = function(){ i3GEO.atualiza(); i3GEOF.metaestat.CAMADAS.push(retorno.layer); i3GEO.mapa.ativaTema(retorno.layer); if(i3GEO.Interface.ATUAL == "googlemaps"){ //i3GEO.Interface.aplicaOpacidade(0.7); } i3GEOF.metaestat.analise.comboCamadas(); }; i3GEO.php.adtema(atualiza,retorno.mapfile); } }; if(v != true){ i3GEO.janela.tempoMsg("erro: "+v); return; } //e necessario obter os parametros nessa interface if(i3GEOF.metaestat.INTERFACE == "flutuanteSimples"){ i3GEOF.metaestat.classes.aplicar(); } if(i3GEO.Interface.ATUAL === "googlemaps"){ opacidade = 70; } else{ opacidade = ""; } i3GEO.php.mapfileMedidaVariavel( temp, $i("i3geoCartoComboMedidasVariavel").value, i3GEOF.metaestat.comum.defineFiltro(), 0, i3GEOF.metaestat.comum.tipoRep[0], i3GEOF.metaestat.comum.defineTitulo(), i3GEOF.metaestat.comum.tipoClassificacao[0], i3GEOF.metaestat.comum.defineAgruparPor(), i3GEOF.metaestat.comum.tipoRegiao[0], opacidade ); }, /** * Mostra no mapa uma camada escolhida * E usado quando uma nova camada e adicionada ao mapa * Primeiro todas as camadas guardadas em i3GEOF.metaestat.CAMADAS sao desligadas * @param identificador da camada que sera ligada. Correpsonde ao item "name" do mapfile atual do mapa */ ativaCamada: function(camada){ if(i3GEOF.metaestat.CAMADAS.length > 0){ i3GEO.arvoreDeCamadas.ligaDesligaTemas(i3GEOF.metaestat.CAMADAS.join(","),false); i3GEO.arvoreDeCamadas.ligaDesligaTemas(camada,true); i3GEO.mapa.ativaTema(camada); } }, /** * Avalia os parametros escolhidos pelo usuario e define qual sera o titulo da camada escolhida * E usado quando uma camada e adicionada ao mapa * @return string */ defineTitulo: function(){ //se nao tiver parametros, filtro e vazio if(i3GEOF.metaestat.parametros.dados.length == 0 || i3GEOF.metaestat.INTERFACE === "flutuanteSimples"){ return ""; } //deixa vazio para que o titulo seja definido pelo PHP que monta o mapfile if(i3GEOF.metaestat.comum.tipoRep[1] == ""){ return ""; } var i,n,c,titulo="", t=[], dados = i3GEOF.metaestat.parametros.dados; if($i("i3geoCartoComboVariavel") && $i("i3geoCartoComboVariavel").options){ titulo = $i("i3geoCartoComboVariavel").options[$i("i3geoCartoComboVariavel").selectedIndex].label +" - "; } titulo += $i("i3geoCartoComboMedidasVariavel").options[$i("i3geoCartoComboMedidasVariavel").selectedIndex].label +" - "+ i3GEOF.metaestat.comum.tipoRep[1] +" - "+ i3GEOF.metaestat.comum.tipoClassificacao[1] + " - " + i3GEOF.metaestat.comum.tipoRegiao[1]; n = dados.length; for(i=0;i" + " " + " "; i3GEO.util.proximoAnterior("","i3GEOF.metaestat.editor.t1()",ins,"i3GEOF.metaestat.editor.t0","i3GEOFmetaestatEditor"); new YAHOO.widget.Button( "i3GEOFmetaestatEditorBotaot01", {onclick:{fn: function(){window.open(i3GEO.configura.locaplic+"/admin/html/estat_variavel.html");}}} ); new YAHOO.widget.Button( "i3GEOFmetaestatEditorBotaot02", {onclick:{fn: function(){ i3GEO.janela.tempoMsg($trad(15,i3GEOF.metaestat.dicionario1)); window.open(i3GEO.configura.locaplic+"/ferramentas/metaestat/editorlimites.php"); }}} ); new YAHOO.widget.Button( "i3GEOFmetaestatEditorBotaotUp", {onclick:{fn: function(){ i3GEO.janela.tempoMsg($trad(15,i3GEOF.metaestat.dicionario1)); window.open(i3GEO.configura.locaplic+"/admin/html/estat_editor.html"); }}} ); //i3GEOF.metaestat.editor.botaoUpload("i3GEOFmetaestatEditorBotaot03"); }, /** * Opcoes para escolha ou edicao/criacao de uma variavel * Feita a escolha e definida a variavel i3GEOF.metaestat.CODIGO_VARIAVEL * Na sequencia executa i3GEOF.metaestat.editor.t1() */ t1: function(remove,textoSelecionado){ if(remove == true){ //remove o conteudo anteriormente construido i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t1"); } var temp = function(dados){ var ins = "
" + $trad(1,i3GEOF.metaestat.dicionario) + "
" +
"" + i3GEOF.metaestat.principal.comboVariaveis(dados,"i3geoCartoComboVariavelEditor","i3GEOF.metaestat.editor.comboVariaveisOnchange(this)","","nao") + "" +
"
" +
"
";
i3GEO.util.proximoAnterior("i3GEOF.metaestat.editor.t0()","i3GEOF.metaestat.editor.t2()",ins,"i3GEOF.metaestat.editor.t1","i3GEOFmetaestatEditor",true);
new YAHOO.widget.Button(
"i3GEOFmetaestatEditorBotao3",
{onclick:{fn: i3GEOF.metaestat.editor.editaVariavel}}
);
$i("i3GEOFmetaestatEditorBotao3-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px";
new YAHOO.widget.Button(
"i3GEOFmetaestatEditorBotao3a",
{onclick:{fn: i3GEOF.metaestat.editor.criaVariavel}}
);
$i("i3GEOFmetaestatEditorBotao3a-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px";
if(textoSelecionado){
i3GEOF.metaestat.editor.selComboPorTexto("i3geoCartoComboVariavelEditor",textoSelecionado);
i3GEOF.metaestat.CODIGO_VARIAVEL = $i("i3geoCartoComboVariavelEditor").value;
}
};
i3GEO.php.listaVariavel(temp);
},
/**
* Opcoes para escolha ou edicao/criacao de uma medida
* Feita a escolha e definida a variavel i3GEOF.metaestat.ID_MEDIDA_VARIAVEL
* Na sequencia executa i3GEOF.metaestat.editor.t3a()
*/
t2: function(remove,textoSelecionado){
if(remove == true){
//remove o conteudo anteriormente construido
i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t2");
}
if($i("i3geoCartoComboVariavelEditor").value === ""){
i3GEO.janela.tempoMsg($trad(4,i3GEOF.metaestat.dicionario));
i3GEOF.metaestat.editor.t1(false);
}
else{
var temp = function(dados){
var ins = "
" + $trad(2,i3GEOF.metaestat.dicionario) + "
" +
"" + i3GEOF.metaestat.principal.comboMedidasVariavel(dados,"i3geoCartoComboMedidaVariavelEditor","i3GEOF.metaestat.editor.comboMedidaVariavelOnchange(this)","","","nao") + "" +
"
" +
"
";
i3GEO.util.proximoAnterior("i3GEOF.metaestat.editor.t1()","i3GEOF.metaestat.editor.t3a()",ins,"i3GEOF.metaestat.editor.t2","i3GEOFmetaestatEditor",true);
//edita existente
new YAHOO.widget.Button(
"i3GEOFmetaestatEditorBotao4",
{onclick:{fn: i3GEOF.metaestat.editor.editaMedidaVariavel}}
);
$i("i3GEOFmetaestatEditorBotao4-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px";
//cria nova
new YAHOO.widget.Button(
"i3GEOFmetaestatEditorBotao4a",
{onclick:{fn: i3GEOF.metaestat.editor.criaMedidaVariavel}}
);
$i("i3GEOFmetaestatEditorBotao4a-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px";
if(textoSelecionado){
i3GEOF.metaestat.editor.selComboPorTexto("i3geoCartoComboMedidaVariavelEditor",textoSelecionado);
i3GEOF.metaestat.ID_MEDIDA_VARIAVEL = $i("i3geoCartoComboMedidaVariavelEditor").value;
}
},
codigo_variavel = $i("i3geoCartoComboVariavelEditor").value;
if(codigo_variavel == ""){
i3GEO.janela.tempoMsg($trad(4,i3GEOF.metaestat.dicionario));
i3GEOF.metaestat.editor.t1(false);
return;
}
i3GEO.php.listaMedidaVariavel(codigo_variavel,temp);
}
},
/**
* Mostra a opcao de upload
* Ativa o botao de upload com i3GEOF.metaestat.editor.botaoUpload
* Na sequencia executa i3GEOF.metaestat.editor.t3()
*/
t3a: function(remove,textoSelecionado){
if(remove == true){
//remove o conteudo anteriormente construido
i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t3a");
}
if(i3GEOF.metaestat.DADOSMEDIDASVARIAVEL[0].esquemadb !== "i3geo_metaestat"){
i3GEOF.metaestat.editor.t3(true,textoSelecionado);
}
else{
if($i("i3geoCartoComboMedidaVariavelEditor").value === ""){
i3GEO.janela.tempoMsg($trad(2,i3GEOF.metaestat.dicionario));
i3GEOF.metaestat.editor.t2(false);
}
else{
var ins = "
" + $trad(20,i3GEOF.metaestat.dicionario1) +
"
"; i3GEO.util.proximoAnterior("i3GEOF.metaestat.editor.t2()","i3GEOF.metaestat.editor.t3()",ins,"i3GEOF.metaestat.editor.t3a","i3GEOFmetaestatEditor",true); i3GEOF.metaestat.editor.botaoUpload("i3GEOFmetaestatEditorBotaot3a"); $i("i3GEOFmetaestatEditorBotaot3a-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px"; } } }, /** * Opcoes para escolha ou edicao/criacao de uma classificacao * Na sequencia executa i3GEOF.metaestat.editor.t4() */ t3: function(remove,textoSelecionado){ if(remove == true){ //remove o conteudo anteriormente construido i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t3"); } if($i("i3geoCartoComboMedidaVariavelEditor").value === ""){ i3GEO.janela.tempoMsg($trad(2,i3GEOF.metaestat.dicionario)); i3GEOF.metaestat.editor.t2(false); } else{ var temp = function(dados){ var ins = "
" + $trad(7,i3GEOF.metaestat.dicionario1) + "
" +
"" + i3GEOF.metaestat.principal.comboClassificacoesMedidaVariavel(dados,"i3geoCartoComboClassificacoesEditor","") + "" +
"
"+$trad(14,i3GEOF.metaestat.dicionario1)+": " + i3GEOF.metaestat.editor.dadoMedidaSelecionada("unidade_medida") +
"
" +
"
";
i3GEO.util.proximoAnterior("i3GEOF.metaestat.editor.t3a()","i3GEOF.metaestat.editor.t4()",ins,"i3GEOF.metaestat.editor.t3","i3GEOFmetaestatEditor",true);
new YAHOO.widget.Button(
"i3GEOFmetaestatEditorBotao5",
{onclick:{fn: i3GEOF.metaestat.editor.editaClassificacao}}
);
$i("i3GEOFmetaestatEditorBotao5-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px";
new YAHOO.widget.Button(
"i3GEOFmetaestatEditorBotao5a",
{onclick:{fn: i3GEOF.metaestat.editor.criaClassificacao}}
);
$i("i3GEOFmetaestatEditorBotao5a-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px";
if(textoSelecionado){
i3GEOF.metaestat.editor.selComboPorTexto("i3geoCartoComboClassificacoesEditor",textoSelecionado);
}
};
i3GEO.php.listaClassificacaoMedida($i("i3geoCartoComboMedidaVariavelEditor").value,temp);
}
},
/**
* Opcoes para definicao dos intervalos e cores de uma classificacao
*/
t4: function(){
//remove o conteudo anteriormente construido
i3GEOF.metaestat.editor.removeEl("i3GEOF.metaestat.editor.t4");
if($i("i3geoCartoComboMedidaVariavelEditor").value === ""){
i3GEO.janela.tempoMsg($trad(9,i3GEOF.metaestat.dicionario));
i3GEOF.metaestat.editor.t3(false);
}
else{
//formulario semelhante existe em i3geo/admin/js/estat_variavel.js (classesAuto)
var temp = function(dados){
var soma = i3GEOF.metaestat.editor.dadoMedidaSelecionada("permitesoma"),
media = i3GEOF.metaestat.editor.dadoMedidaSelecionada("permitemedia"),
ins = "
" + $trad(16,i3GEOF.metaestat.dicionario1) + "
"+ " " + "" + $trad(10,i3GEOF.metaestat.dicionario1) + "
"; if(soma == 1 || media == 1){ ins += " " + " " + "" + $trad(17,i3GEOF.metaestat.dicionario1) + "
" + "" + $trad(18,i3GEOF.metaestat.dicionario1) + " " + $trad(19,i3GEOF.metaestat.dicionario1) + "
" + ""; i3GEO.util.proximoAnterior("i3GEOF.metaestat.editor.t3()","",ins,"i3GEOF.metaestat.editor.t4","i3GEOFmetaestatEditor",true); new YAHOO.widget.Button( "i3GEOFmetaestatEditorBotao8", {onclick:{fn: function(){ i3GEO.util.abreColourRamp("","listaColourRampEditor",$i("i3GEOFmetaestatEditorNumInt").value); }}} ); $i("i3GEOFmetaestatEditorBotao8-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px"; if($i("i3GEOFmetaestatEditorBotao6")){ new YAHOO.widget.Button( "i3GEOFmetaestatEditorBotao6", {onclick:{fn: i3GEOF.metaestat.editor.quartis}} ); $i("i3GEOFmetaestatEditorBotao6-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px"; new YAHOO.widget.Button( "i3GEOFmetaestatEditorBotao7", {onclick:{fn: i3GEOF.metaestat.editor.intervalosIguais}} ); $i("i3GEOFmetaestatEditorBotao7-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px"; new YAHOO.widget.Button( "i3GEOFmetaestatEditorBotao9", {onclick:{fn: i3GEOF.metaestat.editor.intervalosIguaisMM}} ); $i("i3GEOFmetaestatEditorBotao9-button").style.width = (i3GEOF.metaestat.LARGURA / 2) + "px"; } }; i3GEO.php.listaClasseClassificacao($i("i3geoCartoComboClassificacoesEditor").value,temp); } } }, /** * Funcoes que controlam a exibicao e escolha dos parametros cadastrados para uma medida de variavel * Parametros podem ter filhos */ parametros: { /** * Guarda a lista de parametros que foram obtidos na inicializacao */ dados: [], /** * Obtem a lista com os parametros da medida * Cria os combos para os parametros que sao pai de todos * Executa i3GEO.php.listaParametrosMedidaVariavel() */ lista: function(id_medida_variavel){ i3GEOF.metaestat.comum.aguarde($i("i3geoCartoParametrosMedidasVariavel")); var temp = function(dados){ i3GEOF.metaestat.parametros.dados = dados; i3GEOF.metaestat.parametros.combos("0"); i3GEOF.metaestat.comum.aguarde($i("i3geoCartoParametrosMedidasVariavel")); }; i3GEO.php.listaParametrosMedidaVariavel(id_medida_variavel,temp); }, /** * Cria os elementos que receberao so combos para escolher os valores de um parametro * Para criar os combos, executa i3GEOF.metaestat.parametros.valoresCombo() * O combo e inserido no elemento com ID i3geoCartoParametrosMedidasVariavel * Cada combo recebe um ID cujo valor e definido em funcao do id do parametro e do nivel na hierarquia * O combo e inserido dentro de um div ja existente ou e criado um novo se o nivel for 0 * @param nivel do parametro na hierarquia, sendo 0 para o pai de todos */ combos: function(nivel){ var dados = i3GEOF.metaestat.parametros.dados, n = dados.length, onde = $i("i3geoCartoParametrosMedidasVariavel"), idpar,idcombo,i,novoel,teste; if(n === 0){ i3GEOF.metaestat.comum.adicionaCamada(); } //cria o combo para o parametro cujo id_pai for do nivel escolhido for(i=0;i"+$trad(17,i3GEOF.metaestat.dicionario) + "
"; i3GEOF.metaestat.principal.botaoAdicionaCamada(); i3GEOF.metaestat.classes.comboRegiao(i3GEOF.metaestat.ID_MEDIDA_VARIAVEL); i3GEOF.metaestat.classes.comboTipoClassificacao(); i3GEOF.metaestat.parametros.lista(i3GEOF.metaestat.ID_MEDIDA_VARIAVEL); } }, /** * Atualiza os componentes da interface * Remove os combos e adiciona novamente */ atualiza:function(){ $i("i3geoCartoVariaveis").innerHTML = ""; $i("i3geoCartoMedidasVariavel").innerHTML = ""; $i("i3geoCartoParametrosMedidasVariavel").innerHTML = ""; YAHOO.i3GEO.janela.manager.find("i3geoCartoParametros").setFooter(""); i3GEOF.metaestat.principal.opcoesVariaveis(); }, /** * Cria uma janela flutuante para inserir os componetes da interface * * Para capturar o objeto janela utilize janela = YAHOO.i3GEO.janela.manager.find("i3geoCartoParametros"); */ abreJanela: function(){ var cabecalho,minimiza,imagemxy,janela,modal = false; if (!$i("i3geoCartoParametros")){ cabecalho = function(){ }; minimiza = function(){ i3GEO.janela.minimiza("i3geoCartoParametros"); }; if(i3GEOF.metaestat.INTERFACE == "flutuanteSimples"){ modal = true; } janela = i3GEO.janela.cria( i3GEOF.metaestat.LARGURA+10+"px", i3GEOF.metaestat.ALTURA+"px", "", "", "", $trad("x57"), "i3geoCartoParametros", modal, "hd", cabecalho, minimiza ); janela = janela[0]; if(!YAHOO.i3GEO.janela.manager.find("i3geoCartoParametros")){ YAHOO.i3GEO.janela.manager.register(janela); } janela.render(); } else{ janela = YAHOO.i3GEO.janela.manager.find("i3geoCartoParametros"); } janela.show(); imagemxy = i3GEO.util.pegaPosicaoObjeto($i(i3GEO.Interface.IDCORPO)); janela.moveTo(imagemxy[0]+i3GEOF.metaestat.LEFT,i3GEOF.metaestat.TOP); return janela; }, /** * Conteudo HTML que sera inerido na janela ou div com os elementos principais que receberao os objetos HTMML: * @return HTML */ html: function(){ var ins = '' + ' ' + '
' + ''+$trad(1,i3GEOF.metaestat.dicionario) + '
'; ins += i3GEOF.metaestat.principal.comboVariaveis(dados,"i3geoCartoComboVariavel","i3GEOF.metaestat.principal.comboVariaveisOnchange(this)"); if(onde){ onde.innerHTML = ins; //i3GEOF.metaestat.principal.botaoInfo(); i3GEOF.metaestat.principal.botaoJanelaEditor(); //i3GEOF.metaestat.principal.botaoJanelaClasses(); i3GEOF.metaestat.principal.botaoJanelaAnalise(); } return ins; }; i3GEOF.metaestat.comum.aguarde(onde); i3GEO.php.listaVariavel(temp); }, /** * Executado quando o usuario escolhe uma variavel * Monta as opcoes de escolha de uma medida com i3GEOF.metaestat.principal.opcoesMedidasVariavel */ comboVariaveisOnchange: function(combo){ i3GEOF.metaestat.CODIGO_VARIAVEL = combo.value; i3GEOF.metaestat.ID_MEDIDA_VARIAVEL = ""; if(combo.value != ""){ i3GEOF.metaestat.principal.opcoesMedidasVariavel(combo.value); } else{ $i("i3geoCartoMedidasVariavel").innerHTML = ""; } $i("i3geoCartoParametrosMedidasVariavel").innerHTML = ""; i3GEOF.metaestat.classes.zeraParametros(); }, /** * Gera o HTML correspondente a um combo para escolha de uma medida de uma variavel * Define o valor de i3GEOF.metaestat.DADOSMEDIDASVARIAVEL * * @param objeto contendo os dados referentes as medidas de uma determinada variavel * @param id que sera atribuido ao combo criado * @param string que sera atribuida ao evento onchange * @param nome de um esquema que sera barrado. Apenas medidas cujos dados nao estiverem nesse esquema serao consideradas * @param largura em pixels * @param sim|nao mostra ou nao o icone que permite ver mais informacoes sobre a medida * @param sim|nao mostra ou nao o botao que permite o download dos dados */ comboMedidasVariavel: function(dados,idcombo,stronchange,filtroesquema,largura,mostraIconeprop,mostraIconedown){ i3GEOF.metaestat.DADOSMEDIDASVARIAVEL = dados; var n = dados.length, selecionado = "", ins = '', i; if(!largura || largura === ""){ largura = i3GEOF.metaestat.LARGURA - 20; } if(!mostraIconeprop || mostraIconeprop === ""){ mostraIconeprop = "sim"; } if(!mostraIconedown || mostraIconedown === ""){ mostraIconedown = "sim"; } if(mostraIconeprop == "sim"){ largura = largura - 19; } if(mostraIconedown == "sim"){ largura = largura - 19; } ins += ""; if(mostraIconeprop == "sim"){ ins += ""; } if(mostraIconedown == "sim"){ ins += ""; } return ins; }, /** * Obtem a lista de medidas de uma variavel cadastradas e monta as opcoes correspondentes * A lista de variaveis e obtida com i3GEO.php.listaMedidaVariavel * Verifica se existe o id "i3geoCartoMedidasVariavel". Se existir insere o HTML, caso contrario retorna o HTML * * @param codigo da variavel que sera pesquisada para obter as medidas */ opcoesMedidasVariavel: function(codigo_variavel){ var onde = $i("i3geoCartoMedidasVariavel"), temp = function(dados){ var ins = ''+$trad(2,i3GEOF.metaestat.dicionario)+'
'; ins += i3GEOF.metaestat.principal.comboMedidasVariavel(dados,"i3geoCartoComboMedidasVariavel","i3GEOF.metaestat.principal.comboMedidaVariavelOnchange(this)"); if(onde){ onde.innerHTML = ins; } return ins; }; i3GEOF.metaestat.comum.aguarde(onde); i3GEO.php.listaMedidaVariavel(codigo_variavel,temp); }, /** * Executado quando o usuario escolhe uma medida de uma variavel * Monta os parametros de uma medida com i3GEOF.metaestat.parametros.lista * Ativa o botao de adicionar camadas com i3GEOF.metaestat.principal.botaoAdicionaCamada * Define a variavel i3GEOF.metaestat.ID_MEDIDA_VARIAVEL * * @param objeto combo utilizado para escolher a variavel */ comboMedidaVariavelOnchange: function(combo){ i3GEOF.metaestat.ID_MEDIDA_VARIAVEL = combo.value; $i("i3geoCartoParametrosMedidasVariavel").innerHTML = ""; if(combo.value != ""){ //i3GEOF.metaestat.classes.inicia(); i3GEOF.metaestat.parametros.lista(combo.value); i3GEOF.metaestat.principal.botaoAdicionaCamada(); } i3GEOF.metaestat.classes.zeraParametros(); }, /** * Executado quando o usuário opta por alterar a classificacao default utilizada (sempre a primeira cadastrada) * Monta o combo com a lista de classificacoes * * @param objeto contendo os dados que farao parte do combo * @param string que sera atribuida como ID do combo * @return string HTML (select) */ comboClassificacoesMedidaVariavel: function(dados,idcombo){ var ins,i,n = dados.length; ins = ""; return ins; }, comboClassificacoesMedidaVariavelOnchange: function(combo){ }, /** * Abre uma nova janela do navegador para download dos dados de uma medida de uma variavel * Executa admin/php/metaestat.php?funcao=dadosMedidaVariavel que retorna os dados em CSV */ downloadMedida: function(){ if(!$i("i3geoCartoComboMedidasVariavel")){ i3GEO.janela.tempoMsg("erro: i3geoCartoComboMedidasVariavel???"); return; } if(window.confirm("Confirma o download dos dados")){ var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=dadosMedidaVariavel" + "&todasascolunas=1&formato=csv&id_medida_variavel="+$i("i3geoCartoComboMedidasVariavel").value; window.open(p); } } }, //funcoes utilizadas quando o mapa esta cadastrado e e utilizado um template para publicar o mapa publicador: { IDMAPA: "", montaGrupos: function(onde){ var grupos = function(dados){ var n = dados.length, ins = '', i; for(i=0;i'+dados[i].titulo+'
'; ins += ''; ins += ''; } $i(onde).innerHTML = ins; for(i=0;i