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 | ?> |