Commit f5f7ab4e2694fd5678114f7426baa810ee5953c5
1 parent
29cdc714
Exists in
master
--no commit message
Showing
1 changed file
with
32 additions
and
11 deletions
Show diff stats
ogc.php
| @@ -77,6 +77,8 @@ ogc.php?tema=bioma | @@ -77,6 +77,8 @@ ogc.php?tema=bioma | ||
| 77 | ogc.php?tema=/var/www/i3geo/aplicmap/geral1debianv6.map&layers=mundo | 77 | ogc.php?tema=/var/www/i3geo/aplicmap/geral1debianv6.map&layers=mundo |
| 78 | 78 | ||
| 79 | */ | 79 | */ |
| 80 | +set_time_limit(0); | ||
| 81 | +ini_set('memory_limit', '512M'); | ||
| 80 | $_GET = array_merge($_GET,$_POST); | 82 | $_GET = array_merge($_GET,$_POST); |
| 81 | // | 83 | // |
| 82 | //caso nenhum parametros tenha sido enviado | 84 | //caso nenhum parametros tenha sido enviado |
| @@ -166,7 +168,8 @@ if(!isset($tema) && isset($typename)){ | @@ -166,7 +168,8 @@ if(!isset($tema) && isset($typename)){ | ||
| 166 | if(!file_exists($tema)){ | 168 | if(!file_exists($tema)){ |
| 167 | $_GET["layers"] = $tema; | 169 | $_GET["layers"] = $tema; |
| 168 | $_GET["LAYERS"] = $tema; | 170 | $_GET["LAYERS"] = $tema; |
| 169 | -} | 171 | +} |
| 172 | + | ||
| 170 | $layers = $tema; | 173 | $layers = $tema; |
| 171 | // | 174 | // |
| 172 | //verifica o OUTPUTFORMAT e o cache de arquivo | 175 | //verifica o OUTPUTFORMAT e o cache de arquivo |
| @@ -284,13 +287,15 @@ $arrayget["Z"] = ""; | @@ -284,13 +287,15 @@ $arrayget["Z"] = ""; | ||
| 284 | $arrayget["X"] = ""; | 287 | $arrayget["X"] = ""; |
| 285 | $arrayget["Y"] = ""; | 288 | $arrayget["Y"] = ""; |
| 286 | $arrayget["tms"] = ""; | 289 | $arrayget["tms"] = ""; |
| 287 | -$nomeMapfileTmp = $dir_tmp."/ogc_".md5(implode("",$arrayget))."_".$agora.".map"; | 290 | +$nomeMapfileTmp = $dir_tmp."/ogc_".md5(implode("",$arrayget))."_".$agora.".map"; |
| 291 | + | ||
| 288 | //essa variavel e usada para definir se a imagem final gerada devera ser cortada ou nao | 292 | //essa variavel e usada para definir se a imagem final gerada devera ser cortada ou nao |
| 289 | $cortePixels = 0; | 293 | $cortePixels = 0; |
| 290 | if(file_exists($nomeMapfileTmp) && $tipo == ""){ | 294 | if(file_exists($nomeMapfileTmp) && $tipo == ""){ |
| 291 | $oMap = ms_newMapobj($nomeMapfileTmp); | 295 | $oMap = ms_newMapobj($nomeMapfileTmp); |
| 292 | } | 296 | } |
| 293 | else{ | 297 | else{ |
| 298 | + | ||
| 294 | if(empty($ogcwsmap)){ | 299 | if(empty($ogcwsmap)){ |
| 295 | $oMap = ms_newMapobj($locaplic."/aplicmap/ogcwsv".$versao.".map"); | 300 | $oMap = ms_newMapobj($locaplic."/aplicmap/ogcwsv".$versao.".map"); |
| 296 | } | 301 | } |
| @@ -322,7 +327,8 @@ else{ | @@ -322,7 +327,8 @@ else{ | ||
| 322 | $oMap->setmetadata("wms_srs","EPSG:4326"); | 327 | $oMap->setmetadata("wms_srs","EPSG:4326"); |
| 323 | } | 328 | } |
| 324 | $e = $oMap->extent; | 329 | $e = $oMap->extent; |
| 325 | - $extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy); | 330 | + $extensaoMap = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy); |
| 331 | + | ||
| 326 | //gera o mapa | 332 | //gera o mapa |
| 327 | if ($tema != ""){ | 333 | if ($tema != ""){ |
| 328 | $listatema = explode(" ",$tema); | 334 | $listatema = explode(" ",$tema); |
| @@ -335,6 +341,7 @@ else{ | @@ -335,6 +341,7 @@ else{ | ||
| 335 | $temai3geo = false; | 341 | $temai3geo = false; |
| 336 | $nmap->setmetadata("ows_enable_request","*"); | 342 | $nmap->setmetadata("ows_enable_request","*"); |
| 337 | } | 343 | } |
| 344 | + | ||
| 338 | foreach ($listatema as $tx){ | 345 | foreach ($listatema as $tx){ |
| 339 | $extensao = ".map"; | 346 | $extensao = ".map"; |
| 340 | if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){ | 347 | if($temai3geo == true && file_exists($locaplic."/temas/".$tx.".php")){ |
| @@ -344,10 +351,13 @@ else{ | @@ -344,10 +351,13 @@ else{ | ||
| 344 | $extensao = ".gvp"; | 351 | $extensao = ".gvp"; |
| 345 | } | 352 | } |
| 346 | if($extensao == ".map"){ | 353 | if($extensao == ".map"){ |
| 354 | + | ||
| 347 | //cria o mapfile com base no sistema de metadados estatisticos | 355 | //cria o mapfile com base no sistema de metadados estatisticos |
| 348 | //verifica se o id_medida_variavel existe no mapfile e nao foi passado como um parametro | 356 | //verifica se o id_medida_variavel existe no mapfile e nao foi passado como um parametro |
| 349 | - if(!isset($id_medida_variavel) && $temai3geo == true){ | 357 | + if(!isset($id_medida_variavel) && $temai3geo == true){ |
| 358 | + | ||
| 350 | $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); | 359 | $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); |
| 360 | + | ||
| 351 | $l = $nmap->getlayer(0); | 361 | $l = $nmap->getlayer(0); |
| 352 | $teste = $l->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL"); | 362 | $teste = $l->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL"); |
| 353 | if($teste != "" && $l->data == ""){ | 363 | if($teste != "" && $l->data == ""){ |
| @@ -363,11 +373,13 @@ else{ | @@ -363,11 +373,13 @@ else{ | ||
| 363 | $nmap = ms_newMapobj($mapfileMetaestat["mapfile"]); | 373 | $nmap = ms_newMapobj($mapfileMetaestat["mapfile"]); |
| 364 | $nmap->setmetadata("ows_enable_request","*"); | 374 | $nmap->setmetadata("ows_enable_request","*"); |
| 365 | $req->setParameter("LAYERS", "ogcmetaestat".$id_medida_variavel); | 375 | $req->setParameter("LAYERS", "ogcmetaestat".$id_medida_variavel); |
| 366 | - } | 376 | + } |
| 377 | + | ||
| 367 | if($temai3geo == true){ | 378 | if($temai3geo == true){ |
| 368 | $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); | 379 | $nmap = ms_newMapobj($locaplic."/temas/".$tx.".map"); |
| 369 | $nmap->setmetadata("ows_enable_request","*"); | 380 | $nmap->setmetadata("ows_enable_request","*"); |
| 370 | } | 381 | } |
| 382 | + | ||
| 371 | if($temai3geo == false || empty($layers)){ | 383 | if($temai3geo == false || empty($layers)){ |
| 372 | $ts = $nmap->getalllayernames(); | 384 | $ts = $nmap->getalllayernames(); |
| 373 | $nmap->setmetadata("ows_enable_request","*"); | 385 | $nmap->setmetadata("ows_enable_request","*"); |
| @@ -375,13 +387,16 @@ else{ | @@ -375,13 +387,16 @@ else{ | ||
| 375 | else{ | 387 | else{ |
| 376 | $ts = explode(",",str_replace(" ",",",$layers)); | 388 | $ts = explode(",",str_replace(" ",",",$layers)); |
| 377 | } | 389 | } |
| 390 | + | ||
| 378 | foreach ($ts as $t){ | 391 | foreach ($ts as $t){ |
| 379 | $l = $nmap->getlayerbyname($t); | 392 | $l = $nmap->getlayerbyname($t); |
| 380 | if($l == ""){ | 393 | if($l == ""){ |
| 381 | $l = $nmap->getlayer(0); | 394 | $l = $nmap->getlayer(0); |
| 382 | } | 395 | } |
| 383 | - $permite = $l->getmetadata("permiteogc"); | 396 | + $permite = $l->getmetadata("permiteogc"); |
| 397 | + | ||
| 384 | if(strtolower($permite) != "nao"){ | 398 | if(strtolower($permite) != "nao"){ |
| 399 | + | ||
| 385 | //necessário pq o mapfile pode ter todos os layers como default | 400 | //necessário pq o mapfile pode ter todos os layers como default |
| 386 | if($temai3geo == false){ | 401 | if($temai3geo == false){ |
| 387 | $l->set("status",MS_OFF); | 402 | $l->set("status",MS_OFF); |
| @@ -631,13 +646,15 @@ else{ | @@ -631,13 +646,15 @@ else{ | ||
| 631 | $oMap->setFontSet($locaplic."/symbols/".basename($oMap->fontsetfilename)); | 646 | $oMap->setFontSet($locaplic."/symbols/".basename($oMap->fontsetfilename)); |
| 632 | // | 647 | // |
| 633 | //caso seja download ou json ou csv | 648 | //caso seja download ou json ou csv |
| 634 | - // | 649 | + // |
| 650 | + | ||
| 635 | processaOutputformatMapfile(); | 651 | processaOutputformatMapfile(); |
| 636 | 652 | ||
| 637 | $oMap->save($nomeMapfileTmp); | 653 | $oMap->save($nomeMapfileTmp); |
| 638 | validaAcessoTemas($nomeMapfileTmp,true); | 654 | validaAcessoTemas($nomeMapfileTmp,true); |
| 639 | $oMap = ms_newMapobj($nomeMapfileTmp); | 655 | $oMap = ms_newMapobj($nomeMapfileTmp); |
| 640 | } | 656 | } |
| 657 | + | ||
| 641 | if(ob_get_contents ()){ | 658 | if(ob_get_contents ()){ |
| 642 | ob_end_clean(); | 659 | ob_end_clean(); |
| 643 | } | 660 | } |
| @@ -830,7 +847,8 @@ if(strtolower($req->getValueByName("REQUEST")) == "getlegendgraphic"){ | @@ -830,7 +847,8 @@ if(strtolower($req->getValueByName("REQUEST")) == "getlegendgraphic"){ | ||
| 830 | exit; | 847 | exit; |
| 831 | } | 848 | } |
| 832 | } | 849 | } |
| 833 | -} | 850 | +} |
| 851 | + | ||
| 834 | if(strtolower($req->getValueByName("REQUEST")) == "getfeature"){ | 852 | if(strtolower($req->getValueByName("REQUEST")) == "getfeature"){ |
| 835 | $l = $oMap->getlayer(0); | 853 | $l = $oMap->getlayer(0); |
| 836 | if($req->getValueByName("TYPENAME") == "" || $req->getValueByName("TYPENAME") == "undefined"){ | 854 | if($req->getValueByName("TYPENAME") == "" || $req->getValueByName("TYPENAME") == "undefined"){ |
| @@ -852,7 +870,6 @@ if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo"){ | @@ -852,7 +870,6 @@ if(strtolower($req->getValueByName("REQUEST")) == "getfeatureinfo"){ | ||
| 852 | $_GET["SRS"] = "EPSG:3857"; | 870 | $_GET["SRS"] = "EPSG:3857"; |
| 853 | } | 871 | } |
| 854 | } | 872 | } |
| 855 | - | ||
| 856 | ms_ioinstallstdouttobuffer(); | 873 | ms_ioinstallstdouttobuffer(); |
| 857 | // | 874 | // |
| 858 | //verifica parametro outputformat e ajusta a requisicao | 875 | //verifica parametro outputformat e ajusta a requisicao |
| @@ -878,22 +895,26 @@ elseif(!isset($OUTPUTFORMAT)){ | @@ -878,22 +895,26 @@ elseif(!isset($OUTPUTFORMAT)){ | ||
| 878 | //$ogrOutput vem de ms_configura.php | 895 | //$ogrOutput vem de ms_configura.php |
| 879 | 896 | ||
| 880 | //precisa limpar o cabecalho | 897 | //precisa limpar o cabecalho |
| 881 | -if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){ | 898 | +if(strtolower($OUTPUTFORMAT) == "geojson" || strtolower($OUTPUTFORMAT) == "json"){ |
| 882 | $arq = $dir_tmp."/".$tema.".json"; | 899 | $arq = $dir_tmp."/".$tema.".json"; |
| 883 | if(isset($ogrOutput) && $ogrOutput == false){ | 900 | if(isset($ogrOutput) && $ogrOutput == false){ |
| 884 | exportaGeojson(); | 901 | exportaGeojson(); |
| 885 | exit; | 902 | exit; |
| 886 | } | 903 | } |
| 887 | - $oMap->owsdispatch($req); | 904 | + $oMap->owsdispatch($req); |
| 905 | + | ||
| 888 | $contenttype = ms_iostripstdoutbuffercontenttype(); | 906 | $contenttype = ms_iostripstdoutbuffercontenttype(); |
| 889 | ms_iostripstdoutbuffercontentheaders(); | 907 | ms_iostripstdoutbuffercontentheaders(); |
| 890 | //grava em disco | 908 | //grava em disco |
| 891 | $contents = ms_iogetstdoutbufferstring(); | 909 | $contents = ms_iogetstdoutbufferstring(); |
| 892 | file_put_contents($arq,$contents); | 910 | file_put_contents($arq,$contents); |
| 893 | //envia para download | 911 | //envia para download |
| 912 | + | ||
| 894 | header("Content-type: application/json; subtype=geojson"); | 913 | header("Content-type: application/json; subtype=geojson"); |
| 914 | + | ||
| 895 | ms_iogetStdoutBufferBytes(); | 915 | ms_iogetStdoutBufferBytes(); |
| 896 | ms_ioresethandlers(); | 916 | ms_ioresethandlers(); |
| 917 | + | ||
| 897 | exit; | 918 | exit; |
| 898 | } | 919 | } |
| 899 | if(strtolower($OUTPUTFORMAT) == "shape-zip"){ | 920 | if(strtolower($OUTPUTFORMAT) == "shape-zip"){ |