Exemplo n.º 1
0
 function adicionaTemaGeoJson($servico, $dir_tmp, $locaplic)
 {
     $servico = str_replace("|", "?", $servico);
     $servico = str_replace("#", "&", $servico);
     $tipos = array("pontos", "linhas", "poligonos");
     foreach ($tipos as $tipo) {
         $novolayer = ms_newLayerObj($this->mapa);
         $novolayer->set("connection", $servico);
         if (ms_GetVersionInt() > 50201) {
             $novolayer->setconnectiontype(MS_OGR);
         } else {
             $novolayer->set("connectiontype", MS_OGR);
         }
         $nome = nomeRandomico(10) . "geoJson";
         $novolayer->set("name", $nome . $tipo);
         $novolayer->setmetadata("TEMA", "GeoJson " . $nome . " " . $tipo);
         $novolayer->setmetadata("DOWNLOAD", "SIM");
         $novolayer->setmetadata("CLASSE", "SIM");
         if ($tipo == "pontos") {
             $novolayer->set("type", MS_LAYER_POINT);
         }
         if ($tipo == "linhas") {
             $novolayer->set("type", MS_LAYER_LINE);
         }
         if ($tipo == "poligonos") {
             $novolayer->set("type", MS_LAYER_POLYGON);
         }
         $novolayer->set("type", $tipo);
         $novolayer->set("data", "OGRGeoJSON");
         $novolayer->setfilter("");
         $classe = ms_newClassObj($novolayer);
         $classe->set("name", "");
         $estilo = ms_newStyleObj($classe);
         if ($tipo == "pontos") {
             $estilo->set("symbolname", "ponto");
             $estilo->set("size", 10);
         }
         $estilo->color->setrgb(200, 50, 0);
         $estilo->outlinecolor->setrgb(0, 0, 0);
         // le os itens
         $novolayer->set("status", MS_DEFAULT);
         $novolayer->set("template", "none.htm");
     }
     return "ok";
 }
Exemplo n.º 2
0
function page_header($title = '', $styles = NULL)
{
    ?>
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>MapFile Generator<?php 
    echo !empty($title) ? ' - ' . htmlentities($title) : '';
    ?>
</title>
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
    <link href="css/style.css" rel="stylesheet">
<?php 
    if (!is_null($styles) && is_array($styles)) {
        foreach ($styles as $s) {
            echo '    <link rel="stylesheet" href="' . $s . '">' . PHP_EOL;
        }
    }
    ?>
    <script src="//code.jquery.com/jquery-1.11.2.min.js"></script>
    <script>window.jQuery || document.write('<script src="js/jquery-1.11.2.min.js"><\/script>')</script>
  </head>
  <body>
    <nav class="navbar navbar-default navbar-fixed-top">
      <div class="container">
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar-collapse" aria-expanded="false">
            <span class="sr-only">Toggle navigation</span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <span class="navbar-brand">MapFile Generator</span>
        </div>

        <div class="collapse navbar-collapse" id="navbar-collapse">
          <ul class="nav navbar-nav">
            <li<?php 
    echo basename($_SERVER['PHP_SELF']) == 'index.php' || substr(basename($_SERVER['PHP_SELF']), 0, 5) == 'layer' ? ' class="active"' : '';
    ?>
><a href="index.php"><i class="fa fa-pencil-square-o"></i> Editor</a></li>
            <li<?php 
    echo basename($_SERVER['PHP_SELF']) == 'mapfile.php' ? ' class="active"' : '';
    ?>
><a href="mapfile.php"><i class="fa fa-file-text-o"></i> MapFile</a></li>
            <li<?php 
    echo basename($_SERVER['PHP_SELF']) == 'map.php' ? ' class="active"' : '';
    ?>
><a href="map.php"><i class="fa fa-globe"></i> Map</a></li>
          </ul>
<?php 
    if (extension_loaded('mapscript')) {
        echo '<p class="navbar-text navbar-right text-success" style="color:#3C763D;"><i class="fa fa-check"></i> <a href="http://mapserver.org/mapscript/php/index.html" target="_blank" class="text-success">MapScript</a> support enabled (v' . ms_GetVersionInt() . ').</p>';
    } else {
        echo '<p class="navbar-text navbar-right text-warning" style="color:#8A6D3B;"><i class="fa fa-exclamation-triangle"></i> <a href="http://mapserver.org/mapscript/php/index.html" target="_blank" class="text-warning">MapScript</a> support disabled. Use of <a href="http://mapserver.org/mapscript/php/index.html" target="_blank" class="text-warning">MapFile-PHP-Library</a>.</p>';
    }
    ?>
        </div>
      </div>
    </nav>
<?php 
}
Exemplo n.º 3
0
 $status = move_uploaded_file($Arquivo, $dirmap . "/" . $ArquivoDest);
 if ($status != 1) {
     echo "<p class='paragrafo' >Ocorreu um erro no envio do arquivo kml";
     paraAguarde();
     exit;
 }
 if ($status == 1) {
     echo "<p class='paragrafo' >Arquivo enviado. Adicionando tema...</p>";
     ob_flush();
     flush();
     sleep(1);
     $tipos = array("pontos", "linhas", "poligonos");
     foreach ($tipos as $tipo) {
         $novolayer = ms_newLayerObj($mapa);
         $novolayer->set("connection", $dirmap . "/" . $ArquivoDest);
         if (ms_GetVersionInt() > 50201) {
             $novolayer->setconnectiontype(MS_OGR);
         } else {
             $novolayer->set("connectiontype", MS_OGR);
         }
         $nome = str_replace(".", "", $ArquivoDest);
         $novolayer->set("name", $nome . $tipo);
         $novolayer->setmetadata("TEMA", $_FILES['i3GEOuploadkml']['name'] . " " . $tipo);
         $novolayer->setmetadata("DOWNLOAD", "SIM");
         $novolayer->setmetadata("CLASSE", "SIM");
         $novolayer->setmetadata("TEXTO", "NAO");
         if ($tipo == "pontos") {
             $novolayer->set("type", MS_LAYER_POINT);
         }
         if ($tipo == "linhas") {
             $novolayer->set("type", MS_LAYER_LINE);
Exemplo n.º 4
0
function versao()
{
    $v = "5.0.0";
    $vs = explode(" ", ms_GetVersion());
    $cvs = count($vs);
    for ($i = 0; $i < $cvs; ++$i) {
        if (trim(strtolower($vs[$i])) == "version") {
            $v = $vs[$i + 1];
        }
    }
    $versao["completa"] = $v;
    $v = explode(".", $v);
    $versao["principal"] = $v[0];
    $versao["inteiro"] = ms_GetVersionInt();
    return $versao;
}
Exemplo n.º 5
0
 function pontoEmPoligono($temaPt, $temasPo, $locaplic)
 {
     set_time_limit(3000);
     if ($this->dbaseExiste == false) {
         include_once dirname(__FILE__) . "/../pacotes/phpxbase/api_conversion.php";
     }
     $layerPt = $this->mapa->getlayerbyname($temaPt);
     $layerPt->set("template", "none.htm");
     $layerPt->set("tolerance", 0);
     // define o nome do novo shapefile que ser&aacute; criado
     $nomefinal = nomeRandomico();
     $nomeshp = $this->diretorio . "/" . $nomefinal;
     //
     $spts = retornaShapesSelecionados($layerPt, $this->arquivo, $this->mapa);
     if (count($spts) == 0) {
         $spts = retornaShapesMapext($layerPt, $this->mapa);
     }
     //
     $itemspt = pegaItens($layerPt);
     // gera o novo arquivo shape file
     // cria o dbf
     $def = $this->criaDefDb($itemspt, false);
     // pega os itens dos temas poligonais
     $layersPol = array();
     $temas = explode(",", $temasPo);
     $layers = array();
     $nomesitens = array();
     // guarda os nomes dos temas e seus itens
     $conta = 0;
     $listaItens = array();
     foreach ($temas as $tema) {
         $layer = $this->mapa->getlayerbyname($tema);
         $layer->set("template", "none.htm");
         $layer->set("status", MS_DEFAULT);
         $items = pegaItens($layer);
         if ($layer->type == MS_LAYER_RASTER) {
             $lineo = $spts[0]->line(0);
             $pt = $lineo->point(0);
             $layer->queryByPoint($pt, 0, 0);
         }
         $layers[] = $layer;
         if (!$items) {
             return "erro ao obter a lista de itens do tema {$layer->name}";
         }
         $listaItens[$layer->name] = $items;
         foreach ($items as $ni) {
             $def[] = array("I" . $conta, "C", "254");
             $nomesitens[] = "Tema: " . $layer->name . ", Item: " . $ni . " Novo: I" . $conta . "<br>";
             $conta = $conta + 1;
         }
     }
     if ($this->dbaseExiste == false) {
         $db = xbase_create($nomeshp . ".dbf", $def);
         xbase_close($db);
     } else {
         $db = dbase_create($nomeshp . ".dbf", $def);
         dbase_close($db);
     }
     // acrescenta os pontos no novo shapefile
     $dbname = $nomeshp . ".dbf";
     if ($this->dbaseExiste == false) {
         $db = xbase_open($dbname, 2);
     } else {
         $db = dbase_open($dbname, 2);
     }
     // cria o shapefile
     $novoshpf = ms_newShapefileObj($nomeshp, MS_SHP_POINT);
     foreach ($spts as $spt) {
         foreach ($itemspt as $ni) {
             $reg[] = $this->truncaS($spt->values[$ni]);
         }
         $novoshpf->addShape($spt);
         $lineo = $spt->line(0);
         $pt = $lineo->point(0);
         // faz a pesquisa
         // error_reporting(0);
         foreach ($layers as $layer) {
             $layer->set("template", "none.htm");
             $layer->set("toleranceunits", MS_PIXELS);
             $layer->set("tolerance", 1);
             $ident = @$layer->queryByPoint($pt, 0, 0);
             if ($ident == "MS_SUCCESS") {
                 $itens = $listaItens[$layer->name];
                 $sopen = $layer->open();
                 if ($sopen == MS_FAILURE) {
                     return "erro";
                 }
                 if ($layer->getResult(0) !== FALSE) {
                     if ($this->v >= 6) {
                         $shape = $layer->getShape($layer->getResult(0));
                     } else {
                         $result = $layer->getResult(0);
                         $shp_index = $result->shapeindex;
                         $shape = $layer->getfeature($shp_index, -1);
                     }
                     foreach ($itens as $item) {
                         $p = $this->truncaS($shape->values[$item]);
                         if (empty($p)) {
                             $p = "-";
                         }
                         $reg[] = $p;
                     }
                 } else {
                     foreach ($itens as $item) {
                         $reg[] = "???";
                     }
                 }
             } else {
                 foreach ($itens as $item) {
                     $reg[] = "???";
                 }
             }
             $layer->close();
         }
         if ($this->dbaseExiste == false) {
             xbase_add_record($db, $reg);
         } else {
             dbase_add_record($db, $reg);
         }
         $reg = array();
     }
     if ($this->dbaseExiste == false) {
         xbase_close($db);
     } else {
         dbase_close($db);
     }
     $novolayer = ms_newLayerObj($this->mapa, $layerPt);
     $novolayer->set("data", $nomeshp . ".shp");
     $novolayer->set("name", $nomefinal);
     $novolayer->setmetadata("TEMA", "Cruzamento (" . $nomefinal . ")");
     $novolayer->setmetadata("TEMALOCAL", "SIM");
     $novolayer->setmetadata("DOWNLOAD", "SIM");
     $novolayer->setmetadata("ITENS", "");
     $novolayer->setmetadata("ITENSDESC", "");
     $novolayer->setmetadata("CACHE", "");
     if (ms_GetVersionInt() > 50201) {
         $novolayer->setconnectiontype(MS_SHAPEFILE);
     } else {
         $novolayer->set("connectiontype", MS_SHAPEFILE);
     }
     if (file_exists($this->qyfile)) {
         unlink($this->qyfile);
     }
     return implode(" ", $nomesitens);
 }
Exemplo n.º 6
0
$_UNITS = array('default' => '', 'in' => MS_INCHES, 'ft' => MS_FEET, 'mi' => MS_MILES, 'm' => MS_METERS, 'km' => MS_KILOMETERS, 'dd' => MS_DD);
/**
 * The configuration for maximum size in inches for a print request.
 */
$_MAXIMUM_SIZE_INCHES = 44;
/**
 * Global property : $_SEPARATOR
 * {String} The character used to separate values since sometimes spaces " "
 * and comma "," can be used.
 */
$_SEPARATOR = "#";
/**
 * Global property : $_MSVERSION
 * {Integer} The version of mapserver used.
 */
$_MSVERSION = ms_GetVersionInt();
//var_dump($_GET);
/*************************/
/* PARAMETERS VALIDATION */
/*************************/
validateParams();
/**********************/
/* PARAMETERS PARSING */
/**********************/
/**
 * Each parameter is assigned to a variable, ready to be used.
 */
$aszExtents = explode(",", $_GET['BBOX']);
if ($aszExtents && count($aszExtents) == 4) {
    $minx = min($aszExtents[0], $aszExtents[2]);
    $miny = min($aszExtents[1], $aszExtents[3]);
Exemplo n.º 7
0
function alterarConexao()
{
    global $esquemaadmin, $dir_tmp, $codigoMap, $codigoLayer, $locaplic;
    if ($_GET["data"] != "") {
        $_GET["data"] = base64_decode($_GET["data"]);
    }
    $mapfile = $locaplic . "/temas/" . $codigoMap . ".map";
    $mapa = ms_newMapObj($mapfile);
    $layer = $mapa->getlayerbyname($codigoLayer);
    //quando o layer estiver conectado com o METAESTAT, alguns parametros sao default
    include "conexao.php";
    //e necessario atualizar o banco de dados de administracao, por isso e feito a verificacao do registro ou nao do mapfile no banco
    $sql = "SELECT * from " . $esquemaadmin . "i3geoadmin_temas where codigo_tema = '{$codigoMap}'";
    $dados = pegaDados($sql);
    if (count($dados) == 0) {
        $dataCol = array("tipoa_tema" => "META", "nome_tema" => $codigoMap, "codigo_tema" => $codigoMap, "kml_tema" => "SIM", "kmz_tema" => "NAO", "ogc_tema" => "SIM", "download_tema" => "SIM", "tags_tema" => "", "link_tema" => "", "desc_tema" => "");
        i3GeoAdminInsert($dbhw, "i3geoadmin_temas", $dataCol);
    }
    if (strtoupper($metaestat) == "SIM") {
        $_GET["connectiontype"] = 6;
        $_GET["filteritem"] = "";
        $_GET["filter"] = "";
        $_GET["data"] = "";
        $_GET["connection"] = "";
        $dataCol = array("tipoa_tema" => "META");
        i3GeoAdminUpdate($dbhw, "i3geoadmin_temas", $dataCol, "WHERE codigo_tema = '{$codigoMap}'");
        $layer->setmetadata("metaestat", "SIM");
        $layer->setmetadata("METAESTAT_ID_MEDIDA_VARIAVEL", $_GET["metaestat_id_medida_variavel"]);
    } else {
        $layer->setmetadata("METAESTAT_CODIGO_TIPO_REGIAO", "");
        $layer->setmetadata("METAESTAT_ID_MEDIDA_VARIAVEL", "");
        $layer->setmetadata("metaestat", "");
        $dataCol = array("tipoa_tema" => "");
        i3GeoAdminUpdate($dbhw, "i3geoadmin_temas", $dataCol, "WHERE codigo_tema = '{$codigoMap}'");
    }
    $layer->set("connection", $_GET["connection"]);
    if (ms_GetVersionInt() > 50201) {
        $layer->setconnectiontype($_GET["connectiontype"]);
    } else {
        $layer->set("connectiontype", $_GET["connectiontype"]);
    }
    $layer->set("data", $_GET["data"]);
    $layer->set("tileitem", $_GET["tileitem"]);
    $layer->set("tileindex", $_GET["tileindex"]);
    $layer->set("type", $_GET["type"]);
    if ($_GET["type"] == 0) {
        $c = $layer->getClass(0);
        $e = $c->getStyle(0);
        if ($e->symbolname == "") {
            $e->set("symbolname", "ponto");
        }
    }
    if ($_GET["type"] == 1) {
        $c = $layer->getClass(0);
        $e = $c->getStyle(0);
        if ($e->symbolname == "" || $e->symbolname == "ponto") {
            $e->set("symbolname", "linha");
        }
    }
    if ($_GET["type"] == 2) {
        $c = $layer->getClass(0);
        $e = $c->getStyle(0);
        if ($e->symbolname == "linha" || $e->symbolname == "ponto") {
            $e->set("symbolname", " ");
        }
    }
    $layer->setfilter($_GET["filter"]);
    $layer->set("filteritem", $_GET["filteritem"]);
    if ($layer->getprojection() == MS_TRUE) {
        $layer->setprojection($_GET["projection"]);
    }
    if ($layer->getprojection() == MS_FALSE && $_GET["projection"] != "") {
        $layer->setprojection($_GET["projection"]);
    }
    if ($layer->connectiontype == 7 || $layer->connectiontype == 9) {
        $layer->setmetadata("tipooriginal", $_GET["tipooriginal"]);
    }
    $layer->setmetadata("cache", $_GET["cache"]);
    $layer->setmetadata("tiles", $_GET["tiles"]);
    if ($_GET["cortepixels"] == "") {
        $_GET["cortepixels"] = 0;
    }
    $layer->setmetadata("cortepixels", $_GET["cortepixels"]);
    $layer->setmetadata("convcaracter", $_GET["convcaracter"]);
    if ($_GET["testar"] == "true") {
        $nome = $dir_tmp . "/" . $codigoMap . ".map";
        $mapa->save($nome);
        removeCabecalho($nome, true);
        return $nome;
    } else {
        $mapa->save($mapfile);
        removeCabecalho($mapfile);
        return "ok";
    }
}
Exemplo n.º 8
0
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>MapServer MapFile Generator</title>
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
    <link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css">
    <link href="css/style.css" rel="stylesheet">
  </head>
  <body>
    <div class="container">
      <h1>MapServer MapFile Generator</h1>
      <?php 
if ($mapscript) {
    echo '<p class="text-success"><i class="fa fa-check"></i> <a href="http://mapserver.org/mapscript/php/index.html" class="text-success">MapScript</a> support enabled (v' . ms_GetVersionInt() . ').</p>';
} else {
    echo '<p class="text-warning"><i class="fa fa-exclamation-triangle"></i> <a href="http://mapserver.org/mapscript/php/index.html" class="text-warning">MapScript</a> support disabled. Use of internal library.</p>';
}
?>
      <hr>
      <?php 
if (isset($error)) {
    echo '<div class="alert alert-danger" role="alert"><strong>Error :</strong> ' . htmlentities($error) . '</div>';
}
?>
      <div role="tabpanel">

        <!-- Nav tabs -->
        <ul class="nav nav-tabs" role="tablist">
          <li role="presentation" class="active"><a href="#editor" role="tab" data-toggle="tab"><i class="fa fa-pencil"></i> Editor</a></li>
Exemplo n.º 9
0
 $nIconHeight = $oMap->legend->keysizey;
 if ($nIconWidth <= 0) {
     $nIconWidth = ICON_SIZE;
 }
 if ($nIconWidth <= 0) {
     $nIconWidth = ICON_SIZE;
 }
 $nTotalClasses = 0;
 $aIcons = array();
 /*special case to force the the legend icons to be drawn using a gd driver
   This was fixed in ticket http://trac.osgeo.org/mapserver/ticket/2682 which
   will be available for mapserver version 5.2.1 and 5.4
   Note that we do not check the outputformat of the map (assuming that we are 
   using GD or AGG renderers)
 	*/
 $nVersion = ms_GetVersionInt();
 if ($nVersion <= 50200) {
     /*5.2 and before*/
     $oMap->selectOutputFormat("png24");
 }
 for ($i = 0; $i < $oMap->numlayers; $i++) {
     $layer = $oMap->getLayer($i);
     if (isset($_SESSION['scale_ranges']) && isset($_SESSION['scale_ranges'][$mapName]) && isset($_SESSION['scale_ranges'][$mapName][$layer->name])) {
         $scaleranges = $_SESSION['scale_ranges'][$mapName][$layer->name];
         $layerObj = NULL;
         $layerObj->uniqueId = $i;
         /*generate the legend icons here*/
         $nScaleRanges = count($scaleranges);
         for ($j = 0; $j < $nScaleRanges; $j++) {
             $nStyles = count($scaleranges[$j]->styles);
             for ($k = 0; $k < $nStyles; $k++) {