Commit fbeb11c9747e8503f7d414db3d2341246a33c1df
1 parent
8540381a
Exists in
master
and in
7 other branches
--no commit message
Showing
4 changed files
with
101 additions
and
2 deletions
Show diff stats
admin/admin.db
No preview for this file type
admin/php/classe_metaestat.php
@@ -289,6 +289,9 @@ class Metaestat{ | @@ -289,6 +289,9 @@ class Metaestat{ | ||
289 | * @return array("sqlagrupamento"=>,"sql"=>,"sqlmapserver"=>,"filtro"=>,"colunas"=>,"alias"=>,"colunavalor"=>,"titulo"=>,"nomeregiao"=>) | 289 | * @return array("sqlagrupamento"=>,"sql"=>,"sqlmapserver"=>,"filtro"=>,"colunas"=>,"alias"=>,"colunavalor"=>,"titulo"=>,"nomeregiao"=>) |
290 | */ | 290 | */ |
291 | function sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor="",$tipolayer="polygon",$codigo_tipo_regiao = ""){ | 291 | function sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor="",$tipolayer="polygon",$codigo_tipo_regiao = ""){ |
292 | + // | ||
293 | + //o sql que faz acesso aos dados e marcado com /*SE*//*SE*/ na string que sera usada nos mapfiles | ||
294 | + // | ||
292 | $filtro = false; | 295 | $filtro = false; |
293 | $dados = $this->listaMedidaVariavel("",$id_medida_variavel); | 296 | $dados = $this->listaMedidaVariavel("",$id_medida_variavel); |
294 | $pp = $this->listaParametro($id_medida_variavel,"",0); | 297 | $pp = $this->listaParametro($id_medida_variavel,"",0); |
@@ -452,10 +455,10 @@ class Metaestat{ | @@ -452,10 +455,10 @@ class Metaestat{ | ||
452 | $sqlgeo .= " WHERE ".$j; | 455 | $sqlgeo .= " WHERE ".$j; |
453 | 456 | ||
454 | if($agregaregiao == true){ | 457 | if($agregaregiao == true){ |
455 | - $sqlgeo = $colunageo." from ( ".$sqlgeo." __filtro__ ) as foo using unique ".$dadosAgregacao["colunaligacao_regiaopai"]." using srid=".$dadosgeo["srid"]; | 458 | + $sqlgeo = $colunageo." from /*SE*/( ".$sqlgeo." __filtro__ )/*SE*/ as foo using unique ".$dadosAgregacao["colunaligacao_regiaopai"]." using srid=".$dadosgeo["srid"]; |
456 | } | 459 | } |
457 | else{ | 460 | else{ |
458 | - $sqlgeo = $colunageo." from (".$sqlgeo." __filtro__ ) as foo using unique ".$dados["colunaidgeo"]." using srid=".$dadosgeo["srid"]; | 461 | + $sqlgeo = $colunageo." from /*SE*/(".$sqlgeo." __filtro__ )/*SE*/ as foo using unique ".$dados["colunaidgeo"]." using srid=".$dadosgeo["srid"]; |
459 | } | 462 | } |
460 | //remove ambiguidades | 463 | //remove ambiguidades |
461 | $sqlgeo = str_replace("d.".$dados["colunaidgeo"].",g.".$dados["colunaidgeo"],"d.".$dados["colunaidgeo"],$sqlgeo); | 464 | $sqlgeo = str_replace("d.".$dados["colunaidgeo"].",g.".$dados["colunaidgeo"],"d.".$dados["colunaidgeo"],$sqlgeo); |
ferramentas/metaestat/analise.php
@@ -121,6 +121,9 @@ switch (strtoupper($funcao)){ | @@ -121,6 +121,9 @@ switch (strtoupper($funcao)){ | ||
121 | case "CALOR": | 121 | case "CALOR": |
122 | $retorno = mapaDeCalor($map_file,$tema); | 122 | $retorno = mapaDeCalor($map_file,$tema); |
123 | break; | 123 | break; |
124 | + case "LISTALAYERSAGRUPADOS": | ||
125 | + $retorno = listaLayersAgrupados($map_file); | ||
126 | + break; | ||
124 | case "ADICIONALIMITEREGIAO": | 127 | case "ADICIONALIMITEREGIAO": |
125 | if(empty($outlinecolor)){ | 128 | if(empty($outlinecolor)){ |
126 | $outlinecolor = "255,0,0"; | 129 | $outlinecolor = "255,0,0"; |
@@ -631,4 +634,42 @@ function analise_aplicafiltroregiao($map_file,$codigo_tipo_regiao,$codigo_regiao | @@ -631,4 +634,42 @@ function analise_aplicafiltroregiao($map_file,$codigo_tipo_regiao,$codigo_regiao | ||
631 | $mapa->save($map_file); | 634 | $mapa->save($map_file); |
632 | return "ok"; | 635 | return "ok"; |
633 | } | 636 | } |
637 | +/** | ||
638 | + * Cria um novo layer no mapa atual fazendo a juncao dos SQLs para obter em uma mesma tabela todas as colunas das medidas de variavies | ||
639 | + * | ||
640 | + * @param string com a lista de nomes de layers separados por virgula | ||
641 | + * @return Nome do layer criado | ||
642 | + * | ||
643 | + */ | ||
644 | +function juntaMedidasVariaveis($map_file,$layerNames){ | ||
645 | + | ||
646 | +} | ||
647 | +/** | ||
648 | + * Lista os nomes dos layers originados do sistema METAESTAT. | ||
649 | + * Os layers sao agrupados por tipo de regiao e tipo de representacao | ||
650 | + * @param unknown $map_file | ||
651 | + * @return string | ||
652 | + */ | ||
653 | +function listaLayersAgrupados($map_file){ | ||
654 | + //MS_LAYER_POINT, MS_LAYER_LINE, MS_LAYER_POLYGON | ||
655 | + $tipos[0] = "ponto"; | ||
656 | + $tipos[1] = "linha"; | ||
657 | + $tipos[2] = "poligono"; | ||
658 | + $mapa = ms_newMapObj($map_file); | ||
659 | + $layers = analise_listaLayersMetaestat($mapa); | ||
660 | + $m = new Metaestat(); | ||
661 | + $camadas = array(); | ||
662 | + foreach($layers as $l){ | ||
663 | + $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO"); | ||
664 | + $tema = (mb_convert_encoding(($l->getmetadata("tema")),"UTF-8","ISO-8859-1")); | ||
665 | + $regiao = $m->listaTipoRegiao($codigo_tipo_regiao); | ||
666 | + $camadas[] = array( | ||
667 | + "layer"=>$l->name, | ||
668 | + "tema"=>$tema, | ||
669 | + "codigo_tipo_regiao"=>$codigo_tipo_regiao, | ||
670 | + "tipolayer"=>$tipos[$l->type] | ||
671 | + ); | ||
672 | + } | ||
673 | + return $camadas; | ||
674 | +} | ||
634 | ?> | 675 | ?> |
ferramentas/metaestat/index.js
@@ -193,6 +193,10 @@ i3GEOF.metaestat = { | @@ -193,6 +193,10 @@ i3GEOF.metaestat = { | ||
193 | titulo: "Mostra os valores como textos no mapa", | 193 | titulo: "Mostra os valores como textos no mapa", |
194 | onclick: "i3GEOF.metaestat.analise.toponimia()", | 194 | onclick: "i3GEOF.metaestat.analise.toponimia()", |
195 | icone: "imagens/gisicons/label.png" | 195 | icone: "imagens/gisicons/label.png" |
196 | + },{ | ||
197 | + titulo: "Junta dados das camadas", | ||
198 | + onclick: "i3GEOF.metaestat.analise.juntaMedidasVariaveis()", | ||
199 | + icone: "imagens/gisicons/layer-group-add.png" | ||
196 | } | 200 | } |
197 | ], | 201 | ], |
198 | /** | 202 | /** |
@@ -323,6 +327,57 @@ i3GEOF.metaestat = { | @@ -323,6 +327,57 @@ i3GEOF.metaestat = { | ||
323 | i3GEO.util.dialogoFerramenta("i3GEO.tema.dialogo.toponimia()","toponimia","toponimia","index.js","i3GEOF.metaestat.analise.abreToponimia()"); | 327 | i3GEO.util.dialogoFerramenta("i3GEO.tema.dialogo.toponimia()","toponimia","toponimia","index.js","i3GEOF.metaestat.analise.abreToponimia()"); |
324 | }, | 328 | }, |
325 | /** | 329 | /** |
330 | + * Junta camadas em uma nova, contendo as colunas das medidas | ||
331 | + */ | ||
332 | + juntaMedidasVariaveis: function(){ | ||
333 | + var p = i3GEO.configura.locaplic+"/ferramentas/metaestat/analise.php?g_sid="+i3GEO.configura.sid + | ||
334 | + "&funcao=listaLayersAgrupados", | ||
335 | + temp = function(retorno){ | ||
336 | + i3GEO.janela.fechaAguarde("aguardeBuscaDados"); | ||
337 | + if($i("i3GEOF.junta_corpo")){ | ||
338 | + return; | ||
339 | + } | ||
340 | + var minimiza,cabecalho,titulo,ins,n,i,lista = "<table class=lista4 >"; | ||
341 | + cabecalho = function(){ | ||
342 | + }; | ||
343 | + minimiza = function(){ | ||
344 | + i3GEO.janela.minimiza("i3GEOF.junta"); | ||
345 | + }; | ||
346 | + //cria a janela flutuante | ||
347 | + titulo = "Junção de medidas </a>"; | ||
348 | + i3GEO.janela.cria( | ||
349 | + "260px", | ||
350 | + "340px", | ||
351 | + "", | ||
352 | + "", | ||
353 | + "", | ||
354 | + titulo, | ||
355 | + "i3GEOF.junta", | ||
356 | + false, | ||
357 | + "hd", | ||
358 | + cabecalho, | ||
359 | + minimiza | ||
360 | + ); | ||
361 | + $i("i3GEOF.junta_corpo").style.backgroundColor = "white"; | ||
362 | + n = retorno.data.length; | ||
363 | + for(i=0;i<n;i++){ | ||
364 | + lista += "<tr><td><input style=cursor:pointer type=checkbox id='"+retorno.data[i].layer+"' ></td><td>"+retorno.data[i].tema+"</td></tr>"; | ||
365 | + } | ||
366 | + lista += "</table>"; | ||
367 | + ins = "" + | ||
368 | + '<p class=paragrafo ><b>Escolha as camadas de mesmo tipo e região:</b></p>' + | ||
369 | + lista + | ||
370 | + '<br><br><input id=i3geojuntaAplica type="button" value="Aplicar" />'; | ||
371 | + $i("i3GEOF.junta_corpo").innerHTML = ins; | ||
372 | + new YAHOO.widget.Button( | ||
373 | + "i3geojuntaAplica", | ||
374 | + {onclick:{fn: i3GEOF.metaestat.analise.filtraPeriodo.adicionaFiltro}} | ||
375 | + ); | ||
376 | + }; | ||
377 | + i3GEO.janela.abreAguarde("aguardeBuscaDados","Aguarde..."); | ||
378 | + i3GEO.util.ajaxGet(p,temp); | ||
379 | + }, | ||
380 | + /** | ||
326 | * Obtem os parametros necessarios ao funcionamento de i3GEOF.metaestat.analise.toponimia() | 381 | * Obtem os parametros necessarios ao funcionamento de i3GEOF.metaestat.analise.toponimia() |
327 | * Abre a janela de opcoes de i3GEOF.toponimia.iniciaJanelaFlutuante() | 382 | * Abre a janela de opcoes de i3GEOF.toponimia.iniciaJanelaFlutuante() |
328 | */ | 383 | */ |