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 | ... | ... |