getlayerbyname($tema); if (!empty($postgis_mapa)){ if ($l->connectiontype == MS_POSTGIS){ $lcon = $l->connection; if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ // //o metadata CONEXAOORIGINAL guarda o valor original para posterior substituição // if(($lcon == " ") || ($lcon == "")){ $l->set("connection",$postgis_mapa); $l->setmetadata("CONEXAOORIGINAL",$lcon); } else{ $l->set("connection",$postgis_mapa[$lcon]); $l->setmetadata("CONEXAOORIGINAL",$lcon); } } } } autoClasses($l,$oMap); ms_newLayerObj($oMap, $l); $oMap->save($nomeMapfileTmp); validaAcessoTemas($nomeMapfileTmp,true); $oMap = ms_newMapobj($nomeMapfileTmp); $data = pegaDadosJ(); if($format == "storymap"){ //parametros via URL $layer = $oMap->getlayerbyname($tema); if($layer == ""){ echo "Layer nao encontrado"; exit; } $storymap = $layer->getmetadata("storymap"); if($storymap == ""){ echo "Parametros nao definidos no METADATA storymap"; exit; } $storymap = json_decode($storymap,true); $cabecalho = converteenc($storymap["cabecalho"]); $texto = converteenc($storymap["texto"]); $coltexto = $storymap["coltexto"]; $colcabecalho = $storymap["colcabecalho"]; $collocal = $storymap["collocal"]; $colicone = $storymap["colicone"]; $collon = $storymap["collon"]; $collat = $storymap["collat"]; $colmedia = $storymap["colmedia"]; $par = array( "cabecalho"=>$cabecalho, "texto"=>$texto, "coltexto"=>$coltexto, "colcabecalho"=>$colcabecalho, "collocal"=>$collocal, "colicone"=>$colicone, "collon"=>$collon, "collat"=>$collat, "colmedia"=>$colmedia ); storymap($par); exit; } //echo "
".var_dump ($data);
function storymap($par){
	global $data, $nomeArq;

	$items = $data["items"];
	$colunaTexto = array_search($par["coltexto"],$items);
	$colcabecalho = array_search($par["colcabecalho"],$items);
	$nomeLocal = array_search($par["collocal"],$items);
	$colunaIcone = "";
	$colunaLon = array_search($par["collon"],$items);
	$colunaLat = array_search($par["collat"],$items);
	if(empty($par["colmedia"])){
		$colmedia = "";
	}else{
		$colmedia = array_search($par["colmedia"],$items);
	}
	$dados = $data["features"];
	$slides = array();
	if(!empty($par["cabecalho"]) || !empty($par["texto"])){
		$slides[] = array(
				"type"=>"overview",
				"text"=>array(
						"text"=>$par["texto"],
						"headline"=>$par["cabecalho"]
				)
		);
	}
	foreach($dados as $dd){
		$d = $dd["valores"];
		$icone = "http://maps.gstatic.com/intl/en_us/mapfiles/ms/micons/blue-pushpin.png";
		if(!empty($d[$par["colicone"]])){
			$icone = $d[$par["colicone"]];
		}
		$slide = array(
				"text"=>array(
						"text"=>$d[$colunaTexto],
						"headline"=>$d[$colcabecalho]
				),
				"location"=>array(
						"name" => $d[$nomeLocal],
						"lon" => $d[$colunaLon]*1,
						//"zoom" => 10,
						"lat" => $d[$colunaLat]*1,
						"line" => false,
						"icon" => $icone
				)
		);
		if(!empty($d[$colmedia])){
			$slide["media"] = array(
						"url"=>$d[$colmedia]
				);
		}
		//var_dump($slide);exit;
		$slides[] = $slide;
	}
	$storymap = array("slides"=>$slides);
	$j = array(
			"storymap"=>$storymap
	);
	//echo "
";var_dump($j);exit;
	$contents = json_encode($j);
	//var_dump($contents);exit;
	file_put_contents($nomeArq.".json",$contents);
	//envia para download
	ob_clean();
	header("Content-type: application/json");
	echo $contents;
}
function ogc_imprimeAjuda(){
	echo "
Construtor de web services do I3Geo.

"; echo "Esse programa usa os arquivos mapfiles existentes em
"; echo "i3geo/temas para gerar web services OGC.
"; echo "Para escolher um tema, utilize:
"; echo "ogc.php?lista=temas - para listar os temas disponíveis
"; echo "Para usar esse web service voce pode usar o parametro &tema=,
"; echo "ou seja,http://[host]/i3geo/ogc.php?tema=[codigo do tema]
"; echo "no lugar do codigo pode ser especificado um arquivo mapfile qualquer. "; echo "Nesse caso, deve ser digitado o caminho completo no servidor

"; echo "Utilize o sistema de administracao do i3Geo para configurar quais os temas da pasta i3geo/temas podem ser utilizados.

"; echo "Utilize o parametro restauramapa para indicar o ID de um mapa salvo no banco
"; echo "de dados de administracao para utiliza-lo como um WMS"; } function nomeRand($n=10) { $nomes = ""; $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ'; $max = 51; for($i=0; $i < $n; ++$i) { $nomes .= $a{mt_rand(0, $max)}; } return $nomes; } function carregaCacheArquivo(){ global $nomeArq; if(file_exists($nomeArq.".json")){ header("Content-type: application/json"); readfile($nomeArq.".json"); exit; } } function pegaDadosJ(){ global $oMap, $tema, $versao; $layer = $oMap->getlayerbyname($tema); $items = pegaItens($layer,$oMap); $layer->querybyrect($oMap->extent); $layer->open(); $res_count = $layer->getNumresults(); $linhas = array(); for ($i = 0; $i < $res_count; $i++){ if($versao == 6){ $shape = $layer->getShape($layer->getResult($i)); } else{ $shape = $layer->getFeature($layer->getResult($i)->shapeindex); } $valores = array(); foreach ($items as $item){ $v = trim($shape->values[$item]); if(is_string($v)){ $v = converteenc($v); } $valores[] = $v; } $linhas[] = array( "valores"=>$valores, "shape"=>$shape ); } $resultado = array( "items"=>$items, "features"=>$linhas ); return $resultado; } function converteenc($texto){ if (!mb_detect_encoding($texto,"UTF-8",true)){ $texto = mb_convert_encoding($texto,"UTF-8","ISO-8859-1"); } return $texto; } ?>