Commit ab63735760c42e394b0253ca9a0f6f0c9e13fe2d

Authored by Edmar Moretti
1 parent a07cf91e

$1

admin/admin.db
No preview for this file type
admin/php/classe_arvore.php
@@ -813,7 +813,8 @@ class Arvore @@ -813,7 +813,8 @@ class Arvore
813 } 813 }
814 if(strtolower($recordset["tipoa_tema"]) == "wms") 814 if(strtolower($recordset["tipoa_tema"]) == "wms")
815 { 815 {
816 - $down = "nao";$ogc="nao"; 816 + $down = "nao";
  817 + $ogc = "nao";
817 } 818 }
818 if ($recordset["link_tema"] != "") 819 if ($recordset["link_tema"] != "")
819 { 820 {
admin/php/classe_metaestat.php
@@ -288,7 +288,7 @@ class Metaestat{ @@ -288,7 +288,7 @@ class Metaestat{
288 * @param codigo do tipo de regiao. Se nao for definido, utiliza-se o default da variavel 288 * @param codigo do tipo de regiao. Se nao for definido, utiliza-se o default da variavel
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 = "",$suportaWMST = false){
292 // 292 //
293 //o sql que faz acesso aos dados e marcado com /*SE*//*SE*/ na string que sera usada nos mapfiles 293 //o sql que faz acesso aos dados e marcado com /*SE*//*SE*/ na string que sera usada nos mapfiles
294 // 294 //
@@ -432,6 +432,10 @@ class Metaestat{ @@ -432,6 +432,10 @@ class Metaestat{
432 else{ 432 else{
433 $parametrosMedida = ""; 433 $parametrosMedida = "";
434 } 434 }
  435 + //o campo deve ser convertido para data
  436 + if($suportaWMST == true){
  437 + $parametrosMedida = $this->listaParametroTempo2CampoData($id_medida_variavel)." as dimtempo,";
  438 + }
435 $sql .= " FROM (SELECT $parametrosMedida * FROM ".$dados["esquemadb"].".".$dados["tabela"] ." __dadosfiltro__ ) as d "; 439 $sql .= " FROM (SELECT $parametrosMedida * FROM ".$dados["esquemadb"].".".$dados["tabela"] ." __dadosfiltro__ ) as d ";
436 } 440 }
437 } 441 }
@@ -457,13 +461,17 @@ class Metaestat{ @@ -457,13 +461,17 @@ class Metaestat{
457 $j = " d.".$dados["colunaidgeo"]."::text = g.".$dadosgeo["identificador"]."::text"; 461 $j = " d.".$dados["colunaidgeo"]."::text = g.".$dadosgeo["identificador"]."::text";
458 } 462 }
459 $sqlgeo .= " WHERE ".$j; 463 $sqlgeo .= " WHERE ".$j;
460 - 464 + if($suportaWMST == true){
  465 + $sqlWMST = $this->listaParametroTempo2CampoData($id_medida_variavel,"d.")." as dimtempo";
  466 + $sqlgeo = str_replace("SELECT d.*","SELECT d.*,".$sqlWMST,$sqlgeo);
  467 + }
461 if($agregaregiao == true){ 468 if($agregaregiao == true){
462 $sqlgeo = $colunageo." from /*SE*/( ".$sqlgeo." __filtro__ )/*SE*/ as foo using unique ".$dadosAgregacao["colunaligacao_regiaopai"]." using srid=".$dadosgeo["srid"]; 469 $sqlgeo = $colunageo." from /*SE*/( ".$sqlgeo." __filtro__ )/*SE*/ as foo using unique ".$dadosAgregacao["colunaligacao_regiaopai"]." using srid=".$dadosgeo["srid"];
463 } 470 }
464 else{ 471 else{
465 - $sqlgeo = $colunageo." from /*SE*/(".$sqlgeo." __filtro__ )/*SE*/ as foo using unique ".$dados["colunaidgeo"]." using srid=".$dadosgeo["srid"]; 472 + $sqlgeo = $colunageo." from /*SE*/(".$sqlgeo." __filtro__ )/*SE*/ as foo using unique ".$dados["colunaidunico"]." using srid=".$dadosgeo["srid"];
466 } 473 }
  474 + //var_dump($dados);exit;
467 //remove ambiguidades 475 //remove ambiguidades
468 $sqlgeo = str_replace("d.".$dados["colunaidgeo"].",g.".$dados["colunaidgeo"],"d.".$dados["colunaidgeo"],$sqlgeo); 476 $sqlgeo = str_replace("d.".$dados["colunaidgeo"].",g.".$dados["colunaidgeo"],"d.".$dados["colunaidgeo"],$sqlgeo);
469 $sql = str_replace("d.".$dados["colunaidgeo"].",g.".$dados["colunaidgeo"],"d.".$dados["colunaidgeo"],$sql); 477 $sql = str_replace("d.".$dados["colunaidgeo"].",g.".$dados["colunaidgeo"],"d.".$dados["colunaidgeo"],$sql);
@@ -507,9 +515,9 @@ class Metaestat{ @@ -507,9 +515,9 @@ class Metaestat{
507 if($titulolayer == ""){ 515 if($titulolayer == ""){
508 $titulolayer = $meta["nomemedida"]; 516 $titulolayer = $meta["nomemedida"];
509 } 517 }
510 - $conexao = $this->listaConexao($meta["codigo_estat_conexao"],true);  
511 - $conexao = "user=".$conexao["usuario"]." password=".$conexao["senha"]." dbname=".$conexao["bancodedados"]." host=".$conexao["host"]." port=".$conexao["porta"]."";  
512 - $sql = $this->sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor,$tipolayer,$codigo_tipo_regiao); 518 + $dconexao = $this->listaConexao($meta["codigo_estat_conexao"],true);
  519 + $conexao = "user=".$dconexao["usuario"]." password=".$dconexao["senha"]." dbname=".$dconexao["bancodedados"]." host=".$dconexao["host"]." port=".$dconexao["porta"]."";
  520 + $sql = $this->sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor,$tipolayer,$codigo_tipo_regiao,$suportaWMST);
513 if(empty($codigo_tipo_regiao)){ 521 if(empty($codigo_tipo_regiao)){
514 $d = $this->listaMedidaVariavel("",$id_medida_variavel); 522 $d = $this->listaMedidaVariavel("",$id_medida_variavel);
515 $codigo_tipo_regiao = $d["codigo_tipo_regiao"]; 523 $codigo_tipo_regiao = $d["codigo_tipo_regiao"];
@@ -549,9 +557,9 @@ class Metaestat{ @@ -549,9 +557,9 @@ class Metaestat{
549 $titulolayer = mb_convert_encoding($sql["titulo"],"ISO-8859-1",mb_detect_encoding($sql["titulo"])); 557 $titulolayer = mb_convert_encoding($sql["titulo"],"ISO-8859-1",mb_detect_encoding($sql["titulo"]));
550 } 558 }
551 //pega os parametros caso seja um mapfile para WMS-time 559 //pega os parametros caso seja um mapfile para WMS-time
552 -  
553 if($suportaWMST == true){ 560 if($suportaWMST == true){
554 - $resolucao = $this->listaResolucaoWMST($id_medida_variavel); 561 + $sqlMinMax = "select min(dimtempo) as min,max(dimtempo) as max from(".$sql["sql"].") as x";
  562 + $minmaxdata = $this->execSQLDB($meta["codigo_estat_conexao"],$sqlMinMax );
555 } 563 }
556 $dados[] = "MAP"; 564 $dados[] = "MAP";
557 $dados[] = 'SYMBOLSET "'.$this->locaplic.'/symbols/simbolosv6.sym"'; 565 $dados[] = 'SYMBOLSET "'.$this->locaplic.'/symbols/simbolosv6.sym"';
@@ -592,6 +600,11 @@ class Metaestat{ @@ -592,6 +600,11 @@ class Metaestat{
592 $dados[] = ' ITENS "'.implode(",",$sql["colunas"]).'"'; 600 $dados[] = ' ITENS "'.implode(",",$sql["colunas"]).'"';
593 $dados[] = ' ITENSDESC "'.implode(",",$sql["alias"]).'"'; 601 $dados[] = ' ITENSDESC "'.implode(",",$sql["alias"]).'"';
594 } 602 }
  603 + if($suportaWMST == true){
  604 + $dados[] = ' "wms_timeitem" "dimtempo"';
  605 + $dados[] = ' "wms_timeextent" "'.$minmaxdata[0]["min"]."/".$minmaxdata[0]["max"].'"';
  606 + $dados[] = ' "wms_timedefault" "'.$minmaxdata[0]["max"].'"';
  607 + }
595 $dados[] = ' END'; 608 $dados[] = ' END';
596 if($classes == ""){ 609 if($classes == ""){
597 $dados[] = ' CLASS'; 610 $dados[] = ' CLASS';
@@ -1700,19 +1713,40 @@ class Metaestat{ @@ -1700,19 +1713,40 @@ class Metaestat{
1700 $sql .= "ORDER BY bancodedados,host,usuario"; 1713 $sql .= "ORDER BY bancodedados,host,usuario";
1701 return $this->execSQL($sql,$codigo_estat_conexao); 1714 return $this->execSQL($sql,$codigo_estat_conexao);
1702 } 1715 }
1703 - function listaResolucaoWMST($id_medida_variavel){  
1704 - $campoData = $this->listaParametroTempo2CampoData($id_medida_variavel);  
1705 - }  
1706 - function listaParametroTempo2CampoData($id_medida_variavel){ 1716 + function listaParametroTempo2CampoData($id_medida_variavel,$prefixoAlias = ""){
1707 //lista os parametros temporais 1717 //lista os parametros temporais
1708 $parametros = $this->listaParametro($id_medida_variavel,"","",true,true); 1718 $parametros = $this->listaParametro($id_medida_variavel,"","",true,true);
1709 echo "<pre>"; 1719 echo "<pre>";
1710 - var_dump($parametros);  
1711 - //faz o sql para pegar os valores e definir a resolucao  
1712 - foreach($parametros as $parametro){  
1713 - 1720 + //var_dump($parametros);exit;
  1721 + //faz o sql para pegar os valores e definir a resolucao
  1722 + //o tempo deve comecar sempre pelo ano
  1723 + $data = array();
  1724 + if($parametros[0]["tipo"] == 1){
  1725 + //ano
  1726 + $data[] = $prefixoAlias.$parametros[0]["coluna"];
  1727 + $tipodata = "YYYY";
  1728 + //mes
  1729 + if(!empty($parametros[1])){
  1730 + $data[] = "'-'".$prefixoAlias.$parametros[1]["coluna"];
  1731 + $tipodata = "YYYYMM";
  1732 + }
  1733 + else{
  1734 + $data[] = "'-01'";
  1735 + }
  1736 + //dia
  1737 + if(!empty($parametros[2])){
  1738 + $data[] = "'-'".$prefixoAlias.$parametros[2]["coluna"];
  1739 + $tipodata = "YYYYMMDD";
  1740 + }
  1741 + else{
  1742 + $data[] = "'-01'";
  1743 + }
  1744 + $data = implode("||",$data);
  1745 + /**
  1746 + * @TODO falta a hora
  1747 + */
  1748 + return "to_date($data,'$tipodata')";
1714 } 1749 }
1715 - //se for apenas do tipo anual  
1716 } 1750 }
1717 /** 1751 /**
1718 * Lista os dados de um ou de todos os parametros relacionados a uma medida de variavel 1752 * Lista os dados de um ou de todos os parametros relacionados a uma medida de variavel
classesphp/classe_menutemas.php
@@ -499,7 +499,7 @@ $fatorestrela - valor para normalizar o total de acessos com o valor da estrela @@ -499,7 +499,7 @@ $fatorestrela - valor para normalizar o total de acessos com o valor da estrela
499 */ 499 */
500 function procurartemasestrela($nivel,$fatorestrela) 500 function procurartemasestrela($nivel,$fatorestrela)
501 { 501 {
502 - include_once(__DIR_."/../admin/php/classe_arvore.php"); 502 + include_once(__DIR__."/../admin/php/classe_arvore.php");
503 $arvore = new Arvore($this->locaplic,$this->idioma); 503 $arvore = new Arvore($this->locaplic,$this->idioma);
504 $temas = $arvore->procuraTemasEstrela($nivel,$fatorestrela,$this->perfil); 504 $temas = $arvore->procuraTemasEstrela($nivel,$fatorestrela,$this->perfil);
505 unset($arvore); 505 unset($arvore);
@@ -67,7 +67,13 @@ ogc.php?intervalo=0,50 @@ -67,7 +67,13 @@ ogc.php?intervalo=0,50
67 $cache = true; 67 $cache = true;
68 require_once(dirname(__FILE__)."/classesphp/carrega_ext.php"); 68 require_once(dirname(__FILE__)."/classesphp/carrega_ext.php");
69 include(dirname(__FILE__)."/ms_configura.php"); 69 include(dirname(__FILE__)."/ms_configura.php");
70 -include(dirname(__FILE__)."/classesphp/pega_variaveis.php"); 70 +include(dirname(__FILE__)."/classesphp/pega_variaveis.php");
  71 +//define um nome para o mapfile caso a origem seja o sistema de metadados estatisticos
  72 +if(isset($id_medida_variavel)){
  73 + $tema = "ogcmetaestat".$id_medida_variavel;
  74 + $_GET["layers"] = $tema;
  75 + $_GET["LAYERS"] = $tema;
  76 +}
71 if(!isset($temas) && isset($tema)){ 77 if(!isset($temas) && isset($tema)){
72 $temas = $tema; 78 $temas = $tema;
73 } 79 }
@@ -154,10 +160,6 @@ if(count($_GET) == 0){ @@ -154,10 +160,6 @@ if(count($_GET) == 0){
154 $req->setParameter("SERVICE", "WMS"); 160 $req->setParameter("SERVICE", "WMS");
155 $cache = false; 161 $cache = false;
156 } 162 }
157 -//define um nome para o mapfile caso a origem seja o sistema de metadados estatisticos  
158 -if(isset($id_medida_variavel)){  
159 - $tema = "ogcmetaestat".$id_medida_variavel;  
160 -}  
161 if(isset($tema) && $tipo != "metadados"){ 163 if(isset($tema) && $tipo != "metadados"){
162 $tipo = ""; 164 $tipo = "";
163 } 165 }
@@ -233,7 +235,9 @@ else{ @@ -233,7 +235,9 @@ else{
233 $m = new Metaestat(); 235 $m = new Metaestat();
234 $m->nomecache = "ogcmetaestat".$id_medida_variavel; 236 $m->nomecache = "ogcmetaestat".$id_medida_variavel;
235 $mapfileMetaestat = $m->mapfileMedidaVariavel($id_medida_variavel,"",1,"","","","","","",true); 237 $mapfileMetaestat = $m->mapfileMedidaVariavel($id_medida_variavel,"",1,"","","","","","",true);
236 - $nmap = ms_newMapobj($mapfileMetaestat["mapfile"]); 238 + $nmap = ms_newMapobj($mapfileMetaestat["mapfile"]);
  239 + $nmap->setmetadata("ows_enable_request","*");
  240 + $req->setParameter("LAYERS", "ogcmetaestat".$id_medida_variavel);
237 } 241 }
238 else{ 242 else{
239 if(file_exists($locaplic."/temas/".$tx.".php") && $temai3geo == true){ 243 if(file_exists($locaplic."/temas/".$tx.".php") && $temai3geo == true){
@@ -526,7 +530,7 @@ if((isset($legenda)) &amp;&amp; (strtolower($legenda) == &quot;sim&quot;)){ @@ -526,7 +530,7 @@ if((isset($legenda)) &amp;&amp; (strtolower($legenda) == &quot;sim&quot;)){
526 $leg = $oMap->legend; 530 $leg = $oMap->legend;
527 $leg->set("status",MS_EMBED); 531 $leg->set("status",MS_EMBED);
528 } 532 }
529 -ms_ioinstallstdouttobuffer(); 533 +ms_ioinstallstdouttobuffer();
530 $oMap->owsdispatch($req); 534 $oMap->owsdispatch($req);
531 $contenttype = ms_iostripstdoutbuffercontenttype(); 535 $contenttype = ms_iostripstdoutbuffercontenttype();
532 if(strtolower($request) == "getcapabilities"){ 536 if(strtolower($request) == "getcapabilities"){
temas/_lwmstime.map
@@ -4,24 +4,24 @@ MAP @@ -4,24 +4,24 @@ MAP
4 LAYER 4 LAYER
5 CONNECTION "user=postgres password=postgres dbname=geosaude host=localhost port=5432" 5 CONNECTION "user=postgres password=postgres dbname=geosaude host=localhost port=5432"
6 CONNECTIONTYPE POSTGIS 6 CONNECTIONTYPE POSTGIS
7 - DATA "the_geom from ( SELECT ano,d.gid,d.pop_res_tot,d.co_municipio,g.no_cidade,g.co_uf,g.sg_uf,g.area_territorial,g.nu_ano_instalacao,st_setsrid(g.the_geom,4326) as the_geom FROM (SELECT * FROM ibge.populacao_residente ) as d, i3geo_metaestat.municipios as g WHERE d.co_municipio::text = g.co_municipio::text ) as foo using unique co_municipio using srid=4326" 7 + DATA "the_geom from ( SELECT to_date(ano||'-01-01','YYYY') as ano,d.gid,d.pop_res_tot,d.co_municipio,g.no_cidade,g.co_uf,g.sg_uf,g.area_territorial,g.nu_ano_instalacao,st_setsrid(g.the_geom,4326) as the_geom FROM (SELECT * FROM ibge.populacao_residente ) as d, i3geo_metaestat.municipios as g WHERE d.co_municipio::text = g.co_municipio::text ) as foo using unique co_municipio using srid=4326"
  8 + FILTER (ano = '1970-01-01') #necessario para usar como mapfile normal
8 METADATA 9 METADATA
9 "METAESTAT_ID_MEDIDA_VARIAVEL" "" 10 "METAESTAT_ID_MEDIDA_VARIAVEL" ""
  11 + "wms_enable_request" "*"
10 "CLASSE" "SIM" 12 "CLASSE" "SIM"
11 "permitekmz" "nao" 13 "permitekmz" "nao"
  14 + "iconetema" ""
  15 + "wms_timeitem" "ano"
12 "METAESTAT_CODIGO_TIPO_REGIAO" "" 16 "METAESTAT_CODIGO_TIPO_REGIAO" ""
  17 + "wms_timeextent" "1970,1980,1991,2000"
13 "permitedownload" "sim" 18 "permitedownload" "sim"
14 "METAESTAT" "" 19 "METAESTAT" ""
15 - "permitekml" "sim" 20 + "wms_timedefault" "1970" #necessario quando e um WMS sem requisicao TIME
16 "permiteogc" "sim" 21 "permiteogc" "sim"
17 - "TEMA" "População total (pol) Município Teste de WMS Time"  
18 - "wms_title" "População total (pol) Município Teste de WMS Time"  
19 - "wms_timeextent" "1970,1980,1991,2000"  
20 - "wms_timeitem" "ano"  
21 - "wms_timedefault" "1970"  
22 - "wms_enable_request" "*"  
23 -  
24 - 22 + "permitekml" "sim"
  23 + "TEMA" "População total (pol) Município Teste de WMS Time"
  24 + "wms_title" "População total (pol) Município Teste de WMS Time"
25 END # METADATA 25 END # METADATA
26 NAME "_lwmstime" 26 NAME "_lwmstime"
27 STATUS DEFAULT 27 STATUS DEFAULT
@@ -29,12 +29,13 @@ MAP @@ -29,12 +29,13 @@ MAP
29 TILEITEM "location" 29 TILEITEM "location"
30 TYPE POLYGON 30 TYPE POLYGON
31 UNITS METERS 31 UNITS METERS
32 - FILTER (ano = 1970) #1970 1980 1991 2000  
33 CLASS 32 CLASS
34 NAME "<= 6008" 33 NAME "<= 6008"
35 EXPRESSION ([pop_res_tot]<=6008) 34 EXPRESSION ([pop_res_tot]<=6008)
36 STYLE 35 STYLE
  36 + ANGLE 0
37 COLOR 255 255 255 37 COLOR 255 255 255
  38 + OFFSET 0 0
38 OUTLINECOLOR 255 255 255 39 OUTLINECOLOR 255 255 255
39 OUTLINEWIDTH 2 40 OUTLINEWIDTH 2
40 END # STYLE 41 END # STYLE
@@ -43,7 +44,9 @@ MAP @@ -43,7 +44,9 @@ MAP
43 NAME "> 6008 e <= 11531" 44 NAME "> 6008 e <= 11531"
44 EXPRESSION (([pop_res_tot]>6008)and([pop_res_tot]<=11531)) 45 EXPRESSION (([pop_res_tot]>6008)and([pop_res_tot]<=11531))
45 STYLE 46 STYLE
  47 + ANGLE 0
46 COLOR 207 207 255 48 COLOR 207 207 255
  49 + OFFSET 0 0
47 OUTLINECOLOR 255 255 255 50 OUTLINECOLOR 255 255 255
48 OUTLINEWIDTH 2 51 OUTLINEWIDTH 2
49 END # STYLE 52 END # STYLE
@@ -52,7 +55,9 @@ MAP @@ -52,7 +55,9 @@ MAP
52 NAME "> 11531 e <= 22638" 55 NAME "> 11531 e <= 22638"
53 EXPRESSION (([pop_res_tot]>11531)and([pop_res_tot]<=22638)) 56 EXPRESSION (([pop_res_tot]>11531)and([pop_res_tot]<=22638))
54 STYLE 57 STYLE
  58 + ANGLE 0
55 COLOR 160 160 255 59 COLOR 160 160 255
  60 + OFFSET 0 0
56 OUTLINECOLOR 255 255 255 61 OUTLINECOLOR 255 255 255
57 OUTLINEWIDTH 2 62 OUTLINEWIDTH 2
58 END # STYLE 63 END # STYLE
@@ -61,7 +66,9 @@ MAP @@ -61,7 +66,9 @@ MAP
61 NAME "> 22638" 66 NAME "> 22638"
62 EXPRESSION ([pop_res_tot]>22638) 67 EXPRESSION ([pop_res_tot]>22638)
63 STYLE 68 STYLE
  69 + ANGLE 0
64 COLOR 114 114 255 70 COLOR 114 114 255
  71 + OFFSET 0 0
65 OUTLINECOLOR 255 255 255 72 OUTLINECOLOR 255 255 255
66 OUTLINEWIDTH 2 73 OUTLINEWIDTH 2
67 END # STYLE 74 END # STYLE