if(typeof(i3GEOF) === 'undefined'){
var i3GEOF = {};
}
i3GEOF.wmstime = {
configura: {
"1": {
titulo: "Active Fires (1 month - Terra/MODIS)",
servico:"http://neowms.sci.gsfc.nasa.gov/wms/wms?",
layers:"MOD14A1_M_FIRE",
styles:"rgb",
srs:"EPSG:4326",
format:"image/jpeg",
descricao:"Dados acumulados de um mês março de 2000 a março de 2009. Fire is a recurring part of nature. Wildfires can be caused by lightning striking a forest canopy or, in a few isolated cases, by lava or hot rocks ejected from erupting volcanoes. Most fires worldwide are started by humans, sometimes accidentally and sometimes on purpose. Not all fires are bad. Fire clears away dead and dying underbrush, which can help restore forest ecosystems to good health. Humans use fire as a tool in slash-and-burn agriculture to speed up the process of breaking down unwanted vegetation into the soil. Humans also use fire to clear away old-growth forests to make room for living spaces, roads, and fields for raising crops and cattle. But not all fires are good. Wildfires can destroy natural resources and human structures. Globally, fire plays a major role in Earth's carbon cycle by releasing carbon into the air, and by consuming trees that would otherwise absorb carbon from the air during photosynthesis. These maps show the locations of actively burning fires around the world, detected by instruments aboard NASA satellites.",
anoInicio: 2006,
mesInicio: 1,
diaInicio: 1,
anoFim: 2006,
mesFim: 12,
diaFim: 1,
tipo: 2
}
},
quadroAtual: 0,
idServicoEscolhido: "",
emPausa: true,
MUSTACHE : "",
mustacheHash : function() {
var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.wmstime.dicionario);
dicionario["locaplic"] = i3GEO.configura.locaplic;
return dicionario;
},
inicia: function(iddiv){
var ins,key = "";
if(i3GEOF.wmstime.MUSTACHE == ""){
$.get(i3GEO.configura.locaplic + "/ferramentas/wmstime/template_mst.html", function(template) {
i3GEOF.wmstime.MUSTACHE = template;
i3GEOF.wmstime.inicia(iddiv);
});
return;
}
$i(iddiv).innerHTML = i3GEOF.wmstime.html();
ins = "";
$i("i3GEOFwmstimelistaDeServicos").innerHTML = ins;
i3GEO.guias.mostraGuiaFerramenta("i3GEOwmstimeguia1","i3GEOwmstimeguia");
$i("i3GEOwmstimeguia1").onclick = function(){
i3GEO.guias.mostraGuiaFerramenta("i3GEOwmstimeguia1","i3GEOwmstimeguia");
};
$i("i3GEOwmstimeguia2").onclick = function(){
if(i3GEOF.wmstime.idServicoEscolhido != ""){
i3GEO.guias.mostraGuiaFerramenta("i3GEOwmstimeguia2","i3GEOwmstimeguia");
}
};
},
html:function() {
var ins = Mustache.render(i3GEOF.wmstime.MUSTACHE, i3GEOF.wmstime.mustacheHash());
return ins;
},
iniciaJanelaFlutuante: function(){
var minimiza,cabecalho,janela,divid,temp,titulo;
if ($i("i3GEOF.wmstime")) {
return;
}
//cria a janela flutuante
cabecalho = function(){
};
minimiza = function(){
i3GEO.janela.minimiza("i3GEOF.wmstime",200);
};
titulo = "WMS Time";
janela = i3GEO.janela.cria(
"600px",
"400px",
"",
"",
"",
titulo,
"i3GEOF.wmstime",
false,
"hd",
cabecalho,
minimiza,
"",
true,
"",
"",
"",
"",
"76"
);
divid = janela[2].id;
i3GEOF.wmstime.aguarde = $i("i3GEOF.wmstime_imagemCabecalho").style;
i3GEOF.wmstime.inicia(divid);
},
/*
Function: i3GEOF.wmstime.escolheuServico
Monta a tela de parametros após um serviço ter sido escolhido
Parametro:
idWMS {String} - id do serviço escolhido
*/
escolheuServico: function(idWMS){
i3GEOF.wmstime.idServicoEscolhido = idWMS;
tipoServico = i3GEOF.wmstime.configura[idWMS].tipo;
servico = i3GEOF.wmstime.configura[idWMS].servico+"&VERSION=1.1.1&REQUEST=GetMap&layers="+i3GEOF.wmstime.configura[idWMS].layers+"&styles="+i3GEOF.wmstime.configura[idWMS].styles+"&srs="+i3GEOF.wmstime.configura[idWMS].srs+"&format="+i3GEOF.wmstime.configura[idWMS].format;
$i("i3GEOFwmstimeiServico").value = servico;
$i("WMS_descricao").innerHTML = i3GEOF.wmstime.configura[idWMS].descricao;
$i("WMS_anoinicio").value = i3GEOF.wmstime.configura[idWMS].anoInicio;
//if(tipoServico > 1)
$i("WMS_mesinicio").value = i3GEOF.wmstime.configura[idWMS].mesInicio;
//if(tipoServico > 2)
$i("WMS_diainicio").value = i3GEOF.wmstime.configura[idWMS].diaInicio;
$i("WMS_anofim").value = i3GEOF.wmstime.configura[idWMS].anoFim;
//if(tipoServico > 1)
$i("WMS_mesfim").value = i3GEOF.wmstime.configura[idWMS].mesFim;
//if(tipoServico > 2)
$i("WMS_diafim").value = i3GEOF.wmstime.configura[idWMS].diaFim;
var ins = "";
}
if(tipoServico == 2){
ins += "";
ins += "";
}
if(tipoServico == 3){
ins += "";
ins += "";
ins += "";
}
$i("divumaImagemPor").innerHTML = ins;
},
/*
Function: i3GEOF.wmstime.iniciaImagens
Inicia a tela de apresentação das imagens
*/
iniciaImagens: function(){
if(i3GEOF.wmstime.idServicoEscolhido == ""){
return;
}
i3GEO.guias.mostraGuiaFerramenta("i3GEOwmstimeguia2","i3GEOwmstimeguia");
$i("i3GEOFwmstimeimagens").innerHTML = "";
$i("i3GEOFwmstimeimagensLidas").innerHTML = "";
$i("i3GEOFwmstimemarcaTempo").innerHTML = "";
if(i3GEO.parametros.mapexten){
bbox = i3GEO.parametros.mapexten.split(" ");
bbox = bbox.toString();
}
else {
bbox = "-51.0347433181,-25.2688559441,-43.4155582517,-21.1417973665";
}
//var time = "2008-01-01"
w = i3GEO.parametros.w; //985
h = i3GEO.parametros.h;
dw = 540;
dh = 245;
anoInicio = $i("WMS_anoinicio").value;
mesInicio = $i("WMS_mesinicio").value;
diaInicio = $i("WMS_diainicio").value;
anoFim = $i("WMS_anofim").value;
mesFim = $i("WMS_mesfim").value;
diaFim = $i("WMS_diafim").value;
intervalo = 1;
id = 1;
ids = new Array();
quantasLidas = 0;
onde = $i("i3GEOFwmstimeimagens");
ondeContador = $i("i3GEOFwmstimeimagensLidas");
ondeContador.style.display="block";
idsValidos = new Array();
idsTempo = new Array();
parouQuantas = 0;
ondeMarcaTempo = $i("i3GEOFwmstimemarcaTempo");
ondeData = $i("i3GEOFwmstimemarcaData");
tempoAnima = 500;
if($i("umaImagemPor").value == "mes"){
dataFixa = diaInicio;
if(dataFixa < 10){dataFixa = "0"+dataFixa;}
var anoAtual = anoInicio;
var mesAtual = mesInicio;
while (anoAtual <= anoFim){
while (mesAtual < 13){
var mes = mesAtual;
if(mes < 10){mes = "0"+mes;}
i3GEOF.wmstime.criaImg(anoAtual+"-"+mes+"-"+dataFixa,id);
i3GEOF.wmstime.criaImgStatus(anoAtual+"-"+mes+"-"+dataFixa,id);
ids.push(id);
idsTempo.push(anoAtual+"-"+mes+"-"+dataFixa);
id++;
mesAtual++;
if(anoAtual == anoFim && mesAtual > mesFim){mesAtual = 13;}
}
mesAtual = 1;
anoAtual++;
}
}
if($i("umaImagemPor").value == "dia"){
var anoAtual = anoInicio;
var mesAtual = mesInicio;
var diaAtual = diaInicio;
while (anoAtual <= anoFim){
while (mesAtual < 13){
var mes = mesAtual;
if(mes < 10){mes = "0"+mes;}
while (diaAtual < 31){
var dia = diaAtual;
if(diaAtual < 10){dia = "0"+dia;}
i3GEOF.wmstime.criaImg(anoAtual+"-"+mes+"-"+dia,id);
i3GEOF.wmstime.criaImgStatus(anoAtual+"-"+mes+"-"+dia,id);
ids.push(id);
idsTempo.push(anoAtual+"-"+mes+"-"+dia);
id++;
diaAtual++;
if(mesAtual == mesFim && diaAtual > diaFim){diaAtual = 32;}
}
mesAtual++;
if(anoAtual == anoFim && mesAtual > mesFim){mesAtual = 13;}
}
mesAtual = 1;
anoAtual++;
}
}
},
/*
function: i3GEOF.wmstime.criaImg
Cria um elemento do tipo IMG com base no serviço escolhido e nos parametros de tempo
Parametros:
tempo {string} - data da imagem que será requisitada
id {string} - id que será definido para a imagem
*/
criaImg: function(tempo,id){
var novoel = document.createElement("img");
var p = "absolute";
novoel.id = id;
novoel.style.position = p;
novoel.style.top = "0px";
novoel.style.left = "0px";
novoel.style.width = dw+"px";
novoel.style.height = dh+"px";
novoel.style.cursor = "pointer";
novoel.src = $i("i3GEOFwmstimeiServico").value+"&width="+dw+"&height="+dh+"&bbox="+bbox+"&time="+tempo;
novoel.title = $trad(13,i3GEOF.wmstime.dicionario);
novoel.onclick = function(){
i3GEOF.wmstime.adicionaMapa(i3GEOF.wmstime.idServicoEscolhido);
};
novoel.onload = function(){
$i("status"+this.id).innerHTML = " OK";
idsValidos.push(this.id);
parouQuantas++;
if(idsValidos.length == ids.length)
{i3GEOF.wmstime.pararStatus();}
};
onde.appendChild(novoel);
},
/*
Function: i3GEOF.wmstime.criaImgStatus
Cria um ícone que permite parar a apresentação da animação em uma determinada imagem
Parametros:
tempo {string} - data da imagem
id {string} - id da imagem
*/
criaImgStatus: function(tempo,id){
var novoel = document.createElement("div");
novoel.id = "lida"+id;
novoel.style.width="200px";
novoel.innerHTML = "Imagem: "+tempo+"...parar";
ondeContador.appendChild(novoel);
},
/*
Function: i3GEOF.wmstime.pararImagem
Parar a apresentação da animação em uma determinada imagem
Parametro:
id {string} - id da imagem
*/
pararImagem: function(id){
if($i(id)){
$i(id).src = "";
//onde.removeChild(document.getElementById(id))
idsValidos.push(id);
$i("status"+id).innerHTML = $trad(14,i3GEOF.wmstime.dicionario);
parouQuantas++;
if(parouQuantas == ids.length)
{i3GEOF.wmstime.pararStatus();}
}
else
{i3GEO.janela.tempoMsg($trad(15,i3GEOF.wmstime.dicionario));}
},
/*
Function: i3GEOF.wmstime.pararStatus
Para o gráfico que mostra o status das imagens
*/
pararStatus: function(){
ondeContador.style.display = "none";
ondeMarcaTempo.style.display="block";
ondeMarcaTempo.style.top = "10px";
ondeData.style.top = dh + 30 + "px";
ondeData.style.width = dw+"px";
i3GEOF.wmstime.desativaQuadros();
i3GEOF.wmstime.criaMarcadorTempo();
//i3GEOF.wmstime.ajustaIds()
i3GEOF.wmstime.ativaQuadro(1);
},
ajustaIds: function(){
},
/*
Function: i3GEOF.wmstime.criaMarcadorTempo
Cria o gráfico que mostra as imagens disponíveis. Serve de base para indicar qual imagem está sendo mostrada
*/
criaMarcadorTempo: function(){
var nmarcas = ids.length;
distanciaMarcas = parseInt(dw / nmarcas);
var ins = "";
var ini = parseInt((distanciaMarcas*i - (distanciaMarcas/2)));
for(var i=1;i<=nmarcas;i++){
ins += "";
}
ins += "";
ins += "";
ngranulo = nmarcas;
tgranulo = (parseInt((distanciaMarcas*i - (distanciaMarcas/2))) - ini) / 10;
tempoGranulo = tempoAnima / 10;
ondeMarcaTempo.innerHTML = ins;
marcaVermelha = $i("marcaDeTempo");
imgGranulo = $i("marcaGranulo");
i3GEOF.wmstime.pararFilme();
i3GEOF.wmstime.iniciarFilme();
},
/*
Function: i3GEOF.wmstime.mostraI
Mostra uma imagem específica
Parametro:
obj {dom} - objeto contendo a imagem
*/
mostraI: function(obj){
$i(obj).style.display="block";
ondeData.innerHTML = "YYMMDD: "+idsTempo[obj-1];
if($i(i3GEOF.wmstime.quadroAtual))
$i(i3GEOF.wmstime.quadroAtual).style.display = "none";
else
$i("1").style.display = "none";
},
/*
Function: i3GEOF.wmstime.escondeI
Esconde uma imagem
Parametro:
obj {dom} - objeto contendo a imagem
*/
escondeI: function(obj){
$i(obj).style.display="none";
ondeData.innerHTML = "";
if($i(i3GEOF.wmstime.quadroAtual))
$i(i3GEOF.wmstime.quadroAtual).style.display = "block";
else
$i("1").style.display = "block";
},
/*
Function: i3GEOF.wmstime.adicionaMapa
Adiciona uma camada ao mapa baseado na imagem vista na tela
*/
adicionaMapa: function(idMarca){
idMarca = parseInt(idMarca,10);
var serv = i3GEOF.wmstime.configura[i3GEOF.wmstime.idServicoEscolhido];
var fim = function(retorno){
i3GEO.atualiza(retorno);
};
var p = i3GEO.configura.locaplic+"/classesphp/mapa_controle.php?g_sid="+i3GEO.configura.sid+"&funcao=adicionatemawms";
p += "&servico="+serv.servico;
if(serv.styles == "")
p += "&nome=";
else
p += "&nome="+serv.styles;
p += "&tema="+serv.layers;
p += "&proj="+serv.srs;
p += "&formato="+serv.format;
p += "&tipo=estilo";
p += "&versao=1.1.1";
p += "&nomecamada="+serv.titulo+" "+idsTempo[idMarca-1];
p += "&tiporep=&suportasld=nao";
p += "&formatosinfo=text/plain,application/vnd.ogc.gml";
p += "&time="+idsTempo[idMarca-1];
var cp = new cpaint();
cp.set_response_type("JSON");
cp.call(p,"wmstime",fim);
},
desativaQuadros: function(){
var n = idsValidos.length;
for(var i=0;i