From 1ce492752eb7add251a9e2e8317184a4f0193f27 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Fri, 13 Nov 2015 18:17:15 +0000 Subject: [PATCH] Inclusão de mensagem de denied em camadas não disponíveis como OGC --- ogc.php | 53 ++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 38 insertions(+), 15 deletions(-) diff --git a/ogc.php b/ogc.php index 91beee0..29d5b12 100644 --- a/ogc.php +++ b/ogc.php @@ -294,8 +294,7 @@ $cortePixels = 0; if(file_exists($nomeMapfileTmp) && $tipo == ""){ $oMap = ms_newMapobj($nomeMapfileTmp); } -else{ - +else{ if(empty($ogcwsmap)){ $oMap = ms_newMapobj($locaplic."/aplicmap/ogcwsv".$versao.".map"); } @@ -328,7 +327,7 @@ else{ } $e = $oMap->extent; $extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy); - + //gera o mapa if ($tema != ""){ $listatema = explode(" ",$tema); @@ -341,7 +340,6 @@ else{ $temai3geo = false; $nmap->setmetadata("ows_enable_request","*"); } - foreach ($listatema as $tx){ $extensao = ".map"; if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){ @@ -351,13 +349,10 @@ else{ $extensao = ".gvp"; } if($extensao == ".map"){ - //cria o mapfile com base no sistema de metadados estatisticos //verifica se o id_medida_variavel existe no mapfile e nao foi passado como um parametro if(!isset($id_medida_variavel) && $temai3geo == true){ - - $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); - + $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); $l = $nmap->getlayer(0); $teste = $l->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL"); if($teste != "" && $l->data == ""){ @@ -373,13 +368,11 @@ else{ $nmap = ms_newMapobj($mapfileMetaestat["mapfile"]); $nmap->setmetadata("ows_enable_request","*"); $req->setParameter("LAYERS", "ogcmetaestat".$id_medida_variavel); - } - + } if($temai3geo == true){ $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); $nmap->setmetadata("ows_enable_request","*"); } - if($temai3geo == false || empty($layers)){ $ts = $nmap->getalllayernames(); $nmap->setmetadata("ows_enable_request","*"); @@ -387,16 +380,13 @@ else{ else{ $ts = explode(",",str_replace(" ",",",$layers)); } - foreach ($ts as $t){ $l = $nmap->getlayerbyname($t); if($l == ""){ $l = $nmap->getlayer(0); } - $permite = $l->getmetadata("permiteogc"); - + $permite = $l->getmetadata("permiteogc"); if(strtolower($permite) != "nao"){ - //necessário pq o mapfile pode ter todos os layers como default if($temai3geo == false){ $l->set("status",MS_OFF); @@ -476,6 +466,39 @@ else{ $cache = false; } ms_newLayerObj($oMap, $l); + } + else{ + //a camada nao pode ser usada como servico WMS, entao e enviada uma mensagem + $l->set("data",""); + $l->set("type",MS_POINT); + $l->setmetadata("cache","nao"); + //apaga as classes + $nclass = $l->numclasses; + for($i=0;$i<$nclass;$i++){ + $classe = $l->getclass($i); + $classe->set("status",MS_DELETE); + } + $l->updatefromstring(' + LAYER + SIZEUNITS PIXELS + TRANSFORM FALSE + CLASS + LABEL + SIZE 10 + TYPE truetype + FONT arial + COLOR 255 0 0 + POSITION cc + FORCE true + END + END + FEATURE POINTS 100 100 END + TEXT "OGC denied" END + FEATURE POINTS 100 120 END + TEXT "' . $l->name . '" END + END + '); + ms_newLayerObj($oMap, $l); } } } -- libgit2 0.21.2