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; }
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; }