Ejemplo n.º 1
0
        $dbh = null;
        retornaJSON($d);
        break;
    case "EXCLUIR":
        $retorna = excluir($id_i, $dbhw);
        $dbhw = null;
        $dbh = null;
        if ($retorna === false) {
            header("HTTP/1.1 500 erro ao consultar banco de dados");
            exit;
        }
        retornaJSON($id_i);
        exit;
        break;
}
cpjson($retorno);
// $papeis deve ser um array
function adicionar($publicado_i, $abrir_i, $nome_i, $target_i, $dbhw)
{
    global $esquemaadmin;
    try {
        $dataCol = array("publicado_i" => '', "nome_i" => '', "abrir_i" => '', "target_i" => '');
        $id_i = i3GeoAdminInsertUnico($dbhw, "i3geoadmin_identifica", $dataCol, "nome_i", "id_i");
        $retorna = alterar($id_i, $publicado_i, $abrir_i, $nome_i, $target_i, $dbhw);
        return $retorna;
    } catch (PDOException $e) {
        return false;
    }
}
// $papeis deve ser um array
function alterar($id_i, $publicado_i, $abrir_i, $nome_i, $target_i, $dbhw)
Ejemplo n.º 2
0
function redesenhaMapa()
{
    global $map_file, $tipoimagem, $cp, $postgis_mapa, $utilizacgi, $locmapserv, $interface, $mapexten;
    substituiCon($map_file, $postgis_mapa);
    if ($tipoimagem != "nenhum" && $tipoimagem != "") {
        $utilizacgi = "nao";
    }
    if (connection_aborted()) {
        exit;
    }
    if ($interface == "googleearth" && $mapexten != "") {
        include_once dirname(__FILE__) . "/../classesphp/classe_navegacao.php";
        $m = new Navegacao($map_file);
        $m->mudaExtensao($mapexten);
        $m->salva();
    }
    include_once dirname(__FILE__) . "/../classesphp/classe_mapa.php";
    $m = new Mapa($map_file);
    $par = $m->parametrosTemas();
    //
    //na interface googlemaps não é necessário gerar a imagem
    //
    $e = $m->mapa->extent;
    $ext = $e->minx . " " . $e->miny . " " . $e->maxx . " " . $e->maxy;
    $res["mapimagem"] = "";
    $res["mapexten"] = $ext;
    $res["mapres"] = "";
    $res["erro"] = "";
    $res["mapscale"] = "";
    $res["pixelsize"] = "";
    $res["mapimagem"] = "";
    $res["w"] = $m->mapa->width;
    $res["h"] = $m->mapa->height;
    $res["mappath"] = "";
    $res["mapurl"] = "";
    $res["mensagens"] = $m->pegaMensagens();
    $res["tempo"] = microtime(1) - $tempo;
    restauraCon($map_file, $postgis_mapa);
    ob_clean();
    if ($par == "") {
        $retorno = "erro";
    } else {
        $retorno = array("variaveis" => $res, "temas" => $par);
    }
    cpjson($retorno);
}
Ejemplo n.º 3
0
$nomeTemp = md5(implode("", $nomeTemp));
$nomeFile = $dir_tmp . "/tme" . $nomeTemp . ".kmz";
//sesion e aberto com isso
$dataConnector = new DataConnector($_GET["sid"], $verificaSID);
if (!file_exists($nomeFile)) {
    $dataStore = $dataConnector->getDataStore($_GET["nomelayer"], $colunas, $_GET["colunanomeregiao"], $_GET["titulo"], $_GET["descricao"], "", $parametersTME["mapType"]);
} else {
    $dataStore = "";
}
$url = $_SESSION["tmpurl"] . "/tme" . $nomeTemp . ".kmz";
// Create thematic map object
$map = new ThematicMap($dataStore, $parametersTME, $nomeTemp);
$file = $map->getKML($dataConnector->url, $download, $nomeFile);
$nomeArquivo = $map->nomeArquivo;
$legenda = str_replace("kmz", "png", basename($nomeArquivo));
$legenda = str_replace("tme", "legend", $legenda);
$legenda = str_replace(basename($nomeArquivo), $legenda, $file);
if (isset($inclusao) && $inclusao == true) {
    $download = true;
}
if (!$download) {
    if (!function_exists("cpjson")) {
        require dirname(__FILE__) . "/../../classesphp/funcoes_gerais.php";
    }
    if (!file_exists($nomeArquivo)) {
        echo "Nao foi possivel gerar o arquivo de visualizacao.";
        exit;
    }
    cpjson(array('url' => $url, 'arquivo' => $nomeArquivo, 'legenda' => $legenda));
}
//echo "<p><a href='$file'>$file</a>";
Ejemplo n.º 4
0
$movimento = $_GET["movimento"];
$tabela = $_GET["tabela"];
$publicado = $_GET["publicado"];
$nivel = $_GET["nivel"];
$id_menu = $_GET["id_menu"];
$id_grupo = $_GET["id_grupo"];
$id_subgrupo = $_GET["id_subgrupo"];
$id_n1 = $_GET["id_n1"];
$id_n2 = $_GET["id_n2"];
$id_n3 = $_GET["id_n3"];
$id_raiz = $_GET["id_raiz"];
$id_tema = $_GET["id_tema"];
$ordem = $_GET["ordem"];
testaSafeNumerico([$id_subgrupo, $id_grupo, $ordem, $nivel, $id_menu, $id_n1, $id_n2, $id_n3, $id_raiz, $id_tema]);
if (isset($fingerprint) && !empty($g_sid)) {
    $f = explode(",", $fingerprint);
    if ($f[0] != md5('I3GEOSEC' . $_SERVER['HTTP_USER_AGENT'] . session_id())) {
        cpjson(". Tentativa de acesso nao permitida. Inicie um novo mapa.");
        return;
    }
}
function testaSafeNumerico($valores)
{
    foreach ($valores as $valor) {
        if (!empty($valor) && !is_numeric($valor)) {
            ob_clean();
            header("HTTP/1.1 403 valor nao numerico");
            exit;
        }
    }
}
Ejemplo n.º 5
0
function iniciaMapa()
{
    global $googleApiKey, $i3geoPermiteLogin, $dir_tmp, $logExec, $postgis_mapa, $statusFerramentas, $saikuUrl, $emailInstituicao, $openid, $interfacePadrao, $mensagemInicia, $kmlurl, $tituloInstituicao, $tempo, $navegadoresLocais, $locaplic, $embedLegenda, $map_file, $mapext, $w, $h, $R_path, $locmapserv, $utilizacgi, $expoeMapfile, $interface;
    //
    //verifica se algum tema e restrito a determinado usuario
    //as funcoes de validacao encontram-se em funcoes_gerais.php
    //
    if (!function_exists("validaAcessoTemas")) {
        include_once "funcoes_gerais.php";
    }
    validaAcessoTemas($map_file);
    if ($dir_tmp != "" && isset($logExec) && $logExec["init"] == true) {
        i3GeoLog("prog: iniciaMapa interface: {$interface}", $dir_tmp);
    }
    if (!isset($kmlurl)) {
        $kmlurl = "";
    }
    error_reporting(0);
    if (!isset($interface)) {
        $interface = "";
    }
    if ($interface == "openlayers") {
        $m = ms_newMapObj($map_file);
        $e = $m->extent;
        $ext = $e->minx . " " . $e->miny . " " . $e->maxx . " " . $e->maxy;
        $c = $m->numlayers;
        for ($i = 0; $i < $c; ++$i) {
            $layer = $m->getlayer($i);
            if ($layer->status == 2) {
                $layer->setmetadata("olstatus", "DEFAULT");
            } else {
                $layer->setmetadata("olstatus", "OFF");
            }
            $layer->setmetadata("olopacity", $layer->opacity);
        }
        $m->save($map_file);
    }
    if ($interface == "googlemaps" || $interface == "googleearth") {
        $m = ms_newMapObj($map_file);
        $e = $m->extent;
        $ext = $e->minx . " " . $e->miny . " " . $e->maxx . " " . $e->maxy;
        if ($interface == "googlemaps") {
            $m->setProjection("+proj=merc +a=6378137 +b=6378137 +lat_ts=0.0 +lon_0=0.0 +x_0=0.0 +y_0=0 +k=1.0 +units=m");
        }
        $c = $m->numlayers;
        for ($i = 0; $i < $c; ++$i) {
            $layer = $m->getlayer($i);
            if ($layer->status == 2) {
                $layer->setmetadata("gmstatus", "DEFAULT");
            } else {
                $layer->setmetadata("gmstatus", "OFF");
            }
            $layer->setmetadata("gmopacity", $layer->opacity);
            if ($layer->name == "mundo" || $layer->name == "estados") {
                $layer->set("status", MS_OFF);
            }
            if ($layer->type == MS_LAYER_POLYGON || $layer->type == MS_LAYER_RASTER) {
                if ($layer->opacity == "" || $layer->opacity == 100) {
                    $layer->set("opacity", 50);
                }
            }
            if ($layer->name == "rosadosventos" || $layer->name == "copyright") {
                $layer->set("status", MS_DELETE);
            }
        }
        $temp = $m->scalebar;
        $temp->set("status", MS_OFF);
        $c = $m->imagecolor;
        $c->setrgb(255, 255, 255);
        if ($interface == "googleearth") {
            $m->selectOutputFormat("jpeg");
            $of = $m->outputformat;
            $of->set("driver", "AGG/PNG");
        } else {
            $of = $m->outputformat;
        }
        $of->set("imagemode", MS_IMAGEMODE_RGBA);
        $of->set("transparent", MS_ON);
        $m->save($map_file);
    }
    $protocolo = explode("/", $_SERVER['SERVER_PROTOCOL']);
    $protocolo = $protocolo[0];
    $protocolo = strtolower($protocolo) . '://' . $_SERVER['SERVER_NAME'] . ":" . $_SERVER['SERVER_PORT'];
    $urli3geo = str_replace("/classesphp/mapa_controle.php", "", $protocolo . $_SERVER["PHP_SELF"]);
    //altera o tamanho do query map para ficar igual ao do mapa
    include_once "classe_mapa.php";
    error_reporting(0);
    if (!function_exists("sobeAnno")) {
        include_once "funcoes_gerais.php";
    }
    sobeAnno($map_file);
    $m = new Mapa($map_file);
    if (isset($w)) {
        $m->mudaQS($w, $h);
        $m = new Mapa($map_file);
        $m->mapa->setsize($w, $h);
    }
    error_reporting(0);
    //
    //verifica se a legenda deve ser embebida no mapa
    //
    $legenda = $m->mapa->legend;
    $embedLegenda == "sim" ? $legenda->set("status", MS_EMBED) : $legenda->set("status", MS_OFF);
    //
    //salva as altera&ccedil;&otilde;es feitas
    //
    $m->mapa->setmetadata("ows_enable_request", "*");
    $m->salva();
    //prepara a legenda para incluir no mapa, preenchendo os nomes das classes em branco
    if (strtolower($embedLegenda) == "sim") {
        foreach ($m->layers as $l) {
            if ($l->data != "" && strtoupper($l->getmetadata("escondido")) != "SIM" && strtolower($l->getmetadata("tema")) != "nao") {
                if ($l->numclasses > 0) {
                    $classe = $l->getclass(0);
                    if ($classe->name == "" || $classe->name == " ") {
                        $classe->set("name", $l->getmetadata("tema"));
                    }
                }
            }
        }
    }
    //
    //cuidado ao mexer aqui
    //o mapa precisa ser salvo para registrar a extens&atilde;o geogr&aacute;fica
    //
    //$imgo = $m->mapa->draw();
    $imgo = $m->mapa->prepareImage();
    $m->salva($map_file);
    //$e = $m->mapa->extent;
    //$ext = ($e->minx)." ".($e->miny)." ".($e->maxx)." ".($e->maxy);
    $escalaMapa = $m->mapa->scaledenom;
    $celula = $m->mapa->cellsize;
    //
    //pega os parametros de cada tema
    //
    $qyfile = str_replace(".map", ".qy", $map_file);
    $arqsel = file_exists($qyfile) ? true : false;
    $m = new Mapa($map_file, $locaplic);
    $temas = $m->parametrosTemas();
    //$m->ligaDesligaTemas("",implode(",",$m->nomes),"nao");
    //
    //&eacute; necess&aacute;rio um mapa para compor o fundo apenas com o imagecolor e sem nenhuma outra camada
    //utilizado em algumas interfaces
    //
    /*
    $nomefundo = str_replace(".map","fundo.map",$map_file);
    $m->mapa->save($nomefundo);
    $mf = ms_newMapObj($nomefundo);
    $numlayers = $mf->numlayers;
    for($i = 0;$i < $numlayers;++$i)
    {
    	$l = $mf->getLayer($i);
    	$l->set("status",MS_DELETE);
    }
    $of = $mf->outputformat;
    $of->set("driver","GD/PNG");
    $versao = versao();
    $temp = $mf->scalebar;
    $temp->set("status",MS_OFF);
    $mf->save($nomefundo);
    */
    $versao = versao();
    $temp = $m->mapa->scalebar;
    $temp->set("status", MS_OFF);
    $of = $m->mapa->outputformat;
    $of->set("imagemode", MS_IMAGEMODE_RGBA);
    $of->setOption("QUANTIZE_FORCE", "OFF");
    $of->set("driver", "AGG/PNG");
    $m->mapa->setmetadata("interface", $interface);
    $m->salva();
    $nomes = nomeRandomico(12);
    if ($imgo->imagepath == "") {
        echo "Erro IMAGEPATH vazio";
        exit;
    }
    $nomer = $imgo->imagepath . "mapa" . $nomes . ".png";
    //$imgo->saveImage($nomer);
    if (isset($utilizacgi) && strtolower($utilizacgi) == "sim") {
        $nomer = $locmapserv . "?map=" . $map_file . "&mode=map";
    } else {
        $nomer = $imgo->imageurl . basename($nomer);
    }
    //pega a cor de fundo do mapa
    $c = $m->mapa->imagecolor;
    $cordefundo = $c->red . "," . $c->green . "," . $c->blue;
    //pega o texto de copyright
    $copyright = "";
    $lc = $m->mapa->getlayerbyname("copyright");
    if ($lc != "" && $lc->status == MS_DEFAULT) {
        if ($versao["principal"] >= 6) {
            $shape = $lc->getShape(new resultObj(0));
            $copyright = $shape->text;
        } else {
            $shape = $lc->getfeature(0, -1);
            $copyright = $shape->text;
        }
    }
    $res["editor"] = "nao";
    //
    //papeis do usuario se estiver logado
    //
    $res["papeis"] = array();
    $logado = "nao";
    $res["i3geoPermiteLogin"] = "******";
    if (isset($i3geoPermiteLogin) && $i3geoPermiteLogin == false) {
        $_COOKIE = array();
        $res["i3geoPermiteLogin"] = "******";
    }
    if (!empty($_COOKIE["i3geocodigologin"])) {
        session_write_close();
        session_name("i3GeoLogin");
        session_id($_COOKIE["i3geocodigologin"]);
        session_start();
        //var_dump($_SESSION);exit;
        $logado = "sim";
        if (!empty($_SESSION["usuario"]) && $_SESSION["usuario"] == $_COOKIE["i3geousuariologin"]) {
            $res["papeis"] = $_SESSION["papeis"];
        } else {
            $logado = "nao";
        }
        //verifica se o usuario logado pode ver as opcoes de edicao do sistema de admin dentro do mapa
        foreach ($res["papeis"] as $p) {
            if ($p < 3) {
                $res["editor"] = "sim";
            }
        }
    }
    //
    $res["mapexten"] = $ext;
    $res["mapscale"] = $escalaMapa;
    $res["mapres"] = $m->mapa->resolution;
    $res["pixelsize"] = $celula;
    //TODO depreciar na documentacao e ms_configura
    /*
    if ((isset($expoeMapfile)) && ($expoeMapfile == "nao"))
    {$res["mapfile"] = "";}
    else
    {$res["mapfile"] = $map_file;}
    */
    $res["mapfile"] = "";
    $res["cgi"] = "";
    //$locmapserv;
    $res["extentTotal"] = $ext;
    $res["mapimagem"] = "";
    //$nomer;
    $geoip = "nao";
    if (file_exists($locaplic . "/pacotes/geoip") && file_exists($locaplic . "/pacotes/geoip/GeoLiteCity.dat")) {
        $geoip = "sim";
    }
    $res["geoip"] = $geoip;
    $res["listavisual"] = file_exists($locaplic . "/imagens/visual") ? implode(",", listaDiretorios($locaplic . "/imagens/visual")) : "";
    //TODO depreciar na documentacao
    $res["utilizacgi"] = "nao";
    //$utilizacgi;
    $res["versaoms"] = $versao["principal"];
    $res["versaomscompleta"] = $versao["completa"];
    $res["mensagens"] = $m->pegaMensagens();
    $res["r"] = isset($R_path) ? "sim" : "nao";
    $res["extentref"] = "";
    $res["kmlurl"] = $kmlurl;
    $res["mensageminicia"] = $mensagemInicia;
    $res["interfacePadrao"] = $interfacePadrao;
    $res["embedLegenda"] = $embedLegenda;
    $res["w"] = $w;
    $res["h"] = $h;
    $res["titulo"] = $tituloInstituicao;
    $res["tempo"] = microtime(1) - $tempo;
    $res["embedLegenda"] = $embedLegenda;
    $res["erro"] = '';
    $res["mappath"] = "";
    //$imgo->imagepath;
    $res["mapurl"] = "";
    //$imgo->imageurl;
    $res["navegacaoDir"] = $navegadoresLocais;
    if ($openid == true) {
        $res["autenticadoopenid"] = "sim";
    } else {
        $res["autenticadoopenid"] = "nao";
    }
    $res["emailInstituicao"] = $emailInstituicao;
    $res["cordefundo"] = $cordefundo;
    $res["copyright"] = $copyright;
    $res["logado"] = $logado;
    $res["saikuUrl"] = $saikuUrl;
    $res["statusFerramentas"] = $statusFerramentas;
    $res["googleApiKey"] = $googleApiKey;
    //parametros de inicializacao armazenados com o mapa quando o usuario utiliza a opcao de salvar mapa no nbanco de dados
    $customizacoesinit = $m->mapa->getmetadata("CUSTOMIZACOESINIT");
    $res["editavel"] = $m->mapa->getmetadata("EDITAVEL");
    $m->mapa->setmetadata("CUSTOMIZACOESINIT", "");
    $m->salva();
    restauraCon($map_file, $postgis_mapa);
    copy($map_file, str_replace(".map", "reinc.map", $map_file));
    copy($map_file, str_replace(".map", "seguranca.map", $map_file));
    ob_clean();
    cpjson(array("variaveis" => $res, "temas" => $temas, "customizacoesinit" => $customizacoesinit));
}