From dbffb28b47bb9ca9c6d6715b2429e65e801b630c Mon Sep 17 00:00:00 2001
From: edmarmoretti
Date: Wed, 23 Aug 2017 10:25:59 -0300
Subject: [PATCH] Cria ção da opção Junção de Tabelas, mostrada na lista de funções que operam sobre camadas. Essa opção afeta apenas os temas que são advindos do sistema Metaestat e permite a junção de tabelas e criação dinâmica de colunas calculadas
---
admin/admin.db | Bin 340992 -> 0 bytes
classesphp/classe_mapa.php | 6 ++++--
ferramentas/atalhoscamada/dicionario.js | 10 +++++++++-
ferramentas/atalhoscamada/index.js | 5 +++++
ferramentas/atalhoscamada/template_mst.html | 1 +
ferramentas/juntamedidasvariavel/dependencias.php | 24 ++++++++++++++++++++++++
ferramentas/juntamedidasvariavel/dicionario.js | 47 +++++++++++++++++++++++++++++++++++++++++++++++
ferramentas/juntamedidasvariavel/index.js | 168 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
ferramentas/juntamedidasvariavel/template_mst.html | 17 +++++++++++++++++
ferramentas/metaestat/index.js | 429 ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
ferramentas/metaestat/template_analise_mst.html | 7 +++++--
ferramentas/metaestat/template_mst.html | 2 +-
js/analise.js | 15 +++++++++++++++
13 files changed, 296 insertions(+), 435 deletions(-)
create mode 100755 ferramentas/juntamedidasvariavel/dependencias.php
create mode 100755 ferramentas/juntamedidasvariavel/dicionario.js
create mode 100755 ferramentas/juntamedidasvariavel/index.js
create mode 100755 ferramentas/juntamedidasvariavel/template_mst.html
diff --git a/admin/admin.db b/admin/admin.db
index 44620cc..b775db8 100755
Binary files a/admin/admin.db and b/admin/admin.db differ
diff --git a/classesphp/classe_mapa.php b/classesphp/classe_mapa.php
index b307705..9ba208a 100755
--- a/classesphp/classe_mapa.php
+++ b/classesphp/classe_mapa.php
@@ -275,7 +275,8 @@ class Mapa
"ferramentas",
"legendaimg",
"offsite",
- "numclasses"
+ "numclasses",
+ "id_medida_variavel"
);
foreach ($this->layers as $oLayer){
$sel = "nao";
@@ -510,7 +511,8 @@ class Mapa
$ferramentas,
$oLayer->getmetadata("legendaimg"),
$oLayer->offsite->red.",".$oLayer->offsite->green.",".$oLayer->offsite->blue,
- $oLayer->numclasses
+ $oLayer->numclasses,
+ $oLayer->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL")
);
}
}
diff --git a/ferramentas/atalhoscamada/dicionario.js b/ferramentas/atalhoscamada/dicionario.js
index 3ba0bd7..59d744c 100755
--- a/ferramentas/atalhoscamada/dicionario.js
+++ b/ferramentas/atalhoscamada/dicionario.js
@@ -54,5 +54,13 @@ i3GEOF.atalhoscamada.dicionario = {
es : "",
it : ""
}
- ]
+ ],
+ "juncao" : [
+ {
+ pt : "Junção de camadas",
+ en : "",
+ es : "",
+ it : ""
+ }
+ ]
};
diff --git a/ferramentas/atalhoscamada/index.js b/ferramentas/atalhoscamada/index.js
index b8d776c..9356e42 100755
--- a/ferramentas/atalhoscamada/index.js
+++ b/ferramentas/atalhoscamada/index.js
@@ -72,6 +72,7 @@ i3GEOF.atalhoscamada =
dicionario["noPolygonHidden"] = (ltema.type === 2) ? "":"hidden";
dicionario["destacaHidden"] = (i3GEO.Interface.ATUAL == "openlayers") ? "":"hidden";
dicionario["wmsHidden"] = (ltema.permiteogc.toLowerCase() !== "nao") ? "":"hidden";
+ dicionario["metaestatHidden"] = (parseInt(ltema.id_medida_variavel,10) > 0) ? "":"hidden";
return dicionario;
},
@@ -228,5 +229,9 @@ i3GEOF.atalhoscamada =
cp.set_response_type("JSON");
cp.call(p, "foo", temp, "cores=" + cores);
}
+ },
+ //juncao de tabelas advindas do sistema de metadados
+ juncao: function(idjanela){
+ i3GEO.analise.dialogo.juntamedidasvariavel(i3GEOF.atalhoscamada.propJanelas[idjanela].tema);
}
};
\ No newline at end of file
diff --git a/ferramentas/atalhoscamada/template_mst.html b/ferramentas/atalhoscamada/template_mst.html
index 519301e..e3a6757 100755
--- a/ferramentas/atalhoscamada/template_mst.html
+++ b/ferramentas/atalhoscamada/template_mst.html
@@ -34,6 +34,7 @@
{{{destaca}}}{{{contorno}}}{{{wms}}}
+ {{{juncao}}}{{{tme}}}StoryMap
diff --git a/ferramentas/juntamedidasvariavel/dependencias.php b/ferramentas/juntamedidasvariavel/dependencias.php
new file mode 100755
index 0000000..8404e14
--- /dev/null
+++ b/ferramentas/juntamedidasvariavel/dependencias.php
@@ -0,0 +1,24 @@
+ ou com a funcao scripttag do i3Geo
+ * Alem de carregar os scripts, carrega tambem o template no formato MUSTACHE, definindo a variavel
+ * javascript i3GEOF.mmscale.MUSTACHE
+ * O template e substituido pelos valores definidos em index.js no momento da inicializacao da ferramenta
+ */
+if(extension_loaded('zlib')){
+ ob_start('ob_gzhandler');
+}
+header("Content-type: text/javascript");
+include("index.js");
+include("dicionario.js");
+echo "\n";
+
+if(extension_loaded('zlib')){
+ ob_end_flush();
+}
+?>
\ No newline at end of file
diff --git a/ferramentas/juntamedidasvariavel/dicionario.js b/ferramentas/juntamedidasvariavel/dicionario.js
new file mode 100755
index 0000000..a2cce56
--- /dev/null
+++ b/ferramentas/juntamedidasvariavel/dicionario.js
@@ -0,0 +1,47 @@
+i3GEOF.juntamedidasvariavel.dicionario = {
+ 'titulo' : [ {
+ pt : "Junção de tabelas",
+ en : "",
+ es : ""
+ } ],
+ 'ajuda' : [ {
+ pt : "Os cálculos são fórmulas que utilizam as colunas que forem juntadas e que serão incluídas na nova camada. Cada uma dessas colunas receberá um nome sequencial, por exemplo valortema0,valortema1, valortema2...
As colunas calculadas podem utilizar esses nomes como entrada em fórmulas. Cada fórmula irá gerar uma nova coluna na tabela e deve utilizar a sintaxe SQL (SQL no Postgres)
Exemplos de uso:
coluna de nome: soma valortema0 + valortema1
coluna de nome: taxa (valortema0 * 100) / valortema1",
+ en : "",
+ es : ""
+ } ],
+ 'escolha' : [ {
+ pt : "Escolha as camadas de mesmo tipo e região",
+ en : "",
+ es : ""
+ } ],
+ 'nome' : [ {
+ pt : "Nome da nova camada",
+ en : "",
+ es : ""
+ } ],
+ 'aplicar' : [ {
+ pt : "Aplicar",
+ en : "",
+ es : ""
+ } ],
+ 'colunas' : [ {
+ pt : "Colunas calculadas (opcional)",
+ en : "",
+ es : ""
+ } ],
+ 'addno' : [ {
+ pt : "Adiciona entrada de formulario",
+ en : "",
+ es : ""
+ } ],
+ 'tituloform' : [ {
+ pt : "Nome (apenas letras e números)",
+ en : "",
+ es : ""
+ } ],
+ 'titulosql' : [ {
+ pt : "Digite a fórmula (padrão sql)",
+ en : "",
+ es : ""
+ } ]
+};
diff --git a/ferramentas/juntamedidasvariavel/index.js b/ferramentas/juntamedidasvariavel/index.js
new file mode 100755
index 0000000..5884651
--- /dev/null
+++ b/ferramentas/juntamedidasvariavel/index.js
@@ -0,0 +1,168 @@
+if(typeof(i3GEOF) === 'undefined'){
+ var i3GEOF = {};
+}
+
+i3GEOF.juntamedidasvariavel = {
+ tema : "",
+ /*
+ Variavel: aguarde
+
+ Estilo do objeto DOM com a imagem de aguarde existente no cabeçalho da janela.
+ */
+ aguarde: "",
+ /**
+ * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php
+ */
+ MUSTACHE : "",
+ /**
+ * Susbtitutos para o template
+ */
+ mustacheHash : function() {
+ var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.juntamedidasvariavel.dicionario);
+ return dicionario;
+ },
+ /*
+ Function: inicia
+
+ Inicia a ferramenta. É chamado por criaJanelaFlutuante
+
+ Parametro:
+
+ iddiv {String} - id do div que receberá o conteudo HTML da ferramenta
+ */
+ inicia: function(iddiv){
+ if(i3GEOF.juntamedidasvariavel.MUSTACHE == ""){
+ $.get(i3GEO.configura.locaplic + "/ferramentas/juntamedidasvariavel/template_mst.html", function(template) {
+ i3GEOF.juntamedidasvariavel.MUSTACHE = template;
+ i3GEOF.juntamedidasvariavel.inicia(iddiv);
+ });
+ return;
+ }
+ $i(iddiv).innerHTML = i3GEOF.juntamedidasvariavel.html();
+ var temp = function(retorno){
+ i3GEOF.juntamedidasvariavel.aguarde.visibility = "hidden";
+
+ var n = retorno.length, i, lista = "";
+
+ for(i=0;i';
+ }
+ $i("i3GEOFjuntaLista").innerHTML = lista;
+ i3GEOF.juntamedidasvariavel.noNovoCalculo();
+ };
+ var p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?g_sid="+i3GEO.configura.sid +
+ "&funcao=listaLayersAgrupados";
+ i3GEOF.juntamedidasvariavel.aguarde.visibility = "visible";
+ i3GEO.util.ajaxGet(p,temp);
+ },
+ /*
+ 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 = Mustache.render(i3GEOF.juntamedidasvariavel.MUSTACHE, i3GEOF.juntamedidasvariavel.mustacheHash());
+ return ins;
+ },
+ /*
+ Function: iniciaJanelaFlutuante
+
+ Cria a janela flutuante para controle da ferramenta.
+ */
+ iniciaJanelaFlutuante: function(tema){
+ var janela,divid,titulo;
+ if($i("i3GEOF.juntamedidasvariavel")){
+ i3GEOF.juntamedidasvariavel.tema = tema;
+ i3GEOF.juntamedidasvariavel.inicia("i3GEOF.juntamedidasvariavel_corpo");
+ return;
+ }
+ //cria a janela flutuante
+ titulo = ""+$trad("titulo",i3GEOF.juntamedidasvariavel.dicionario)+"";
+
+ janela = i3GEO.janela.cria(
+ "330px",
+ "260px",
+ "",
+ "",
+ "",
+ titulo,
+ "i3GEOF.juntamedidasvariavel",
+ false,
+ "hd",
+ "",
+ "",
+ "",
+ true,
+ "",
+ "",
+ "",
+ ""
+ );
+ divid = janela[2].id;
+ i3GEOF.juntamedidasvariavel.aguarde = $i("i3GEOF.juntamedidasvariavel_imagemCabecalho").style;
+ i3GEOF.juntamedidasvariavel.inicia(divid);
+ },
+ noNovoCalculo: function(){
+ var no = document.createElement("div");
+ no.innerHTML = '
' +
- '' ;
- $i("i3GEOF.junta_corpo").innerHTML = ins;
- new YAHOO.widget.Button(
- "i3geojuntaAplica",
- {onclick:{fn: i3GEOF.metaestat.analise.juntaMedidasVariaveis.aplica}}
- );
- i3GEOF.metaestat.analise.juntaMedidasVariaveis.noNovoCalculo();
- //ajuda para o calculo
- i3GEO.util.mensagemAjuda("i3GEOFjuntaColunasCalculadasMensagemAjuda",
- "Os cálculos são fórmulas que utilizam as colunas que forem juntadas e que serão incluídas "+
- "na nova camada. Cada uma dessas colunas receberá um nome sequencial, por exemplo valortema0,valortema1,"+
- "valortema2...
As colunas calculadas podem utilizar esses nomes como entrada em fórmulas. "+
- "Cada fórmula irá gerar uma nova coluna na tabela e deve utilizar a sintaxe SQL (SQL no Postgres)"+
- "