Commit fa64b543997625246607ea9953130df9142fd0f5

Authored by Edmar Moretti
1 parent 8321bc97

correção na listagem de camadas do web service ogc

admin/php/classe_arvore.php
... ... @@ -59,7 +59,7 @@ class Arvore
59 59 $status = "fechado";
60 60 if(strtolower($reg["aberto"]) == "sim")
61 61 $status = "aberto";
62   - $url = "";//$this->urli3geo."/admin/xmlmenutemas.php?id_menu=".$reg["id_menu"];
  62 + //$url = $this->urli3geo."/admin/xmlmenutemas.php?id_menu=".$reg["id_menu"];
63 63 $resultado[] = array("desc"=>$this->converte($reg["desc_menu"]),"publicado"=>$reg["publicado_menu"],"nomemenu"=>$this->converte($reg["nome_menu"]),"idmenu"=>$reg["id_menu"],"arquivo"=>"","status"=>$status,"url"=>$url);
64 64 }
65 65 }
... ... @@ -188,7 +188,7 @@ class Arvore
188 188 if (strtolower($tema["ogc_tema"]) == "sim")
189 189 {$ogc = "sim";$grupoogc = "sim";}
190 190 }
191   - $subgrupos[] = array("publicado"=>($sgrupo["publicado"]),"nome"=>$this->converte($sgrupo["nome_subgrupo"]),"download"=>$down,"ogc"=>$ogc);
  191 + $subgrupos[] = array("id_n2"=>$sgrupo["id_n2"],"publicado"=>($sgrupo["publicado"]),"nome"=>$this->converte($sgrupo["nome_subgrupo"]),"download"=>$down,"ogc"=>$ogc);
192 192 }
193 193 }
194 194 }
... ... @@ -324,9 +324,10 @@ class Arvore
324 324 }
325 325 function converte($texto){
326 326 if($this->convUTF == true)
327   - $texto = mb_convert_encoding($texto,mb_detect_encoding($texto),"UTF8");
  327 + $texto = mb_convert_encoding($texto,mb_detect_encoding($texto),"UTF-8");
328 328 else
329 329 $texto = mb_convert_encoding($texto,mb_detect_encoding($texto),"ISO-8859-1");
  330 +
330 331 return $texto;
331 332 }
332 333 }
... ...
classesphp/classe_menutemas.php
... ... @@ -409,7 +409,7 @@ array
409 409 {$ogc = "sim";}
410 410 }
411 411 $nome = ixml($sgrupo,"SDTIPO");
412   - $subgrupos[] = array("nome"=>$nome,"ogc"=>$ogc,"download"=>$down,"ogc"=>$ogc);
  412 + $subgrupos[] = array("nome"=>$nome,"ogc"=>$ogc,"download"=>$down);
413 413 }
414 414 }
415 415 }
... ...
menutemas/admin.db
No preview for this file type
ogc.php
... ... @@ -53,7 +53,10 @@ ogc.php?tema=bioma
53 53  
54 54 ogc.php?intervalo=0,50
55 55 */
56   -error_reporting(0);
  56 +
  57 +//
  58 +//validações e includes
  59 +//
57 60 if (!function_exists('ms_GetVersion'))
58 61 {
59 62 if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
... ... @@ -69,6 +72,7 @@ include("ms_configura.php");
69 72 include("classesphp/pega_variaveis.php");
70 73 include("classesphp/classe_menutemas.php");
71 74  
  75 +error_reporting(0);
72 76 //
73 77 //pega os endereços para compor a url de chamada do gerador de web services
74 78 //ogc.php
... ... @@ -79,78 +83,20 @@ $protocolo1 = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'];
79 83 $protocolo = strtolower($protocolo) . '://'.$_SERVER['SERVER_NAME'] .":". $_SERVER['SERVER_PORT'];
80 84 $urli3geo = str_replace("/ogc.php","",$protocolo.$_SERVER["PHP_SELF"]);
81 85 //
82   -//pega a lista de menus que será processada
83   -//se a variável definida em ms_configura for = "", a busca é feita
84   -//pelo método Menutemas
  86 +//imprime na tela a ajuda
85 87 //
86   -
87   -if(!isset($perfil)){$perfil = "";}
88   -if($menutemas != "" || is_array($menutemas))
89   -{
90   - foreach($menutemas as $m)
91   - {
92   - $menus[] = $m["arquivo"];
93   - }
94   -
95   -}
96   -else
  88 +if (isset($ajuda))
97 89 {
98   - $m = new Menutemas("",$perfil,$locsistemas,$locaplic,"",$urli3geo);
99   - foreach($m->pegaListaDeMenus() as $menu)
100   - {
101   - $menus[] = $menu["url"];
102   - }
  90 + ogc_imprimeAjuda();
  91 + exit;
103 92 }
104   -if(!isset($menus))
105   -$menus = array("menutemas/menutemas.xml");
106   -//pega a lista de grupos
107   -if ($lista == "temas")
108   -{
109   - echo '<html><head><title>WMS</title><meta name="description" content="OGC"><meta name="keywords" content="WMS OGC mapa sig gis webmapping geo geoprocessamento interativo meio ambiente MMA cartografia geografia"> <meta name="robots" content="index,follow">';
110   - echo "<body><b>Lista de temas por grupos e subgrupos e endereços de acesso aos dados por meio de Web Services WMS (os códigos dos temas estão em vermelho)</b><br><br>";
111   - $imprimir = "";
112   - foreach ($menus as $menu)
113   - {
114   - $xml = simplexml_load_file($menu);
115   - foreach($xml->GRUPO as $grupo)
116   - {
117   - $imprimegrupo = "<i>".mb_convert_encoding($grupo->GTIPO,"HTML-ENTITIES","auto")."</i>";
118   - foreach($grupo->SGRUPO as $sgrupo)
119   - {
120   - $imprimesubgrupo = mb_convert_encoding($sgrupo->SDTIPO,"HTML-ENTITIES","auto");
121   - foreach($sgrupo->TEMA as $tema)
122   - {
123   - if (mb_convert_encoding($tema->OGC,"HTML-ENTITIES","auto") == "")
124   - {
125   - $imprimir .= $imprimegrupo."->".$imprimesubgrupo."<br>";
126   - $imprimir .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
127   - $id = mb_convert_encoding($tema->TID,"HTML-ENTITIES","auto");
128   - $imprimir .= "<span style=color:red >".$id."</span>";
129   - $imprimir .= "&nbsp;-&nbsp;".mb_convert_encoding($tema->TNOME,"HTML-ENTITIES","auto")."&nbsp";
130   - $imprimir .= "&nbsp;<a href='".$urli3geo."/ogc.php?tema=".$id."&service=wms&request=getcapabilities' >Getcapabilities</a>";
131   - $imprimir .= "&nbsp;<a href='".$urli3geo."/ogc.php?tema=".$id."&SRS=EPSG:4291&WIDTH=500&HEIGHT=500&BBOX=-76.5125927,-39.3925675209,-29.5851853,9.49014852081&FORMAT=image/png&service=wms&version=1.1.0&request=getmap&layers=".$id."' >GetMap </a>";
132   - if (mb_convert_encoding($tema->TLINK,"HTML-ENTITIES","auto") != "")
133   - {$imprimir .= "&nbsp;&nbsp;<a href='".mb_convert_encoding($tema->TLINK,"HTML-ENTITIES","auto")."' >fonte</a>";}
134   - $imprimir .= "<br>";
135   - }
136   - }
137   - }
138   - }
139   - }
140   - echo $imprimir."</body></html>";
141   - return;
142   -}
143   -if (isset($ajuda))
  93 +//
  94 +//imprime na tela a lista de temas disponíveis
  95 +//
  96 +if($lista == "temas")
144 97 {
145   - echo "<pre><b>Construtor de web services do I3Geo.</b><br><br>";
146   - echo "Esse utilitário usa o arquivo menutemas.xml para gerar web services no padrão OGC.";
147   - echo "Para escolher um tema, utilize:<br>";
148   - echo "ogc.php?lista=temas - para listar os temas disponíveis<br>";
149   - echo "Para usar esse web service, além dos parâmetros normais, vc deverá incluir o parâmetro &tema=,<br>";
150   - echo "ou seja,http://[host]/i3geo/ogc.php?tema=[código do tema obtido do menutemas.xml]<br><br>";
151   - echo "Se não for desejado que um tema apareça na lista, é necessário incluir a tag <OGC>nao</OGC> no registro do tema no arquivo menutemas.xml.<br>";
152   - echo "Utilize o parametro &intervalo=0,20 para definir o número de temas.";
153   - return;
  98 + ogc_imprimeListaDeTemas();
  99 + exit;
154 100 }
155 101 //
156 102 //cria o web service
... ... @@ -167,10 +113,7 @@ foreach ($_GET as $k=&gt;$v)
167 113 {$tema = $v;}
168 114 if(strtolower($k) == "layer")
169 115 {$tema = $v;}
170   - //if(strtolower($k) == "srs")
171   - //{$SRS = $v;}
172 116 }
173   -
174 117 if(count($_GET) == 0){
175 118 $tipo="intervalo";
176 119 $req->setParameter("REQUEST", "getCapabilities");
... ... @@ -204,7 +147,6 @@ if(!isset($tema)){
204 147 $intervalo = "0,5000";
205 148 $tipo = "intervalo";
206 149 }
207   -
208 150 if ($tipo == "" || $tipo == "metadados")
209 151 {
210 152 $tema = explode(" ",$tema);
... ... @@ -269,52 +211,63 @@ else
269 211 $conta = 0;
270 212 $int = explode(",",$intervalo);
271 213 $codigosTema = array();
272   - //var_dump($menus);exit;
  214 + $m = new Menutemas("",$perfil,$locsistemas,$locaplic,"",$urli3geo);
  215 + $menus = $m->pegaListaDeMenus();
273 216 foreach ($menus as $menu)
274 217 {
275   - $xml = simplexml_load_file($menu);
276   - foreach($xml->GRUPO as $grupo)
  218 + $grupos = $m->pegaListaDeGrupos($menu["idmenu"],$listasistemas="nao",$listasgrupos="sim");
  219 + foreach($grupos as $grupo)
277 220 {
278   - foreach($grupo->SGRUPO as $sgrupo)
  221 + if($grupo["ogc"] == "sim")
279 222 {
280   - foreach($sgrupo->TEMA as $tm)
  223 + foreach($grupo["subgrupos"] as $sgrupo)
281 224 {
282   - if (mb_convert_encoding($tm->OGC,"HTML-ENTITIES","auto") == "")
  225 + if($sgrupo["ogc"] == "sim")
283 226 {
284   - $codigosTema[] = mb_convert_encoding($tm->TID,"HTML-ENTITIES","auto");
  227 + $temas = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]);
  228 + foreach($temas as $tema)
  229 + {
  230 + if($tema["ogc"] == "sim")
  231 + {
  232 + $codigosTema[] = array("tema"=>$tema["tid"],"fonte"=>$tema["link"]);
  233 + }
  234 + }
285 235 }
286 236 }
287   - }
  237 + }
288 238 }
289 239 }
290   - foreach($codigosTema as $codigoTema)
  240 + foreach($codigosTema as $c)
291 241 {
292   - if(!file_exists("temas/".$codigoTema.".map")){break;}
293   - if (@ms_newMapobj("temas/".$codigoTema.".map"))
  242 + $codigoTema = $c["tema"];
  243 + if(file_exists("temas/".$codigoTema.".map"))
294 244 {
295   - $nmap = ms_newMapobj("temas/".$codigoTema.".map");
296   - $ts = $nmap->getalllayernames();
297   - if (count($ts) == 1)
298   - {
299   - foreach ($ts as $t)
300   - {
301   - if ($oMap->getlayerbyname($t) == "")
  245 + if (@ms_newMapobj("temas/".$codigoTema.".map"))
  246 + {
  247 + $nmap = ms_newMapobj("temas/".$codigoTema.".map");
  248 + $ts = $nmap->getalllayernames();
  249 + if (count($ts) == 1)
  250 + {
  251 + foreach ($ts as $t)
302 252 {
303   - $conta++;
304   - if (($conta >= $int[0]) && ($conta <= $int[1]))
  253 + if ($oMap->getlayerbyname($t) == "")
305 254 {
306   - $l = $nmap->getlayerbyname($t);
307   - $l->setmetadata("ows_title",pegaNome($l));
308   - $l->setmetadata("ows_srs","EPSG:4291 EPSG:4326");
309   - $l->set("status",MS_OFF);
310   - $l->setmetadata("gml_include_items","all");
311   - $l->set("dump",MS_TRUE);
312   - $l->setmetadata("WMS_INCLUDE_ITEMS","all");
313   - $l->setmetadata("WFS_INCLUDE_ITEMS","all");
314   - $l->setmetadata("ows_metadataurl_href",mb_convert_encoding($tm->TLINK,"HTML-ENTITIES","auto"));
315   - $l->setmetadata("ows_metadataurl_type","TC211");
316   - $l->setmetadata("ows_metadataurl_format","text/html");
317   - ms_newLayerObj($oMap, $l);
  255 + $conta++;
  256 + if (($conta >= $int[0]) && ($conta <= $int[1]))
  257 + {
  258 + $l = $nmap->getlayerbyname($t);
  259 + $l->setmetadata("ows_title",pegaNome($l));
  260 + $l->setmetadata("ows_srs","EPSG:4291 EPSG:4326");
  261 + $l->set("status",MS_OFF);
  262 + $l->setmetadata("gml_include_items","all");
  263 + $l->set("dump",MS_TRUE);
  264 + $l->setmetadata("WMS_INCLUDE_ITEMS","all");
  265 + $l->setmetadata("WFS_INCLUDE_ITEMS","all");
  266 + $l->setmetadata("ows_metadataurl_href",$c["fonte"]);
  267 + $l->setmetadata("ows_metadataurl_type","TC211");
  268 + $l->setmetadata("ows_metadataurl_format","text/html");
  269 + ms_newLayerObj($oMap, $l);
  270 + }
318 271 }
319 272 }
320 273 }
... ... @@ -329,4 +282,81 @@ $contenttype = ms_iostripstdoutbuffercontenttype();
329 282 header("Content-type: $contenttype");
330 283 ms_iogetStdoutBufferBytes();
331 284 ms_ioresethandlers();
  285 +//
  286 +//funções
  287 +//
  288 +function ogc_pegaListaDeMenus()
  289 +{
  290 + global $perfil,$menutemas,$locsistemas,$locaplic,$urli3geo;
  291 + if(!isset($perfil)){$perfil = "";}
  292 + if($menutemas != "" || is_array($menutemas))
  293 + {
  294 + foreach($menutemas as $m)
  295 + {$menus[] = $m["arquivo"]; }
  296 + }
  297 + else
  298 + {
  299 + $m = new Menutemas("",$perfil,$locsistemas,$locaplic,"",$urli3geo);
  300 + foreach($m->pegaListaDeMenus() as $menu)
  301 + {$menus[] = $urli3geo."/admin/xmlmenutemas.php?id_menu=".$menu["idmenu"];}
  302 + }
  303 + if(!isset($menus))
  304 + {$menus = array("menutemas/menutemas.xml");}
  305 + return $menus;
  306 +}
  307 +function ogc_imprimeAjuda()
  308 +{
  309 + echo "<pre><b>Construtor de web services do I3Geo.</b><br><br>";
  310 + echo "Esse utilitário usa o arquivo menutemas.xml para gerar web services no padrão OGC.";
  311 + echo "Para escolher um tema, utilize:<br>";
  312 + echo "ogc.php?lista=temas - para listar os temas disponíveis<br>";
  313 + echo "Para usar esse web service, além dos parâmetros normais, vc deverá incluir o parâmetro &tema=,<br>";
  314 + echo "ou seja,http://[host]/i3geo/ogc.php?tema=[código do tema]<br><br>";
  315 + echo "Utilize o sistema de administração do i3Geo para configurar quais os temas podem ser utilizados.";
  316 + echo "Utilize o parametro &intervalo=0,20 para definir o número de temas desejado na função getcapabilities.";
  317 +}
  318 +function ogc_imprimeListaDeTemas()
  319 +{
  320 + global $urli3geo,$perfil,$locsistemas,$locaplic,$menutemas;
  321 + $m = new Menutemas("",$perfil,$locsistemas,$locaplic,$menutemas,$urli3geo);
  322 + $menus = $m->pegaListaDeMenus();
  323 + echo '<html><head><title>WMS</title><META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=ISO-8859-1"><meta name="description" content="OGC"><meta name="keywords" content="WMS OGC mapa sig gis webmapping geo geoprocessamento interativo meio ambiente MMA cartografia geografia"> <meta name="robots" content="index,follow">';
  324 + echo "<body><b>Lista de temas por grupos e subgrupos e endereços de acesso aos dados por meio de Web Services WMS (os códigos dos temas estão em vermelho)</b><br><br>";
  325 + $imprimir = "";
  326 + foreach ($menus as $menu)
  327 + {
  328 + $grupos = $m->pegaListaDeGrupos($menu["idmenu"],$listasistemas="nao",$listasgrupos="sim");
  329 + foreach($grupos as $grupo)
  330 + {
  331 + if($grupo["ogc"] == "sim")
  332 + {
  333 + $imprimegrupo = "<i>".$grupo["nome"]."</i>";
  334 + foreach($grupo["subgrupos"] as $sgrupo)
  335 + {
  336 + if($sgrupo["ogc"] == "sim")
  337 + {
  338 + $imprimesubgrupo = $sgrupo["nome"];
  339 + $temas = $m->pegaListaDeTemas($grupo["id_n1"],$sgrupo["id_n2"],$menu["idmenu"]);
  340 + foreach($temas as $tema)
  341 + {
  342 + if($tema["ogc"] == "sim")
  343 + {
  344 + $imprimir .= $imprimegrupo."->".$imprimesubgrupo."<br>";
  345 + $imprimir .= "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
  346 + $imprimir .= "<span style=color:red >".$tema["tid"]."</span>";
  347 + $imprimir .= "&nbsp;-&nbsp;".$tema["nome"]."&nbsp";
  348 + $imprimir .= "&nbsp;<a href='".$urli3geo."/ogc.php?tema=".$tema["tid"]."&service=wms&request=getcapabilities' >Getcapabilities</a>";
  349 + $imprimir .= "&nbsp;<a href='".$urli3geo."/ogc.php?tema=".$tema["tid"]."&SRS=EPSG:4291&WIDTH=500&HEIGHT=500&BBOX=-76.5125927,-39.3925675209,-29.5851853,9.49014852081&FORMAT=image/png&service=wms&version=1.1.0&request=getmap&layers=".$tema["tid"]."' >GetMap </a>";
  350 + if($tema["link"] != " ")
  351 + $imprimir .= "&nbsp;&nbsp;<a href='".$tema["link"]."' >fonte</a>";
  352 + $imprimir .= "<br>";
  353 + }
  354 + }
  355 + }
  356 + }
  357 + }
  358 + }
  359 + }
  360 + echo $imprimir."</body></html>";
  361 +}
332 362 ?>
333 363 \ No newline at end of file
... ...
temas/biomashp.map
1 1 MAP
2   -
3   -
4 2 SYMBOLSET ../symbols/simbolos.sym
5 3 FONTSET "../symbols/fontes.txt"
6 4 LAYER
... ...