if (typeof (i3GEOF) === 'undefined') {
var i3GEOF = {};
}
/*
* Classe: i3GEOF.identifica
*
*/
//TODO na listagem de atributos, incluir opcao para abrir os valores das variaveis associadas a uma regiao, quando codigo_tipo_regiao for
//diferente de null
i3GEOF.identifica =
{
resolution: 8,
/**
* Array com os ids das janelas ja criadas
*/
janelas : [],
propJanelas : {},
/**
* Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php
*/
MUSTACHE : "",
MUSTACHESISTEMAS: "",
MUSTACHEDADOS: "",
/**
* Susbtitutos para o template
*/
mustacheHash : function(idjanela) {
var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.identifica.dicionario);
dicionario["idjanela"] = idjanela;
dicionario["locaplic"] = i3GEO.configura.locaplic;
dicionario["resolution"] = i3GEOF.identifica.resolution;
return dicionario;
},
/*
* Propriedade: mostraLinkGeohack
*
* Mostra ou não o link para abrir o site GeoHack.
*
* Este site permite o uso de vários buscadores disponíveis na internet.
*
* Type: {boolean}
*/
mostraLinkGeohack : true,
/*
* Propriedade: mostraSistemasAdicionais
*
* Mostra ou não a lista de sistemas adicionais de busca de dados.
*
* Type: {boolean}
*/
mostraSistemasAdicionais : true,
/*
* Variavel: tema
*
* Código do tema que será pesquisado
*
* Type: {String}
*/
tema : "",
/*
* Variavel: x
*
* Coordenada x
*
* Type: {Numeric}
*/
x : 0,
/*
* Variavel: y
*
* Coordenada y
*
* Type: {Numeric}
*/
y : 0,
/*
* Variavel: sistemasAdicionais
*
* Guarda a lista de sistemas adicionais que são incluídos na seleção de temas
*
* Type: {Array}
*/
sistemasAdicionais : [],
/*
* Variavel: dadosIdentifica
*
* Guarda os dados obtidos com a chamada em AJAX de identificação
*
* Type: {Array}
*/
dadosIdentifica : [],
/*
* Para efeitos de compatibilidade antes da versão 4.7 que não tinha dicionário
*/
criaJanelaFlutuante : function(x, y) {
i3GEOF.identifica.iniciaDicionario(x, y);
},
/*
* 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(x, y, id) {
if (typeof (i3GEOF.identifica.dicionario) === 'undefined') {
if (x) {
i3GEO.util.scriptTag(
i3GEO.configura.locaplic + "/ferramentas/identifica/dicionario.js",
"i3GEOF.identifica.iniciaJanelaFlutuante(" + x + "," + y + ")",
"i3GEOF.identifica.dicionario_script");
} else {
i3GEO.util.scriptTag(
i3GEO.configura.locaplic + "/ferramentas/identifica/dicionario.js",
"i3GEOF.identifica.iniciaJanelaFlutuante()",
"i3GEOF.identifica.dicionario_script");
}
} else {
if (x) {
i3GEOF.identifica.iniciaJanelaFlutuante(x, y);
} else {
i3GEOF.identifica.iniciaJanelaFlutuante();
}
}
},
/*
* Function: inicia
*
* Inicia a janela de informações
*
* Parameters:
*
* tema {String} - código do tema, existente no mapfile armazenado na seção, que será consultado
* já na inicialização
*
* x {Numeric} - coordenada x do ponto que será utilizado para busca dos atributos
*
* y {Numeric} - coordenada y do ponto
*
* iddiv {String} - id do elemento html onde o conteúdo da ferramenta será incluido
*
* mostraLinkGeohack {boolean} - mostra ou não o link para o site geohacks
*
* mostraSistemasAdicionais {boolean} - mostra ou não os sistemas adicionais de busca de dados
*
* idjanela {string}
*/
inicia : function(tema, x, y, iddiv, mostraLinkGeohack, mostraSistemasAdicionais, idjanela) {
if(i3GEOF.identifica.MUSTACHE == ""){
var t1 = i3GEO.configura.locaplic + "/ferramentas/identifica/template_mst.html",
t2 = i3GEO.configura.locaplic + "/ferramentas/identifica/template_sistemas_mst.html",
t3 = i3GEO.configura.locaplic + "/ferramentas/identifica/template_dados_mst.html";
$.when( $.get(t1),$.get(t2),$.get(t3) ).done(function(r1,r2,r3) {
i3GEOF.identifica.MUSTACHE = r1[0];
i3GEOF.identifica.MUSTACHESISTEMAS = r2[0];
i3GEOF.identifica.MUSTACHEDADOS = r3[0];
i3GEOF.identifica.inicia(tema, x, y, iddiv, mostraLinkGeohack, mostraSistemasAdicionais, idjanela);
}).fail(function() {
i3GEO.janela.closeMsg($trad("erroTpl"));
return;
});
return;
}
var b, onButtonClick = function(evt) {
var botao = evt.target;
if (botao) {
if (botao.value != "") {
i3GEO.mapa.ativaTema(botao.value);
i3GEOF.identifica.propJanelas[idjanela].tema = botao.value;
i3GEOF.identifica.propJanelas[idjanela].temaAtivo = botao.value;
var temp = i3GEO.arvoreDeCamadas.pegaTema(botao.value);
if (temp.identifica.toLowerCase() !== "nao") {
i3GEOF.identifica.buscaDadosTema(botao.value, i3GEOF.identifica.propJanelas[idjanela].x, i3GEOF.identifica.propJanelas[idjanela].y, idjanela);
}
}
}
};
try {
$i(iddiv).innerHTML = i3GEOF.identifica.html(idjanela);
if (!$i(idjanela + "i3GEOFidentificaComboCabecaSel")) {
i3GEO.janela.comboCabecalhoTemasBs(
idjanela + "i3GEOFidentificaComboCabeca",
idjanela + "i3GEOFidentificaComboCabecaSel",
"identifica",
"ligados",
onButtonClick);
}
i3GEOF.identifica.propJanelas[idjanela].tema = tema;
i3GEOF.identifica.propJanelas[idjanela].temaAtivo = tema;
i3GEOF.identifica.propJanelas[idjanela].x = x;
i3GEOF.identifica.propJanelas[idjanela].y = y;
i3GEOF.identifica.propJanelas[idjanela].marca = false;
i3GEOF.identifica.mostraLinkGeohack = mostraLinkGeohack;
i3GEOF.identifica.mostraSistemasAdicionais = mostraSistemasAdicionais;
// se o usuário for editor, força mostrar a lista
// de sistemas
if (i3GEO.parametros.editor.toLowerCase() == "sim") {
i3GEOF.identifica.mostraSistemasAdicionais == true;
}
i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOidentificaguia1", idjanela + "i3GEOidentificaguia");
// eventos das guias
$i(idjanela + "i3GEOidentificaguia1").onclick = function() {
i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOidentificaguia1", idjanela + "i3GEOidentificaguia");
if (i3GEO.identifica.propJanelas[idjanela].temaAtivo === "") {
$i(idjanela + "i3GEOidentificaguia1obj").innerHTML = $trad('selecionaTema', i3GEOF.identifica.dicionario);
}
};
$i(idjanela + "i3GEOidentificaguia3").onclick = function() {
i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOidentificaguia3", idjanela + "i3GEOidentificaguia");
};
$i(idjanela + "i3GEOidentificaguia5").onclick =
function() {
i3GEO.guias.mostraGuiaFerramenta(idjanela + "i3GEOidentificaguia5", idjanela + "i3GEOidentificaguia");
var ins = "",
gh = i3GEO.coordenadas.geohash.encodeGeoHash(i3GEOF.identifica.propJanelas[idjanela].y,i3GEOF.identifica.propJanelas[idjanela].x);
ins += "
";
if (nres == 1) {
ins = "";
}
return ins;
},
listaVariaveis : function(codigo_tipo_regiao, idjanela) {
var p, temp;
temp = function(retorno) {
var ins = "", n, i, m, j, d, dd, nc, ic, ndd, idd;
n = retorno.length;
if (n > 0) {
// cada variavel
for (i = 0; i < n; i++) {
d = retorno[i];
ins += "" + d.variavel + "";
m = d.dados.length;
// cada medida
for (j = 0; j < m; j++) {
dd = d.dados[j];
// ins += " -> " + dd.medida;
nc = dd.dados.colunas.length;
ins += "
";
// cabecalho
for (ic = 0; ic < nc; ic++) {
ins += "
" + dd.dados.aliascolunas[ic] + "
";
}
ins += "
";
ndd = dd.dados.dados.length;
// cada valor
for (idd = 0; idd < ndd; idd++) {
ins += "
";
for (ic = 0; ic < nc; ic++) {
ins += "
" + dd.dados.dados[idd][dd.dados.colunas[ic]] + "
";
}
ins += "
";
}
ins += "
";
}
}
}
i3GEO.janela.mensagemSimples("
" + ins + "
", "");
};
p = i3GEO.configura.locaplic + "/classesphp/metaestat_controle.php?funcao=LISTATODOSATRIBUTOSMEDIDAVARIAVELXY", cpJSON.call(
p,
"foo",
temp,
"&codigo_tipo_regiao=" + codigo_tipo_regiao
+ "&x="
+ i3GEOF.identifica.propJanelas[idjanela].x
+ "&y="
+ i3GEOF.identifica.propJanelas[idjanela].y);
}
};
//aplica ao codigo i3GEOF definicoes feitas na interface do mapa
//isso permite a substituicao de funcoes e parametros
if(i3GEO.configura.ferramentas.hasOwnProperty("identifica")){
jQuery.each( i3GEO.configura.ferramentas.identifica, function(index, value) {
i3GEOF.identifica[index] = i3GEO.configura.ferramentas.identifica[index];
});
}