Commit bb13277c13e7aadd46ba4e880d7d75a2abf73302
1 parent
ea5d9965
Exists in
master
and in
7 other branches
Inclusão do link para o curso de i3Geo na página inicial
Ajustes na geração do xml esquema para SAIKU
Showing
3 changed files
with
588 additions
and
518 deletions
Show diff stats
ferramentas/saiku/esquemaxml.php
| 1 | 1 | <?php |
| 2 | -//utilize output=xml para debug | |
| 2 | +// | |
| 3 | +//utilize &output=xml para ver o xml | |
| 4 | +// | |
| 5 | +//utilize &xmlesquema= caso o XML ja exista | |
| 6 | +// | |
| 7 | +//http://localhost/i3geo/ferramentas/saiku/esquemaxml.php?output=&xmlesquema=http://localhost/testemondrian.xml | |
| 8 | +// | |
| 3 | 9 | //quando o saiku e iniciado de fora do i3geo, e necessario inicializar um mapfile para uso como base dos mapas |
| 4 | 10 | if(empty($_GET["g_sid"])){ |
| 5 | 11 | include(dirname(__FILE__)."/../../ms_criamapa.php"); |
| 6 | 12 | //reinicia a url |
| 7 | - $urln = "?g_sid=".session_id()."&locaplic=".$_GET["locaplic"]."&mapext=".$mapext."&origem=".$_GET["origem"]."&output=".$_GET["output"]; | |
| 13 | + $urln = "?g_sid=".session_id()."&locaplic=".$_GET["locaplic"]."&mapext=".$mapext."&origem=".$_GET["origem"]."&output=".$_GET["output"]."&xmlesquema=".$_GET["xmlesquema"]; | |
| 8 | 14 | header("Location:".$urln); |
| 9 | 15 | exit; |
| 10 | 16 | } |
| ... | ... | @@ -22,11 +28,16 @@ session_name("i3GeoPHP"); |
| 22 | 28 | session_id($_GET["g_sid"]); |
| 23 | 29 | session_start(); |
| 24 | 30 | $map_file = $_SESSION["map_file"]; |
| 25 | -$urlXmlEsquema = $_SESSION["tmpurl"].basename(dirname($map_file))."/".$nomeConexao.".xml"; | |
| 31 | +if(empty($_GET["xmlesquema"])){ | |
| 32 | + $urlXmlEsquema = $_SESSION["tmpurl"].basename(dirname($map_file))."/".$nomeConexao.".xml"; | |
| 33 | +} | |
| 34 | +else{ | |
| 35 | + $urlXmlEsquema = $_GET["xmlesquema"]; | |
| 36 | +} | |
| 26 | 37 | $arquivoXmlEsquema = dirname($map_file)."/".$nomeConexao.".xml"; |
| 27 | 38 | |
| 28 | 39 | /* |
| 29 | -$saikuConfigDataSource vem do ms_configura.php | |
| 40 | + $saikuConfigDataSource vem do ms_configura.php | |
| 30 | 41 | |
| 31 | 42 | Exemplo de arquivo de fonte: |
| 32 | 43 | type=OLAP |
| ... | ... | @@ -39,15 +50,15 @@ password=postgres |
| 39 | 50 | Array com os parametros definidos em ms_configura: |
| 40 | 51 | |
| 41 | 52 | $saikuConfigDataSource = array( |
| 42 | - "type"=>"OLAP", | |
| 43 | - "driver"=>"mondrian.olap4j.MondrianOlap4jDriver", | |
| 44 | - "location"=>"jdbc:mondrian:Jdbc=jdbc:postgresql", | |
| 45 | - "serverdb"=>"localhost", | |
| 46 | - "port"=>"5432", | |
| 47 | - "database"=>"i3geosaude", | |
| 48 | - "JdbcDrivers"=>"org.postgresql.Driver", | |
| 49 | - "username"=>"postgres", | |
| 50 | - "password"=>"postgres" | |
| 53 | + "type"=>"OLAP", | |
| 54 | + "driver"=>"mondrian.olap4j.MondrianOlap4jDriver", | |
| 55 | + "location"=>"jdbc:mondrian:Jdbc=jdbc:postgresql", | |
| 56 | + "serverdb"=>"localhost", | |
| 57 | + "port"=>"5432", | |
| 58 | + "database"=>"i3geosaude", | |
| 59 | + "JdbcDrivers"=>"org.postgresql.Driver", | |
| 60 | + "username"=>"postgres", | |
| 61 | + "password"=>"postgres" | |
| 51 | 62 | ); |
| 52 | 63 | */ |
| 53 | 64 | $stringDatasource = " |
| ... | ... | @@ -60,395 +71,415 @@ password={$saikuConfigDataSource["password"]} |
| 60 | 71 | "; |
| 61 | 72 | //salva o arquivo com a fonte |
| 62 | 73 | gravaDados(array($stringDatasource),$nomeDatasource); |
| 63 | -$m = new Metaestat(); | |
| 64 | -$selecaoRegiao = array(); | |
| 65 | -//obtem do mapfile em uso os layers que sao do sistema metaestat, sao regioes e que possuem selecao | |
| 66 | -$codigo_tipo_regiao = ""; | |
| 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]); | |
| 74 | + | |
| 75 | +if(empty($_GET["xmlesquema"])){ | |
| 76 | + $m = new Metaestat(); | |
| 77 | + | |
| 78 | + // | |
| 79 | + //obtem do mapfile em uso os layers que sao do sistema metaestat, sao regioes e que possuem selecao | |
| 80 | + // | |
| 81 | + $selecaoRegiao = array(); | |
| 82 | + $codigo_tipo_regiao = ""; | |
| 83 | + if($map_file != ""){ | |
| 84 | + $mapa = ms_newMapObj($map_file); | |
| 85 | + $c = $mapa->numlayers; | |
| 86 | + for ($i=0;$i < $c;++$i){ | |
| 87 | + $l = $mapa->getlayer($i); | |
| 88 | + //verifica o alias na conexao | |
| 89 | + if (!empty($postgis_mapa)){ | |
| 90 | + if ($l->connectiontype == MS_POSTGIS){ | |
| 91 | + $lcon = $l->connection; | |
| 92 | + if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ | |
| 93 | + if(($lcon == " ") || ($lcon == "")) //para efeitos de compatibilidade | |
| 94 | + {$l->set("connection",$postgis_mapa); | |
| 95 | + } | |
| 96 | + else{ | |
| 97 | + $l->set("connection",$postgis_mapa[$lcon]); | |
| 98 | + } | |
| 81 | 99 | } |
| 82 | 100 | } |
| 83 | 101 | } |
| 84 | - } | |
| 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]; | |
| 102 | + // | |
| 103 | + $registros = array(); | |
| 104 | + if($l->status == MS_DEFAULT && $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO") != ""){ | |
| 105 | + //verifica se tem selecao | |
| 106 | + $qyfile = dirname($map_file)."/".$l->name.".php"; | |
| 107 | + if(file_exists($qyfile)){ | |
| 108 | + $codigo_tipo_regiao = $l->getmetadata("METAESTAT_CODIGO_TIPO_REGIAO"); | |
| 109 | + //pega os registros | |
| 110 | + $shapes = retornaShapesSelecionados($l,$map_file,$mapa); | |
| 111 | + //pega o nome da coluna que identifica cada registro | |
| 112 | + $regiao = $m->listaTipoRegiao($codigo_tipo_regiao); | |
| 113 | + $item = $regiao["identificador"]; | |
| 114 | + foreach($shapes as $shape){ | |
| 115 | + $registros[] = $shape->values[$item]; | |
| 116 | + } | |
| 117 | + $reg = $item." IN ('".implode("','",$registros)."') "; | |
| 118 | + $selecaoRegiao[$codigo_tipo_regiao] = array( | |
| 119 | + "item" => $item, | |
| 120 | + "sql" => $reg | |
| 121 | + ); | |
| 122 | + break; //mantem a primeira ocorrencia de regiao que possui selecao | |
| 123 | + } | |
| 124 | + else{ | |
| 125 | + $selecaoRegiao[$codigo_tipo_regiao] = ""; | |
| 99 | 126 | } |
| 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] = ""; | |
| 109 | 127 | } |
| 110 | 128 | } |
| 111 | 129 | } |
| 112 | -} | |
| 113 | -if($codigo_tipo_regiao == ""){ | |
| 114 | - $regioes = $m->listaTipoRegiao(); | |
| 115 | -} | |
| 116 | -else{ | |
| 117 | - $regioes = array($m->listaTipoRegiao($codigo_tipo_regiao)); | |
| 118 | -} | |
| 119 | -//echo "<pre>";var_dump($regioes);exit; | |
| 120 | -$regiao = ""; | |
| 121 | -$item = ""; | |
| 122 | -$registros = ""; | |
| 123 | -//echo "<pre>";var_dump($regioes);exit; | |
| 124 | - | |
| 125 | -$xml = "<Schema name='i3Geo Metaestat'>"; | |
| 126 | -//cria as dimensoes de tipo temporal | |
| 127 | -if(empty($saikuConfigDataSource['tabelaDimensaoTempo'])){ | |
| 128 | - $saikuConfigDataSource['tabelaDimensaoTempo'] = "i3geo_metaestat.dim_tempo"; | |
| 129 | -} | |
| 130 | -$sqlAno = "select nu_ano from ".$saikuConfigDataSource['tabelaDimensaoTempo']." group by nu_ano order by nu_ano"; | |
| 131 | -$sqlMes = "select nu_ano::text,nu_mes::text,ds_mes_abreviado as mes,COALESCE (nu_ano::text||'-'||nu_mes::text,nu_ano::text) as nu_anomes from ".$saikuConfigDataSource['tabelaDimensaoTempo']." group by nu_ano,nu_mes,mes,nu_anomes order by nu_ano,nu_mes"; | |
| 132 | -//dimensoes temporais | |
| 133 | -$xml .= " | |
| 130 | + if($codigo_tipo_regiao == ""){ | |
| 131 | + $regioes = $m->listaTipoRegiao(); | |
| 132 | + } | |
| 133 | + else{ | |
| 134 | + $regioes = array($m->listaTipoRegiao($codigo_tipo_regiao)); | |
| 135 | + } | |
| 136 | + //echo "<pre>";var_dump($regioes);exit; | |
| 137 | + $regiao = ""; | |
| 138 | + $item = ""; | |
| 139 | + $registros = ""; | |
| 140 | + //echo "<pre>";var_dump($regioes);exit; | |
| 141 | + | |
| 142 | + $xml = "<Schema name='i3Geo Metaestat'>"; | |
| 143 | + //cria as dimensoes de tipo temporal | |
| 144 | + if(empty($saikuConfigDataSource['tabelaDimensaoTempo'])){ | |
| 145 | + $saikuConfigDataSource['tabelaDimensaoTempo'] = "i3geo_metaestat.dim_tempo"; | |
| 146 | + } | |
| 147 | + $sqlAno = "select nu_ano from ".$saikuConfigDataSource['tabelaDimensaoTempo']." group by nu_ano order by nu_ano"; | |
| 148 | + $sqlMes = "select nu_ano::text,nu_mes::text,ds_mes_abreviado as mes,COALESCE (nu_ano::text||'-'||nu_mes::text,nu_ano::text) as nu_anomes from ".$saikuConfigDataSource['tabelaDimensaoTempo']." group by nu_ano,nu_mes,mes,nu_anomes order by nu_ano,nu_mes"; | |
| 149 | + //dimensoes temporais | |
| 150 | + $xml .= " | |
| 134 | 151 | <Dimension name='Anual' type='TimeDimension' caption='Tempo: Anual'> |
| 135 | - <Hierarchy hasAll='true' primaryKey='nu_ano'> | |
| 136 | - <view alias='tempo_ano' ><SQL dialect='generic' >$sqlAno</SQL></view> | |
| 137 | - <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true' levelType='TimeYears'/> | |
| 138 | - </Hierarchy> | |
| 152 | + <Hierarchy hasAll='true' primaryKey='nu_ano'> | |
| 153 | + <view alias='tempo_ano' ><SQL dialect='generic' >$sqlAno</SQL></view> | |
| 154 | + <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true' levelType='TimeYears'/> | |
| 155 | + </Hierarchy> | |
| 139 | 156 | </Dimension> |
| 140 | 157 | <Dimension name='Mensal' type='TimeDimension' caption='Tempo: Mensal'> |
| 141 | - <Hierarchy hasAll='true' primaryKey='nu_anomes'> | |
| 142 | - <view alias='tempo_ano' ><SQL dialect='generic' >$sqlMes</SQL></view> | |
| 143 | - <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true' levelType='TimeYears'/> | |
| 144 | - <Level nameColumn='mes' name='Mes' column='nu_mes' type='Numeric' uniqueMembers='false' levelType='TimeMonths'/> | |
| 145 | - </Hierarchy> | |
| 158 | + <Hierarchy hasAll='true' primaryKey='nu_anomes'> | |
| 159 | + <view alias='tempo_ano' ><SQL dialect='generic' >$sqlMes</SQL></view> | |
| 160 | + <Level name='Ano' column='nu_ano' type='Numeric' uniqueMembers='true' levelType='TimeYears'/> | |
| 161 | + <Level nameColumn='mes' name='Mes' column='nu_mes' type='Numeric' uniqueMembers='false' levelType='TimeMonths'/> | |
| 162 | + </Hierarchy> | |
| 146 | 163 | </Dimension> |
| 147 | 164 | <Dimension name='Tempo' type='TimeDimension' caption='Tempo'> |
| 148 | - <Hierarchy hasAll='true' primaryKey='nu_anomes'> | |
| 149 | - <view alias='tempo' ><SQL dialect='generic' >$sqlMes</SQL></view> | |
| 150 | - <Level name='Ano' column='nu_ano' type='String' uniqueMembers='true' levelType='TimeYears'/> | |
| 151 | - <Level nameColumn='mes' name='Mes' column='nu_mes' type='String' uniqueMembers='false' levelType='TimeMonths'/> | |
| 152 | - </Hierarchy> | |
| 165 | + <Hierarchy hasAll='true' primaryKey='nu_anomes'> | |
| 166 | + <view alias='tempo' ><SQL dialect='generic' >$sqlMes</SQL></view> | |
| 167 | + <Level name='Ano' column='nu_ano' type='String' uniqueMembers='true' levelType='TimeYears'/> | |
| 168 | + <Level nameColumn='mes' name='Mes' column='nu_mes' type='String' uniqueMembers='false' levelType='TimeMonths'/> | |
| 169 | + </Hierarchy> | |
| 153 | 170 | </Dimension> |
| 154 | -"; | |
| 155 | -//dimensoes geograficas | |
| 156 | -//as dimensoes sao duplicadas | |
| 157 | -//uma delas contem o geocodigo que permite a geracao do mapa | |
| 158 | - | |
| 159 | -//guarda as regioes filhas de uma determinada regiao (chave) | |
| 160 | -$filhosDaRegiao = array(); | |
| 161 | -$VirtualCubeDimensionDaRegiao = array(); | |
| 162 | -$VirtualCubeMeasureDaRegiao = array(); | |
| 163 | -foreach($regioes as $regiao){ | |
| 164 | - $filhosDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
| 165 | - $VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
| 166 | - $VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
| 167 | -} | |
| 168 | -$xml1 = ""; | |
| 169 | -$xml2 = ""; | |
| 170 | -foreach($regioes as $regiao){ | |
| 171 | - $caminho = $m->hierarquiaPath($regiao["codigo_tipo_regiao"]); | |
| 172 | - $xml1 .= " | |
| 173 | - <Dimension name='codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' caption='Onde:".converte($regiao["nome_tipo_regiao"])."'> | |
| 174 | - <Hierarchy hasAll='true' primaryKey='codigo'> | |
| 175 | 171 | "; |
| 176 | - $xml2 .= " | |
| 172 | + //dimensoes geograficas | |
| 173 | + //as dimensoes sao duplicadas | |
| 174 | + //uma delas contem o geocodigo que permite a geracao do mapa | |
| 175 | + | |
| 176 | + //guarda as regioes filhas de uma determinada regiao (chave) | |
| 177 | + $filhosDaRegiao = array(); | |
| 178 | + $VirtualCubeDimensionDaRegiao = array(); | |
| 179 | + $VirtualCubeMeasureDaRegiao = array(); | |
| 180 | + foreach($regioes as $regiao){ | |
| 181 | + $filhosDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
| 182 | + $VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
| 183 | + $VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]] = array(); | |
| 184 | + } | |
| 185 | + $xml1 = ""; | |
| 186 | + $xml2 = ""; | |
| 187 | + foreach($regioes as $regiao){ | |
| 188 | + $caminho = $m->hierarquiaPath($regiao["codigo_tipo_regiao"]); | |
| 189 | + $xml1 .= " | |
| 190 | + <Dimension name='codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' caption='Onde:".converte($regiao["nome_tipo_regiao"])."'> | |
| 191 | + <Hierarchy hasAll='true' primaryKey='{$regiao['identificador']}'> | |
| 192 | + "; | |
| 193 | + $xml2 .= " | |
| 177 | 194 | <Dimension name='codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."_geocod' caption='GeoCod:".converte($regiao["nome_tipo_regiao"])."'> |
| 178 | - <Hierarchy hasAll='true' primaryKey='codigo'> | |
| 179 | - "; | |
| 180 | - //cria uma view juntando as tabelas da hierarquia de regioes | |
| 181 | - $n = count($caminho); | |
| 182 | - $colunas = array(); | |
| 183 | - $niveis1 = array(); | |
| 184 | - $niveis2 = array(); | |
| 185 | - $sql = "SELECT __COLUNAS__ FROM {$regiao['esquemadb']}.{$regiao['tabela']} AS regiao "; | |
| 186 | - $colunas[] = "regiao.{$regiao['identificador']} AS codigo "; | |
| 187 | - $colunas[] = "regiao.{$regiao['colunanomeregiao']} AS nome"; | |
| 188 | - //$colunas[] = "regiao".$regiao['identificador']; | |
| 189 | - $tabelaAnt = "regiao"; | |
| 190 | - | |
| 191 | - for($i=0;$i<$n;$i++){ | |
| 192 | - $r = $m->listaTipoRegiao($caminho[$i]); | |
| 193 | - | |
| 194 | - array_push($filhosDaRegiao[$caminho[$i]],$regiao["codigo_tipo_regiao"]); | |
| 195 | - | |
| 196 | - $colunas[] = "j$i.{$r['colunanomeregiao']} AS j$i{$r['colunanomeregiao']}"; | |
| 197 | - $colunas[] = "j$i.{$r['identificador']} AS j$i{$r['identificador']}"; | |
| 198 | - $sql .= "INNER JOIN {$r['esquemadb']}.{$r['tabela']} | |
| 199 | - AS j$i ON j$i.{$r['identificador']}::text = {$tabelaAnt}.{$r['identificador']}::text | |
| 195 | + <Hierarchy hasAll='true' primaryKey='{$regiao['identificador']}'> | |
| 200 | 196 | "; |
| 201 | - $tabelaAnt = "j".$i; | |
| 202 | - $niveis1[] = " | |
| 197 | + //cria uma view juntando as tabelas da hierarquia de regioes | |
| 198 | + $n = count($caminho); | |
| 199 | + $colunas = array(); | |
| 200 | + $niveis1 = array(); | |
| 201 | + $niveis2 = array(); | |
| 202 | + $sql = "SELECT __COLUNAS__ FROM {$regiao['esquemadb']}.{$regiao['tabela']} AS regiao "; | |
| 203 | + $colunas[] = "regiao.{$regiao['identificador']} as codigo "; | |
| 204 | + $colunas[] = "regiao.{$regiao['colunanomeregiao']} AS nome"; | |
| 205 | + //$colunas[] = "regiao".$regiao['identificador']; | |
| 206 | + $tabelaAnt = "regiao"; | |
| 207 | + | |
| 208 | + for($i=0;$i<$n;$i++){ | |
| 209 | + $r = $m->listaTipoRegiao($caminho[$i]); | |
| 210 | + | |
| 211 | + array_push($filhosDaRegiao[$caminho[$i]],$regiao["codigo_tipo_regiao"]); | |
| 212 | + | |
| 213 | + $colunas[] = "j$i.{$r['colunanomeregiao']} AS j$i{$r['colunanomeregiao']}"; | |
| 214 | + $colunas[] = "j$i.{$r['identificador']} AS j$i{$r['identificador']}"; | |
| 215 | + $sql .= "INNER JOIN {$r['esquemadb']}.{$r['tabela']} | |
| 216 | + AS j$i ON j$i.{$r['identificador']}::text = {$tabelaAnt}.{$r['identificador']}::text | |
| 217 | + "; | |
| 218 | + $tabelaAnt = "j".$i; | |
| 219 | + $niveis1[] = " | |
| 203 | 220 | <Level name='".converte($r["nome_tipo_regiao"])."' |
| 204 | - column='{$r['identificador']}' | |
| 205 | - nameColumn='j$i{$r["colunanomeregiao"]}' uniqueMembers='false'/> | |
| 206 | - "; | |
| 207 | - $niveis2[] = " | |
| 221 | + column='j$i{$r['identificador']}' | |
| 222 | + nameColumn='j$i{$r["colunanomeregiao"]}' uniqueMembers='false'/> | |
| 223 | + "; | |
| 224 | + $niveis2[] = " | |
| 208 | 225 | <Level name='".converte($r["nome_tipo_regiao"])." - GeoCod #{$caminho[$i]}' |
| 209 | - column='{$r['identificador']}' | |
| 210 | - nameColumn='j$i{$r["identificador"]}' uniqueMembers='false'/> | |
| 211 | - "; | |
| 212 | - } | |
| 213 | - $niveis1[] = " | |
| 226 | + column='j$i{$r['identificador']}' | |
| 227 | + nameColumn='j$i{$r["identificador"]}' uniqueMembers='false'/> | |
| 228 | + "; | |
| 229 | + } | |
| 230 | + $niveis1[] = " | |
| 214 | 231 | <Level name='".converte($regiao["nome_tipo_regiao"])."' |
| 215 | - column='codigo' | |
| 216 | - nameColumn='nome' uniqueMembers='true' > | |
| 232 | + column='codigo' | |
| 233 | + nameColumn='nome' uniqueMembers='true' > | |
| 217 | 234 | </Level> |
| 218 | - "; | |
| 219 | - $niveis2[] = " | |
| 235 | + "; | |
| 236 | + $niveis2[] = " | |
| 220 | 237 | <Level name='".converte($regiao["nome_tipo_regiao"])." - GeoCod #{$regiao["codigo_tipo_regiao"]}' |
| 221 | - column='codigo' | |
| 222 | - nameColumn='codigo' uniqueMembers='true' /> | |
| 223 | - "; | |
| 224 | - //verifica outras colunas | |
| 225 | - $vis = $regiao['colunasvisiveis']; | |
| 226 | - if($vis != ""){ | |
| 227 | - $vis = str_replace(";",",",$vis); | |
| 228 | - $vis = str_replace(",,",",",$vis); | |
| 229 | - $vis = explode(",",$vis); | |
| 230 | - foreach($vis as $v){ | |
| 231 | - $colunas[] = "regiao.".$v." as ".$v; | |
| 238 | + column='codigo' | |
| 239 | + nameColumn='codigo' uniqueMembers='true' /> | |
| 240 | + "; | |
| 241 | + //verifica outras colunas | |
| 242 | + $vis = $regiao['colunasvisiveis']; | |
| 243 | + if($vis != ""){ | |
| 244 | + $vis = str_replace(";",",",$vis); | |
| 245 | + $vis = str_replace(",,",",",$vis); | |
| 246 | + $vis = explode(",",$vis); | |
| 247 | + foreach($vis as $v){ | |
| 248 | + $colunas[] = "regiao.".$v." as ".$v; | |
| 249 | + } | |
| 250 | + $colunas = array_unique($colunas); | |
| 232 | 251 | } |
| 233 | - $colunas = array_unique($colunas); | |
| 234 | - } | |
| 235 | - $colunas = implode($colunas,","); | |
| 236 | - $sql = str_replace("__COLUNAS__",$colunas,$sql); | |
| 237 | - //inclui a selecao se houver | |
| 238 | - if(!empty($selecaoRegiao[$regiao["codigo_tipo_regiao"]])) | |
| 239 | - $rs = $selecaoRegiao[$regiao["codigo_tipo_regiao"]]; | |
| 240 | - $pos = strpos($sql, "regiao.".$rs["item"]." "); | |
| 241 | - if($rs != "" || !$pos === false){ | |
| 242 | - $sql .= " WHERE regiao.".$rs["sql"]; | |
| 243 | - } | |
| 244 | - | |
| 245 | - $xml1 .= " | |
| 246 | - <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' ><SQL dialect='generic' >$sql</SQL></view> | |
| 247 | - "; | |
| 248 | - $xml2 .= " | |
| 249 | - <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."_GeoCod' ><SQL dialect='generic' >$sql</SQL></view> | |
| 250 | - "; | |
| 251 | - $xml1 .= implode(" ",$niveis1); | |
| 252 | - $xml2 .= implode(" ",$niveis2); | |
| 253 | - $xml1 .= " | |
| 254 | - </Hierarchy> | |
| 252 | + $colunas = implode($colunas,","); | |
| 253 | + $sql = str_replace("__COLUNAS__",$colunas,$sql); | |
| 254 | + //inclui a selecao se houver | |
| 255 | + if(!empty($selecaoRegiao[$regiao["codigo_tipo_regiao"]])) | |
| 256 | + $rs = $selecaoRegiao[$regiao["codigo_tipo_regiao"]]; | |
| 257 | + $pos = strpos($sql, "regiao.".$rs["item"]." "); | |
| 258 | + if($rs != "" || !$pos === false){ | |
| 259 | + $sql .= " WHERE regiao.".$rs["sql"]; | |
| 260 | + } | |
| 261 | + | |
| 262 | + $xml1 .= " | |
| 263 | + <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."' ><SQL dialect='generic' >$sql</SQL></view> | |
| 264 | + "; | |
| 265 | + $xml2 .= " | |
| 266 | + <view alias='view_codigo_tipo_regiao_".$regiao["codigo_tipo_regiao"]."_GeoCod' ><SQL dialect='generic' >$sql</SQL></view> | |
| 267 | + "; | |
| 268 | + $xml1 .= implode(" ",$niveis1); | |
| 269 | + $xml2 .= implode(" ",$niveis2); | |
| 270 | + $xml1 .= " | |
| 271 | + </Hierarchy> | |
| 255 | 272 | </Dimension> |
| 256 | - "; | |
| 257 | - $xml2 .= " | |
| 258 | - </Hierarchy> | |
| 273 | + "; | |
| 274 | + $xml2 .= " | |
| 275 | + </Hierarchy> | |
| 259 | 276 | </Dimension> |
| 260 | - "; | |
| 261 | -} | |
| 262 | -//echo "<pre>";var_dump($filhosDaRegiao);exit; | |
| 263 | -//outras dimensoes definidas nos parametros e que nao sejam do tipo tempo | |
| 264 | -$parametros = $m->listaTodosParametros(); | |
| 265 | -$dimOutras = array(); | |
| 266 | -foreach($parametros as $p){ | |
| 267 | - //apenas as nao tempo | |
| 268 | - if($p["tipo"] < 1 || $p["tipo"] > 5){ | |
| 269 | - $k = $p["esquema"]."_".$p["tabela"]."_".$p["coluna"]; | |
| 270 | - if(empty($tbs[$k])){ | |
| 271 | - $dimOutras[$k] = $p; | |
| 272 | - } | |
| 273 | - else{ | |
| 274 | - array_push($dimOutras[$k],$p); | |
| 277 | + "; | |
| 278 | + } | |
| 279 | + //echo "<pre>";var_dump($filhosDaRegiao);exit; | |
| 280 | + //outras dimensoes definidas nos parametros e que nao sejam do tipo tempo | |
| 281 | + $parametros = $m->listaTodosParametros(); | |
| 282 | + $dimOutras = array(); | |
| 283 | + foreach($parametros as $p){ | |
| 284 | + //apenas as nao tempo | |
| 285 | + if($p["tipo"] < 1 || $p["tipo"] > 5){ | |
| 286 | + $k = $p["esquema"]."_".$p["tabela"]."_".$p["coluna"]; | |
| 287 | + if(empty($tbs[$k])){ | |
| 288 | + $dimOutras[$k] = $p; | |
| 289 | + } | |
| 290 | + else{ | |
| 291 | + array_push($dimOutras[$k],$p); | |
| 292 | + } | |
| 275 | 293 | } |
| 276 | 294 | } |
| 277 | -} | |
| 278 | -$xml3 = ""; | |
| 279 | -foreach($dimOutras as $d){ | |
| 280 | - $k = $p["esquemadb"]."_".$d["tabela"]."_".$d["coluna"]; | |
| 281 | - $xml3 .= " | |
| 295 | + $xml3 = ""; | |
| 296 | + foreach($dimOutras as $d){ | |
| 297 | + $k = $p["esquemadb"]."_".$d["tabela"]."_".$d["coluna"]; | |
| 298 | + $xml3 .= " | |
| 282 | 299 | <Dimension name='".$k."' caption='".converte($d["nome"])."'> |
| 283 | - <Hierarchy hasAll='true' primaryKey='codigo'> | |
| 284 | - "; | |
| 285 | - //cria uma view juntando as tabelas da hierarquia de regioes | |
| 286 | - $colunas = "dim.{$d['coluna']} as codigo, "; | |
| 287 | - $colunas .= "dim.{$d['coluna']} AS nome"; | |
| 288 | - $sql = "SELECT {$colunas} FROM ".$d['esquemadb'].".".$d['tabela']." as dim group by codigo"; | |
| 289 | - $xml3 .= "<view alias='".$k."' ><SQL dialect='generic' >$sql</SQL></view>"; | |
| 290 | - $xml3 .= "<Level name='".converte($d["nome"])."' | |
| 291 | - column='codigo' | |
| 292 | - nameColumn='nome' uniqueMembers='true' /> | |
| 293 | - "; | |
| 294 | - $xml3 .= "</Hierarchy> | |
| 300 | + <Hierarchy hasAll='true' primaryKey='codigo'> | |
| 301 | + "; | |
| 302 | + //cria uma view juntando as tabelas da hierarquia de regioes | |
| 303 | + $colunas = "dim.{$d['coluna']} as codigo, "; | |
| 304 | + $colunas .= "dim.{$d['coluna']} AS nome"; | |
| 305 | + $sql = "SELECT {$colunas} FROM ".$d['esquemadb'].".".$d['tabela']." as dim group by codigo"; | |
| 306 | + $xml3 .= "<view alias='".$k."' ><SQL dialect='generic' >$sql</SQL></view>"; | |
| 307 | + $xml3 .= "<Level name='".converte($d["nome"])."' | |
| 308 | + column='codigo' | |
| 309 | + nameColumn='nome' uniqueMembers='true' /> | |
| 310 | + "; | |
| 311 | + $xml3 .= "</Hierarchy> | |
| 295 | 312 | </Dimension>"; |
| 296 | -} | |
| 297 | -$xml .= $xml1.$xml2.$xml3; | |
| 298 | -//junta as medidas conforme o nome da tabela utilizada | |
| 299 | -$medidas = $m->listaMedidaVariavel(); | |
| 300 | -//var_dump($medidas);exit; | |
| 301 | -$tbs = array(); | |
| 302 | -//echo $codigo_tipo_regiao;exit; | |
| 303 | -foreach($medidas as $medida){ | |
| 304 | - if($codigo_tipo_regiao == "" || $medida["codigo_tipo_regiao"] == $codigo_tipo_regiao){ | |
| 305 | - $k = $medida["esquemadb"].$medida["tabela"]; | |
| 306 | - //echo "<pre>".$k; | |
| 307 | - if(empty($tbs[$k])){ | |
| 308 | - $tbs[$k] = array($medida); | |
| 309 | - } | |
| 310 | - else{ | |
| 311 | - array_push($tbs[$k],$medida); | |
| 313 | + } | |
| 314 | + $xml .= $xml1.$xml2.$xml3; | |
| 315 | + //junta as medidas conforme o nome da tabela utilizada | |
| 316 | + $medidas = $m->listaMedidaVariavel(); | |
| 317 | + //var_dump($medidas);exit; | |
| 318 | + $tbs = array(); | |
| 319 | + //echo $codigo_tipo_regiao;exit; | |
| 320 | + foreach($medidas as $medida){ | |
| 321 | + if($codigo_tipo_regiao == "" || $medida["codigo_tipo_regiao"] == $codigo_tipo_regiao){ | |
| 322 | + $k = $medida["esquemadb"].$medida["tabela"]; | |
| 323 | + //echo "<pre>".$k; | |
| 324 | + if(empty($tbs[$k])){ | |
| 325 | + $tbs[$k] = array($medida); | |
| 326 | + } | |
| 327 | + else{ | |
| 328 | + array_push($tbs[$k],$medida); | |
| 329 | + } | |
| 312 | 330 | } |
| 313 | 331 | } |
| 314 | -} | |
| 315 | -//monta os cubos para cada esquema.tabela diferente | |
| 316 | -$VirtualCubeDimension = array(); | |
| 317 | -$VirtualCubeMeasure = array(); | |
| 318 | -//echo "<pre>";var_dump($tbs)."<br>";exit; | |
| 319 | -foreach($tbs as $tb){ | |
| 320 | - //cabecalho de cada cubo obtido da primeira medida | |
| 321 | - $c = $tb[0]; | |
| 322 | - $VirtualCubeDimension[] = " | |
| 332 | + //monta os cubos para cada esquema.tabela diferente | |
| 333 | + $VirtualCubeDimension = array(); | |
| 334 | + $VirtualCubeMeasure = array(); | |
| 335 | + //echo "<pre>";var_dump($tbs)."<br>";exit; | |
| 336 | + foreach($tbs as $tb){ | |
| 337 | + //cabecalho de cada cubo obtido da primeira medida | |
| 338 | + $c = $tb[0]; | |
| 339 | + $VirtualCubeDimension[] = " | |
| 323 | 340 | <VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}' /> |
| 324 | - "; | |
| 325 | - $VirtualCubeDimension[] = " | |
| 341 | + "; | |
| 342 | + $VirtualCubeDimension[] = " | |
| 326 | 343 | <VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}_geocod' /> |
| 327 | - "; | |
| 328 | - array_push( | |
| 329 | - $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], | |
| 330 | - "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}' />" | |
| 331 | - ); | |
| 332 | - array_push( | |
| 333 | - $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], | |
| 334 | - "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}_geocod' />" | |
| 335 | - ); | |
| 336 | - //verifica as dimensoes do tipo tempo | |
| 337 | - $dimEnsoes = array(); | |
| 338 | - //echo "<pre>";var_dump($tb)."<br>"; | |
| 339 | - foreach($tb as $medida){ | |
| 340 | - //echo "<pre>";var_dump($medida)."<br>"; | |
| 341 | - $parametros = $m->listaParametro($medida["id_medida_variavel"],"","",false,false); | |
| 342 | - $parComposto = array(); //guarda a composicao da chave que liga com a dimensao | |
| 343 | - $colunaAdicionais = array(); | |
| 344 | - //parametro do tipo tempo | |
| 345 | - if(count($parametros) > 0){ | |
| 346 | - foreach($parametros as $parametro){ | |
| 347 | - if($parametro["tipo"] < 5 && $parametro["tipo"] > 0){ | |
| 348 | - $parComposto[] = $parametro["coluna"]; | |
| 344 | + "; | |
| 345 | + array_push( | |
| 346 | + $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], | |
| 347 | + "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}' />" | |
| 348 | + ); | |
| 349 | + array_push( | |
| 350 | + $VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]], | |
| 351 | + "<VirtualCubeDimension name='codigo_tipo_regiao_{$c["codigo_tipo_regiao"]}_geocod' />" | |
| 352 | + ); | |
| 353 | + //verifica as dimensoes do tipo tempo | |
| 354 | + $dimEnsoes = array(); | |
| 355 | + //echo "<pre>";var_dump($tb)."<br>"; | |
| 356 | + foreach($tb as $medida){ | |
| 357 | + //echo "<pre>";var_dump($medida)."<br>"; | |
| 358 | + $parametros = $m->listaParametro($medida["id_medida_variavel"],"","",false,false); | |
| 359 | + $parComposto = array(); //guarda a composicao da chave que liga com a dimensao | |
| 360 | + $colunaAdicionais = array(); | |
| 361 | + //parametro do tipo tempo | |
| 362 | + if(count($parametros) > 0){ | |
| 363 | + foreach($parametros as $parametro){ | |
| 364 | + if($parametro["tipo"] < 5 && $parametro["tipo"] > 0){ | |
| 365 | + $parComposto[] = $parametro["coluna"]; | |
| 366 | + } | |
| 349 | 367 | } |
| 350 | - } | |
| 351 | - $VirtualCubeDimension[] = " | |
| 368 | + $VirtualCubeDimension[] = " | |
| 352 | 369 | <VirtualCubeDimension name='Tempo' /> |
| 353 | - "; | |
| 354 | - $u = " | |
| 370 | + "; | |
| 371 | + $u = " | |
| 355 | 372 | <DimensionUsage foreignKey='".implode("_",$parComposto)."_' name='Tempo' source='Tempo'/> |
| 356 | - "; | |
| 357 | - $dimEnsoes[] = $u; | |
| 358 | - array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],"<VirtualCubeDimension name='Tempo' />"); | |
| 359 | - } | |
| 360 | - //outros parametros | |
| 361 | - $outrosParametros = array(); | |
| 362 | - //TODO criar as dimensoes aqui | |
| 363 | - //echo "<pre>";var_dump($parametros); | |
| 364 | - foreach($parametros as $parametro){ | |
| 365 | - $k = $parametro["esquemadb"]."_".$parametro["tabela"]."_".$parametro["coluna"]; | |
| 366 | - if($parametro["tipo"] > 5 || $parametro["tipo"] == 0){ | |
| 367 | - $outrosParametros[] = $k; | |
| 368 | - $VirtualCubeDimension[] = "<VirtualCubeDimension name='{$k}' />"; | |
| 369 | - $u = "<DimensionUsage foreignKey='{$parametro["coluna"]}' name='nome' source='{$k}'/>"; | |
| 373 | + "; | |
| 370 | 374 | $dimEnsoes[] = $u; |
| 371 | - array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],"<VirtualCubeDimension name='{$k}' />"); | |
| 375 | + array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],"<VirtualCubeDimension name='Tempo' />"); | |
| 376 | + } | |
| 377 | + //outros parametros | |
| 378 | + $outrosParametros = array(); | |
| 379 | + //echo "<pre>";var_dump($parametros); | |
| 380 | + foreach($parametros as $parametro){ | |
| 381 | + $k = $parametro["esquemadb"]."_".$parametro["tabela"]."_".$parametro["coluna"]; | |
| 382 | + if($parametro["tipo"] > 5 || $parametro["tipo"] == 0){ | |
| 383 | + $outrosParametros[] = $k; | |
| 384 | + $VirtualCubeDimension[] = "<VirtualCubeDimension name='{$k}' />"; | |
| 385 | + $u = "<DimensionUsage foreignKey='{$parametro["coluna"]}' name='nome' source='{$k}'/>"; | |
| 386 | + $dimEnsoes[] = $u; | |
| 387 | + array_push($VirtualCubeDimensionDaRegiao[$c["codigo_tipo_regiao"]],"<VirtualCubeDimension name='{$k}' />"); | |
| 388 | + } | |
| 372 | 389 | } |
| 373 | 390 | } |
| 374 | - } | |
| 375 | - //$dimEnsoes[] = '<DimensionUsage foreignKey="coduf" name="codigo_tipo_regiao_2" source="codigo_tipo_regiao_2"/>'; | |
| 376 | - $xml .= " | |
| 377 | - <Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>"; | |
| 378 | - $incluirChaves = array("*"); | |
| 379 | - | |
| 380 | - if(count($parComposto) > 0){ | |
| 381 | - //$sql = "select *,".implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_ from {$c["esquemadb"]}.{$c["tabela"]}"; | |
| 382 | - $incluirChaves[] = implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_"; | |
| 383 | - } | |
| 384 | - if(count($outrosParametros) > 0){ | |
| 385 | - foreach($outrosParametros as $o){ | |
| 386 | - //$incluirChaves[] = $o."::text as ".$o."_"; | |
| 387 | - } | |
| 388 | - } | |
| 389 | - | |
| 390 | - $sql = "select ".implode(",",$incluirChaves)." from {$c["esquemadb"]}.{$c["tabela"]}"; | |
| 391 | - | |
| 392 | - $xml .= " | |
| 393 | - <view alias='view_{$c["esquemadb"]}{$c["tabela"]}' ><SQL dialect='generic' >$sql</SQL></view> | |
| 394 | - <DimensionUsage foreignKey='".$c["colunaidgeo"]."' name='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."' source='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."'/> | |
| 395 | - <DimensionUsage foreignKey='".$c["colunaidgeo"]."' name='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."_geocod' source='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."_geocod'/> | |
| 396 | - "; | |
| 397 | - | |
| 398 | - $xml .= implode(" ",array_unique($dimEnsoes)); | |
| 399 | - | |
| 400 | - //inclui cada elemento em medida | |
| 401 | - foreach($tb as $medida){ | |
| 402 | - $agregador = "sum"; | |
| 403 | - if($medida["permitesoma"] == 0 && $medida["permitemedia"] == 1){ | |
| 404 | - $agregador = "avg"; | |
| 391 | + //$dimEnsoes[] = '<DimensionUsage foreignKey="coduf" name="codigo_tipo_regiao_2" source="codigo_tipo_regiao_2"/>'; | |
| 392 | + $xml .= " | |
| 393 | + <Cube cache='false' name='Tabela: {$c["esquemadb"]}{$c["tabela"]}'>"; | |
| 394 | + $incluirChaves = array("*"); | |
| 395 | + | |
| 396 | + if(count($parComposto) > 0){ | |
| 397 | + //$sql = "select *,".implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_ from {$c["esquemadb"]}.{$c["tabela"]}"; | |
| 398 | + $incluirChaves[] = implode("||'-'||",$parComposto)."::text as ".implode("_",$parComposto)."_"; | |
| 405 | 399 | } |
| 406 | - if($medida["permitesoma"] == 0 && $medida["permitemedia"] == 0){ | |
| 407 | - $agregador = "count"; | |
| 400 | + if(count($outrosParametros) > 0){ | |
| 401 | + foreach($outrosParametros as $o){ | |
| 402 | + //$incluirChaves[] = $o."::text as ".$o."_"; | |
| 403 | + } | |
| 408 | 404 | } |
| 405 | + | |
| 406 | + $sql = "select ".implode(",",$incluirChaves)." from {$c["esquemadb"]}.{$c["tabela"]}"; | |
| 407 | + | |
| 409 | 408 | $xml .= " |
| 410 | - <Measure name='id_medida_variavel_".$medida["id_medida_variavel"]."' caption='".converte($medida["nomemedida"])."' column='".$medida["colunavalor"]."' aggregator='".$agregador."' /> | |
| 409 | + <view alias='view_{$c["esquemadb"]}{$c["tabela"]}' ><SQL dialect='generic' >$sql</SQL></view> | |
| 410 | + <DimensionUsage foreignKey='".$c["colunaidgeo"]."' name='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."' source='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."'/> | |
| 411 | + <DimensionUsage foreignKey='".$c["colunaidgeo"]."' name='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."_geocod' source='codigo_tipo_regiao_".$c["codigo_tipo_regiao"]."_geocod'/> | |
| 411 | 412 | "; |
| 412 | - $u = " | |
| 413 | + | |
| 414 | + $xml .= implode(" ",array_unique($dimEnsoes)); | |
| 415 | + | |
| 416 | + //inclui cada elemento em medida | |
| 417 | + foreach($tb as $medida){ | |
| 418 | + $agregador = "sum"; | |
| 419 | + if($medida["permitesoma"] == 0 && $medida["permitemedia"] == 1){ | |
| 420 | + $agregador = "avg"; | |
| 421 | + } | |
| 422 | + if($medida["permitesoma"] == 0 && $medida["permitemedia"] == 0){ | |
| 423 | + $agregador = "count"; | |
| 424 | + } | |
| 425 | + $xml .= " | |
| 426 | + <Measure name='id_medida_variavel_".$medida["id_medida_variavel"]."' caption='".converte($medida["nomemedida"])."' column='".$medida["colunavalor"]."' aggregator='".$agregador."' /> | |
| 427 | + "; | |
| 428 | + $u = " | |
| 413 | 429 | <VirtualCubeMeasure cubeName='Tabela: {$c["esquemadb"]}{$c["tabela"]}' name='[Measures].[id_medida_variavel_".$medida["id_medida_variavel"]."]'/> |
| 414 | - "; | |
| 415 | - $VirtualCubeMeasure[] = $u; | |
| 416 | - array_push($VirtualCubeMeasureDaRegiao[$c["codigo_tipo_regiao"]],$u); | |
| 417 | - } | |
| 418 | - $xml .= " | |
| 430 | + "; | |
| 431 | + $VirtualCubeMeasure[] = $u; | |
| 432 | + array_push($VirtualCubeMeasureDaRegiao[$c["codigo_tipo_regiao"]],$u); | |
| 433 | + } | |
| 434 | + $xml .= " | |
| 419 | 435 | </Cube> |
| 420 | 436 | "; |
| 421 | -} | |
| 422 | -$xml .= '<VirtualCube name="Todas as medidas" >'; | |
| 423 | -$VirtualCubeDimension = array_unique($VirtualCubeDimension); | |
| 424 | -$VirtualCubeMeasure = array_unique($VirtualCubeMeasure); | |
| 425 | -$xml .= implode(" ",$VirtualCubeDimension); | |
| 426 | -$xml .= implode(" ",$VirtualCubeMeasure); | |
| 427 | -$xml .= '</VirtualCube>'; | |
| 428 | -// | |
| 429 | -//cubos por regiao | |
| 430 | -// | |
| 431 | -//$filhosDaRegiao = array(); | |
| 432 | -//$VirtualCubeDimensionDaRegiao = array(); | |
| 433 | -//$VirtualCubeMeasureDaRegiao = array(); | |
| 434 | -foreach($regioes as $regiao){ | |
| 435 | - $xml .= '<VirtualCube name="'.converte($regiao["nome_tipo_regiao"]).'" >'; | |
| 436 | - $xml .= implode(" ",array_unique($VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]])); | |
| 437 | - $xml .= implode(" ",array_unique($VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]])); | |
| 437 | + } | |
| 438 | + $xml .= '<VirtualCube name="Todas as medidas" >'; | |
| 439 | + $VirtualCubeDimension = array_unique($VirtualCubeDimension); | |
| 440 | + $VirtualCubeMeasure = array_unique($VirtualCubeMeasure); | |
| 441 | + $xml .= implode(" ",$VirtualCubeDimension); | |
| 442 | + $xml .= implode(" ",$VirtualCubeMeasure); | |
| 438 | 443 | $xml .= '</VirtualCube>'; |
| 444 | + // | |
| 445 | + //cubos por regiao | |
| 446 | + // | |
| 447 | + //$filhosDaRegiao = array(); | |
| 448 | + //$VirtualCubeDimensionDaRegiao = array(); | |
| 449 | + //$VirtualCubeMeasureDaRegiao = array(); | |
| 450 | + | |
| 451 | + foreach($regioes as $regiao){ | |
| 452 | + //inclui os parametros para a regiao de acordo com os filhos que possui | |
| 453 | + $d = $VirtualCubeDimensionDaRegiao[$regiao["codigo_tipo_regiao"]]; | |
| 454 | + $m = $VirtualCubeMeasureDaRegiao[$regiao["codigo_tipo_regiao"]]; | |
| 455 | + foreach($filhosDaRegiao[$regiao["codigo_tipo_regiao"]] as $f){ | |
| 456 | + //$d = array_merge($d,$VirtualCubeDimensionDaRegiao[$f]); | |
| 457 | + $m = array_merge($m,$VirtualCubeMeasureDaRegiao[$f]); | |
| 458 | + } | |
| 459 | + if(count(array_unique($m)) > 0){ | |
| 460 | + $xml .= '<VirtualCube name="Regi&atilde;o: '.converte($regiao["nome_tipo_regiao"]).'" >'; | |
| 461 | + $xml .= implode(" ",array_unique($d)); | |
| 462 | + $xml .= implode(" ",array_unique($m)); | |
| 463 | + $xml .= '</VirtualCube>'; | |
| 464 | + } | |
| 465 | + } | |
| 466 | + $xml .= "</Schema>"; | |
| 467 | + error_reporting(0); | |
| 468 | + ob_end_clean(); | |
| 469 | + | |
| 470 | + if($_GET["output"] == "xml"){ | |
| 471 | + echo header("Content-type: application/xml"); | |
| 472 | + echo $xml;exit; | |
| 473 | + } | |
| 474 | + gravaDados(array($xml),$arquivoXmlEsquema); | |
| 439 | 475 | } |
| 440 | -$xml .= "</Schema>"; | |
| 441 | -error_reporting(0); | |
| 442 | -ob_end_clean(); | |
| 443 | - | |
| 444 | -if($_GET["output"] == "xml"){ | |
| 445 | - echo header("Content-type: application/xml"); | |
| 446 | - echo $xml;exit; | |
| 476 | +if($_GET["output"] == "xml"){ | |
| 477 | + echo header("Content-type: application/xml"); | |
| 478 | + header("Location:".$_GET["xmlesquema"]); | |
| 479 | +} | |
| 480 | +else{ | |
| 481 | + header("Location:".$saikuUrl."/?nomeConexao=".$nomeConexao."&locaplic=".$_GET["locaplic"]."&g_sid=".$_GET["g_sid"]."&mapext=".$_GET["mapext"]."&origem=".$_GET["origem"]); | |
| 447 | 482 | } |
| 448 | -gravaDados(array($xml),$arquivoXmlEsquema); | |
| 449 | - | |
| 450 | -header("Location:".$saikuUrl."/?nomeConexao=".$nomeConexao."&locaplic=".$_GET["locaplic"]."&g_sid=".$_GET["g_sid"]."&mapext=".$_GET["mapext"]."&origem=".$_GET["origem"]); | |
| 451 | - | |
| 452 | 483 | function converte($texto){ |
| 453 | 484 | $texto = str_replace("&","&",htmlentities($texto)); |
| 454 | 485 | //$texto = htmlentities($texto); | ... | ... |
init/dicionario.js
| 1 | -g_traducao_init = { | |
| 2 | -1: [ | |
| 3 | -{ | |
| 4 | -pt:"Remover essa tela de apresentação (depois você poderá ir direto para http:// localhost/i3geo/init)", | |
| 5 | -en:"", | |
| 6 | -es:"" | |
| 7 | -}], | |
| 8 | -2: [ | |
| 9 | -{ | |
| 10 | -pt:"Teste da instalação", | |
| 11 | -en:"", | |
| 12 | -es:"" | |
| 13 | -}], | |
| 14 | -3: [ | |
| 15 | -{ | |
| 16 | -pt:"Sistema de administração", | |
| 17 | -en:"", | |
| 18 | -es:"" | |
| 19 | -}], | |
| 20 | -4: [ | |
| 21 | -{ | |
| 22 | -pt:"Mapa com interface Openlayers", | |
| 23 | -en:"", | |
| 24 | -es:"" | |
| 25 | -}], | |
| 26 | -5: [ | |
| 27 | -{ | |
| 28 | -pt:"Mapa com interface Openlayers (modo debug)", | |
| 29 | -en:"", | |
| 30 | -es:"" | |
| 31 | -}], | |
| 32 | -6: [ | |
| 33 | -{ | |
| 34 | -pt:"Mapa com interface Google Maps", | |
| 35 | -en:"", | |
| 36 | -es:"" | |
| 37 | -}], | |
| 38 | -7: [ | |
| 39 | -{ | |
| 40 | -pt:"Mapa com interface Google Earth", | |
| 41 | -en:"", | |
| 42 | -es:"" | |
| 43 | -}], | |
| 44 | -8: [ | |
| 45 | -{ | |
| 46 | -pt:"Cartogramas (METAESTAT)", | |
| 47 | -en:"", | |
| 48 | -es:"" | |
| 49 | -}], | |
| 50 | -9: [ | |
| 51 | -{ | |
| 52 | -pt:"Editor de regiões (METAESTAT)", | |
| 53 | -en:"", | |
| 54 | -es:"" | |
| 55 | -}], | |
| 56 | -10: [ | |
| 57 | -{ | |
| 58 | -pt:"Download de dados geo", | |
| 59 | -en:"", | |
| 60 | -es:"" | |
| 61 | -}], | |
| 62 | -11: [ | |
| 63 | -{ | |
| 64 | -pt:"Serviços OGC (WMS e WFS)", | |
| 65 | -en:"", | |
| 66 | -es:"" | |
| 67 | -}], | |
| 68 | -12: [ | |
| 69 | -{ | |
| 70 | -pt:"Catálogo de temas no formato KML", | |
| 71 | -en:"", | |
| 72 | -es:"" | |
| 73 | -}], | |
| 74 | -13: [ | |
| 75 | -{ | |
| 76 | -pt:"Gerador de links permanentes", | |
| 77 | -en:"", | |
| 78 | -es:"" | |
| 79 | -}], | |
| 80 | -14: [ | |
| 81 | -{ | |
| 82 | -pt:"Exemplos de customização da interface de mapas", | |
| 83 | -en:"", | |
| 84 | -es:"" | |
| 85 | -}], | |
| 86 | -15: [ | |
| 87 | -{ | |
| 88 | -pt:"Manual de uso", | |
| 89 | -en:"", | |
| 90 | -es:"" | |
| 91 | -}], | |
| 92 | -16: [ | |
| 93 | -{ | |
| 94 | -pt:"Registro de bugs", | |
| 95 | -en:"", | |
| 96 | -es:"" | |
| 97 | -}], | |
| 98 | -17: [ | |
| 99 | -{ | |
| 100 | -pt:"Guia de migração", | |
| 101 | -en:"", | |
| 102 | -es:"" | |
| 103 | -}], | |
| 104 | -18: [ | |
| 105 | -{ | |
| 106 | -pt:"Integre mapas em outras aplicações", | |
| 107 | -en:"", | |
| 108 | -es:"" | |
| 109 | -}], | |
| 110 | -19: [ | |
| 111 | -{ | |
| 112 | -pt:"ATENÇÃO!!! Essa instalação está vulnerável: edite o arquivo i3geo/ms_configura.php e altere o login e senha definidos na variável $i3geomaster.<br>Ao acessar o i3Geo em um servidor que não seja o localhost os mapas ficarão bloqueados até que essa edição seja feita.", | |
| 113 | -en:"", | |
| 114 | -es:"" | |
| 115 | -}], | |
| 116 | -20: [ | |
| 117 | -{ | |
| 118 | -pt:"Incluia um link apenas na sua página", | |
| 119 | -en:"", | |
| 120 | -es:"" | |
| 121 | -}], | |
| 122 | -21: [ | |
| 123 | -{ | |
| 124 | -pt:"Manual de administração", | |
| 125 | -en:"", | |
| 126 | -es:"" | |
| 127 | -}], | |
| 128 | -22: [ | |
| 129 | -{ | |
| 130 | -pt:"Google Maps com aplicação de estilo", | |
| 131 | -en:"", | |
| 132 | -es:"" | |
| 133 | -}], | |
| 134 | -23: [ | |
| 135 | -{ | |
| 136 | -pt:"Mapa com Open Street Map (OSM)", | |
| 137 | -en:"", | |
| 138 | -es:"" | |
| 139 | -}], | |
| 140 | -24: [ | |
| 141 | -{ | |
| 142 | -pt:"Documentação da API", | |
| 143 | -en:"", | |
| 144 | -es:"" | |
| 145 | -}], | |
| 146 | -25: [ | |
| 147 | -{ | |
| 148 | -pt:"SAIKU - análise de dados estatísticos", | |
| 149 | -en:"", | |
| 150 | -es:"" | |
| 151 | -}], | |
| 152 | -26: [ | |
| 153 | -{ | |
| 154 | -pt:"Teste do conversor de projeto GVP para Mapfile", | |
| 155 | -en:"", | |
| 156 | -es:"" | |
| 157 | -}], | |
| 158 | -27: [ | |
| 159 | -{ | |
| 160 | -pt:"Lista de Atlas cadastrados", | |
| 161 | -en:"", | |
| 162 | -es:"" | |
| 163 | -}] | |
| 164 | -}; | |
| 1 | +g_traducao_init = | |
| 2 | + { | |
| 3 | + 1 : [ | |
| 4 | + { | |
| 5 | + pt : "Remover essa tela de apresentação (depois você poderá ir direto para http:// localhost/i3geo/init)", | |
| 6 | + en : "", | |
| 7 | + es : "" | |
| 8 | + } | |
| 9 | + ], | |
| 10 | + 2 : [ | |
| 11 | + { | |
| 12 | + pt : "Teste da instalação", | |
| 13 | + en : "", | |
| 14 | + es : "" | |
| 15 | + } | |
| 16 | + ], | |
| 17 | + 3 : [ | |
| 18 | + { | |
| 19 | + pt : "Sistema de administração", | |
| 20 | + en : "", | |
| 21 | + es : "" | |
| 22 | + } | |
| 23 | + ], | |
| 24 | + 4 : [ | |
| 25 | + { | |
| 26 | + pt : "Mapa com interface Openlayers", | |
| 27 | + en : "", | |
| 28 | + es : "" | |
| 29 | + } | |
| 30 | + ], | |
| 31 | + 5 : [ | |
| 32 | + { | |
| 33 | + pt : "Mapa com interface Openlayers (modo debug)", | |
| 34 | + en : "", | |
| 35 | + es : "" | |
| 36 | + } | |
| 37 | + ], | |
| 38 | + 6 : [ | |
| 39 | + { | |
| 40 | + pt : "Mapa com interface Google Maps", | |
| 41 | + en : "", | |
| 42 | + es : "" | |
| 43 | + } | |
| 44 | + ], | |
| 45 | + 7 : [ | |
| 46 | + { | |
| 47 | + pt : "Mapa com interface Google Earth", | |
| 48 | + en : "", | |
| 49 | + es : "" | |
| 50 | + } | |
| 51 | + ], | |
| 52 | + 8 : [ | |
| 53 | + { | |
| 54 | + pt : "Cartogramas (METAESTAT)", | |
| 55 | + en : "", | |
| 56 | + es : "" | |
| 57 | + } | |
| 58 | + ], | |
| 59 | + 9 : [ | |
| 60 | + { | |
| 61 | + pt : "Editor de regiões (METAESTAT)", | |
| 62 | + en : "", | |
| 63 | + es : "" | |
| 64 | + } | |
| 65 | + ], | |
| 66 | + 10 : [ | |
| 67 | + { | |
| 68 | + pt : "Download de dados geo", | |
| 69 | + en : "", | |
| 70 | + es : "" | |
| 71 | + } | |
| 72 | + ], | |
| 73 | + 11 : [ | |
| 74 | + { | |
| 75 | + pt : "Serviços OGC (WMS e WFS)", | |
| 76 | + en : "", | |
| 77 | + es : "" | |
| 78 | + } | |
| 79 | + ], | |
| 80 | + 12 : [ | |
| 81 | + { | |
| 82 | + pt : "Catálogo de temas no formato KML", | |
| 83 | + en : "", | |
| 84 | + es : "" | |
| 85 | + } | |
| 86 | + ], | |
| 87 | + 13 : [ | |
| 88 | + { | |
| 89 | + pt : "Gerador de links permanentes", | |
| 90 | + en : "", | |
| 91 | + es : "" | |
| 92 | + } | |
| 93 | + ], | |
| 94 | + 14 : [ | |
| 95 | + { | |
| 96 | + pt : "Exemplos de customização da interface de mapas", | |
| 97 | + en : "", | |
| 98 | + es : "" | |
| 99 | + } | |
| 100 | + ], | |
| 101 | + 15 : [ | |
| 102 | + { | |
| 103 | + pt : "Manual de uso", | |
| 104 | + en : "", | |
| 105 | + es : "" | |
| 106 | + } | |
| 107 | + ], | |
| 108 | + 16 : [ | |
| 109 | + { | |
| 110 | + pt : "Registro de bugs", | |
| 111 | + en : "", | |
| 112 | + es : "" | |
| 113 | + } | |
| 114 | + ], | |
| 115 | + 17 : [ | |
| 116 | + { | |
| 117 | + pt : "Guia de migração", | |
| 118 | + en : "", | |
| 119 | + es : "" | |
| 120 | + } | |
| 121 | + ], | |
| 122 | + 18 : [ | |
| 123 | + { | |
| 124 | + pt : "Integre mapas em outras aplicações", | |
| 125 | + en : "", | |
| 126 | + es : "" | |
| 127 | + } | |
| 128 | + ], | |
| 129 | + 19 : [ | |
| 130 | + { | |
| 131 | + pt : "ATENÇÃO!!! Essa instalação está vulnerável: edite o arquivo i3geo/ms_configura.php e altere o login e senha definidos na variável $i3geomaster.<br>Ao acessar o i3Geo em um servidor que não seja o localhost os mapas ficarão bloqueados até que essa edição seja feita.", | |
| 132 | + en : "", | |
| 133 | + es : "" | |
| 134 | + } | |
| 135 | + ], | |
| 136 | + 20 : [ | |
| 137 | + { | |
| 138 | + pt : "Incluia um link apenas na sua página", | |
| 139 | + en : "", | |
| 140 | + es : "" | |
| 141 | + } | |
| 142 | + ], | |
| 143 | + 21 : [ | |
| 144 | + { | |
| 145 | + pt : "Manual de administração", | |
| 146 | + en : "", | |
| 147 | + es : "" | |
| 148 | + } | |
| 149 | + ], | |
| 150 | + 22 : [ | |
| 151 | + { | |
| 152 | + pt : "Google Maps com aplicação de estilo", | |
| 153 | + en : "", | |
| 154 | + es : "" | |
| 155 | + } | |
| 156 | + ], | |
| 157 | + 23 : [ | |
| 158 | + { | |
| 159 | + pt : "Mapa com Open Street Map (OSM)", | |
| 160 | + en : "", | |
| 161 | + es : "" | |
| 162 | + } | |
| 163 | + ], | |
| 164 | + 24 : [ | |
| 165 | + { | |
| 166 | + pt : "Documentação da API", | |
| 167 | + en : "", | |
| 168 | + es : "" | |
| 169 | + } | |
| 170 | + ], | |
| 171 | + 25 : [ | |
| 172 | + { | |
| 173 | + pt : "SAIKU - análise de dados estatísticos", | |
| 174 | + en : "", | |
| 175 | + es : "" | |
| 176 | + } | |
| 177 | + ], | |
| 178 | + 26 : [ | |
| 179 | + { | |
| 180 | + pt : "Teste do conversor de projeto GVP para Mapfile", | |
| 181 | + en : "", | |
| 182 | + es : "" | |
| 183 | + } | |
| 184 | + ], | |
| 185 | + 27 : [ | |
| 186 | + { | |
| 187 | + pt : "Lista de Atlas cadastrados", | |
| 188 | + en : "", | |
| 189 | + es : "" | |
| 190 | + } | |
| 191 | + ], | |
| 192 | + 28 : [ | |
| 193 | + { | |
| 194 | + pt : "Curso de i3Geo em Gvsig-training", | |
| 195 | + en : "", | |
| 196 | + es : "" | |
| 197 | + } | |
| 198 | + ] | |
| 199 | + }; | ... | ... |
init/index.php
| ... | ... | @@ -212,6 +212,10 @@ botoesIni.push({ |
| 212 | 212 | "href":"../documentacao", |
| 213 | 213 | "titulo":$trad(24,g_traducao_init) |
| 214 | 214 | },{ |
| 215 | + "img":"accessories-dictionary.png", | |
| 216 | + "href":"http://moodle.gvsig-training.com/course/view.php?id=11", | |
| 217 | + "titulo":$trad(28,g_traducao_init) | |
| 218 | + },{ | |
| 215 | 219 | "img":"tools-report-bug.png", |
| 216 | 220 | "href":"http://svn.softwarepublico.gov.br/trac/i3geo", |
| 217 | 221 | "titulo":$trad(16,g_traducao_init) | ... | ... |