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"]++; }
/** * 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; }
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); }
$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"]);