Commit c2dea8ae31c51d1f57ed3610b99c66c242b58cb4
1 parent
3892bacd
Exists in
master
and in
7 other branches
Inclusão de formulário para seleção de variáveis na interface carto_ol.htm
Showing
6 changed files
with
200 additions
and
11 deletions
Show diff stats
admin/php/classe_metaestat.php
@@ -223,7 +223,6 @@ class Metaestat{ | @@ -223,7 +223,6 @@ class Metaestat{ | ||
223 | else{ | 223 | else{ |
224 | $colunageo = $dadosgeo["colunacentroide"]; | 224 | $colunageo = $dadosgeo["colunacentroide"]; |
225 | } | 225 | } |
226 | - | ||
227 | if($todasascolunas == 0){ | 226 | if($todasascolunas == 0){ |
228 | $sql = " SELECT d.".$dados["colunavalor"].",d.".$dados["colunaidgeo"]; | 227 | $sql = " SELECT d.".$dados["colunavalor"].",d.".$dados["colunaidgeo"]; |
229 | if(!empty($agruparpor)){ | 228 | if(!empty($agruparpor)){ |
@@ -240,6 +239,7 @@ class Metaestat{ | @@ -240,6 +239,7 @@ class Metaestat{ | ||
240 | $sqlgeo .= " FROM ".$dados["esquemadb"].".".$dados["tabela"]." as d,".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." as g "; | 239 | $sqlgeo .= " FROM ".$dados["esquemadb"].".".$dados["tabela"]." as d,".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." as g "; |
241 | } | 240 | } |
242 | else{ | 241 | else{ |
242 | + $sqlagrupamento = " SELECT d.".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"]." as d group by ".$agruparpor." order by ".$agruparpor; | ||
243 | $sqlgeo .= " FROM (SELECT sum(".$dados["colunavalor"].") as ".$dados["colunavalor"].",".$dados["colunaidgeo"].",".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"] ." group by ".$agruparpor.",".$dados["colunaidgeo"].") as d, ".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." as g"; | 243 | $sqlgeo .= " FROM (SELECT sum(".$dados["colunavalor"].") as ".$dados["colunavalor"].",".$dados["colunaidgeo"].",".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"] ." group by ".$agruparpor.",".$dados["colunaidgeo"].") as d, ".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." as g"; |
244 | $sql .= " FROM (SELECT sum(".$dados["colunavalor"].") as ".$dados["colunavalor"].",".$dados["colunaidgeo"].",".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"] ." group by ".$agruparpor.",".$dados["colunaidgeo"].") as d "; | 244 | $sql .= " FROM (SELECT sum(".$dados["colunavalor"].") as ".$dados["colunavalor"].",".$dados["colunaidgeo"].",".$agruparpor." FROM ".$dados["esquemadb"].".".$dados["tabela"] ." group by ".$agruparpor.",".$dados["colunaidgeo"].") as d "; |
245 | } | 245 | } |
@@ -259,7 +259,7 @@ class Metaestat{ | @@ -259,7 +259,7 @@ class Metaestat{ | ||
259 | //atencao: cuidado ao alterar essa string pois ') as foo' pode ser usado para replace em outras funcoes | 259 | //atencao: cuidado ao alterar essa string pois ') as foo' pode ser usado para replace em outras funcoes |
260 | $sqlgeo = $colunageo." from ($sqlgeo) as foo using unique ".$dados["colunaidgeo"]." using srid=".$dadosgeo["srid"]; | 260 | $sqlgeo = $colunageo." from ($sqlgeo) as foo using unique ".$dados["colunaidgeo"]." using srid=".$dadosgeo["srid"]; |
261 | $colunas = $this->colunasTabela($dados["codigo_estat_conexao"],$dados["esquemadb"],$dados["tabela"]); | 261 | $colunas = $this->colunasTabela($dados["codigo_estat_conexao"],$dados["esquemadb"],$dados["tabela"]); |
262 | - return array("sql"=>$sql,"sqlmapserver"=>$sqlgeo,"filtro"=>$filtro,"colunas"=>$colunas); | 262 | + return array("sqlagrupamento"=>$sqlagrupamento,"sql"=>$sql,"sqlmapserver"=>$sqlgeo,"filtro"=>$filtro,"colunas"=>$colunas); |
263 | } | 263 | } |
264 | function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor=""){ | 264 | function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor=""){ |
265 | if(empty($tipolayer)){ | 265 | if(empty($tipolayer)){ |
@@ -406,6 +406,21 @@ class Metaestat{ | @@ -406,6 +406,21 @@ class Metaestat{ | ||
406 | } | 406 | } |
407 | return false; | 407 | return false; |
408 | } | 408 | } |
409 | + function valorUnicoMedidaVariavel($id_medida_variavel,$coluna){ | ||
410 | + $sqlf = $this->sqlMedidaVariavel($id_medida_variavel,0,$coluna); | ||
411 | + $sqlf = $sqlf["sqlagrupamento"]; | ||
412 | + $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); | ||
413 | + if(!empty($metaVariavel["codigo_estat_conexao"])){ | ||
414 | + $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); | ||
415 | + $dbhold = $this->dbh; | ||
416 | + $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | ||
417 | + $this->dbh = $dbh; | ||
418 | + $res = $this->execSQL($sqlf); | ||
419 | + $this->dbh = $dbhold; | ||
420 | + return $res; | ||
421 | + } | ||
422 | + return false; | ||
423 | + } | ||
409 | function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor=""){ | 424 | function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor=""){ |
410 | if(!empty($agruparpor)){ | 425 | if(!empty($agruparpor)){ |
411 | $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,1); | 426 | $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,1); |
@@ -961,7 +976,17 @@ class Metaestat{ | @@ -961,7 +976,17 @@ class Metaestat{ | ||
961 | //echo $sql;exit; | 976 | //echo $sql;exit; |
962 | return $this->execSQL($sql,$id_parametro_medida); | 977 | return $this->execSQL($sql,$id_parametro_medida); |
963 | } | 978 | } |
964 | - | 979 | + function listaValoresParametro($id_parametro_medida){ |
980 | + $parametro = $this->listaParametro("",$id_parametro_medida); | ||
981 | + //$medida = $this->listaMedidaVariavel("",$parametro["id_medida_variavel"]); | ||
982 | + $sm = $this->valorUnicoMedidaVariavel($parametro["id_medida_variavel"],$parametro["coluna"]); | ||
983 | + $nsm = array(); | ||
984 | + foreach($sm as $s){ | ||
985 | + $nsm[] = $s[$parametro["coluna"]]; | ||
986 | + } | ||
987 | + return $nsm; | ||
988 | + exit; | ||
989 | + } | ||
965 | /* | 990 | /* |
966 | Function: listaTipoPeriodo | 991 | Function: listaTipoPeriodo |
967 | 992 |
admin/php/metaestat.php
@@ -151,6 +151,11 @@ switch (strtoupper($funcao)) | @@ -151,6 +151,11 @@ switch (strtoupper($funcao)) | ||
151 | retornaJSON($m->listaParametro($id_medida_variavel,$id_parametro_medida)); | 151 | retornaJSON($m->listaParametro($id_medida_variavel,$id_parametro_medida)); |
152 | exit; | 152 | exit; |
153 | break; | 153 | break; |
154 | + case "LISTAVALORESPARAMETRO": | ||
155 | + $m = new Metaestat(); | ||
156 | + retornaJSON($m->listaValoresParametro($id_parametro_medida)); | ||
157 | + exit; | ||
158 | + break; | ||
154 | /* | 159 | /* |
155 | Valor: LISTAUNIDADEMEDIDA | 160 | Valor: LISTAUNIDADEMEDIDA |
156 | 161 |
classesjs/classe_cartograma.js
@@ -39,8 +39,8 @@ i3GEO.cartograma = { | @@ -39,8 +39,8 @@ i3GEO.cartograma = { | ||
39 | INTERFACE: "flutuante", | 39 | INTERFACE: "flutuante", |
40 | TOP: 50, | 40 | TOP: 50, |
41 | LEFT: 100, | 41 | LEFT: 100, |
42 | - LARGURA: 250, | ||
43 | - ALTURA: 100, | 42 | + LARGURA: 260, |
43 | + ALTURA: 300, | ||
44 | inicia: function(iddiv){ | 44 | inicia: function(iddiv){ |
45 | if(!iddiv){ | 45 | if(!iddiv){ |
46 | iddiv = "i3geoCartoParametros_corpo"; | 46 | iddiv = "i3geoCartoParametros_corpo"; |
@@ -58,9 +58,9 @@ i3GEO.cartograma = { | @@ -58,9 +58,9 @@ i3GEO.cartograma = { | ||
58 | var onde = $i("i3geoCartoVariaveis"), | 58 | var onde = $i("i3geoCartoVariaveis"), |
59 | temp = function(dados){ | 59 | temp = function(dados){ |
60 | var n = dados.length, | 60 | var n = dados.length, |
61 | - ins = "", | 61 | + ins = '<p class="paragrafo" >'+$trad("x58")+'</p>', |
62 | i; | 62 | i; |
63 | - ins = "<select style='width:"+(i3GEO.cartograma.LARGURA - 10)+"px' onchange=''><option value=''>---</option>"; | 63 | + ins += "<select style='width:"+(i3GEO.cartograma.LARGURA - 20)+"px' onchange='i3GEO.cartograma.comboVariaveisOnchange(this)'><option value=''>---</option>"; |
64 | for(i=0;i<n;i++){ | 64 | for(i=0;i<n;i++){ |
65 | ins += "<option title='"+dados[i].descricao+"' value='"+dados[i].codigo_variavel+"'>"+dados[i].nome+"</option>"; | 65 | ins += "<option title='"+dados[i].descricao+"' value='"+dados[i].codigo_variavel+"'>"+dados[i].nome+"</option>"; |
66 | } | 66 | } |
@@ -73,11 +73,143 @@ i3GEO.cartograma = { | @@ -73,11 +73,143 @@ i3GEO.cartograma = { | ||
73 | i3GEO.cartograma.aguarde(onde); | 73 | i3GEO.cartograma.aguarde(onde); |
74 | i3GEO.php.listaVariavel(temp); | 74 | i3GEO.php.listaVariavel(temp); |
75 | }, | 75 | }, |
76 | + comboVariaveisOnchange: function(combo){ | ||
77 | + if(combo.value != ""){ | ||
78 | + i3GEO.cartograma.comboMedidasVariavel(combo.value); | ||
79 | + } | ||
80 | + else{ | ||
81 | + $i("i3geoCartoMedidasVariavel").innerHTML = ""; | ||
82 | + $i("i3geoCartoParametrosMedidasVariavel").innerHTML = ""; | ||
83 | + } | ||
84 | + }, | ||
85 | + comboMedidasVariavel: function(codigo_variavel){ | ||
86 | + var onde = $i("i3geoCartoMedidasVariavel"), | ||
87 | + temp = function(dados){ | ||
88 | + var n = dados.length, | ||
89 | + ins = '<p class="paragrafo" >'+$trad("x59")+'</p>', | ||
90 | + i; | ||
91 | + ins += "<select style='width:"+(i3GEO.cartograma.LARGURA - 20)+"px' onchange='i3GEO.cartograma.comboMedidaVariavelOnchange(this)'><option value=''>---</option>"; | ||
92 | + for(i=0;i<n;i++){ | ||
93 | + ins += "<option value='"+dados[i].id_medida_variavel+"'>"+dados[i].nomemedida+"</option>"; | ||
94 | + } | ||
95 | + ins += "</select>"; | ||
96 | + if(onde){ | ||
97 | + onde.innerHTML = ins; | ||
98 | + } | ||
99 | + return ins; | ||
100 | + }; | ||
101 | + i3GEO.cartograma.aguarde(onde); | ||
102 | + i3GEO.php.listaMedidaVariavel(codigo_variavel,temp); | ||
103 | + }, | ||
104 | + comboMedidaVariavelOnchange: function(combo){ | ||
105 | + if(combo.value != ""){ | ||
106 | + i3GEO.cartograma.parametros.lista(combo.value); | ||
107 | + } | ||
108 | + else{ | ||
109 | + $i("i3geoCartoParametrosMedidasVariavel").innerHTML = ""; | ||
110 | + } | ||
111 | + }, | ||
112 | + parametros: { | ||
113 | + //guarda a lista de parametros | ||
114 | + dados: [], | ||
115 | + //obtem a lista com os parametros da medida | ||
116 | + //cria os combos para os parametros que sao pai de todos | ||
117 | + lista: function(id_medida_variavel){ | ||
118 | + var temp = function(dados){ | ||
119 | + i3GEO.cartograma.parametros.dados = dados; | ||
120 | + i3GEO.cartograma.parametros.combos("0"); | ||
121 | + }; | ||
122 | + i3GEO.php.listaParametrosMedidaVariavel(id_medida_variavel,temp); | ||
123 | + }, | ||
124 | + //cria um combo para escolher os valores de um parametro | ||
125 | + combos: function(nivel){ | ||
126 | + var dados = i3GEO.cartograma.parametros.dados, | ||
127 | + n = dados.length, | ||
128 | + onde = $i("i3geoCartoParametrosMedidasVariavel"), | ||
129 | + idpar,idcombo,i,novoel,teste; | ||
130 | + //cria o combo para o parametro cujo id_pai for do nivel escolhido | ||
131 | + for(i=0;i<n;i++){ | ||
132 | + if(dados[i].id_pai == nivel){ | ||
133 | + idpar = "parametro_"+dados[i].id_parametro_medida; | ||
134 | + idcombo = "parametro_"+dados[i].id_parametro_medida+"_"+nivel; | ||
135 | + teste = i3GEO.cartograma.parametros.retornaIdPai(dados[i].id_parametro_medida); | ||
136 | + if(teste != false){ | ||
137 | + idpar = "parametro_"+teste; | ||
138 | + } | ||
139 | + if(!$i(idpar)){ | ||
140 | + novoel = document.createElement("div"); | ||
141 | + novoel.id = idpar; | ||
142 | + novoel.className = "paragrafo"; | ||
143 | + onde.appendChild(novoel); | ||
144 | + onde = novoel; | ||
145 | + } | ||
146 | + onde = $i(idpar); | ||
147 | + if(!$i(idcombo)){ | ||
148 | + novoel = document.createElement("div"); | ||
149 | + novoel.id = idcombo; | ||
150 | + novoel.className = "paragrafo"; | ||
151 | + onde.appendChild(novoel); | ||
152 | + i3GEO.cartograma.parametros.valoresCombo(dados[i].id_parametro_medida,dados[i].nome,nivel,onde); | ||
153 | + } | ||
154 | + } | ||
155 | + } | ||
156 | + }, | ||
157 | + valoresCombo: function(id_parametro_medida,titulo,nivel,onde){ | ||
158 | + var temp = function(dados){ | ||
159 | + var n = dados.length, | ||
160 | + ins = "", | ||
161 | + oc = "'i3GEO.cartograma.parametros.combos(\""+id_parametro_medida+"\")'", | ||
162 | + filho = i3GEO.cartograma.parametros.retornaIdFilho(id_parametro_medida), | ||
163 | + i,novoel; | ||
164 | + if(filho == false){ | ||
165 | + oc = ""; | ||
166 | + } | ||
167 | + ins = "<p class=paragrafo >"+titulo+"</p>"; | ||
168 | + ins += "<select style='background:beige;width:"+(i3GEO.cartograma.LARGURA - 20)+"px' onchange="+oc+" ><option value=''>---</option>"; | ||
169 | + for(i=0;i<n;i++){ | ||
170 | + ins += "<option value='"+dados[i]+"'>"+dados[i]+"</option>"; | ||
171 | + } | ||
172 | + ins += "</select>"; | ||
173 | + novoel = document.createElement("div"); | ||
174 | + novoel.className = "paragrafo"; | ||
175 | + novoel.innerHTML = ins; | ||
176 | + onde.appendChild(novoel); | ||
177 | + }; | ||
178 | + i3GEO.php.listaValoresParametroMedidaVariavel(id_parametro_medida,temp); | ||
179 | + }, | ||
180 | + //retorna o id do parametro que e filho de um outro parametro | ||
181 | + retornaIdFilho:function(pai){ | ||
182 | + var dados = i3GEO.cartograma.parametros.dados, | ||
183 | + n = dados.length, | ||
184 | + i; | ||
185 | + for(i=0;i<n;i++){ | ||
186 | + if(dados[i].id_pai == pai){ | ||
187 | + return dados[i].id_parametro_medida; | ||
188 | + } | ||
189 | + } | ||
190 | + return false; | ||
191 | + }, | ||
192 | + //retorna o id do parametro que e pai de um outro parametro | ||
193 | + retornaIdPai:function(filho){ | ||
194 | + var dados = i3GEO.cartograma.parametros.dados, | ||
195 | + n = dados.length, | ||
196 | + i; | ||
197 | + for(i=0;i<n;i++){ | ||
198 | + if(dados[i].id_parametro_medida == filho){ | ||
199 | + return dados[i].id_pai; | ||
200 | + } | ||
201 | + } | ||
202 | + return false; | ||
203 | + } | ||
204 | + }, | ||
76 | html: function(){ | 205 | html: function(){ |
77 | var ins = '<div id="i3geoCartoVariaveisContainer" >' + | 206 | var ins = '<div id="i3geoCartoVariaveisContainer" >' + |
78 | - '<p class="paragrafo" >'+$trad("x58")+'</p>' + | ||
79 | '<div class="paragrafo" id="i3geoCartoVariaveis" >' + | 207 | '<div class="paragrafo" id="i3geoCartoVariaveis" >' + |
80 | '</div>' + | 208 | '</div>' + |
209 | + '<div class="paragrafo" id="i3geoCartoMedidasVariavel" >' + | ||
210 | + '</div>' + | ||
211 | + '<div class="paragrafo" id="i3geoCartoParametrosMedidasVariavel" >' + | ||
212 | + '</div>' + | ||
81 | '</div>'; | 213 | '</div>'; |
82 | return ins; | 214 | return ins; |
83 | }, | 215 | }, |
classesjs/classe_php.js
@@ -1429,4 +1429,31 @@ i3GEO.php = { | @@ -1429,4 +1429,31 @@ i3GEO.php = { | ||
1429 | var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaVariavel&g_sid="+i3GEO.configura.sid; | 1429 | var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaVariavel&g_sid="+i3GEO.configura.sid; |
1430 | i3GEO.util.ajaxGet(p,funcao); | 1430 | i3GEO.util.ajaxGet(p,funcao); |
1431 | }, | 1431 | }, |
1432 | + /* | ||
1433 | + Function: listaMedidaVariavel | ||
1434 | + | ||
1435 | + Obtém a lista medidas de uma variável do sistema de metadados estatísticos | ||
1436 | + */ | ||
1437 | + listaMedidaVariavel: function(codigo_variavel,funcao){ | ||
1438 | + var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaMedidaVariavel&codigo_variavel="+codigo_variavel+"&g_sid="+i3GEO.configura.sid; | ||
1439 | + i3GEO.util.ajaxGet(p,funcao); | ||
1440 | + }, | ||
1441 | + /* | ||
1442 | + Function: listaParametrosMedidaVariavel | ||
1443 | + | ||
1444 | + Obtém a lista de parâmetros de uma medida de uma variável do sistema de metadados estatísticos | ||
1445 | + */ | ||
1446 | + listaParametrosMedidaVariavel: function(id_medida_variavel,funcao){ | ||
1447 | + var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaParametro&id_medida_variavel="+id_medida_variavel+"&g_sid="+i3GEO.configura.sid; | ||
1448 | + i3GEO.util.ajaxGet(p,funcao); | ||
1449 | + }, | ||
1450 | + /* | ||
1451 | + Function: listaValoresParametroMedidaVariavel | ||
1452 | + | ||
1453 | + Obtém a lista de valores de um parâmetro de uma medida de uma variável do sistema de metadados estatísticos | ||
1454 | + */ | ||
1455 | + listaValoresParametroMedidaVariavel: function(id_parametro_medida,funcao){ | ||
1456 | + var p = i3GEO.configura.locaplic+"/admin/php/metaestat.php?funcao=listaValoresParametro&id_parametro_medida="+id_parametro_medida+"&g_sid="+i3GEO.configura.sid; | ||
1457 | + i3GEO.util.ajaxGet(p,funcao); | ||
1458 | + } | ||
1432 | }; | 1459 | }; |
1433 | \ No newline at end of file | 1460 | \ No newline at end of file |
classesjs/dicionario.js
interface/carto_ol.htm
@@ -172,8 +172,8 @@ i3GEO.inicia(); | @@ -172,8 +172,8 @@ i3GEO.inicia(); | ||
172 | i3GEO.cartograma.INTERFACE = "flutuante"; | 172 | i3GEO.cartograma.INTERFACE = "flutuante"; |
173 | i3GEO.cartograma.TOP = 50; | 173 | i3GEO.cartograma.TOP = 50; |
174 | i3GEO.cartograma.LEFT = 100; | 174 | i3GEO.cartograma.LEFT = 100; |
175 | -i3GEO.cartograma.LARGURA = 250; | ||
176 | -i3GEO.cartograma.ALTURA = 100; | 175 | +i3GEO.cartograma.LARGURA = 260; |
176 | +i3GEO.cartograma.ALTURA = 300; | ||
177 | i3GEO.cartograma.inicia(); | 177 | i3GEO.cartograma.inicia(); |
178 | </script> | 178 | </script> |
179 | </body> | 179 | </body> |