Example #1
0
function gml2wkt($gml)
{
    // Parse GML file
    include "funcoes_gerais.php";
    $k = array_keys($_GET);
    session_name("i3GeoPHP");
    session_id($_GET[$k[0]]);
    session_start();
    //var_dump($_SESSION);exit;
    $nome = $_SESSION["dir_tmp"] . "/gml_" . nomeRandomico();
    $nomegml = $nome . ".gml";
    $nomemap = $_SESSION["map_file"];
    $gml = str_replace("xsi:schemaLocation", "erro", $gml);
    gravaDados(array($gml), $nomegml);
    $map = new mapObj($nomemap);
    $layer = ms_newLayerObj($map);
    $layer->setConnectionType(MS_OGR);
    $layer->set("connection", $nomegml);
    $layer->set("template", "none.html");
    $layer->set("type", MS_LAYER_POLYGON);
    $layer->set("name", $nome);
    $layer->set("status", MS_DEFAULT);
    $layer->setmetadata("tema", $nome);
    $classe = ms_newClassObj($layer);
    $novoestilo = ms_newStyleObj($classe);
    $ncor = $novoestilo->color;
    $ncor->setrgb(255, 255, 255);
    //$map->save($nomemap);
    //exit;
    $layer->queryByrect($map->extent);
    $sopen = $layer->open();
    $shape = $layer->getShape($layer->getResult(0));
    $wkt = $shape->towkt();
    return json_encode(array($wkt));
}
Example #2
0
function gravaDataSource()
{
    /*
     $saikuConfigDataSource vem do ms_configura.php
    
    Exemplo de arquivo de fonte:
    type=OLAP
    name=i3geo
    driver=mondrian.olap4j.MondrianOlap4jDriver
    location=jdbc:mondrian:Jdbc=jdbc:postgresql://localhost:5432/i3geosaude;Catalog=http://localhost/i3geo/ferramentas/saiku/esquemaxml.php;JdbcDrivers=org.postgresql.Driver;
    username=postgres
    password=postgres
    
    Array com os parametros definidos em ms_configura:
    
    $saikuConfigDataSource = array(
    		"type"=>"OLAP",
    		"driver"=>"mondrian.olap4j.MondrianOlap4jDriver",
    		"location"=>"jdbc:mondrian:Jdbc=jdbc:postgresql",
    		"serverdb"=>"localhost",
    		"port"=>"5432",
    		"database"=>"i3geosaude",
    		"JdbcDrivers"=>"org.postgresql.Driver",
    		"username"=>"postgres",
    		"password"=>"postgres"
    );
    */
    global $arquivoXmlEsquema, $saikuConfigDataSource, $nomeConexao, $urlXmlEsquema, $dir_tmp;
    $nomeDatasource = $dir_tmp . "/saiku-datasources/" . $nomeConexao;
    if (!file_exists($arquivoXmlEsquema)) {
        $stringDatasource = "\n\t\ttype={$saikuConfigDataSource["type"]}\n\t\tname={$nomeConexao}\n\t\tdriver={$saikuConfigDataSource["driver"]}\n\t\tlocation={$saikuConfigDataSource["location"]}://{$saikuConfigDataSource["serverdb"]}:{$saikuConfigDataSource["port"]}/{$saikuConfigDataSource["database"]};Catalog={$urlXmlEsquema};JdbcDrivers={$saikuConfigDataSource["JdbcDrivers"]};\n\t\tusername={$saikuConfigDataSource["username"]}\n\t\tpassword={$saikuConfigDataSource["password"]}\n\t\t";
        //salva o arquivo com a fonte
        gravaDados(array($stringDatasource), $nomeDatasource);
    }
}
Example #3
0
function criaSHP($tema, $map_file, $locaplic, $dir_tmp, $nomeRand = TRUE, $prj = "", $projetaToMap = true, $shapesSel = false)
{
    include dirname(__FILE__) . "/../ms_configura.php";
    $versao = versao();
    $versao = $versao["principal"];
    //para manipular dbf
    if (file_exists($locaplic . "/pacotes/phpxbase/api_conversion.php")) {
        include_once $locaplic . "/pacotes/phpxbase/api_conversion.php";
    } else {
        include_once dirname(__FILE__) . "/../pacotes/phpxbase/api_conversion.php";
    }
    $map = @ms_newMapObj($map_file);
    $nameMapfile = $map->name;
    substituiConObj($map, $postgis_mapa);
    $layer = $map->getlayerbyname($tema);
    //e necessario abrir ou nao vai projetar
    $layer->open();
    $prjMapa = $map->getProjection();
    $prjTema = $layer->getProjection();
    if ($prjTema != "") {
        $projInObj = new projectionObj($prjTema);
        $projOutObj = new projectionObj($prjMapa);
    } else {
        $projInObj = "";
        $projOutObj = "";
        $projetaToMap = false;
    }
    $layer->set("template", "none.htm");
    $diretorio = dirname($dir_tmp);
    $tipol = MS_SHP_POINT;
    if ($layer->type == MS_LAYER_LINE) {
        $tipol = MS_SHP_ARC;
    }
    if ($layer->type == MS_LAYER_POLYGON) {
        $tipol = MS_SHP_POLYGON;
    }
    if ($nomeRand == true) {
        $novonomelayer = $tema . "_" . nomeRandomico(5);
    } else {
        $novonomelayer = $tema;
    }
    $novonomelayer = str_replace(".", "-", $novonomelayer);
    $nomeshp = $dir_tmp . "/" . $nameMapfile . "_" . $novonomelayer;
    if (file_exists($nomeshp . ".shp")) {
        return $nomeshp;
    }
    $novoshpf = ms_newShapefileObj($nomeshp, $tipol);
    //se for do tipo features
    $data = $layer->data;
    $resultadoFinal = true;
    if ($data == "") {
        $def[] = array("ID", "C", "50");
        $reg[] = 0;
        if (!function_exists("dbase_create")) {
            $db = xbase_create($nomeshp . ".dbf", $def);
            xbase_add_record($db, $reg);
            xbase_close($db);
        } else {
            $db = dbase_create($nomeshp . ".dbf", $def);
            dbase_add_record($db, $reg);
            dbase_close($db);
        }
        if ($versao >= 6) {
            $shape = $layer->getshape(new resultObj(0));
        } else {
            $s = $layer->getfeature(0, -1);
            $result = $layer->getResult(0);
            $shpi = $result->shapeindex;
            $shape = $layer->getfeature($shpi, -1);
        }
        $novoshpf = ms_newShapefileObj($nomeshp . ".shp", -2);
        $novoshpf->addShape($shape);
        $resultadoFinal = true;
    } else {
        if ($shapesSel == false) {
            $shapesSel = retornaShapesSelecionados($layer, $map_file, $map, false);
        }
        $items = pegaItens($layer);
        // cria o dbf
        $def = array();
        $cni = 0;
        foreach ($items as $ni) {
            $temp = strtoupper($ni);
            $temp = substr($temp, 0, 8) . $cni;
            //
            //nao tem como descobrir o tamanho e tipo do campo
            //
            $def[] = array($temp, "C", "254");
            $cni = $cni + 1;
        }
        if (!function_exists("dbase_create")) {
            $db = xbase_create($nomeshp . ".dbf", $def);
        } else {
            $db = dbase_create($nomeshp . ".dbf", $def);
        }
        $dbname = $nomeshp . ".dbf";
        $reg = array();
        $novoshpf = ms_newShapefileObj($nomeshp . ".shp", -2);
        $res_count = count($shapesSel);
        if ($res_count > 0) {
            for ($i = 0; $i < $res_count; ++$i) {
                $shape = $shapesSel[$i];
                if ($projetaToMap == true) {
                    $shape->project($projInObj, $projOutObj);
                }
                foreach ($items as $ni) {
                    $vreg = $shape->values[$ni];
                    if (strlen($vreg) > 255) {
                        $vreg = substr($vreg, 0, 255);
                    }
                    $reg[] = $vreg;
                }
                $novoshpf->addShape($shape);
                if (!function_exists("dbase_create")) {
                    xbase_add_record($db, $reg);
                } else {
                    dbase_add_record($db, $reg);
                }
                $reg = array();
            }
            if (!function_exists("dbase_create")) {
                xbase_close($db);
            } else {
                dbase_close($db);
            }
            //
            //verifica a quantidade de registros no final
            //
            if (function_exists("dbase_open")) {
                $db = dbase_open($nomeshp . ".dbf", 0);
            } else {
                $db = xbase_open($nomeshp . ".dbf", 0);
            }
            if (function_exists("dbase_numrecords")) {
                $record_numbers = dbase_numrecords($db);
            } else {
                $record_numbers = xbase_numrecords($db);
            }
            if (function_exists("dbase_close")) {
                dbase_close($db);
            } else {
                xbase_close($db);
            }
            if ($record_numbers != $res_count) {
                if (file_exists($nomeshp . ".dbf")) {
                    unlink($nomeshp . ".dbf");
                }
                if (file_exists($nomeshp . ".shp")) {
                    unlink($nomeshp . ".shp");
                }
                if (file_exists($nomeshp . ".shx")) {
                    unlink($nomeshp . ".shx");
                }
                if (file_exists($nomeshp . ".prj")) {
                    unlink($nomeshp . ".prj");
                }
                $resultadoFinal = false;
            }
        } else {
            $resultadoFinal = false;
        }
    }
    if ($resultadoFinal == false) {
        return false;
    } else {
        //gera o arquivo prj
        if ($prj != "") {
            gravaDados(array($prj), $nomeshp . ".prj");
        } elseif ($projetaToMap == false) {
            $nomePrjOriginal = str_replace(".shp", ".prj", $layer->data);
            $nomeDestino = $nomeshp . ".prj";
            if (file_exists($nomePrjOriginal) && !file_exists($nomeDestino)) {
                copy($nomePrjOriginal, $nomeDestino);
            }
        }
        return $nomeshp;
    }
}
Example #4
0
 function executaR($rcode, $dir_tmp, $R_path, $gfile_name = "")
 {
     $R_options = "--slave --no-save";
     $r_name = nomeRandomico(20);
     $r_input = $dir_tmp . "/" . $r_name . ".R";
     $r_output = $dir_tmp . "/" . $r_name . ".Rout";
     gravaDados($rcode, $r_input);
     $command = $R_path . " {$R_options} < {$r_input} > {$r_output}";
     $result = "";
     $error = "";
     $exec_result = exec($command, $result, $error);
     // corta a imagem final
     // include_once("classe_imagem.php");
     // $m = new Imagem($dir_tmp."/".$gfile_name.".png");
     // $i = $m->cortaBorda();
     // imagepng($i,$dir_tmp."/".$gfile_name.".png");
     return $r_input;
 }
Example #5
0
        } else {
            if (strstr($_POST['action'], 'datepicker')) {
                //controlando os selects do calendário do site
                datePickerSite();
            } else {
                if (strstr($_POST['action'], 'exibedia')) {
                    //controlando os selects do calendário do site
                    exibeDia($_POST['#038;mes'], $_POST['#038;ano']);
                } else {
                    if (strstr($_POST['action'], 'exibeHora')) {
                        //controlando os selects do calendário do site
                        exibeHora($_POST['dia'], $_POST['mes'], $_POST['ano']);
                    } else {
                        if (strstr($_POST['action'], 'gravaDados')) {
                            //controlando os selects do calendário do site
                            gravaDados($_POST['ano'], $_POST['mes'], $_POST['dia'], $_POST['hora']);
                        } else {
                            //buscando
                            subCentroCusto($_POST['centroSearch'], $_POST['SubCentroSearch'], $_POST['action']);
                        }
                    }
                }
            }
        }
    }
}
function subCentroCusto($id, $selected, $controle)
{
    if ($id == '') {
        $id = 0;
    }
Example #6
0
}
if ($_POST["i3GEOimportarwmcurl"]) {
    $s = PHP_SHLIB_SUFFIX;
    if (!function_exists('curl_init')) {
        @dl('php_curl' . '.' . $s);
    }
    if (!function_exists('curl_init')) {
        echo "curl n&atilde;o instalado";
    } else {
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $_POST["i3GEOimportarwmcurl"]);
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
        $result = curl_exec($curl);
        curl_close($curl);
        $arquivo = $dirmap . "/" . nomeRandomico();
        gravaDados(array($result), $arquivo);
    }
}
if ($arquivo != "") {
    incluiWMC();
}
paraAguarde();
function incluiWMC()
{
    global $map_file, $arquivo;
    $mapa = ms_newMapObj($map_file);
    $proj = $mapa->getprojection();
    $mapa->loadMapContext($arquivo, "MS_TRUE");
    $layers = $mapa->getalllayernames();
    foreach ($layers as $nome) {
        $l = $mapa->getlayerbyname($nome);