Commit 503e5ace066afbcd8e5dc688fd1b8ea143037896
1 parent
94cbb65a
Exists in
master
and in
7 other branches
--no commit message
Showing
1 changed file
with
55 additions
and
5 deletions
Show diff stats
ogc.php
@@ -182,7 +182,14 @@ if(!isset($tema)){ | @@ -182,7 +182,14 @@ if(!isset($tema)){ | ||
182 | $tipo = "intervalo"; | 182 | $tipo = "intervalo"; |
183 | } | 183 | } |
184 | //nome do mapfile que ficara em cache | 184 | //nome do mapfile que ficara em cache |
185 | -$agora = intval(time() / 1000); | 185 | +$agora = intval(time() / 1000); |
186 | +//acrescenta ao nome a indicacao do tipo de TMS | ||
187 | +if(isset($_GET["tms"])){ | ||
188 | + $agora .= "tms"; | ||
189 | +} | ||
190 | +if(isset($_GET["Z"]) && isset($_GET["X"])){ | ||
191 | + $agora .= "google"; | ||
192 | +} | ||
186 | $nomeMapfileTmp = $dir_tmp."/ogc_".md5($tema)."_".$agora.".map"; | 193 | $nomeMapfileTmp = $dir_tmp."/ogc_".md5($tema)."_".$agora.".map"; |
187 | $nomeMapfileTmp = str_replace(",","",$nomeMapfileTmp); | 194 | $nomeMapfileTmp = str_replace(",","",$nomeMapfileTmp); |
188 | $nomeMapfileTmp = str_replace(" ","",$nomeMapfileTmp); | 195 | $nomeMapfileTmp = str_replace(" ","",$nomeMapfileTmp); |
@@ -481,7 +488,7 @@ else{ | @@ -481,7 +488,7 @@ else{ | ||
481 | } | 488 | } |
482 | } | 489 | } |
483 | // | 490 | // |
484 | -//verifica se a requisicao e do tipo TMS. Se for, tenta gerar ou usar o cache | 491 | +//verifica se a requisicao e do tipo TMS. |
485 | // | 492 | // |
486 | // | 493 | // |
487 | //calcula a extensao geografica com base no x,y,z em requisições TMS | 494 | //calcula a extensao geografica com base no x,y,z em requisições TMS |
@@ -512,7 +519,10 @@ if(isset($_GET["tms"])){ | @@ -512,7 +519,10 @@ if(isset($_GET["tms"])){ | ||
512 | if($img->imagepath == ""){ | 519 | if($img->imagepath == ""){ |
513 | exit; | 520 | exit; |
514 | } | 521 | } |
515 | - salvaCacheImagem($cachedir,$nomeMapfileTmp,$_GET["tms"]); | 522 | + if($cache == true){ |
523 | + salvaCacheImagem($cachedir,$nomeMapfileTmp,$_GET["tms"]); | ||
524 | + } | ||
525 | + renderNocacheTms(); | ||
516 | } | 526 | } |
517 | // | 527 | // |
518 | //verifica se a chamada do servico e do tipo TILE no padrao do Google | 528 | //verifica se a chamada do servico e do tipo TILE no padrao do Google |
@@ -552,8 +562,12 @@ if(isset($_GET["Z"]) && isset($_GET["X"])){ | @@ -552,8 +562,12 @@ if(isset($_GET["Z"]) && isset($_GET["X"])){ | ||
552 | $img = $oMap->draw(); | 562 | $img = $oMap->draw(); |
553 | if($img->imagepath == ""){ | 563 | if($img->imagepath == ""){ |
554 | exit; | 564 | exit; |
555 | - } | ||
556 | - salvaCacheImagem($cachedir,$nomeMapfileTmp,$_GET["tms"]); | 565 | + } |
566 | + /** | ||
567 | + * @TODO ativar cache | ||
568 | + */ | ||
569 | + //salvaCacheImagem($cachedir,$nomeMapfileTmp,$_GET["tms"]); | ||
570 | + renderNocacheTms(); | ||
557 | } | 571 | } |
558 | if(strtolower($req->getValueByName("REQUEST")) == "getlegendgraphic"){ | 572 | if(strtolower($req->getValueByName("REQUEST")) == "getlegendgraphic"){ |
559 | $l = $oMap->getlayer(0); | 573 | $l = $oMap->getlayer(0); |
@@ -736,4 +750,40 @@ function texto2iso($texto){ | @@ -736,4 +750,40 @@ function texto2iso($texto){ | ||
736 | } | 750 | } |
737 | return $texto; | 751 | return $texto; |
738 | } | 752 | } |
753 | +function nomeRand($n=10) | ||
754 | +{ | ||
755 | + $nomes = ""; | ||
756 | + $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ'; | ||
757 | + $max = 51; | ||
758 | + for($i=0; $i < $n; ++$i) | ||
759 | + {$nomes .= $a{mt_rand(0, $max)};} | ||
760 | + return $nomes; | ||
761 | +} | ||
762 | +function renderNocacheTms(){ | ||
763 | + global $img,$i3georendermode,$dir_tmp; | ||
764 | + if($i3georendermode == 0 || !isset($i3georendermode)){ | ||
765 | + $nomer = $dir_tmp."/temp".nomeRand().".png"; | ||
766 | + $img->saveImage($nomer); | ||
767 | + header('Content-Length: '.filesize($nomer)); | ||
768 | + header('Content-Type: image/png'); | ||
769 | + header('Cache-Control: max-age=3600, must-revalidate'); | ||
770 | + header('Expires: ' . gmdate('D, d M Y H:i:s', time()+24*60*60) . ' GMT'); | ||
771 | + header('Last-Modified: '.gmdate('D, d M Y H:i:s', filemtime($nomer)).' GMT', true, 200); | ||
772 | + fpassthru(fopen($nomer, 'rb')); | ||
773 | + } | ||
774 | + if($i3georendermode == 1){ | ||
775 | + ob_clean(); | ||
776 | + header('Content-Type: image/png'); | ||
777 | + $img->saveImage(); | ||
778 | + } | ||
779 | + if($i3georendermode == 2){ | ||
780 | + $nomer = $dir_tmp."/temp".nomeRand().".png"; | ||
781 | + $img->saveImage($nomer); | ||
782 | + ob_clean(); | ||
783 | + header('Cache-Control: public, max-age=22222222'); | ||
784 | + header('Expires: ' . gmdate('D, d M Y H:i:s', time()+48*60*60) . ' GMT'); | ||
785 | + header("X-Sendfile: $nomer"); | ||
786 | + header("Content-type: image/png"); | ||
787 | + } | ||
788 | +} | ||
739 | ?> | 789 | ?> |