'; echo ''; echo ''; echo ''; echo ''; echo ''; echo ''; echo '
'; echo '
 
'; echo '


Testando: $tema
";
	}
	if(!file_exists($tema)){
		echo "Arquivo ".$map." não encontrado.";
		exit;
	}
	if ($tema != ""){
		if($base == "" or !isset($base)){
			$base = "";
			if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){
				$base = $locaplic."/aplicmap/geral1windowsv".$versao.".map";
			}
			else{
				if($base == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv'.$versao.'.map')){
					$base = "/var/www/i3geo/aplicmap/geral1debianv".$versao.".map";
				}
				if($base == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){
					$base = "/var/www/html/i3geo/aplicmap/geral1fedorav".$versao.".map";
				}
				if($base == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){
					$base = "/opt/www/html/i3geo/aplicmap/geral1v".$versao.".map";
				}
				if($base == ""){
					$base = $locaplic."/aplicmap/geral1v".$versao.".map";
				}
			}
		}
		else{
			if(!file_exists($base)){
				$base = $locaplic."/aplicmap/".$base;
			}
		}
		//echo $base;exit;
		$mapa = ms_newMapObj($base);
		error_reporting(0);
		$numlayers = $mapa->numlayers;
		for ($i=0;$i < $numlayers;$i++){
			$layern = $mapa->getlayer($i);
			if (!empty($postgis_mapa)){
				if ($layern->connectiontype == MS_POSTGIS){
					$lcon = $layern->connection;
					if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){
						if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade
						{$layern->set("connection",$postgis_mapa);}
						else{
							$layern->set("connection",$postgis_mapa[$lcon]);
						}
					}
				}
			}
		}
		if(!stristr($tema, '.php') === FALSE){
			echo "
Arquivo $tema é um programa PHP. O teste pode não funcionar.
"; include_once($locaplic."/".$tema); // //$pegarext deve guardar o nome da camada para ser usado mais abaixo // $pegarext = str_replace(".php","",$tema); $pegarext = str_replace("temas/","",$pegarext); eval($pegarext."(\$mapa);"); } if(!stristr($tema, '.map') === FALSE){ if(file_exists($mapUrl)){ if(@ms_newMapObj($mapUrl)){ $nmapa = ms_newMapObj($mapUrl); } else{ echo "Erro no arquivo $mapUrl
"; $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR){ printf("
Error in %s: %s
\n", $error->routine, $error->message); $error = $error->next(); } return; } } else{ if(@ms_newMapObj($locaplic."/".$tema)){ if(!function_exists("validaAcessoTemas")){ include($locaplic."/classesphp/funcoes_gerais.php"); } if(validaAcessoTemas($locaplic."/".$tema,false) == false){ $nmapa = ms_newMapObj($locaplic."/".$tema); } else{ echo "tema restrito
"; exit; } } else{ echo "erro no arquivo $map
"; echo "Obs.: em alguns testes o mapfile pode falhar se o endereço dos arquivos de símbolos estiverem
definidos de forma relativa ao invés de absoluta. Nesses casos, ao abrir o i3Geo,
o mapfile poderá funcionar.
"; $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR){ printf("
Error in %s: %s
\n", $error->routine, $error->message); $error = $error->next(); } return; } } $numlayers = $nmapa->numlayers; $dados = ""; $simbolos = array(); for ($i=0;$i < $numlayers;$i++){ $layern = $nmapa->getlayer($i); $layern->set("status",MS_DEFAULT); if (!empty($postgis_mapa)){ if ($layern->connectiontype == MS_POSTGIS){ $lcon = $layern->connection; error_reporting(0); if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade {$layern->set("connection",$postgis_mapa);} else {$layern->set("connection",$postgis_mapa[$lcon]);} } } } 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); ms_newLayerObj($mapa, $layern); if ($layern->data == ""){ $dados = $layern->connection; } else{ $dados = $layern->data; } $pegarext = $layern->name; } zoomTema($pegarext,$mapa); } if(!stristr($tema, '.gvp') === FALSE){ if(file_exists($mapUrl)){ $gvsiggvp = $mapUrl; } else{ $gvsiggvp = $locaplic."/".$tema; } include_once($locaplic."/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"); $gm = new gvsig2mapfile($gvsiggvp); $gvsigview = $gm->getViewsNames(); foreach($gvsigview as $v){ $dataView = $gm->getViewData($v); $mapa = $gm->addLayers($mapa,$v,$dataView["layerNames"]); } $next = $dataView["extent"]; $ext = $mapa->extent; $ext->setextent($next[0],$next[1],$next[2],$next[3]); } if ($tipo == "mini"){ $mapa->setsize(50,50); $sca = $mapa->scalebar; $sca->set("status",MS_OFF); } if ($tipo == "grande"){ $mapa->setsize(300,300); $sca = $mapa->scalebar; $sca->set("status",MS_OFF); } if($tipo == "todos"){ $mapa->setsize(150,150); $sca = $mapa->scalebar; $sca->set("status",MS_OFF); } $destino = $dir_tmp."/".nomeRandomico().".map"; $mapa->save($destino); validaAcessoTemas($destino,true); //testa a tabela de atributos if(isset($tabela)){ include("classesphp/classe_atributos.php"); $t = new Atributos($destino,$map); $r = $t->itensTexto(); $colunas = explode(";",$r["itens"]); $ncolunas = count($colunas); $registros = $r["valores"]; $nregistros = count($registros); $error = ""; $error = ms_GetErrorObj(); echo "
"; while($error && $error->code != MS_NOERR){ echo "
Error in %s: %s
", $error->routine, $error->message; $error = $error->next(); } echo "Registros em UTF8 são convertidos para ISO-8859-1
"; echo "Registros: ".$nregistros;"
"; echo "
Tempo leitura (s): "; echo microtime(true) - $tempo; echo ""; echo ""; echo ""; foreach($colunas as $co){ echo ""; } echo ""; foreach($registros as $reg){ echo ""; $cc = explode(";",$reg); foreach($cc as $c){ if (mb_detect_encoding($c,"UTF-8",true)){ $c = mb_convert_encoding($c,"ISO-8859-1","UTF-8"); } echo ""; } echo ""; } echo "
".$co."
".$c."
"; echo "
Tempo total (montagem da tabela) (s): "; echo microtime(true) - $tempo; echo ""; } else{ $mapa = ms_newMapObj($destino); $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){ echo "Problemas ao gerar o mapa
"; $error = ""; $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR){ echo "
Error in %s: %s
", $error->routine, $error->message; $error = $error->next(); } return; } if($objImagem->imagepath == "") {echo "Erro IMAGEPATH vazio";} $nomec = ($objImagem->imagepath).nomeRandomico()."teste.png"; $objImagem->saveImage($nomec); $nomer = ($objImagem->imageurl).basename($nomec); $nomel = ($objImagemLegenda->imagepath).nomeRandomico()."testel.png"; $objImagemLegenda->saveImage($nomel); $nomerl = ($objImagemLegenda->imageurl).basename($nomel); if(($tipo == "") || ($tipo == "todos")){ if($solegenda == "nao") {echo "
";} echo ""; if($tipo == "todos"){ echo "
".$dados."
"; } if($map != "todos"){ echo "
Tempo (s): "; echo microtime(true) - $tempo; echo ""; echo "
Erros ocorridos:
"; $error = ""; $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR){ echo "
Error in %s: %s
", $error->routine, $error->message; $error = $error->next(); } } } else{ Header("Content-type: image/png"); ImagePng(ImageCreateFromPNG($nomec)); } } } } 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]); } } ?>