Beispiel #1
0
function alteraclassesPost($ids, $nomes, $exps, $base64 = "nao", $minScales = "", $maxScales = "")
{
    global $map_file, $_pg;
    $m = new Alteraclasse($map_file, $_pg["tema"]);
    $m->alteraclasses($ids, $nomes, $exps, $base64, $minScales, $maxScales);
    $m->salva();
    $_SESSION["contadorsalva"]++;
}
Beispiel #2
0
/**
 * Altera a representacao de um layer mostrando circulos cujo tamanho corresponde a um valor
 * @param nome do arquivo mapfile em uso
 * @param nome do layer que sera processado
 * @param variatamanho|variacor|continuo tipo de processo
 */
function classes2circulos($map_file, $tema, $tipo)
{
    $nome = basename($map_file) . $tema . $tipo;
    $mapa = ms_newMapObj($map_file);
    $teste = $mapa->getlayerbyname($nome);
    if ($teste != "") {
        return "";
    }
    $l = $mapa->getlayerbyname($tema);
    if ($l->getmetadata("METAESTAT_DERIVADO") == "sim") {
        return "";
    }
    $layer = ms_newLayerObj($mapa, $l);
    $l->set("status", MS_OFF);
    $layer->set("status", MS_DEFAULT);
    $layer->set("opacity", 50);
    $layer->set("name", $nome);
    $meta = new Metaestat();
    if ($layer->type != MS_LAYER_POINT) {
        $layer->set("type", 0);
        $regiao = $meta->listaTipoRegiao($layer->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO"));
        //repare que existe uma virgula apos o nome da coluna com a geometria, isso e necessario para substituir a string correta
        if ($regiao["colunacentroide"] != "") {
            $stringgeo = "g." . $regiao["colunageo"] . ",";
            $data = str_replace($stringgeo, "g." . $regiao["colunacentroide"] . ",", $layer->data);
        } else {
            $stringgeo = 'st_setsrid(g.".' . $regiao["colunageo"] . '.",".' . $regiao["srid"] . '.")';
            $data = str_replace($stringgeo, "st_centroid({$stringgeo})", $layer->data);
        }
        $layer->set("data", $data);
    }
    $numclasses = $layer->numclasses;
    if ($tipo == "variatamanho" || $tipo == "variacor") {
        if ($tipo == "variatamanho") {
            $layer->setmetadata("tema", $layer->getmetadata("tema") . " - circ");
        }
        if ($tipo == "variacor") {
            $layer->setmetadata("tema", $layer->getmetadata("tema") . " - ponto");
        }
        if ($numclasses > 0) {
            for ($i = 0; $i < $numclasses; ++$i) {
                $classe = $layer->getClass($i);
                $estilo = $classe->getstyle(0);
                $estilo->set("symbolname", "ponto");
                if ($tipo == "variatamanho") {
                    $estilo->set("size", $i * 6);
                }
                if ($tipo == "variacor") {
                    $estilo->set("size", 12);
                }
            }
        }
    }
    if ($tipo == "continuo") {
        $nometemp = str_replace(basename($map_file), nomeRandomico(5) . basename($map_file), $map_file);
        $mapa->save($nometemp);
        //$mapatemp = ms_newMapObj($nometemp);
        $medidavariavel = $meta->listaMedidaVariavel("", $layer->getmetadata("METAESTAT_ID_MEDIDA_VARIAVEL"));
        include_once dirname(__FILE__) . "/../../classesphp/classe_alteraclasse.php";
        $m = new Alteraclasse($nometemp, $layer->name, "", "");
        $valores = $m->pegaValores($m->mapa, $m->layer, $medidavariavel["colunavalor"], true, 0);
        $min = min($valores);
        $max = max($valores);
        $layer->setmetadata("tema", $layer->getmetadata("tema") . " - cont");
        $layer->set("type", MS_LAYER_CHART);
        $layer->set("opacity", 60);
        $layer->setprocessing("CHART_TYPE=pie");
        $layer->setprocessing("CHART_SIZE_RANGE=" . $medidavariavel["colunavalor"] . " 10 150 " . $min . " " . $max);
        if ($numclasses > 0) {
            for ($i = 0; $i < $numclasses; ++$i) {
                $classe = $layer->getClass($i);
                $classe->set("status", MS_DELETE);
            }
        }
        $classe = ms_newClassObj($layer);
        $novoestilo = ms_newStyleObj($classe);
        //$novoestilo->set("symbolname","ponto");
        $novoestilo->set("size", "6");
        $ncor = $novoestilo->color;
        $ncor->setrgb(247, 145, 29);
        $ncor = $novoestilo->outlinecolor;
        $ncor->setrgb(255, 255, 255);
        //$novoestilo->setbinding(MS_STYLE_BINDING_SIZE, $medidavariavel["colunavalor"]);
        //
        $classe = ms_newClassObj($layer);
        $novoestilo = ms_newStyleObj($classe);
        //$novoestilo->set("symbolname","ponto");
        $novoestilo->set("size", "6");
        $ncor = $novoestilo->color;
        $ncor->setrgb(247, 145, 29);
        $ncor = $novoestilo->outlinecolor;
        $ncor->setrgb(255, 255, 255);
    }
    $layer->setmetadata("METAESTAT_DERIVADO", "sim");
    $mapa->save($map_file);
    return $nome;
}
Beispiel #3
0
function autoClassesLayer()
{
    global $codigoMap, $codigoLayer, $locaplic, $dir_tmp, $postgis_mapa;
    $mapfile = $locaplic . "/temas/" . $codigoMap . ".map";
    include_once "{$locaplic}/classesphp/classe_alteraclasse.php";
    error_reporting(0);
    $nometemp = $dir_tmp . "/" . nomerandomico() . ".map";
    $versao = versao();
    $versao = $versao["principal"];
    if ($base == "" || !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;
        }
    }
    $mapageral = ms_newMapObj($base);
    $numlayers = $mapageral->numlayers;
    for ($i = 0; $i < $numlayers; $i++) {
        $layertemp = $mapageral->getlayer($i);
        $layertemp->set("status", MS_DELETE);
    }
    $mapatemp = ms_newMapObj($mapfile);
    $numlayers = $mapatemp->numlayers;
    for ($i = 0; $i < $numlayers; $i++) {
        $layertemp = $mapatemp->getlayer($i);
        //troca string de conexao com alias
        $lcon = $layertemp->connection;
        if ($layertemp->connectiontype == MS_POSTGIS) {
            if (in_array($lcon, array_keys($postgis_mapa))) {
                $layertemp->set("connection", $postgis_mapa[$lcon]);
            }
        }
        ms_newLayerObj($mapageral, $layertemp);
    }
    $mapageral->save($nometemp);
    $m = new Alteraclasse($nometemp, $codigoLayer);
    $m->valorunico($_GET["itemExpressao"], "", $_GET["itemNome"]);
    $m->salva();
    $mapatemp = ms_newMapObj($nometemp);
    $numlayers = $mapatemp->numlayers;
    for ($i = 0; $i < $numlayers; $i++) {
        $layertemp = $mapatemp->getlayer($i);
        //troca string de conexao com alias
        if ($layertemp->connectiontype == MS_POSTGIS) {
            $layertemp->set("connection", $lcon);
        }
    }
    $mapatemp->save($mapfile);
    removeCabecalho($mapfile);
}
Beispiel #4
0
        $l[] = '		CLASSE "SIM"';
        $l[] = '		SAIKU "' . $opcoes["tipo"] . '"';
        $l[] = '		METAESTAT_CODIGO_TIPO_REGIAO "' . $codigo_tipo_regiao . '"';
        $l[] = '		TILES "NAO"';
        $l[] = '	END	';
        $l[] = '	CLASS	';
        $l[] = '	OUTLINECOLOR 255 255 255	';
        $l[] = '	END	';
        $l[] = 'END	';
        $l = implode(PHP_EOL, $l);
        $layer->updateFromString($l);
    }
    $mapa->save($map_file);
    if ($opcoes["tipo"] == "coresChapadas") {
        include dirname(__FILE__) . "/../../classesphp/classe_alteraclasse.php";
        $m = new Alteraclasse($map_file, $nomeLayer);
        $cor = $opcoes["cores"][0];
        $cori = $cor["red"] . ',' . $cor["green"] . ',' . $cor["blue"];
        $cor = $opcoes["cores"][1];
        $corf = $cor["red"] . ',' . $cor["green"] . ',' . $cor["blue"];
        $retorno = $m->alteraCoresClasses($cori, $corf);
        $m->salva();
    }
    if ($opcoes["tipo"] == "calor") {
        $parametros = '{"plugin":"heatmap","parametros":{"tipoGradiente":"default","opacity":".8","valorPonto":' . $opcoes["valorPonto"] . ',"coluna":"' . $nomesColunas[1] . '","radius":"' . $opcoes["raio"] . '"}}';
        $layer->setmetadata("PLUGINI3GEO", $parametros);
        $layer->setmetadata("SAIKU", $opcoes["tipo"]);
        $mapa->save($map_file);
    }
}
header("Location:" . $opcoes["locaplic"] . "/mashups/openlayers.php?temas=" . $map_file . "&DESLIGACACHE=sim&botoes=legenda,pan,zoombox,zoomtot,zoomin,zoomout,distancia,area,identifica&controles=navigation,layerswitcher,scaleline,mouseposition,overviewmap,keyboarddefaults&tiles=false&mapext=" . $opcoes["mapext"]);