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)); }
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); } }
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; } }
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; }
} 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; }
} if ($_POST["i3GEOimportarwmcurl"]) { $s = PHP_SHLIB_SUFFIX; if (!function_exists('curl_init')) { @dl('php_curl' . '.' . $s); } if (!function_exists('curl_init')) { echo "curl nã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);