From 8e10e956bc6d8a119cf99c578a2eca87facb5c99 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 13 Aug 2013 18:39:47 +0000 Subject: [PATCH] --- admin/admin.db | Bin 207872 -> 0 bytes admin/php/classe_metaestat.php | 23 ++++++++++++++++++++--- ogc.php | 28 +++++++++++++++++++++++----- 3 files changed, 43 insertions(+), 8 deletions(-) diff --git a/admin/admin.db b/admin/admin.db index fc12a17..6b9223e 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/admin/php/classe_metaestat.php b/admin/php/classe_metaestat.php index b68618d..7419356 100755 --- a/admin/php/classe_metaestat.php +++ b/admin/php/classe_metaestat.php @@ -487,7 +487,7 @@ class Metaestat{ * @param valor de opacidade do layer * @return array("mapfile"=>,"layer"=>,"titulolayer"=>) */ - function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor="",$codigo_tipo_regiao="",$opacidade=""){ + function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor="",$codigo_tipo_regiao="",$opacidade="",$suportaWMST = false){ //para permitir a inclusao de filtros, o fim do sql e marcado com /*FW*//*FW*/ //indicando onde deve comecar e terminar uma possivel clausula where //ou com /*FA*//*FA*/ @@ -548,7 +548,10 @@ class Metaestat{ else{ $titulolayer = mb_convert_encoding($sql["titulo"],"ISO-8859-1",mb_detect_encoding($sql["titulo"])); } - + //pega os parametros caso seja um mapfile para WMS-time + if($suportaWMST == true){ + $resolucao = $this->listaResolucaoWMST($id_medida_variavel); + } $dados[] = "MAP"; $dados[] = 'SYMBOLSET "'.$this->locaplic.'/symbols/simbolosv6.sym"'; $dados[] = 'FONTSET "'.$this->locaplic.'/symbols/fontes.txt"'; @@ -1696,13 +1699,20 @@ class Metaestat{ $sql .= "ORDER BY bancodedados,host,usuario"; return $this->execSQL($sql,$codigo_estat_conexao); } + function listaResolucaoWMST($id_medida_variavel){ + $parametros = $this->listaParametro($id_medida_variavel,"","",true); + //faz o sql para pegar os valores e definir a resolucao + + //se for apenas do tipo anual + } /** * Lista os dados de um ou de todos os parametros relacionados a uma medida de variavel * @param id da medida de variavel * @param id do parametro * @param id do pai (se definido, lista apenas os filhos deste) + * @param bool indica se apenas parametros do tipo temporal serao retornados */ - function listaParametro($id_medida_variavel,$id_parametro_medida="",$id_pai=""){ + function listaParametro($id_medida_variavel,$id_parametro_medida="",$id_pai="",$apenasTempo=false){ $sql = "SELECT i3geoestat_parametro_medida.*,i3geoestat_medida_variavel.* "; $sql .= "FROM ".$this->esquemaadmin."i3geoestat_parametro_medida "; $sql .= "INNER JOIN ".$this->esquemaadmin."i3geoestat_medida_variavel "; @@ -1719,6 +1729,13 @@ class Metaestat{ if($id_pai != ""){ $sql .= " AND id_pai = $id_pai"; } + if($apenasTempo == true){ + $tempo = " i3geoestat_parametro_medida.tipo > 0 AND i3geoestat_parametro_medida.tipo < 5 "; + if($id_pai != ""){ + $sql .= " AND "; + } + $sql .= $tempo; + } //echo $sql;exit; return $this->execSQL($sql,$id_parametro_medida); } diff --git a/ogc.php b/ogc.php index 4f138d1..d8d41b8 100644 --- a/ogc.php +++ b/ogc.php @@ -46,6 +46,9 @@ perfil - (opcional) perfil utilizado para restringir os temas que serão m format - (opcional) pode ser utilizado a opção &format=application/openlayers para abrir o mashup do OpenLayers com as camadas definida em temas +id_medida_variavel - id da medida de variavel - utilizado apenas quando a fonte para definicao do layer for o sistema de metadados estatisticos + nao deve ser utilizado junto com tema + Exemplos: ogc.php?temas=biomashp&format=application/openlayers&bbox=-54,-14,-50,-10 @@ -151,6 +154,10 @@ if(count($_GET) == 0){ $req->setParameter("SERVICE", "WMS"); $cache = false; } +//define um nome para o mapfile caso a origem seja o sistema de metadados estatisticos +if(isset($id_medida_variavel)){ + $tema = "ogcmetaestat".$id_medida_variavel; +} if(isset($tema) && $tipo != "metadados"){ $tipo = ""; } @@ -213,18 +220,29 @@ else{ //$temai3geo = true indica que o layer será buscado na pasta i3geo/temas $temai3geo = true; //FIXME não aceita gvp quando o caminho é completo - if(file_exists($_GET["tema"])){ + if(file_exists($_GET["tema"]) && !isset($id_medida_variavel)){ $nmap = ms_newMapobj($_GET["tema"]); $temai3geo = false; $nmap->setmetadata("ows_enable_request","*"); } foreach ($tema as $tx){ $extensao = ".map"; - if(file_exists($locaplic."/temas/".$tx.".php") && $temai3geo == true){ - $extensao = ".php"; + //cria o mapfile com base no sistema de metadados estatisticos + if(isset($id_medida_variavel)){ + $temai3geo = false; + include("admin/php/classe_metaestat.php"); + $m = new Metaestat(); + $m->nomecache = "ogcmetaestat".$id_medida_variavel; + $mapfileMetaestat = mapfileMedidaVariavel($id_medida_variavel,"",1,"","","","","","",true); + $nmap = ms_newMapobj($mapfileMetaestat["mapfile"]); } - if(file_exists($locaplic."/temas/".$tx.".gvp") && $temai3geo == true){ - $extensao = ".gvp"; + else{ + if(file_exists($locaplic."/temas/".$tx.".php") && $temai3geo == true){ + $extensao = ".php"; + } + if(file_exists($locaplic."/temas/".$tx.".gvp") && $temai3geo == true){ + $extensao = ".gvp"; + } } if($extensao == ".map"){ if($temai3geo == true){ -- libgit2 0.21.2