$arq

"; if($tipo == "mini" || $tipo == "todos"){ if(!file_exists($_SESSION["locaplic"].'/temas/miniaturas/'.$arq.'.mini.png')){ verificaMiniatura($arq,"mini"); } } if($tipo == "grande" || $tipo == "todos"){ if(!file_exists($_SESSION["locaplic"].'/temas/miniaturas/'.$arq.'.grande.png')){ verificaMiniatura($arq,"grande"); } } echo "
"; } ob_flush(); flush(); sleep(2); } ob_end_flush(); } ?>
ARQUIVO $base NÂO FOI ENCONTRADO. CORRIJA ISSO EM ms_configura.php"; exit; } } else{ $f = ""; if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){ $f = $_SESSION["locaplic"]."/aplicmap/geral1windowsv".$versao.".map"; } else{ if($f == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv'.$versao.'.map')){ $f = "/var/www/i3geo/aplicmap/geral1debianv".$versao.".map"; } if($f == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){ $f = "/var/www/html/i3geo/aplicmap/geral1fedorav".$versao.".map"; } if($f == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){ $f = "/opt/www/html/i3geo/aplicmap/geral1v".$versao.".map"; } if($f == ""){ $f = $_SESSION["locaplic"]."/aplicmap/geral1v".$versao.".map"; } } } $mapa = ms_newMapObj($f); if($extensao == ".map"){ if(@ms_newMapObj($tema)){ $nmapa = ms_newMapObj($tema); } else{ echo "
erro no arquivo $tema
"; return; } $dados = ""; $numlayers = $nmapa->numlayers; for ($i=0;$i < $numlayers;$i++){ $layern = $nmapa->getlayer($i); $layern->set("status",MS_DEFAULT); cloneInlineSymbol($layern,$nmapa,$mapa); ms_newLayerObj($mapa, $layern); autoClasses($layern,$mapa,$_SESSION["locaplic"]); if ($layern->data == ""){ $dados = $layern->connection; } else{ $dados = $layern->data; } $pegarext = $layern->name; } if (isset($postgis_mapa)){ if ($postgis_mapa != ""){ $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]); } } } } } } } zoomTemaMiniatura($pegarext,$mapa); } if ($tipo == "mini" || $tipo == "todos"){ $mapa->setsize(50,50); $sca = $mapa->scalebar; $sca->set("status",MS_OFF); $objImagemM = @$mapa->draw(); //if ($objImagemM == "" || $objImagemM == MS_FAILURE) //{echo "Problemas ao gerar o mapa
";return;} $weboM = $mapa->web; $urlM = $weboM->imageurl."/".$map; } if ($tipo == "grande" || $tipo == "todos"){ $mapa->setsize(300,300); $sca = $mapa->scalebar; $sca->set("status",MS_OFF); $objImagemG = @$mapa->draw(); //if ($objImagemG == "" || $objImagemG == MS_FAILURE) //{echo "Problemas ao gerar o mapa
";return;} $weboG = $mapa->web; $urlG = $weboG->imageurl."/".$map; } if($tipo=="mini" || $tipo == "todos"){ if (!$objImagemM){ echo "Problemas ao gerar o mapa
"; $error = ""; $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR){ echo "
O sistema retornou o seguinte erro: Error in %s: %s
", $error->routine, $error->message; $error = $error->next(); } return; } if($objImagemM->imagepath == ""){ echo "
Erro IMAGEPATH vazio
";return; } $nomecM = ($objImagemM->imagepath).$map.".mini.png"; $objImagemM->saveImage($nomecM); } if($tipo=="grande" || $tipo == "todos"){ if (!$objImagemG){ echo "
Problemas ao gerar o mapa
"; $error = ""; $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR){ echo "
O sistema retornou o seguinte erro: Error in %s: %s
", $error->routine, $error->message; $error = $error->next(); } return; } if($objImagemG->imagepath == ""){ echo "
Erro IMAGEPATH vazio
";return; } $nomecG = ($objImagemG->imagepath).$map.".grande.png"; $objImagemG->saveImage($nomecG); } if($admin === false){ if($tipo=="mini" || $tipo == "todos") {echo "";} if($tipo=="grande" || $tipo == "todos") {echo "";} } // //copia a imagem // if($admin === true){ $dir = $_SESSION["locaplic"]."/temas/miniaturas"; $mini = $dir."/".$map.".map.mini.png"; $grande = $dir."/".$map.".map.grande.png"; if(file_exists($mini)) {unlink($mini);} if(file_exists($grande)) {unlink($grande);} copy(($objImagemG->imagepath).$map.".grande.png",$grande); copy(($objImagemM->imagepath).$map.".mini.png",$mini); } } } function zoomTemaMiniatura($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]); } } function listaArquivos($diretorio,$seguro=false,$permitido=array("png","PNG","jpg","JPG","tif","tiff","TIF","TIFF","shp","SHP","img")) { $docroot = $_SERVER["DOCUMENT_ROOT"]; if (!is_dir($diretorio)){ $diretorio = "../".$diretorio; } if (is_dir($diretorio)){ $dirs = array(); $arqs = array(); $nomes = array(); $urls = array(); $exts = array(); $d = dir($diretorio); while (($nd = $d->read()) != FALSE) { if ($nd != "." && $nd != ".."){ $ext = explode(".",$nd); if (count($ext)>1){ if($seguro == true){ $buscar = $ext[1]; //$permitido = array("png","PNG","jpg","JPG","tif","tiff","TIF","TIFF","shp","SHP","img"); if(in_array($buscar,$permitido)){ $arqs[] = $nd; $nomes[] = basename($nd); $exts[] = $ext[1]; $url = ""; if(strpos($diretorio,$docroot) === true || strpos($diretorio,$docroot) === 0){ $url = str_replace($docroot,"",$diretorio."/".$nd); } $urls[] = $url; } } else{ $arqs[] = $nd; $nomes[] = basename($nd); $urls = ""; $exts[] = $ext[1]; } } if (count($ext)==1){ $dirs[] = $nd; } } } sort($dirs); return array("diretorios"=>$dirs,"arquivos"=>$arqs,"nomes"=>$nomes,"urls"=>$urls,"extensoes"=>$exts); } else {return "erro";} } function cloneInlineSymbol($layern, $nmapa, $mapa) { $numclasses = $layern->numclasses; for($ci = 0; $ci < $numclasses; $ci ++) { $classe = $layern->getclass ( $ci ); $numestilos = $classe->numstyles; for($ei = 0; $ei < $numestilos; $ei ++) { $estilo = $classe->getstyle ( $ei ); if ($estilo->symbolname != "") { $nomesimbolo = $estilo->symbolname; $simbolo = $nmapa->getSymbolObjectById ( $nmapa->getSymbolByName ( $nomesimbolo ) ); if ($simbolo->inmapfile == MS_TRUE || file_exists ( $nomesimbolo )) { $simbolon = new symbolObj ( $mapa, $nomesimbolo ); $simbolon->set ( "inmapfile", MS_TRUE ); $simbolon->setImagePath ( $simbolo->imagepath ); $simbolon->setPoints ( $simbolo->getPointsArray () ); // $simbolon->setPattern($simbolo->getPatternArray()); $simbolon->set ( "type", $simbolo->type ); // $simbolon->set("antialias",$simbolo->antialias); $simbolon->set ( "character", $simbolo->character ); $simbolon->set ( "filled", $simbolo->filled ); // $simbolon->set("font",$simbolo->font); // $simbolon->set("position",$simbolo->position); $simbolon->set ( "sizex", $simbolo->sizex ); $simbolon->set ( "sizey", $simbolo->sizey ); $simbolon->set ( "transparent", $simbolo->transparent ); $simbolon->set ( "transparentcolor", $simbolo->transparentcolor ); // $simbolon->set("anchorpoint",$simbolo->anchorpoint); } } } } } function autoClasses(&$nlayer, $mapa, $locaplic = null) { $postgis_mapa = $_SESSION ["postgis_mapa"]; ; $substituicon = "nao"; if ($nlayer->connectiontype == MS_POSTGIS) { if ($nlayer->connection == " ") { $nlayer->set ( "connection", $postgis_mapa ); $substituicon = "sim"; } } // // gera classes automaticamente (temas vetoriais) if ($nlayer->getmetadata ( "classesitem" ) != "") { $itemnome = $nlayer->getmetadata ( "classesnome" ); $itemid = $nlayer->getmetadata ( "classesitem" ); $itemcor = $nlayer->getmetadata ( "classescor" ); $itemsimbolo = $nlayer->getmetadata ( "classesimbolo" ); $itemtamanho = $nlayer->getmetadata ( "classestamanho" ); $classeoriginal = $nlayer->getclass ( 0 ); // // pega a extensao geografica que devera ser utilizada // $prjMapa = $mapa->getProjection (); $prjTema = $nlayer->getProjection (); $ret = $nlayer->getmetadata ( "extensao" ); if ($ret == "") { $ret = $nlayer->getextent (); // reprojeta o retangulo if (($prjTema != "") && ($prjMapa != $prjTema)) { $projInObj = ms_newprojectionobj ( $prjTema ); $projOutObj = ms_newprojectionobj ( $prjMapa ); $ret->project ( $projInObj, $projOutObj ); } } else { $temp = explode ( " ", $ret ); $ret = ms_newRectObj (); $ret->setextent ( $temp [0], $temp [1], $temp [2], $temp [3] ); } // $sopen = $nlayer->open (); if ($sopen == MS_FAILURE) { return "erro"; } $status = $nlayer->whichShapes ( $ret ); $parametrosClasses = array (); if ($status == 0) { while ( $shape = $nlayer->nextShape () ) { $id = trim ( $shape->values [$itemid] ); if (! $parametrosClasses [$id]) { $nome = ""; if ($itemnome != "") $nome = trim ( $shape->values [$itemnome] ); $cor = ""; if ($itemcor != "") $cor = explode ( ",", trim ( $shape->values [$itemcor] ) ); if (count ( $cor ) != 3) $cor = explode ( " ", trim ( $shape->values [$itemcor] ) ); $tamanho = ""; if ($itemtamanho != "") $tamanho = trim ( $shape->values [$itemtamanho] ); $simbolo = ""; if ($itemsimbolo != "") $simbolo = trim ( $shape->values [$itemsimbolo] ); $parametrosClasses [$id] = array ( "nome" => $nome, "cor" => $cor, "tamanho" => $tamanho, "simbolo" => $simbolo ); } } $fechou = $nlayer->close (); // echo "
";var_dump($parametrosClasses);
			if (count ( $parametrosClasses ) > 0) {
				$ids = array_keys ( $parametrosClasses );
				for($i = 0; $i < count ( $parametrosClasses ); ++ $i) {
					$p = $parametrosClasses [$ids [$i]];
					// echo "
";var_dump($p);
					$nclasse = ms_newClassObj ( $nlayer, $classeoriginal );
					if ($p ["nome"] != "")
						$nclasse->set ( "name", $p ["nome"] );
						$estilo = $nclasse->getstyle ( 0 );
						if ($p ["cor"] != "") {
							$cor = $p ["cor"];
							$ncor = $estilo->color;
							if ($ncor == "")
								$ncor = $estilo->outlinecolor;
								$ncor->setrgb ( $cor [0], $cor [1], $cor [2] );
						}
						if ($p ["tamanho"] != "")
							$estilo->set ( "size", $p ["tamanho"] );
							if ($p ["simbolo"] != "")
								$estilo->set ( "symbolname", $p ["simbolo"] );
								$strE = "('[" . $itemid . "]'eq'" . $ids [$i] . "')";
								$nclasse->setexpression ( $strE );
				}
				$classeoriginal->set ( "status", MS_DELETE );
			}
		}
		if ($substituicon == "sim") {
			$nlayer->set ( "connection", " " );
		}
	}
	$pf = $nlayer->getmetadata ( "palletefile" );
	if ($pf != "") {
		if (! file_exists ( $pf )) {
			return;
		}
		$ps = $nlayer->getmetadata ( "palletesteps" );
		if ($ps == "")
			$ps = 8;
			//
			// pega os valores do arquivo
			//
			$rules = array ();
			$abre = fopen ( $pf, "r" );
			$paletteRules = array ();
			while ( ! feof ( $abre ) ) {
				$line = trim ( fgets ( $abre ) );
				$pos = strpos ( $line, "#" );
				if ($pos === false || $pos > 0) {
					$paletteEntry = explode ( " ", $line );
					$rules [] = array (
							"v0" => $paletteEntry [0],
							"v1" => $paletteEntry [1],
							"r0" => $paletteEntry [2],
							"g0" => $paletteEntry [3],
							"b0" => $paletteEntry [4],
							"r1" => $paletteEntry [5],
							"g1" => $paletteEntry [6],
							"b1" => $paletteEntry [7]
					);
				}
			}
			fclose ( $abre );
			foreach ( $rules as $rule ) {
				$delta = ceil ( ($rule ["v1"] - $rule ["v0"]) / $ps );
				$legenda = true;
				for($value = $rule ["v0"]; $value < $rule ["v1"]; $value += $delta) {
					$class = ms_newClassObj ( $nlayer );
					$style = ms_newStyleObj ( $class );
					if ($legenda) {
						$class->set ( name, round ( $value, 0 ) );
						$legenda = true;
					}
					$expression = "([pixel] > " . round ( $value, 0 ) . " AND [pixel] <= " . round ( $value + $delta, 0 ) . ")";
					$class->setExpression ( $expression );
					$rgb = getRGBpallete ( $rule, $value );
					$style->color->setRGB ( $rgb [0], $rgb [1], $rgb [2] );
				}
			}
	}
	return;
}
?>