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