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 | 182 | $tipo = "intervalo"; |
183 | 183 | } |
184 | 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 | 193 | $nomeMapfileTmp = $dir_tmp."/ogc_".md5($tema)."_".$agora.".map"; |
187 | 194 | $nomeMapfileTmp = str_replace(",","",$nomeMapfileTmp); |
188 | 195 | $nomeMapfileTmp = str_replace(" ","",$nomeMapfileTmp); |
... | ... | @@ -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 | 494 | //calcula a extensao geografica com base no x,y,z em requisições TMS |
... | ... | @@ -512,7 +519,10 @@ if(isset($_GET["tms"])){ |
512 | 519 | if($img->imagepath == ""){ |
513 | 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 | 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 | 562 | $img = $oMap->draw(); |
553 | 563 | if($img->imagepath == ""){ |
554 | 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 | 572 | if(strtolower($req->getValueByName("REQUEST")) == "getlegendgraphic"){ |
559 | 573 | $l = $oMap->getlayer(0); |
... | ... | @@ -736,4 +750,40 @@ function texto2iso($texto){ |
736 | 750 | } |
737 | 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 | ?> | ... | ... |