"; echo '
'; echo '

'.$mensagemInicia.'
Aguarde...criando o mapa

'; echo "


"; echo "


"; echo "
"; echo ''; } // //define os arquivos .map conforme o tipo de sistema operacional // if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) { if (!isset($base)){$base = "geral1windows";} $estadosl = "estadoslwindows"; } else { if (!isset($base)){$base = "geral1";} $estadosl = "estadosl"; } if (file_exists($base)) {$mapdefault = ms_newMapObj($base);} else {$mapdefault = ms_newMapObj($temasaplic."/".$base.".map");} // //pega os parâmetros para a inicialização se os mesmos não forem passados pela URL // if (!isset($mapext)) {$mapext = $mapdefault->extent->minx." ".$mapdefault->extent->miny." ".$mapdefault->extent->maxx." ".$mapdefault->extent->maxy;} if (!isset ($map_reference_image)) //arquivo com a imagem de referência {$map_reference_image = $mapdefault->reference->image;} if (!isset ($map_reference_extent)) //extensão geográfica da imagem do mapa de referência {$map_reference_extent = $mapdefault->reference->extent->minx." ".$mapdefault->reference->extent->miny." ".$mapdefault->reference->extent->maxx." ".$mapdefault->reference->extent->maxy;} if (!isset($interface)) {$interface = "geral.htm";} // //cria os diretórios temporários // $diretorios = criaDirMapa($dir_tmp); $_SESSION["mapdir"] = $diretorios[1]; $_SESSION["imgdir"] = $diretorios[2]; // //cria arquivos para impedir a leitura dos diretórios temporários // if (!file_exists($dir_tmp."/index.htm")) { $f = fopen($dir_tmp."/index.htm",x); fclose($f); $f = fopen($dir_tmp."/index.html",x); fclose($f); $f = fopen($dir_tmp."/".$diretorios[1]."/index.html",x); fclose($f); $f = fopen($dir_tmp."/".$diretorios[1]."/index.htm",x); fclose($f); $f = fopen($dir_tmp."/".$diretorios[2]."/index.html",x); fclose($f); $f = fopen($dir_tmp."/".$diretorios[2]."/index.htm",x); fclose($f); } if (!file_exists($dir_tmp."/index.htm")) { echo "Erro. Não foi possível gravar no diretório temporário"; exit; } // //cria os objetos map // ms_ResetErrorList(); if (file_exists($base)) { $map = ms_newMapObj($base); $mapn = ms_newMapObj($base); } else { $map = ms_newMapObj($temasaplic."/".$base.".map"); $mapn = ms_newMapObj($temasaplic."/".$base.".map"); } $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR) { printf("
Error in %s: %s
\n", $error->routine, $error->message); $error = $error->next(); } ms_ResetErrorList(); // //verifica a lista de temas da inicializacao, adicionando-os se necessário // if (!isset($temasa)){$temasa = $estadosl;} $temasa = str_replace(','," ",$temasa); $alayers = explode(" ",$temasa); foreach ($alayers as $arqt) { $arqtemp = ""; $arqt = trim($arqt); if ($arqt == "") {continue;} if (file_exists($arqt)) {$arqtemp = $arqt;} if ((strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) && (file_exists($temasaplic."\\".$arqt.".map"))) {$arqtemp = $temasaplic."\\".$arqt.".map";} elseif (file_exists($temasaplic."/".$arqt.".map")) {$arqtemp = $temasaplic."/".$arqt.".map";} if ((strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) && (file_exists($temasdir."\\".$arqt.".map"))) {$arqtemp = $temasdir."\\".$arqt.".map";} elseif (file_exists($temasdir."/".$arqt.".map")) {$arqtemp = $temasdir."/".$arqt.".map";} if ($arqtemp == "") {echo "
Impossível acessar tema $arqtemp";} else { if (!@ms_newMapObj($arqtemp)) {echo "
Problemas com a camada $arqtemp
";} else { $maptemp = @ms_newMapObj($arqtemp); for($i=0;$i<($maptemp->numlayers);$i++) { $layern = $maptemp->getLayer($i); $layern->setmetadata("NOMEORIGINAL",$layern->name); if ($layern->name == "estadosl") {$layern->set("data",$temasaplic."/dados/estados.shp");} ms_newLayerObj($mapn, $layern); } } } } $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR) { printf("
Error in %s: %s
\n", $error->routine, $error->message); $error = $error->next(); } ms_ResetErrorList(); // //liga os temas definidos em $layers // if (isset($layers)) { $layers = str_replace(','," ",$layers); $lista = explode(" ", $layers); foreach ($lista as $l) { $arqt = trim($l); if ($l == "") {continue;} if(@$mapn->getLayerByName($l)) {$layern = $mapn->getLayerByName($l);$layern->set("status",MS_DEFAULT);} } } $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR) { printf("
Error in %s: %s
\n", $error->routine, $error->message); $error = $error->next(); } ms_ResetErrorList(); // //aplica ao mapa os parâmetros passados pela URL // if (isset($map_reference_image)) {$mapn->reference->set("image",$map_reference_image);} $extr = $mapn->reference->extent; if (isset($map_reference_extent)) { $temp = explode(" ",$map_reference_extent); foreach ($temp as $t) { if ($t != "") {$newext[] = $t;} } if (count($newext) == 4) {$extr->setextent($newext[0], $newext[1], $newext[2], $newext[3]);} } $ext = $mapn->extent; $newext = array(); if ((isset($mapext)) && ($mapext != "")) { $temp = explode(" ",$mapext); foreach ($temp as $t) { if ($t != "") {$newext[] = $t;} } if (count($newext) == 4) {$ext->setextent($newext[0], $newext[1], $newext[2], $newext[3]);} } $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR) { printf("
Error in %s: %s
\n", $error->routine, $error->message); $error = $error->next(); } ms_ResetErrorList(); // //configura os endereços corretos // $protocolo = explode("/",$_SERVER['SERVER_PROTOCOL']); $w = $mapn->web; $atual = $w->imagepath; $w->set("imagepath",$atual.$diretorios[2]."/"); $atual = $w->imageurl; $w->set("imageurl",$atual.$diretorios[2]."/"); $salvo = $mapn->save($diretorios[0]); $_SESSION["imgurl"] = $protocolo[0]."://".$_SERVER['HTTP_HOST'].$atual.$diretorios[2]."/"; $_SESSION["tmpurl"] = $protocolo[0]."://".$_SERVER['HTTP_HOST'].$atual; // //faz o include de um programa se tiver sido passado pela URL // $tmpfname = $diretorios[0]; $_SESSION["map_file"] = $diretorios[0]; $_SESSION["mapext"] = $mapext; if (isset($executa)) { if (file_exists($executa)) {include ($executa);} if (function_exists($executa)) {eval($executa."();");} } $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR) { printf("
Error in %s: %s
\n", $error->routine, $error->message); $error = $error->next(); } ms_ResetErrorList(); //inclui pontos via url if (isset($pontos)) { require_once "pacotes/phpxbase/api_conversion.php"; if (!isset($nometemapontos)) {$nometemapontos="Pontos";} if ($nometemapontos == "") {$nometemapontos="Pontos";} // //cria o shape file // $tipol = MS_SHP_POINT; $nomeshp = $dir_tmp."/".$imgdir."/pontosins"; // cria o dbf $def = array(); $items = array("COORD"); foreach ($items as $ni) {$def[] = array($ni,"C","254");} xbase_create($nomeshp.".dbf", $def); $dbname = $nomeshp.".dbf"; $db=xbase_open($dbname,2); $novoshpf = ms_newShapefileObj($nomeshp, $tipol); $pontos = explode(" ",trim($pontos)); foreach ($pontos as $p) {if (is_numeric($p)){$pontosn[] = $p;}} $pontos = $pontosn; for ($ci = 0;$ci < count($pontos);$ci=$ci+2) { $reg = array(); $reg[] = $pontos[$ci]." ".$pontos[$ci+1]; $shape = ms_newShapeObj($tipol); $linha = ms_newLineObj(); $linha->addXY($pontos[$ci],$pontos[$ci+1]); $shape->add($linha); $novoshpf->addShape($shape); xbase_add_record($db,$reg); } $novoshpf->free(); xbase_close($db); //adiciona o layer $mapa = ms_newMapObj($tmpfname); $layer = ms_newLayerObj($mapa); $layer->set("name","pontoins"); $layer->set("data",$nomeshp); $layer->setmetadata("tema",$nometemapontos); $layer->setmetadata("classe","sim"); $layer->set("type",MS_LAYER_POINT); $layer->set("status",MS_DEFAULT); $classe = ms_newClassObj($layer); $estilo = ms_newStyleObj($classe); $estilo->set("symbolname","ponto"); $estilo->set("size",6); $cor = $estilo->color; $cor->setRGB(255,0,0); $salvo = $mapa->save($tmpfname); } $error = ms_GetErrorObj(); while($error && $error->code != MS_NOERR) { printf("
Error in %s: %s
\n", $error->routine, $error->message); $error = $error->next(); } ms_ResetErrorList(); // //se vc quiser para o script aqui, para verificar erros, descomente a linha abaixo // //exit; // //verifica os dados de cada layer // $mapa = ms_newMapObj($tmpfname); $path = $mapa->shapepath; for($i=0;$i<($mapa->numlayers);$i++) { $layer = $mapa->getLayer($i); $ok = true; if ($layer->connection == "") { $ok = false; $d = $layer->data; if((file_exists($d)) || (file_exists($d.".shp"))) {$ok = true;} else { if((file_exists($path."/".$d)) || (file_exists($path."/".$d.".shp"))) {$ok = true;} } } if ($ok == false) {$layer->set("status",MS_OFF);} } $mapa->save($tmpfname); // // gera a url para abrir o mapa // interface = arquivo html que será aberto // if ($interface != "mashup") { if (count(explode(".php",$interface)) > 1) { if (file_exists($caminho."aplicmap/".$interface)) {include_once($caminho."aplicmap/".$interface);} else {include_once($interface);} exit; } else { if (file_exists($caminho."aplicmap/".$interface)) {$urln = $caminho."aplicmap/".$interface."?".session_id();} else {$urln = $interface."?".session_id();} //header("Location:".$urln); echo ""; } } ?>