Commit 11579fe5d5ae6215c60c2e82bf840d46a2c7f560
1 parent
973d1ed2
Exists in
master
i3geosaude - inclusão de opção para acessar o saiku fora do i3geo
Showing
2 changed files
with
66 additions
and
48 deletions
Show diff stats
acesse.html
@@ -21,6 +21,14 @@ | @@ -21,6 +21,14 @@ | ||
21 | <span style="vertical-align:top">Interface que utiliza o Google Maps como mecanismo de navegação e base cartográfica</span> | 21 | <span style="vertical-align:top">Interface que utiliza o Google Maps como mecanismo de navegação e base cartográfica</span> |
22 | </a> | 22 | </a> |
23 | </p> | 23 | </p> |
24 | + <p> | ||
25 | + <a id="saiku" href="i3geo/ferramentas/saiku/esquemaxml.php" target="_blank"> | ||
26 | + <img title="SAIKU" src="Imagens/saiku_free_small.png" style="min-width:0px;width: 30px; height: 20px; cursor: pointer; border: 1px solid gray; border-radius: 5px 5px 5px 5px;" /> | ||
27 | + <span style="vertical-align:top"> | ||
28 | + Ferramenta de análise de variáveis cadastradas | ||
29 | + </span> | ||
30 | + </a> | ||
31 | + </p> | ||
24 | </div> | 32 | </div> |
25 | <table> | 33 | <table> |
26 | <tr> | 34 | <tr> |
i3geo/ferramentas/saiku/esquemaxml.php
1 | <?php | 1 | <?php |
2 | -if(empty($_GET["g_sid"])){ | ||
3 | - echo "erro"; | ||
4 | - exit; | ||
5 | -} | 2 | + |
6 | include(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php"); | 3 | include(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php"); |
7 | include(dirname(__FILE__)."/../../admin/php/classe_metaestat.php"); | 4 | include(dirname(__FILE__)."/../../admin/php/classe_metaestat.php"); |
8 | if(!isset($dir_tmp)){ | 5 | if(!isset($dir_tmp)){ |
9 | include(dirname(__FILE__)."/../../ms_configura.php"); | 6 | include(dirname(__FILE__)."/../../ms_configura.php"); |
10 | } | 7 | } |
11 | -//pega a sessao PHP aberta pelo i3Geo | 8 | +$nomeConexao = nomeRandomico(); |
9 | +$nomeDatasource = $dir_tmp."/saiku-datasources/".$nomeConexao; | ||
10 | + | ||
11 | +//quando o saiku e iniciado de fora do i3geo, e necessario inicializar um mapfile para uso como base dos mapas | ||
12 | +if(empty($_GET["g_sid"])){ | ||
13 | + include(dirname(__FILE__)."/../../ms_criamapa.php"); | ||
14 | + //reinicia a url | ||
15 | + $urln = "?g_sid=".session_id(); | ||
16 | + header("Location:".$urln); | ||
17 | + exit; | ||
18 | +} | ||
19 | + | ||
20 | +//pega a sessao PHP aberta pelo i3Geo ou ms_criamapa.php | ||
12 | session_name("i3GeoPHP"); | 21 | session_name("i3GeoPHP"); |
13 | session_id($_GET["g_sid"]); | 22 | session_id($_GET["g_sid"]); |
14 | session_start(); | 23 | session_start(); |
15 | - | ||
16 | $map_file = $_SESSION["map_file"]; | 24 | $map_file = $_SESSION["map_file"]; |
17 | -$nomeConexao = nomeRandomico(); | ||
18 | -$nomeDatasource = $dir_tmp."/saiku-datasources/".$nomeConexao; | ||
19 | $urlXmlEsquema = $_SESSION["tmpurl"].basename(dirname($map_file))."/".$nomeConexao.".xml"; | 25 | $urlXmlEsquema = $_SESSION["tmpurl"].basename(dirname($map_file))."/".$nomeConexao.".xml"; |
20 | $arquivoXmlEsquema = dirname($map_file)."/".$nomeConexao.".xml"; | 26 | $arquivoXmlEsquema = dirname($map_file)."/".$nomeConexao.".xml"; |
27 | + | ||
21 | /* | 28 | /* |
22 | $saikuConfigDataSource vem do ms_configura.php | 29 | $saikuConfigDataSource vem do ms_configura.php |
23 | 30 | ||
@@ -55,49 +62,51 @@ password={$saikuConfigDataSource["password"]} | @@ -55,49 +62,51 @@ password={$saikuConfigDataSource["password"]} | ||
55 | gravaDados(array($stringDatasource),$nomeDatasource); | 62 | gravaDados(array($stringDatasource),$nomeDatasource); |
56 | $m = new Metaestat(); | 63 | $m = new Metaestat(); |
57 | $selecaoRegiao = array(); | 64 | $selecaoRegiao = array(); |
58 | -//obtem os layers que sao do sistema metaestat, sao regioes e que possuem selecao | ||
59 | -$mapa = ms_newMapObj($map_file); | ||
60 | -$c = $mapa->numlayers; | 65 | +//obtem do mapfile em uso os layers que sao do sistema metaestat, sao regioes e que possuem selecao |
61 | $codigo_tipo_regiao = ""; | 66 | $codigo_tipo_regiao = ""; |
62 | -for ($i=0;$i < $c;++$i){ | ||
63 | - $l = $mapa->getlayer($i); | ||
64 | - //verifica o alias na conexao | ||
65 | - if (!empty($postgis_mapa)){ | ||
66 | - if ($l->connectiontype == MS_POSTGIS){ | ||
67 | - $lcon = $l->connection; | ||
68 | - if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | ||
69 | - if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade | ||
70 | - {$l->set("connection",$postgis_mapa);} | ||
71 | - else{ | ||
72 | - $l->set("connection",$postgis_mapa[$lcon]); | 67 | +if($map_file != ""){ |
68 | + $mapa = ms_newMapObj($map_file); | ||
69 | + $c = $mapa->numlayers; | ||
70 | + for ($i=0;$i < $c;++$i){ | ||
71 | + $l = $mapa->getlayer($i); | ||
72 | + //verifica o alias na conexao | ||
73 | + if (!empty($postgis_mapa)){ | ||
74 | + if ($l->connectiontype == MS_POSTGIS){ | ||
75 | + $lcon = $l->connection; | ||
76 | + if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | ||
77 | + if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade | ||
78 | + {$l->set("connection",$postgis_mapa);} | ||
79 | + else{ | ||
80 | + $l->set("connection",$postgis_mapa[$lcon]); | ||
81 | + } | ||
73 | } | 82 | } |
74 | } | 83 | } |
75 | } | 84 | } |
76 | - } | ||
77 | - // | ||
78 | - $registros = array(); | ||
79 | - if($l->status == MS_DEFAULT && $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO") != ""){ | ||
80 | - $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO"); | ||
81 | - //verifica se tem selecao | ||
82 | - $qyfile = dirname($map_file)."/".$l->name.".php"; | ||
83 | - if(file_exists($qyfile)){ | ||
84 | - //pega os registros | ||
85 | - $shapes = retornaShapesSelecionados($l,$map_file,$mapa); | ||
86 | - //pega o nome da coluna que identifica cada registro | ||
87 | - $regiao = $m->listaTipoRegiao($codigo_tipo_regiao); | ||
88 | - $item = $regiao["identificador"]; | ||
89 | - foreach($shapes as $shape){ | ||
90 | - $registros[] = $shape->values[$item]; | 85 | + // |
86 | + $registros = array(); | ||
87 | + if($l->status == MS_DEFAULT && $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO") != ""){ | ||
88 | + //verifica se tem selecao | ||
89 | + $qyfile = dirname($map_file)."/".$l->name.".php"; | ||
90 | + if(file_exists($qyfile)){ | ||
91 | + $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO"); | ||
92 | + //pega os registros | ||
93 | + $shapes = retornaShapesSelecionados($l,$map_file,$mapa); | ||
94 | + //pega o nome da coluna que identifica cada registro | ||
95 | + $regiao = $m->listaTipoRegiao($codigo_tipo_regiao); | ||
96 | + $item = $regiao["identificador"]; | ||
97 | + foreach($shapes as $shape){ | ||
98 | + $registros[] = $shape->values[$item]; | ||
99 | + } | ||
100 | + $reg = $item." IN ('".implode("','",$registros)."') "; | ||
101 | + $selecaoRegiao[$codigo_tipo_regiao] = array( | ||
102 | + "item" => $item, | ||
103 | + "sql" => $reg | ||
104 | + ); | ||
105 | + break; //mantem a primeira ocorrencia de regiao que possui selecao | ||
106 | + } | ||
107 | + else{ | ||
108 | + $selecaoRegiao[$codigo_tipo_regiao] = ""; | ||
91 | } | 109 | } |
92 | - $reg = $item." IN ('".implode("','",$registros)."') "; | ||
93 | - $selecaoRegiao[$codigo_tipo_regiao] = array( | ||
94 | - "item" => $item, | ||
95 | - "sql" => $reg | ||
96 | - ); | ||
97 | - break; //mantem a primeira ocorrencia de regiao que possui selecao | ||
98 | - } | ||
99 | - else{ | ||
100 | - $selecaoRegiao[$codigo_tipo_regiao] = ""; | ||
101 | } | 110 | } |
102 | } | 111 | } |
103 | } | 112 | } |
@@ -258,7 +267,7 @@ $medidas = $m->listaMedidaVariavel(); | @@ -258,7 +267,7 @@ $medidas = $m->listaMedidaVariavel(); | ||
258 | $tbs = array(); | 267 | $tbs = array(); |
259 | 268 | ||
260 | foreach($medidas as $medida){ | 269 | foreach($medidas as $medida){ |
261 | - if($medida["codigo_tipo_regiao"] == $codigo_tipo_regiao){ | 270 | + if($codigo_tipo_regiao == "" || $medida["codigo_tipo_regiao"] == $codigo_tipo_regiao){ |
262 | $k = $medida["esquemadb"].$medida["tabela"]; | 271 | $k = $medida["esquemadb"].$medida["tabela"]; |
263 | if(empty($tbs[$k])){ | 272 | if(empty($tbs[$k])){ |
264 | $tbs[$k] = array($medida); | 273 | $tbs[$k] = array($medida); |
@@ -268,10 +277,10 @@ foreach($medidas as $medida){ | @@ -268,10 +277,10 @@ foreach($medidas as $medida){ | ||
268 | } | 277 | } |
269 | } | 278 | } |
270 | } | 279 | } |
271 | - | ||
272 | //monta os cubos para cada esquema.tabela diferente | 280 | //monta os cubos para cada esquema.tabela diferente |
273 | $VirtualCubeDimension = array(); | 281 | $VirtualCubeDimension = array(); |
274 | $VirtualCubeMeasure = array(); | 282 | $VirtualCubeMeasure = array(); |
283 | + | ||
275 | foreach($tbs as $tb){ | 284 | foreach($tbs as $tb){ |
276 | //cabecalho de cada cubo obtido da primeira medida | 285 | //cabecalho de cada cubo obtido da primeira medida |
277 | $c = $tb[0]; | 286 | $c = $tb[0]; |
@@ -344,6 +353,7 @@ error_reporting(0); | @@ -344,6 +353,7 @@ error_reporting(0); | ||
344 | ob_end_clean(); | 353 | ob_end_clean(); |
345 | 354 | ||
346 | gravaDados(array($xml),$arquivoXmlEsquema); | 355 | gravaDados(array($xml),$arquivoXmlEsquema); |
356 | + | ||
347 | header("Location:".$saikuUrl."/?nomeConexao=".$nomeConexao."&locaplic=".$_GET["locaplic"]."&g_sid=".$_GET["g_sid"]."&mapext=".$_GET["mapext"]); | 357 | header("Location:".$saikuUrl."/?nomeConexao=".$nomeConexao."&locaplic=".$_GET["locaplic"]."&g_sid=".$_GET["g_sid"]."&mapext=".$_GET["mapext"]); |
348 | 358 | ||
349 | function converte($texto){ | 359 | function converte($texto){ |