Commit f5f7ab4e2694fd5678114f7426baa810ee5953c5

Authored by Edmar Moretti
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"){
... ...