Commit 52e778e9ab7330e8eeee80ea0c3fa49c6b5427a9
1 parent
f88065ef
Exists in
master
and in
7 other branches
$1
Showing
1 changed file
with
67 additions
and
10 deletions
Show diff stats
ferramentas/saiku/cartograma.php
| @@ -15,28 +15,85 @@ session_start(); | @@ -15,28 +15,85 @@ session_start(); | ||
| 15 | //obtem os layers que sao do sistema metaestat, sao regioes e que possuem selecao | 15 | //obtem os layers que sao do sistema metaestat, sao regioes e que possuem selecao |
| 16 | $map_file = $_SESSION["map_file"]; | 16 | $map_file = $_SESSION["map_file"]; |
| 17 | $dados = (array) json_decode($_POST["dados"],true); | 17 | $dados = (array) json_decode($_POST["dados"],true); |
| 18 | -echo "<pre>"; | 18 | + |
| 19 | $metadados = (array) json_decode($_POST["metadados"],true); | 19 | $metadados = (array) json_decode($_POST["metadados"],true); |
| 20 | $nmetadados = count($metadados); | 20 | $nmetadados = count($metadados); |
| 21 | //pega o id da regiao (busca pelo posfixo geocod) | 21 | //pega o id da regiao (busca pelo posfixo geocod) |
| 22 | $codigo_tipo_regiao = $metadados[0]["identificador"]; | 22 | $codigo_tipo_regiao = $metadados[0]["identificador"]; |
| 23 | $codigo_tipo_regiao = explode("].[",$codigo_tipo_regiao); | 23 | $codigo_tipo_regiao = explode("].[",$codigo_tipo_regiao); |
| 24 | -$codigo_tipo_regiao = str_replace(array("[","_geocod"),"",$codigo_tipo_regiao[0]); | 24 | +$codigo_tipo_regiao = str_replace(array("codigo_tipo_regiao_","[","_geocod"),"",$codigo_tipo_regiao[0]); |
| 25 | + | ||
| 26 | +if(empty($codigo_tipo_regiao)){ | ||
| 27 | + echo "Nao foi possivel determinar o codigo da regiao ou localidade no sistema Metaestat"; | ||
| 28 | + exit; | ||
| 29 | +} | ||
| 30 | +$m = new Metaestat(); | ||
| 25 | 31 | ||
| 32 | +$meta = $m->listaTipoRegiao($codigo_tipo_regiao); | ||
| 33 | +$titulolayer = $meta["nome_tipo_regiao"]; | ||
| 34 | +if(empty($titulolayer)){ | ||
| 35 | + echo "Nao foi possivel encontrar a regiao ou localidade no sistema Metaestat"; | ||
| 36 | + exit; | ||
| 37 | +} | ||
| 38 | +$titulolayer = mb_convert_encoding($titulolayer,"ISO-8859-1",mb_detect_encoding($titulolayer)); | ||
| 39 | +$conexao = $m->listaConexao($meta["codigo_estat_conexao"],true); | ||
| 40 | +$conexao = "user=".$conexao["usuario"]." password=".$conexao["senha"]." dbname=".$conexao["bancodedados"]." host=".$conexao["host"]." port=".$conexao["porta"].""; | ||
| 41 | +$colunageo = $meta["colunageo"]; | ||
| 42 | +$srid = $meta["srid"]; | ||
| 43 | +$colunastabela = $m->colunasTabela($meta["codigo_estat_conexao"],$meta["esquemadb"],$meta["tabela"],"geometry","!="); | ||
| 44 | + | ||
| 45 | + | ||
| 46 | +//constroi um sql que retorna os dados na forma de uma tabela inline | ||
| 26 | $nomesColunas = array(); | 47 | $nomesColunas = array(); |
| 27 | $valores = array(); | 48 | $valores = array(); |
| 28 | -for($i=1;$i<$nmetadados;$i++){ | 49 | +for($i=0;$i<$nmetadados;$i++){ |
| 29 | $nomesColunas[] = $metadados[$i]["colName"]; | 50 | $nomesColunas[] = $metadados[$i]["colName"]; |
| 30 | - $valores[$metadados[$i]["colName"]] = array(); | 51 | + //$valores[$metadados[$i]["colName"]] = array(); |
| 31 | } | 52 | } |
| 32 | - | 53 | +$nomesColunas[0] = "geocodigo"; |
| 33 | $codigosRegioes = array(); | 54 | $codigosRegioes = array(); |
| 55 | +//select * from (values (1000,2),(5,6)) as teste ("a","b") where | ||
| 34 | 56 | ||
| 35 | foreach($dados as $dado){ | 57 | foreach($dados as $dado){ |
| 36 | - $codigosRegioes[] = $dado[0]; | ||
| 37 | - for($i=1;$i<$nmetadados;$i++){ | ||
| 38 | - array_push($valores[$metadados[$i]["colName"]],$dado[$i]); | 58 | + //$codigosRegioes[] = $dado[0]; |
| 59 | + $linha = array(); | ||
| 60 | + for($i=0;$i<$nmetadados;$i++){ | ||
| 61 | + $linha[] = $dado[$i]; | ||
| 39 | } | 62 | } |
| 63 | + $valores[] = "(".implode(",",$linha).")"; | ||
| 40 | } | 64 | } |
| 41 | -var_dump($valores); | ||
| 42 | -?> | ||
| 43 | \ No newline at end of file | 65 | \ No newline at end of file |
| 66 | +$sqldados = " | ||
| 67 | + select st_setsrid(".$colunageo.",".$srid.") as $colunageo, ".implode(",",$colunastabela).",dataset.* | ||
| 68 | + from ".$meta["esquemadb"].".".$meta["tabela"]." INNER JOIN | ||
| 69 | + (values ".implode(",",$valores).') as dataset ("'.implode('","',$nomesColunas).'") ON geocodigo = '.$meta["identificador"]; | ||
| 70 | +$sqlmapa = $colunageo." from ($sqldados) as foo using unique gid using srid=$srid"; | ||
| 71 | +$mapa = ms_newMapObj($map_file); | ||
| 72 | +$layer = ms_newLayerObj($mapa); | ||
| 73 | + | ||
| 74 | +$l = array(); | ||
| 75 | +$l[] = "LAYER"; | ||
| 76 | +$l[] = ' NAME "'.nomeRandomico().'"'; | ||
| 77 | +$l[] = " TYPE POLYGON"; | ||
| 78 | +$l[] = " DATA '".$sqlmapa."'"; | ||
| 79 | +$l[] = ' CONNECTION "'.$conexao.'"'; | ||
| 80 | +$l[] = ' CONNECTIONTYPE POSTGIS'; | ||
| 81 | +$l[] = ' TEMPLATE "none.htm"'; | ||
| 82 | +$l[] = ' STATUS DEFAULT'; | ||
| 83 | +$l[] = ' METADATA'; | ||
| 84 | +$l[] = ' TEMA "'.$titulolayer.' '.$_POST["tipo"].'"'; | ||
| 85 | +$l[] = ' CLASSE "SIM"'; | ||
| 86 | +$l[] = ' SAIKU "SIM"'; | ||
| 87 | +$l[] = ' TIP "'.$meta["colunanomeregiao"].','.implode(',',$nomesColunas).'"'; | ||
| 88 | +$l[] = ' END'; | ||
| 89 | +$l[] = ' CLASS'; | ||
| 90 | +$l[] = ' NAME ""'; | ||
| 91 | +$l[] = ' STYLE'; | ||
| 92 | +$l[] = ' OUTLINECOLOR 0 255 0'; | ||
| 93 | +$l[] = ' COLOR 0 0 255'; | ||
| 94 | +$l[] = ' END'; | ||
| 95 | +$l[] = ' END'; | ||
| 96 | +$l[] = 'END'; | ||
| 97 | +$layer->updateFromString(implode(" ",$l)); | ||
| 98 | + | ||
| 99 | +$mapa->save($map_file); | ||
| 100 | +?> |