"","imgLegenda"=>"","tempo"=> (microtime(true) - $tempo),"erro"=>"Objeto map nao pode ser criado. Erro fatal."); } if(@ms_newMapObj($tema)){ $nmapa = ms_newMapObj($tema); } else{ $erro = ""; $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR){ $erro .= "
Error in %s: %s
\n"; $erro .= "
".$error->routine; $erro .= "
".$error->message; $error = $error->next(); } return array("imgMapa"=>"","imgLegenda"=>"","tempo"=> (microtime(true) - $tempo),"erro"=>$erro); } restauraConObj($mapa,$postgis_mapa); restauraConObj($nmapa,$postgis_mapa); $numlayers = $nmapa->numlayers; $dados = ""; $simbolos = array(); for ($i=0;$i < $numlayers;$i++){ $layern = $nmapa->getlayer($i); $layern->set("status",MS_DEFAULT); autoClasses($layern,$nmapa); error_reporting(0); if($layern->classitem != "" && $layern->connectiontype == 7 && $layern->numclasses > 0 && $layern->getmetadata("wms_sld_body") == ""){ $tipotemp = $layern->type; $tiporep = $layern->getmetadata("tipooriginal"); $layern->set("type",MS_LAYER_POLYGON); if ($tiporep == "linear"){ $layern->set("type",MS_LAYER_LINE); } if ($tiporep == "pontual"){ $layern->set("type",MS_LAYER_POINT); } $sld = $layern->generateSLD(); if($sld != ""){ $layern->setmetadata("wms_sld_body",str_replace('"',"'",$sld)); } $layern->set("type",$tipotemp); } //pega simbolos locais e aplica no novo mapa cloneInlineSymbol($layern,$nmapa,$mapa); $layerAdicionado = ms_newLayerObj($mapa, $layern); corrigeLayerGrid($layern,$layerAdicionado); $pegarext = $layern->name; } zoomTema($pegarext,$mapa); $mapa->setsize(500,500); $sca = $mapa->scalebar; $sca->set("status",MS_OFF); $objImagem = @$mapa->draw(); //corrige o titulo da legenda $numlayers = $mapa->numlayers; for ($j=0;$j < $numlayers;$j++){ $l = $mapa->getlayer($j); if($l->type != 3 && $l->type != 4){ $nclass = $l->numclasses; for($i=0;$i<$nclass;$i++){ $classe = $l->getclass($i); if($classe->title === ""){ $classe->title = $classe->name; } } } } $objImagemLegenda = @$mapa->drawLegend(); if (!$objImagem){ $error = ""; $erro = ""; $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR){ $erro .= "
Error in %s: %s
"; $erro .= "
" . $error->routine; $erro .= "
" . $error->message; $error = $error->next(); } return array("imgMapa"=>"","imgLegenda"=>"","tempo"=> (microtime(true) - $tempo),"erro"=>$erro); } if($objImagem->imagepath == ""){ return array("imgMapa"=>"","imgLegenda"=>"","tempo"=> (microtime(true) - $tempo),"erro"=>"Erro IMAGEPATH vazio"); } $nomec = ($objImagem->imagepath).nomeRandomico()."teste.png"; $objImagem->saveImage($nomec); $nomel = ($objImagemLegenda->imagepath).nomeRandomico()."testel.png"; $objImagemLegenda->saveImage($nomel); $erro = ""; $error = ""; $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR){ $erro .= "
Error in %s: %s
"; $erro .= "
" . $error->routine; $erro .= "
" . $error->message; $error = $error->next(); } return array("imgMapa"=>($objImagem->imageurl).basename($nomec),"imgLegenda"=>($objImagemLegenda->imageurl).basename($nomel),"tempo"=> (microtime(true) - $tempo),"erro"=>$erro); } function zoomTema($nomelayer,&$mapa){ $layer = $mapa->getlayerbyname($nomelayer); if($layer->data == "" && $layer->connection == "") {return;} $prjMapa = $mapa->getProjection(); $prjTema = $layer->getProjection(); $extatual = $mapa->extent; $ret = $layer->getmetadata("extensao"); if($layer->type > 2 && $ret == "") {return;} $ct = $layer->connectiontype; if(($ret == "") && ($ct != 1)) {return;} if ($ret == ""){ $ret = $layer->getextent(); //reprojeta o retangulo if (($prjTema != "") && ($prjMapa != $prjTema)){ $projInObj = ms_newprojectionobj($prjTema); $projOutObj = ms_newprojectionobj($prjMapa); $ret->project($projInObj, $projOutObj); } $extatual->setextent($ret->minx,$ret->miny,$ret->maxx,$ret->maxy); } else{ $ret = explode(" ",$ret); $extatual->setextent($ret[0],$ret[1],$ret[2],$ret[3]); } } ?>