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
@@ -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"){