Exemplo n.º 1
0
function pegaDadosJ()
{
    global $oMap, $tema, $versao, $locaplic;
    set_time_limit(0);
    $layer = $oMap->getlayerbyname($tema);
    processaPluginI3geo();
    $layer->set("status", MS_DEFAULT);
    $layer->set("template", "none.htm");
    $items = pegaItens($layer, $oMap);
    $layer->querybyrect($oMap->extent);
    $layer->open();
    $res_count = $layer->getNumresults();
    $linhas = array();
    for ($i = 0; $i < $res_count; $i++) {
        //echo $i." - <br>";
        if ($versao >= 6) {
            $shape = $layer->getShape($layer->getResult($i));
        } else {
            $shape = $layer->getFeature($layer->getResult($i)->shapeindex);
        }
        $valores = array();
        foreach ($items as $item) {
            $v = trim($shape->values[$item]);
            if (is_string($v)) {
                $v = converteenc($v);
            }
            $valores[] = $v;
        }
        $linhas[] = array("valores" => $valores, "shape" => $shape);
    }
    //verifica os tipos dos itens
    $n = 10;
    $ni = count($items);
    $tipos = array();
    if (count($linhas) <= 10) {
        $n = count($linhas);
    }
    for ($j = 0; $j < $ni; $j++) {
        $tipos[$j] = "string";
    }
    for ($i = 0; $i < $n; $i++) {
        $valores = $linhas[$i]["valores"];
        for ($j = 0; $j < $ni; $j++) {
            if ($tipos[$j] == "string" && $valores[$j] != "" && is_numeric($valores[$j])) {
                $tipos[$j] = "number";
            }
        }
    }
    $resultado = array("items" => $items, "tipos" => $tipos, "features" => $linhas);
    return $resultado;
}
Exemplo n.º 2
0
function exportaGeojson()
{
    global $oMap, $arq, $fileName, $versao, $ows_geomtype;
    include "pacotes/gisconverter/gisconverter.php";
    $decoder = new gisconverter\WKT();
    $layer = $oMap->getlayer(0);
    $items = pegaItens($layer, $oMap);
    $layer->querybyrect($oMap->extent);
    $layer->open();
    $res_count = $layer->getNumresults();
    $linhas = array();
    $features = array();
    for ($i = 0; $i < $res_count; $i++) {
        if ($versao >= 6) {
            $shape = $layer->getShape($layer->getResult($i));
        } else {
            $shape = $layer->getFeature($layer->getResult($i)->shapeindex);
        }
        $propriedades = array();
        foreach ($items as $item) {
            $v = trim($shape->values[$item]);
            if (is_string($v)) {
                $v = '"' . converteenc($v) . '"';
            }
            $propriedades[] = array($item => $v);
        }
        $wkt = $shape->towkt();
        $features[] = array("type" => "Feature", "properties" => $propriedades, "geometry" => json_decode($decoder->geomFromText($wkt)->toGeoJSON()));
    }
    $n[] = array("type" => "FeatureCollection", "features" => $features);
    $contents = json_encode($n[0]);
    $contents = str_replace('\\"', '', $contents);
    file_put_contents($arq . ".json", $contents);
    ob_clean();
    header("Content-type: application/json; subtype=geojson");
    echo $contents;
    exit;
}