From ee55328ecd387588a061ead4467d62e3a7d7f64c Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Mon, 28 Jul 2014 19:05:25 +0000 Subject: [PATCH] Inclusão do OUTPUTFORMAT shape-zip em ogc.php --- aplicmap/ogcwsv6.map | 7 ++++++- ogc.php | 35 +++++++++++++++++++++++++++++------ 2 files changed, 35 insertions(+), 7 deletions(-) diff --git a/aplicmap/ogcwsv6.map b/aplicmap/ogcwsv6.map index 7047329..a9f1903 100644 --- a/aplicmap/ogcwsv6.map +++ b/aplicmap/ogcwsv6.map @@ -4,7 +4,7 @@ MAP SYMBOLSET "../symbols/simbolosv6.sym" IMAGECOLOR 255 255 255 IMAGETYPE png -MAXSIZE 10000 + MAXSIZE 10000 SHAPEPATH "/opt/www/html/geodados" SIZE 450 450 STATUS ON @@ -26,6 +26,11 @@ MAXSIZE 10000 FORMATOPTION "INTERLACE=OFF" TRANSPARENT TRUE END + OUTPUTFORMAT + NAME 'shape-zip' + DRIVER 'OGR/ESRI Shapefile' + IMAGEMODE FEATURE + END PROJECTION "+proj=longlat +ellps=GRS67 +no_defs" END diff --git a/ogc.php b/ogc.php index bbf6eb0..f170e4c 100644 --- a/ogc.php +++ b/ogc.php @@ -223,6 +223,12 @@ if(isset($_GET["tms"])){ if(isset($_GET["Z"]) && isset($_GET["X"])){ $agora .= "google"; } +// +//se o outputformat for definido, evita o cahce de arquivo +// +if(isset($_GET["OUTPUTFORMAT"])){ + $_GET["DESLIGACACHE"] = "sim"; +} if(isset($_GET["DESLIGACACHE"]) && $_GET["DESLIGACACHE"] == "sim"){ $agora = time(); $cache = false; @@ -331,7 +337,7 @@ else{ carregaCacheImagem($_GET['BBOX'],$tx,$_GET['WIDTH'],$_GET['HEIGHT'],$cachedir); } */ - $l->setmetadata("ows_title",pegaNome($l)); + $l->setmetadata("ows_title",pegaNome($l)); $l->setmetadata("ows_srs",$listaepsg); $l->set("group",""); //essa linha é necessária pq as vezes no mapfile não tem nenhum layer com o nome igual ao nome do mapfile @@ -502,8 +508,7 @@ else{ $l->setmetadata("gml_include_items","all"); $l->set("dump",MS_TRUE); $l->setmetadata("WMS_INCLUDE_ITEMS","all"); - $l->setmetadata("WFS_INCLUDE_ITEMS","all"); - + $l->setmetadata("WFS_INCLUDE_ITEMS","all"); if($l->getmetadata("ows_metadataurl_href") == ""){ $l->setmetadata("ows_metadataurl_href",$c["fonte"]); $l->setmetadata("ows_metadataurl_type","TC211"); @@ -585,7 +590,7 @@ if(isset($_GET["tms"])){ //echo $lon1." ".$lat1." ".$lon2." ".$lat2;exit; $oMap->setsize(256,256); $oMap->setExtent($lon1,$lat1,$lon2,$lat2); - + $layer0->set("status",MS_DEFAULT); // //se o layer foi marcado para corte altera os parametros para ampliar o mapa @@ -648,7 +653,7 @@ if(isset($_GET["Z"]) && isset($_GET["X"])){ $poPoint2->project($projInObj, $projOutObj); $oMap->setsize(256,256); $oMap->setExtent($poPoint1->x,$poPoint1->y,$poPoint2->x,$poPoint2->y); - + $oMap->getlayer(0)->set("status",MS_DEFAULT); $oMap->setProjection("proj=merc,a=6378137,b=6378137,lat_ts=0.0,lon_0=0.0,x_0=0.0,y_0=0,k=1.0,units=m"); $layer0->setProjection("proj=latlong,a=6378137,b=6378137"); @@ -716,6 +721,24 @@ if(strtolower($req->getValueByName("REQUEST")) == "getfeature"){ if((isset($legenda)) && (strtolower($legenda) == "sim")){ $leg = $oMap->legend; $leg->set("status",MS_EMBED); +} +// +//altera o outputformat +// +if(isset($OUTPUTFORMAT)){ + if(strtolower($OUTPUTFORMAT) == "shape-zip"){ + $l = $oMap->getlayer(0); + $n = $l->name.time(); + $oMap->selectOutputFormat("shape-zip"); + $oMap->outputformat->setOption("STORAGE", "memory"); + $oMap->outputformat->setOption("FORM", "zip"); + $oMap->outputformat->setOption("FILENAME", $n.".zip"); + $l->setmetadata("wfs_getfeature_formatlist","shape-zip"); + $oMap->save($nomeMapfileTmp); + if(strtolower($request) != "getcapabilities"){ + header('Content-Disposition: attachment; filename='.$n.'.zip'); + } + } } ms_ioinstallstdouttobuffer(); $oMap->owsdispatch($req); @@ -870,7 +893,7 @@ function salvaCacheImagem($cachedir,$map,$tms){ // Fill the image with transparent color $color = imagecolorallocatealpha($imgc,0x00,0x00,0x00,127); imagefill($imgc, 0, 0, $color); - + imagecopy($imgc, $img, 0 , 0 , $cortePixels , $cortePixels , 256, 256); imagepng($imgc,$nome); } -- libgit2 0.21.2