"","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]);
}
}
?>