function salvaMapfile() { global $locaplic, $dbhw, $codigo, $gravarTexto, $esquemaadmin; if (empty($gravarTexto)) { return; } $mapfile = $locaplic . "/temas/" . $codigo . ".map"; $original = file_get_contents($mapfile); $fp = fopen($mapfile, "w"); if ($fp == false) { echo "<span style=color:red <b>Não foi possível salvar o arquivo. Verifique as permissões ou se há algum erro no mapfile</b></span><br><br>"; exit; } else { // remove itens vazios $novoTexto = array(); $testar = array("TEMPORIZADOR", "PALLETESTEP", "LTEMPOITEMIMAGEM", "METAESTAT_ID_MEDIDA_VARIAVEL", "GMOPACITY", "GMSTATUS", "ICONETEMA", "LTEMPOITEMTITULO", "DESCRIPTION_TEMPLATE", "LTEMPOITEMLINK", "TILES", "METAESTAT_CODIGO_TIPO_REGIAO", "ARQUIVOTEMAORIGINAL", "PALLETEFILE", "NOMEORIGINAL", "OLSTATUS", "PERMITEDOWNLOAD", "LTEMPOFORMATODATA", "FILTROORIGINAL", "PERMITECOMENTARIO", "LTEMPOITEMICONE", "DATAORIGINAL", "PLUGINI3GEO", "METAESTAT", "ITEMBUSCARAPIDA", "ARQUIVODOWNLOAD", "ARQUIVOKMZ", "PERMITEKML", "PERMITEOGC", "CONVCARACTER", "CORTEPIXELS", "EDITORSQL", "LTEMPOCONVENCODE", "LTEMPOITEMFIM", "OLOPACITY", "LEGENDAWMS", "LEGENDAIMG", "KEYIMAGE", "TILEINDEX", "TILEITEM", "SYMBOL", "LABELITEM", "FILTERITEM", "GROUP", "ENCODING", "TIP", "CLASSE", "ITENSDESC", "CLASSESNOME", "ITENSLINK", "ESCALA", "CLASSESSIMBOLO", "MENSAGEM", "EXTENSAO", "CLASSESITEM", "ESCONDIDO", "CLASSESCOR", "DOWNLOAD", "CLASSESTAMANHO", "ITENS", "TEMA", "APLICAEXTENSAO", "IDENTIFICA", "TRANSITIONEFFECT"); foreach (preg_split('~[\\r\\n]+~', $gravarTexto) as $line) { $teste = strtoupper($line); $teste = trim($teste); $teste = str_replace(array(" ", "'", '"'), "", $teste); $teste = preg_replace('/[\\n\\r\\t ]*/', '', $teste); $passou = true; foreach ($testar as $t) { if ($teste == $t) { $passou = false; } } if ($passou == true) { if (mb_detect_encoding($line, 'UTF-8') == "UTF-8") { $line = mb_convert_encoding($line, "ISO-8859-1", "UTF-8"); } $novoTexto[] = $line; } } fwrite($fp, implode("\r\n", $novoTexto)); } fclose($fp); // testa o mapfile ms_ResetErrorList(); if (!@ms_newMapObj($mapfile)) { echo "Erro no arquivo sera mantido o original<br>"; $error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); $error = $error->next(); } $fp = fopen($mapfile, "w"); fwrite($fp, $original); fclose($fp); exit; } // verifica os metadata que sao armazenados tambem no banco de dados de administracao // isso e necessario para manter a consistencia caso o usuario altere manualmente os valores // cria o objeto map $mapa = ms_newMapObj($mapfile); $layer = $mapa->getlayerbyname($codigo); if ($layer == "") { return "<br><span style='color:red;'>Atenção: não existe nenhum LAYER com NAME igual a " . $codigo . "</span><br>"; } else { // pega o metadata $meta = $layer->getmetadata("permitedownload"); $meta = strtoupper($meta); $dataCol = array(); if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { $dataCol["download_tema"] = $meta; } $meta = $layer->getmetadata("permiteogc"); $meta = strtoupper($meta); if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { $dataCol["ogc_tema"] = $meta; } $meta = $layer->getmetadata("permitekml"); $meta = strtoupper($meta); if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { $dataCol["kml_tema"] = $meta; } $meta = $layer->getmetadata("permitekmz"); $meta = strtoupper($meta); if ($meta != "" && ($meta == "SIM" || $meta == "NAO")) { $dataCol["kmz_tema"] = $meta; } $resultado = i3GeoAdminUpdate($dbhw, "i3geoadmin_temas", $dataCol, "WHERE codigo_tema = '{$codigo}'"); } }
$error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { echo "<h5>Error in %s: %s</h5>", $error->routine, $error->message; $error = $error->next(); } echo "</div>"; } if ($imgo->imagepath == "") { echo "<div class='alert alert-danger' role='alert'>Erro IMAGEPATH vazio</div>"; } $imgo->saveImage($nome); $nome = $imgo->imageurl . basename($nome); echo "<img src={$nome} />"; echo " \n"; $error = ""; ms_ResetErrorList(); echo "<h4>Carregando o map_file geral1... e acrescentando os limites estaduais (aplicmap/estadosl...) </h4>"; if (isset($estadosl)) { $maptemp = ms_newMapObj($locaplic . "/aplicmap/" . $estadosl . ".map"); } else { if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) { $maptemp = ms_newMapObj($locaplic . "/aplicmap/estadoslwindows.map"); } else { $maptemp = ms_newMapObj($locaplic . "/aplicmap/estadosl.map"); } } while ($error && $error->code != MS_NOERR) { printf("<div class='alert alert-danger' role='alert'>Error in %s: %s<br></div>", $error->routine, $error->message); $error = $error->next(); } echo <<<HTML
function redesenhaCorpo($tipoimagem, $utilizacgi, $locmapserv) { ms_ResetErrorList(); if (file_exists($this->locaplic . "/classe_imagem.php")) { include_once $this->locaplic . "/classe_imagem.php"; } else { include_once "classe_imagem.php"; } $nomer = ""; $qy = file_exists($this->qyfile); if ($qy) { foreach ($this->layers as $l) { $l->set("template", "none.htm"); carregaquery2($this->arquivo, $l, $this->mapa); } } $legenda = $this->mapa->legend; // //prepara a legenda para incluir no mapa, preenchendo os nomes das classes que podem estar em branco //isso ocorre quando o layer tem s� uma classe // if ($legenda->status == MS_EMBED) { foreach ($this->layers as $layer) { if ($layer->data != "" && strtoupper($layer->getmetadata("escondido")) != "SIM" && strtoupper($layer->getmetadata("tema")) != "NAO") { if ($layer->numclasses > 0) { $classe = $layer->getclass(0); if ($classe->name == "" || $classe->name == " ") { $classe->set("name", $layer->getmetadata("tema")); } } } } } $nome = nomeRandomico(); // //gera a imagem do mapa //se estiver sendo utilizado o cgi para desenhar a imagem //é necessário criar uma imagem vazia para capturar o nome que será retornado // if (isset($utilizacgi) && strtolower($utilizacgi) == "sim" && $tipoimagem == "nenhum" && !$qy) { foreach ($this->layers as $l) { $l->set("status", MS_OFF); } $imgo = @$this->mapa->draw(); } else { //if($tipoimagem != "nenhum") //{ $of = $this->mapa->outputformat; $of->set("imagemode", MS_IMAGEMODE_RGB); //} if (!$qy) { $imgo = @$this->mapa->draw(); } else { $imgo = @$this->mapa->drawQuery(); } $mensagemErro = ""; $error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { //printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); $mensagemErro .= $error->routine . " " . $error->message; $error = $error->next(); } ms_ResetErrorList(); $mensagemErro = str_replace("'", " ", $mensagemErro); $mensagemErro = str_replace(":", " ", $mensagemErro); $mensagemErro = str_replace("\n", " ", $mensagemErro); $nomer = $imgo->imagepath . "mapa" . $nome . ".png"; $imgo->saveImage($nomer); // //aplica o filtro de imagem se estiver definido em $tipoimagem // if ($tipoimagem !== "nenhum") { $tiposImagem = explode(" ", $tipoimagem); foreach ($tiposImagem as $tipoimagem) { $m = new Imagem($nomer); if ($tipoimagem == "cinza") { imagepng($m->cinzaNormal(), str_replace("\\", "/", $nomer)); } if ($tipoimagem == "sepiaclara") { imagepng($m->sepiaClara(), str_replace("\\", "/", $nomer)); } if ($tipoimagem == "sepianormal") { imagepng($m->sepiaNormal(), str_replace("\\", "/", $nomer)); } if ($tipoimagem == "negativo") { imagepng($m->negativo(), str_replace("\\", "/", $nomer)); } if ($tipoimagem == "detectaBordas") { imagepng($m->detectaBordas(), str_replace("\\", "/", $nomer)); } if ($tipoimagem == "embassa") { imagepng($m->embassa(), str_replace("\\", "/", $nomer)); } if ($tipoimagem == "gaussian_blur") { imagepng($m->gaussian_blur(), str_replace("\\", "/", $nomer)); } if ($tipoimagem == "selective_blur") { imagepng($m->selective_blur(), str_replace("\\", "/", $nomer)); } if ($tipoimagem == "mean_removal") { imagepng($m->mean_removal(), str_replace("\\", "/", $nomer)); } if ($tipoimagem == "pixelate") { imagepng($m->pixelate(), str_replace("\\", "/", $nomer)); } } } $nomer = $imgo->imageurl . basename($nomer); } if ($imgo == "") { return "erro"; } $e = $this->mapa->extent; $ext = $e->minx . " " . $e->miny . " " . $e->maxx . " " . $e->maxy; if (isset($utilizacgi) && strtolower($utilizacgi) == "sim" && !$qy) { $nomer = $locmapserv . "?map=" . $this->arquivo . "&mode=map&" . nomeRandomico(); } $res["mapscale"] = $this->mapa->scaledenom; $res["mapres"] = $this->mapa->resolution; $res["pixelsize"] = $this->mapa->cellsize; $res["mapexten"] = $ext; $res["mapimagem"] = $nomer; $res["w"] = $imgo->width; $res["h"] = $imgo->height; $res["mappath"] = $imgo->imagepath; $res["mapurl"] = $imgo->imageurl; $res["erro"] = $mensagemErro; return $res; }
function erroCriacao() { $error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { printf("<br>Error in %s: %s<br>\n", $error->routine, $error->message); $error = $error->next(); } ms_ResetErrorList(); }
function testaMapa($map_file, $postgis_mapa) { substituiCon($map_file, $postgis_mapa); $objMapa = ms_newMapObj($map_file); substituiConObj($objMapa, $postgis_mapa); ms_ResetErrorList(); $img = $objMapa->draw(); $erros = ""; $error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { $erros .= $error->routine; $error = $error->next(); } $error = ms_GetErrorObj(); if ($error->code != MS_NOERR) { $nmf = str_replace(".map", "seguranca.map", $map_file); $objMapa = ms_newMapObj($nmf); $objMapa->save($map_file); $erros = str_replace("\n", "", $erros); $erros = str_replace("\"", "", $erros); $erros = str_replace("'", "", $erros); $erros = str_replace(":", " ", $erros); $erros = str_replace("...", " ", $erros); $erros = str_replace("(", " ", $erros); $erros = str_replace(")", " ", $erros); $erros = str_replace("*", " ", $erros); $erros = str_replace("/", " ", $erros); $erros = htmlentities($erros); return $erros; } else { return "ok"; } }
function verificaMiniatura($map, $tipo, $admin = false) { global $locaplic, $versao, $base, $postgis_mapa; if ($versao == "") { $versao = versao(); $versao = $versao["principal"]; } ms_ResetErrorList(); $tema = ""; $map = str_replace("\\", "/", $map); $map = basename($map); $extensao = ".map"; if (file_exists($locaplic . '/temas/' . $map)) { $tema = $locaplic . '/temas/' . $map; } else { if (file_exists($locaplic . '/temas/' . $map . '.gvp')) { $extensao = ".gvp"; } $tema = $locaplic . '/temas/' . $map . $extensao; } if ($tema != "") { if (isset($base) && $base != "") { if (file_exists($base)) { $f = $base; } else { $f = $locaplic . "/aplicmap/" . $base . ".map"; } if (!file_exists($base)) { echo "<div class='alert alert-danger'>ARQUIVO {$base} NÂO FOI ENCONTRADO. CORRIJA ISSO EM ms_configura.php"; exit; } } else { $f = ""; if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')) { $f = $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 = $locaplic . "/aplicmap/geral1v" . $versao . ".map"; } } } $mapa = ms_newMapObj($f); if ($extensao == ".map") { if (@ms_newMapObj($tema)) { $nmapa = ms_newMapObj($tema); } else { echo "<div class='alert alert-danger'>erro no arquivo {$tema} </div>"; 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, $locaplic); if ($layern->data == "") { $dados = $layern->connection; } else { $dados = $layern->data; } $pegarext = $teman->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 == "") { $layern->set("connection", $postgis_mapa); } else { $layern->set("connection", $postgis_mapa[$lcon]); } } } } } } } zoomTemaMiniatura($pegarext, $mapa); } if ($extensao == ".gvp") { include_once $locaplic . "/pacotes/gvsig/gvsig2mapfile/class.gvsig2mapfile.php"; $gm = new gvsig2mapfile($tema); $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" || $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<br>";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<br>";return;} $weboG = $mapa->web; $urlG = $weboG->imageurl . "/" . $map; } if ($tipo == "mini" || $tipo == "todos") { if (!$objImagemM) { echo "Problemas ao gerar o mapa<br>"; $error = ""; $error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { echo "<div class='alert alert-danger'>Error in %s: %s</div>", $error->routine, $error->message; $error = $error->next(); } return; } if ($objImagemM->imagepath == "") { echo "<div class='alert alert-danger'>Erro IMAGEPATH vazio</div>"; return; } $nomecM = $objImagemM->imagepath . $map . ".mini.png"; $objImagemM->saveImage($nomecM); } if ($tipo == "grande" || $tipo == "todos") { if (!$objImagemG) { echo "<div class='alert alert-danger'>Problemas ao gerar o mapa</div>"; $error = ""; $error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { echo "<div class='alert alert-danger'>Error in %s: %s</div>", $error->routine, $error->message; $error = $error->next(); } return; } if ($objImagemG->imagepath == "") { echo "<div class='alert alert-danger'>Erro IMAGEPATH vazio</div>"; return; } $nomecG = $objImagemG->imagepath . $map . ".grande.png"; $objImagemG->saveImage($nomecG); } if ($admin === false) { if ($tipo == "mini" || $tipo == "todos") { echo "<img class='img-thumbnail' src='" . $urlM . ".mini.png' />"; } if ($tipo == "grande" || $tipo == "todos") { echo "<img class='img-thumbnail' src='" . $urlG . ".grande.png' />"; } } // //copia a imagem // if ($admin === true) { $dir = $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 verifica($map, $solegenda, $tabela, $cache = "sim") { global $tipo, $locaplic, $postgis_mapa, $versao, $base, $dir_tmp, $tempo; $mapUrl = $map; if ($tipo == "mini" && file_exists('temas/miniaturas/' . $map . ".mini.png") && $cache == "sim") { Header("Content-type: image/png"); ImagePng(ImageCreateFromPNG('temas/miniaturas/' . $map . ".mini.png")); exit; } if ($tipo == "grande" && file_exists('temas/miniaturas/' . $map . ".grande.png") && $cache == "sim") { Header("Content-type: image/png"); ImagePng(ImageCreateFromPNG('temas/miniaturas/' . $map . ".grande.png")); exit; } ms_ResetErrorList(); $tema = ""; if (file_exists($map)) { $tema = $map; } else { $map = str_replace("\\", "/", $map); $map = basename($map); if (file_exists('temas/' . $map)) { $tema = 'temas/' . $map; } if (file_exists('temas/' . $map . '.map')) { $tema = 'temas/' . $map . ".map"; } if (file_exists('temas/' . $map . '.gvp')) { $tema = 'temas/' . $map . ".gvp"; } } if (!file_exists($tema)) { $tema = $locaplic . "/" . $tema; } if ($tipo == "" || $tipo == "todos") { echo "<hr><br><br><span style='color:red' ><b>Testando: {$tema} </span><pre></b>"; } 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 == "") { $layern->set("connection", $postgis_mapa); } else { $layern->set("connection", $postgis_mapa[$lcon]); } } } } } if (!stristr($tema, '.php') === FALSE) { /* echo "<br>Arquivo <i>$tema</i> é um programa PHP. O teste pode não funcionar.<br>"; include_once($locaplic."/".$tema); $pegarext = str_replace(".php","",$tema); $pegarext = str_replace("temas/","",$pegarext); eval($pegarext."(\$mapa);"); */ } if (!stristr($tema, '.map') === FALSE) { if (file_exists($mapUrl)) { ms_ResetErrorList(); if (@ms_newMapObj($mapUrl)) { $nmapa = ms_newMapObj($mapUrl); } else { echo "Erro no arquivo {$mapUrl} <br>"; $error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { printf("<br>Error in %s: %s<br>\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 <br>"; exit; } } else { echo "erro no arquivo {$map} <br>"; echo "Obs.: em alguns testes o mapfile pode falhar se o endereço dos arquivos de símbolos estiverem <br>definidos de forma relativa ao invés de absoluta. Nesses casos, ao abrir o i3Geo, <br>o mapfile poderá funcionar. <br>"; $error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { printf("<br>Error in %s: %s<br>\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 == "") { $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); $layerAdicionado = ms_newLayerObj($mapa, $layern); corrigeLayerGrid($layern, $layerAdicionado); /* 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($_GET["tabela"])) { include "classesphp/classe_atributos.php"; $t = new Atributos($destino, $map); restauraCon($destino, $postgis_mapa); $r = $t->itensTexto(); $colunas = explode(";", $r["itens"]); $ncolunas = count($colunas); $registros = $r["valores"]; $nregistros = count($registros); $error = ""; $error = ms_GetErrorObj(); echo "</div><div style='text-align:left;margin: auto;width:900px;overflow: auto;'>"; while ($error && $error->code != MS_NOERR) { echo "<br>Error in %s: %s<br>", $error->routine, $error->message; $error = $error->next(); } echo "Registros em UTF8 são convertidos para ISO-8859-1<br>"; echo "Registros: " . $nregistros; "<br>"; echo "<br><b>Tempo leitura (s): "; echo microtime(true) - $tempo; echo "</b>"; echo "<table>"; echo "<tr>"; foreach ($colunas as $co) { echo "<td><b>" . $co . "</b></td>"; } echo "</tr>"; foreach ($registros as $reg) { echo "<tr>"; $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 "<td>" . $c . "</td>"; } echo "</tr>"; } echo "</table>"; echo "<br><b>Tempo total (montagem da tabela) (s): "; echo microtime(true) - $tempo; echo "</b>"; } else { $mapa = ms_newMapObj($destino); restauraConObj($mapa, $postgis_mapa); $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<br>"; $error = ""; $error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { echo "<br>Error in %s: %s<br>", $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 "<img src=" . $nomer . " /><br>"; } echo "<img src=" . $nomerl . " />"; if ($tipo == "todos") { //echo "<br>".$dados."<br>"; } if ($map != "todos") { echo "<br><b>Tempo (s): "; echo microtime(true) - $tempo; echo "</b>"; echo "<br>Erros ocorridos:<br>"; $error = ""; $error = ms_GetErrorObj(); while ($error && $error->code != MS_NOERR) { echo "<br>Error in %s: %s<br>", $error->routine, $error->message; $error = $error->next(); } } } else { Header("Content-type: image/png"); ImagePng(ImageCreateFromPNG($nomec)); } } } }
function testaMapaImg($tema) { global $locaplic, $postgis_mapa, $versao, $base, $dir_tmp, $tempo; $base = mapaBase($locaplic, $versao, $base); $mapa = ms_newMapObj($base); error_reporting(0); ms_ResetErrorList(); try { ms_newMapObj($tema); } catch (Exception $e) { return array("imgMapa" => "", "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 .= "<br>Error in %s: %s<br>\n"; $erro .= "<br>" . $error->routine; $erro .= "<br>" . $error->message; $error = $error->next(); } return array("imgMapa" => "", "imgLegenda" => "", "tempo" => microtime(true) - $tempo, "erro" => $erro); } substituiConObj($mapa, $postgis_mapa); substituiConObj($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 .= "<br>Error in %s: %s<br>"; $erro .= "<br>" . $error->routine; $erro .= "<br>" . $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 .= "<br>Error in %s: %s<br>"; $erro .= "<br>" . $error->routine; $erro .= "<br>" . $error->message; $error = $error->next(); } return array("imgMapa" => $objImagem->imageurl . basename($nomec), "imgLegenda" => $objImagemLegenda->imageurl . basename($nomel), "tempo" => microtime(true) - $tempo, "erro" => $erro); }