Esempio n. 1
0
    $selecaoRegiao = $s["selecaoRegiao"];
    $codigo_tipo_regiao = $s["codigo_tipo_regiao"];
} else {
    $codigo_tipo_regiao = $_GET["regiao"];
}
//verifica se o cubo usa uma regiao especifica ou todas
if ($codigo_tipo_regiao == "") {
    $regioes = $m->listaTipoRegiao();
} else {
    $regioes = array($m->listaTipoRegiao($codigo_tipo_regiao));
}
$s = "";
if (empty($saikuConfigDataSource['tabelaDimensaoTempo'])) {
    $saikuConfigDataSource['tabelaDimensaoTempo'] = "i3geo_metaestat.dim_tempo";
}
$medidas = $m->listaMedidaVariavel();
//
//formata o array de regioes colocando na chave o codigo da regiao
//
$chavesRegiao = array();
$todasAsRegioes = $m->listaTipoRegiao();
foreach ($todasAsRegioes as $R) {
    $chavesRegiao[$R["codigo_tipo_regiao"]] = $R;
}
//inicia montagem do XML
//
//cria as dimensoes de tipo temporal
//
$xmlTempo = dimensoesTemporais();
//
//dimensoes geograficas
Esempio n. 2
0
     if ($regiao != "") {
         $dados = $m->listaAtributosMedidaVariavelRegiao($identificador_regiao, $id_medida_variavel);
         $resultado = array("atributos" => $dados, "regiao" => $regiao);
     }
     retornaJSON($resultado);
     exit;
     break;
 case "LISTATODOSATRIBUTOSMEDIDAVARIAVELXY":
     $lista = array();
     $m = new Metaestat();
     $regiao = $m->xy2regiao($codigo_tipo_regiao, $_GET["x"], $_GET["y"]);
     $identificador_regiao = $regiao["identificador_regiao"];
     $variaveis = $m->listaVariavel();
     $dadosVariavel = array();
     foreach ($variaveis as $variavel) {
         $medidas = $m->listaMedidaVariavel($variavel["codigo_variavel"]);
         $valores = array();
         foreach ($medidas as $medida) {
             $dadosMedida = $m->listaAtributosMedidaVariavelRegiao($identificador_regiao, $medida["id_medida_variavel"]);
             if ($dadosMedida != "") {
                 $valores[] = array("medida" => $medida["nomemedida"], "dados" => $dadosMedida);
             }
         }
         if (!empty($valores)) {
             $dadosVariavel[] = array("variavel" => $variavel["nome"], "dados" => $valores);
         }
     }
     retornaJSON($dadosVariavel);
     exit;
     break;
 case "SALVAATRIBUTOSMEDIDAVARIAVEL":
Esempio n. 3
0
/**
 * Cria um novo layer no mapa atual fazendo a juncao dos SQLs para obter em uma mesma tabela todas as colunas das medidas de variavies
 *
 * @param string com a lista de nomes de layers separados por virgula
 * @return Nome do layer criado
 *
 */
function juntaMedidasVariaveis($map_file, $layerNames, $nome, $colunascalc, $formulas)
{
    //o sql que faz acesso aos dados e marcado com /*SE*//*SE*/
    $mapa = ms_newMapObj($map_file);
    $layernames = explode(",", $layerNames);
    $sqlLayers = array();
    $conta = 0;
    $m = new Metaestat();
    $colunasValor = array();
    $colunasIdentificador = array();
    $sqls = array();
    $nomesLayers = array();
    foreach ($layernames as $layername) {
        $l = $mapa->getlayerbyname($layername);
        $l->set("status", MS_OFF);
        $s = explode("/*SE*/", $l->data);
        //pega o sql e da define um alias
        $sqls[] = $s[1] . " as tabela" . $conta;
        //
        $id_medida_variavel = $l->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL");
        $nomesLayers[] = $l->getmetadata("tema");
        $medidavariavel = $m->listaMedidaVariavel("", $id_medida_variavel);
        //pega o nome da coluna que contem os valores e a coluna de ligacao
        $colunasValor[] = $medidavariavel["colunavalor"];
        $colunasIdentificador[] = $medidavariavel["colunaidgeo"];
        //pega valores do primeiro layer para a tabela0
        if ($conta == 0) {
            $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO");
        }
        $conta++;
    }
    //coluna com a geometria
    $regiao = $m->listaTipoRegiao($codigo_tipo_regiao);
    $gid = $regiao["identificador"];
    $n = count($sqls);
    $cwhere = array();
    //$colunasWhere = array();
    for ($i = 1; $i < $n; $i++) {
        $cwhere[] = "tabela0." . $gid . "::text = " . "tabela" . $i . "." . $gid . "::text";
        //$colunasWhere[] =
    }
    $colunasDados = array();
    $itens = array($gid, "regiao");
    $itensdesc = array("id", "Regiao");
    $tabelaColuna = array();
    for ($i = 0; $i < $n; $i++) {
        $colunasDados[] = "tabela" . $i . "." . $colunasValor[$i] . " as valortema" . $i;
        $tabelaColuna["valortema" . $i] = "tabela" . $i . "." . $colunasValor[$i];
        $itens[] = "valortema" . $i;
        $itensdesc[] = $nomesLayers[$i];
    }
    //pega as colunas e as formulas adicionais
    $complemento = "";
    if ($colunascalc != "" && $formulas != "") {
        $colunascalc = explode(",", $colunascalc);
        $formulas = explode(",", $formulas);
        $nformulas = count($formulas);
        $complemento = array();
        for ($i = 0; $i < $nformulas; $i++) {
            $complemento[] = "(" . $formulas[$i] . ") as " . $colunascalc[$i];
        }
        $complemento = implode(",", $complemento);
        //substitui pelo nome correto das colunas
        foreach (array_keys($tabelaColuna) as $k) {
            $complemento = str_replace($k, $tabelaColuna[$k], $complemento);
        }
        if ($complemento != "") {
            $complemento .= ",";
            $itens = array_merge($itens, $colunascalc);
            $itensdesc = array_merge($itensdesc, $colunascalc);
            $complemento = str_ireplace("select", "", $complemento);
            $complemento = str_ireplace("update", "", $complemento);
            $complemento = str_ireplace("delete", "", $complemento);
        }
    }
    //echo $complemento;exit;
    $sqlfinal = "SELECT {$complemento} tabela0." . $gid . ",tabela0." . $regiao["colunanomeregiao"] . " as regiao,tabela0." . $regiao["colunageo"] . " as the_geom," . implode(",", $colunasDados) . " from " . implode(",", $sqls) . " WHERE ";
    $sqlfinal .= implode($cwhere, " AND ");
    $sqlfinal = str_replace("/*FA*/", "", $sqlfinal);
    $sqlfinal = str_replace("/*FAT*/", "", $sqlfinal);
    $data = "the_geom from ({$sqlfinal}) as foo using unique {$gid} using srid=" . $regiao["srid"];
    $nlayer = ms_newLayerObj($mapa, $mapa->getlayerbyname($layernames[0]));
    $nlayer->set("data", $data);
    $nlayer->set("name", $nlayer->name . "_");
    $nlayer->setmetadata("tema", $nome);
    $nlayer->setmetadata("METAESTAT_DERIVADO", "sim");
    $nlayer->setmetadata("METAESTAT_ID_MEDIDA_VARIAVEL", "");
    $nlayer->setmetadata("TIP", "");
    $nlayer->setmetadata("arquivotemaoriginal", "");
    $nlayer->setmetadata("nomeoriginal", "");
    $nlayer->setmetadata("ITENS", implode(",", $itens));
    $nlayer->setmetadata("ITENSDESC", implode(",", $itensdesc));
    $nclass = $nlayer->numclasses;
    for ($i = 1; $i < $nclass; $i++) {
        $nlayer->getclass($i)->set("status", MS_DELETE);
    }
    $c = $nlayer->getclass(0);
    $s = $c->getstyle(0);
    $sc = $s->outlinecolor;
    $sc->setrgb(130, 130, 130);
    $c->set("name", " ");
    $c->setexpression("");
    $nlayer->set("status", MS_DEFAULT);
    $mapa->save($map_file);
    return $nlayer->name;
}
Esempio n. 4
0
 function retornaI2($listatemas, $resultados, $map)
 {
     $final = array();
     foreach ($listatemas as $tema) {
         //para dados que sao oriundos do METAESTAT
         $editavel = "";
         $colunaidunico = "";
         $id_medida_variavel = "";
         //
         $layer = $map->getlayerbyname($tema);
         $nometmp = $tema;
         if (strtoupper($layer->getMetaData("TEMA")) != "NAO") {
             $nometmp = $layer->getMetaData("TEMA");
         } else {
             if ($layer->getMetaData("ALTTEMA") != "") {
                 $nometmp = $layer->getMetaData("ALTTEMA");
             }
         }
         $nometmp = $this->converte($nometmp);
         //identificador que marca o tipo de dados que podem ser salvos
         $tiposalva = "";
         //verifica se e editavel
         if ($layer->getmetadata("EDITAVEL") == "SIM") {
             //verifica login
             session_write_close();
             session_name("i3GeoLogin");
             if (!empty($_COOKIE["i3geocodigologin"])) {
                 session_id($_COOKIE["i3geocodigologin"]);
                 session_start();
                 //verifica usuario
                 if ($_SESSION["usuario"] == $_COOKIE["i3geousuariologin"]) {
                     //verifica se e administrador
                     foreach ($_SESSION["papeis"] as $p) {
                         if ($p == 1) {
                             $editavel = "sim";
                         }
                     }
                     //verifica operacao
                     if (!empty($_SESSION["operacoes"]["admin/metaestat/geral"])) {
                         $editavel = "sim";
                     }
                     if ($editavel == "sim") {
                         $editavel = "nao";
                         $id_medida_variavel = $layer->getMetaData("METAESTAT_ID_MEDIDA_VARIAVEL");
                         $colunaidunico = $layer->getMetaData("COLUNAIDUNICO");
                         if ($id_medida_variavel != "") {
                             include_once dirname(__FILE__) . "/../admin/php/classe_metaestat.php";
                             $m = new Metaestat();
                             $medidaVariavel = $m->listaMedidaVariavel("", $id_medida_variavel);
                             $editavel = $medidaVariavel["colunavalor"];
                             $tiposalva = "medida_variavel";
                         }
                         if ($codigo_tipo_regiao != "") {
                             include_once dirname(__FILE__) . "/../admin/php/classe_metaestat.php";
                             $m = new Metaestat();
                             $regiao = $m->listaTipoRegiao($codigo_tipo_regiao);
                             //todas as colunas podem ser alteradas
                             $editavel = "todos";
                             $tiposalva = "regiao";
                         }
                         //verifica se os parametros de edicao estao disponiveis, pois podem ter sido definidos pelo sistema de administracao
                         if ($layer->getMetaData("ESQUEMATABELAEDITAVEL") != "" && $layer->getMetaData("TABELAEDITAVEL") != "" && $layer->getMetaData("COLUNAIDUNICO") != "") {
                             $editavel = "todos";
                             $tiposalva = "regiao";
                         }
                     }
                 }
             }
         }
         $codigo_tipo_regiao = $layer->getMetaData("METAESTAT_CODIGO_TIPO_REGIAO");
         $final[] = array("tema" => $tema, "tiposalva" => $tiposalva, "nome" => $nometmp, "resultado" => $resultados[$tema], "editavel" => $editavel, "colunaidunico" => $colunaidunico, "id_medida_variavel" => $id_medida_variavel, "codigo_tipo_regiao" => $codigo_tipo_regiao);
     }
     return $final;
 }