'.$_GET["layer"].' '.$url.' onStop onChange '; echo header("Content-type: application/xml"); echo $kml; } function retornaWms($map_fileX,$postgis_mapa){ //error_reporting(0); if(isset($_GET["bbox"])) {$_GET["BBOX"] = $_GET["bbox"];} if(isset($_GET["BBOX"])) { $_GET["mapext"] = str_replace(","," ",$_GET["BBOX"]); $m = explode(" ",$_GET["mapext"]); $dx = $m[0] - $m[2]; if($dx < 0){$dx = $dx * -1;} $dy = $m[1] - $m[3]; if($dy < 0){$dy = $dy * -1;} $_GET["HEIGHT"] = ($_GET["WIDTH"] / $dx) * $dy; //$_GET["map_size"] = $_GET["WIDTH"]." ".$_GET["HEIGHT"]; } $mapa = ms_newMapObj($map_fileX); $mapa->setProjection("init=epsg:4326"); // //resolve o problema da seleção na versão nova do mapserver // $qyfile = dirname($map_fileX)."/".$_GET["layer"]."_qy.map"; $qy = file_exists($qyfile); $o = $mapa->outputformat; $o->set("imagemode",MS_IMAGEMODE_RGBA); $numlayers = $mapa->numlayers; for ($i=0;$i < $numlayers;++$i) { $l = $mapa->getlayer($i); if ($l->getmetadata("classesnome") != "") { if(!function_exists("autoClasses")) {include_once("funcoes_gerais.php");} autoClasses($l,$mapa); } $layerName = $l->name; if($layerName != $_GET["layer"]) {$l->set("status",MS_OFF);} if($layerName == $_GET["layer"] || $l->group == $_GET["layer"] && $l->group != "") { $l->set("status",MS_DEFAULT); if (!empty($postgis_mapa)) { if ($l->connectiontype == MS_POSTGIS) { $lcon = $l->connection; if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))) { if(($lcon == " ") || ($lcon == "")) {$l->set("connection",$postgis_mapa);} else {$l->set("connection",$postgis_mapa[$lcon]);} } } } } $l->set("template","none.htm"); } $mapa->setsize($_GET["WIDTH"],$_GET["HEIGHT"]); if(isset($_GET["mapext"])){ $mapext = explode(" ",$_GET["mapext"]); $mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]); } $legenda = $mapa->legend; $legenda->set("status",MS_OFF); $escala = $mapa->scalebar; $escala->set("status",MS_OFF); // //se o layer não for do tipo fundo // if(isset($_GET["tipolayer"]) && $_GET["tipolayer"] != "fundo") {$o->set("transparent",MS_TRUE);} if($qy != true) {$img = $mapa->draw();} else { $handle = fopen ($qyfile, "r"); $conteudo = fread ($handle, filesize ($qyfile)); fclose ($handle); $shp = unserialize($conteudo); $l = $mapa->getLayerByname($_GET["layer"]); if ($l->connectiontype != MS_POSTGIS){ $indxlayer = $l->index; foreach ($shp as $indx) {$mapa->querybyindex($indxlayer,-1,$indx,MS_TRUE);} $qm = $mapa->querymap; $qm->set("width",$map_size[0]); $qm->set("height",$map_size[1]); $img = $mapa->drawQuery(); } else{ $img = $mapa->draw(); $c = $mapa->querymap->color; $numclasses = $l->numclasses; if ($numclasses > 0) { $classe0 = $l->getClass(0); $classe0->setexpression(""); $classe0->set("name"," "); for ($i=1; $i < $numclasses; ++$i) { $classe = $l->getClass($i); $classe->set("status",MS_DELETE); } } $cor = $classe0->getstyle(0)->color; $cor->setrgb($c->red,$c->green,$c->blue); $cor = $classe0->getstyle(0)->outlinecolor; $cor->setrgb($c->red,$c->green,$c->blue); $status = $l->open(); $status = $l->whichShapes($mapa->extent); while ($shape = $l->nextShape()) { if(in_array($shape->index,$shp)) $shape->draw($mapa,$l,$img); } $l->close(); } } if (!function_exists('imagepng')) { $s = PHP_SHLIB_SUFFIX; @dl( 'php_gd.'.$s ); if (!function_exists('imagepng')) {@dl( 'php_gd2.'.$s );} if (!function_exists('imagepng')) {$_GET["TIPOIMAGEM"] = "";} } if(isset($_GET["TIPOIMAGEM"]) && trim($_GET["TIPOIMAGEM"]) != "" && trim($_GET["TIPOIMAGEM"]) != "nenhum") { if($img->imagepath == "") {echo "Erro IMAGEPATH vazio";exit;} $nomer = ($img->imagepath)."filtroimgtemp".nomeRandomico().".png"; $img->saveImage($nomer); filtraImagem($nomer,$_GET["TIPOIMAGEM"]); $img = imagecreatefrompng($nomer); imagealphablending($img, false); imagesavealpha($img, true); ob_clean(); echo header("Content-type: image/png \n\n"); imagepng($img); } else{ ob_clean(); if($img->imagepath == "") {echo "Erro IMAGEPATH vazio";exit;} $nomer = ($img->imagepath)."imgtemp".nomeRandomico().".png"; $img->saveImage($nomer); $img = imagecreatefrompng($nomer); imagealphablending($img, false); imagesavealpha($img, true); ob_clean(); echo header("Content-type: image/png \n\n"); imagepng($img); } } function nomeRandomico($n=10) { $nomes = ""; $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ'; $max = 51; for($i=0; $i < $n; ++$i) {$nomes .= $a{mt_rand(0, $max)};} return $nomes; } function filtraImagem($nomer,$tipoimagem){ include_once("classe_imagem.php"); $tiposImagem = explode(" ",$tipoimagem); foreach ($tiposImagem as $tipoimagem){ $m = new Imagem($nomer); if ($tipoimagem == "cinza") {imagepng($m->cinzaNormal(),str_replace("\\","/",$nomer));} if ($tipoimagem == "sepiaclara") {imagepng($m->sepiaClara(),str_replace("\\","/",$nomer));} if ($tipoimagem == "sepianormal") {imagepng($m->sepiaNormal(),str_replace("\\","/",$nomer));} if ($tipoimagem == "negativo") {imagepng($m->negativo(),str_replace("\\","/",$nomer));} if ($tipoimagem == "detectaBordas") {imagepng($m->detectaBordas(),str_replace("\\","/",$nomer));} if ($tipoimagem == "embassa") {imagepng($m->embassa(),str_replace("\\","/",$nomer));} if ($tipoimagem == "gaussian_blur") {imagepng($m->gaussian_blur(),str_replace("\\","/",$nomer));} if ($tipoimagem == "selective_blur") {imagepng($m->selective_blur(),str_replace("\\","/",$nomer));} if ($tipoimagem == "mean_removal") {imagepng($m->mean_removal(),str_replace("\\","/",$nomer));} if ($tipoimagem == "pixelate") {imagepng($m->pixelate(),str_replace("\\","/",$nomer));} } } function ilegal(){ $img = imagecreatefrompng("../imagens/ilegal.png"); imagealphablending($img, false); imagesavealpha($img, true); ob_clean(); echo header("Content-type: image/png \n\n"); imagepng($img); exit; } ?>