Commit fa64b543997625246607ea9953130df9142fd0f5
1 parent
8321bc97
Exists in
master
and in
7 other branches
correção na listagem de camadas do web service ogc
Showing
5 changed files
with
140 additions
and
111 deletions
Show diff stats
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 .= " "; | |
127 | - $id = mb_convert_encoding($tema->TID,"HTML-ENTITIES","auto"); | |
128 | - $imprimir .= "<span style=color:red >".$id."</span>"; | |
129 | - $imprimir .= " - ".mb_convert_encoding($tema->TNOME,"HTML-ENTITIES","auto")." "; | |
130 | - $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$id."&service=wms&request=getcapabilities' >Getcapabilities</a>"; | |
131 | - $imprimir .= " <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 .= " <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=>$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 .= " "; | |
346 | + $imprimir .= "<span style=color:red >".$tema["tid"]."</span>"; | |
347 | + $imprimir .= " - ".$tema["nome"]." "; | |
348 | + $imprimir .= " <a href='".$urli3geo."/ogc.php?tema=".$tema["tid"]."&service=wms&request=getcapabilities' >Getcapabilities</a>"; | |
349 | + $imprimir .= " <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 .= " <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 | ... | ... |