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 813 }
814 814 if(strtolower($recordset["tipoa_tema"]) == "wms")
815 815 {
816   - $down = "nao";$ogc="nao";
  816 + $down = "nao";
  817 + $ogc = "nao";
817 818 }
818 819 if ($recordset["link_tema"] != "")
819 820 {
... ...
admin/php/classe_metaestat.php
... ... @@ -288,7 +288,7 @@ class Metaestat{
288 288 * @param codigo do tipo de regiao. Se nao for definido, utiliza-se o default da variavel
289 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 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 432 else{
433 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 439 $sql .= " FROM (SELECT $parametrosMedida * FROM ".$dados["esquemadb"].".".$dados["tabela"] ." __dadosfiltro__ ) as d ";
436 440 }
437 441 }
... ... @@ -457,13 +461,17 @@ class Metaestat{
457 461 $j = " d.".$dados["colunaidgeo"]."::text = g.".$dadosgeo["identificador"]."::text";
458 462 }
459 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 468 if($agregaregiao == true){
462 469 $sqlgeo = $colunageo." from /*SE*/( ".$sqlgeo." __filtro__ )/*SE*/ as foo using unique ".$dadosAgregacao["colunaligacao_regiaopai"]." using srid=".$dadosgeo["srid"];
463 470 }
464 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 475 //remove ambiguidades
468 476 $sqlgeo = str_replace("d.".$dados["colunaidgeo"].",g.".$dados["colunaidgeo"],"d.".$dados["colunaidgeo"],$sqlgeo);
469 477 $sql = str_replace("d.".$dados["colunaidgeo"].",g.".$dados["colunaidgeo"],"d.".$dados["colunaidgeo"],$sql);
... ... @@ -507,9 +515,9 @@ class Metaestat{
507 515 if($titulolayer == ""){
508 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 521 if(empty($codigo_tipo_regiao)){
514 522 $d = $this->listaMedidaVariavel("",$id_medida_variavel);
515 523 $codigo_tipo_regiao = $d["codigo_tipo_regiao"];
... ... @@ -549,9 +557,9 @@ class Metaestat{
549 557 $titulolayer = mb_convert_encoding($sql["titulo"],"ISO-8859-1",mb_detect_encoding($sql["titulo"]));
550 558 }
551 559 //pega os parametros caso seja um mapfile para WMS-time
552   -
553 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 564 $dados[] = "MAP";
557 565 $dados[] = 'SYMBOLSET "'.$this->locaplic.'/symbols/simbolosv6.sym"';
... ... @@ -592,6 +600,11 @@ class Metaestat{
592 600 $dados[] = ' ITENS "'.implode(",",$sql["colunas"]).'"';
593 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 608 $dados[] = ' END';
596 609 if($classes == ""){
597 610 $dados[] = ' CLASS';
... ... @@ -1700,19 +1713,40 @@ class Metaestat{
1700 1713 $sql .= "ORDER BY bancodedados,host,usuario";
1701 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 1717 //lista os parametros temporais
1708 1718 $parametros = $this->listaParametro($id_medida_variavel,"","",true,true);
1709 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 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 499 */
500 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 503 $arvore = new Arvore($this->locaplic,$this->idioma);
504 504 $temas = $arvore->procuraTemasEstrela($nivel,$fatorestrela,$this->perfil);
505 505 unset($arvore);
... ...
ogc.php
... ... @@ -67,7 +67,13 @@ ogc.php?intervalo=0,50
67 67 $cache = true;
68 68 require_once(dirname(__FILE__)."/classesphp/carrega_ext.php");
69 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 77 if(!isset($temas) && isset($tema)){
72 78 $temas = $tema;
73 79 }
... ... @@ -154,10 +160,6 @@ if(count($_GET) == 0){
154 160 $req->setParameter("SERVICE", "WMS");
155 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 163 if(isset($tema) && $tipo != "metadados"){
162 164 $tipo = "";
163 165 }
... ... @@ -233,7 +235,9 @@ else{
233 235 $m = new Metaestat();
234 236 $m->nomecache = "ogcmetaestat".$id_medida_variavel;
235 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 242 else{
239 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 530 $leg = $oMap->legend;
527 531 $leg->set("status",MS_EMBED);
528 532 }
529   -ms_ioinstallstdouttobuffer();
  533 +ms_ioinstallstdouttobuffer();
530 534 $oMap->owsdispatch($req);
531 535 $contenttype = ms_iostripstdoutbuffercontenttype();
532 536 if(strtolower($request) == "getcapabilities"){
... ...
temas/_lwmstime.map
... ... @@ -4,24 +4,24 @@ MAP
4 4 LAYER
5 5 CONNECTION "user=postgres password=postgres dbname=geosaude host=localhost port=5432"
6 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 9 METADATA
9 10 "METAESTAT_ID_MEDIDA_VARIAVEL" ""
  11 + "wms_enable_request" "*"
10 12 "CLASSE" "SIM"
11 13 "permitekmz" "nao"
  14 + "iconetema" ""
  15 + "wms_timeitem" "ano"
12 16 "METAESTAT_CODIGO_TIPO_REGIAO" ""
  17 + "wms_timeextent" "1970,1980,1991,2000"
13 18 "permitedownload" "sim"
14 19 "METAESTAT" ""
15   - "permitekml" "sim"
  20 + "wms_timedefault" "1970" #necessario quando e um WMS sem requisicao TIME
16 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 25 END # METADATA
26 26 NAME "_lwmstime"
27 27 STATUS DEFAULT
... ... @@ -29,12 +29,13 @@ MAP
29 29 TILEITEM "location"
30 30 TYPE POLYGON
31 31 UNITS METERS
32   - FILTER (ano = 1970) #1970 1980 1991 2000
33 32 CLASS
34 33 NAME "<= 6008"
35 34 EXPRESSION ([pop_res_tot]<=6008)
36 35 STYLE
  36 + ANGLE 0
37 37 COLOR 255 255 255
  38 + OFFSET 0 0
38 39 OUTLINECOLOR 255 255 255
39 40 OUTLINEWIDTH 2
40 41 END # STYLE
... ... @@ -43,7 +44,9 @@ MAP
43 44 NAME "> 6008 e <= 11531"
44 45 EXPRESSION (([pop_res_tot]>6008)and([pop_res_tot]<=11531))
45 46 STYLE
  47 + ANGLE 0
46 48 COLOR 207 207 255
  49 + OFFSET 0 0
47 50 OUTLINECOLOR 255 255 255
48 51 OUTLINEWIDTH 2
49 52 END # STYLE
... ... @@ -52,7 +55,9 @@ MAP
52 55 NAME "> 11531 e <= 22638"
53 56 EXPRESSION (([pop_res_tot]>11531)and([pop_res_tot]<=22638))
54 57 STYLE
  58 + ANGLE 0
55 59 COLOR 160 160 255
  60 + OFFSET 0 0
56 61 OUTLINECOLOR 255 255 255
57 62 OUTLINEWIDTH 2
58 63 END # STYLE
... ... @@ -61,7 +66,9 @@ MAP
61 66 NAME "> 22638"
62 67 EXPRESSION ([pop_res_tot]>22638)
63 68 STYLE
  69 + ANGLE 0
64 70 COLOR 114 114 255
  71 + OFFSET 0 0
65 72 OUTLINECOLOR 255 255 255
66 73 OUTLINEWIDTH 2
67 74 END # STYLE
... ...