Commit b2da34b095c9ce710a896ee000de74ac5bed0447
1 parent
3ec6ae4f
Exists in
master
and in
7 other branches
Nova barra lateral de botões com guias. Inclusão de jQuery e Bootstrap nos códig…
…os dos mapas interativos
Showing
221 changed files
with
9851 additions
and
7615 deletions
Show diff stats
Too many changes.
To preserve performance only 100 of 221 files displayed.
admin/admin (cópia).db
No preview for this file type
No preview for this file type
admin/php/admin.php
| ... | ... | @@ -41,7 +41,7 @@ if(!file_exists($dir_tmp)){ |
| 41 | 41 | } |
| 42 | 42 | //TODO retirar daqui |
| 43 | 43 | //include_once($locaplic."/classesphp/pega_variaveis.php"); |
| 44 | -error_reporting(0); | |
| 44 | +//error_reporting(0); | |
| 45 | 45 | |
| 46 | 46 | // |
| 47 | 47 | //carrega o phpmapscript |
| ... | ... | @@ -97,7 +97,7 @@ function retornaJSON($obj) |
| 97 | 97 | //else |
| 98 | 98 | //{ |
| 99 | 99 | include_once($locaplic."/pacotes/cpaint/JSON/json2.php"); |
| 100 | - error_reporting(0); | |
| 100 | + //error_reporting(0); | |
| 101 | 101 | ob_end_clean(); |
| 102 | 102 | $j = new Services_JSON(); |
| 103 | 103 | $texto = $j->encode($obj); |
| ... | ... | @@ -199,7 +199,7 @@ function pegaDados($sql,$dbh="",$close=true) |
| 199 | 199 | if($dbh == "" || is_string($dbh)){ |
| 200 | 200 | include(dirname(__FILE__)."/conexao.php"); |
| 201 | 201 | } |
| 202 | - error_reporting(0); | |
| 202 | + //error_reporting(0); | |
| 203 | 203 | //$dbh deve ser definido com somente leitura, mas por prevencao: |
| 204 | 204 | $sql = str_ireplace(array("update","delete","insert","--","drop",";"),"",$sql); |
| 205 | 205 | $q = $dbh->query($sql,PDO::FETCH_ASSOC); |
| ... | ... | @@ -624,8 +624,10 @@ senha {string} |
| 624 | 624 | |
| 625 | 625 | i3geomaster {array} - variável existente no ms_configura.php com o cadastro de usuários masters |
| 626 | 626 | */ |
| 627 | -function verificaMaster($usuario,$senha,$i3geomaster){ | |
| 628 | - global $i3geomaster; | |
| 627 | +function verificaMaster($usuario,$senha,$i3geomaster=""){ | |
| 628 | + if(empty($i3geomaster)){ | |
| 629 | + include(dirname(__FILE__)."/../../ms_configura.php"); | |
| 630 | + } | |
| 629 | 631 | foreach($i3geomaster as $teste){ |
| 630 | 632 | if(!empty($usuario) && !empty($senha) && $teste["usuario"] == $usuario && $teste["senha"] == $senha){ |
| 631 | 633 | return true; | ... | ... |
admin/php/arvore.php
admin/php/classe_arvore.php
| ... | ... | @@ -73,7 +73,7 @@ class Arvore |
| 73 | 73 | $this->locaplic = $locaplic; |
| 74 | 74 | $this->filtro = $filtro; |
| 75 | 75 | $dbh = ""; |
| 76 | - error_reporting(0); | |
| 76 | + //error_reporting(0); | |
| 77 | 77 | |
| 78 | 78 | include($locaplic."/admin/php/conexao.php"); |
| 79 | 79 | |
| ... | ... | @@ -415,6 +415,7 @@ class Arvore |
| 415 | 415 | function procuraTemasEstrela($nivel,$fatorestrela,$perfil) |
| 416 | 416 | { |
| 417 | 417 | $menus = $this->pegaListaDeMenus($perfil); |
| 418 | + | |
| 418 | 419 | $resultado = array(); |
| 419 | 420 | $subgrupo = array(); |
| 420 | 421 | $final = array(); |
| ... | ... | @@ -621,7 +622,7 @@ class Arvore |
| 621 | 622 | |
| 622 | 623 | {array} |
| 623 | 624 | */ |
| 624 | - function pegaTemasRaizGrupo($id_menu,$id_n1,$filtraOgc,$filtraDown) | |
| 625 | + function pegaTemasRaizGrupo($id_menu,$id_n1,$filtraOgc="nao",$filtraDown="nao") | |
| 625 | 626 | { |
| 626 | 627 | $f = ""; |
| 627 | 628 | if($filtraOgc == "sim" || $filtraDown == "sim"){ |
| ... | ... | @@ -1249,21 +1250,25 @@ class Arvore |
| 1249 | 1250 | } |
| 1250 | 1251 | } |
| 1251 | 1252 | function verificaOperacaoSessao($operacao){ |
| 1252 | - session_write_close(); | |
| 1253 | - session_name("i3GeoLogin"); | |
| 1254 | - session_id($_COOKIE["i3geocodigologin"]); | |
| 1255 | - session_start(); | |
| 1256 | - $resultado = false; | |
| 1257 | - //verifica se e administrador | |
| 1258 | - foreach($_SESSION["papeis"] as $p){ | |
| 1259 | - if($p["id_papel"] == 1){ | |
| 1260 | - return true; | |
| 1253 | + if($_COOKIE["i3geocodigologin"] != ""){ | |
| 1254 | + session_write_close(); | |
| 1255 | + session_name("i3GeoLogin"); | |
| 1256 | + session_id($_COOKIE["i3geocodigologin"]); | |
| 1257 | + session_start(); | |
| 1258 | + $resultado = false; | |
| 1259 | + //verifica se e administrador | |
| 1260 | + foreach($_SESSION["papeis"] as $p){ | |
| 1261 | + if($p == 1){ | |
| 1262 | + return true; | |
| 1263 | + } | |
| 1261 | 1264 | } |
| 1265 | + if(!empty($_SESSION["operacoes"][$operacao])){ | |
| 1266 | + $resultado = true; | |
| 1267 | + } | |
| 1268 | + return $resultado; | |
| 1269 | + } else { | |
| 1270 | + return false; | |
| 1262 | 1271 | } |
| 1263 | - if(!empty($_SESSION["operacoes"][$operacao])){ | |
| 1264 | - $resultado = true; | |
| 1265 | - } | |
| 1266 | - return $resultado; | |
| 1267 | 1272 | } |
| 1268 | 1273 | } |
| 1269 | 1274 | ?> |
| 1270 | 1275 | \ No newline at end of file | ... | ... |
admin/php/classe_metaestat.php
| ... | ... | @@ -72,7 +72,7 @@ class Metaestat{ |
| 72 | 72 | * Faz o include de conexao.php que por sua vez faz o include de i3geo/ms_configura.php |
| 73 | 73 | */ |
| 74 | 74 | function __construct(){ |
| 75 | - error_reporting(0); | |
| 75 | + //error_reporting(0); | |
| 76 | 76 | include(dirname(__FILE__)."/conexao.php"); |
| 77 | 77 | //vem do include |
| 78 | 78 | $this->dir_tmp = $dir_tmp; | ... | ... |
admin/php/conexao.php
| ... | ... | @@ -65,7 +65,7 @@ if(!isset($logTransacoes)){ |
| 65 | 65 | $convUTF = true; |
| 66 | 66 | if($conexaoadmin == ""){ |
| 67 | 67 | $arquivosqlite = $locaplic."/admin/admin.db"; |
| 68 | - chmod($arquivosqlite,0774); | |
| 68 | + //chmod($arquivosqlite,0774); | |
| 69 | 69 | //echo $arquivosqlite;exit; |
| 70 | 70 | if(!file_exists($arquivosqlite)){ |
| 71 | 71 | echo "O arquivo admin.db não existe. Utilize i3geo/admin/criabanco.php para criar o banco de dados SQLITE."; | ... | ... |
admin/php/criabanco.php
| ... | ... | @@ -59,7 +59,7 @@ |
| 59 | 59 | if(isset($i3geoPermiteLoginIp)){ |
| 60 | 60 | checaLoginIp($i3geoPermiteLoginIp); |
| 61 | 61 | } |
| 62 | - error_reporting(0); | |
| 62 | + //error_reporting(0); | |
| 63 | 63 | $tabelas = array( |
| 64 | 64 | //tabelas gerais do sistema de administracao |
| 65 | 65 | "CREATE TABLE ".$esquemaadmin."i3geoadmin_grupos (desc_grupo TEXT, id_grupo INTEGER PRIMARY KEY, nome_grupo TEXT, it TEXT, es TEXT, en TEXT)", | ... | ... |
admin/php/editormapfile.php
| ... | ... | @@ -98,7 +98,7 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){ |
| 98 | 98 | } |
| 99 | 99 | unlink("$locaplic/temas/teste.txt"); |
| 100 | 100 | } |
| 101 | -error_reporting(0); | |
| 101 | +//error_reporting(0); | |
| 102 | 102 | //define o parametro de output do resultado da funcao |
| 103 | 103 | //algumas funcoes podem ser inseridas com include em outros programas |
| 104 | 104 | //nesse caso, defina output como "retorno" |
| ... | ... | @@ -285,7 +285,7 @@ switch (strtoupper($funcao)) |
| 285 | 285 | {JSON} |
| 286 | 286 | */ |
| 287 | 287 | case "LIMPARCACHEMAPFILE": |
| 288 | - error_reporting(0); | |
| 288 | + //error_reporting(0); | |
| 289 | 289 | $mapfile = $locaplic."/temas/".$codigoMap.".map"; |
| 290 | 290 | $mapa = ms_newMapObj($mapfile); |
| 291 | 291 | $nomes = $mapa->getalllayernames(); |
| ... | ... | @@ -1146,7 +1146,7 @@ switch (strtoupper($funcao)) |
| 1146 | 1146 | function clonarMapfile() |
| 1147 | 1147 | { |
| 1148 | 1148 | global $codigomap, $locaplic; |
| 1149 | - error_reporting(0); | |
| 1149 | + //error_reporting(0); | |
| 1150 | 1150 | $arqtema = $locaplic."/temas/".$codigomap.".map"; |
| 1151 | 1151 | $novotema = $locaplic."/temas/".$_GET["novomap"].".map"; |
| 1152 | 1152 | copy($arqtema,$novotema); |
| ... | ... | @@ -1163,7 +1163,7 @@ function refazerLayer() |
| 1163 | 1163 | |
| 1164 | 1164 | $maporigem = $_GET["maporigem"]; |
| 1165 | 1165 | |
| 1166 | - error_reporting(0); | |
| 1166 | + //error_reporting(0); | |
| 1167 | 1167 | $cache = $_GET["cache"]; |
| 1168 | 1168 | if(empty($cache)){ |
| 1169 | 1169 | $cache = ""; |
| ... | ... | @@ -1379,7 +1379,7 @@ function autoClassesLayer() |
| 1379 | 1379 | global $codigoMap,$codigoLayer,$locaplic,$dir_tmp,$postgis_mapa; |
| 1380 | 1380 | $mapfile = $locaplic."/temas/".$codigoMap.".map"; |
| 1381 | 1381 | include_once("$locaplic/classesphp/classe_alteraclasse.php"); |
| 1382 | - error_reporting(0); | |
| 1382 | + //error_reporting(0); | |
| 1383 | 1383 | $nometemp = $dir_tmp."/".nomerandomico().".map"; |
| 1384 | 1384 | |
| 1385 | 1385 | $versao = versao(); |
| ... | ... | @@ -2183,7 +2183,7 @@ function pegaClasseGeral() |
| 2183 | 2183 | { |
| 2184 | 2184 | global $codigoMap,$codigoLayer,$locaplic; |
| 2185 | 2185 | |
| 2186 | - error_reporting(0); | |
| 2186 | + //error_reporting(0); | |
| 2187 | 2187 | $dados = array(); |
| 2188 | 2188 | $mapfile = $locaplic."/temas/".$codigoMap.".map"; |
| 2189 | 2189 | $mapa = ms_newMapObj($mapfile); | ... | ... |
admin/php/editortexto.php
| ... | ... | @@ -102,7 +102,7 @@ body { |
| 102 | 102 | echo "Vc nao pode realizar essa operacao."; |
| 103 | 103 | exit (); |
| 104 | 104 | } |
| 105 | - error_reporting ( 0 ); | |
| 105 | + //error_reporting ( 0 ); | |
| 106 | 106 | $mapfile = $locaplic . "/temas/" . $_GET ["mapfile"] . ".map"; |
| 107 | 107 | if (! file_exists ( $mapfile )) { |
| 108 | 108 | echo "Arquivo $mapfile não existe."; | ... | ... |
admin/php/estat_mapa_upload.php
admin/php/estatisticas.php
| ... | ... | @@ -71,7 +71,7 @@ td { |
| 71 | 71 | $nacessosmaiorquedez = count(pegaDados("select soma from (select sum(nacessos) as soma from ".$esquemaadmin."i3geoadmin_acessostema where nacessos > 0 group by codigo_tema) as soma where soma > 10")); |
| 72 | 72 | $nacessosmaiorquecem = count(pegaDados("select soma from (select sum(nacessos) as soma from ".$esquemaadmin."i3geoadmin_acessostema where nacessos > 0 group by codigo_tema) as soma where soma > 100")); |
| 73 | 73 | $temasacessos = array(); |
| 74 | - error_reporting(0); | |
| 74 | + //error_reporting(0); | |
| 75 | 75 | foreach($temasvalidos as $tema){ |
| 76 | 76 | $ncodigostemas[$tema["codigo_tema"]]++; |
| 77 | 77 | $nnomestemas[$tema["nome_tema"]]++; | ... | ... |
admin/php/gruposusuarios.php
admin/php/identifica.php
admin/php/login.php
| ... | ... | @@ -58,7 +58,7 @@ cp.set_response_type("JSON") |
| 58 | 58 | cp.call(p,"lente",ajaxabrelente) |
| 59 | 59 | |
| 60 | 60 | */ |
| 61 | -error_reporting(0); | |
| 61 | +//error_reporting(0); | |
| 62 | 62 | // |
| 63 | 63 | //pega as variaveis passadas com get ou post |
| 64 | 64 | // |
| ... | ... | @@ -76,7 +76,7 @@ if(isset($i3geoPermiteLoginIp)){ |
| 76 | 76 | checaLoginIp($i3geoPermiteLoginIp); |
| 77 | 77 | } |
| 78 | 78 | |
| 79 | -error_reporting(0); | |
| 79 | +//error_reporting(0); | |
| 80 | 80 | session_write_close(); |
| 81 | 81 | session_name("i3GeoLogin"); |
| 82 | 82 | //se o usuario estiver tentando fazer login |
| ... | ... | @@ -315,7 +315,8 @@ function autenticaUsuario($usuario,$senha){ |
| 315 | 315 | //echo "select * from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and (senha = '$senhamd5' or senha = '$senha') and ativo = 1";exit; |
| 316 | 316 | //exit; |
| 317 | 317 | if(verificaMaster($usuario,$senha) == true){ |
| 318 | - $pa = pegaDados("select * from ".$esquemaadmin."i3geousr_papelusuario ",$dbh,false); | |
| 318 | + //$pa = pegaDados("select * from ".$esquemaadmin."i3geousr_papelusuario ",$dbh,false); | |
| 319 | + $pa = pegaDados("select * from ".$esquemaadmin."i3geousr_papeis ",$dbh,false); | |
| 319 | 320 | $op = pegadados("SELECT O.codigo FROM ".$esquemaadmin."i3geousr_operacoes AS O",$dbh,false); |
| 320 | 321 | $gr = pegadados("SELECT * from ".$esquemaadmin."i3geousr_grupos ",$dbh,false); |
| 321 | 322 | //var_dump($gr);exit; |
| ... | ... | @@ -399,6 +400,8 @@ function autenticaUsuario($usuario,$senha){ |
| 399 | 400 | function logoutUsuario(){ |
| 400 | 401 | $_COOKIE = array(); |
| 401 | 402 | $_SESSION = array(); |
| 402 | - session_destroy(); | |
| 403 | + if(session_status() == PHP_SESSION_ACTIVE){ | |
| 404 | + session_destroy(); | |
| 405 | + } | |
| 403 | 406 | } |
| 404 | 407 | ?> | ... | ... |
admin/php/mapas.php
admin/php/metaestat.php
| ... | ... | @@ -39,24 +39,22 @@ Cada operação possuí seus proprios parâmetros, que de |
| 39 | 39 | include_once(dirname(__FILE__)."/login.php"); |
| 40 | 40 | |
| 41 | 41 | $codigo_estat_conexao = $_GET["codigo_estat_conexao"];//pode ser string ou numerico |
| 42 | -$codigo_variavel = $_GET["codigo_variavel"]; | |
| 43 | -$codigo_tipo_periodo = $_GET["codigo_tipo_periodo"]; | |
| 44 | -$codigo_tipo_regiao = $_GET["codigo_tipo_regiao"]; | |
| 45 | -$codigo_unidade_medida = $_GET["codigo_unidade_medida"]; | |
| 46 | -$codigo_tipo_regiao_pai = $_GET["codigo_tipo_regiao_pai"]; | |
| 47 | -$id_medida_variavel = $_GET["id_medida_variavel"]; | |
| 48 | -$id_classificacao = $_GET["id_classificacao"]; | |
| 49 | -$id_link = $_GET["id_link"]; | |
| 50 | -$id_classe = $_GET["id_classe"]; | |
| 51 | -$id_parametro_medida = $_GET["id_parametro_medida"]; | |
| 52 | -$id_fonteinfo = $_GET["id_fonteinfo"]; | |
| 53 | -$id_agregaregiao = $_GET["id_agregaregiao"]; | |
| 54 | -$id_mapa = $_GET["id_mapa"]; | |
| 55 | -$id_mapa_grupo = $_GET["id_mapa_grupo"]; | |
| 56 | -$id_mapa_tema = $_GET["id_mapa_tema"]; | |
| 57 | -$id_pai = $_GET["id_pai"]; | |
| 58 | - | |
| 59 | -testaSafeNumerico([$codigo_tipo_regiao_pai,$id_pai,$id_mapa_tema,$id_mapa_grupo,$id_mapa,$id_agregaregiao,$codigo_tipo_regiao,$codigo_tipo_periodo,$id_fonteinfo,$codigo_unidade_medida,$codigo_variavel,$id_medida_variavel,$id_classificacao,$id_link,$id_classe,$id_parametro_medida]); | |
| 42 | +$codigo_variavel = (int) $_GET["codigo_variavel"]; | |
| 43 | +$codigo_tipo_periodo = (int) $_GET["codigo_tipo_periodo"]; | |
| 44 | +$codigo_tipo_regiao = (int) $_GET["codigo_tipo_regiao"]; | |
| 45 | +$codigo_unidade_medida = (int) $_GET["codigo_unidade_medida"]; | |
| 46 | +$codigo_tipo_regiao_pai = (int) $_GET["codigo_tipo_regiao_pai"]; | |
| 47 | +$id_medida_variavel = (int) $_GET["id_medida_variavel"]; | |
| 48 | +$id_classificacao = (int) $_GET["id_classificacao"]; | |
| 49 | +$id_link = (int) $_GET["id_link"]; | |
| 50 | +$id_classe = (int) $_GET["id_classe"]; | |
| 51 | +$id_parametro_medida = (int) $_GET["id_parametro_medida"]; | |
| 52 | +$id_fonteinfo = (int) $_GET["id_fonteinfo"]; | |
| 53 | +$id_agregaregiao = (int) $_GET["id_agregaregiao"]; | |
| 54 | +$id_mapa = (int) $_GET["id_mapa"]; | |
| 55 | +$id_mapa_grupo = (int) $_GET["id_mapa_grupo"]; | |
| 56 | +$id_mapa_tema = (int) $_GET["id_mapa_tema"]; | |
| 57 | +$id_pai = (int) $_GET["id_pai"]; | |
| 60 | 58 | |
| 61 | 59 | //lista de funcoes que passam pela validacao de login |
| 62 | 60 | $funcoesEdicao = array( |
| ... | ... | @@ -140,11 +138,8 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){ |
| 140 | 138 | } |
| 141 | 139 | } |
| 142 | 140 | |
| 143 | - | |
| 144 | - | |
| 145 | - | |
| 146 | 141 | include(dirname(__FILE__)."/classe_metaestat.php"); |
| 147 | -error_reporting(0); | |
| 142 | +//error_reporting(0); | |
| 148 | 143 | //faz a busca da função que deve ser executada |
| 149 | 144 | switch (strtoupper($funcao)) |
| 150 | 145 | { | ... | ... |
admin/php/metaestat_mapa_uploadimagem.php
admin/php/metaestat_uploadcsv_submit.php
| ... | ... | @@ -6,7 +6,7 @@ include_once("login.php"); |
| 6 | 6 | if(verificaOperacaoSessao("admin/metaestat/editorbanco") == false){ |
| 7 | 7 | echo "Vc nao pode realizar essa operacao.";exit; |
| 8 | 8 | } |
| 9 | -error_reporting(0); | |
| 9 | +//error_reporting(0); | |
| 10 | 10 | if (ob_get_level() == 0) ob_start(); |
| 11 | 11 | |
| 12 | 12 | ?> | ... | ... |
admin/php/metaestat_uploaddados_submit.php
admin/php/metaestat_uploadshp_submit.php
| ... | ... | @@ -7,7 +7,7 @@ set_time_limit(0); |
| 7 | 7 | if(verificaOperacaoSessao("admin/metaestat/editorbanco") == false){ |
| 8 | 8 | echo "Vc nao pode realizar essa operacao.";exit; |
| 9 | 9 | } |
| 10 | -error_reporting(0); | |
| 10 | +//error_reporting(0); | |
| 11 | 11 | if (ob_get_level() == 0) ob_start(); |
| 12 | 12 | ?> |
| 13 | 13 | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> | ... | ... |
admin/php/operacoes.php
admin/php/parsemapfile.php
| ... | ... | @@ -51,7 +51,7 @@ include_once(dirname(__FILE__)."/../../classesphp/carrega_ext.php"); |
| 51 | 51 | $bloqueiaStringConexao = true; |
| 52 | 52 | // |
| 53 | 53 | $forcawms = $_GET["forcawms"]; |
| 54 | -error_reporting(0); | |
| 54 | +//error_reporting(0); | |
| 55 | 55 | if(!isset($forcawms)){$forcawms = "nao";} |
| 56 | 56 | $objcontype[0] = "MS_INLINE"; |
| 57 | 57 | $objcontype[1] = "MS_SHAPEFILE"; | ... | ... |
admin/php/preview.php
| ... | ... | @@ -21,7 +21,7 @@ $urli3geo = str_replace("/ogc.php","",$protocolo.$_SERVER["PHP_SELF"]); |
| 21 | 21 | // |
| 22 | 22 | //cria o web service |
| 23 | 23 | // |
| 24 | -error_reporting(0); | |
| 24 | +//error_reporting(0); | |
| 25 | 25 | $versao = versao(); |
| 26 | 26 | $versao = $versao["principal"]; |
| 27 | 27 | ... | ... |
admin/php/sistemas.php
| ... | ... | @@ -57,7 +57,7 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){ |
| 57 | 57 | retornaJSON("Vc nao pode realizar essa operacao.");exit; |
| 58 | 58 | } |
| 59 | 59 | } |
| 60 | -error_reporting(0); | |
| 60 | +//error_reporting(0); | |
| 61 | 61 | //faz a busca da função que deve ser executada |
| 62 | 62 | switch (strtoupper($funcao)) |
| 63 | 63 | { | ... | ... |
admin/php/subirshapefile.php
admin/php/upgradebanco44_45.php
| ... | ... | @@ -71,7 +71,7 @@ else{ |
| 71 | 71 | exit; |
| 72 | 72 | } |
| 73 | 73 | } |
| 74 | -error_reporting(0); | |
| 74 | +//error_reporting(0); | |
| 75 | 75 | $tabelas = array( |
| 76 | 76 | "CREATE TABLE i3geoadmin_comentarios (comentario TEXT, data TEXT, openidnome TEXT, openidimagem TEXT, openidservico TEXT, openidusuario TEXT, openidurl TEXT, id_tema NUMERIC)", |
| 77 | 77 | "CREATE TABLE i3geoadmin_acessostema (codigo_tema TEXT, nacessos NUMERIC,dia NUMERIC, mes NUMERIC, ano NUMERIC)" | ... | ... |
admin/php/upgradebanco46_47.php
admin/php/uploadgvp.php
| ... | ... | @@ -5,7 +5,7 @@ include_once("login.php"); |
| 5 | 5 | if(verificaOperacaoSessao("admin/metaestat/geral") == false){ |
| 6 | 6 | echo "Vc nao pode realizar essa operacao.";exit; |
| 7 | 7 | } |
| 8 | -error_reporting(0); | |
| 8 | +//error_reporting(0); | |
| 9 | 9 | if (ob_get_level() == 0) ob_start(); |
| 10 | 10 | ?> |
| 11 | 11 | <html> | ... | ... |
admin/php/usuarios.php
admin/php/webservices.php
| ... | ... | @@ -39,7 +39,7 @@ O par&acirc;metro principal &eacute; "funcao", que define qual opera&ccedil;&ati |
| 39 | 39 | Cada operação possuí seus próprios parâmetros, que devem ser enviados também na requisição da operação. |
| 40 | 40 | |
| 41 | 41 | */ |
| 42 | -error_reporting(0); | |
| 42 | +//error_reporting(0); | |
| 43 | 43 | |
| 44 | 44 | //a funcao PEGAWS pode ser executada por outros programas |
| 45 | 45 | ... | ... |
admin/php/xml.php
| ... | ... | @@ -60,9 +60,12 @@ Retorno: |
| 60 | 60 | |
| 61 | 61 | String na estrutura XML |
| 62 | 62 | */ |
| 63 | -function geraXmlSistemas($perfil,$locaplic,$editores) | |
| 63 | +function geraXmlSistemas($perfil="",$locaplic="",$editores="") | |
| 64 | 64 | { |
| 65 | 65 | global $esquemaadmin; |
| 66 | + if(empty($locaplic)){ | |
| 67 | + return; | |
| 68 | + } | |
| 66 | 69 | $editor = "nao";//verificaEditores($editores); |
| 67 | 70 | if (!isset($perfil)){$perfil = "";} |
| 68 | 71 | $perfil = str_replace(","," ",$perfil); |
| ... | ... | @@ -554,7 +557,7 @@ function geraXmlRSS($locaplic,$sql,$descricao,$output="xml") |
| 554 | 557 | function geraXmlAtlas($locaplic,$editores) |
| 555 | 558 | { |
| 556 | 559 | global $esquemaadmin; |
| 557 | - error_reporting(0); | |
| 560 | + //error_reporting(0); | |
| 558 | 561 | $dbh = ""; |
| 559 | 562 | include($locaplic."/admin/php/conexao.php"); |
| 560 | 563 | |
| ... | ... | @@ -633,7 +636,7 @@ function geraXmlIdentifica($perfil,$locaplic,$editores) |
| 633 | 636 | if($target == ""){$target = "_self";} |
| 634 | 637 | $xml .= " <TARGET>".$target."</TARGET>\n"; |
| 635 | 638 | $xml .= " </FUNCAO>\n"; |
| 636 | - }error_reporting(0); | |
| 639 | + }//error_reporting(0); | |
| 637 | 640 | } |
| 638 | 641 | $xml .= "</SISTEMAS>\n"; |
| 639 | 642 | $dbh = null; | ... | ... |
admin/rsscomentariostemas.php
admin/rssgrupos.php
admin/rssmapas.php
admin/rsssubgrupos.php
admin/rsstemas.php
admin/rsstemasdownload.php
admin/rsstemaskml.php
admin/rsstemasogc.php
admin/rsstemasraiz.php
admin/xmlatlas.php
admin/xmlgeorss.php
admin/xmlidentifica.php
admin/xmlkmlrss.php
admin/xmllinksdownload.php
admin/xmlmapas.php
admin/xmlmenutemas.php
admin/xmlmetaestatogc.php
admin/xmlservicoswms.php
admin/xmlservicosws.php
admin/xmlsistemas.php
admin1/catalogo/mapfile/preview/index.php
| ... | ... | @@ -58,7 +58,7 @@ $urli3geo = str_replace("/ogc.php","",$protocolo.$_SERVER["PHP_SELF"]); |
| 58 | 58 | // |
| 59 | 59 | //cria o web service |
| 60 | 60 | // |
| 61 | -error_reporting (E_ALL); | |
| 61 | +//error_reporting (E_ALL); | |
| 62 | 62 | $versao = \admin\php\funcoesAdmin\versao(); |
| 63 | 63 | $versao = $versao["principal"]; |
| 64 | 64 | ... | ... |
admin1/catalogo/mapfile/teste/exec.php
| ... | ... | @@ -94,7 +94,7 @@ function testaTabela($tema) { |
| 94 | 94 | |
| 95 | 95 | $mapa = ms_newMapObj ( $base ); |
| 96 | 96 | $nmapa = ms_newMapObj ( $tema ); |
| 97 | - error_reporting ( E_ALL ); | |
| 97 | + //error_reporting ( E_ALL ); | |
| 98 | 98 | ms_ResetErrorList (); |
| 99 | 99 | |
| 100 | 100 | $numlayers = $nmapa->numlayers; |
| ... | ... | @@ -102,7 +102,7 @@ function testaTabela($tema) { |
| 102 | 102 | for($i = 0; $i < $numlayers; $i ++) { |
| 103 | 103 | $layern = $nmapa->getlayer ( $i ); |
| 104 | 104 | $layern->set ( "status", MS_DEFAULT ); |
| 105 | - error_reporting ( E_ALL ); | |
| 105 | + //error_reporting ( E_ALL ); | |
| 106 | 106 | if ($layern->classitem != "" && $layern->connectiontype == 7 && $layern->numclasses > 0 && $layern->getmetadata ( "wms_sld_body" ) == "") { |
| 107 | 107 | $tipotemp = $layern->type; |
| 108 | 108 | $tiporep = $layern->getmetadata ( "tipooriginal" ); |
| ... | ... | @@ -179,7 +179,7 @@ function testaMapaImg($tema) { |
| 179 | 179 | $locaplic = $_SESSION ["locaplic"]; |
| 180 | 180 | $base = mapaBase ( $_SESSION ["locaplic"], $versao, $base ); |
| 181 | 181 | $mapa = ms_newMapObj ( $base ); |
| 182 | - error_reporting ( E_ALL ); | |
| 182 | + //error_reporting ( E_ALL ); | |
| 183 | 183 | ms_ResetErrorList (); |
| 184 | 184 | try { |
| 185 | 185 | ms_newMapObj ( $tema ); |
| ... | ... | @@ -219,7 +219,7 @@ function testaMapaImg($tema) { |
| 219 | 219 | $layern = $nmapa->getlayer ( $i ); |
| 220 | 220 | $layern->set ( "status", MS_DEFAULT ); |
| 221 | 221 | autoClasses ( $layern, $nmapa ); |
| 222 | - error_reporting ( E_ALL ); | |
| 222 | + //error_reporting ( E_ALL ); | |
| 223 | 223 | if ($layern->classitem != "" && $layern->connectiontype == 7 && $layern->numclasses > 0 && $layern->getmetadata ( "wms_sld_body" ) == "") { |
| 224 | 224 | $tipotemp = $layern->type; |
| 225 | 225 | $tiporep = $layern->getmetadata ( "tipooriginal" ); | ... | ... |
admin1/dicionario/core.js
| ... | ... | @@ -174,5 +174,10 @@ i3GEOadmin.core.dicionario = { |
| 174 | 174 | pt : "Hora", |
| 175 | 175 | en : "", |
| 176 | 176 | es : "" |
| 177 | + } ], | |
| 178 | + 'confirma' : [ { | |
| 179 | + pt : "As alterações não poderão ser revertidas. Continua?", | |
| 180 | + en : "", | |
| 181 | + es : "" | |
| 177 | 182 | } ] |
| 178 | 183 | }; | ... | ... |
admin1/ferramentas/miniaturas/exec.php
| ... | ... | @@ -13,7 +13,7 @@ if(empty($_GET["tipo"])){ |
| 13 | 13 | <div class="col-md-12"> |
| 14 | 14 | <div class="well"> |
| 15 | 15 | <?php |
| 16 | - error_reporting (E_ALL); | |
| 16 | + //error_reporting (E_ALL); | |
| 17 | 17 | // |
| 18 | 18 | //carrega o phpmapscript |
| 19 | 19 | // |
| ... | ... | @@ -26,7 +26,7 @@ if(empty($_GET["tipo"])){ |
| 26 | 26 | if (ob_get_level() == 0){ |
| 27 | 27 | ob_start(); |
| 28 | 28 | } |
| 29 | - error_reporting (E_ALL); | |
| 29 | + //error_reporting (E_ALL); | |
| 30 | 30 | $arqs = listaArquivos("../../../temas",true,array("map")); |
| 31 | 31 | $arqs = $arqs["arquivos"]; |
| 32 | 32 | sort($arqs); | ... | ... |
admin1/ferramentas/miniaturas/index.php
| ... | ... | @@ -112,7 +112,7 @@ if(empty($_POST["tipo"])){ |
| 112 | 112 | <div class="col-md-12"> |
| 113 | 113 | <div class="well"> |
| 114 | 114 | <?php |
| 115 | - error_reporting (E_ALL); | |
| 115 | + //error_reporting (E_ALL); | |
| 116 | 116 | $versao = \admin\php\funcoesAdmin\versao(); |
| 117 | 117 | $versao = $versao["principal"]; |
| 118 | 118 | |
| ... | ... | @@ -122,7 +122,7 @@ if(empty($_POST["tipo"])){ |
| 122 | 122 | if (ob_get_level() == 0){ |
| 123 | 123 | ob_start(); |
| 124 | 124 | } |
| 125 | - error_reporting (E_ALL); | |
| 125 | + //error_reporting (E_ALL); | |
| 126 | 126 | $arqs = listaArquivos("../../../temas",true,array("map")); |
| 127 | 127 | $arqs = $arqs["arquivos"]; |
| 128 | 128 | sort($arqs); | ... | ... |
admin1/php/checaLogin.php
admin1/php/funcoesAdmin.php
| ... | ... | @@ -82,7 +82,7 @@ function retornaJSON($obj) |
| 82 | 82 | { |
| 83 | 83 | $locaplic = $_SESSION["locaplic"]; |
| 84 | 84 | include_once($locaplic."/pacotes/cpaint/JSON/json2.php"); |
| 85 | - error_reporting (E_ALL); | |
| 85 | + //error_reporting (E_ALL); | |
| 86 | 86 | ob_end_clean(); |
| 87 | 87 | $j = new Services_JSON(); |
| 88 | 88 | $texto = $j->encode($obj); |
| ... | ... | @@ -185,7 +185,7 @@ function pegaDados($sql,$dbh="",$close=true) |
| 185 | 185 | if($dbh == "" || is_string($dbh)){ |
| 186 | 186 | include(dirname(__FILE__)."/conexao.php"); |
| 187 | 187 | } |
| 188 | - error_reporting (E_ALL); | |
| 188 | + //error_reporting (E_ALL); | |
| 189 | 189 | //$dbh deve ser definido com somente leitura, mas por prevencao: |
| 190 | 190 | $sql = str_ireplace(array("update","delete","insert","--","drop",";"),"",$sql); |
| 191 | 191 | $q = $dbh->query($sql,PDO::FETCH_ASSOC); |
| ... | ... | @@ -472,7 +472,7 @@ function nomeRandomico($n=10) |
| 472 | 472 | */ |
| 473 | 473 | function substituiCon($map_file,$postgis_mapa) |
| 474 | 474 | { |
| 475 | - error_reporting (E_ALL); | |
| 475 | + //error_reporting (E_ALL); | |
| 476 | 476 | if (!empty($postgis_mapa) && (file_exists($map_file))) |
| 477 | 477 | { |
| 478 | 478 | if(!@ms_newMapObj($map_file)){return false;} |
| ... | ... | @@ -507,7 +507,7 @@ function substituiCon($map_file,$postgis_mapa) |
| 507 | 507 | return true; |
| 508 | 508 | } |
| 509 | 509 | function substituiConObj($objMap,$postgis_mapa){ |
| 510 | - error_reporting (E_ALL); | |
| 510 | + //error_reporting (E_ALL); | |
| 511 | 511 | if (!empty($postgis_mapa)){ |
| 512 | 512 | $numlayers = $objMap->numlayers; |
| 513 | 513 | for ($i=0;$i < $numlayers;++$i){ | ... | ... |
aplicmap/dados/estados.shp.tl3x
No preview for this file type
classesjs/compactajs.php
| ... | ... | @@ -423,9 +423,9 @@ function salvatudojs($jsfiles,$buffer,$final,$tipo) |
| 423 | 423 | //gzip |
| 424 | 424 | $abre = fopen($final, "r"); |
| 425 | 425 | if ($tipo == "js") |
| 426 | - $buffer = "<?php error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header(\"Content-type: text/javascript\"); ?>"; | |
| 426 | + $buffer = "<?php //error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header(\"Content-type: text/javascript\"); ?>"; | |
| 427 | 427 | else |
| 428 | - $buffer = "<?php error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header(\"Content-type: text/css\"); ?>"; | |
| 428 | + $buffer = "<?php //error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header(\"Content-type: text/css\"); ?>"; | |
| 429 | 429 | while (!feof($abre)) |
| 430 | 430 | {$buffer .= fgets($abre);} |
| 431 | 431 | fclose($abre); | ... | ... |
classesjs/compactajs_closurecompiler.php
| ... | ... | @@ -376,9 +376,9 @@ function salvatudojs($jsfiles,$buffer,$final,$tipo) |
| 376 | 376 | //gzip |
| 377 | 377 | $abre = fopen($final, "r"); |
| 378 | 378 | if ($tipo == "js") |
| 379 | - $buffer = "<?php error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header(\"Content-type: text/javascript\"); ?>"; | |
| 379 | + $buffer = "<?php //error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header(\"Content-type: text/javascript\"); ?>"; | |
| 380 | 380 | else |
| 381 | - $buffer = "<?php error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header(\"Content-type: text/css\"); ?>"; | |
| 381 | + $buffer = "<?php //error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header(\"Content-type: text/css\"); ?>"; | |
| 382 | 382 | while (!feof($abre)) |
| 383 | 383 | {$buffer .= fgets($abre);} |
| 384 | 384 | fclose($abre); | ... | ... |
classesphp/atlas_controle.php
| ... | ... | @@ -63,7 +63,7 @@ mapdir - localiza&ccedil;&atilde;o, no servidor, do diretorio com o mapfile temp |
| 63 | 63 | imgdir - localização, no servidor, das imagens temporárias do mapa atual. |
| 64 | 64 | debug - (pode ser definido como "sim" indica se o erro_reporting deve ser definido como E_ALL |
| 65 | 65 | */ |
| 66 | -error_reporting(0); | |
| 66 | +//error_reporting(0); | |
| 67 | 67 | $tempo = microtime(1); |
| 68 | 68 | // |
| 69 | 69 | // quando as funções abaixo forem utilizadas, é necessário definir $map_file para que o programa continue. | ... | ... |
classesphp/classe_alteraclasse.php
| ... | ... | @@ -919,7 +919,7 @@ class Alteraclasse |
| 919 | 919 | */ |
| 920 | 920 | function alteracor($idclasse,$cor) |
| 921 | 921 | { |
| 922 | - error_reporting(0); | |
| 922 | + //error_reporting(0); | |
| 923 | 923 | if(!$this->layer){ |
| 924 | 924 | return "erro"; |
| 925 | 925 | } |
| ... | ... | @@ -948,7 +948,7 @@ class Alteraclasse |
| 948 | 948 | */ |
| 949 | 949 | function alterageometria($tipo) |
| 950 | 950 | { |
| 951 | - error_reporting(0); | |
| 951 | + //error_reporting(0); | |
| 952 | 952 | if(!$this->layer){ |
| 953 | 953 | return "erro"; |
| 954 | 954 | } | ... | ... |
classesphp/classe_analise.php
| ... | ... | @@ -250,7 +250,7 @@ class Analise { |
| 250 | 250 | break; |
| 251 | 251 | // delaunay e voronoi |
| 252 | 252 | case "deldir" : |
| 253 | - // error_reporting(0); | |
| 253 | + // //error_reporting(0); | |
| 254 | 254 | $this->mapaDeldir ( $nomearq, $dir_tmp, $R_path, $locaplic ); |
| 255 | 255 | $this->deldirDir2shp ( $nomearq . "dirsgs", $dir_tmp, $locaplic ); |
| 256 | 256 | $this->deldirDel2shp ( $nomearq . "delsgs", $dir_tmp, $locaplic ); |
| ... | ... | @@ -1179,7 +1179,7 @@ class Analise { |
| 1179 | 1179 | $lineo = $spt->line ( 0 ); |
| 1180 | 1180 | $pt = $lineo->point ( 0 ); |
| 1181 | 1181 | // faz a pesquisa |
| 1182 | - // error_reporting(0); | |
| 1182 | + // //error_reporting(0); | |
| 1183 | 1183 | foreach ( $layers as $layer ) { |
| 1184 | 1184 | $layer->set ( "template", "none.htm" ); |
| 1185 | 1185 | $layer->set ( "toleranceunits", MS_PIXELS ); |
| ... | ... | @@ -1270,7 +1270,7 @@ class Analise { |
| 1270 | 1270 | * |
| 1271 | 1271 | */ |
| 1272 | 1272 | function distanciaptpt($temaorigem, $temadestino, $temaoverlay, $locaplic, $itemorigem = "", $itemdestino = "") { |
| 1273 | - // error_reporting(0); | |
| 1273 | + // //error_reporting(0); | |
| 1274 | 1274 | set_time_limit ( 180 ); |
| 1275 | 1275 | // para manipular dbf |
| 1276 | 1276 | if ($this->dbaseExiste == false) { |
| ... | ... | @@ -1438,7 +1438,7 @@ class Analise { |
| 1438 | 1438 | */ |
| 1439 | 1439 | function criaBuffer($distancia, $locaplic, $unir = "nao", $wkt = "", $multiplicar = 1, $itemdistancia = "") { |
| 1440 | 1440 | set_time_limit ( 180 ); |
| 1441 | - error_reporting ( 0 ); | |
| 1441 | + //error_reporting ( 0 ); | |
| 1442 | 1442 | if ($this->nome != "") { |
| 1443 | 1443 | $items = pegaItens ( $this->layer ); |
| 1444 | 1444 | } else { |
| ... | ... | @@ -1580,7 +1580,7 @@ class Analise { |
| 1580 | 1580 | if ($this->dbaseExiste == false) { |
| 1581 | 1581 | include_once dirname ( __FILE__ ) . "/../pacotes/phpxbase/api_conversion.php"; |
| 1582 | 1582 | } |
| 1583 | - // error_reporting(0); | |
| 1583 | + // //error_reporting(0); | |
| 1584 | 1584 | $nomeCentro = nomeRandomico (); |
| 1585 | 1585 | $nomeshp = $this->diretorio . "/" . $nomeCentro; |
| 1586 | 1586 | // pega os shapes selecionados |
| ... | ... | @@ -2206,7 +2206,7 @@ class Analise { |
| 2206 | 2206 | * $locaplic - Localização do I3geo |
| 2207 | 2207 | */ |
| 2208 | 2208 | function nptPol($temaPt, $temaPo, $locaplic, $somaritem = "") { |
| 2209 | - // error_reporting(0); | |
| 2209 | + // //error_reporting(0); | |
| 2210 | 2210 | set_time_limit ( 180 ); |
| 2211 | 2211 | // para manipular dbf |
| 2212 | 2212 | if ($this->dbaseExiste == false) { |
| ... | ... | @@ -2704,7 +2704,7 @@ class Analise { |
| 2704 | 2704 | * $operacao - Tipo de análise. |
| 2705 | 2705 | */ |
| 2706 | 2706 | function calculaGeometrias($dir_tmp, $imgdir, $lista, $operacao) { |
| 2707 | - // error_reporting(0); | |
| 2707 | + // //error_reporting(0); | |
| 2708 | 2708 | $lista = explode ( ",", $lista ); |
| 2709 | 2709 | $dir = $dir_tmp . "/" . $imgdir . "/"; |
| 2710 | 2710 | foreach ( $lista as $l ) { |
| ... | ... | @@ -3056,7 +3056,7 @@ class Analise { |
| 3056 | 3056 | * ) |
| 3057 | 3057 | * (end) |
| 3058 | 3058 | */ |
| 3059 | - // error_reporting(0); | |
| 3059 | + // //error_reporting(0); | |
| 3060 | 3060 | function classesRasterI($minvalor, $maxvalor, $nclasses, $cores) { |
| 3061 | 3061 | $resultado = array (); |
| 3062 | 3062 | $intervalo = intval ( 250 / $nclasses ); | ... | ... |
classesphp/classe_atlas.php
classesphp/classe_atributos.php
| ... | ... | @@ -386,7 +386,7 @@ class Atributos |
| 386 | 386 | */ |
| 387 | 387 | function listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista,$dadosDaClasse="nao") |
| 388 | 388 | { |
| 389 | - error_reporting(0); | |
| 389 | + //error_reporting(0); | |
| 390 | 390 | if(!$this->layer){ |
| 391 | 391 | return "erro"; |
| 392 | 392 | } |
| ... | ... | @@ -585,7 +585,7 @@ class Atributos |
| 585 | 585 | */ |
| 586 | 586 | function listaUnicoRapida($item) |
| 587 | 587 | { |
| 588 | - error_reporting(0); | |
| 588 | + //error_reporting(0); | |
| 589 | 589 | if(!$this->layer){ |
| 590 | 590 | return "erro"; |
| 591 | 591 | } |
| ... | ... | @@ -645,7 +645,7 @@ class Atributos |
| 645 | 645 | */ |
| 646 | 646 | function listaRegistrosXY($items,$tipo,$tipolista) |
| 647 | 647 | { |
| 648 | - error_reporting(0); | |
| 648 | + //error_reporting(0); | |
| 649 | 649 | if(!$this->layer){ |
| 650 | 650 | return "erro"; |
| 651 | 651 | } | ... | ... |
classesphp/classe_legenda.php
| ... | ... | @@ -297,6 +297,69 @@ class Legenda |
| 297 | 297 | $l = implode("<tr>",$pedacos); |
| 298 | 298 | return (array("legenda"=>$l,"desativar"=>$desligar)); |
| 299 | 299 | } |
| 300 | + function criaLegendaJson($w=25,$h=25) | |
| 301 | + { | |
| 302 | + $l = ""; | |
| 303 | + $numlayers = $this->mapa->numlayers; | |
| 304 | + if($this->nome != ""){ | |
| 305 | + //verifica se é wms ou se o metadata legendaimg está definido | |
| 306 | + $c = $this->layer->connectiontype; | |
| 307 | + if ($c == 7 || $this->layer->getmetadata("legendaimg") != ""){ | |
| 308 | + return($this->tabelaLegenda()); | |
| 309 | + } | |
| 310 | + for ($i=0;$i < $numlayers;++$i){ | |
| 311 | + $la = $this->mapa->getlayer($i); | |
| 312 | + if ($la->name != $this->nome) | |
| 313 | + { | |
| 314 | + $la->set("status",MS_OFF); | |
| 315 | + } | |
| 316 | + if ($la->group == $this->nome) | |
| 317 | + { | |
| 318 | + $la->set("status",MS_DEFAULT); | |
| 319 | + } | |
| 320 | + $la->set("minscaledenom",0); | |
| 321 | + $la->set("maxscaledenom",0); | |
| 322 | + } | |
| 323 | + $this->layer->set("status",MS_DEFAULT); | |
| 324 | + } | |
| 325 | + $desligar = array(); | |
| 326 | + $legenda = array(); | |
| 327 | + for ($i=0;$i < $numlayers;++$i){ | |
| 328 | + $la = $this->mapa->getlayer($i); | |
| 329 | + if (strtoupper($la->getmetadata("ESCONDIDO")) == "SIM"){ | |
| 330 | + $la->set("status",MS_OFF); | |
| 331 | + } | |
| 332 | + $desligarLayer = array(); | |
| 333 | + if($la->status == MS_DEFAULT){ | |
| 334 | + $la->set("minscaledenom",0); | |
| 335 | + $la->set("maxscaledenom",0); | |
| 336 | + $nc = $la->numclasses; | |
| 337 | + $classes = array(); | |
| 338 | + for ($c = 0;$c < $nc;$c++){ | |
| 339 | + $ck = "checked"; | |
| 340 | + $classe = $la->getclass($c); | |
| 341 | + if($classe->status == MS_OFF){ | |
| 342 | + $ck = ""; | |
| 343 | + } | |
| 344 | + //remove o offset em simbolos do tipo imagem | |
| 345 | + if($classe->numstyles > 0){ | |
| 346 | + $estilo = $classe->getstyle(0); | |
| 347 | + if($estilo->symbolname != "" && file_exists($estilo->symbolname)){ | |
| 348 | + $estilo->set("offsetx",0); | |
| 349 | + $estilo->set("offsety",0); | |
| 350 | + } | |
| 351 | + } | |
| 352 | + $imagem = $classe->createLegendIcon($w,$h)->saveWebImage(); | |
| 353 | + | |
| 354 | + $classes[] = array("nome"=>$this->converte($classe->name),"img"=>$imagem, "checked"=>$ck, "index" => $c, "layer"=> $la->name ); | |
| 355 | + } | |
| 356 | + $legenda[] = array("layer"=>$la->name,"nome"=>$this->converte($la->getmetadata("tema")),"classes"=>$classes); | |
| 357 | + } | |
| 358 | + $desligar[$la->name] = $desligarLayer; | |
| 359 | + } | |
| 360 | + return (array("legenda"=>$legenda)); | |
| 361 | + } | |
| 362 | + | |
| 300 | 363 | /* |
| 301 | 364 | function: legendaGrafica |
| 302 | 365 | |
| ... | ... | @@ -599,7 +662,7 @@ class Legenda |
| 599 | 662 | { |
| 600 | 663 | $versao = versao(); |
| 601 | 664 | $versao = $versao["principal"]; |
| 602 | - error_reporting(0); | |
| 665 | + //error_reporting(0); | |
| 603 | 666 | if ($tipo == 3){ |
| 604 | 667 | $tipo = 2; |
| 605 | 668 | } //tipo raster |
| ... | ... | @@ -903,7 +966,7 @@ class Legenda |
| 903 | 966 | */ |
| 904 | 967 | function pegaParametrosLegImg() |
| 905 | 968 | { |
| 906 | - error_reporting(0); | |
| 969 | + //error_reporting(0); | |
| 907 | 970 | $legenda = $this->mapa->legend; |
| 908 | 971 | $height = $legenda->height; |
| 909 | 972 | $width = $legenda->width; | ... | ... |
classesphp/classe_menutemas.php
| ... | ... | @@ -123,7 +123,6 @@ array |
| 123 | 123 | $r["temas"] = $temasR; |
| 124 | 124 | $final[] = $r; |
| 125 | 125 | } |
| 126 | - | |
| 127 | 126 | unset($arvore); |
| 128 | 127 | return ($final); |
| 129 | 128 | } |
| ... | ... | @@ -293,7 +292,7 @@ Array |
| 293 | 292 | */ |
| 294 | 293 | function pegaSistemas() |
| 295 | 294 | { |
| 296 | - error_reporting(0); | |
| 295 | + //error_reporting(0); | |
| 297 | 296 | include_once($this->locaplic."/admin/php/xml.php"); |
| 298 | 297 | $xmlsistemas = simplexml_load_string(geraXmlSistemas(implode(" ",$this->perfil),$this->locaplic)); |
| 299 | 298 | $sistemas = array(); |
| ... | ... | @@ -339,7 +338,7 @@ Array |
| 339 | 338 | */ |
| 340 | 339 | function pegaSistemasI() |
| 341 | 340 | { |
| 342 | - error_reporting(0); | |
| 341 | + //error_reporting(0); | |
| 343 | 342 | include_once($this->locaplic."/admin/php/xml.php"); |
| 344 | 343 | |
| 345 | 344 | $xmlsistemas = simplexml_load_string(geraXmlIdentifica(implode(" ",$this->perfil),$this->locaplic)); |
| ... | ... | @@ -660,21 +659,22 @@ nrss - (opcional) n&uacute;mero de registros no rss que ser&atilde;o considerado |
| 660 | 659 | } |
| 661 | 660 | return ($final); |
| 662 | 661 | } |
| 663 | - function verificaPapelSessao($id_papel){ | |
| 662 | + function verificaPapelSessao($id_papel=""){ | |
| 664 | 663 | if(!empty($_COOKIE["i3geocodigologin"])){ |
| 665 | 664 | session_write_close(); |
| 666 | 665 | session_name("i3GeoLogin"); |
| 667 | 666 | session_id($_COOKIE["i3geocodigologin"]); |
| 668 | 667 | session_start(); |
| 669 | - //var_dump($_SESSION);exit; | |
| 670 | 668 | if($_SESSION["usuario"] != $_COOKIE["i3geousuariologin"]){ |
| 671 | 669 | return false; |
| 672 | 670 | } |
| 673 | 671 | foreach($_SESSION["papeis"] as $p){ |
| 674 | - if($p["id_papel"] == 1 || $p["id_papel"] == $id_papel){ | |
| 672 | + if($p == 1 || $p == $id_papel){ | |
| 673 | + //error_log("------------------true".json_encode($_SESSION["papeis"])); | |
| 675 | 674 | return true; |
| 676 | 675 | } |
| 677 | 676 | } |
| 677 | + return false; | |
| 678 | 678 | } |
| 679 | 679 | else{//caso nao exista, retorna um erro |
| 680 | 680 | return false; | ... | ... |
classesphp/classe_metaestat.php
| ... | ... | @@ -1,2017 +0,0 @@ |
| 1 | -<?php | |
| 2 | -namespace i3geo\classesphp\metaestat; | |
| 3 | -use PDO; | |
| 4 | -/** | |
| 5 | - * Classe metaestat | |
| 6 | - * O construtor da classe faz o include do programa conexao.php que por sua vez faz o include | |
| 7 | - * de i3geo/ms_configura.php. Com base nesses programas sao definidas algumas das variaveis globais | |
| 8 | -*/ | |
| 9 | -class Metaestat{ | |
| 10 | - /** | |
| 11 | - * Nome do esquema no banco de dados utilizado para armazenar as tabelas | |
| 12 | - * do sistema de admnistracao. Obtido de ms_configura.php | |
| 13 | - */ | |
| 14 | - protected $esquemaadmin; | |
| 15 | - /** | |
| 16 | - * Objeto PDO obtido com new PDO com direito de leitura no banco de dados de administracao | |
| 17 | - */ | |
| 18 | - public $dbh; | |
| 19 | - /** | |
| 20 | - * Indica se e necessario converter para UTF strings obtidas do banco de administracao | |
| 21 | - */ | |
| 22 | - public $convUTF; | |
| 23 | - /** | |
| 24 | - * Pasta temporaria utilizada pelo mapserver | |
| 25 | - */ | |
| 26 | - public $dir_tmp; | |
| 27 | - /** | |
| 28 | - * Pasta onde e feito o cache de imagens do i3Geo | |
| 29 | - */ | |
| 30 | - public $nomecache; | |
| 31 | - /** | |
| 32 | - * Grava ou nao o log de transacoes | |
| 33 | - */ | |
| 34 | - public $logTransacoes; | |
| 35 | - /** | |
| 36 | - * Construtor | |
| 37 | - * Faz o include de conexao.php que por sua vez faz o include de i3geo/ms_configura.php | |
| 38 | - */ | |
| 39 | - function __construct(){ | |
| 40 | - error_reporting(0); | |
| 41 | - include(dirname(__FILE__)."/../admin/php/conexao.php"); | |
| 42 | - //vem do include | |
| 43 | - $this->dir_tmp = $dir_tmp; | |
| 44 | - $this->logTransacoes = $logTransacoes; | |
| 45 | - $this->locaplic = $locaplic; | |
| 46 | - $this->base = $base; | |
| 47 | - if(!isset($convUTF)){ | |
| 48 | - $convUTF = true; | |
| 49 | - } | |
| 50 | - $this->convUTF = $convUTF; | |
| 51 | - $this->dbh = $dbh; | |
| 52 | - $this->esquemaadmin = ""; | |
| 53 | - if(!empty($esquemaadmin)){ | |
| 54 | - $this->esquemaadmin = str_replace(".","",$esquemaadmin)."."; | |
| 55 | - } | |
| 56 | - $this->nomecache = $this->nomeCache(); | |
| 57 | - } | |
| 58 | - function __destruct(){ | |
| 59 | - $this->fechaConexao(); | |
| 60 | - } | |
| 61 | - /** | |
| 62 | - * Cria um nome de arquivo concatenando $_request | |
| 63 | - * @return string | |
| 64 | - */ | |
| 65 | - function nomeCache(){ | |
| 66 | - return "AAAA".md5(implode("x",$_REQUEST)); | |
| 67 | - } | |
| 68 | - /** | |
| 69 | - * Cria um nome aleatorio | |
| 70 | - * @param numero de caracteres | |
| 71 | - * @return string | |
| 72 | - */ | |
| 73 | - function nomeRandomico($n=10){ | |
| 74 | - $nomes = ""; | |
| 75 | - $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ'; | |
| 76 | - $max = 51; | |
| 77 | - for($i=0; $i < $n; ++$i) | |
| 78 | - { | |
| 79 | - $nomes .= $a{mt_rand(0, $max)}; | |
| 80 | - } | |
| 81 | - return $nomes; | |
| 82 | - } | |
| 83 | - /** | |
| 84 | - * Fecha a conexao com o banco de dados de administracao | |
| 85 | - */ | |
| 86 | - function fechaConexao(){ | |
| 87 | - $this->dbh = null; | |
| 88 | - } | |
| 89 | - /** | |
| 90 | - * Aplica a conversao de caracteres em um array ou string conforme o padrao do banco de administracao | |
| 91 | - * Verifica se o parametro e um array ou um texto e executa converteTexto() | |
| 92 | - * @param string|array | |
| 93 | - * @return string|array | |
| 94 | - */ | |
| 95 | - function converteTextoArray($texto){ | |
| 96 | - try { | |
| 97 | - if(empty($texto) || strtoupper($texto) == "NULL"){ | |
| 98 | - return ""; | |
| 99 | - } | |
| 100 | - $chaves = array_keys($texto); | |
| 101 | - if($chaves[0] != "0"){ | |
| 102 | - foreach($chaves as $chave){ | |
| 103 | - $texto[$chave] = $this->converteTexto($texto[$chave]); | |
| 104 | - } | |
| 105 | - } | |
| 106 | - else{ | |
| 107 | - $n = count($texto); | |
| 108 | - for($i=0;$i<$n;$i++){ | |
| 109 | - $chaves = array_keys($texto[$i]); | |
| 110 | - foreach($chaves as $chave){ | |
| 111 | - if(is_string($texto[$i][$chave])){ | |
| 112 | - $t = $this->converteTexto($texto[$i][$chave]); | |
| 113 | - $texto[$i][$chave] = $t; | |
| 114 | - } | |
| 115 | - } | |
| 116 | - } | |
| 117 | - } | |
| 118 | - return $texto; | |
| 119 | - } | |
| 120 | - catch (Exception $e) { | |
| 121 | - return $texto; | |
| 122 | - } | |
| 123 | - } | |
| 124 | - /** | |
| 125 | - * Converte a codificacao de caracteres de uma string conforme o padrao do banco de admnistracao | |
| 126 | - * @param string | |
| 127 | - * @return string | |
| 128 | - */ | |
| 129 | - function converteTexto($texto){ | |
| 130 | - if($texto == "0"){ | |
| 131 | - return "0"; | |
| 132 | - } | |
| 133 | - if(empty($texto)){ | |
| 134 | - return ""; | |
| 135 | - } | |
| 136 | - if($this->convUTF == true){ | |
| 137 | - $texto = mb_convert_encoding($texto,mb_detect_encoding($texto),"UTF-8"); | |
| 138 | - } | |
| 139 | - else{ | |
| 140 | - $texto = mb_convert_encoding($texto,mb_detect_encoding($texto),"ISO-8859-1"); | |
| 141 | - } | |
| 142 | - return $texto; | |
| 143 | - } | |
| 144 | - /** | |
| 145 | - * Executa um SQL no banco de administracao | |
| 146 | - * Utiliza fetchAll() para obter os dados | |
| 147 | - * O resultado e processado por converteTextoArray se for desejado | |
| 148 | - * @param string sql | |
| 149 | - * @param se for vazio retorna todos os registros, caso contrario, retorna apenas o primeiro | |
| 150 | - * @param indica se deve ser feita a conversao de caracteres | |
| 151 | - * @return Array | |
| 152 | - */ | |
| 153 | - function execSQL($sql,$id="",$convTexto=true){ | |
| 154 | - $sql = str_ireplace(array("update","delete","insert","--","drop",";"),"",$sql); | |
| 155 | - try { | |
| 156 | - $q = $this->dbh->query($sql,PDO::FETCH_ASSOC); | |
| 157 | - } | |
| 158 | - catch (PDOException $e) { | |
| 159 | - return "Error!: "; | |
| 160 | - } | |
| 161 | - if($q){ | |
| 162 | - $r = $q->fetchAll(); | |
| 163 | - if($convTexto == false){ | |
| 164 | - return $r; | |
| 165 | - } | |
| 166 | - if($r){ | |
| 167 | - if($id != ""){ | |
| 168 | - if(count($r) == 1){ | |
| 169 | - $r = $r[0]; | |
| 170 | - } | |
| 171 | - else{ | |
| 172 | - $r = array(); | |
| 173 | - } | |
| 174 | - } | |
| 175 | - if($r != false && count($r) > 0){ | |
| 176 | - $r = $this->converteTextoArray($r); | |
| 177 | - } | |
| 178 | - return $r; | |
| 179 | - } | |
| 180 | - else{ | |
| 181 | - return array(); | |
| 182 | - } | |
| 183 | - } | |
| 184 | - else{ | |
| 185 | - return false; | |
| 186 | - } | |
| 187 | - } | |
| 188 | - /** | |
| 189 | - * Executa um SQL no banco de dados definido em uma conexao cadastrada no sistema de admnistracao | |
| 190 | - * @param codigo da conexao | |
| 191 | - * @param tring sql | |
| 192 | - * @return resultado de execSQL | |
| 193 | - */ | |
| 194 | - function execSQLDB($codigo_estat_conexao,$sql){ | |
| 195 | - $buscar = array("drop","update","insert","delete"); | |
| 196 | - $sql = str_ireplace($buscar,"",$sql); | |
| 197 | - $c = $this->listaConexao($codigo_estat_conexao,true); | |
| 198 | - $dbhold = $this->dbh; | |
| 199 | - $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 200 | - $this->dbh = $dbh; | |
| 201 | - $res = $this->execSQL($sql,"",false); | |
| 202 | - $this->dbh = $dbhold; | |
| 203 | - return $res; | |
| 204 | - } | |
| 205 | - /** | |
| 206 | - * Monta o sql que permite acessar os dados de uma media de uma variavel | |
| 207 | - * @param id da medida da variavel | |
| 208 | - * @param inclui todas as colunas da tabela com os dados ou nao | |
| 209 | - * @param coluna que sera usada para agrupar os dados | |
| 210 | - * @param tipo de layer. Usado para escolher qual coluna com as geometrias sera incluida no sql | |
| 211 | - * @param codigo do tipo de regiao. Se nao for definido, utiliza-se o default da variavel | |
| 212 | - * @param le os dados diretamente da tabela sem nenhum tipo de agrupamento, seja por data ou outro parametro | |
| 213 | - * @return array("sqlagrupamento"=>,"sql"=>,"sqlmapserver"=>,"filtro"=>,"colunas"=>,"alias"=>,"colunavalor"=>,"titulo"=>,"nomeregiao"=>) | |
| 214 | - */ | |
| 215 | - function sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor="",$tipolayer="polygon",$codigo_tipo_regiao = "",$suportaWMST = false,$filtro = "",$direto=false){ | |
| 216 | - // | |
| 217 | - //o sql que faz acesso aos dados e marcado com /*SE*//*SE*/ na string que sera usada nos mapfiles | |
| 218 | - //a parte que contem referencias a coluna com a geometria e marcada com /*SG*//*SG*/ | |
| 219 | - // | |
| 220 | - //registros da medida da variavel | |
| 221 | - $dados = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 222 | - | |
| 223 | - if(!empty($dados["filtro"])){ | |
| 224 | - if($filtro == ""){ | |
| 225 | - $filtro = $dados["filtro"]; | |
| 226 | - } | |
| 227 | - else{ | |
| 228 | - $filtro = $filtro." AND (".$dados["filtro"].")"; | |
| 229 | - } | |
| 230 | - } | |
| 231 | - | |
| 232 | - //parametros da medida da variavel | |
| 233 | - $parametrosMedida = array(); | |
| 234 | - $pp = $this->listaParametro($id_medida_variavel,"",0); | |
| 235 | - foreach($pp as $p){ | |
| 236 | - $parametrosMedida[] = $p["coluna"]; | |
| 237 | - } | |
| 238 | - | |
| 239 | - //titulo da medida de variavel | |
| 240 | - $titulo = $dados["nomemedida"]; | |
| 241 | - //indica se os dados devem ser agregados a uma regiao de nivel superior | |
| 242 | - $agregaregiao = false; | |
| 243 | - //nome da coluna que contem os limites geograficos da regiao desejada pelo usuario | |
| 244 | - $colunageo = ""; | |
| 245 | - | |
| 246 | - //se a regiao definida para a medida da variavel for diferente da regiao indicada pelo usuario | |
| 247 | - //significa que a regiao indicada pelo usuario e uma agragacao | |
| 248 | - if($codigo_tipo_regiao != "" && $dados["codigo_tipo_regiao"] != $codigo_tipo_regiao){ | |
| 249 | - $agregaregiao = true; | |
| 250 | - //guarda os dados da regiao que agrega a regiao original da medida variavel | |
| 251 | - $dadosgeo = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 252 | - } | |
| 253 | - else{ | |
| 254 | - $dadosgeo = $this->listaTipoRegiao($dados["codigo_tipo_regiao"]); | |
| 255 | - } | |
| 256 | - if($tipolayer != "point"){ | |
| 257 | - $colunageo = $dadosgeo["colunageo"]; | |
| 258 | - $titulo .= " (pol) "; | |
| 259 | - } | |
| 260 | - else{ | |
| 261 | - $colunageo = $dadosgeo["colunacentroide"]; | |
| 262 | - $titulo .= " (pt) "; | |
| 263 | - } | |
| 264 | - $titulo .= $dadosgeo["nome_tipo_regiao"]; | |
| 265 | - | |
| 266 | - $vis = $dadosgeo["colunasvisiveis"]; | |
| 267 | - if(!empty($vis) && $suportaWMST == false){ | |
| 268 | - $vis = $vis.",".$dadosgeo["identificador"]; | |
| 269 | - $vis = str_replace(" ",",",$vis); | |
| 270 | - $vis = str_replace(",,",",",$vis); | |
| 271 | - $vis = str_replace(";",",",$vis); | |
| 272 | - | |
| 273 | - $colunasSemGeo = explode(",",$vis); | |
| 274 | - $colunasSemGeo = array_unique($colunasSemGeo); | |
| 275 | - | |
| 276 | - if($dadosgeo["apelidos"] != ""){ | |
| 277 | - $alias = "Valor,".$dadosgeo["apelidos"].",".$dadosgeo["identificador"]; | |
| 278 | - $alias = mb_convert_encoding($alias,"ISO-8859-1",mb_detect_encoding($alias)); | |
| 279 | - $alias = str_replace(";",",",$alias); | |
| 280 | - $alias = str_replace(",,",",",$alias); | |
| 281 | - $alias = explode(",",$alias); | |
| 282 | - $alias = array_unique($alias); | |
| 283 | - } | |
| 284 | - else{ | |
| 285 | - $alias = $colunasSemGeo; | |
| 286 | - } | |
| 287 | - if(count($alias)-1 != count($colunasSemGeo)){ | |
| 288 | - $alias = array(); | |
| 289 | - } | |
| 290 | - } | |
| 291 | - else{ | |
| 292 | - //colunas da tabela geometria sem as colunas GEOMETRY | |
| 293 | - $colunasSemGeo = $this->colunasTabela($dadosgeo["codigo_estat_conexao"], $dadosgeo["esquemadb"], $dadosgeo["tabela"],"geometry","!="); | |
| 294 | - $alias = array(); | |
| 295 | - if($suportaWMST == true){ | |
| 296 | - $sqlWMST = $this->listaParametroTempo2CampoData($id_medida_variavel); | |
| 297 | - $colunasSemGeo[] = "dimtempo"; | |
| 298 | - } | |
| 299 | - } | |
| 300 | - //verifica o tipo de calculo para agragacao de valores | |
| 301 | - $tipoconta = ""; | |
| 302 | - if($dados["permitesoma"] == 1 && $direto == false){ | |
| 303 | - $tipoconta = "sum"; | |
| 304 | - if($agregaregiao == true){ | |
| 305 | - $titulo .= " - soma"; | |
| 306 | - } | |
| 307 | - } | |
| 308 | - elseif($dados["permitemedia"] == 1 && $direto == false){ | |
| 309 | - $tipoconta = "avg"; | |
| 310 | - if($agregaregiao == true){ | |
| 311 | - $titulo .= " - media"; | |
| 312 | - } | |
| 313 | - } | |
| 314 | - | |
| 315 | - //obtem o SQL que faz o acesso aos dados da media da variavel | |
| 316 | - if($dados["colunavalor"] == ""){ | |
| 317 | - $nomevalorcalculado = "'1'::numeric"; | |
| 318 | - } | |
| 319 | - else{ | |
| 320 | - $nomevalorcalculado = $dados["colunavalor"]; | |
| 321 | - } | |
| 322 | - | |
| 323 | - $sqlDadosMedidaVariavel = "SELECT ".$dados["colunaidgeo"]." AS cod_regiao,$tipoconta(".$nomevalorcalculado.") AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; | |
| 324 | - if($suportaWMST == true && $direto == false){ | |
| 325 | - $sqlDadosMedidaVariavel = "SELECT $sqlWMST as dimtempo,".$dados["colunaidgeo"]." AS cod_regiao,".$nomevalorcalculado." AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; | |
| 326 | - } | |
| 327 | - if(!empty ($filtro) && $direto == false){ | |
| 328 | - $sqlDadosMedidaVariavel .= " WHERE ".$filtro . " AND ".$nomevalorcalculado." IS NOT NULL "; | |
| 329 | - } | |
| 330 | - else{ | |
| 331 | - $sqlDadosMedidaVariavel .= " WHERE ".$nomevalorcalculado." IS NOT NULL "; | |
| 332 | - } | |
| 333 | - if($suportaWMST != true && $direto == false){ | |
| 334 | - $sqlDadosMedidaVariavel .= " /*FA*//*FA*/ /*FAT*//*FAT*/ GROUP BY cod_regiao "; | |
| 335 | - } | |
| 336 | - $sqlagrupamento = ""; | |
| 337 | - //sql que retorna a lista de ocorrencias agrupados de uma coluna especifica | |
| 338 | - if(!empty($agruparpor) && $direto == false){ | |
| 339 | - $sqlagrupamento = " SELECT $agruparpor FROM ".$dados["esquemadb"].".".$dados["tabela"]; | |
| 340 | - if(!empty ($filtro)){ | |
| 341 | - $sqlagrupamento .= " WHERE ".$filtro; | |
| 342 | - } | |
| 343 | - $sqlagrupamento .= " /*FA*//*FA*/ /*FAT*//*FAT*/ GROUP BY ".$agruparpor." ORDER BY ".$agruparpor; | |
| 344 | - } | |
| 345 | - if($dados["colunavalor"] == ""){ | |
| 346 | - $nomeColunaValor = "contagem"; | |
| 347 | - } | |
| 348 | - else{ | |
| 349 | - $nomeColunaValor = $dados["colunavalor"]; | |
| 350 | - } | |
| 351 | - $sqlIntermediario = "SELECT (j.valorcalculado) AS ".$nomeColunaValor.", __COLUNASSEMGEO__". | |
| 352 | - " FROM ".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." AS regiao ". | |
| 353 | - " INNER JOIN ( __SQLDADOS__ ) ". | |
| 354 | - " AS j ON j.cod_regiao::text = regiao.".$dadosgeo["identificador"]."::text"; | |
| 355 | - //inclui os sqls de regioes de niveis inferiores | |
| 356 | - if($agregaregiao == true && $direto == false){ | |
| 357 | - $hierarquia = $this->regiaoFilhaAoPai($dados["codigo_tipo_regiao"],$codigo_tipo_regiao); | |
| 358 | - $caminho = $hierarquia["caminho"]; | |
| 359 | - $dadosColunas = $hierarquia["colunas"]; | |
| 360 | - //var_dump($hierarquia);exit; | |
| 361 | - if(count($caminho) > 0){ | |
| 362 | - $caminho = array_reverse($caminho); | |
| 363 | - foreach($caminho as $idregiao){ | |
| 364 | - if($idregiao != $codigo_tipo_regiao){//a regiao pai ja esta no sql | |
| 365 | - $tempDadosRegiao = $this->listaTipoRegiao($idregiao); | |
| 366 | - //para contador forcado | |
| 367 | - if($dados["colunavalor"] == ""){ | |
| 368 | - $nomevalorcalculado = "'1'::numeric"; | |
| 369 | - } | |
| 370 | - else{ | |
| 371 | - $nomevalorcalculado = "j.valorcalculado"; | |
| 372 | - } | |
| 373 | - $temp = "SELECT regiao.".$dadosColunas[$idregiao]["colunaligacao_regiaopai"]." AS cod_regiao,sum(".$nomevalorcalculado.") AS valorcalculado ". | |
| 374 | - "FROM ".$tempDadosRegiao["esquemadb"].".".$tempDadosRegiao["tabela"]." AS regiao ". | |
| 375 | - "INNER JOIN ". | |
| 376 | - "( __SQLDADOS__ )". | |
| 377 | - " AS j ON j.cod_regiao::text = regiao.".$tempDadosRegiao["identificador"]."::text GROUP BY regiao.".$dadosColunas[$idregiao]["colunaligacao_regiaopai"]; | |
| 378 | - $sqlIntermediario = str_replace("__SQLDADOS__",$temp,$sqlIntermediario); | |
| 379 | - } | |
| 380 | - } | |
| 381 | - } | |
| 382 | - } | |
| 383 | - //sql final que retorna os dados | |
| 384 | - //contem todas as colunas da tabela regiao, menos as que contem geometria | |
| 385 | - $sql = str_replace("__SQLDADOS__",$sqlDadosMedidaVariavel,$sqlIntermediario); | |
| 386 | - $sql = str_replace("__COLUNASSEMGEO__",implode(",",$colunasSemGeo),$sql); | |
| 387 | - | |
| 388 | - //sql para o mapserver | |
| 389 | - $sqlgeo = str_replace("__SQLDADOS__",$sqlDadosMedidaVariavel,$sqlIntermediario); | |
| 390 | - $colunasComGeo = $colunasSemGeo; | |
| 391 | - //$colunasComGeo[] = "/*SG*/st_setsrid(".$colunageo.",".$dadosgeo["srid"].") as ".$colunageo." /*SG*/"; | |
| 392 | - $colunasComGeo[] = "/*SG*/".$colunageo." as ".$colunageo." /*SG*/"; | |
| 393 | - $sqlgeo = str_replace("__COLUNASSEMGEO__",implode(",",$colunasComGeo),$sqlgeo); | |
| 394 | - $sqlgeo = $colunageo." from /*SE*/(".$sqlgeo." /*FR*//*FR*/ )/*SE*/ as foo using unique ".$dadosgeo["identificador"]." using srid=".$dadosgeo["srid"]; | |
| 395 | - | |
| 396 | - //o SQL com os dados contem um filtro ou nao? | |
| 397 | - $contemfiltro = false; | |
| 398 | - if(!empty($filtro) && $direto == false){ | |
| 399 | - $contemfiltro = true; | |
| 400 | - $titulo .= " ".$filtro; | |
| 401 | - } | |
| 402 | - //adiciona a coluna com os valores no inicio do array() | |
| 403 | - $colunasSemGeo = array_merge(array($dados["colunavalor"]),$colunasSemGeo); | |
| 404 | - $buscar = array("drop","update","insert","create","alter","delete"); | |
| 405 | - $sql = str_ireplace($buscar,"",$sql); | |
| 406 | - $sqlagrupamento = str_ireplace($buscar,"",$sqlagrupamento); | |
| 407 | - $sqlgeo = str_ireplace($buscar,"",$sqlgeo); | |
| 408 | - return array( | |
| 409 | - "nomeregiao"=>$dadosgeo["colunanomeregiao"], | |
| 410 | - "titulo"=>$titulo, | |
| 411 | - "colunavalor"=>$dados["colunavalor"], | |
| 412 | - "sqlagrupamento"=>$sqlagrupamento, | |
| 413 | - "sql"=>$sql, | |
| 414 | - "sqlmapserver"=>$sqlgeo, | |
| 415 | - "filtro"=>$contemfiltro, | |
| 416 | - "colunas"=>$colunasSemGeo, | |
| 417 | - "alias"=>$alias, | |
| 418 | - "srid"=>$dadosgeo["srid"] | |
| 419 | - ); | |
| 420 | - } | |
| 421 | - /** | |
| 422 | - * Retorna os ids das regioes que permitem partir de uma regiao filha chegar a uma regiao pai | |
| 423 | - * Usado para descobrir que regioes devem ser sequencialmente agregadas | |
| 424 | - * @param partir da regiao | |
| 425 | - * @param chegar na regiao | |
| 426 | - * @return array lista de ids de regioes sequenciais do filho ate chegar ao pai indicado | |
| 427 | - */ | |
| 428 | - function regiaoFilhaAoPai($codigo_tipo_regiao,$codigo_tipo_regiao_pai=""){ | |
| 429 | - $pais = $this->listaAgregaRegiao($codigo_tipo_regiao); | |
| 430 | - $caminho = array($codigo_tipo_regiao); | |
| 431 | - $colunas = array(); | |
| 432 | - if(count($pais) == 0){ | |
| 433 | - return $caminho; | |
| 434 | - } | |
| 435 | - foreach($pais as $pai){ | |
| 436 | - $caminho[] = $pai["codigo_tipo_regiao_pai"]; | |
| 437 | - $colunas[$pai["codigo_tipo_regiao"]] = $pai; | |
| 438 | - if($pai["codigo_tipo_regiao_pai"] == $codigo_tipo_regiao_pai){ | |
| 439 | - return array("caminho"=>$caminho,"colunas"=>$colunas); | |
| 440 | - } | |
| 441 | - } | |
| 442 | - return array("caminho"=>$caminho,"colunas"=>$colunas); | |
| 443 | - } | |
| 444 | - function hierarquiaPath($node){ | |
| 445 | - $query="select codigo_tipo_regiao_pai as parent from ".$this->esquemaadmin."i3geoestat_agregaregiao WHERE codigo_tipo_regiao = $node"; | |
| 446 | - $result=$this->execSQL($query,"",false); | |
| 447 | - $row = $result[0]; | |
| 448 | - // save the path in this array | |
| 449 | - $path = array(); | |
| 450 | - // only continue if this $node isn't the root node | |
| 451 | - // (that's the node with no parent) | |
| 452 | - if ($row['parent']!='') { | |
| 453 | - // the last part of the path to $node, is the name | |
| 454 | - // of the parent of $node | |
| 455 | - $path[] = $row['parent']; | |
| 456 | - // we should add the path to the parent of this node | |
| 457 | - // to the path | |
| 458 | - $path = array_merge($this->hierarquiaPath($row['parent']), $path); | |
| 459 | - } | |
| 460 | - // return the path | |
| 461 | - sort($path); | |
| 462 | - return $path; | |
| 463 | - } | |
| 464 | - /** | |
| 465 | - * Cria um arquivo mapfile para uma medida de variavel | |
| 466 | - * Inclui no arquivo o layer de acesso aos dados | |
| 467 | - * O mapfile contem apenas o layer | |
| 468 | - * O arquivo e armazenado em uma pasta temporaria | |
| 469 | - * O sql e obtido com o metodo sqlMedidaVariavel | |
| 470 | - * @param id da medida da variavel | |
| 471 | - * @param filtro que sera concatenado ao sql padrao da medida | |
| 472 | - * @param 0|1 indica se todas as colunas da tabela original dos dados sera incluida no sql | |
| 473 | - * @param tipo de layer | |
| 474 | - * @param titulo do layer | |
| 475 | - * @param id da classificacao cadastrada,se for vazio usa o primeiro | |
| 476 | - * @param coluna que sera usada como agrupamento no sql | |
| 477 | - * @param codigo do tipo de regiao cadastrada | |
| 478 | - * @param valor de opacidade do layer | |
| 479 | - * @param o layer deve suportar WMS-T ou nao | |
| 480 | - * @param faz o cache do mapfile | |
| 481 | - * @return array("mapfile"=>,"layer"=>,"titulolayer"=>) | |
| 482 | - */ | |
| 483 | - function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor="",$codigo_tipo_regiao="",$opacidade="",$suportaWMST=false,$cachemapfile=true){ | |
| 484 | - //para permitir a inclusao de filtros, o fim do sql e marcado com /*FW*//*FW*/ | |
| 485 | - //indicando onde deve comecar e terminar uma possivel clausula where | |
| 486 | - //ou com /*FA*//*FA*/ | |
| 487 | - //para marcar que deve ser utilizado AND ao adicionar o filtro | |
| 488 | - //utiliza-se da mesma forma /*FAT*//*FAT*/ e /*FWT*//*FWT*/ para os filtros de tempo | |
| 489 | - //Layers adicionados aqui sao marcados com o metadata METAESTAT "SIM" | |
| 490 | - //O codigo_tipo_regiao e marcado com o metadata METAESTAT_CODIGO_TIPO_REGIAO | |
| 491 | - //O id da medida da variavel e marcado com o metadata METAESTAT_ID_MEDIDA_VARIAVEL | |
| 492 | - //outros metadados tambem sao utilizados, veja em admin/php/editormapfile.php | |
| 493 | - $arq = $this->dir_tmp."/".$this->nomecache.".map"; | |
| 494 | - if(!file_exists($arq)){ | |
| 495 | - $meta = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 496 | - //evita agregar regioes qd nao e necessario | |
| 497 | - if($meta["codigo_tipo_regiao"] == $codigo_tipo_regiao || empty($codigo_tipo_regiao) ){ | |
| 498 | - $agruparpor = ""; | |
| 499 | - } | |
| 500 | - $dconexao = $this->listaConexao($meta["codigo_estat_conexao"],true); | |
| 501 | - $conexao = "user=".$dconexao["usuario"]." password=".$dconexao["senha"]." dbname=".$dconexao["bancodedados"]." host=".$dconexao["host"]." port=".$dconexao["porta"].""; | |
| 502 | - $sql = $this->sqlMedidaVariavel( | |
| 503 | - $id_medida_variavel, | |
| 504 | - $todasascolunas, | |
| 505 | - $agruparpor, | |
| 506 | - $tipolayer, | |
| 507 | - $codigo_tipo_regiao, | |
| 508 | - $suportaWMST, | |
| 509 | - $filtro | |
| 510 | - ); | |
| 511 | - if(empty($codigo_tipo_regiao)){ | |
| 512 | - $d = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 513 | - $codigo_tipo_regiao = $d["codigo_tipo_regiao"]; | |
| 514 | - } | |
| 515 | - //define o tipo correto de layer | |
| 516 | - $dg = $this->listaDadosGeometriaRegiao($codigo_tipo_regiao); | |
| 517 | - if(empty($tipolayer)){ | |
| 518 | - $tipolayer = "polygon"; | |
| 519 | - } | |
| 520 | - if($dg["dimension"] == 0){ | |
| 521 | - $tipolayer = "point"; | |
| 522 | - } | |
| 523 | - if($dg["dimension"] == 1){ | |
| 524 | - $tipolayer = "line"; | |
| 525 | - } | |
| 526 | - $sqlf = $sql["sqlmapserver"]; | |
| 527 | - | |
| 528 | - $classes = ""; | |
| 529 | - if(!empty($id_classificacao)){ | |
| 530 | - $classes = $this->listaClasseClassificacao($id_classificacao); | |
| 531 | - } | |
| 532 | - else{ | |
| 533 | - $classificacoes = $this->listaClassificacaoMedida($id_medida_variavel); | |
| 534 | - $classes = $this->listaClasseClassificacao($classificacoes[0]["id_classificacao"]); | |
| 535 | - } | |
| 536 | - if(!empty($titulolayer)){ | |
| 537 | - $titulolayer = mb_convert_encoding($titulolayer,"ISO-8859-1",mb_detect_encoding($titulolayer)); | |
| 538 | - } | |
| 539 | - else{ | |
| 540 | - $titulolayer = mb_convert_encoding($sql["titulo"],"ISO-8859-1",mb_detect_encoding($sql["titulo"])); | |
| 541 | - } | |
| 542 | - //necessario para evitar problemas com ITENSDESC | |
| 543 | - $titulolayer = str_replace(","," ",$titulolayer); | |
| 544 | - $titulolayer = str_replace("=",": ",$titulolayer); | |
| 545 | - //pega os parametros caso seja um mapfile para WMS-time | |
| 546 | - if($suportaWMST == true){ | |
| 547 | - $sqlMinMax = "select min(dimtempo) as min,max(dimtempo) as max from(".$sql["sql"].") as x"; | |
| 548 | - $minmaxdata = $this->execSQLDB($meta["codigo_estat_conexao"],$sqlMinMax ); | |
| 549 | - $fontemeta = $this->listaFonteinfoMedida($id_medida_variavel); | |
| 550 | - if(count($fontemeta) > 0){ | |
| 551 | - $fontemeta = $fontemeta[0]["link"]; | |
| 552 | - } | |
| 553 | - else{ | |
| 554 | - $fontemeta = ""; | |
| 555 | - } | |
| 556 | - } | |
| 557 | - $dados[] = "MAP"; | |
| 558 | - $dados[] = 'SYMBOLSET "'.$this->locaplic.'/symbols/simbolosv6.sym"'; | |
| 559 | - $dados[] = 'FONTSET "'.$this->locaplic.'/symbols/fontes.txt"'; | |
| 560 | - //inclui os simbolos que podem ser definidos como imagens | |
| 561 | - foreach($classes as $classe){ | |
| 562 | - if(file_exists($classe["simbolo"])){ | |
| 563 | - $dados[] = "SYMBOL"; | |
| 564 | - $dados[] = ' NAME "'.$classe["simbolo"].'"'; | |
| 565 | - $dados[] = ' TYPE pixmap'; | |
| 566 | - $dados[] = ' IMAGE "'.$classe["simbolo"].'"'; | |
| 567 | - $dados[] = "END"; | |
| 568 | - } | |
| 569 | - } | |
| 570 | - $dados[] = "LAYER"; | |
| 571 | - $dados[] = ' NAME "'.$this->nomecache.'"'; | |
| 572 | - $dados[] = " TYPE $tipolayer"; | |
| 573 | - $dados[] = ' DATA "'.$sqlf.'"'; | |
| 574 | - $dados[] = ' CONNECTION "'.$conexao.'"'; | |
| 575 | - $dados[] = ' CONNECTIONTYPE POSTGIS'; | |
| 576 | - $dados[] = ' STATUS OFF'; | |
| 577 | - $dados[] = ' TEMPLATE "none.htm"'; | |
| 578 | - if($opacidade != ""){ | |
| 579 | - $dados[] = ' OPACITY '.$opacidade; | |
| 580 | - } | |
| 581 | - $dados[] = ' METADATA'; | |
| 582 | - $dados[] = ' TEMA "'.$titulolayer.'"'; | |
| 583 | - $dados[] = ' tme "{\"titulo\":\"'.$titulolayer.'\",\"colnome\":\"'.$sql["nomeregiao"].'\",\"colsdata\":[\"'.$sql["colunavalor"].'\"],\"lmax\":\"8000\",\"amax\":\"500000\",\"outlinecolor\":\"-1,-1,-1\",\"numvertices\":\"4\",\"auto\":\"nao\",\"exec\":\"nao\"}"'; | |
| 584 | - | |
| 585 | - $dados[] = ' TIP "'.$sql["colunavalor"].','.$sql["nomeregiao"].'"'; | |
| 586 | - $dados[] = ' CLASSE "SIM"'; | |
| 587 | - $dados[] = ' permitedownload "SIM"'; | |
| 588 | - $dados[] = ' METAESTAT "SIM"'; | |
| 589 | - $dados[] = ' METAESTAT_CODIGO_TIPO_REGIAO "'.$codigo_tipo_regiao.'"'; | |
| 590 | - $dados[] = ' METAESTAT_ID_MEDIDA_VARIAVEL "'.$id_medida_variavel.'"'; | |
| 591 | - //marca se a tabela e editavel, verificando se esta no esquema padrao | |
| 592 | - if($meta["esquemadb"] == "i3geo_metaestat"){ | |
| 593 | - $dados[] = ' EDITAVEL "SIM"'; | |
| 594 | - $dados[] = ' COLUNAIDUNICO "'.$meta["colunaidunico"].'"'; | |
| 595 | - $dados[] = ' TABELAEDITAVEL "'.$meta["tabela"].'"'; | |
| 596 | - $dados[] = ' ESQUEMATABELAEDITAVEL "'.$meta["esquemadb"].'"'; | |
| 597 | - } | |
| 598 | - if(count($sql["alias"]) > 0){ | |
| 599 | - $dados[] = ' ITENS "'.implode(",",$sql["colunas"]).'"'; | |
| 600 | - $dados[] = ' ITENSDESC "'.implode(",",$sql["alias"]).'"'; | |
| 601 | - } | |
| 602 | - if($suportaWMST == true){ | |
| 603 | - $dados[] = ' "wms_timeitem" "dimtempo"'; | |
| 604 | - $dados[] = ' "wms_timeextent" "'.$minmaxdata[0]["min"]."/".$minmaxdata[0]["max"].'"'; | |
| 605 | - $dados[] = ' "wms_timedefault" "'.$minmaxdata[0]["max"].'"'; | |
| 606 | - $dados[] = ' "ows_metadataurl_href" "'.$fontemeta.'"'; | |
| 607 | - $dados[] = ' "ows_metadataurl_type" "TC211" '; | |
| 608 | - $dados[] = ' "ows_metadataurl_format" "text/html" '; | |
| 609 | - } | |
| 610 | - $dados[] = ' END'; | |
| 611 | - if($classes == ""){ | |
| 612 | - $dados[] = ' CLASS'; | |
| 613 | - $dados[] = ' NAME ""'; | |
| 614 | - $dados[] = ' STYLE'; | |
| 615 | - $dados[] = ' COLOR 200 0 0'; | |
| 616 | - if(strtolower($tipolayer) == "point"){ | |
| 617 | - $dados[] = ' SYMBOL "ponto"'; | |
| 618 | - $dados[] = ' SIZE 5'; | |
| 619 | - } | |
| 620 | - $dados[] = ' END'; | |
| 621 | - $dados[] = ' END'; | |
| 622 | - } | |
| 623 | - else{ | |
| 624 | - foreach($classes as $classe){ | |
| 625 | - //var_dump($classe);exit; | |
| 626 | - $dados[] = ' CLASS'; | |
| 627 | - $dados[] = ' NAME "'.mb_convert_encoding($classe["titulo"],"ISO-8859-1",mb_detect_encoding($classe["titulo"])).'"'; | |
| 628 | - if($classe["expressao"] != ""){ | |
| 629 | - $expressao = str_replace('"',"'",$classe["expressao"]); | |
| 630 | - $dados[] = " EXPRESSION ".$expressao; | |
| 631 | - } | |
| 632 | - $dados[] = ' STYLE'; | |
| 633 | - $dados[] = ' COLOR '.$classe["vermelho"].' '.$classe["verde"].' '.$classe["azul"]; | |
| 634 | - if(!empty($classe["tamanho"])){ | |
| 635 | - $dados[] = ' SIZE '.$classe["tamanho"]; | |
| 636 | - } | |
| 637 | - elseif(strtolower($tipolayer) == "point"){ | |
| 638 | - $dados[] = ' SIZE 5'; | |
| 639 | - } | |
| 640 | - if(!empty($classe["simbolo"])){ | |
| 641 | - $dados[] = ' SYMBOL '.$classe["simbolo"]; | |
| 642 | - } | |
| 643 | - elseif(strtolower($tipolayer) == "point"){ | |
| 644 | - $dados[] = ' SYMBOL ponto'; | |
| 645 | - } | |
| 646 | - if(!empty($classe["otamanho"])){ | |
| 647 | - $dados[] = ' OUTLINEWIDTH '.$classe["otamanho"]; | |
| 648 | - } | |
| 649 | - if(!empty($classe["overmelho"]) || $classe["overmelho"] == "0"){ | |
| 650 | - $dados[] = ' OUTLINECOLOR '.$classe["overmelho"].' '.$classe["overde"].' '.$classe["oazul"]; | |
| 651 | - } | |
| 652 | - $dados[] = ' END'; | |
| 653 | - $dados[] = ' END'; | |
| 654 | - } | |
| 655 | - } | |
| 656 | - $dados[] = "END"; | |
| 657 | - $dados[] = "END"; | |
| 658 | - $fp = fopen($arq,"w"); | |
| 659 | - foreach ($dados as $dado){ | |
| 660 | - fwrite($fp,$dado."\n"); | |
| 661 | - } | |
| 662 | - } | |
| 663 | - return array("mapfile"=>$arq,"layer"=>$this->nomecache,"titulolayer"=>$titulolayer); | |
| 664 | - } | |
| 665 | - /** | |
| 666 | - * Cria um mapfile para visualizacao de regioes | |
| 667 | - * Inclui no arquivo o layer de acesso aos dados | |
| 668 | - * O mapfile contem apenas o layer | |
| 669 | - * O arquivo e armazenado em uma pasta temporaria | |
| 670 | - * Se o arquivo para a mesma regiao ja existir, tenta usa-lo ao inves de criar um novo | |
| 671 | - * @param codigo da regiao | |
| 672 | - * @param cor do outline do simbolo de desenho | |
| 673 | - * @param largura do simbolo | |
| 674 | - * @param sim|nao inclui ou nao os labels | |
| 675 | - * @param boolean remove o arquivo em cache e cria um novo | |
| 676 | - * @return array("mapfile"=>,"layer"=>,"titulolayer"=>,"codigo_tipo_regiao"=>) | |
| 677 | - */ | |
| 678 | - function mapfileTipoRegiao($codigo_tipo_regiao,$outlinecolor="255,0,0",$width=1,$nomes="nao",$forcaArquivo=false){ | |
| 679 | - //para permitir a inclusao de filtros, o fim do sql e marcado com /*FW*//*FW*/ | |
| 680 | - //indicando onde deve comecar e terminar uma possivel clausula where | |
| 681 | - //Layers adicionados aqui sao marcados com o metadata METAESTAT "SIM" | |
| 682 | - //O codigo_tipo_regiao e marcado com o metadata METAESTAT_CODIGO_TIPO_REGIAO | |
| 683 | - if($forcaArquivo == false){ | |
| 684 | - $arq = $this->dir_tmp."/".$this->nomecache.".map"; | |
| 685 | - } | |
| 686 | - else{ | |
| 687 | - $arq = $this->dir_tmp."/".$this->nomecache.nomeRandomico(3).".map"; | |
| 688 | - } | |
| 689 | - if(!file_exists($arq)){ | |
| 690 | - $tipolayer = "polygon"; | |
| 691 | - //define o tipo correto de layer | |
| 692 | - $dg = $this->listaDadosGeometriaRegiao($codigo_tipo_regiao); | |
| 693 | - if(empty($tipolayer)){ | |
| 694 | - $tipolayer = "polygon"; | |
| 695 | - } | |
| 696 | - if($dg["dimension"] == 0){ | |
| 697 | - $tipolayer = "point"; | |
| 698 | - } | |
| 699 | - if($dg["dimension"] == 1){ | |
| 700 | - $tipolayer = "line"; | |
| 701 | - } | |
| 702 | - $meta = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 703 | - $titulolayer = $meta["nome_tipo_regiao"]; | |
| 704 | - $titulolayer = mb_convert_encoding($titulolayer,"ISO-8859-1",mb_detect_encoding($titulolayer)); | |
| 705 | - $conexao = $this->listaConexao($meta["codigo_estat_conexao"],true); | |
| 706 | - $conexao = "user=".$conexao["usuario"]." password=".$conexao["senha"]." dbname=".$conexao["bancodedados"]." host=".$conexao["host"]." port=".$conexao["porta"].""; | |
| 707 | - $colunageo = $meta["colunageo"]; | |
| 708 | - $srid = $meta["srid"]; | |
| 709 | - //pega as colunas menos as do tipo geometry | |
| 710 | - $colunastabela = $this->colunasTabela($meta["codigo_estat_conexao"],$meta["esquemadb"],$meta["tabela"],"geometry","!="); | |
| 711 | - //define as colunas que serao mostradas no sql | |
| 712 | - $vis = $meta["colunasvisiveis"]; | |
| 713 | - $colunaSerial = $this->listaTipoRegiaoSerial($codigo_tipo_regiao); | |
| 714 | - if($vis != ""){ | |
| 715 | - $vis = str_replace(";",",",$vis); | |
| 716 | - $vis = str_replace(",,",",",$vis); | |
| 717 | - $vis = explode(",",$vis); | |
| 718 | - $itens = $vis;//array | |
| 719 | - $vis[] = $meta["identificador"]; | |
| 720 | - if(!empty($colunaSerial)){ | |
| 721 | - $vis[] = $colunaSerial; | |
| 722 | - } | |
| 723 | - $vis = array_unique($vis); | |
| 724 | - $visiveis = array(); | |
| 725 | - //verifica se as colunas existem mesmo | |
| 726 | - foreach($vis as $v){ | |
| 727 | - if(in_array($v,$colunastabela)){ | |
| 728 | - $visiveis[] = $v; | |
| 729 | - } | |
| 730 | - } | |
| 731 | - $vis = implode(",",$visiveis); | |
| 732 | - //apelidos | |
| 733 | - $apelidos = $meta["apelidos"]; | |
| 734 | - if($apelidos == ""){ | |
| 735 | - $apelidos = "Nome"; | |
| 736 | - } | |
| 737 | - $apelidos = str_replace(";",",",$apelidos); | |
| 738 | - $apelidos = str_replace(",,",",",$apelidos); | |
| 739 | - $apelidos = mb_convert_encoding($apelidos,"ISO-8859-1",mb_detect_encoding($apelidos)); | |
| 740 | - $apelidos = explode(",",$apelidos); | |
| 741 | - if(!empty($colunaSerial)){ | |
| 742 | - $apelidos[] = $colunaSerial." (serial)"; | |
| 743 | - } | |
| 744 | - $apelidos = array_unique($apelidos); | |
| 745 | - } | |
| 746 | - else{ | |
| 747 | - $itens = array(); | |
| 748 | - $apelidos = array(); | |
| 749 | - if(!empty($colunaSerial)){ | |
| 750 | - $colunastabela[] = $colunaSerial; | |
| 751 | - $colunastabela = array_unique($colunastabela); | |
| 752 | - } | |
| 753 | - $vis = implode(",",$colunastabela); | |
| 754 | - } | |
| 755 | - $sqlf = $colunageo." from (select st_setsrid(".$colunageo.",".$srid.") as $colunageo,$vis from ".$meta["esquemadb"].".".$meta["tabela"]." /*FW*//*FW*/) as foo using unique ".$meta["identificador"]." using srid=".$srid; | |
| 756 | - $sqlf = str_replace(",,",",",$sqlf); | |
| 757 | - $outlinecolor = str_replace(","," ",$outlinecolor); | |
| 758 | - $dados[] = "MAP"; | |
| 759 | - $dados[] = 'SYMBOLSET "'.$this->locaplic.'/symbols/simbolosv6.sym"'; | |
| 760 | - $dados[] = 'FONTSET "'.$this->locaplic.'/symbols/fontes.txt"'; | |
| 761 | - $dados[] = "LAYER"; | |
| 762 | - $dados[] = ' NAME "'.$this->nomecache.'"'; | |
| 763 | - $dados[] = " TYPE $tipolayer"; | |
| 764 | - $dados[] = ' DATA "'.$sqlf.'"'; | |
| 765 | - $dados[] = ' CONNECTION "'.$conexao.'"'; | |
| 766 | - $dados[] = ' CONNECTIONTYPE POSTGIS'; | |
| 767 | - $dados[] = ' TEMPLATE "none.htm"'; | |
| 768 | - $dados[] = ' STATUS OFF'; | |
| 769 | - $dados[] = ' METADATA'; | |
| 770 | - $dados[] = ' TEMA "'.$titulolayer.'"'; | |
| 771 | - $dados[] = ' CLASSE "SIM"'; | |
| 772 | - $dados[] = ' METAESTAT "SIM"'; | |
| 773 | - $dados[] = ' METAESTAT_CODIGO_TIPO_REGIAO "'.$codigo_tipo_regiao.'"'; | |
| 774 | - if(!empty($colunaSerial)){ | |
| 775 | - $dados[] = ' EDITAVEL "SIM"'; | |
| 776 | - $dados[] = ' COLUNAIDUNICO "'.$colunaSerial.'"'; | |
| 777 | - $dados[] = ' TABELAEDITAVEL "'.$meta["tabela"].'"'; | |
| 778 | - $dados[] = ' ESQUEMATABELAEDITAVEL "'.$meta["esquemadb"].'"'; | |
| 779 | - $dados[] = ' COLUNAGEOMETRIA "'.$colunageo.'"'; | |
| 780 | - } | |
| 781 | - $dados[] = ' TIP "'.$meta["colunanomeregiao"].'"'; | |
| 782 | - if(count($itens) == count($apelidos)){ | |
| 783 | - $dados[] = ' ITENS "'.implode(",",$itens).'"'; | |
| 784 | - $dados[] = ' ITENSDESC "'.implode(",",$apelidos).'"'; | |
| 785 | - } | |
| 786 | - | |
| 787 | - $dados[] = ' END'; | |
| 788 | - $dados[] = ' CLASS'; | |
| 789 | - $dados[] = ' NAME ""'; | |
| 790 | - $dados[] = ' STYLE'; | |
| 791 | - $dados[] = ' OUTLINECOLOR '.$outlinecolor; | |
| 792 | - | |
| 793 | - $dados[] = ' WIDTH '.$width; | |
| 794 | - if(strtolower($tipolayer) == "point"){ | |
| 795 | - $dados[] = ' SYMBOL "ponto"'; | |
| 796 | - $dados[] = ' SIZE 5'; | |
| 797 | - $dados[] = ' COLOR 0 0 0 '; | |
| 798 | - } | |
| 799 | - else{ | |
| 800 | - $dados[] = ' COLOR -1 -1 -1'; | |
| 801 | - } | |
| 802 | - $dados[] = ' END'; | |
| 803 | - //$dados[] = ' STYLE'; | |
| 804 | - //$dados[] = ' OUTLINECOLOR -1 -1 -1'; | |
| 805 | - //$dados[] = ' COLOR 255 255 255'; | |
| 806 | - //$dados[] = ' OPACITY 20'; | |
| 807 | - //$dados[] = ' END'; | |
| 808 | - $dados[] = ' END'; | |
| 809 | - $dados[] = "END"; | |
| 810 | - //toponimia | |
| 811 | - if($nomes == "sim"){ | |
| 812 | - $dados[] = "LAYER"; | |
| 813 | - $dados[] = ' NAME "'.$this->nomecache.'_anno"'; | |
| 814 | - $dados[] = " TYPE ANNOTATION"; | |
| 815 | - $dados[] = ' DATA "'.$sqlf.'"'; | |
| 816 | - $dados[] = ' CONNECTION "'.$conexao.'"'; | |
| 817 | - $dados[] = ' CONNECTIONTYPE POSTGIS'; | |
| 818 | - $dados[] = ' TEMPLATE "none.htm"'; | |
| 819 | - $dados[] = ' STATUS OFF'; | |
| 820 | - $dados[] = ' LABELITEM "'.$meta["colunanomeregiao"].'"'; | |
| 821 | - $dados[] = ' METADATA'; | |
| 822 | - $dados[] = ' TEMA "'.$titulolayer.' (nomes)"'; | |
| 823 | - $dados[] = ' CLASSE "SIM"'; | |
| 824 | - $dados[] = ' METAESTAT "SIM"'; | |
| 825 | - $dados[] = ' METAESTAT_CODIGO_TIPO_REGIAO "'.$codigo_tipo_regiao.'"'; | |
| 826 | - $dados[] = ' END'; | |
| 827 | - $dados[] = ' CLASS'; | |
| 828 | - $dados[] = ' NAME ""'; | |
| 829 | - $dados[] = ' LABEL'; | |
| 830 | - $dados[] = ' FONT "arial"'; | |
| 831 | - $dados[] = ' SIZE 10'; | |
| 832 | - $dados[] = ' COLOR 0 0 0'; | |
| 833 | - $dados[] = ' MINDISTANCE 0'; | |
| 834 | - $dados[] = ' MINFEATURESIZE 0'; | |
| 835 | - $dados[] = ' OFFSET 0 0'; | |
| 836 | - $dados[] = ' OUTLINECOLOR 255 255 255'; | |
| 837 | - $dados[] = ' PARTIALS FALSE'; | |
| 838 | - $dados[] = ' POSITION AUTO'; | |
| 839 | - $dados[] = ' SHADOWSIZE 1 1'; | |
| 840 | - $dados[] = ' TYPE TRUETYPE'; | |
| 841 | - $dados[] = ' END'; | |
| 842 | - $dados[] = ' END'; | |
| 843 | - $dados[] = "END"; | |
| 844 | - } | |
| 845 | - $dados[] = "END"; | |
| 846 | - $fp = fopen($arq,"w"); | |
| 847 | - foreach ($dados as $dado){ | |
| 848 | - fwrite($fp,$dado."\n"); | |
| 849 | - } | |
| 850 | - } | |
| 851 | - return array("mapfile"=>$arq,"layer"=>$this->nomecache,"titulolayer"=>$titulolayer,"codigo_tipo_regiao"=>$codigo_tipo_regiao); | |
| 852 | - } | |
| 853 | - /** | |
| 854 | - * Complementa um mapfile resumido inserindo seus layers em um mapfile completo, contendo todos os elementos necessarios para uso | |
| 855 | - * Usado na geracao de WMS e outros servicos | |
| 856 | - * @param mapfile resumido | |
| 857 | - * @return nome do arquivo com o mapfile completo | |
| 858 | - */ | |
| 859 | - function mapfileCompleto($mapfile){ | |
| 860 | - $f = $this->base; | |
| 861 | - if($f == ""){ | |
| 862 | - include_once($this->locaplic."/classesphp/funcoes_gerais.php"); | |
| 863 | - $versao = versao(); | |
| 864 | - $versao = $versao["principal"]; | |
| 865 | - $f = ""; | |
| 866 | - if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){ | |
| 867 | - $f = $this->locaplic."/aplicmap/geral1windowsv".$versao.".map"; | |
| 868 | - } | |
| 869 | - else{ | |
| 870 | - if($f == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv'.$versao.'.map')){ | |
| 871 | - $f = "/var/www/i3geo/aplicmap/geral1debianv".$versao.".map"; | |
| 872 | - } | |
| 873 | - if($f == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){ | |
| 874 | - $f = "/var/www/html/i3geo/aplicmap/geral1fedorav".$versao.".map"; | |
| 875 | - } | |
| 876 | - if($f == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){ | |
| 877 | - $f = "/opt/www/html/i3geo/aplicmap/geral1v".$versao.".map"; | |
| 878 | - } | |
| 879 | - if($f == "") { | |
| 880 | - $f = $this->locaplic."/aplicmap/geral1v".$versao.".map"; | |
| 881 | - } | |
| 882 | - } | |
| 883 | - } | |
| 884 | - $mapa = ms_newMapObj($f); | |
| 885 | - $n = $mapa->numlayers; | |
| 886 | - for($i=0;$i<$n;$i++){ | |
| 887 | - $l = $mapa->getlayer($i); | |
| 888 | - $l->set("status",MS_DELETE); | |
| 889 | - } | |
| 890 | - $mapatemp = ms_newMapObj($mapfile); | |
| 891 | - $l = $mapatemp->getlayer(0); | |
| 892 | - | |
| 893 | - $l->set("status",MS_DEFAULT); | |
| 894 | - $novonome = str_replace(".map","completo.map",$mapfile); | |
| 895 | - //necessario para o kml | |
| 896 | - $mapa->setmetadata("ows_enable_request","*"); | |
| 897 | - $listaepsg = "EPSG:4618 EPSG:4291 EPSG:4326 EPSG:22521 EPSG:22522 EPSG:22523 EPSG:22524 EPSG:22525 EPSG:29101 EPSG:29119 EPSG:29120 EPSG:29121 EPSG:29122 EPSG:29177 EPSG:29178 EPSG:29179 EPSG:29180 EPSG:29181 EPSG:29182 EPSG:29183 EPSG:29184 EPSG:29185"; | |
| 898 | - $l->setmetadata("ows_srs",$listaepsg); | |
| 899 | - $temp = ms_newLayerObj($mapa,$l); | |
| 900 | - $mapa->save($novonome); | |
| 901 | - return $novonome; | |
| 902 | - } | |
| 903 | - /** | |
| 904 | - * Obtem os dados de uma medida de variavel | |
| 905 | - * @param id da medida | |
| 906 | - * @param filtro que sera concatenado ao sql | |
| 907 | - * @param 0|1 mostra ou nao todas as colunas da tabela com os dados | |
| 908 | - * @param coluna de agrupamento | |
| 909 | - * @param limite do numero de registros | |
| 910 | - * @param le os dados diretamente da tabela sem nenhum tipo de agrupamento, seja por data ou outro parametro | |
| 911 | - * @return execSQL | |
| 912 | - */ | |
| 913 | - function dadosMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$agruparpor = "",$limite="",$direto=false){ | |
| 914 | - set_time_limit(0); | |
| 915 | - $sql = $this->sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor,"polygon","",false,$filtro,$direto); | |
| 916 | - $sqlf = $sql["sqlmapserver"]; | |
| 917 | - //remove marcadores geo | |
| 918 | - $sqlf = explode("/*SE*/",$sqlf); | |
| 919 | - $sqlf = explode("/*SG*/",$sqlf[1]); | |
| 920 | - $sqlf = $sqlf[0]." ".$sqlf[2]; | |
| 921 | - if($limite != ""){ | |
| 922 | - $sqlf .= " limit ".$limite; | |
| 923 | - } | |
| 924 | - $sqlf = str_replace(", FROM"," FROM",$sqlf); | |
| 925 | - $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 926 | - //echo $sqlf;exit; | |
| 927 | - if(!empty($metaVariavel["codigo_estat_conexao"])){ | |
| 928 | - $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); | |
| 929 | - $dbhold = $this->dbh; | |
| 930 | - $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 931 | - $this->dbh = $dbh; | |
| 932 | - $res = $this->execSQL($sqlf); | |
| 933 | - $this->dbh = $dbhold; | |
| 934 | - return $res; | |
| 935 | - } | |
| 936 | - return false; | |
| 937 | - } | |
| 938 | - /** | |
| 939 | - * Lista as ocorrencias de valores em uma coluna de uma medida de variavel | |
| 940 | - * @param id da medida de variavel | |
| 941 | - * @param coluna | |
| 942 | - * @return execSQL | |
| 943 | - */ | |
| 944 | - function valorUnicoMedidaVariavel($id_medida_variavel,$coluna){ | |
| 945 | - $sqlf = $this->sqlMedidaVariavel($id_medida_variavel,0,$coluna); | |
| 946 | - $sqlf = $sqlf["sqlagrupamento"]; | |
| 947 | - $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 948 | - if(!empty($metaVariavel["codigo_estat_conexao"])){ | |
| 949 | - $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); | |
| 950 | - $dbhold = $this->dbh; | |
| 951 | - $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 952 | - $this->dbh = $dbh; | |
| 953 | - $res = $this->execSQL($sqlf); | |
| 954 | - $this->dbh = $dbhold; | |
| 955 | - return $res; | |
| 956 | - } | |
| 957 | - return false; | |
| 958 | - } | |
| 959 | - /** | |
| 960 | - * Sumario estatistico de uma medida de variavel | |
| 961 | - * @param id da medida | |
| 962 | - * @param filtro a ser concatenado ao sql | |
| 963 | - * @param coluna de agrupamento | |
| 964 | - * @param limite numero maximo de registros que serao lidos do banco | |
| 965 | - * @param le os dados diretamente da tabela sem nenhum tipo de agrupamento, seja por data ou outro parametro | |
| 966 | - * @return array("colunavalor"=>,"soma"=>,"media"=>,"menor"=>,"maior"=>,"quantidade"=>,"histograma"=>,"grupos"=>,"unidademedida"=>,"quartis"=>) | |
| 967 | - */ | |
| 968 | - function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor="",$limite="",$direto=false){ | |
| 969 | - if(!empty($agruparpor)){ | |
| 970 | - $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,1,"",$limite,$direto); | |
| 971 | - } | |
| 972 | - else{ | |
| 973 | - $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,0,"",$limite,$direto); | |
| 974 | - } | |
| 975 | - if($dados){ | |
| 976 | - $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 977 | - $un = $this->listaUnidadeMedida($metaVariavel["codigo_unidade_medida"]); | |
| 978 | - $agrupamento = ""; | |
| 979 | - $colunavalor = $metaVariavel["colunavalor"]; | |
| 980 | - foreach($dados as $d){ | |
| 981 | - if($d[$colunavalor]){ | |
| 982 | - $valores[] = $d[$colunavalor]; | |
| 983 | - } | |
| 984 | - } | |
| 985 | - if(!empty($agruparpor)){ | |
| 986 | - $agrupamento = array(); | |
| 987 | - foreach($dados as $d){ | |
| 988 | - $g = $d[$agruparpor]; | |
| 989 | - //var_dump($d);exit; | |
| 990 | - if(!empty($agrupamento[$g])){ | |
| 991 | - $agrupamento[$g] += $d[$colunavalor]; | |
| 992 | - } | |
| 993 | - else{ | |
| 994 | - $agrupamento[$g] = $d[$colunavalor]; | |
| 995 | - } | |
| 996 | - } | |
| 997 | - natsort($agrupamento); | |
| 998 | - } | |
| 999 | - $soma = ""; | |
| 1000 | - $media = ""; | |
| 1001 | - $min = ""; | |
| 1002 | - $max = ""; | |
| 1003 | - $quantidade = count($valores); | |
| 1004 | - $sturges = 1 + (3.322 * (log10($quantidade))); | |
| 1005 | - $quartis = array(); | |
| 1006 | - if($un["permitesoma"] == "1"){ | |
| 1007 | - $soma = array_sum($valores); | |
| 1008 | - } | |
| 1009 | - if($un["permitemedia"] == "1"){ | |
| 1010 | - $media = $soma / $quantidade; | |
| 1011 | - } | |
| 1012 | - if($un["permitesoma"] == "1" || $un["permitemedia"] == "1"){ | |
| 1013 | - sort($valores); | |
| 1014 | - //var_dump($valores);exit; | |
| 1015 | - $min = $valores[0]; | |
| 1016 | - $max = $valores[$quantidade - 1]; | |
| 1017 | - include_once(dirname(__FILE__)."/../../classesphp/classe_estatistica.php"); | |
| 1018 | - $calc = new estatistica(); | |
| 1019 | - $calc->calcula($valores); | |
| 1020 | - $v = $calc->resultado; | |
| 1021 | - //expressao para o mapfile | |
| 1022 | - $expressao[] = "([".$colunavalor."]<=".($v["quartil1"]).")"; | |
| 1023 | - $expressao[] = "(([".$colunavalor."]>".($v["quartil1"]).")and([".$colunavalor."]<=".($v["quartil2"])."))"; | |
| 1024 | - if($v["quartil3"] != 0){ | |
| 1025 | - $expressao[] = "(([".$colunavalor."]>".($v["quartil2"]).")and([".$colunavalor."]<=".($v["quartil3"])."))"; | |
| 1026 | - $expressao[] = "([".$colunavalor."]>".($v["quartil3"]).")"; | |
| 1027 | - } | |
| 1028 | - $nomes[] = "<= ".($v["quartil1"]); | |
| 1029 | - $nomes[] = "> ".($v["quartil1"])." e <= ".($v["quartil2"]); | |
| 1030 | - if($v["quartil3"] != 0){ | |
| 1031 | - $nomes[] = "> ".($v["quartil2"])." e <= ".($v["quartil3"]); | |
| 1032 | - $nomes[] = "> ".($v["quartil3"]); | |
| 1033 | - } | |
| 1034 | - $quartis = array( | |
| 1035 | - "cortes"=>array( | |
| 1036 | - "q1"=>$v['quartil1'], | |
| 1037 | - "q2"=>$v['quartil2'], | |
| 1038 | - "q3"=>$v['quartil3'] | |
| 1039 | - ), | |
| 1040 | - "expressoes"=>$expressao, | |
| 1041 | - "nomes"=>$nomes | |
| 1042 | - ); | |
| 1043 | - } | |
| 1044 | - $histograma = array_count_values($valores); | |
| 1045 | - //echo "<pre>".var_dump($quartis);exit; | |
| 1046 | - return array( | |
| 1047 | - "colunavalor"=>$colunavalor, | |
| 1048 | - "soma"=>$soma, | |
| 1049 | - "media"=>$media, | |
| 1050 | - "menor"=>$min, | |
| 1051 | - "maior"=>$max, | |
| 1052 | - "quantidade"=>$quantidade, | |
| 1053 | - "histograma"=>$histograma, | |
| 1054 | - "grupos"=>$agrupamento, | |
| 1055 | - "unidademedida"=>$un, | |
| 1056 | - "quartis"=>$quartis, | |
| 1057 | - "sturges"=>$sturges | |
| 1058 | - ); | |
| 1059 | - } | |
| 1060 | - return false; | |
| 1061 | - } | |
| 1062 | - | |
| 1063 | - | |
| 1064 | - /** | |
| 1065 | - * Lista os dados de um ou de todos os mapas cadastrados | |
| 1066 | - * @param id do mapa | |
| 1067 | - */ | |
| 1068 | - function listaMapas($id_mapa=""){ | |
| 1069 | - $sql = "select * from ".$this->esquemaadmin."i3geoestat_mapa "; | |
| 1070 | - if($id_mapa != ""){ | |
| 1071 | - $sql .= "WHERE id_mapa = $id_mapa "; | |
| 1072 | - } | |
| 1073 | - $sql .= "ORDER BY titulo"; | |
| 1074 | - return $this->execSQL($sql,$id_mapa); | |
| 1075 | - } | |
| 1076 | - /** | |
| 1077 | - * Lista os dados de um ou de todos os mapas grupos de um mapa | |
| 1078 | - * @param id do mapa | |
| 1079 | - * @param id do grupo | |
| 1080 | - */ | |
| 1081 | - function listaGruposMapa($id_mapa,$id_mapa_grupo){ | |
| 1082 | - if(!empty($id_mapa)){ | |
| 1083 | - $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_mapa_grupo WHERE id_mapa = $id_mapa"; | |
| 1084 | - } | |
| 1085 | - if(!empty($id_mapa_grupo)){ | |
| 1086 | - $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_mapa_grupo WHERE id_mapa_grupo = $id_mapa_grupo"; | |
| 1087 | - } | |
| 1088 | - $sql .= " ORDER BY titulo"; | |
| 1089 | - return $this->execSQL($sql,$id_mapa_grupo); | |
| 1090 | - } | |
| 1091 | - /** | |
| 1092 | - * Lista os dados de um ou de todos os temas de um grupo de um mapa | |
| 1093 | - * @param id do mapa | |
| 1094 | - * @param id do grupo | |
| 1095 | - * @param id do tema | |
| 1096 | - */ | |
| 1097 | - function listaTemasMapa($id_mapa_grupo,$id_mapa_tema){ | |
| 1098 | - if(!empty($id_mapa_grupo)){ | |
| 1099 | - $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_mapa_tema WHERE id_mapa_grupo = $id_mapa_grupo"; | |
| 1100 | - } | |
| 1101 | - if(!empty($id_mapa_tema)){ | |
| 1102 | - $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_mapa_tema WHERE id_mapa_tema = $id_mapa_tema"; | |
| 1103 | - } | |
| 1104 | - $sql .= " ORDER BY titulo"; | |
| 1105 | - return $this->execSQL($sql,$id_mapa_tema); | |
| 1106 | - } | |
| 1107 | - /** | |
| 1108 | - * Lista os dados de uma ou todas as unidades de medida cadastradas | |
| 1109 | - * @param codigo da unidade | |
| 1110 | - */ | |
| 1111 | - function listaUnidadeMedida($codigo_unidade_medida=""){ | |
| 1112 | - $sql = "select * from ".$this->esquemaadmin."i3geoestat_unidade_medida "; | |
| 1113 | - if($codigo_unidade_medida != ""){ | |
| 1114 | - $sql .= "WHERE codigo_unidade_medida = $codigo_unidade_medida "; | |
| 1115 | - } | |
| 1116 | - $sql .= "ORDER BY nome"; | |
| 1117 | - return $this->execSQL($sql,$codigo_unidade_medida); | |
| 1118 | - } | |
| 1119 | - /** | |
| 1120 | - * Lista os dados de uma ou todas as fontes cadastradas | |
| 1121 | - * @param id da fonte | |
| 1122 | - */ | |
| 1123 | - function listaFonteinfo($id_fonteinfo=""){ | |
| 1124 | - $sql = "select * from ".$this->esquemaadmin."i3geoestat_fonteinfo "; | |
| 1125 | - if($id_fonteinfo != ""){ | |
| 1126 | - $sql .= "WHERE id_fonteinfo = $id_fonteinfo "; | |
| 1127 | - } | |
| 1128 | - $sql .= "ORDER BY titulo"; | |
| 1129 | - return $this->execSQL($sql,$id_fonteinfo); | |
| 1130 | - } | |
| 1131 | - /** | |
| 1132 | - * Lista as fontes vinculadas a uma medida de variavel | |
| 1133 | - * @param id da medida de variavel | |
| 1134 | - */ | |
| 1135 | - function listaFonteinfoMedida($id_medida_variavel){ | |
| 1136 | - $sql = "SELECT i3geoestat_fonteinfo.* "; | |
| 1137 | - $sql .= "FROM ".$this->esquemaadmin."i3geoestat_fonteinfo "; | |
| 1138 | - $sql .= "INNER JOIN ".$this->esquemaadmin."i3geoestat_fonteinfo_medida "; | |
| 1139 | - $sql .= "ON i3geoestat_fonteinfo.id_fonteinfo = i3geoestat_fonteinfo_medida.id_fonteinfo "; | |
| 1140 | - $sql .= "WHERE i3geoestat_fonteinfo_medida.id_medida_variavel = $id_medida_variavel "; | |
| 1141 | - $sql .= "ORDER BY titulo"; | |
| 1142 | - //echo $sql;exit; | |
| 1143 | - return $this->execSQL($sql,$id_fonteinfo); | |
| 1144 | - } | |
| 1145 | - /** | |
| 1146 | - * Lista os dados de uma ou todas as variaveis cadastradas | |
| 1147 | - * @param codigo da variavel | |
| 1148 | - * @param mostra apenas as variaveis cujas tabelas ficam nesse esquema | |
| 1149 | - */ | |
| 1150 | - function listaVariavel($codigo_variavel="",$filtro_esquema=""){ | |
| 1151 | - $sql = "select DISTINCT a.* from ".$this->esquemaadmin."i3geoestat_variavel as a "; | |
| 1152 | - if($codigo_variavel != ""){ | |
| 1153 | - $sql .= "WHERE a.codigo_variavel = $codigo_variavel "; | |
| 1154 | - } | |
| 1155 | - if($filtro_esquema != ""){ | |
| 1156 | - $sql .= ", ".$this->esquemaadmin."i3geoestat_medida_variavel as b WHERE a.codigo_variavel = b.codigo_variavel and b.esquemadb = '$filtro_esquema' "; | |
| 1157 | - } | |
| 1158 | - $sql .= "ORDER BY a.nome"; | |
| 1159 | - //echo $sql;exit; | |
| 1160 | - return $this->execSQL($sql,$codigo_variavel); | |
| 1161 | - } | |
| 1162 | - /** | |
| 1163 | - * Lista os dados de uma ou todas as classificacoes de uma medida de variavel | |
| 1164 | - * @param id da medida de variavel | |
| 1165 | - * @param id da classificacao | |
| 1166 | - */ | |
| 1167 | - function listaClassificacaoMedida($id_medida_variavel,$id_classificacao=""){ | |
| 1168 | - if(!empty($id_medida_variavel)){ | |
| 1169 | - $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_classificacao WHERE id_medida_variavel = $id_medida_variavel"; | |
| 1170 | - } | |
| 1171 | - if(!empty($id_classificacao)){ | |
| 1172 | - $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_classificacao WHERE id_classificacao = $id_classificacao"; | |
| 1173 | - } | |
| 1174 | - return $this->execSQL($sql,$id_classificacao); | |
| 1175 | - } | |
| 1176 | - /** | |
| 1177 | - * Lista os dados de um ou todos os links de uma medida | |
| 1178 | - * @param id da medida | |
| 1179 | - * @param id do link | |
| 1180 | - */ | |
| 1181 | - function listaLinkMedida($id_medida_variavel,$id_link=""){ | |
| 1182 | - if(!empty($id_medida_variavel)){ | |
| 1183 | - $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_medida_variavel_link WHERE id_medida_variavel = $id_medida_variavel"; | |
| 1184 | - } | |
| 1185 | - if(!empty($id_link)){ | |
| 1186 | - $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_medida_variavel_link WHERE id_link = $id_link"; | |
| 1187 | - } | |
| 1188 | - return $this->execSQL($sql,$id_link); | |
| 1189 | - } | |
| 1190 | - /** | |
| 1191 | - * Lista os dados de uma ou todas as classes de uma classificacao | |
| 1192 | - * @param id da classificacao | |
| 1193 | - * @param id da classe | |
| 1194 | - */ | |
| 1195 | - function listaClasseClassificacao($id_classificacao,$id_classe=""){ | |
| 1196 | - if(!empty($id_classificacao)){ | |
| 1197 | - $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_classes WHERE id_classificacao = $id_classificacao"; | |
| 1198 | - } | |
| 1199 | - if(!empty($id_classe)){ | |
| 1200 | - $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_classes WHERE id_classe = $id_classe"; | |
| 1201 | - } | |
| 1202 | - return $this->execSQL($sql,$id_classe); | |
| 1203 | - } | |
| 1204 | - /** | |
| 1205 | - * Lista os dados de uma ou todas as medidas de variavel de uma variavel | |
| 1206 | - * @param codigo da variavel | |
| 1207 | - * @param id da medida de variavel | |
| 1208 | - */ | |
| 1209 | - function listaMedidaVariavel($codigo_variavel,$id_medida_variavel=""){ | |
| 1210 | - $sql = "SELECT i3geoestat_medida_variavel.*,i3geoestat_variavel.nome as nome_variavel,i3geoestat_unidade_medida.permitemedia,i3geoestat_unidade_medida.permitesoma,i3geoestat_unidade_medida.nome as unidade_medida "; | |
| 1211 | - $sql .= "FROM ".$this->esquemaadmin."i3geoestat_variavel "; | |
| 1212 | - $sql .= "JOIN ".$this->esquemaadmin."i3geoestat_medida_variavel "; | |
| 1213 | - $sql .= "ON i3geoestat_variavel.codigo_variavel = i3geoestat_medida_variavel.codigo_variavel "; | |
| 1214 | - $sql .= "LEFT JOIN ".$this->esquemaadmin."i3geoestat_unidade_medida "; | |
| 1215 | - $sql .= "ON i3geoestat_unidade_medida.codigo_unidade_medida = i3geoestat_medida_variavel.codigo_unidade_medida "; | |
| 1216 | - if($codigo_variavel != ""){ | |
| 1217 | - $sql .= "WHERE i3geoestat_variavel.codigo_variavel = $codigo_variavel "; | |
| 1218 | - if($id_medida_variavel != ""){ | |
| 1219 | - $sql .= "AND i3geoestat_medida_variavel.id_medida_variavel = $id_medida_variavel "; | |
| 1220 | - } | |
| 1221 | - } | |
| 1222 | - elseif($id_medida_variavel != "") { | |
| 1223 | - $sql .= "WHERE i3geoestat_medida_variavel.id_medida_variavel = $id_medida_variavel "; | |
| 1224 | - } | |
| 1225 | - $sql .= "ORDER BY i3geoestat_medida_variavel.nomemedida"; | |
| 1226 | - $res = $this->execSQL($sql,$id_medida_variavel); | |
| 1227 | - $res = str_replace('"',"'",$res); | |
| 1228 | - return $res; | |
| 1229 | - } | |
| 1230 | - /** | |
| 1231 | - * Lista as regioes vinculadas a uma medida de variavel | |
| 1232 | - * @param id da medida de vriavel | |
| 1233 | - */ | |
| 1234 | - function listaRegioesMedida($id_medida_variavel){ | |
| 1235 | - $variavel = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 1236 | - $codigo_tipo_regiao = $variavel["codigo_tipo_regiao"]; | |
| 1237 | - $regioes[] = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1238 | - //var_dump($regioes);exit; | |
| 1239 | - $agregacoes = $this->listaAgregaRegiao($codigo_tipo_regiao); | |
| 1240 | - foreach($agregacoes as $a){ | |
| 1241 | - $regioes[] = $this->listaTipoRegiao($a["codigo_tipo_regiao_pai"]); | |
| 1242 | - } | |
| 1243 | - return $regioes; | |
| 1244 | - } | |
| 1245 | - /** | |
| 1246 | - * Lista os dados de uma conexao ou de todas | |
| 1247 | - * @param id da conexao | |
| 1248 | - * @param boolean inclui na lista a senha ou nao | |
| 1249 | - * @param boolean inclui as conexoes definidas em postgis_mapa (ms_configura.php) | |
| 1250 | - */ | |
| 1251 | - function listaConexao($codigo_estat_conexao="",$senha=false,$incluiPostgisMapa=true){ | |
| 1252 | - if($senha == true){ | |
| 1253 | - $colunas = "codigo_estat_conexao, bancodedados, host, porta, usuario, senha"; | |
| 1254 | - } | |
| 1255 | - else{ | |
| 1256 | - $colunas = "codigo_estat_conexao, bancodedados, host, porta, usuario"; | |
| 1257 | - } | |
| 1258 | - $sql = "select $colunas from ".$this->esquemaadmin."i3geoestat_conexao "; | |
| 1259 | - if($codigo_estat_conexao != ""){ | |
| 1260 | - $sql .= "WHERE codigo_estat_conexao = $codigo_estat_conexao "; | |
| 1261 | - } | |
| 1262 | - $sql .= "ORDER BY bancodedados,host,usuario"; | |
| 1263 | - $res = $this->execSQL($sql,$codigo_estat_conexao); | |
| 1264 | - //se achou e a requisico e para listar uma conexao, retorna o que for encontrado | |
| 1265 | - $cres = count($res); | |
| 1266 | - if($cres > 0 && $codigo_estat_conexao != "" && !empty($cres[0]["dbname"])){ | |
| 1267 | - return $res; | |
| 1268 | - } | |
| 1269 | - //caso contrario, e deve retornar todas as conexoes, inclui a fonte | |
| 1270 | - if($codigo_estat_conexao == ""){ | |
| 1271 | - for($i=0; $i<$cres;$i++){ | |
| 1272 | - $res[$i]["fonte"] = "metaestat"; | |
| 1273 | - } | |
| 1274 | - } | |
| 1275 | - //obtem as conexoes definidas em ms_configgura.php | |
| 1276 | - if($incluiPostgisMapa == true){ | |
| 1277 | - if(!isset($postgis_mapa)){ | |
| 1278 | - require(dirname(__FILE__)."/../../ms_configura.php"); | |
| 1279 | - } | |
| 1280 | - if(!empty($postgis_mapa)){ | |
| 1281 | - foreach(array_keys($postgis_mapa) as $key){ | |
| 1282 | - $lista = explode(" ",$postgis_mapa[$key]); | |
| 1283 | - $con = array(); | |
| 1284 | - foreach($lista as $l){ | |
| 1285 | - $teste = explode("=",$l); | |
| 1286 | - $con[trim($teste[0])] = trim($teste[1]); | |
| 1287 | - } | |
| 1288 | - $c = array( | |
| 1289 | - "codigo_estat_conexao" => $key, | |
| 1290 | - "bancodedados" => $con["dbname"], | |
| 1291 | - "host" => $con["host"], | |
| 1292 | - "porta" => $con["port"], | |
| 1293 | - "usuario" => $con["user"], | |
| 1294 | - "fonte" => "ms_configura" | |
| 1295 | - ); | |
| 1296 | - if($senha == true){ | |
| 1297 | - $c["senha"] = $con["password"]; | |
| 1298 | - } | |
| 1299 | - $res[] = $c; | |
| 1300 | - if($codigo_estat_conexao != "" && $codigo_estat_conexao == $key){ | |
| 1301 | - return $c; | |
| 1302 | - } | |
| 1303 | - } | |
| 1304 | - } | |
| 1305 | - } | |
| 1306 | - //echo "<pre>"; | |
| 1307 | - //var_dump($res);exit; | |
| 1308 | - return $res; | |
| 1309 | - } | |
| 1310 | - function listaParametroTempo2CampoData($id_medida_variavel,$prefixoAlias = ""){ | |
| 1311 | - //lista os parametros temporais | |
| 1312 | - $parametros = $this->listaParametro($id_medida_variavel,"","",true,true); | |
| 1313 | - echo "<pre>"; | |
| 1314 | - //var_dump($parametros);exit; | |
| 1315 | - //faz o sql para pegar os valores e definir a resolucao | |
| 1316 | - //o tempo deve comecar sempre pelo ano | |
| 1317 | - $data = array(); | |
| 1318 | - if($parametros[0]["tipo"] == 1){ | |
| 1319 | - //ano | |
| 1320 | - $data[] = $prefixoAlias.$parametros[0]["coluna"]; | |
| 1321 | - $tipodata = "YYYY"; | |
| 1322 | - //mes | |
| 1323 | - if(!empty($parametros[1])){ | |
| 1324 | - $data[] = "'-'".$prefixoAlias.$parametros[1]["coluna"]; | |
| 1325 | - $tipodata = "YYYYMM"; | |
| 1326 | - } | |
| 1327 | - else{ | |
| 1328 | - $data[] = "'-01'"; | |
| 1329 | - } | |
| 1330 | - //dia | |
| 1331 | - if(!empty($parametros[2])){ | |
| 1332 | - $data[] = "'-'".$prefixoAlias.$parametros[2]["coluna"]; | |
| 1333 | - $tipodata = "YYYYMMDD"; | |
| 1334 | - } | |
| 1335 | - else{ | |
| 1336 | - $data[] = "'-01'"; | |
| 1337 | - } | |
| 1338 | - $data = implode("||",$data); | |
| 1339 | - return "to_date($data,'$tipodata')"; | |
| 1340 | - } | |
| 1341 | - } | |
| 1342 | - /** | |
| 1343 | - * Lista os dados de um ou de todos os parametros relacionados a uma medida de variavel | |
| 1344 | - * @param id da medida de variavel | |
| 1345 | - * @param id do parametro | |
| 1346 | - * @param id do pai (se definido, lista apenas os filhos deste) | |
| 1347 | - * @param bool indica se apenas parametros do tipo temporal serao retornados | |
| 1348 | - */ | |
| 1349 | - function listaParametro($id_medida_variavel,$id_parametro_medida="",$id_pai="",$apenasTempo=false,$ordenaPeloPai=false){ | |
| 1350 | - $sql = "SELECT i3geoestat_parametro_medida.*,i3geoestat_medida_variavel.* "; | |
| 1351 | - $sql .= "FROM ".$this->esquemaadmin."i3geoestat_parametro_medida "; | |
| 1352 | - $sql .= "INNER JOIN ".$this->esquemaadmin."i3geoestat_medida_variavel "; | |
| 1353 | - $sql .= "ON i3geoestat_parametro_medida.id_medida_variavel = i3geoestat_medida_variavel.id_medida_variavel "; | |
| 1354 | - if($id_medida_variavel != ""){ | |
| 1355 | - $sql .= "WHERE i3geoestat_parametro_medida.id_medida_variavel = $id_medida_variavel "; | |
| 1356 | - if($id_parametro_medida != ""){ | |
| 1357 | - $sql .= "AND i3geoestat_parametro_medida.id_parametro_medida = $id_parametro_medida "; | |
| 1358 | - } | |
| 1359 | - } | |
| 1360 | - elseif ($id_parametro_medida != ""){ | |
| 1361 | - $sql .= "WHERE i3geoestat_parametro_medida.id_parametro_medida = $id_parametro_medida "; | |
| 1362 | - } | |
| 1363 | - if($id_pai != ""){ | |
| 1364 | - $sql .= " AND id_pai = $id_pai"; | |
| 1365 | - } | |
| 1366 | - if($apenasTempo == true){ | |
| 1367 | - $tempo = " AND i3geoestat_parametro_medida.tipo > 0 AND i3geoestat_parametro_medida.tipo < 5 "; | |
| 1368 | - $sql .= $tempo; | |
| 1369 | - } | |
| 1370 | - if($ordenaPeloPai == true){ | |
| 1371 | - $sql .= " ORDER BY id_pai"; | |
| 1372 | - } | |
| 1373 | - //echo $sql;exit; | |
| 1374 | - return $this->execSQL($sql,$id_parametro_medida); | |
| 1375 | - } | |
| 1376 | - /** | |
| 1377 | - * Lista todos os parametros cadastrados | |
| 1378 | - */ | |
| 1379 | - function listaTodosParametros(){ | |
| 1380 | - $sql = "SELECT i3geoestat_parametro_medida.*,i3geoestat_medida_variavel.* "; | |
| 1381 | - $sql .= "FROM ".$this->esquemaadmin."i3geoestat_parametro_medida "; | |
| 1382 | - $sql .= "INNER JOIN ".$this->esquemaadmin."i3geoestat_medida_variavel "; | |
| 1383 | - $sql .= "ON i3geoestat_parametro_medida.id_medida_variavel = i3geoestat_medida_variavel.id_medida_variavel "; | |
| 1384 | - $sql .= " ORDER BY nome"; | |
| 1385 | - return $this->execSQL($sql); | |
| 1386 | - } | |
| 1387 | - /** | |
| 1388 | - * Lista os valores (unicos) que ocorrem em um parametro de uma medida de variavel | |
| 1389 | - * @param id do parametro | |
| 1390 | - * @return array com os valores | |
| 1391 | - */ | |
| 1392 | - function listaValoresParametro($id_parametro_medida){ | |
| 1393 | - $parametro = $this->listaParametro("",$id_parametro_medida); | |
| 1394 | - //$medida = $this->listaMedidaVariavel("",$parametro["id_medida_variavel"]); | |
| 1395 | - $sm = $this->valorUnicoMedidaVariavel($parametro["id_medida_variavel"],$parametro["coluna"]); | |
| 1396 | - $nsm = array(); | |
| 1397 | - foreach($sm as $s){ | |
| 1398 | - $nsm[] = $s[$parametro["coluna"]]; | |
| 1399 | - } | |
| 1400 | - return $nsm; | |
| 1401 | - } | |
| 1402 | - /** | |
| 1403 | - * Lista os dados de um ou todos os tipos de periodo cadastrados | |
| 1404 | - * @param id | |
| 1405 | - */ | |
| 1406 | - function listaTipoPeriodo($codigo_tipo_periodo=""){ | |
| 1407 | - $sql = "select * from ".$this->esquemaadmin."i3geoestat_tipo_periodo "; | |
| 1408 | - if($codigo_tipo_periodo != ""){ | |
| 1409 | - $sql .= "WHERE codigo_tipo_periodo = $codigo_tipo_periodo "; | |
| 1410 | - } | |
| 1411 | - $sql .= "ORDER BY nome"; | |
| 1412 | - return $this->execSQL($sql,$codigo_tipo_periodo); | |
| 1413 | - } | |
| 1414 | - /** | |
| 1415 | - * Lista as propriedades da coluna com as geometrias de uma regiao geografica | |
| 1416 | - * @param codigo do tipo de regiao | |
| 1417 | - * @return array com os parametros, inclusive a dimensao (st_dimension) | |
| 1418 | - */ | |
| 1419 | - function listaPropGeoRegiao($codigo_tipo_regiao){ | |
| 1420 | - //st_dimension returns 0 for POINT, 1 for LINESTRING, 2 for POLYGON | |
| 1421 | - $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1422 | - $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); | |
| 1423 | - $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 1424 | - $c = $regiao["colunageo"]; | |
| 1425 | - $sql = "select st_dimension(".$regiao["colunageo"].") as st_dimension from ".$regiao["esquemadb"].".".$regiao["tabela"]." limit 1"; | |
| 1426 | - $q = $dbh->query($sql,PDO::FETCH_ASSOC); | |
| 1427 | - $r = array(); | |
| 1428 | - if($q){ | |
| 1429 | - $r = $q->fetchAll(); | |
| 1430 | - $r = $r[0]; | |
| 1431 | - } | |
| 1432 | - return $r; | |
| 1433 | - } | |
| 1434 | - /** | |
| 1435 | - * Lista os dados de uma ou todas as regioes cadastradas | |
| 1436 | - * @param codigo do tipo de regiao | |
| 1437 | - */ | |
| 1438 | - function listaTipoRegiao($codigo_tipo_regiao=""){ | |
| 1439 | - $sql = "select * from ".$this->esquemaadmin."i3geoestat_tipo_regiao "; | |
| 1440 | - if($codigo_tipo_regiao != ""){ | |
| 1441 | - $sql .= "WHERE codigo_tipo_regiao = $codigo_tipo_regiao "; | |
| 1442 | - } | |
| 1443 | - $sql .= "ORDER BY nome_tipo_regiao"; | |
| 1444 | - return $this->execSQL($sql,$codigo_tipo_regiao); | |
| 1445 | - } | |
| 1446 | - /** | |
| 1447 | - * Obtem de um tipo de regiao a coluna do tipo serial | |
| 1448 | - * @param codigo do tipo de regiao | |
| 1449 | - */ | |
| 1450 | - function listaTipoRegiaoSerial($codigo_tipo_regiao){ | |
| 1451 | - $sql = "select * from ".$this->esquemaadmin."i3geoestat_tipo_regiao WHERE codigo_tipo_regiao = $codigo_tipo_regiao "; | |
| 1452 | - $regiao = $this->execSQL($sql,$codigo_tipo_regiao); | |
| 1453 | - $nome_esquema = $regiao["esquemadb"]; | |
| 1454 | - $nome_tabela = $regiao["tabela"]; | |
| 1455 | - $sql = "SELECT a.attname as coluna FROM pg_class s JOIN pg_depend d ON d.objid = s.oid JOIN pg_class t ON d.objid = s.oid AND d.refobjid = t.oid JOIN pg_attribute a ON (d.refobjid, d.refobjsubid) = (a.attrelid, a.attnum) JOIN pg_namespace n ON n.oid = s.relnamespace WHERE s.relkind = 'S' AND n.nspname = '$nome_esquema' AND t.relname = '$nome_tabela'"; | |
| 1456 | - $colunas = $this->execSQLDB($regiao["codigo_estat_conexao"],$sql); | |
| 1457 | - $colunas = $colunas[0]; | |
| 1458 | - return $colunas["coluna"]; | |
| 1459 | - } | |
| 1460 | - /** | |
| 1461 | - * Obtem de uma tabela a coluna do tipo serial | |
| 1462 | - * @param codigo do tipo de regiao | |
| 1463 | - */ | |
| 1464 | - function listaTabelaSerial($codigo_estat_conexao,$nome_esquema,$nome_tabela){ | |
| 1465 | - $sql = "SELECT a.attname as coluna FROM pg_class s JOIN pg_depend d ON d.objid = s.oid JOIN pg_class t ON d.objid = s.oid AND d.refobjid = t.oid JOIN pg_attribute a ON (d.refobjid, d.refobjsubid) = (a.attrelid, a.attnum) JOIN pg_namespace n ON n.oid = s.relnamespace WHERE s.relkind = 'S' AND n.nspname = '$nome_esquema' AND t.relname = '$nome_tabela'"; | |
| 1466 | - $colunas = $this->execSQLDB($codigo_estat_conexao,$sql); | |
| 1467 | - $colunas = $colunas[0]; | |
| 1468 | - return $colunas["coluna"]; | |
| 1469 | - } | |
| 1470 | - /** | |
| 1471 | - * Lista os dados de agregacao de uma regiao pai | |
| 1472 | - * @param codigo da regiao | |
| 1473 | - */ | |
| 1474 | - function listaHierarquiaRegioes($codigoregiaopai=""){ | |
| 1475 | - $sql = "select i3geoestat_agregaregiao.id_agregaregiao,i3geoestat_agregaregiao.colunaligacao_regiaopai,i3geoestat_tipo_regiao.codigo_tipo_regiao,i3geoestat_tipo_regiao.nome_tipo_regiao from ".$this->esquemaadmin."i3geoestat_tipo_regiao "; | |
| 1476 | - $sql .= "LEFT JOIN ".$this->esquemaadmin."i3geoestat_agregaregiao "; | |
| 1477 | - $sql .= "ON i3geoestat_tipo_regiao.codigo_tipo_regiao = i3geoestat_agregaregiao.codigo_tipo_regiao "; | |
| 1478 | - if($codigoregiaopai != ""){ | |
| 1479 | - $sql .= " WHERE ".$this->esquemaadmin."i3geoestat_agregaregiao.codigo_tipo_regiao_pai = $codigoregiaopai"; | |
| 1480 | - } | |
| 1481 | - else{ | |
| 1482 | - $sql .= "WHERE ".$this->esquemaadmin."i3geoestat_agregaregiao.codigo_tipo_regiao IS NULL"; | |
| 1483 | - } | |
| 1484 | - return $this->execSQL($sql,""); | |
| 1485 | - } | |
| 1486 | - function listaHierarquia($codigoregiaopai=""){ | |
| 1487 | - $sql = "select * from ".$this->esquemaadmin."i3geoestat_agregaregiao order by codigo_tipo_regiao"; | |
| 1488 | - return $this->execSQL($sql,""); | |
| 1489 | - } | |
| 1490 | - /** | |
| 1491 | - * Lista os registros de um tipo de regiao | |
| 1492 | - * Se for definido o pai, lista os valores da regiao que e filha | |
| 1493 | - * Nesse caso e necessario definir o identificador da regiao pai para obter os registros na regiao filha | |
| 1494 | - * @param codigo do tipo de regiao | |
| 1495 | - * @param codigo do tipo de regiao pai | |
| 1496 | - * @param identificador da regiao (registro) pai | |
| 1497 | - */ | |
| 1498 | - function listaDadosRegiao($codigo_tipo_regiao,$codigo_tipo_regiaopai="",$valorregiaopai=""){ | |
| 1499 | - //pega a tabela, esquema e conexao para acessar os dados da regiao | |
| 1500 | - $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1501 | - $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); | |
| 1502 | - $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 1503 | - $c = $regiao["colunageo"]; | |
| 1504 | - $bbox = "ST_XMin($c)||' '||ST_YMin($c)||' '||ST_XMax($c)||' '||ST_YMax($c) as ext "; | |
| 1505 | - $sql = "select $bbox,".$regiao["colunanomeregiao"]." as nome_regiao,".$regiao["identificador"]." as identificador_regiao from ".$regiao["esquemadb"].".".$regiao["tabela"]; | |
| 1506 | - if($valorregiaopai != ""){ | |
| 1507 | - $r = $this->listaAgregaRegiaoFilho($codigo_tipo_regiao,$codigo_tipo_regiaopai); | |
| 1508 | - $sql .= " WHERE ".$r["colunaligacao_regiaopai"]."::text = '$valorregiaopai'"; | |
| 1509 | - } | |
| 1510 | - $sql .= " order by ".$regiao["colunanomeregiao"]; | |
| 1511 | - | |
| 1512 | - $q = $dbh->query($sql,PDO::FETCH_ASSOC); | |
| 1513 | - $r = array(); | |
| 1514 | - if($q){ | |
| 1515 | - $r = $q->fetchAll(); | |
| 1516 | - } | |
| 1517 | - return $r; | |
| 1518 | - } | |
| 1519 | - /** | |
| 1520 | - * Lista os registros de uma tabela que e uma regiao | |
| 1521 | - * @param codigo do tipo de regiao | |
| 1522 | - */ | |
| 1523 | - function listaDadosGeometriaRegiao($codigo_tipo_regiao){ | |
| 1524 | - //pega a tabela, esquema e conexao para acessar os dados da regiao | |
| 1525 | - $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1526 | - $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); | |
| 1527 | - $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 1528 | - $c = $regiao["colunageo"]; | |
| 1529 | - $s = "ST_dimension($c) as dimension "; | |
| 1530 | - $sql = "select $s,".$regiao["colunanomeregiao"]." as nome_regiao,".$regiao["identificador"]." as identificador_regiao from ".$regiao["esquemadb"].".".$regiao["tabela"]; | |
| 1531 | - $sql .= " limit 1"; | |
| 1532 | - $q = $dbh->query($sql,PDO::FETCH_ASSOC); | |
| 1533 | - $r = array(); | |
| 1534 | - if($q){ | |
| 1535 | - $r = $q->fetchAll(); | |
| 1536 | - } | |
| 1537 | - return $r[0]; | |
| 1538 | - } | |
| 1539 | - /** | |
| 1540 | - * Lista uma ou todas as agregacoes de regioes existentes para um tipo de regiao | |
| 1541 | - * @param codigo do tipo de regiao | |
| 1542 | - * @param id da agregacao | |
| 1543 | - */ | |
| 1544 | - function listaAgregaRegiao($codigo_tipo_regiao="",$id_agregaregiao=""){ | |
| 1545 | - $sql = "select * from ".$this->esquemaadmin."i3geoestat_agregaregiao "; | |
| 1546 | - if($id_agregaregiao != ""){ | |
| 1547 | - $sql .= "WHERE id_agregaregiao = $id_agregaregiao "; | |
| 1548 | - } | |
| 1549 | - else{ | |
| 1550 | - if($codigo_tipo_regiao != ""){ | |
| 1551 | - $sql .= "WHERE codigo_tipo_regiao = $codigo_tipo_regiao"; | |
| 1552 | - } | |
| 1553 | - } | |
| 1554 | - $sql .= " ORDER BY colunaligacao_regiaopai"; | |
| 1555 | - //echo $sql;exit; | |
| 1556 | - return $this->execSQL($sql,$id_agregaregiao); | |
| 1557 | - } | |
| 1558 | - /** | |
| 1559 | - * Lista uma ou todas as agregacoes de regioes filhas de um tipo de regiao | |
| 1560 | - * @param codigo do tipo de regiao | |
| 1561 | - * @param codigo do tipo de regiao que e pai | |
| 1562 | - */ | |
| 1563 | - function listaAgregaRegiaoFilho($codigo_tipo_regiao,$codigo_tipo_regiao_pai){ | |
| 1564 | - $sql = "select * from ".$this->esquemaadmin."i3geoestat_agregaregiao "; | |
| 1565 | - $sql .= "WHERE codigo_tipo_regiao_pai = $codigo_tipo_regiao_pai "; | |
| 1566 | - if($codigo_tipo_regiao != ""){ | |
| 1567 | - $sql .= "AND codigo_tipo_regiao = $codigo_tipo_regiao"; | |
| 1568 | - } | |
| 1569 | - return $this->execSQL($sql,$codigo_tipo_regiao_pai); | |
| 1570 | - } | |
| 1571 | - /** | |
| 1572 | - * Lista os esquemas em um banco de dados | |
| 1573 | - * @param codigo da conexao | |
| 1574 | - * @return execSQLDB | |
| 1575 | - */ | |
| 1576 | - function esquemasConexao($codigo_estat_conexao){ | |
| 1577 | - return $this->execSQLDB($codigo_estat_conexao,"SELECT oid,nspname as esquema FROM pg_namespace WHERE nspname NOT LIKE 'pg_%' AND nspname NOT LIKE '%_schema%' group by nspname,oid order by nspname"); | |
| 1578 | - } | |
| 1579 | - /** | |
| 1580 | - * Lista as tabelas de um esquema | |
| 1581 | - * @param codigo da conexao | |
| 1582 | - * @param nome do esquema | |
| 1583 | - * @param sim|nao exclui da lista as tabelas que contem geometria | |
| 1584 | - * @return execSQLDB | |
| 1585 | - */ | |
| 1586 | - function tabelasEsquema($codigo_estat_conexao,$nome_esquema,$excluigeom=""){ | |
| 1587 | - $sql = "SELECT table_name as tabela FROM information_schema.tables where table_schema = '$nome_esquema' AND table_schema NOT LIKE 'i3geo%' AND table_schema NOT LIKE 'pg_%' AND table_schema NOT LIKE '%_schema%'"; | |
| 1588 | - if(strtolower($excluigeom) == "sim"){ | |
| 1589 | - $sql = "SELECT c.table_name as tabela FROM information_schema.tables as c left join (SELECT distinct a.table_name FROM information_schema.tables as a left join information_schema.columns as b on a.table_name = b.table_name where a.table_schema = '$nome_esquema' and udt_name = 'geometry' ) as d on c.table_name = d.table_name where c.table_schema = '$nome_esquema' AND c.table_schema NOT LIKE 'i3geo%' AND c.table_schema NOT LIKE 'pg_%' AND c.table_schema NOT LIKE '%_schema%' and d.table_name is null"; | |
| 1590 | - } | |
| 1591 | - return $this->execSQLDB($codigo_estat_conexao,$sql); | |
| 1592 | - } | |
| 1593 | - /** | |
| 1594 | - * Lista as colunas de uma tabela | |
| 1595 | - * @param codigo da conexao | |
| 1596 | - * @param nome do esquema | |
| 1597 | - * @param nome da tabela | |
| 1598 | - * @param tipo de coluna (opcional) | |
| 1599 | - * @param tipo de tratamento do parametro tipo, pode ser =|!= | |
| 1600 | - * @return execSQLDB | |
| 1601 | - */ | |
| 1602 | - function colunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela,$tipo="",$tipotratamento="="){ | |
| 1603 | - $colunas = array(); | |
| 1604 | - $res = $this->execSQLDB($codigo_estat_conexao,"SELECT column_name as coluna,udt_name FROM information_schema.columns where table_schema = '$nome_esquema' and table_name = '$nome_tabela'"); | |
| 1605 | - if($tipo != ""){ | |
| 1606 | - $res = $this->execSQLDB($codigo_estat_conexao,"SELECT column_name as coluna,udt_name FROM information_schema.columns where table_schema = '$nome_esquema' and udt_name $tipotratamento '$tipo' and table_name = '$nome_tabela'"); | |
| 1607 | - } | |
| 1608 | - foreach($res as $c){ | |
| 1609 | - $colunas[] = $c["coluna"]; | |
| 1610 | - } | |
| 1611 | - return $colunas; | |
| 1612 | - } | |
| 1613 | - /** | |
| 1614 | - * Lista o comentario de uma tabela | |
| 1615 | - * @param codigo da conexao | |
| 1616 | - * @param nome do esquema | |
| 1617 | - * @param nome da tabela | |
| 1618 | - * @return execSQLDB | |
| 1619 | - */ | |
| 1620 | - function comentarioTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){ | |
| 1621 | - $colunas = array(); | |
| 1622 | - $sql = "SELECT pg_catalog.obj_description(c.oid, 'pg_class') AS comments FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON (n.oid = c.relnamespace) WHERE n.nspname = '".$nome_esquema."' AND c.relname = '".$nome_tabela."'"; | |
| 1623 | - $res = $this->execSQLDB($codigo_estat_conexao,$sql); | |
| 1624 | - if(count($res) > 0){ | |
| 1625 | - $res = $res[0]; | |
| 1626 | - $res = $res["comments"]; | |
| 1627 | - } | |
| 1628 | - else{ | |
| 1629 | - $res = ""; | |
| 1630 | - } | |
| 1631 | - if($res == null){ | |
| 1632 | - $res = ""; | |
| 1633 | - } | |
| 1634 | - return $res; | |
| 1635 | - } | |
| 1636 | - /** | |
| 1637 | - * Lista os metadados de uma coluna | |
| 1638 | - * Os metadados sao obtidos do proprio PostgreSQL | |
| 1639 | - * @param codigo da conexao | |
| 1640 | - * @param nome do esquema | |
| 1641 | - * @param nome da tabela | |
| 1642 | - * @param nome da coluna (opcional) | |
| 1643 | - * @return execSQLDB | |
| 1644 | - */ | |
| 1645 | - function descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela,$nome_coluna=""){ | |
| 1646 | - if($nome_coluna == ""){ | |
| 1647 | - return $this->execSQLDB($codigo_estat_conexao,"SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE c.relname = '$nome_tabela' and p.nspname = '$nome_esquema' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname"); | |
| 1648 | - } | |
| 1649 | - else{ | |
| 1650 | - $res = $this->execSQLDB($codigo_estat_conexao,"SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE a.attname = '$nome_coluna' AND c.relname = '$nome_tabela' and p.nspname = '$nome_esquema' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname"); | |
| 1651 | - return $res[0]; | |
| 1652 | - } | |
| 1653 | - } | |
| 1654 | - /** | |
| 1655 | - * Lista os dados de uma tabela | |
| 1656 | - * @param codigo da conexao | |
| 1657 | - * @param nome do esquema | |
| 1658 | - * @param nome da tabela | |
| 1659 | - * @param sim|nao inclui o WKT da geometria de colunas geo | |
| 1660 | - * @param (opcional) numero de registros que serao listados | |
| 1661 | - * @return execSQLDB | |
| 1662 | - */ | |
| 1663 | - function obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$geo="nao",$nreg=""){ | |
| 1664 | - $desccolunas = $this->descreveColunasTabela($codigo_estat_conexao, $nome_esquema, $nome_tabela); | |
| 1665 | - $colunas = array(); | |
| 1666 | - $colsql = array(); | |
| 1667 | - foreach($desccolunas as $d){ | |
| 1668 | - if($d["type"] != "geometry" && $d["type"] != "geography"){ | |
| 1669 | - $colunas[] = $d["field"]; | |
| 1670 | - $colsql[] = $d["field"]; | |
| 1671 | - } | |
| 1672 | - elseif($geo == "sim"){ | |
| 1673 | - $colunas[] = $d["field"]; | |
| 1674 | - $colsql[] = "ST_AsText(".$d["field"].") as ".$d["field"]; | |
| 1675 | - } | |
| 1676 | - } | |
| 1677 | - $sql = "SELECT ".implode(",",$colsql)." from ".$nome_esquema.".".$nome_tabela; | |
| 1678 | - if($nreg != ""){ | |
| 1679 | - $sql = "SELECT ".implode(",",$colsql)." from ".$nome_esquema.".".$nome_tabela." limit $nreg"; | |
| 1680 | - } | |
| 1681 | - $dados = $this->execSQLDB($codigo_estat_conexao,$sql ); | |
| 1682 | - $linhas = array(); | |
| 1683 | - foreach($dados as $d){ | |
| 1684 | - $l = array(); | |
| 1685 | - foreach($colunas as $c){ | |
| 1686 | - $l[] = $d[$c]; | |
| 1687 | - } | |
| 1688 | - $linhas[] = $l; | |
| 1689 | - } | |
| 1690 | - return array("nomescolunas"=>$colunas,"colunas"=>$desccolunas,"linhas"=>$linhas); | |
| 1691 | - } | |
| 1692 | - /** | |
| 1693 | - * Relatorio completo com a lista de variaveis e medidas | |
| 1694 | - * @param codigo da variavel | |
| 1695 | - * @param sim|nao inclui dados detalhados | |
| 1696 | - * @return Array | |
| 1697 | - */ | |
| 1698 | - function relatorioCompleto($codigo_variavel="",$dadosGerenciais="nao"){ | |
| 1699 | - $dados = array(); | |
| 1700 | - if($codigo_variavel != "" || !empty($codigo_variavel)){ | |
| 1701 | - $vs[] = $this->listaVariavel($codigo_variavel); | |
| 1702 | - } | |
| 1703 | - else{ | |
| 1704 | - $vs = $this->listaVariavel(); | |
| 1705 | - } | |
| 1706 | - foreach($vs as $v){ | |
| 1707 | - $nivel1["id"] = $v["codigo_variavel"]; | |
| 1708 | - $nivel1["titulo"] = $v["nome"]; | |
| 1709 | - $nivel1["descricao"] = $v["descricao"]; | |
| 1710 | - $ms = $this->listaMedidaVariavel($v["codigo_variavel"]); | |
| 1711 | - $nivel1["filhos"] = array(); | |
| 1712 | - foreach($ms as $m){ | |
| 1713 | - $nivel2["id"] = $m["id_medida_variavel"]; | |
| 1714 | - $nivel2["titulo"] = $m["nomemedida"]; | |
| 1715 | - $unidade = $this->listaUnidadeMedida($m["codigo_unidade_medida"]); | |
| 1716 | - $unidade = "Unidade de medida: ".$unidade["nome"]; | |
| 1717 | - $periodo = $this->listaTipoPeriodo($m["codigo_tipo_periodo"]); | |
| 1718 | - $periodo = "Período de tempo: ".$periodo["nome"]; | |
| 1719 | - $regiao = $this->listaTipoRegiao($m["codigo_tipo_regiao"]); | |
| 1720 | - $regiao = "Região: ".$regiao["nome_tipo_regiao"]; | |
| 1721 | - $nivel2["descricao"] = $unidade.", ".$periodo.", ".$regiao; | |
| 1722 | - $nivel2["fontes"] = $this->listaFonteinfoMedida($m["id_medida_variavel"]); | |
| 1723 | - $nivel2["links"] = $this->listaLinkMedida($m["id_medida_variavel"]); | |
| 1724 | - $nivel2["dadosgerenciais"] = ""; | |
| 1725 | - if($dadosGerenciais == "sim"){ | |
| 1726 | - $nivel2["dadosgerenciais"] = $m; | |
| 1727 | - } | |
| 1728 | - $nivel1["filhos"][] = $nivel2; | |
| 1729 | - } | |
| 1730 | - $dados[] = $nivel1; | |
| 1731 | - } | |
| 1732 | - return $dados; | |
| 1733 | - } | |
| 1734 | - /** | |
| 1735 | - * Cria um raltorio formatado em HTML | |
| 1736 | - * @param dados obtidos com relatorioCompleto | |
| 1737 | - * @param sim|nao inclui os dados detalhados | |
| 1738 | - * @return string | |
| 1739 | - */ | |
| 1740 | - function formataRelatorioHtml($dados,$detalhes="sim"){ | |
| 1741 | - $html[] = "<div class='var_div_relatorio'>"; | |
| 1742 | - $var_cor = "var_cor1"; | |
| 1743 | - foreach($dados as $variavel){ | |
| 1744 | - $html[] = "<div class='".$var_cor."'>"; | |
| 1745 | - $html[] = "<h1 style=padding:3px; ><b>".$variavel["titulo"]; | |
| 1746 | - $html[] = "</b><br><span style='color:rgb(100,100,100)'>".$variavel["descricao"]."</span></h1>"; | |
| 1747 | - $filhos = $variavel["filhos"]; | |
| 1748 | - foreach($filhos as $f){ | |
| 1749 | - $html[] = "<h2 style='position:relative;left:10px;'>ID: <u>".$f["id"]."</u> - ".$f["titulo"]."</h2>"; | |
| 1750 | - $html[] = "<div style='position:relative;padding-left:20px;'>"; | |
| 1751 | - $html[] = "<p>".$f["descricao"]."</p>"; | |
| 1752 | - if($detalhes == "sim"){ | |
| 1753 | - $html[] = "<p><b>Fontes:</b></p>"; | |
| 1754 | - foreach($f["fontes"] as $fonte){ | |
| 1755 | - $html[] = "<p><a href='".$fonte["link"]."' >".$fonte["titulo"]."</a></p>"; | |
| 1756 | - } | |
| 1757 | - $html[] = "<p><b>Links:</b></p>"; | |
| 1758 | - foreach($f["links"] as $link){ | |
| 1759 | - $html[] = "<p><a href='".$link["link"]."' >".$link["nome"]."</a></p>"; | |
| 1760 | - } | |
| 1761 | - if($f["dadosgerenciais"] != ""){ | |
| 1762 | - $html[] = "<span style='color:gray'>"; | |
| 1763 | - $html[] = "esquemadb = ".$f["dadosgerenciais"][esquemadb].", "; | |
| 1764 | - $html[] = "tabela = ".$f["dadosgerenciais"][tabela].", "; | |
| 1765 | - $html[] = "colunavalor = ".$f["dadosgerenciais"][colunavalor].", "; | |
| 1766 | - $html[] = "colunaidgeo = ".$f["dadosgerenciais"][colunaidgeo].", "; | |
| 1767 | - $html[] = "filtro = ".$f["dadosgerenciais"][filtro].", "; | |
| 1768 | - $html[] = "colunaidunico = ".$f["dadosgerenciais"][colunaidunico]; | |
| 1769 | - $html[] = "</span>"; | |
| 1770 | - } | |
| 1771 | - } | |
| 1772 | - $html[] = "</div>"; | |
| 1773 | - } | |
| 1774 | - $html[] = "</div>"; | |
| 1775 | - if($var_cor == "var_cor1"){ | |
| 1776 | - $var_cor = "var_cor2"; | |
| 1777 | - } | |
| 1778 | - else{ | |
| 1779 | - $var_cor = "var_cor1"; | |
| 1780 | - } | |
| 1781 | - } | |
| 1782 | - $html[] = "</div><br><br>"; | |
| 1783 | - return implode("",$html); | |
| 1784 | - } | |
| 1785 | - /** | |
| 1786 | - * Cria um relatorio no formato XML | |
| 1787 | - * @param dados obtidos com relatorioCompleto | |
| 1788 | - * @return string | |
| 1789 | - */ | |
| 1790 | - function formataXML($dados){ | |
| 1791 | - $chaves = array_keys($dados[0]); | |
| 1792 | - if(count($chaves) == 0){ | |
| 1793 | - $chaves = false; | |
| 1794 | - } | |
| 1795 | - $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">" . PHP_EOL; | |
| 1796 | - $xml .= '<result-set>' . PHP_EOL; | |
| 1797 | - //tenta descobrir o tipo de coluna | |
| 1798 | - //$xml .= '<!--java.lang.String,java.lang.Integer-->' . PHP_EOL; | |
| 1799 | - $xmldados = ""; | |
| 1800 | - if($chaves){ | |
| 1801 | - foreach($dados as $d){ | |
| 1802 | - $xmldados .= "<row>" . PHP_EOL; | |
| 1803 | - foreach($chaves as $c){ | |
| 1804 | - $xmldados .= "<".$c.">".$d[$c]."</".$c.">" . PHP_EOL; | |
| 1805 | - } | |
| 1806 | - $xmldados .= "</row>" . PHP_EOL; | |
| 1807 | - } | |
| 1808 | - $tipos = array(); | |
| 1809 | - $d = $dados[0]; | |
| 1810 | - foreach($chaves as $c){ | |
| 1811 | - if(is_numeric($d[$c])){ | |
| 1812 | - $tipos[] = "java.lang.Integer"; | |
| 1813 | - } | |
| 1814 | - else{ | |
| 1815 | - $tipos[] = "java.lang.String"; | |
| 1816 | - } | |
| 1817 | - } | |
| 1818 | - $xml .= '<!--'.implode($tipos,",").'-->' . PHP_EOL; | |
| 1819 | - } | |
| 1820 | - else{ | |
| 1821 | - while (list($key, $val) = each($dados)) { | |
| 1822 | - $xmldados .= "<row>" . PHP_EOL; | |
| 1823 | - $xmldados .= "<nome>".$key."</nome>" . PHP_EOL; | |
| 1824 | - $xmldados .= "<valor>".$val."</valor>" . PHP_EOL; | |
| 1825 | - $xmldados .= "</row>" . PHP_EOL; | |
| 1826 | - } | |
| 1827 | - reset($dados); | |
| 1828 | - $tipos = array(); | |
| 1829 | - while (list($key, $val) = each($dados)) { | |
| 1830 | - if(is_numeric($val)){ | |
| 1831 | - $tipos[] = "java.lang.Integer"; | |
| 1832 | - } | |
| 1833 | - else{ | |
| 1834 | - $tipos[] = "java.lang.String"; | |
| 1835 | - } | |
| 1836 | - if(is_numeric($key)){ | |
| 1837 | - $tipos[] = "java.lang.Integer"; | |
| 1838 | - } | |
| 1839 | - else{ | |
| 1840 | - $tipos[] = "java.lang.String"; | |
| 1841 | - } | |
| 1842 | - break; | |
| 1843 | - } | |
| 1844 | - $xml .= '<!--'.implode($tipos,",").'-->' . PHP_EOL; | |
| 1845 | - } | |
| 1846 | - $xml .= $xmldados; | |
| 1847 | - $xml .= '</result-set>' . PHP_EOL; | |
| 1848 | - return $xml; | |
| 1849 | - } | |
| 1850 | - /** | |
| 1851 | - * Verifica se em um array existe uma chave com determinado valor | |
| 1852 | - * @param Array | |
| 1853 | - * @param nome da chave | |
| 1854 | - * @param valor a ser buscado | |
| 1855 | - * @return boolean | |
| 1856 | - */ | |
| 1857 | - function buscaNoArray($lista,$chave,$valor){ | |
| 1858 | - foreach($lista as $l){ | |
| 1859 | - if($l[$chave] == $valor){ | |
| 1860 | - return true; | |
| 1861 | - } | |
| 1862 | - } | |
| 1863 | - return false; | |
| 1864 | - } | |
| 1865 | - /** | |
| 1866 | - * Obtem o valor de um registro de uma tabela de regiao com base na coordenada de longitude e latitude | |
| 1867 | - * @param codigo do tipo de regiao | |
| 1868 | - * @param longitude | |
| 1869 | - * @param latitude | |
| 1870 | - * @return array | |
| 1871 | - */ | |
| 1872 | - function xy2regiao($codigo_tipo_regiao,$x,$y){ | |
| 1873 | - //pega a tabela, esquema e conexao para acessar os dados da regiao | |
| 1874 | - $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1875 | - $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); | |
| 1876 | - $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 1877 | - $sql = "select ".$regiao["identificador"]." as identificador_regiao,".$regiao["colunanomeregiao"]." as nomeregiao from i3geo_metaestat.".$regiao["tabela"]." WHERE ST_within(ST_GeomFromText('POINT($x $y)',".$regiao["srid"]."),".$regiao["colunageo"].")"; | |
| 1878 | - $q = $dbh->query($sql,PDO::FETCH_ASSOC); | |
| 1879 | - $r = $q->fetchAll(); | |
| 1880 | - if(count($r) > 0){ | |
| 1881 | - return $r[0]; | |
| 1882 | - } | |
| 1883 | - else{ | |
| 1884 | - return ""; | |
| 1885 | - } | |
| 1886 | - } | |
| 1887 | - /** | |
| 1888 | - * Busca os dados de uma medida de variavel para uma regiao | |
| 1889 | - * Identificador da regiao e o valor a ser encontrado na coluna de | |
| 1890 | - * ligacao da tabela da medida da variavel com a tabela com as localidades (tipo de regiao) | |
| 1891 | - * @param identificador da regiao | |
| 1892 | - * @param id da medida da variavel | |
| 1893 | - * @return multitype:unknown multitype: string | |
| 1894 | - */ | |
| 1895 | - function listaAtributosMedidaVariavelRegiao ($identificador_regiao,$id_medida_variavel){ | |
| 1896 | - $medida = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 1897 | - $c = $this->listaConexao($medida["codigo_estat_conexao"],true); | |
| 1898 | - if($medida["colunavalor"] == ""){ | |
| 1899 | - return ""; | |
| 1900 | - } | |
| 1901 | - $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 1902 | - $colunassql[] = $medida["colunavalor"].",".$medida["colunaidunico"]; | |
| 1903 | - | |
| 1904 | - $alias[] = $medida["nomemedida"]; | |
| 1905 | - $colunas[] = $medida["colunavalor"]; | |
| 1906 | - $alias[] = "idunico"; | |
| 1907 | - $colunas[] = $medida["colunaidunico"]; | |
| 1908 | - $descricao[] = $medida["unidade_medida"]; | |
| 1909 | - $parametros = $this->listaParametro($id_medida_variavel); | |
| 1910 | - foreach($parametros as $p){ | |
| 1911 | - $colunassql[] = $p["coluna"]; | |
| 1912 | - $alias[] = $p["nome"]; | |
| 1913 | - $descricao[] = $p["descricao"]; | |
| 1914 | - $colunas[] = $p["coluna"]; | |
| 1915 | - } | |
| 1916 | - | |
| 1917 | - $sql = "select ".implode(",",$colunassql)." from ".$medida["esquemadb"].".".$medida["tabela"]." WHERE ".$medida["colunaidgeo"]."::text = ".$identificador_regiao."::text "; | |
| 1918 | - if($medida["filtro"] != ""){ | |
| 1919 | - $sql .= " and ".$medida["filtro"]; | |
| 1920 | - } | |
| 1921 | - $q = $dbh->query($sql,PDO::FETCH_ASSOC); | |
| 1922 | - $r = $q->fetchAll(); | |
| 1923 | - return array("dados"=>$r,"aliascolunas"=>$alias,"colunas"=>$colunas,"descricao"=>$descricao); | |
| 1924 | - } | |
| 1925 | - /** | |
| 1926 | - * Converte um tipo de regiao em shapefile | |
| 1927 | - * @param codigo do tipo de regiao | |
| 1928 | - * @return nome do arquivo criado | |
| 1929 | - */ | |
| 1930 | - function regiao2shp($codigo_tipo_regiao){ | |
| 1931 | - $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1932 | - $dados = $this->obtemDadosTabelaDB($regiao["codigo_estat_conexao"],$regiao["esquemadb"],$regiao["tabela"],"sim"); | |
| 1933 | - $tipol = $this->listaPropGeoRegiao($codigo_tipo_regiao); | |
| 1934 | - include_once(dirname(__FILE__)."/../../classesphp/classe_shp.php"); | |
| 1935 | - $s = new SHP(); | |
| 1936 | - //st_dimension returns 0 for POINT, 1 for LINESTRING, 2 for POLYGON | |
| 1937 | - //echo MS_SHP_POINT.", ".MS_SHP_ARC.", ".MS_SHP_POLYGON.", ".MS_SHP_MULTIPOINT; | |
| 1938 | - //1, 3, 5, 8 | |
| 1939 | - $conv[0] = 1; | |
| 1940 | - $conv[1] = 3; | |
| 1941 | - $conv[2] = 5; | |
| 1942 | - //cria as colunas | |
| 1943 | - $cni = 0; | |
| 1944 | - foreach($dados["colunas"] as $t){ | |
| 1945 | - $temp = strtoupper($t["field"]); | |
| 1946 | - if(strlen($temp) > 10){ | |
| 1947 | - $temp = substr($temp,0,8).($cni++); | |
| 1948 | - } | |
| 1949 | - if($t["type"] == "varchar" || $t["type"] == "char" || $t["type"] == "character varying" || $t["type"] == "character" || $t["type"] == "text"){ | |
| 1950 | - $def[] = array($temp,"C","254"); | |
| 1951 | - } | |
| 1952 | - else{ | |
| 1953 | - if($t["lengthvar"] < 0){ | |
| 1954 | - $t["lengthvar"] = 0; | |
| 1955 | - } | |
| 1956 | - $def[] = array($temp,"N", $t["length"],$t["lengthvar"]); | |
| 1957 | - } | |
| 1958 | - } | |
| 1959 | - $nomeshp = $this->dir_tmp."/regiao$codigo_tipo_regiao"."_".$this->nomeRandomico(); | |
| 1960 | - $dbaseExiste = false; | |
| 1961 | - if(function_exists("dbase_create")){ | |
| 1962 | - $dbaseExiste = true; | |
| 1963 | - } | |
| 1964 | - //para manipular dbf | |
| 1965 | - if($dbaseExiste == false){ | |
| 1966 | - include_once (dirname(__FILE__)."/../pacotes/phpxbase/api_conversion.php"); | |
| 1967 | - $db = xbase_create($nomeshp.".dbf", $def); | |
| 1968 | - } | |
| 1969 | - else | |
| 1970 | - {$db = dbase_create($nomeshp.".dbf", $def);} | |
| 1971 | - $dbname = $nomeshp.".dbf"; | |
| 1972 | - $reg = array(); | |
| 1973 | - $novoshpf = ms_newShapefileObj($nomeshp.".shp", $conv[$tipol["st_dimension"]]); | |
| 1974 | - $cols = $dados["colunas"]; | |
| 1975 | - $nc = count($dados["colunas"]); | |
| 1976 | - foreach($dados["linhas"] as $l){ | |
| 1977 | - $reg = array(); | |
| 1978 | - for($i=0;$i<$nc;$i++){ | |
| 1979 | - if($cols[$i]["type"] != "geometry" && $cols[$i]["type"] != "geography"){ | |
| 1980 | - $reg[] = $l[$i]; | |
| 1981 | - } | |
| 1982 | - else{ | |
| 1983 | - $reg[] = 0; | |
| 1984 | - if($cols[$i]["field"] == $regiao["colunageo"]){ | |
| 1985 | - $shape = ms_shapeObjFromWkt($l[$i]); | |
| 1986 | - } | |
| 1987 | - } | |
| 1988 | - } | |
| 1989 | - $novoshpf->addShape($shape); | |
| 1990 | - if($dbaseExiste == false){ | |
| 1991 | - xbase_add_record($db,$reg); | |
| 1992 | - } | |
| 1993 | - else{ | |
| 1994 | - dbase_add_record($db,$reg); | |
| 1995 | - } | |
| 1996 | - } | |
| 1997 | - if($this->dbaseExiste == false){ | |
| 1998 | - xbase_close($db); | |
| 1999 | - } | |
| 2000 | - else{ | |
| 2001 | - dbase_close($db); | |
| 2002 | - } | |
| 2003 | - return $nomeshp; | |
| 2004 | - } | |
| 2005 | - /* | |
| 2006 | - * Testa se os elementos de um array sao numericos | |
| 2007 | - */ | |
| 2008 | - function testaNumerico($valores){ | |
| 2009 | - foreach ($valores as $valor) { | |
| 2010 | - if(!empty($valor) && !is_numeric($valor)) { | |
| 2011 | - echo "valor nao numerico"; | |
| 2012 | - exit; | |
| 2013 | - } | |
| 2014 | - } | |
| 2015 | - } | |
| 2016 | -} | |
| 2017 | -?> |
| ... | ... | @@ -0,0 +1,2023 @@ |
| 1 | +<?php | |
| 2 | +/** | |
| 3 | + * Classe metaestatInfo | |
| 4 | + * O construtor da classe faz o include do programa conexao.php que por sua vez faz o include | |
| 5 | + * de i3geo/ms_configura.php. Com base nesses programas sao definidas algumas das variaveis globais | |
| 6 | +*/ | |
| 7 | +class MetaestatInfo{ | |
| 8 | + /** | |
| 9 | + * Nome do esquema no banco de dados utilizado para armazenar as tabelas | |
| 10 | + * do sistema de admnistracao. Obtido de ms_configura.php | |
| 11 | + */ | |
| 12 | + protected $esquemaadmin; | |
| 13 | + /** | |
| 14 | + * Objeto PDO obtido com new PDO com direito de leitura no banco de dados de administracao | |
| 15 | + */ | |
| 16 | + public $dbh; | |
| 17 | + /** | |
| 18 | + * Indica se e necessario converter para UTF strings obtidas do banco de administracao | |
| 19 | + */ | |
| 20 | + public $convUTF; | |
| 21 | + /** | |
| 22 | + * Pasta temporaria utilizada pelo mapserver | |
| 23 | + */ | |
| 24 | + public $dir_tmp; | |
| 25 | + /** | |
| 26 | + * Pasta onde e feito o cache de imagens do i3Geo | |
| 27 | + */ | |
| 28 | + public $nomecache; | |
| 29 | + /** | |
| 30 | + * Grava ou nao o log de transacoes | |
| 31 | + */ | |
| 32 | + public $logTransacoes; | |
| 33 | + /** | |
| 34 | + * Construtor | |
| 35 | + * Faz o include de conexao.php que por sua vez faz o include de i3geo/ms_configura.php | |
| 36 | + */ | |
| 37 | + function __construct(){ | |
| 38 | + include(dirname(__FILE__)."/../admin/php/conexao.php"); | |
| 39 | + //vem do include | |
| 40 | + $this->dir_tmp = $dir_tmp; | |
| 41 | + $this->logTransacoes = $logTransacoes; | |
| 42 | + $this->locaplic = $locaplic; | |
| 43 | + $this->base = $base; | |
| 44 | + if(!isset($convUTF)){ | |
| 45 | + $convUTF = true; | |
| 46 | + } | |
| 47 | + $this->convUTF = $convUTF; | |
| 48 | + $this->dbh = $dbh; | |
| 49 | + $this->esquemaadmin = ""; | |
| 50 | + if(!empty($esquemaadmin)){ | |
| 51 | + $this->esquemaadmin = str_replace(".","",$esquemaadmin)."."; | |
| 52 | + } | |
| 53 | + $this->nomecache = $this->nomeCache(); | |
| 54 | + } | |
| 55 | + function __destruct(){ | |
| 56 | + $this->fechaConexao(); | |
| 57 | + } | |
| 58 | + /** | |
| 59 | + * Cria um nome de arquivo concatenando $_request | |
| 60 | + * @return string | |
| 61 | + */ | |
| 62 | + function nomeCache(){ | |
| 63 | + return "AAAA".md5(implode("x",$_REQUEST)); | |
| 64 | + } | |
| 65 | + /** | |
| 66 | + * Cria um nome aleatorio | |
| 67 | + * @param numero de caracteres | |
| 68 | + * @return string | |
| 69 | + */ | |
| 70 | + function nomeRandomico($n=10){ | |
| 71 | + $nomes = ""; | |
| 72 | + $a = 'azertyuiopqsdfghjklmwxcvbnABCDEFGHIJKLMNOPQRSTUVWXYZ'; | |
| 73 | + $max = 51; | |
| 74 | + for($i=0; $i < $n; ++$i) | |
| 75 | + { | |
| 76 | + $nomes .= $a{mt_rand(0, $max)}; | |
| 77 | + } | |
| 78 | + return $nomes; | |
| 79 | + } | |
| 80 | + /** | |
| 81 | + * Fecha a conexao com o banco de dados de administracao | |
| 82 | + */ | |
| 83 | + function fechaConexao(){ | |
| 84 | + $this->dbh = null; | |
| 85 | + } | |
| 86 | + /** | |
| 87 | + * Aplica a conversao de caracteres em um array ou string conforme o padrao do banco de administracao | |
| 88 | + * Verifica se o parametro e um array ou um texto e executa converteTexto() | |
| 89 | + * @param string|array | |
| 90 | + * @return string|array | |
| 91 | + */ | |
| 92 | + function converteTextoArray($texto){ | |
| 93 | + try { | |
| 94 | + if(empty($texto) || strtoupper($texto) == "NULL"){ | |
| 95 | + return ""; | |
| 96 | + } | |
| 97 | + $chaves = array_keys($texto); | |
| 98 | + if($chaves[0] != "0"){ | |
| 99 | + foreach($chaves as $chave){ | |
| 100 | + $texto[$chave] = $this->converteTexto($texto[$chave]); | |
| 101 | + } | |
| 102 | + } | |
| 103 | + else{ | |
| 104 | + $n = count($texto); | |
| 105 | + for($i=0;$i<$n;$i++){ | |
| 106 | + $chaves = array_keys($texto[$i]); | |
| 107 | + foreach($chaves as $chave){ | |
| 108 | + if(is_string($texto[$i][$chave])){ | |
| 109 | + $t = $this->converteTexto($texto[$i][$chave]); | |
| 110 | + $texto[$i][$chave] = $t; | |
| 111 | + } | |
| 112 | + } | |
| 113 | + } | |
| 114 | + } | |
| 115 | + return $texto; | |
| 116 | + } | |
| 117 | + catch (Exception $e) { | |
| 118 | + return $texto; | |
| 119 | + } | |
| 120 | + } | |
| 121 | + /** | |
| 122 | + * Converte a codificacao de caracteres de uma string conforme o padrao do banco de admnistracao | |
| 123 | + * @param string | |
| 124 | + * @return string | |
| 125 | + */ | |
| 126 | + function converteTexto($texto){ | |
| 127 | + if($texto == "0"){ | |
| 128 | + return "0"; | |
| 129 | + } | |
| 130 | + if(empty($texto)){ | |
| 131 | + return ""; | |
| 132 | + } | |
| 133 | + if($this->convUTF == true){ | |
| 134 | + $texto = mb_convert_encoding($texto,mb_detect_encoding($texto),"UTF-8"); | |
| 135 | + } | |
| 136 | + else{ | |
| 137 | + $texto = mb_convert_encoding($texto,mb_detect_encoding($texto),"ISO-8859-1"); | |
| 138 | + } | |
| 139 | + return $texto; | |
| 140 | + } | |
| 141 | + /** | |
| 142 | + * Executa um SQL no banco de administracao | |
| 143 | + * Utiliza fetchAll() para obter os dados | |
| 144 | + * O resultado e processado por converteTextoArray se for desejado | |
| 145 | + * @param string sql | |
| 146 | + * @param se for vazio retorna todos os registros, caso contrario, retorna apenas o primeiro | |
| 147 | + * @param indica se deve ser feita a conversao de caracteres | |
| 148 | + * @return Array | |
| 149 | + */ | |
| 150 | + function execSQL($sql,$id="",$convTexto=true){ | |
| 151 | + $sql = str_ireplace(array("update","delete","insert","--","drop",";"),"",$sql); | |
| 152 | + try { | |
| 153 | + $q = $this->dbh->query($sql,PDO::FETCH_ASSOC); | |
| 154 | + } | |
| 155 | + catch (PDOException $e) { | |
| 156 | + return "Error!: "; | |
| 157 | + } | |
| 158 | + if($q){ | |
| 159 | + $r = $q->fetchAll(); | |
| 160 | + if($convTexto == false){ | |
| 161 | + return $r; | |
| 162 | + } | |
| 163 | + if($r){ | |
| 164 | + if($id != ""){ | |
| 165 | + if(count($r) == 1){ | |
| 166 | + $r = $r[0]; | |
| 167 | + } | |
| 168 | + else{ | |
| 169 | + $r = array(); | |
| 170 | + } | |
| 171 | + } | |
| 172 | + if($r != false && count($r) > 0){ | |
| 173 | + $r = $this->converteTextoArray($r); | |
| 174 | + } | |
| 175 | + return $r; | |
| 176 | + } | |
| 177 | + else{ | |
| 178 | + return array(); | |
| 179 | + } | |
| 180 | + } | |
| 181 | + else{ | |
| 182 | + return false; | |
| 183 | + } | |
| 184 | + } | |
| 185 | + /** | |
| 186 | + * Executa um SQL no banco de dados definido em uma conexao cadastrada no sistema de admnistracao | |
| 187 | + * @param codigo da conexao | |
| 188 | + * @param tring sql | |
| 189 | + * @return resultado de execSQL | |
| 190 | + */ | |
| 191 | + function execSQLDB($codigo_estat_conexao,$sql){ | |
| 192 | + $buscar = array("drop","update","insert","delete"); | |
| 193 | + $sql = str_ireplace($buscar,"",$sql); | |
| 194 | + $c = $this->listaConexao($codigo_estat_conexao,true); | |
| 195 | + $dbhold = $this->dbh; | |
| 196 | + $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 197 | + $this->dbh = $dbh; | |
| 198 | + $res = $this->execSQL($sql,"",false); | |
| 199 | + $this->dbh = $dbhold; | |
| 200 | + return $res; | |
| 201 | + } | |
| 202 | + /** | |
| 203 | + * Monta o sql que permite acessar os dados de uma media de uma variavel | |
| 204 | + * @param id da medida da variavel | |
| 205 | + * @param inclui todas as colunas da tabela com os dados ou nao | |
| 206 | + * @param coluna que sera usada para agrupar os dados | |
| 207 | + * @param tipo de layer. Usado para escolher qual coluna com as geometrias sera incluida no sql | |
| 208 | + * @param codigo do tipo de regiao. Se nao for definido, utiliza-se o default da variavel | |
| 209 | + * @param le os dados diretamente da tabela sem nenhum tipo de agrupamento, seja por data ou outro parametro | |
| 210 | + * @return array("sqlagrupamento"=>,"sql"=>,"sqlmapserver"=>,"filtro"=>,"colunas"=>,"alias"=>,"colunavalor"=>,"titulo"=>,"nomeregiao"=>) | |
| 211 | + */ | |
| 212 | + function sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor="",$tipolayer="polygon",$codigo_tipo_regiao = "",$suportaWMST = false,$filtro = "",$direto=false){ | |
| 213 | + // | |
| 214 | + //o sql que faz acesso aos dados e marcado com /*SE*//*SE*/ na string que sera usada nos mapfiles | |
| 215 | + //a parte que contem referencias a coluna com a geometria e marcada com /*SG*//*SG*/ | |
| 216 | + // | |
| 217 | + //registros da medida da variavel | |
| 218 | + $dados = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 219 | + | |
| 220 | + if(!empty($dados["filtro"])){ | |
| 221 | + if($filtro == ""){ | |
| 222 | + $filtro = $dados["filtro"]; | |
| 223 | + } | |
| 224 | + else{ | |
| 225 | + $filtro = $filtro." AND (".$dados["filtro"].")"; | |
| 226 | + } | |
| 227 | + } | |
| 228 | + | |
| 229 | + //parametros da medida da variavel | |
| 230 | + $parametrosMedida = array(); | |
| 231 | + $pp = $this->listaParametro($id_medida_variavel,"",0); | |
| 232 | + foreach($pp as $p){ | |
| 233 | + $parametrosMedida[] = $p["coluna"]; | |
| 234 | + } | |
| 235 | + | |
| 236 | + //titulo da medida de variavel | |
| 237 | + $titulo = $dados["nomemedida"]; | |
| 238 | + //indica se os dados devem ser agregados a uma regiao de nivel superior | |
| 239 | + $agregaregiao = false; | |
| 240 | + //nome da coluna que contem os limites geograficos da regiao desejada pelo usuario | |
| 241 | + $colunageo = ""; | |
| 242 | + | |
| 243 | + //se a regiao definida para a medida da variavel for diferente da regiao indicada pelo usuario | |
| 244 | + //significa que a regiao indicada pelo usuario e uma agragacao | |
| 245 | + if($codigo_tipo_regiao != "" && $dados["codigo_tipo_regiao"] != $codigo_tipo_regiao){ | |
| 246 | + $agregaregiao = true; | |
| 247 | + //guarda os dados da regiao que agrega a regiao original da medida variavel | |
| 248 | + $dadosgeo = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 249 | + } | |
| 250 | + else{ | |
| 251 | + $dadosgeo = $this->listaTipoRegiao($dados["codigo_tipo_regiao"]); | |
| 252 | + } | |
| 253 | + if($tipolayer != "point"){ | |
| 254 | + $colunageo = $dadosgeo["colunageo"]; | |
| 255 | + $titulo .= " (pol) "; | |
| 256 | + } | |
| 257 | + else{ | |
| 258 | + $colunageo = $dadosgeo["colunacentroide"]; | |
| 259 | + $titulo .= " (pt) "; | |
| 260 | + } | |
| 261 | + $titulo .= $dadosgeo["nome_tipo_regiao"]; | |
| 262 | + | |
| 263 | + $vis = $dadosgeo["colunasvisiveis"]; | |
| 264 | + if(!empty($vis) && $suportaWMST == false){ | |
| 265 | + $vis = $vis.",".$dadosgeo["identificador"]; | |
| 266 | + $vis = str_replace(" ",",",$vis); | |
| 267 | + $vis = str_replace(",,",",",$vis); | |
| 268 | + $vis = str_replace(";",",",$vis); | |
| 269 | + | |
| 270 | + $colunasSemGeo = explode(",",$vis); | |
| 271 | + $colunasSemGeo = array_unique($colunasSemGeo); | |
| 272 | + | |
| 273 | + if($dadosgeo["apelidos"] != ""){ | |
| 274 | + $alias = "Valor,".$dadosgeo["apelidos"].",".$dadosgeo["identificador"]; | |
| 275 | + $alias = mb_convert_encoding($alias,"ISO-8859-1",mb_detect_encoding($alias)); | |
| 276 | + $alias = str_replace(";",",",$alias); | |
| 277 | + $alias = str_replace(",,",",",$alias); | |
| 278 | + $alias = explode(",",$alias); | |
| 279 | + $alias = array_unique($alias); | |
| 280 | + } | |
| 281 | + else{ | |
| 282 | + $alias = $colunasSemGeo; | |
| 283 | + } | |
| 284 | + if(count($alias)-1 != count($colunasSemGeo)){ | |
| 285 | + $alias = array(); | |
| 286 | + } | |
| 287 | + } | |
| 288 | + else{ | |
| 289 | + //colunas da tabela geometria sem as colunas GEOMETRY | |
| 290 | + $colunasSemGeo = $this->colunasTabela($dadosgeo["codigo_estat_conexao"], $dadosgeo["esquemadb"], $dadosgeo["tabela"],"geometry","!="); | |
| 291 | + $alias = array(); | |
| 292 | + if($suportaWMST == true){ | |
| 293 | + $sqlWMST = $this->listaParametroTempo2CampoData($id_medida_variavel); | |
| 294 | + $colunasSemGeo[] = "dimtempo"; | |
| 295 | + } | |
| 296 | + } | |
| 297 | + //verifica o tipo de calculo para agragacao de valores | |
| 298 | + $tipoconta = ""; | |
| 299 | + if($dados["permitesoma"] == 1 && $direto == false){ | |
| 300 | + $tipoconta = "sum"; | |
| 301 | + if($agregaregiao == true){ | |
| 302 | + $titulo .= " - soma"; | |
| 303 | + } | |
| 304 | + } | |
| 305 | + elseif($dados["permitemedia"] == 1 && $direto == false){ | |
| 306 | + $tipoconta = "avg"; | |
| 307 | + if($agregaregiao == true){ | |
| 308 | + $titulo .= " - media"; | |
| 309 | + } | |
| 310 | + } | |
| 311 | + | |
| 312 | + //obtem o SQL que faz o acesso aos dados da media da variavel | |
| 313 | + if($dados["colunavalor"] == ""){ | |
| 314 | + $nomevalorcalculado = "'1'::numeric"; | |
| 315 | + } | |
| 316 | + else{ | |
| 317 | + $nomevalorcalculado = $dados["colunavalor"]; | |
| 318 | + } | |
| 319 | + | |
| 320 | + $sqlDadosMedidaVariavel = "SELECT ".$dados["colunaidgeo"]." AS cod_regiao,$tipoconta(".$nomevalorcalculado.") AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; | |
| 321 | + if($suportaWMST == true && $direto == false){ | |
| 322 | + $sqlDadosMedidaVariavel = "SELECT $sqlWMST as dimtempo,".$dados["colunaidgeo"]." AS cod_regiao,".$nomevalorcalculado." AS valorcalculado FROM ".$dados["esquemadb"].".".$dados["tabela"]; | |
| 323 | + } | |
| 324 | + if(!empty ($filtro) && $direto == false){ | |
| 325 | + $sqlDadosMedidaVariavel .= " WHERE ".$filtro . " AND ".$nomevalorcalculado." IS NOT NULL "; | |
| 326 | + } | |
| 327 | + else{ | |
| 328 | + $sqlDadosMedidaVariavel .= " WHERE ".$nomevalorcalculado." IS NOT NULL "; | |
| 329 | + } | |
| 330 | + if($suportaWMST != true && $direto == false){ | |
| 331 | + $sqlDadosMedidaVariavel .= " /*FA*//*FA*/ /*FAT*//*FAT*/ GROUP BY cod_regiao "; | |
| 332 | + } | |
| 333 | + $sqlagrupamento = ""; | |
| 334 | + //sql que retorna a lista de ocorrencias agrupados de uma coluna especifica | |
| 335 | + if(!empty($agruparpor) && $direto == false){ | |
| 336 | + $sqlagrupamento = " SELECT $agruparpor FROM ".$dados["esquemadb"].".".$dados["tabela"]; | |
| 337 | + if(!empty ($filtro)){ | |
| 338 | + $sqlagrupamento .= " WHERE ".$filtro; | |
| 339 | + } | |
| 340 | + $sqlagrupamento .= " /*FA*//*FA*/ /*FAT*//*FAT*/ GROUP BY ".$agruparpor." ORDER BY ".$agruparpor; | |
| 341 | + } | |
| 342 | + if($dados["colunavalor"] == ""){ | |
| 343 | + $nomeColunaValor = "contagem"; | |
| 344 | + } | |
| 345 | + else{ | |
| 346 | + $nomeColunaValor = $dados["colunavalor"]; | |
| 347 | + } | |
| 348 | + $sqlIntermediario = "SELECT (j.valorcalculado) AS ".$nomeColunaValor.", __COLUNASSEMGEO__". | |
| 349 | + " FROM ".$dadosgeo["esquemadb"].".".$dadosgeo["tabela"]." AS regiao ". | |
| 350 | + " INNER JOIN ( __SQLDADOS__ ) ". | |
| 351 | + " AS j ON j.cod_regiao::text = regiao.".$dadosgeo["identificador"]."::text"; | |
| 352 | + //inclui os sqls de regioes de niveis inferiores | |
| 353 | + if($agregaregiao == true && $direto == false){ | |
| 354 | + $hierarquia = $this->regiaoFilhaAoPai($dados["codigo_tipo_regiao"],$codigo_tipo_regiao); | |
| 355 | + $caminho = $hierarquia["caminho"]; | |
| 356 | + $dadosColunas = $hierarquia["colunas"]; | |
| 357 | + //var_dump($hierarquia);exit; | |
| 358 | + if(count($caminho) > 0){ | |
| 359 | + $caminho = array_reverse($caminho); | |
| 360 | + foreach($caminho as $idregiao){ | |
| 361 | + if($idregiao != $codigo_tipo_regiao){//a regiao pai ja esta no sql | |
| 362 | + $tempDadosRegiao = $this->listaTipoRegiao($idregiao); | |
| 363 | + //para contador forcado | |
| 364 | + if($dados["colunavalor"] == ""){ | |
| 365 | + $nomevalorcalculado = "'1'::numeric"; | |
| 366 | + } | |
| 367 | + else{ | |
| 368 | + $nomevalorcalculado = "j.valorcalculado"; | |
| 369 | + } | |
| 370 | + $temp = "SELECT regiao.".$dadosColunas[$idregiao]["colunaligacao_regiaopai"]." AS cod_regiao,sum(".$nomevalorcalculado.") AS valorcalculado ". | |
| 371 | + "FROM ".$tempDadosRegiao["esquemadb"].".".$tempDadosRegiao["tabela"]." AS regiao ". | |
| 372 | + "INNER JOIN ". | |
| 373 | + "( __SQLDADOS__ )". | |
| 374 | + " AS j ON j.cod_regiao::text = regiao.".$tempDadosRegiao["identificador"]."::text GROUP BY regiao.".$dadosColunas[$idregiao]["colunaligacao_regiaopai"]; | |
| 375 | + $sqlIntermediario = str_replace("__SQLDADOS__",$temp,$sqlIntermediario); | |
| 376 | + } | |
| 377 | + } | |
| 378 | + } | |
| 379 | + } | |
| 380 | + //sql final que retorna os dados | |
| 381 | + //contem todas as colunas da tabela regiao, menos as que contem geometria | |
| 382 | + $sql = str_replace("__SQLDADOS__",$sqlDadosMedidaVariavel,$sqlIntermediario); | |
| 383 | + $sql = str_replace("__COLUNASSEMGEO__",implode(",",$colunasSemGeo),$sql); | |
| 384 | + | |
| 385 | + //sql para o mapserver | |
| 386 | + $sqlgeo = str_replace("__SQLDADOS__",$sqlDadosMedidaVariavel,$sqlIntermediario); | |
| 387 | + $colunasComGeo = $colunasSemGeo; | |
| 388 | + //$colunasComGeo[] = "/*SG*/st_setsrid(".$colunageo.",".$dadosgeo["srid"].") as ".$colunageo." /*SG*/"; | |
| 389 | + $colunasComGeo[] = "/*SG*/".$colunageo." as ".$colunageo." /*SG*/"; | |
| 390 | + $sqlgeo = str_replace("__COLUNASSEMGEO__",implode(",",$colunasComGeo),$sqlgeo); | |
| 391 | + $sqlgeo = $colunageo." from /*SE*/(".$sqlgeo." /*FR*//*FR*/ )/*SE*/ as foo using unique ".$dadosgeo["identificador"]." using srid=".$dadosgeo["srid"]; | |
| 392 | + | |
| 393 | + //o SQL com os dados contem um filtro ou nao? | |
| 394 | + $contemfiltro = false; | |
| 395 | + if(!empty($filtro) && $direto == false){ | |
| 396 | + $contemfiltro = true; | |
| 397 | + $titulo .= " ".$filtro; | |
| 398 | + } | |
| 399 | + //adiciona a coluna com os valores no inicio do array() | |
| 400 | + $colunasSemGeo = array_merge(array($dados["colunavalor"]),$colunasSemGeo); | |
| 401 | + $buscar = array("drop","update","insert","create","alter","delete"); | |
| 402 | + $sql = str_ireplace($buscar,"",$sql); | |
| 403 | + $sqlagrupamento = str_ireplace($buscar,"",$sqlagrupamento); | |
| 404 | + $sqlgeo = str_ireplace($buscar,"",$sqlgeo); | |
| 405 | + return array( | |
| 406 | + "nomeregiao"=>$dadosgeo["colunanomeregiao"], | |
| 407 | + "titulo"=>$titulo, | |
| 408 | + "colunavalor"=>$dados["colunavalor"], | |
| 409 | + "sqlagrupamento"=>$sqlagrupamento, | |
| 410 | + "sql"=>$sql, | |
| 411 | + "sqlmapserver"=>$sqlgeo, | |
| 412 | + "filtro"=>$contemfiltro, | |
| 413 | + "colunas"=>$colunasSemGeo, | |
| 414 | + "alias"=>$alias, | |
| 415 | + "srid"=>$dadosgeo["srid"] | |
| 416 | + ); | |
| 417 | + } | |
| 418 | + /** | |
| 419 | + * Retorna os ids das regioes que permitem partir de uma regiao filha chegar a uma regiao pai | |
| 420 | + * Usado para descobrir que regioes devem ser sequencialmente agregadas | |
| 421 | + * @param partir da regiao | |
| 422 | + * @param chegar na regiao | |
| 423 | + * @return array lista de ids de regioes sequenciais do filho ate chegar ao pai indicado | |
| 424 | + */ | |
| 425 | + function regiaoFilhaAoPai($codigo_tipo_regiao,$codigo_tipo_regiao_pai=""){ | |
| 426 | + $pais = $this->listaAgregaRegiao($codigo_tipo_regiao); | |
| 427 | + $caminho = array($codigo_tipo_regiao); | |
| 428 | + $colunas = array(); | |
| 429 | + if(count($pais) == 0){ | |
| 430 | + return $caminho; | |
| 431 | + } | |
| 432 | + foreach($pais as $pai){ | |
| 433 | + $caminho[] = $pai["codigo_tipo_regiao_pai"]; | |
| 434 | + $colunas[$pai["codigo_tipo_regiao"]] = $pai; | |
| 435 | + if($pai["codigo_tipo_regiao_pai"] == $codigo_tipo_regiao_pai){ | |
| 436 | + return array("caminho"=>$caminho,"colunas"=>$colunas); | |
| 437 | + } | |
| 438 | + } | |
| 439 | + return array("caminho"=>$caminho,"colunas"=>$colunas); | |
| 440 | + } | |
| 441 | + function hierarquiaPath($node){ | |
| 442 | + $query="select codigo_tipo_regiao_pai as parent from ".$this->esquemaadmin."i3geoestat_agregaregiao WHERE codigo_tipo_regiao = $node"; | |
| 443 | + $result=$this->execSQL($query,"",false); | |
| 444 | + $row = $result[0]; | |
| 445 | + // save the path in this array | |
| 446 | + $path = array(); | |
| 447 | + // only continue if this $node isn't the root node | |
| 448 | + // (that's the node with no parent) | |
| 449 | + if ($row['parent']!='') { | |
| 450 | + // the last part of the path to $node, is the name | |
| 451 | + // of the parent of $node | |
| 452 | + $path[] = $row['parent']; | |
| 453 | + // we should add the path to the parent of this node | |
| 454 | + // to the path | |
| 455 | + $path = array_merge($this->hierarquiaPath($row['parent']), $path); | |
| 456 | + } | |
| 457 | + // return the path | |
| 458 | + sort($path); | |
| 459 | + return $path; | |
| 460 | + } | |
| 461 | + /** | |
| 462 | + * Cria um arquivo mapfile para uma medida de variavel | |
| 463 | + * Inclui no arquivo o layer de acesso aos dados | |
| 464 | + * O mapfile contem apenas o layer | |
| 465 | + * O arquivo e armazenado em uma pasta temporaria | |
| 466 | + * O sql e obtido com o metodo sqlMedidaVariavel | |
| 467 | + * @param id da medida da variavel | |
| 468 | + * @param filtro que sera concatenado ao sql padrao da medida | |
| 469 | + * @param 0|1 indica se todas as colunas da tabela original dos dados sera incluida no sql | |
| 470 | + * @param tipo de layer | |
| 471 | + * @param titulo do layer | |
| 472 | + * @param id da classificacao cadastrada,se for vazio usa o primeiro | |
| 473 | + * @param coluna que sera usada como agrupamento no sql | |
| 474 | + * @param codigo do tipo de regiao cadastrada | |
| 475 | + * @param valor de opacidade do layer | |
| 476 | + * @param o layer deve suportar WMS-T ou nao | |
| 477 | + * @param faz o cache do mapfile | |
| 478 | + * @return array("mapfile"=>,"layer"=>,"titulolayer"=>) | |
| 479 | + */ | |
| 480 | + function mapfileMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$tipolayer="polygon",$titulolayer="",$id_classificacao="",$agruparpor="",$codigo_tipo_regiao="",$opacidade="",$suportaWMST=false,$cachemapfile=true){ | |
| 481 | + //para permitir a inclusao de filtros, o fim do sql e marcado com /*FW*//*FW*/ | |
| 482 | + //indicando onde deve comecar e terminar uma possivel clausula where | |
| 483 | + //ou com /*FA*//*FA*/ | |
| 484 | + //para marcar que deve ser utilizado AND ao adicionar o filtro | |
| 485 | + //utiliza-se da mesma forma /*FAT*//*FAT*/ e /*FWT*//*FWT*/ para os filtros de tempo | |
| 486 | + //Layers adicionados aqui sao marcados com o metadata METAESTAT "SIM" | |
| 487 | + //O codigo_tipo_regiao e marcado com o metadata METAESTAT_CODIGO_TIPO_REGIAO | |
| 488 | + //O id da medida da variavel e marcado com o metadata METAESTAT_ID_MEDIDA_VARIAVEL | |
| 489 | + //outros metadados tambem sao utilizados, veja em admin/php/editormapfile.php | |
| 490 | + $arq = $this->dir_tmp."/".$this->nomecache.".map"; | |
| 491 | + if(!file_exists($arq)){ | |
| 492 | + $meta = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 493 | + //evita agregar regioes qd nao e necessario | |
| 494 | + if($meta["codigo_tipo_regiao"] == $codigo_tipo_regiao || empty($codigo_tipo_regiao) ){ | |
| 495 | + $agruparpor = ""; | |
| 496 | + } | |
| 497 | + $dconexao = $this->listaConexao($meta["codigo_estat_conexao"],true); | |
| 498 | + $conexao = "user=".$dconexao["usuario"]." password=".$dconexao["senha"]." dbname=".$dconexao["bancodedados"]." host=".$dconexao["host"]." port=".$dconexao["porta"].""; | |
| 499 | + $sql = $this->sqlMedidaVariavel( | |
| 500 | + $id_medida_variavel, | |
| 501 | + $todasascolunas, | |
| 502 | + $agruparpor, | |
| 503 | + $tipolayer, | |
| 504 | + $codigo_tipo_regiao, | |
| 505 | + $suportaWMST, | |
| 506 | + $filtro | |
| 507 | + ); | |
| 508 | + if(empty($codigo_tipo_regiao)){ | |
| 509 | + $d = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 510 | + $codigo_tipo_regiao = $d["codigo_tipo_regiao"]; | |
| 511 | + } | |
| 512 | + //define o tipo correto de layer | |
| 513 | + $dg = $this->listaDadosGeometriaRegiao($codigo_tipo_regiao); | |
| 514 | + if(empty($tipolayer)){ | |
| 515 | + $tipolayer = "polygon"; | |
| 516 | + } | |
| 517 | + if($dg["dimension"] == 0){ | |
| 518 | + $tipolayer = "point"; | |
| 519 | + } | |
| 520 | + if($dg["dimension"] == 1){ | |
| 521 | + $tipolayer = "line"; | |
| 522 | + } | |
| 523 | + $sqlf = $sql["sqlmapserver"]; | |
| 524 | + | |
| 525 | + $classes = ""; | |
| 526 | + if(!empty($id_classificacao)){ | |
| 527 | + $classes = $this->listaClasseClassificacao($id_classificacao); | |
| 528 | + } | |
| 529 | + else{ | |
| 530 | + $classificacoes = $this->listaClassificacaoMedida($id_medida_variavel); | |
| 531 | + $classes = $this->listaClasseClassificacao($classificacoes[0]["id_classificacao"]); | |
| 532 | + } | |
| 533 | + if(!empty($titulolayer)){ | |
| 534 | + $titulolayer = mb_convert_encoding($titulolayer,"ISO-8859-1",mb_detect_encoding($titulolayer)); | |
| 535 | + } | |
| 536 | + else{ | |
| 537 | + $titulolayer = mb_convert_encoding($sql["titulo"],"ISO-8859-1",mb_detect_encoding($sql["titulo"])); | |
| 538 | + } | |
| 539 | + //necessario para evitar problemas com ITENSDESC | |
| 540 | + $titulolayer = str_replace(","," ",$titulolayer); | |
| 541 | + $titulolayer = str_replace("=",": ",$titulolayer); | |
| 542 | + //pega os parametros caso seja um mapfile para WMS-time | |
| 543 | + if($suportaWMST == true){ | |
| 544 | + $sqlMinMax = "select min(dimtempo) as min,max(dimtempo) as max from(".$sql["sql"].") as x"; | |
| 545 | + $minmaxdata = $this->execSQLDB($meta["codigo_estat_conexao"],$sqlMinMax ); | |
| 546 | + $fontemeta = $this->listaFonteinfoMedida($id_medida_variavel); | |
| 547 | + if(count($fontemeta) > 0){ | |
| 548 | + $fontemeta = $fontemeta[0]["link"]; | |
| 549 | + } | |
| 550 | + else{ | |
| 551 | + $fontemeta = ""; | |
| 552 | + } | |
| 553 | + } | |
| 554 | + $dados[] = "MAP"; | |
| 555 | + $dados[] = 'SYMBOLSET "'.$this->locaplic.'/symbols/simbolosv6.sym"'; | |
| 556 | + $dados[] = 'FONTSET "'.$this->locaplic.'/symbols/fontes.txt"'; | |
| 557 | + //inclui os simbolos que podem ser definidos como imagens | |
| 558 | + foreach($classes as $classe){ | |
| 559 | + if(file_exists($classe["simbolo"])){ | |
| 560 | + $dados[] = "SYMBOL"; | |
| 561 | + $dados[] = ' NAME "'.$classe["simbolo"].'"'; | |
| 562 | + $dados[] = ' TYPE pixmap'; | |
| 563 | + $dados[] = ' IMAGE "'.$classe["simbolo"].'"'; | |
| 564 | + $dados[] = "END"; | |
| 565 | + } | |
| 566 | + } | |
| 567 | + $dados[] = "LAYER"; | |
| 568 | + $dados[] = ' NAME "'.$this->nomecache.'"'; | |
| 569 | + $dados[] = " TYPE $tipolayer"; | |
| 570 | + $dados[] = ' DATA "'.$sqlf.'"'; | |
| 571 | + $dados[] = ' CONNECTION "'.$conexao.'"'; | |
| 572 | + $dados[] = ' CONNECTIONTYPE POSTGIS'; | |
| 573 | + $dados[] = ' STATUS OFF'; | |
| 574 | + $dados[] = ' TEMPLATE "none.htm"'; | |
| 575 | + if($opacidade != ""){ | |
| 576 | + $dados[] = ' OPACITY '.$opacidade; | |
| 577 | + } | |
| 578 | + $dados[] = ' METADATA'; | |
| 579 | + $dados[] = ' TEMA "'.$titulolayer.'"'; | |
| 580 | + $dados[] = ' tme "{\"titulo\":\"'.$titulolayer.'\",\"colnome\":\"'.$sql["nomeregiao"].'\",\"colsdata\":[\"'.$sql["colunavalor"].'\"],\"lmax\":\"8000\",\"amax\":\"500000\",\"outlinecolor\":\"-1,-1,-1\",\"numvertices\":\"4\",\"auto\":\"nao\",\"exec\":\"nao\"}"'; | |
| 581 | + | |
| 582 | + $dados[] = ' TIP "'.$sql["colunavalor"].','.$sql["nomeregiao"].'"'; | |
| 583 | + $dados[] = ' CLASSE "SIM"'; | |
| 584 | + $dados[] = ' permitedownload "SIM"'; | |
| 585 | + $dados[] = ' METAESTAT "SIM"'; | |
| 586 | + $dados[] = ' METAESTAT_CODIGO_TIPO_REGIAO "'.$codigo_tipo_regiao.'"'; | |
| 587 | + $dados[] = ' METAESTAT_ID_MEDIDA_VARIAVEL "'.$id_medida_variavel.'"'; | |
| 588 | + //marca se a tabela e editavel, verificando se esta no esquema padrao | |
| 589 | + if($meta["esquemadb"] == "i3geo_metaestat"){ | |
| 590 | + $dados[] = ' EDITAVEL "SIM"'; | |
| 591 | + $dados[] = ' COLUNAIDUNICO "'.$meta["colunaidunico"].'"'; | |
| 592 | + $dados[] = ' TABELAEDITAVEL "'.$meta["tabela"].'"'; | |
| 593 | + $dados[] = ' ESQUEMATABELAEDITAVEL "'.$meta["esquemadb"].'"'; | |
| 594 | + } | |
| 595 | + if(count($sql["alias"]) > 0){ | |
| 596 | + $dados[] = ' ITENS "'.implode(",",$sql["colunas"]).'"'; | |
| 597 | + $dados[] = ' ITENSDESC "'.implode(",",$sql["alias"]).'"'; | |
| 598 | + } | |
| 599 | + if($suportaWMST == true){ | |
| 600 | + $dados[] = ' "wms_timeitem" "dimtempo"'; | |
| 601 | + $dados[] = ' "wms_timeextent" "'.$minmaxdata[0]["min"]."/".$minmaxdata[0]["max"].'"'; | |
| 602 | + $dados[] = ' "wms_timedefault" "'.$minmaxdata[0]["max"].'"'; | |
| 603 | + $dados[] = ' "ows_metadataurl_href" "'.$fontemeta.'"'; | |
| 604 | + $dados[] = ' "ows_metadataurl_type" "TC211" '; | |
| 605 | + $dados[] = ' "ows_metadataurl_format" "text/html" '; | |
| 606 | + } | |
| 607 | + $dados[] = ' END'; | |
| 608 | + if($classes == ""){ | |
| 609 | + $dados[] = ' CLASS'; | |
| 610 | + $dados[] = ' NAME ""'; | |
| 611 | + $dados[] = ' STYLE'; | |
| 612 | + $dados[] = ' COLOR 200 0 0'; | |
| 613 | + if(strtolower($tipolayer) == "point"){ | |
| 614 | + $dados[] = ' SYMBOL "ponto"'; | |
| 615 | + $dados[] = ' SIZE 5'; | |
| 616 | + } | |
| 617 | + $dados[] = ' END'; | |
| 618 | + $dados[] = ' END'; | |
| 619 | + } | |
| 620 | + else{ | |
| 621 | + foreach($classes as $classe){ | |
| 622 | + //var_dump($classe);exit; | |
| 623 | + $dados[] = ' CLASS'; | |
| 624 | + $dados[] = ' NAME "'.mb_convert_encoding($classe["titulo"],"ISO-8859-1",mb_detect_encoding($classe["titulo"])).'"'; | |
| 625 | + if($classe["expressao"] != ""){ | |
| 626 | + $expressao = str_replace('"',"'",$classe["expressao"]); | |
| 627 | + $dados[] = " EXPRESSION ".$expressao; | |
| 628 | + } | |
| 629 | + $dados[] = ' STYLE'; | |
| 630 | + $dados[] = ' COLOR '.$classe["vermelho"].' '.$classe["verde"].' '.$classe["azul"]; | |
| 631 | + if(!empty($classe["tamanho"])){ | |
| 632 | + $dados[] = ' SIZE '.$classe["tamanho"]; | |
| 633 | + } | |
| 634 | + elseif(strtolower($tipolayer) == "point"){ | |
| 635 | + $dados[] = ' SIZE 5'; | |
| 636 | + } | |
| 637 | + if(!empty($classe["simbolo"])){ | |
| 638 | + $dados[] = ' SYMBOL '.$classe["simbolo"]; | |
| 639 | + } | |
| 640 | + elseif(strtolower($tipolayer) == "point"){ | |
| 641 | + $dados[] = ' SYMBOL ponto'; | |
| 642 | + } | |
| 643 | + if(!empty($classe["otamanho"])){ | |
| 644 | + $dados[] = ' OUTLINEWIDTH '.$classe["otamanho"]; | |
| 645 | + } | |
| 646 | + if(!empty($classe["overmelho"]) || $classe["overmelho"] == "0"){ | |
| 647 | + $dados[] = ' OUTLINECOLOR '.$classe["overmelho"].' '.$classe["overde"].' '.$classe["oazul"]; | |
| 648 | + } | |
| 649 | + $dados[] = ' END'; | |
| 650 | + $dados[] = ' END'; | |
| 651 | + } | |
| 652 | + } | |
| 653 | + $dados[] = "END"; | |
| 654 | + $dados[] = "END"; | |
| 655 | + $fp = fopen($arq,"w"); | |
| 656 | + foreach ($dados as $dado){ | |
| 657 | + fwrite($fp,$dado."\n"); | |
| 658 | + } | |
| 659 | + } | |
| 660 | + return array("mapfile"=>$arq,"layer"=>$this->nomecache,"titulolayer"=>$titulolayer); | |
| 661 | + } | |
| 662 | + /** | |
| 663 | + * Cria um mapfile para visualizacao de regioes | |
| 664 | + * Inclui no arquivo o layer de acesso aos dados | |
| 665 | + * O mapfile contem apenas o layer | |
| 666 | + * O arquivo e armazenado em uma pasta temporaria | |
| 667 | + * Se o arquivo para a mesma regiao ja existir, tenta usa-lo ao inves de criar um novo | |
| 668 | + * @param codigo da regiao | |
| 669 | + * @param cor do outline do simbolo de desenho | |
| 670 | + * @param largura do simbolo | |
| 671 | + * @param sim|nao inclui ou nao os labels | |
| 672 | + * @param boolean remove o arquivo em cache e cria um novo | |
| 673 | + * @return array("mapfile"=>,"layer"=>,"titulolayer"=>,"codigo_tipo_regiao"=>) | |
| 674 | + */ | |
| 675 | + function mapfileTipoRegiao($codigo_tipo_regiao,$outlinecolor="255,0,0",$width=1,$nomes="nao",$forcaArquivo=false){ | |
| 676 | + //para permitir a inclusao de filtros, o fim do sql e marcado com /*FW*//*FW*/ | |
| 677 | + //indicando onde deve comecar e terminar uma possivel clausula where | |
| 678 | + //Layers adicionados aqui sao marcados com o metadata METAESTAT "SIM" | |
| 679 | + //O codigo_tipo_regiao e marcado com o metadata METAESTAT_CODIGO_TIPO_REGIAO | |
| 680 | + if($forcaArquivo == false){ | |
| 681 | + $arq = $this->dir_tmp."/".$this->nomecache.".map"; | |
| 682 | + } | |
| 683 | + else{ | |
| 684 | + $arq = $this->dir_tmp."/".$this->nomecache . $this->nomeRandomico(3) . ".map"; | |
| 685 | + } | |
| 686 | + | |
| 687 | + if(!file_exists($arq)){ | |
| 688 | + | |
| 689 | + $tipolayer = "polygon"; | |
| 690 | + //define o tipo correto de layer | |
| 691 | + $dg = $this->listaDadosGeometriaRegiao($codigo_tipo_regiao); | |
| 692 | + | |
| 693 | + if(empty($tipolayer)){ | |
| 694 | + $tipolayer = "polygon"; | |
| 695 | + } | |
| 696 | + if($dg["dimension"] == 0){ | |
| 697 | + $tipolayer = "point"; | |
| 698 | + } | |
| 699 | + if($dg["dimension"] == 1){ | |
| 700 | + $tipolayer = "line"; | |
| 701 | + } | |
| 702 | + | |
| 703 | + $meta = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 704 | + $titulolayer = $meta["nome_tipo_regiao"]; | |
| 705 | + $titulolayer = mb_convert_encoding($titulolayer,"ISO-8859-1",mb_detect_encoding($titulolayer)); | |
| 706 | + $conexao = $this->listaConexao($meta["codigo_estat_conexao"],true); | |
| 707 | + $conexao = "user=".$conexao["usuario"]." password=".$conexao["senha"]." dbname=".$conexao["bancodedados"]." host=".$conexao["host"]." port=".$conexao["porta"].""; | |
| 708 | + $colunageo = $meta["colunageo"]; | |
| 709 | + $srid = $meta["srid"]; | |
| 710 | + //pega as colunas menos as do tipo geometry | |
| 711 | + $colunastabela = $this->colunasTabela($meta["codigo_estat_conexao"],$meta["esquemadb"],$meta["tabela"],"geometry","!="); | |
| 712 | + //define as colunas que serao mostradas no sql | |
| 713 | + $vis = $meta["colunasvisiveis"]; | |
| 714 | + $colunaSerial = $this->listaTipoRegiaoSerial($codigo_tipo_regiao); | |
| 715 | + if($vis != ""){ | |
| 716 | + $vis = str_replace(";",",",$vis); | |
| 717 | + $vis = str_replace(",,",",",$vis); | |
| 718 | + $vis = explode(",",$vis); | |
| 719 | + $itens = $vis;//array | |
| 720 | + $vis[] = $meta["identificador"]; | |
| 721 | + if(!empty($colunaSerial)){ | |
| 722 | + $vis[] = $colunaSerial; | |
| 723 | + } | |
| 724 | + $vis = array_unique($vis); | |
| 725 | + $visiveis = array(); | |
| 726 | + //verifica se as colunas existem mesmo | |
| 727 | + foreach($vis as $v){ | |
| 728 | + if(in_array($v,$colunastabela)){ | |
| 729 | + $visiveis[] = $v; | |
| 730 | + } | |
| 731 | + } | |
| 732 | + $vis = implode(",",$visiveis); | |
| 733 | + //apelidos | |
| 734 | + $apelidos = $meta["apelidos"]; | |
| 735 | + if($apelidos == ""){ | |
| 736 | + $apelidos = "Nome"; | |
| 737 | + } | |
| 738 | + $apelidos = str_replace(";",",",$apelidos); | |
| 739 | + $apelidos = str_replace(",,",",",$apelidos); | |
| 740 | + $apelidos = mb_convert_encoding($apelidos,"ISO-8859-1",mb_detect_encoding($apelidos)); | |
| 741 | + $apelidos = explode(",",$apelidos); | |
| 742 | + if(!empty($colunaSerial)){ | |
| 743 | + $apelidos[] = $colunaSerial." (serial)"; | |
| 744 | + } | |
| 745 | + $apelidos = array_unique($apelidos); | |
| 746 | + } | |
| 747 | + else{ | |
| 748 | + $itens = array(); | |
| 749 | + $apelidos = array(); | |
| 750 | + if(!empty($colunaSerial)){ | |
| 751 | + $colunastabela[] = $colunaSerial; | |
| 752 | + $colunastabela = array_unique($colunastabela); | |
| 753 | + } | |
| 754 | + $vis = implode(",",$colunastabela); | |
| 755 | + } | |
| 756 | + $sqlf = $colunageo." from (select st_setsrid(".$colunageo.",".$srid.") as $colunageo,$vis from ".$meta["esquemadb"].".".$meta["tabela"]." /*FW*//*FW*/) as foo using unique ".$meta["identificador"]." using srid=".$srid; | |
| 757 | + $sqlf = str_replace(",,",",",$sqlf); | |
| 758 | + $outlinecolor = str_replace(","," ",$outlinecolor); | |
| 759 | + $dados[] = "MAP"; | |
| 760 | + $dados[] = 'SYMBOLSET "'.$this->locaplic.'/symbols/simbolosv6.sym"'; | |
| 761 | + $dados[] = 'FONTSET "'.$this->locaplic.'/symbols/fontes.txt"'; | |
| 762 | + $dados[] = "LAYER"; | |
| 763 | + $dados[] = ' NAME "'.$this->nomecache.'"'; | |
| 764 | + $dados[] = " TYPE $tipolayer"; | |
| 765 | + $dados[] = ' DATA "'.$sqlf.'"'; | |
| 766 | + $dados[] = ' CONNECTION "'.$conexao.'"'; | |
| 767 | + $dados[] = ' CONNECTIONTYPE POSTGIS'; | |
| 768 | + $dados[] = ' TEMPLATE "none.htm"'; | |
| 769 | + $dados[] = ' STATUS OFF'; | |
| 770 | + $dados[] = ' METADATA'; | |
| 771 | + $dados[] = ' TEMA "'.$titulolayer.'"'; | |
| 772 | + $dados[] = ' CLASSE "SIM"'; | |
| 773 | + $dados[] = ' METAESTAT "SIM"'; | |
| 774 | + $dados[] = ' METAESTAT_CODIGO_TIPO_REGIAO "'.$codigo_tipo_regiao.'"'; | |
| 775 | + if(!empty($colunaSerial)){ | |
| 776 | + $dados[] = ' EDITAVEL "SIM"'; | |
| 777 | + $dados[] = ' COLUNAIDUNICO "'.$colunaSerial.'"'; | |
| 778 | + $dados[] = ' TABELAEDITAVEL "'.$meta["tabela"].'"'; | |
| 779 | + $dados[] = ' ESQUEMATABELAEDITAVEL "'.$meta["esquemadb"].'"'; | |
| 780 | + $dados[] = ' COLUNAGEOMETRIA "'.$colunageo.'"'; | |
| 781 | + } | |
| 782 | + $dados[] = ' TIP "'.$meta["colunanomeregiao"].'"'; | |
| 783 | + if(count($itens) == count($apelidos)){ | |
| 784 | + $dados[] = ' ITENS "'.implode(",",$itens).'"'; | |
| 785 | + $dados[] = ' ITENSDESC "'.implode(",",$apelidos).'"'; | |
| 786 | + } | |
| 787 | + | |
| 788 | + $dados[] = ' END'; | |
| 789 | + $dados[] = ' CLASS'; | |
| 790 | + $dados[] = ' NAME ""'; | |
| 791 | + $dados[] = ' STYLE'; | |
| 792 | + $dados[] = ' OUTLINECOLOR '.$outlinecolor; | |
| 793 | + | |
| 794 | + $dados[] = ' WIDTH '.$width; | |
| 795 | + if(strtolower($tipolayer) == "point"){ | |
| 796 | + $dados[] = ' SYMBOL "ponto"'; | |
| 797 | + $dados[] = ' SIZE 5'; | |
| 798 | + $dados[] = ' COLOR 0 0 0 '; | |
| 799 | + } | |
| 800 | + else{ | |
| 801 | + $dados[] = ' COLOR -1 -1 -1'; | |
| 802 | + } | |
| 803 | + $dados[] = ' END'; | |
| 804 | + //$dados[] = ' STYLE'; | |
| 805 | + //$dados[] = ' OUTLINECOLOR -1 -1 -1'; | |
| 806 | + //$dados[] = ' COLOR 255 255 255'; | |
| 807 | + //$dados[] = ' OPACITY 20'; | |
| 808 | + //$dados[] = ' END'; | |
| 809 | + $dados[] = ' END'; | |
| 810 | + $dados[] = "END"; | |
| 811 | + //toponimia | |
| 812 | + if($nomes == "sim"){ | |
| 813 | + $dados[] = "LAYER"; | |
| 814 | + $dados[] = ' NAME "'.$this->nomecache.'_anno"'; | |
| 815 | + $dados[] = " TYPE ANNOTATION"; | |
| 816 | + $dados[] = ' DATA "'.$sqlf.'"'; | |
| 817 | + $dados[] = ' CONNECTION "'.$conexao.'"'; | |
| 818 | + $dados[] = ' CONNECTIONTYPE POSTGIS'; | |
| 819 | + $dados[] = ' TEMPLATE "none.htm"'; | |
| 820 | + $dados[] = ' STATUS OFF'; | |
| 821 | + $dados[] = ' LABELITEM "'.$meta["colunanomeregiao"].'"'; | |
| 822 | + $dados[] = ' METADATA'; | |
| 823 | + $dados[] = ' TEMA "'.$titulolayer.' (nomes)"'; | |
| 824 | + $dados[] = ' CLASSE "SIM"'; | |
| 825 | + $dados[] = ' METAESTAT "SIM"'; | |
| 826 | + $dados[] = ' METAESTAT_CODIGO_TIPO_REGIAO "'.$codigo_tipo_regiao.'"'; | |
| 827 | + $dados[] = ' END'; | |
| 828 | + $dados[] = ' CLASS'; | |
| 829 | + $dados[] = ' NAME ""'; | |
| 830 | + $dados[] = ' LABEL'; | |
| 831 | + $dados[] = ' FONT "arial"'; | |
| 832 | + $dados[] = ' SIZE 10'; | |
| 833 | + $dados[] = ' COLOR 0 0 0'; | |
| 834 | + $dados[] = ' MINDISTANCE 0'; | |
| 835 | + $dados[] = ' MINFEATURESIZE 0'; | |
| 836 | + $dados[] = ' OFFSET 0 0'; | |
| 837 | + $dados[] = ' OUTLINECOLOR 255 255 255'; | |
| 838 | + $dados[] = ' PARTIALS FALSE'; | |
| 839 | + $dados[] = ' POSITION AUTO'; | |
| 840 | + $dados[] = ' SHADOWSIZE 1 1'; | |
| 841 | + $dados[] = ' TYPE TRUETYPE'; | |
| 842 | + $dados[] = ' END'; | |
| 843 | + $dados[] = ' END'; | |
| 844 | + $dados[] = "END"; | |
| 845 | + } | |
| 846 | + $dados[] = "END"; | |
| 847 | + $fp = fopen($arq,"w"); | |
| 848 | + foreach ($dados as $dado){ | |
| 849 | + fwrite($fp,$dado."\n"); | |
| 850 | + } | |
| 851 | + } | |
| 852 | + return array("mapfile"=>$arq,"layer"=>$this->nomecache,"titulolayer"=>$titulolayer,"codigo_tipo_regiao"=>$codigo_tipo_regiao); | |
| 853 | + } | |
| 854 | + /** | |
| 855 | + * Complementa um mapfile resumido inserindo seus layers em um mapfile completo, contendo todos os elementos necessarios para uso | |
| 856 | + * Usado na geracao de WMS e outros servicos | |
| 857 | + * @param mapfile resumido | |
| 858 | + * @return nome do arquivo com o mapfile completo | |
| 859 | + */ | |
| 860 | + function mapfileCompleto($mapfile){ | |
| 861 | + $f = $this->base; | |
| 862 | + if($f == ""){ | |
| 863 | + include_once($this->locaplic."/classesphp/funcoes_gerais.php"); | |
| 864 | + $versao = versao(); | |
| 865 | + $versao = $versao["principal"]; | |
| 866 | + $f = ""; | |
| 867 | + if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN')){ | |
| 868 | + $f = $this->locaplic."/aplicmap/geral1windowsv".$versao.".map"; | |
| 869 | + } | |
| 870 | + else{ | |
| 871 | + if($f == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv'.$versao.'.map')){ | |
| 872 | + $f = "/var/www/i3geo/aplicmap/geral1debianv".$versao.".map"; | |
| 873 | + } | |
| 874 | + if($f == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){ | |
| 875 | + $f = "/var/www/html/i3geo/aplicmap/geral1fedorav".$versao.".map"; | |
| 876 | + } | |
| 877 | + if($f == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){ | |
| 878 | + $f = "/opt/www/html/i3geo/aplicmap/geral1v".$versao.".map"; | |
| 879 | + } | |
| 880 | + if($f == "") { | |
| 881 | + $f = $this->locaplic."/aplicmap/geral1v".$versao.".map"; | |
| 882 | + } | |
| 883 | + } | |
| 884 | + } | |
| 885 | + $mapa = ms_newMapObj($f); | |
| 886 | + $n = $mapa->numlayers; | |
| 887 | + for($i=0;$i<$n;$i++){ | |
| 888 | + $l = $mapa->getlayer($i); | |
| 889 | + $l->set("status",MS_DELETE); | |
| 890 | + } | |
| 891 | + $mapatemp = ms_newMapObj($mapfile); | |
| 892 | + $l = $mapatemp->getlayer(0); | |
| 893 | + | |
| 894 | + $l->set("status",MS_DEFAULT); | |
| 895 | + $novonome = str_replace(".map","completo.map",$mapfile); | |
| 896 | + //necessario para o kml | |
| 897 | + $mapa->setmetadata("ows_enable_request","*"); | |
| 898 | + $listaepsg = "EPSG:4618 EPSG:4291 EPSG:4326 EPSG:22521 EPSG:22522 EPSG:22523 EPSG:22524 EPSG:22525 EPSG:29101 EPSG:29119 EPSG:29120 EPSG:29121 EPSG:29122 EPSG:29177 EPSG:29178 EPSG:29179 EPSG:29180 EPSG:29181 EPSG:29182 EPSG:29183 EPSG:29184 EPSG:29185"; | |
| 899 | + $l->setmetadata("ows_srs",$listaepsg); | |
| 900 | + $temp = ms_newLayerObj($mapa,$l); | |
| 901 | + $mapa->save($novonome); | |
| 902 | + return $novonome; | |
| 903 | + } | |
| 904 | + /** | |
| 905 | + * Obtem os dados de uma medida de variavel | |
| 906 | + * @param id da medida | |
| 907 | + * @param filtro que sera concatenado ao sql | |
| 908 | + * @param 0|1 mostra ou nao todas as colunas da tabela com os dados | |
| 909 | + * @param coluna de agrupamento | |
| 910 | + * @param limite do numero de registros | |
| 911 | + * @param le os dados diretamente da tabela sem nenhum tipo de agrupamento, seja por data ou outro parametro | |
| 912 | + * @return execSQL | |
| 913 | + */ | |
| 914 | + function dadosMedidaVariavel($id_medida_variavel,$filtro="",$todasascolunas = 0,$agruparpor = "",$limite="",$direto=false){ | |
| 915 | + set_time_limit(0); | |
| 916 | + $sql = $this->sqlMedidaVariavel($id_medida_variavel,$todasascolunas,$agruparpor,"polygon","",false,$filtro,$direto); | |
| 917 | + $sqlf = $sql["sqlmapserver"]; | |
| 918 | + //remove marcadores geo | |
| 919 | + $sqlf = explode("/*SE*/",$sqlf); | |
| 920 | + $sqlf = explode("/*SG*/",$sqlf[1]); | |
| 921 | + $sqlf = $sqlf[0]." ".$sqlf[2]; | |
| 922 | + if($limite != ""){ | |
| 923 | + $sqlf .= " limit ".$limite; | |
| 924 | + } | |
| 925 | + $sqlf = str_replace(", FROM"," FROM",$sqlf); | |
| 926 | + $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 927 | + //echo $sqlf;exit; | |
| 928 | + if(!empty($metaVariavel["codigo_estat_conexao"])){ | |
| 929 | + $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); | |
| 930 | + $dbhold = $this->dbh; | |
| 931 | + $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 932 | + $this->dbh = $dbh; | |
| 933 | + $res = $this->execSQL($sqlf); | |
| 934 | + $this->dbh = $dbhold; | |
| 935 | + return $res; | |
| 936 | + } | |
| 937 | + return false; | |
| 938 | + } | |
| 939 | + /** | |
| 940 | + * Lista as ocorrencias de valores em uma coluna de uma medida de variavel | |
| 941 | + * @param id da medida de variavel | |
| 942 | + * @param coluna | |
| 943 | + * @return execSQL | |
| 944 | + */ | |
| 945 | + function valorUnicoMedidaVariavel($id_medida_variavel,$coluna){ | |
| 946 | + $sqlf = $this->sqlMedidaVariavel($id_medida_variavel,0,$coluna); | |
| 947 | + $sqlf = $sqlf["sqlagrupamento"]; | |
| 948 | + $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 949 | + if(!empty($metaVariavel["codigo_estat_conexao"])){ | |
| 950 | + $c = $this->listaConexao($metaVariavel["codigo_estat_conexao"],true); | |
| 951 | + $dbhold = $this->dbh; | |
| 952 | + $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 953 | + $this->dbh = $dbh; | |
| 954 | + $res = $this->execSQL($sqlf); | |
| 955 | + $this->dbh = $dbhold; | |
| 956 | + return $res; | |
| 957 | + } | |
| 958 | + return false; | |
| 959 | + } | |
| 960 | + /** | |
| 961 | + * Sumario estatistico de uma medida de variavel | |
| 962 | + * @param id da medida | |
| 963 | + * @param filtro a ser concatenado ao sql | |
| 964 | + * @param coluna de agrupamento | |
| 965 | + * @param limite numero maximo de registros que serao lidos do banco | |
| 966 | + * @param le os dados diretamente da tabela sem nenhum tipo de agrupamento, seja por data ou outro parametro | |
| 967 | + * @return array("colunavalor"=>,"soma"=>,"media"=>,"menor"=>,"maior"=>,"quantidade"=>,"histograma"=>,"grupos"=>,"unidademedida"=>,"quartis"=>) | |
| 968 | + */ | |
| 969 | + function sumarioMedidaVariavel($id_medida_variavel,$filtro="",$agruparpor="",$limite="",$direto=false){ | |
| 970 | + if(!empty($agruparpor)){ | |
| 971 | + $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,1,"",$limite,$direto); | |
| 972 | + } | |
| 973 | + else{ | |
| 974 | + $dados = $this->dadosMedidaVariavel($id_medida_variavel,$filtro,0,"",$limite,$direto); | |
| 975 | + } | |
| 976 | + if($dados){ | |
| 977 | + $metaVariavel = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 978 | + $un = $this->listaUnidadeMedida($metaVariavel["codigo_unidade_medida"]); | |
| 979 | + $agrupamento = ""; | |
| 980 | + $colunavalor = $metaVariavel["colunavalor"]; | |
| 981 | + foreach($dados as $d){ | |
| 982 | + if($d[$colunavalor]){ | |
| 983 | + $valores[] = $d[$colunavalor]; | |
| 984 | + } | |
| 985 | + } | |
| 986 | + if(!empty($agruparpor)){ | |
| 987 | + $agrupamento = array(); | |
| 988 | + foreach($dados as $d){ | |
| 989 | + $g = $d[$agruparpor]; | |
| 990 | + //var_dump($d);exit; | |
| 991 | + if(!empty($agrupamento[$g])){ | |
| 992 | + $agrupamento[$g] += $d[$colunavalor]; | |
| 993 | + } | |
| 994 | + else{ | |
| 995 | + $agrupamento[$g] = $d[$colunavalor]; | |
| 996 | + } | |
| 997 | + } | |
| 998 | + natsort($agrupamento); | |
| 999 | + } | |
| 1000 | + $soma = ""; | |
| 1001 | + $media = ""; | |
| 1002 | + $min = ""; | |
| 1003 | + $max = ""; | |
| 1004 | + $quantidade = count($valores); | |
| 1005 | + $sturges = 1 + (3.322 * (log10($quantidade))); | |
| 1006 | + $quartis = array(); | |
| 1007 | + if($un["permitesoma"] == "1"){ | |
| 1008 | + $soma = array_sum($valores); | |
| 1009 | + } | |
| 1010 | + if($un["permitemedia"] == "1"){ | |
| 1011 | + $media = $soma / $quantidade; | |
| 1012 | + } | |
| 1013 | + if($un["permitesoma"] == "1" || $un["permitemedia"] == "1"){ | |
| 1014 | + sort($valores); | |
| 1015 | + //var_dump($valores);exit; | |
| 1016 | + $min = $valores[0]; | |
| 1017 | + $max = $valores[$quantidade - 1]; | |
| 1018 | + include_once(dirname(__FILE__)."/classesphp/classe_estatistica.php"); | |
| 1019 | + $calc = new estatistica(); | |
| 1020 | + $calc->calcula($valores); | |
| 1021 | + $v = $calc->resultado; | |
| 1022 | + //expressao para o mapfile | |
| 1023 | + $expressao[] = "([".$colunavalor."]<=".($v["quartil1"]).")"; | |
| 1024 | + $expressao[] = "(([".$colunavalor."]>".($v["quartil1"]).")and([".$colunavalor."]<=".($v["quartil2"])."))"; | |
| 1025 | + if($v["quartil3"] != 0){ | |
| 1026 | + $expressao[] = "(([".$colunavalor."]>".($v["quartil2"]).")and([".$colunavalor."]<=".($v["quartil3"])."))"; | |
| 1027 | + $expressao[] = "([".$colunavalor."]>".($v["quartil3"]).")"; | |
| 1028 | + } | |
| 1029 | + $nomes[] = "<= ".($v["quartil1"]); | |
| 1030 | + $nomes[] = "> ".($v["quartil1"])." e <= ".($v["quartil2"]); | |
| 1031 | + if($v["quartil3"] != 0){ | |
| 1032 | + $nomes[] = "> ".($v["quartil2"])." e <= ".($v["quartil3"]); | |
| 1033 | + $nomes[] = "> ".($v["quartil3"]); | |
| 1034 | + } | |
| 1035 | + $quartis = array( | |
| 1036 | + "cortes"=>array( | |
| 1037 | + "q1"=>$v['quartil1'], | |
| 1038 | + "q2"=>$v['quartil2'], | |
| 1039 | + "q3"=>$v['quartil3'] | |
| 1040 | + ), | |
| 1041 | + "expressoes"=>$expressao, | |
| 1042 | + "nomes"=>$nomes | |
| 1043 | + ); | |
| 1044 | + } | |
| 1045 | + $histograma = array_count_values($valores); | |
| 1046 | + //echo "<pre>".var_dump($quartis);exit; | |
| 1047 | + return array( | |
| 1048 | + "colunavalor"=>$colunavalor, | |
| 1049 | + "soma"=>$soma, | |
| 1050 | + "media"=>$media, | |
| 1051 | + "menor"=>$min, | |
| 1052 | + "maior"=>$max, | |
| 1053 | + "quantidade"=>$quantidade, | |
| 1054 | + "histograma"=>$histograma, | |
| 1055 | + "grupos"=>$agrupamento, | |
| 1056 | + "unidademedida"=>$un, | |
| 1057 | + "quartis"=>$quartis, | |
| 1058 | + "sturges"=>$sturges | |
| 1059 | + ); | |
| 1060 | + } | |
| 1061 | + return false; | |
| 1062 | + } | |
| 1063 | + | |
| 1064 | + | |
| 1065 | + /** | |
| 1066 | + * Lista os dados de um ou de todos os mapas cadastrados | |
| 1067 | + * @param id do mapa | |
| 1068 | + */ | |
| 1069 | + function listaMapas($id_mapa=""){ | |
| 1070 | + $sql = "select * from ".$this->esquemaadmin."i3geoestat_mapa "; | |
| 1071 | + if($id_mapa != ""){ | |
| 1072 | + $sql .= "WHERE id_mapa = $id_mapa "; | |
| 1073 | + } | |
| 1074 | + $sql .= "ORDER BY titulo"; | |
| 1075 | + return $this->execSQL($sql,$id_mapa); | |
| 1076 | + } | |
| 1077 | + /** | |
| 1078 | + * Lista os dados de um ou de todos os mapas grupos de um mapa | |
| 1079 | + * @param id do mapa | |
| 1080 | + * @param id do grupo | |
| 1081 | + */ | |
| 1082 | + function listaGruposMapa($id_mapa,$id_mapa_grupo){ | |
| 1083 | + if(!empty($id_mapa)){ | |
| 1084 | + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_mapa_grupo WHERE id_mapa = $id_mapa"; | |
| 1085 | + } | |
| 1086 | + if(!empty($id_mapa_grupo)){ | |
| 1087 | + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_mapa_grupo WHERE id_mapa_grupo = $id_mapa_grupo"; | |
| 1088 | + } | |
| 1089 | + $sql .= " ORDER BY titulo"; | |
| 1090 | + return $this->execSQL($sql,$id_mapa_grupo); | |
| 1091 | + } | |
| 1092 | + /** | |
| 1093 | + * Lista os dados de um ou de todos os temas de um grupo de um mapa | |
| 1094 | + * @param id do mapa | |
| 1095 | + * @param id do grupo | |
| 1096 | + * @param id do tema | |
| 1097 | + */ | |
| 1098 | + function listaTemasMapa($id_mapa_grupo,$id_mapa_tema){ | |
| 1099 | + if(!empty($id_mapa_grupo)){ | |
| 1100 | + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_mapa_tema WHERE id_mapa_grupo = $id_mapa_grupo"; | |
| 1101 | + } | |
| 1102 | + if(!empty($id_mapa_tema)){ | |
| 1103 | + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_mapa_tema WHERE id_mapa_tema = $id_mapa_tema"; | |
| 1104 | + } | |
| 1105 | + $sql .= " ORDER BY titulo"; | |
| 1106 | + return $this->execSQL($sql,$id_mapa_tema); | |
| 1107 | + } | |
| 1108 | + /** | |
| 1109 | + * Lista os dados de uma ou todas as unidades de medida cadastradas | |
| 1110 | + * @param codigo da unidade | |
| 1111 | + */ | |
| 1112 | + function listaUnidadeMedida($codigo_unidade_medida=""){ | |
| 1113 | + $sql = "select * from ".$this->esquemaadmin."i3geoestat_unidade_medida "; | |
| 1114 | + if($codigo_unidade_medida != ""){ | |
| 1115 | + $sql .= "WHERE codigo_unidade_medida = $codigo_unidade_medida "; | |
| 1116 | + } | |
| 1117 | + $sql .= "ORDER BY nome"; | |
| 1118 | + return $this->execSQL($sql,$codigo_unidade_medida); | |
| 1119 | + } | |
| 1120 | + /** | |
| 1121 | + * Lista os dados de uma ou todas as fontes cadastradas | |
| 1122 | + * @param id da fonte | |
| 1123 | + */ | |
| 1124 | + function listaFonteinfo($id_fonteinfo=""){ | |
| 1125 | + $sql = "select * from ".$this->esquemaadmin."i3geoestat_fonteinfo "; | |
| 1126 | + if($id_fonteinfo != ""){ | |
| 1127 | + $sql .= "WHERE id_fonteinfo = $id_fonteinfo "; | |
| 1128 | + } | |
| 1129 | + $sql .= "ORDER BY titulo"; | |
| 1130 | + return $this->execSQL($sql,$id_fonteinfo); | |
| 1131 | + } | |
| 1132 | + /** | |
| 1133 | + * Lista as fontes vinculadas a uma medida de variavel | |
| 1134 | + * @param id da medida de variavel | |
| 1135 | + */ | |
| 1136 | + function listaFonteinfoMedida($id_medida_variavel){ | |
| 1137 | + $sql = "SELECT i3geoestat_fonteinfo.* "; | |
| 1138 | + $sql .= "FROM ".$this->esquemaadmin."i3geoestat_fonteinfo "; | |
| 1139 | + $sql .= "INNER JOIN ".$this->esquemaadmin."i3geoestat_fonteinfo_medida "; | |
| 1140 | + $sql .= "ON i3geoestat_fonteinfo.id_fonteinfo = i3geoestat_fonteinfo_medida.id_fonteinfo "; | |
| 1141 | + $sql .= "WHERE i3geoestat_fonteinfo_medida.id_medida_variavel = $id_medida_variavel "; | |
| 1142 | + $sql .= "ORDER BY titulo"; | |
| 1143 | + //echo $sql;exit; | |
| 1144 | + return $this->execSQL($sql,$id_fonteinfo); | |
| 1145 | + } | |
| 1146 | + /** | |
| 1147 | + * Lista os dados de uma ou todas as variaveis cadastradas | |
| 1148 | + * @param codigo da variavel | |
| 1149 | + * @param mostra apenas as variaveis cujas tabelas ficam nesse esquema | |
| 1150 | + */ | |
| 1151 | + function listaVariavel($codigo_variavel="",$filtro_esquema=""){ | |
| 1152 | + $sql = "select DISTINCT a.* from ".$this->esquemaadmin."i3geoestat_variavel as a "; | |
| 1153 | + if($codigo_variavel != ""){ | |
| 1154 | + $sql .= "WHERE a.codigo_variavel = $codigo_variavel "; | |
| 1155 | + } | |
| 1156 | + if($filtro_esquema != ""){ | |
| 1157 | + $sql .= ", ".$this->esquemaadmin."i3geoestat_medida_variavel as b WHERE a.codigo_variavel = b.codigo_variavel and b.esquemadb = '$filtro_esquema' "; | |
| 1158 | + } | |
| 1159 | + $sql .= "ORDER BY a.nome"; | |
| 1160 | + //echo $sql;exit; | |
| 1161 | + return $this->execSQL($sql,$codigo_variavel); | |
| 1162 | + } | |
| 1163 | + /** | |
| 1164 | + * Lista os dados de uma ou todas as classificacoes de uma medida de variavel | |
| 1165 | + * @param id da medida de variavel | |
| 1166 | + * @param id da classificacao | |
| 1167 | + */ | |
| 1168 | + function listaClassificacaoMedida($id_medida_variavel,$id_classificacao=""){ | |
| 1169 | + if(!empty($id_medida_variavel)){ | |
| 1170 | + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_classificacao WHERE id_medida_variavel = $id_medida_variavel"; | |
| 1171 | + } | |
| 1172 | + if(!empty($id_classificacao)){ | |
| 1173 | + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_classificacao WHERE id_classificacao = $id_classificacao"; | |
| 1174 | + } | |
| 1175 | + return $this->execSQL($sql,$id_classificacao); | |
| 1176 | + } | |
| 1177 | + /** | |
| 1178 | + * Lista os dados de um ou todos os links de uma medida | |
| 1179 | + * @param id da medida | |
| 1180 | + * @param id do link | |
| 1181 | + */ | |
| 1182 | + function listaLinkMedida($id_medida_variavel,$id_link=""){ | |
| 1183 | + if(!empty($id_medida_variavel)){ | |
| 1184 | + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_medida_variavel_link WHERE id_medida_variavel = $id_medida_variavel"; | |
| 1185 | + } | |
| 1186 | + if(!empty($id_link)){ | |
| 1187 | + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_medida_variavel_link WHERE id_link = $id_link"; | |
| 1188 | + } | |
| 1189 | + return $this->execSQL($sql,$id_link); | |
| 1190 | + } | |
| 1191 | + /** | |
| 1192 | + * Lista os dados de uma ou todas as classes de uma classificacao | |
| 1193 | + * @param id da classificacao | |
| 1194 | + * @param id da classe | |
| 1195 | + */ | |
| 1196 | + function listaClasseClassificacao($id_classificacao,$id_classe=""){ | |
| 1197 | + if(!empty($id_classificacao)){ | |
| 1198 | + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_classes WHERE id_classificacao = $id_classificacao"; | |
| 1199 | + } | |
| 1200 | + if(!empty($id_classe)){ | |
| 1201 | + $sql = "SELECT * from ".$this->esquemaadmin."i3geoestat_classes WHERE id_classe = $id_classe"; | |
| 1202 | + } | |
| 1203 | + return $this->execSQL($sql,$id_classe); | |
| 1204 | + } | |
| 1205 | + /** | |
| 1206 | + * Lista os dados de uma ou todas as medidas de variavel de uma variavel | |
| 1207 | + * @param codigo da variavel | |
| 1208 | + * @param id da medida de variavel | |
| 1209 | + */ | |
| 1210 | + function listaMedidaVariavel($codigo_variavel,$id_medida_variavel=""){ | |
| 1211 | + $sql = "SELECT i3geoestat_medida_variavel.*,i3geoestat_variavel.nome as nome_variavel,i3geoestat_unidade_medida.permitemedia,i3geoestat_unidade_medida.permitesoma,i3geoestat_unidade_medida.nome as unidade_medida "; | |
| 1212 | + $sql .= "FROM ".$this->esquemaadmin."i3geoestat_variavel "; | |
| 1213 | + $sql .= "JOIN ".$this->esquemaadmin."i3geoestat_medida_variavel "; | |
| 1214 | + $sql .= "ON i3geoestat_variavel.codigo_variavel = i3geoestat_medida_variavel.codigo_variavel "; | |
| 1215 | + $sql .= "LEFT JOIN ".$this->esquemaadmin."i3geoestat_unidade_medida "; | |
| 1216 | + $sql .= "ON i3geoestat_unidade_medida.codigo_unidade_medida = i3geoestat_medida_variavel.codigo_unidade_medida "; | |
| 1217 | + if($codigo_variavel != ""){ | |
| 1218 | + $sql .= "WHERE i3geoestat_variavel.codigo_variavel = $codigo_variavel "; | |
| 1219 | + if($id_medida_variavel != ""){ | |
| 1220 | + $sql .= "AND i3geoestat_medida_variavel.id_medida_variavel = $id_medida_variavel "; | |
| 1221 | + } | |
| 1222 | + } | |
| 1223 | + elseif($id_medida_variavel != "") { | |
| 1224 | + $sql .= "WHERE i3geoestat_medida_variavel.id_medida_variavel = $id_medida_variavel "; | |
| 1225 | + } | |
| 1226 | + $sql .= "ORDER BY i3geoestat_medida_variavel.nomemedida"; | |
| 1227 | + $res = $this->execSQL($sql,$id_medida_variavel); | |
| 1228 | + $res = str_replace('"',"'",$res); | |
| 1229 | + return $res; | |
| 1230 | + } | |
| 1231 | + /** | |
| 1232 | + * Lista as regioes vinculadas a uma medida de variavel | |
| 1233 | + * @param id da medida de vriavel | |
| 1234 | + */ | |
| 1235 | + function listaRegioesMedida($id_medida_variavel){ | |
| 1236 | + $variavel = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 1237 | + $codigo_tipo_regiao = $variavel["codigo_tipo_regiao"]; | |
| 1238 | + $regioes[] = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1239 | + //var_dump($regioes);exit; | |
| 1240 | + $agregacoes = $this->listaAgregaRegiao($codigo_tipo_regiao); | |
| 1241 | + foreach($agregacoes as $a){ | |
| 1242 | + $regioes[] = $this->listaTipoRegiao($a["codigo_tipo_regiao_pai"]); | |
| 1243 | + } | |
| 1244 | + return $regioes; | |
| 1245 | + } | |
| 1246 | + /** | |
| 1247 | + * Lista os dados de uma conexao ou de todas | |
| 1248 | + * @param id da conexao | |
| 1249 | + * @param boolean inclui na lista a senha ou nao | |
| 1250 | + * @param boolean inclui as conexoes definidas em postgis_mapa (ms_configura.php) | |
| 1251 | + */ | |
| 1252 | + function listaConexao($codigo_estat_conexao="",$senha=false,$incluiPostgisMapa=true){ | |
| 1253 | + if($senha == true){ | |
| 1254 | + $colunas = "codigo_estat_conexao, bancodedados, host, porta, usuario, senha"; | |
| 1255 | + } | |
| 1256 | + else{ | |
| 1257 | + $colunas = "codigo_estat_conexao, bancodedados, host, porta, usuario"; | |
| 1258 | + } | |
| 1259 | + $sql = "select $colunas from ".$this->esquemaadmin."i3geoestat_conexao "; | |
| 1260 | + if($codigo_estat_conexao != ""){ | |
| 1261 | + $sql .= "WHERE codigo_estat_conexao = $codigo_estat_conexao "; | |
| 1262 | + } | |
| 1263 | + $sql .= "ORDER BY bancodedados,host,usuario"; | |
| 1264 | + $res = $this->execSQL($sql,$codigo_estat_conexao); | |
| 1265 | + //se achou e a requisico e para listar uma conexao, retorna o que for encontrado | |
| 1266 | + $cres = count($res); | |
| 1267 | + if($cres > 0 && $codigo_estat_conexao != "" && !empty($cres[0]["dbname"])){ | |
| 1268 | + return $res; | |
| 1269 | + } | |
| 1270 | + //caso contrario, e deve retornar todas as conexoes, inclui a fonte | |
| 1271 | + if($codigo_estat_conexao == ""){ | |
| 1272 | + for($i=0; $i<$cres;$i++){ | |
| 1273 | + $res[$i]["fonte"] = "metaestat"; | |
| 1274 | + } | |
| 1275 | + } | |
| 1276 | + //obtem as conexoes definidas em ms_configgura.php | |
| 1277 | + if($incluiPostgisMapa == true){ | |
| 1278 | + if(!isset($postgis_mapa)){ | |
| 1279 | + include(dirname(__FILE__)."/../ms_configura.php"); | |
| 1280 | + } | |
| 1281 | + if(!empty($postgis_mapa)){ | |
| 1282 | + foreach(array_keys($postgis_mapa) as $key){ | |
| 1283 | + $lista = explode(" ",$postgis_mapa[$key]); | |
| 1284 | + $con = array(); | |
| 1285 | + foreach($lista as $l){ | |
| 1286 | + $teste = explode("=",$l); | |
| 1287 | + $con[trim($teste[0])] = trim($teste[1]); | |
| 1288 | + } | |
| 1289 | + $c = array( | |
| 1290 | + "codigo_estat_conexao" => $key, | |
| 1291 | + "bancodedados" => $con["dbname"], | |
| 1292 | + "host" => $con["host"], | |
| 1293 | + "porta" => $con["port"], | |
| 1294 | + "usuario" => $con["user"], | |
| 1295 | + "fonte" => "ms_configura" | |
| 1296 | + ); | |
| 1297 | + if($senha == true){ | |
| 1298 | + $c["senha"] = $con["password"]; | |
| 1299 | + } | |
| 1300 | + $res[] = $c; | |
| 1301 | + if($codigo_estat_conexao != "" && $codigo_estat_conexao == $key){ | |
| 1302 | + return $c; | |
| 1303 | + } | |
| 1304 | + } | |
| 1305 | + } | |
| 1306 | + } | |
| 1307 | + //echo "<pre>"; | |
| 1308 | + //var_dump($res);exit; | |
| 1309 | + return $res; | |
| 1310 | + } | |
| 1311 | + function listaParametroTempo2CampoData($id_medida_variavel,$prefixoAlias = ""){ | |
| 1312 | + //lista os parametros temporais | |
| 1313 | + $parametros = $this->listaParametro($id_medida_variavel,"","",true,true); | |
| 1314 | + echo "<pre>"; | |
| 1315 | + //var_dump($parametros);exit; | |
| 1316 | + //faz o sql para pegar os valores e definir a resolucao | |
| 1317 | + //o tempo deve comecar sempre pelo ano | |
| 1318 | + $data = array(); | |
| 1319 | + if($parametros[0]["tipo"] == 1){ | |
| 1320 | + //ano | |
| 1321 | + $data[] = $prefixoAlias.$parametros[0]["coluna"]; | |
| 1322 | + $tipodata = "YYYY"; | |
| 1323 | + //mes | |
| 1324 | + if(!empty($parametros[1])){ | |
| 1325 | + $data[] = "'-'".$prefixoAlias.$parametros[1]["coluna"]; | |
| 1326 | + $tipodata = "YYYYMM"; | |
| 1327 | + } | |
| 1328 | + else{ | |
| 1329 | + $data[] = "'-01'"; | |
| 1330 | + } | |
| 1331 | + //dia | |
| 1332 | + if(!empty($parametros[2])){ | |
| 1333 | + $data[] = "'-'".$prefixoAlias.$parametros[2]["coluna"]; | |
| 1334 | + $tipodata = "YYYYMMDD"; | |
| 1335 | + } | |
| 1336 | + else{ | |
| 1337 | + $data[] = "'-01'"; | |
| 1338 | + } | |
| 1339 | + $data = implode("||",$data); | |
| 1340 | + return "to_date($data,'$tipodata')"; | |
| 1341 | + } | |
| 1342 | + } | |
| 1343 | + /** | |
| 1344 | + * Lista os dados de um ou de todos os parametros relacionados a uma medida de variavel | |
| 1345 | + * @param id da medida de variavel | |
| 1346 | + * @param id do parametro | |
| 1347 | + * @param id do pai (se definido, lista apenas os filhos deste) | |
| 1348 | + * @param bool indica se apenas parametros do tipo temporal serao retornados | |
| 1349 | + */ | |
| 1350 | + function listaParametro($id_medida_variavel,$id_parametro_medida="",$id_pai="",$apenasTempo=false,$ordenaPeloPai=false){ | |
| 1351 | + $sql = "SELECT i3geoestat_parametro_medida.*,i3geoestat_medida_variavel.* "; | |
| 1352 | + $sql .= "FROM ".$this->esquemaadmin."i3geoestat_parametro_medida "; | |
| 1353 | + $sql .= "INNER JOIN ".$this->esquemaadmin."i3geoestat_medida_variavel "; | |
| 1354 | + $sql .= "ON i3geoestat_parametro_medida.id_medida_variavel = i3geoestat_medida_variavel.id_medida_variavel "; | |
| 1355 | + if($id_medida_variavel != ""){ | |
| 1356 | + $sql .= "WHERE i3geoestat_parametro_medida.id_medida_variavel = $id_medida_variavel "; | |
| 1357 | + if($id_parametro_medida != ""){ | |
| 1358 | + $sql .= "AND i3geoestat_parametro_medida.id_parametro_medida = $id_parametro_medida "; | |
| 1359 | + } | |
| 1360 | + } | |
| 1361 | + elseif ($id_parametro_medida != ""){ | |
| 1362 | + $sql .= "WHERE i3geoestat_parametro_medida.id_parametro_medida = $id_parametro_medida "; | |
| 1363 | + } | |
| 1364 | + if($id_pai != ""){ | |
| 1365 | + $sql .= " AND id_pai = $id_pai"; | |
| 1366 | + } | |
| 1367 | + if($apenasTempo == true){ | |
| 1368 | + $tempo = " AND i3geoestat_parametro_medida.tipo > 0 AND i3geoestat_parametro_medida.tipo < 5 "; | |
| 1369 | + $sql .= $tempo; | |
| 1370 | + } | |
| 1371 | + if($ordenaPeloPai == true){ | |
| 1372 | + $sql .= " ORDER BY id_pai"; | |
| 1373 | + } | |
| 1374 | + //echo $sql;exit; | |
| 1375 | + return $this->execSQL($sql,$id_parametro_medida); | |
| 1376 | + } | |
| 1377 | + /** | |
| 1378 | + * Lista todos os parametros cadastrados | |
| 1379 | + */ | |
| 1380 | + function listaTodosParametros(){ | |
| 1381 | + $sql = "SELECT i3geoestat_parametro_medida.*,i3geoestat_medida_variavel.* "; | |
| 1382 | + $sql .= "FROM ".$this->esquemaadmin."i3geoestat_parametro_medida "; | |
| 1383 | + $sql .= "INNER JOIN ".$this->esquemaadmin."i3geoestat_medida_variavel "; | |
| 1384 | + $sql .= "ON i3geoestat_parametro_medida.id_medida_variavel = i3geoestat_medida_variavel.id_medida_variavel "; | |
| 1385 | + $sql .= " ORDER BY nome"; | |
| 1386 | + return $this->execSQL($sql); | |
| 1387 | + } | |
| 1388 | + /** | |
| 1389 | + * Lista os valores (unicos) que ocorrem em um parametro de uma medida de variavel | |
| 1390 | + * @param id do parametro | |
| 1391 | + * @return array com os valores | |
| 1392 | + */ | |
| 1393 | + function listaValoresParametro($id_parametro_medida){ | |
| 1394 | + $parametro = $this->listaParametro("",$id_parametro_medida); | |
| 1395 | + //$medida = $this->listaMedidaVariavel("",$parametro["id_medida_variavel"]); | |
| 1396 | + $sm = $this->valorUnicoMedidaVariavel($parametro["id_medida_variavel"],$parametro["coluna"]); | |
| 1397 | + $nsm = array(); | |
| 1398 | + foreach($sm as $s){ | |
| 1399 | + $nsm[] = $s[$parametro["coluna"]]; | |
| 1400 | + } | |
| 1401 | + return $nsm; | |
| 1402 | + } | |
| 1403 | + /** | |
| 1404 | + * Lista os dados de um ou todos os tipos de periodo cadastrados | |
| 1405 | + * @param id | |
| 1406 | + */ | |
| 1407 | + function listaTipoPeriodo($codigo_tipo_periodo=""){ | |
| 1408 | + $sql = "select * from ".$this->esquemaadmin."i3geoestat_tipo_periodo "; | |
| 1409 | + if($codigo_tipo_periodo != ""){ | |
| 1410 | + $sql .= "WHERE codigo_tipo_periodo = $codigo_tipo_periodo "; | |
| 1411 | + } | |
| 1412 | + $sql .= "ORDER BY nome"; | |
| 1413 | + return $this->execSQL($sql,$codigo_tipo_periodo); | |
| 1414 | + } | |
| 1415 | + /** | |
| 1416 | + * Lista as propriedades da coluna com as geometrias de uma regiao geografica | |
| 1417 | + * @param codigo do tipo de regiao | |
| 1418 | + * @return array com os parametros, inclusive a dimensao (st_dimension) | |
| 1419 | + */ | |
| 1420 | + function listaPropGeoRegiao($codigo_tipo_regiao){ | |
| 1421 | + //st_dimension returns 0 for POINT, 1 for LINESTRING, 2 for POLYGON | |
| 1422 | + $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1423 | + $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); | |
| 1424 | + $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 1425 | + $c = $regiao["colunageo"]; | |
| 1426 | + $sql = "select st_dimension(".$regiao["colunageo"].") as st_dimension from ".$regiao["esquemadb"].".".$regiao["tabela"]." limit 1"; | |
| 1427 | + $q = $dbh->query($sql,PDO::FETCH_ASSOC); | |
| 1428 | + $r = array(); | |
| 1429 | + if($q){ | |
| 1430 | + $r = $q->fetchAll(); | |
| 1431 | + $r = $r[0]; | |
| 1432 | + } | |
| 1433 | + return $r; | |
| 1434 | + } | |
| 1435 | + /** | |
| 1436 | + * Lista os dados de uma ou todas as regioes cadastradas | |
| 1437 | + * @param codigo do tipo de regiao | |
| 1438 | + */ | |
| 1439 | + function listaTipoRegiao($codigo_tipo_regiao="",$completo=true){ | |
| 1440 | + if($completo == true){ | |
| 1441 | + $colunas = "*"; | |
| 1442 | + } else { | |
| 1443 | + $colunas = "codigo_tipo_regiao,nome_tipo_regiao,descricao_tipo_regiao"; | |
| 1444 | + } | |
| 1445 | + $sql = "select $colunas from ".$this->esquemaadmin."i3geoestat_tipo_regiao "; | |
| 1446 | + if($codigo_tipo_regiao != ""){ | |
| 1447 | + $sql .= "WHERE codigo_tipo_regiao = $codigo_tipo_regiao "; | |
| 1448 | + } | |
| 1449 | + $sql .= "ORDER BY nome_tipo_regiao"; | |
| 1450 | + return $this->execSQL($sql,$codigo_tipo_regiao); | |
| 1451 | + } | |
| 1452 | + /** | |
| 1453 | + * Obtem de um tipo de regiao a coluna do tipo serial | |
| 1454 | + * @param codigo do tipo de regiao | |
| 1455 | + */ | |
| 1456 | + function listaTipoRegiaoSerial($codigo_tipo_regiao){ | |
| 1457 | + $sql = "select * from ".$this->esquemaadmin."i3geoestat_tipo_regiao WHERE codigo_tipo_regiao = $codigo_tipo_regiao "; | |
| 1458 | + $regiao = $this->execSQL($sql,$codigo_tipo_regiao); | |
| 1459 | + $nome_esquema = $regiao["esquemadb"]; | |
| 1460 | + $nome_tabela = $regiao["tabela"]; | |
| 1461 | + $sql = "SELECT a.attname as coluna FROM pg_class s JOIN pg_depend d ON d.objid = s.oid JOIN pg_class t ON d.objid = s.oid AND d.refobjid = t.oid JOIN pg_attribute a ON (d.refobjid, d.refobjsubid) = (a.attrelid, a.attnum) JOIN pg_namespace n ON n.oid = s.relnamespace WHERE s.relkind = 'S' AND n.nspname = '$nome_esquema' AND t.relname = '$nome_tabela'"; | |
| 1462 | + $colunas = $this->execSQLDB($regiao["codigo_estat_conexao"],$sql); | |
| 1463 | + $colunas = $colunas[0]; | |
| 1464 | + return $colunas["coluna"]; | |
| 1465 | + } | |
| 1466 | + /** | |
| 1467 | + * Obtem de uma tabela a coluna do tipo serial | |
| 1468 | + * @param codigo do tipo de regiao | |
| 1469 | + */ | |
| 1470 | + function listaTabelaSerial($codigo_estat_conexao,$nome_esquema,$nome_tabela){ | |
| 1471 | + $sql = "SELECT a.attname as coluna FROM pg_class s JOIN pg_depend d ON d.objid = s.oid JOIN pg_class t ON d.objid = s.oid AND d.refobjid = t.oid JOIN pg_attribute a ON (d.refobjid, d.refobjsubid) = (a.attrelid, a.attnum) JOIN pg_namespace n ON n.oid = s.relnamespace WHERE s.relkind = 'S' AND n.nspname = '$nome_esquema' AND t.relname = '$nome_tabela'"; | |
| 1472 | + $colunas = $this->execSQLDB($codigo_estat_conexao,$sql); | |
| 1473 | + $colunas = $colunas[0]; | |
| 1474 | + return $colunas["coluna"]; | |
| 1475 | + } | |
| 1476 | + /** | |
| 1477 | + * Lista os dados de agregacao de uma regiao pai | |
| 1478 | + * @param codigo da regiao | |
| 1479 | + */ | |
| 1480 | + function listaHierarquiaRegioes($codigoregiaopai=""){ | |
| 1481 | + $sql = "select i3geoestat_agregaregiao.id_agregaregiao,i3geoestat_agregaregiao.colunaligacao_regiaopai,i3geoestat_tipo_regiao.codigo_tipo_regiao,i3geoestat_tipo_regiao.nome_tipo_regiao from ".$this->esquemaadmin."i3geoestat_tipo_regiao "; | |
| 1482 | + $sql .= "LEFT JOIN ".$this->esquemaadmin."i3geoestat_agregaregiao "; | |
| 1483 | + $sql .= "ON i3geoestat_tipo_regiao.codigo_tipo_regiao = i3geoestat_agregaregiao.codigo_tipo_regiao "; | |
| 1484 | + if($codigoregiaopai != ""){ | |
| 1485 | + $sql .= " WHERE ".$this->esquemaadmin."i3geoestat_agregaregiao.codigo_tipo_regiao_pai = $codigoregiaopai"; | |
| 1486 | + } | |
| 1487 | + else{ | |
| 1488 | + $sql .= "WHERE ".$this->esquemaadmin."i3geoestat_agregaregiao.codigo_tipo_regiao IS NULL"; | |
| 1489 | + } | |
| 1490 | + return $this->execSQL($sql,""); | |
| 1491 | + } | |
| 1492 | + function listaHierarquia($codigoregiaopai=""){ | |
| 1493 | + $sql = "select * from ".$this->esquemaadmin."i3geoestat_agregaregiao order by codigo_tipo_regiao"; | |
| 1494 | + return $this->execSQL($sql,""); | |
| 1495 | + } | |
| 1496 | + /** | |
| 1497 | + * Lista os registros de um tipo de regiao | |
| 1498 | + * Se for definido o pai, lista os valores da regiao que e filha | |
| 1499 | + * Nesse caso e necessario definir o identificador da regiao pai para obter os registros na regiao filha | |
| 1500 | + * @param codigo do tipo de regiao | |
| 1501 | + * @param codigo do tipo de regiao pai | |
| 1502 | + * @param identificador da regiao (registro) pai | |
| 1503 | + */ | |
| 1504 | + function listaDadosRegiao($codigo_tipo_regiao,$codigo_tipo_regiaopai="",$valorregiaopai=""){ | |
| 1505 | + //pega a tabela, esquema e conexao para acessar os dados da regiao | |
| 1506 | + $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1507 | + $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); | |
| 1508 | + $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 1509 | + $c = $regiao["colunageo"]; | |
| 1510 | + $bbox = "ST_XMin($c)||' '||ST_YMin($c)||' '||ST_XMax($c)||' '||ST_YMax($c) as ext "; | |
| 1511 | + $sql = "select $bbox,".$regiao["colunanomeregiao"]." as nome_regiao,".$regiao["identificador"]." as identificador_regiao from ".$regiao["esquemadb"].".".$regiao["tabela"]; | |
| 1512 | + if($valorregiaopai != ""){ | |
| 1513 | + $r = $this->listaAgregaRegiaoFilho($codigo_tipo_regiao,$codigo_tipo_regiaopai); | |
| 1514 | + $sql .= " WHERE ".$r["colunaligacao_regiaopai"]."::text = '$valorregiaopai'"; | |
| 1515 | + } | |
| 1516 | + $sql .= " order by ".$regiao["colunanomeregiao"]; | |
| 1517 | + | |
| 1518 | + $q = $dbh->query($sql,PDO::FETCH_ASSOC); | |
| 1519 | + $r = array(); | |
| 1520 | + if($q){ | |
| 1521 | + $r = $q->fetchAll(); | |
| 1522 | + } | |
| 1523 | + return $r; | |
| 1524 | + } | |
| 1525 | + /** | |
| 1526 | + * Lista os registros de uma tabela que e uma regiao | |
| 1527 | + * @param codigo do tipo de regiao | |
| 1528 | + */ | |
| 1529 | + function listaDadosGeometriaRegiao($codigo_tipo_regiao){ | |
| 1530 | + //pega a tabela, esquema e conexao para acessar os dados da regiao | |
| 1531 | + $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1532 | + $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); | |
| 1533 | + $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 1534 | + $c = $regiao["colunageo"]; | |
| 1535 | + $s = "ST_dimension($c) as dimension "; | |
| 1536 | + $sql = "select $s,".$regiao["colunanomeregiao"]." as nome_regiao,".$regiao["identificador"]." as identificador_regiao from ".$regiao["esquemadb"].".".$regiao["tabela"]; | |
| 1537 | + $sql .= " limit 1"; | |
| 1538 | + $q = $dbh->query($sql,PDO::FETCH_ASSOC); | |
| 1539 | + $r = array(); | |
| 1540 | + if($q){ | |
| 1541 | + $r = $q->fetchAll(); | |
| 1542 | + } | |
| 1543 | + return $r[0]; | |
| 1544 | + } | |
| 1545 | + /** | |
| 1546 | + * Lista uma ou todas as agregacoes de regioes existentes para um tipo de regiao | |
| 1547 | + * @param codigo do tipo de regiao | |
| 1548 | + * @param id da agregacao | |
| 1549 | + */ | |
| 1550 | + function listaAgregaRegiao($codigo_tipo_regiao="",$id_agregaregiao=""){ | |
| 1551 | + $sql = "select * from ".$this->esquemaadmin."i3geoestat_agregaregiao "; | |
| 1552 | + if($id_agregaregiao != ""){ | |
| 1553 | + $sql .= "WHERE id_agregaregiao = $id_agregaregiao "; | |
| 1554 | + } | |
| 1555 | + else{ | |
| 1556 | + if($codigo_tipo_regiao != ""){ | |
| 1557 | + $sql .= "WHERE codigo_tipo_regiao = $codigo_tipo_regiao"; | |
| 1558 | + } | |
| 1559 | + } | |
| 1560 | + $sql .= " ORDER BY colunaligacao_regiaopai"; | |
| 1561 | + //echo $sql;exit; | |
| 1562 | + return $this->execSQL($sql,$id_agregaregiao); | |
| 1563 | + } | |
| 1564 | + /** | |
| 1565 | + * Lista uma ou todas as agregacoes de regioes filhas de um tipo de regiao | |
| 1566 | + * @param codigo do tipo de regiao | |
| 1567 | + * @param codigo do tipo de regiao que e pai | |
| 1568 | + */ | |
| 1569 | + function listaAgregaRegiaoFilho($codigo_tipo_regiao,$codigo_tipo_regiao_pai){ | |
| 1570 | + $sql = "select * from ".$this->esquemaadmin."i3geoestat_agregaregiao "; | |
| 1571 | + $sql .= "WHERE codigo_tipo_regiao_pai = $codigo_tipo_regiao_pai "; | |
| 1572 | + if($codigo_tipo_regiao != ""){ | |
| 1573 | + $sql .= "AND codigo_tipo_regiao = $codigo_tipo_regiao"; | |
| 1574 | + } | |
| 1575 | + return $this->execSQL($sql,$codigo_tipo_regiao_pai); | |
| 1576 | + } | |
| 1577 | + /** | |
| 1578 | + * Lista os esquemas em um banco de dados | |
| 1579 | + * @param codigo da conexao | |
| 1580 | + * @return execSQLDB | |
| 1581 | + */ | |
| 1582 | + function esquemasConexao($codigo_estat_conexao){ | |
| 1583 | + return $this->execSQLDB($codigo_estat_conexao,"SELECT oid,nspname as esquema FROM pg_namespace WHERE nspname NOT LIKE 'pg_%' AND nspname NOT LIKE '%_schema%' group by nspname,oid order by nspname"); | |
| 1584 | + } | |
| 1585 | + /** | |
| 1586 | + * Lista as tabelas de um esquema | |
| 1587 | + * @param codigo da conexao | |
| 1588 | + * @param nome do esquema | |
| 1589 | + * @param sim|nao exclui da lista as tabelas que contem geometria | |
| 1590 | + * @return execSQLDB | |
| 1591 | + */ | |
| 1592 | + function tabelasEsquema($codigo_estat_conexao,$nome_esquema,$excluigeom=""){ | |
| 1593 | + $sql = "SELECT table_name as tabela FROM information_schema.tables where table_schema = '$nome_esquema' AND table_schema NOT LIKE 'i3geo%' AND table_schema NOT LIKE 'pg_%' AND table_schema NOT LIKE '%_schema%'"; | |
| 1594 | + if(strtolower($excluigeom) == "sim"){ | |
| 1595 | + $sql = "SELECT c.table_name as tabela FROM information_schema.tables as c left join (SELECT distinct a.table_name FROM information_schema.tables as a left join information_schema.columns as b on a.table_name = b.table_name where a.table_schema = '$nome_esquema' and udt_name = 'geometry' ) as d on c.table_name = d.table_name where c.table_schema = '$nome_esquema' AND c.table_schema NOT LIKE 'i3geo%' AND c.table_schema NOT LIKE 'pg_%' AND c.table_schema NOT LIKE '%_schema%' and d.table_name is null"; | |
| 1596 | + } | |
| 1597 | + return $this->execSQLDB($codigo_estat_conexao,$sql); | |
| 1598 | + } | |
| 1599 | + /** | |
| 1600 | + * Lista as colunas de uma tabela | |
| 1601 | + * @param codigo da conexao | |
| 1602 | + * @param nome do esquema | |
| 1603 | + * @param nome da tabela | |
| 1604 | + * @param tipo de coluna (opcional) | |
| 1605 | + * @param tipo de tratamento do parametro tipo, pode ser =|!= | |
| 1606 | + * @return execSQLDB | |
| 1607 | + */ | |
| 1608 | + function colunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela,$tipo="",$tipotratamento="="){ | |
| 1609 | + $colunas = array(); | |
| 1610 | + $res = $this->execSQLDB($codigo_estat_conexao,"SELECT column_name as coluna,udt_name FROM information_schema.columns where table_schema = '$nome_esquema' and table_name = '$nome_tabela'"); | |
| 1611 | + if($tipo != ""){ | |
| 1612 | + $res = $this->execSQLDB($codigo_estat_conexao,"SELECT column_name as coluna,udt_name FROM information_schema.columns where table_schema = '$nome_esquema' and udt_name $tipotratamento '$tipo' and table_name = '$nome_tabela'"); | |
| 1613 | + } | |
| 1614 | + foreach($res as $c){ | |
| 1615 | + $colunas[] = $c["coluna"]; | |
| 1616 | + } | |
| 1617 | + return $colunas; | |
| 1618 | + } | |
| 1619 | + /** | |
| 1620 | + * Lista o comentario de uma tabela | |
| 1621 | + * @param codigo da conexao | |
| 1622 | + * @param nome do esquema | |
| 1623 | + * @param nome da tabela | |
| 1624 | + * @return execSQLDB | |
| 1625 | + */ | |
| 1626 | + function comentarioTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela){ | |
| 1627 | + $colunas = array(); | |
| 1628 | + $sql = "SELECT pg_catalog.obj_description(c.oid, 'pg_class') AS comments FROM pg_catalog.pg_class c LEFT JOIN pg_catalog.pg_namespace n ON (n.oid = c.relnamespace) WHERE n.nspname = '".$nome_esquema."' AND c.relname = '".$nome_tabela."'"; | |
| 1629 | + $res = $this->execSQLDB($codigo_estat_conexao,$sql); | |
| 1630 | + if(count($res) > 0){ | |
| 1631 | + $res = $res[0]; | |
| 1632 | + $res = $res["comments"]; | |
| 1633 | + } | |
| 1634 | + else{ | |
| 1635 | + $res = ""; | |
| 1636 | + } | |
| 1637 | + if($res == null){ | |
| 1638 | + $res = ""; | |
| 1639 | + } | |
| 1640 | + return $res; | |
| 1641 | + } | |
| 1642 | + /** | |
| 1643 | + * Lista os metadados de uma coluna | |
| 1644 | + * Os metadados sao obtidos do proprio PostgreSQL | |
| 1645 | + * @param codigo da conexao | |
| 1646 | + * @param nome do esquema | |
| 1647 | + * @param nome da tabela | |
| 1648 | + * @param nome da coluna (opcional) | |
| 1649 | + * @return execSQLDB | |
| 1650 | + */ | |
| 1651 | + function descreveColunasTabela($codigo_estat_conexao,$nome_esquema,$nome_tabela,$nome_coluna=""){ | |
| 1652 | + if($nome_coluna == ""){ | |
| 1653 | + return $this->execSQLDB($codigo_estat_conexao,"SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE c.relname = '$nome_tabela' and p.nspname = '$nome_esquema' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname"); | |
| 1654 | + } | |
| 1655 | + else{ | |
| 1656 | + $res = $this->execSQLDB($codigo_estat_conexao,"SELECT a.attnum,a.attname AS field,t.typname AS type,a.attlen AS length,a.atttypmod AS lengthvar,a.attnotnull AS notnull,p.nspname as esquema FROM pg_class c,pg_attribute a,pg_type t,pg_namespace p WHERE a.attname = '$nome_coluna' AND c.relname = '$nome_tabela' and p.nspname = '$nome_esquema' and a.attnum > 0 and a.attrelid = c.oid and a.atttypid = t.oid and c.relnamespace = p.oid ORDER BY a.attname"); | |
| 1657 | + return $res[0]; | |
| 1658 | + } | |
| 1659 | + } | |
| 1660 | + /** | |
| 1661 | + * Lista os dados de uma tabela | |
| 1662 | + * @param codigo da conexao | |
| 1663 | + * @param nome do esquema | |
| 1664 | + * @param nome da tabela | |
| 1665 | + * @param sim|nao inclui o WKT da geometria de colunas geo | |
| 1666 | + * @param (opcional) numero de registros que serao listados | |
| 1667 | + * @return execSQLDB | |
| 1668 | + */ | |
| 1669 | + function obtemDadosTabelaDB($codigo_estat_conexao,$nome_esquema,$nome_tabela,$geo="nao",$nreg=""){ | |
| 1670 | + $desccolunas = $this->descreveColunasTabela($codigo_estat_conexao, $nome_esquema, $nome_tabela); | |
| 1671 | + $colunas = array(); | |
| 1672 | + $colsql = array(); | |
| 1673 | + foreach($desccolunas as $d){ | |
| 1674 | + if($d["type"] != "geometry" && $d["type"] != "geography"){ | |
| 1675 | + $colunas[] = $d["field"]; | |
| 1676 | + $colsql[] = $d["field"]; | |
| 1677 | + } | |
| 1678 | + elseif($geo == "sim"){ | |
| 1679 | + $colunas[] = $d["field"]; | |
| 1680 | + $colsql[] = "ST_AsText(".$d["field"].") as ".$d["field"]; | |
| 1681 | + } | |
| 1682 | + } | |
| 1683 | + $sql = "SELECT ".implode(",",$colsql)." from ".$nome_esquema.".".$nome_tabela; | |
| 1684 | + if($nreg != ""){ | |
| 1685 | + $sql = "SELECT ".implode(",",$colsql)." from ".$nome_esquema.".".$nome_tabela." limit $nreg"; | |
| 1686 | + } | |
| 1687 | + $dados = $this->execSQLDB($codigo_estat_conexao,$sql ); | |
| 1688 | + $linhas = array(); | |
| 1689 | + foreach($dados as $d){ | |
| 1690 | + $l = array(); | |
| 1691 | + foreach($colunas as $c){ | |
| 1692 | + $l[] = $d[$c]; | |
| 1693 | + } | |
| 1694 | + $linhas[] = $l; | |
| 1695 | + } | |
| 1696 | + return array("nomescolunas"=>$colunas,"colunas"=>$desccolunas,"linhas"=>$linhas); | |
| 1697 | + } | |
| 1698 | + /** | |
| 1699 | + * Relatorio completo com a lista de variaveis e medidas | |
| 1700 | + * @param codigo da variavel | |
| 1701 | + * @param sim|nao inclui dados detalhados | |
| 1702 | + * @return Array | |
| 1703 | + */ | |
| 1704 | + function relatorioCompleto($codigo_variavel="",$dadosGerenciais="nao"){ | |
| 1705 | + $dados = array(); | |
| 1706 | + if($codigo_variavel != "" || !empty($codigo_variavel)){ | |
| 1707 | + $vs[] = $this->listaVariavel($codigo_variavel); | |
| 1708 | + } | |
| 1709 | + else{ | |
| 1710 | + $vs = $this->listaVariavel(); | |
| 1711 | + } | |
| 1712 | + foreach($vs as $v){ | |
| 1713 | + $nivel1["id"] = $v["codigo_variavel"]; | |
| 1714 | + $nivel1["titulo"] = $v["nome"]; | |
| 1715 | + $nivel1["descricao"] = $v["descricao"]; | |
| 1716 | + $ms = $this->listaMedidaVariavel($v["codigo_variavel"]); | |
| 1717 | + $nivel1["filhos"] = array(); | |
| 1718 | + foreach($ms as $m){ | |
| 1719 | + $nivel2["id"] = $m["id_medida_variavel"]; | |
| 1720 | + $nivel2["titulo"] = $m["nomemedida"]; | |
| 1721 | + $unidade = $this->listaUnidadeMedida($m["codigo_unidade_medida"]); | |
| 1722 | + $unidade = "Unidade de medida: ".$unidade["nome"]; | |
| 1723 | + $periodo = $this->listaTipoPeriodo($m["codigo_tipo_periodo"]); | |
| 1724 | + $periodo = "Período de tempo: ".$periodo["nome"]; | |
| 1725 | + $regiao = $this->listaTipoRegiao($m["codigo_tipo_regiao"]); | |
| 1726 | + $regiao = "Região: ".$regiao["nome_tipo_regiao"]; | |
| 1727 | + $nivel2["descricao"] = $unidade.", ".$periodo.", ".$regiao; | |
| 1728 | + $nivel2["fontes"] = $this->listaFonteinfoMedida($m["id_medida_variavel"]); | |
| 1729 | + $nivel2["links"] = $this->listaLinkMedida($m["id_medida_variavel"]); | |
| 1730 | + $nivel2["dadosgerenciais"] = ""; | |
| 1731 | + if($dadosGerenciais == "sim"){ | |
| 1732 | + $nivel2["dadosgerenciais"] = $m; | |
| 1733 | + } | |
| 1734 | + $nivel1["filhos"][] = $nivel2; | |
| 1735 | + } | |
| 1736 | + $dados[] = $nivel1; | |
| 1737 | + } | |
| 1738 | + return $dados; | |
| 1739 | + } | |
| 1740 | + /** | |
| 1741 | + * Cria um raltorio formatado em HTML | |
| 1742 | + * @param dados obtidos com relatorioCompleto | |
| 1743 | + * @param sim|nao inclui os dados detalhados | |
| 1744 | + * @return string | |
| 1745 | + */ | |
| 1746 | + function formataRelatorioHtml($dados,$detalhes="sim"){ | |
| 1747 | + $html[] = "<div class='var_div_relatorio'>"; | |
| 1748 | + $var_cor = "var_cor1"; | |
| 1749 | + foreach($dados as $variavel){ | |
| 1750 | + $html[] = "<div class='".$var_cor."'>"; | |
| 1751 | + $html[] = "<h1 style=padding:3px; ><b>".$variavel["titulo"]; | |
| 1752 | + $html[] = "</b><br><span style='color:rgb(100,100,100)'>".$variavel["descricao"]."</span></h1>"; | |
| 1753 | + $filhos = $variavel["filhos"]; | |
| 1754 | + foreach($filhos as $f){ | |
| 1755 | + $html[] = "<h2 style='position:relative;left:10px;'>ID: <u>".$f["id"]."</u> - ".$f["titulo"]."</h2>"; | |
| 1756 | + $html[] = "<div style='position:relative;padding-left:20px;'>"; | |
| 1757 | + $html[] = "<p>".$f["descricao"]."</p>"; | |
| 1758 | + if($detalhes == "sim"){ | |
| 1759 | + $html[] = "<p><b>Fontes:</b></p>"; | |
| 1760 | + foreach($f["fontes"] as $fonte){ | |
| 1761 | + $html[] = "<p><a href='".$fonte["link"]."' >".$fonte["titulo"]."</a></p>"; | |
| 1762 | + } | |
| 1763 | + $html[] = "<p><b>Links:</b></p>"; | |
| 1764 | + foreach($f["links"] as $link){ | |
| 1765 | + $html[] = "<p><a href='".$link["link"]."' >".$link["nome"]."</a></p>"; | |
| 1766 | + } | |
| 1767 | + if($f["dadosgerenciais"] != ""){ | |
| 1768 | + $html[] = "<span style='color:gray'>"; | |
| 1769 | + $html[] = "esquemadb = ".$f["dadosgerenciais"][esquemadb].", "; | |
| 1770 | + $html[] = "tabela = ".$f["dadosgerenciais"][tabela].", "; | |
| 1771 | + $html[] = "colunavalor = ".$f["dadosgerenciais"][colunavalor].", "; | |
| 1772 | + $html[] = "colunaidgeo = ".$f["dadosgerenciais"][colunaidgeo].", "; | |
| 1773 | + $html[] = "filtro = ".$f["dadosgerenciais"][filtro].", "; | |
| 1774 | + $html[] = "colunaidunico = ".$f["dadosgerenciais"][colunaidunico]; | |
| 1775 | + $html[] = "</span>"; | |
| 1776 | + } | |
| 1777 | + } | |
| 1778 | + $html[] = "</div>"; | |
| 1779 | + } | |
| 1780 | + $html[] = "</div>"; | |
| 1781 | + if($var_cor == "var_cor1"){ | |
| 1782 | + $var_cor = "var_cor2"; | |
| 1783 | + } | |
| 1784 | + else{ | |
| 1785 | + $var_cor = "var_cor1"; | |
| 1786 | + } | |
| 1787 | + } | |
| 1788 | + $html[] = "</div><br><br>"; | |
| 1789 | + return implode("",$html); | |
| 1790 | + } | |
| 1791 | + /** | |
| 1792 | + * Cria um relatorio no formato XML | |
| 1793 | + * @param dados obtidos com relatorioCompleto | |
| 1794 | + * @return string | |
| 1795 | + */ | |
| 1796 | + function formataXML($dados){ | |
| 1797 | + $chaves = array_keys($dados[0]); | |
| 1798 | + if(count($chaves) == 0){ | |
| 1799 | + $chaves = false; | |
| 1800 | + } | |
| 1801 | + $xml = "<"."\x3F"."xml version='1.0' encoding='UTF-8' "."\x3F".">" . PHP_EOL; | |
| 1802 | + $xml .= '<result-set>' . PHP_EOL; | |
| 1803 | + //tenta descobrir o tipo de coluna | |
| 1804 | + //$xml .= '<!--java.lang.String,java.lang.Integer-->' . PHP_EOL; | |
| 1805 | + $xmldados = ""; | |
| 1806 | + if($chaves){ | |
| 1807 | + foreach($dados as $d){ | |
| 1808 | + $xmldados .= "<row>" . PHP_EOL; | |
| 1809 | + foreach($chaves as $c){ | |
| 1810 | + $xmldados .= "<".$c.">".$d[$c]."</".$c.">" . PHP_EOL; | |
| 1811 | + } | |
| 1812 | + $xmldados .= "</row>" . PHP_EOL; | |
| 1813 | + } | |
| 1814 | + $tipos = array(); | |
| 1815 | + $d = $dados[0]; | |
| 1816 | + foreach($chaves as $c){ | |
| 1817 | + if(is_numeric($d[$c])){ | |
| 1818 | + $tipos[] = "java.lang.Integer"; | |
| 1819 | + } | |
| 1820 | + else{ | |
| 1821 | + $tipos[] = "java.lang.String"; | |
| 1822 | + } | |
| 1823 | + } | |
| 1824 | + $xml .= '<!--'.implode($tipos,",").'-->' . PHP_EOL; | |
| 1825 | + } | |
| 1826 | + else{ | |
| 1827 | + while (list($key, $val) = each($dados)) { | |
| 1828 | + $xmldados .= "<row>" . PHP_EOL; | |
| 1829 | + $xmldados .= "<nome>".$key."</nome>" . PHP_EOL; | |
| 1830 | + $xmldados .= "<valor>".$val."</valor>" . PHP_EOL; | |
| 1831 | + $xmldados .= "</row>" . PHP_EOL; | |
| 1832 | + } | |
| 1833 | + reset($dados); | |
| 1834 | + $tipos = array(); | |
| 1835 | + while (list($key, $val) = each($dados)) { | |
| 1836 | + if(is_numeric($val)){ | |
| 1837 | + $tipos[] = "java.lang.Integer"; | |
| 1838 | + } | |
| 1839 | + else{ | |
| 1840 | + $tipos[] = "java.lang.String"; | |
| 1841 | + } | |
| 1842 | + if(is_numeric($key)){ | |
| 1843 | + $tipos[] = "java.lang.Integer"; | |
| 1844 | + } | |
| 1845 | + else{ | |
| 1846 | + $tipos[] = "java.lang.String"; | |
| 1847 | + } | |
| 1848 | + break; | |
| 1849 | + } | |
| 1850 | + $xml .= '<!--'.implode($tipos,",").'-->' . PHP_EOL; | |
| 1851 | + } | |
| 1852 | + $xml .= $xmldados; | |
| 1853 | + $xml .= '</result-set>' . PHP_EOL; | |
| 1854 | + return $xml; | |
| 1855 | + } | |
| 1856 | + /** | |
| 1857 | + * Verifica se em um array existe uma chave com determinado valor | |
| 1858 | + * @param Array | |
| 1859 | + * @param nome da chave | |
| 1860 | + * @param valor a ser buscado | |
| 1861 | + * @return boolean | |
| 1862 | + */ | |
| 1863 | + function buscaNoArray($lista,$chave,$valor){ | |
| 1864 | + foreach($lista as $l){ | |
| 1865 | + if($l[$chave] == $valor){ | |
| 1866 | + return true; | |
| 1867 | + } | |
| 1868 | + } | |
| 1869 | + return false; | |
| 1870 | + } | |
| 1871 | + /** | |
| 1872 | + * Obtem o valor de um registro de uma tabela de regiao com base na coordenada de longitude e latitude | |
| 1873 | + * @param codigo do tipo de regiao | |
| 1874 | + * @param longitude | |
| 1875 | + * @param latitude | |
| 1876 | + * @return array | |
| 1877 | + */ | |
| 1878 | + function xy2regiao($codigo_tipo_regiao,$x,$y){ | |
| 1879 | + //pega a tabela, esquema e conexao para acessar os dados da regiao | |
| 1880 | + $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1881 | + $c = $this->listaConexao($regiao["codigo_estat_conexao"],true); | |
| 1882 | + $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 1883 | + $sql = "select ".$regiao["identificador"]." as identificador_regiao,".$regiao["colunanomeregiao"]." as nomeregiao from i3geo_metaestat.".$regiao["tabela"]." WHERE ST_within(ST_GeomFromText('POINT($x $y)',".$regiao["srid"]."),".$regiao["colunageo"].")"; | |
| 1884 | + $q = $dbh->query($sql,PDO::FETCH_ASSOC); | |
| 1885 | + $r = $q->fetchAll(); | |
| 1886 | + if(count($r) > 0){ | |
| 1887 | + return $r[0]; | |
| 1888 | + } | |
| 1889 | + else{ | |
| 1890 | + return ""; | |
| 1891 | + } | |
| 1892 | + } | |
| 1893 | + /** | |
| 1894 | + * Busca os dados de uma medida de variavel para uma regiao | |
| 1895 | + * Identificador da regiao e o valor a ser encontrado na coluna de | |
| 1896 | + * ligacao da tabela da medida da variavel com a tabela com as localidades (tipo de regiao) | |
| 1897 | + * @param identificador da regiao | |
| 1898 | + * @param id da medida da variavel | |
| 1899 | + * @return multitype:unknown multitype: string | |
| 1900 | + */ | |
| 1901 | + function listaAtributosMedidaVariavelRegiao ($identificador_regiao,$id_medida_variavel){ | |
| 1902 | + $medida = $this->listaMedidaVariavel("",$id_medida_variavel); | |
| 1903 | + $c = $this->listaConexao($medida["codigo_estat_conexao"],true); | |
| 1904 | + if($medida["colunavalor"] == ""){ | |
| 1905 | + return ""; | |
| 1906 | + } | |
| 1907 | + $dbh = new PDO('pgsql:dbname='.$c["bancodedados"].';user='.$c["usuario"].';password='.$c["senha"].';host='.$c["host"].';port='.$c["porta"]); | |
| 1908 | + $colunassql[] = $medida["colunavalor"].",".$medida["colunaidunico"]; | |
| 1909 | + | |
| 1910 | + $alias[] = $medida["nomemedida"]; | |
| 1911 | + $colunas[] = $medida["colunavalor"]; | |
| 1912 | + $alias[] = "idunico"; | |
| 1913 | + $colunas[] = $medida["colunaidunico"]; | |
| 1914 | + $descricao[] = $medida["unidade_medida"]; | |
| 1915 | + $parametros = $this->listaParametro($id_medida_variavel); | |
| 1916 | + foreach($parametros as $p){ | |
| 1917 | + $colunassql[] = $p["coluna"]; | |
| 1918 | + $alias[] = $p["nome"]; | |
| 1919 | + $descricao[] = $p["descricao"]; | |
| 1920 | + $colunas[] = $p["coluna"]; | |
| 1921 | + } | |
| 1922 | + | |
| 1923 | + $sql = "select ".implode(",",$colunassql)." from ".$medida["esquemadb"].".".$medida["tabela"]." WHERE ".$medida["colunaidgeo"]."::text = ".$identificador_regiao."::text "; | |
| 1924 | + if($medida["filtro"] != ""){ | |
| 1925 | + $sql .= " and ".$medida["filtro"]; | |
| 1926 | + } | |
| 1927 | + $q = $dbh->query($sql,PDO::FETCH_ASSOC); | |
| 1928 | + $r = $q->fetchAll(); | |
| 1929 | + return array("dados"=>$r,"aliascolunas"=>$alias,"colunas"=>$colunas,"descricao"=>$descricao); | |
| 1930 | + } | |
| 1931 | + /** | |
| 1932 | + * Converte um tipo de regiao em shapefile | |
| 1933 | + * @param codigo do tipo de regiao | |
| 1934 | + * @return nome do arquivo criado | |
| 1935 | + */ | |
| 1936 | + function regiao2shp($codigo_tipo_regiao){ | |
| 1937 | + $regiao = $this->listaTipoRegiao($codigo_tipo_regiao); | |
| 1938 | + $dados = $this->obtemDadosTabelaDB($regiao["codigo_estat_conexao"],$regiao["esquemadb"],$regiao["tabela"],"sim"); | |
| 1939 | + $tipol = $this->listaPropGeoRegiao($codigo_tipo_regiao); | |
| 1940 | + include_once(dirname(__FILE__)."/classesphp/classe_shp.php"); | |
| 1941 | + $s = new SHP(); | |
| 1942 | + //st_dimension returns 0 for POINT, 1 for LINESTRING, 2 for POLYGON | |
| 1943 | + //echo MS_SHP_POINT.", ".MS_SHP_ARC.", ".MS_SHP_POLYGON.", ".MS_SHP_MULTIPOINT; | |
| 1944 | + //1, 3, 5, 8 | |
| 1945 | + $conv[0] = 1; | |
| 1946 | + $conv[1] = 3; | |
| 1947 | + $conv[2] = 5; | |
| 1948 | + //cria as colunas | |
| 1949 | + $cni = 0; | |
| 1950 | + foreach($dados["colunas"] as $t){ | |
| 1951 | + $temp = strtoupper($t["field"]); | |
| 1952 | + if(strlen($temp) > 10){ | |
| 1953 | + $temp = substr($temp,0,8).($cni++); | |
| 1954 | + } | |
| 1955 | + if($t["type"] == "varchar" || $t["type"] == "char" || $t["type"] == "character varying" || $t["type"] == "character" || $t["type"] == "text"){ | |
| 1956 | + $def[] = array($temp,"C","254"); | |
| 1957 | + } | |
| 1958 | + else{ | |
| 1959 | + if($t["lengthvar"] < 0){ | |
| 1960 | + $t["lengthvar"] = 0; | |
| 1961 | + } | |
| 1962 | + $def[] = array($temp,"N", $t["length"],$t["lengthvar"]); | |
| 1963 | + } | |
| 1964 | + } | |
| 1965 | + $nomeshp = $this->dir_tmp."/regiao$codigo_tipo_regiao"."_".$this->nomeRandomico(); | |
| 1966 | + $dbaseExiste = false; | |
| 1967 | + if(function_exists("dbase_create")){ | |
| 1968 | + $dbaseExiste = true; | |
| 1969 | + } | |
| 1970 | + //para manipular dbf | |
| 1971 | + if($dbaseExiste == false){ | |
| 1972 | + include_once (dirname(__FILE__)."/../pacotes/phpxbase/api_conversion.php"); | |
| 1973 | + $db = xbase_create($nomeshp.".dbf", $def); | |
| 1974 | + } | |
| 1975 | + else | |
| 1976 | + {$db = dbase_create($nomeshp.".dbf", $def);} | |
| 1977 | + $dbname = $nomeshp.".dbf"; | |
| 1978 | + $reg = array(); | |
| 1979 | + $novoshpf = ms_newShapefileObj($nomeshp.".shp", $conv[$tipol["st_dimension"]]); | |
| 1980 | + $cols = $dados["colunas"]; | |
| 1981 | + $nc = count($dados["colunas"]); | |
| 1982 | + foreach($dados["linhas"] as $l){ | |
| 1983 | + $reg = array(); | |
| 1984 | + for($i=0;$i<$nc;$i++){ | |
| 1985 | + if($cols[$i]["type"] != "geometry" && $cols[$i]["type"] != "geography"){ | |
| 1986 | + $reg[] = $l[$i]; | |
| 1987 | + } | |
| 1988 | + else{ | |
| 1989 | + $reg[] = 0; | |
| 1990 | + if($cols[$i]["field"] == $regiao["colunageo"]){ | |
| 1991 | + $shape = ms_shapeObjFromWkt($l[$i]); | |
| 1992 | + } | |
| 1993 | + } | |
| 1994 | + } | |
| 1995 | + $novoshpf->addShape($shape); | |
| 1996 | + if($dbaseExiste == false){ | |
| 1997 | + xbase_add_record($db,$reg); | |
| 1998 | + } | |
| 1999 | + else{ | |
| 2000 | + dbase_add_record($db,$reg); | |
| 2001 | + } | |
| 2002 | + } | |
| 2003 | + if($this->dbaseExiste == false){ | |
| 2004 | + xbase_close($db); | |
| 2005 | + } | |
| 2006 | + else{ | |
| 2007 | + dbase_close($db); | |
| 2008 | + } | |
| 2009 | + return $nomeshp; | |
| 2010 | + } | |
| 2011 | + /* | |
| 2012 | + * Testa se os elementos de um array sao numericos | |
| 2013 | + */ | |
| 2014 | + function testaNumerico($valores){ | |
| 2015 | + foreach ($valores as $valor) { | |
| 2016 | + if(!empty($valor) && !is_numeric($valor)) { | |
| 2017 | + echo "valor nao numerico"; | |
| 2018 | + exit; | |
| 2019 | + } | |
| 2020 | + } | |
| 2021 | + } | |
| 2022 | +} | |
| 2023 | +?> | ... | ... |
classesphp/classe_selecao.php
| ... | ... | @@ -594,7 +594,7 @@ $tipo - Tipo de opera&ccedil;&atilde;o adiciona|retira|inverte|limpa|novo |
| 594 | 594 | } |
| 595 | 595 | else |
| 596 | 596 | { |
| 597 | - error_reporting(0); | |
| 597 | + //error_reporting(0); | |
| 598 | 598 | $projInObj = ms_newprojectionobj("proj=longlat,ellps=WGS84,datum=WGS84,no_defs"); |
| 599 | 599 | $projOutObj = ms_newprojectionobj("proj=poly,ellps=GRS67,lat_0=0,lon_0=".$pt->x.",x_0=5000000,y_0=10000000"); |
| 600 | 600 | |
| ... | ... | @@ -664,6 +664,10 @@ Limpa a sele&ccedil;&atilde;o do tema. |
| 664 | 664 | if (file_exists($file)){ |
| 665 | 665 | unlink ($file); |
| 666 | 666 | } |
| 667 | + $file = dirname($this->arquivo)."/".$l->name."_qy.map"; | |
| 668 | + if (file_exists($file)){ | |
| 669 | + unlink ($file); | |
| 670 | + } | |
| 667 | 671 | } |
| 668 | 672 | if (file_exists($this->qyfile)){ |
| 669 | 673 | unlink ($this->qyfile); |
| ... | ... | @@ -719,7 +723,7 @@ $shpi - Indices dos registros novos. |
| 719 | 723 | $shp_atual - Indices dos elementos já selecionados. |
| 720 | 724 | */ |
| 721 | 725 | function selecaoAdiciona($shpi,$shp_atual){ |
| 722 | - error_reporting(0); | |
| 726 | + //error_reporting(0); | |
| 723 | 727 | if(!$this->layer){ |
| 724 | 728 | return "erro"; |
| 725 | 729 | } |
| ... | ... | @@ -870,7 +874,7 @@ parameters: |
| 870 | 874 | $tipo - Tipo de operação adiciona|retira|inverte|limpa|novo |
| 871 | 875 | |
| 872 | 876 | $ext - coordenadas separadas por espaços no estilo xmin ymin xmax ymax |
| 873 | - | |
| 877 | + | |
| 874 | 878 | $retornaShapes - retorna os shapes selecionados. Nesse caso, nao e gerado o arquivo em disco contendo a selecao |
| 875 | 879 | */ |
| 876 | 880 | function selecaoBOX($tipo,$ext,$retornaShapes=false) { |
| ... | ... | @@ -922,7 +926,7 @@ $retornaShapes - retorna os shapes selecionados. Nesse caso, nao e gerado o arqu |
| 922 | 926 | } |
| 923 | 927 | else{ |
| 924 | 928 | $shpi[] = $this->layer->getfeature($result->shapeindex,-1); |
| 925 | - } | |
| 929 | + } | |
| 926 | 930 | } |
| 927 | 931 | } |
| 928 | 932 | } |
| ... | ... | @@ -986,7 +990,7 @@ $geos - array com os dados |
| 986 | 990 | $distancia - distancia em metros |
| 987 | 991 | */ |
| 988 | 992 | function projetaDistancia($shape,$distancia){ |
| 989 | - error_reporting(0); | |
| 993 | + //error_reporting(0); | |
| 990 | 994 | $pt = $shape->getCentroid(); |
| 991 | 995 | $projInObj = ms_newprojectionobj("proj=longlat,ellps=WGS84,datum=WGS84,no_defs"); |
| 992 | 996 | $projOutObj = ms_newprojectionobj("proj=poly,ellps=GRS67,lat_0=0,lon_0=".$pt->x.",x_0=5000000,y_0=10000000"); | ... | ... |
classesphp/classe_temas.php
| ... | ... | @@ -392,38 +392,37 @@ Parametros: |
| 392 | 392 | |
| 393 | 393 | lista - lista com a nova ordem para os temas. A lista contém os nomes dos temas separados por vírgula. |
| 394 | 394 | */ |
| 395 | - function reordenatemas($lista) | |
| 396 | - { | |
| 395 | + function reordenatemas($lista){ | |
| 396 | + //error_log("kkkk-------".$lista); | |
| 397 | 397 | $nlayers = $this->mapa->numlayers; |
| 398 | 398 | $lista = explode(",",$lista); |
| 399 | 399 | $lista = array_reverse($lista); |
| 400 | 400 | $novaordem = array(); |
| 401 | - foreach ($lista as $l) | |
| 402 | - { | |
| 403 | - for ($i=0;$i<$nlayers;++$i) | |
| 404 | - { | |
| 401 | + foreach ($lista as $l){ | |
| 402 | + for ($i=0;$i<$nlayers;++$i){ | |
| 405 | 403 | $la = $this->mapa->getlayer($i); |
| 406 | - if($la->getmetadata("escondido") != "") | |
| 407 | - { | |
| 408 | - if (!in_array($la->index,$novaordem)) | |
| 409 | - $novaordem[] = $i; | |
| 404 | + //$la->set("status",MS_DEFAULT); | |
| 405 | + if(strtolower($la->getmetadata("escondido")) == "sim") { | |
| 406 | + if (!in_array($la->index,$novaordem)){ | |
| 407 | + $novaordem[] = $i; | |
| 408 | + //error_log("-------xxx".$la->name); | |
| 409 | + } | |
| 410 | 410 | } |
| 411 | - else | |
| 412 | - { | |
| 411 | + else{ | |
| 413 | 412 | $g = strtoupper($la->group); |
| 414 | 413 | $n = strtoupper($la->name); |
| 415 | - if ((strtoupper($l) == $n) || (strtoupper($l) == $g)) | |
| 416 | - {$novaordem[] = $i;} | |
| 414 | + if ((strtoupper($l) == $n) || (strtoupper($l) == $g)){ | |
| 415 | + $novaordem[] = $i; | |
| 416 | + } | |
| 417 | 417 | } |
| 418 | 418 | } |
| 419 | 419 | } |
| 420 | - for ($i=0;$i<$nlayers;++$i) | |
| 421 | - { | |
| 422 | - if (!in_array($i,$novaordem)) | |
| 423 | - {$novaordem[] = $i;} | |
| 420 | + //acrescenta os layers que ficaram de fora | |
| 421 | + for ($i=0;$i<$nlayers;++$i){ | |
| 422 | + if (!in_array($i,$novaordem)){ | |
| 423 | + $novaordem[] = $i; | |
| 424 | + } | |
| 424 | 425 | } |
| 425 | - //echo "<pre>"; | |
| 426 | - //var_dump($novaordem); | |
| 427 | 426 | $this->mapa->setlayersdrawingorder($novaordem); |
| 428 | 427 | return "ok"; |
| 429 | 428 | } | ... | ... |
classesphp/classe_toponimia.php
| ... | ... | @@ -180,7 +180,7 @@ Retorno: |
| 180 | 180 | */ |
| 181 | 181 | function criaToponimia($item,$position,$partials,$offsetx,$offsety,$minfeaturesize,$mindistance,$force,$shadowcolor,$shadowsizex,$shadowsizey,$outlinecolor,$cor,$sombray,$sombrax,$sombra,$fundo,$angulo,$tamanho,$fonte,$tipo,$wrap,$novotema="sim") |
| 182 | 182 | { |
| 183 | - error_reporting(0); | |
| 183 | + //error_reporting(0); | |
| 184 | 184 | if(!$this->layer){return "erro";} |
| 185 | 185 | $this->removeToponimia(); |
| 186 | 186 | ... | ... |
classesphp/funcoes_gerais.php
| ... | ... | @@ -406,10 +406,10 @@ function listaArquivos($diretorio,$seguro=false,$permitido=array("png","PNG","jp |
| 406 | 406 | { |
| 407 | 407 | if ($nd != "." && $nd != ".."){ |
| 408 | 408 | $ext = explode(".",$nd); |
| 409 | - if (count($ext)>1){ | |
| 409 | + if (count($ext) == 2){ | |
| 410 | 410 | if($seguro == true){ |
| 411 | 411 | $buscar = $ext[1]; |
| 412 | - //$permitido = array("png","PNG","jpg","JPG","tif","tiff","TIF","TIFF","shp","SHP","img"); | |
| 412 | + $permitido = array("tif","tiff","TIF","TIFF","shp","SHP","img"); | |
| 413 | 413 | if(in_array($buscar,$permitido)){ |
| 414 | 414 | $arqs[] = $nd; |
| 415 | 415 | $nomes[] = basename($nd); |
| ... | ... | @@ -429,7 +429,7 @@ function listaArquivos($diretorio,$seguro=false,$permitido=array("png","PNG","jp |
| 429 | 429 | $exts[] = $ext[1]; |
| 430 | 430 | } |
| 431 | 431 | } |
| 432 | - if (count($ext)==1){ | |
| 432 | + if (count($ext)==1 && is_dir($diretorio."/".$nd)){ | |
| 433 | 433 | $dirs[] = $nd; |
| 434 | 434 | } |
| 435 | 435 | } |
| ... | ... | @@ -536,7 +536,7 @@ Retorno: |
| 536 | 536 | */ |
| 537 | 537 | function substituiCon($map_file,$postgis_mapa) |
| 538 | 538 | { |
| 539 | - error_reporting(0); | |
| 539 | + //error_reporting(0); | |
| 540 | 540 | if (!empty($postgis_mapa) && (file_exists($map_file))) |
| 541 | 541 | { |
| 542 | 542 | if(!@ms_newMapObj($map_file)){return false;} |
| ... | ... | @@ -571,7 +571,7 @@ function substituiCon($map_file,$postgis_mapa) |
| 571 | 571 | return true; |
| 572 | 572 | } |
| 573 | 573 | function substituiConObj($objMap,$postgis_mapa){ |
| 574 | - error_reporting(0); | |
| 574 | + //error_reporting(0); | |
| 575 | 575 | if (!empty($postgis_mapa)){ |
| 576 | 576 | $numlayers = $objMap->numlayers; |
| 577 | 577 | for ($i=0;$i < $numlayers;++$i) |
| ... | ... | @@ -2561,7 +2561,7 @@ $a {string} |
| 2561 | 2561 | function echojson($a) |
| 2562 | 2562 | { |
| 2563 | 2563 | //ob_clean(); |
| 2564 | - error_reporting(0); | |
| 2564 | + //error_reporting(0); | |
| 2565 | 2565 | ob_end_clean(); |
| 2566 | 2566 | //if(extension_loaded('zlib')) |
| 2567 | 2567 | //{ob_start('ob_gzhandler');} |
| ... | ... | @@ -2851,7 +2851,7 @@ $salva - salva o mapfile com os layers removidos ou nao |
| 2851 | 2851 | Retorno: boolean indicando se o mapfile contem layers indevidos |
| 2852 | 2852 | */ |
| 2853 | 2853 | function validaAcessoTemas($map_file,$salva = true){ |
| 2854 | - error_reporting(0); | |
| 2854 | + //error_reporting(0); | |
| 2855 | 2855 | $indevidos = listaLayersIndevidos($map_file); |
| 2856 | 2856 | $existeIndevidos = false; |
| 2857 | 2857 | if(count($indevidos) > 0){ |
| ... | ... | @@ -2884,7 +2884,7 @@ O retorno e um array com a chave sendo o codigo do tema e o valor um array com a |
| 2884 | 2884 | function listaTemasRestritos(){ |
| 2885 | 2885 | global $esquemaadmin; |
| 2886 | 2886 | include_once(dirname(__FILE__)."/../admin/php/admin.php"); |
| 2887 | - error_reporting(0); | |
| 2887 | + //error_reporting(0); | |
| 2888 | 2888 | $res = pegaDados("select id_grupo,codigo_tema from ".$esquemaadmin."i3geousr_grupotema as gt,".$esquemaadmin."i3geoadmin_temas as te where gt.id_tema = te.id_tema"); |
| 2889 | 2889 | $restritos = array(); |
| 2890 | 2890 | foreach ($res as $r){ |
| ... | ... | @@ -2903,7 +2903,7 @@ Function: listaLayersIndevidos |
| 2903 | 2903 | Lista os layers de um mapfile que sao restritos e que nao sao permitidos ao usuario logado |
| 2904 | 2904 | */ |
| 2905 | 2905 | function listaLayersIndevidos($map_file){ |
| 2906 | - error_reporting(0); | |
| 2906 | + //error_reporting(0); | |
| 2907 | 2907 | $indevidos = array(); |
| 2908 | 2908 | $restritos = listaTemasRestritos(); |
| 2909 | 2909 | if(count($restritos) > 0){ |
| ... | ... | @@ -2947,7 +2947,7 @@ Function: listaTemasIndevidos |
| 2947 | 2947 | Lista os temas que sao restritos e que nao sao permitidos ao usuario logado |
| 2948 | 2948 | */ |
| 2949 | 2949 | function listaTemasIndevidos(){ |
| 2950 | - error_reporting(0); | |
| 2950 | + //error_reporting(0); | |
| 2951 | 2951 | $indevidos = array(); |
| 2952 | 2952 | $restritos = listaTemasRestritos(); |
| 2953 | 2953 | if(count($restritos) > 0){ |
| ... | ... | @@ -2969,7 +2969,7 @@ Function: listaGruposUsrLogin |
| 2969 | 2969 | Lista os grupos ao qual pertence o usuario atualmente logado |
| 2970 | 2970 | */ |
| 2971 | 2971 | function listaGruposUsrLogin(){ |
| 2972 | - error_reporting(0); | |
| 2972 | + //error_reporting(0); | |
| 2973 | 2973 | //echo $_COOKIE["i3geocodigologin"];exit; |
| 2974 | 2974 | if(empty($_COOKIE["i3geocodigologin"])){ |
| 2975 | 2975 | return array(); |
| ... | ... | @@ -3135,7 +3135,7 @@ function pegaDadosAdminKey($sql,$subsEsquema){ |
| 3135 | 3135 | $resultado = array(); |
| 3136 | 3136 | include(dirname(__FILE__)."/../admin/php/conexao.php"); |
| 3137 | 3137 | $sql = str_replace($subsEsquema,$esquemaadmin,$sql); |
| 3138 | - error_reporting(0); | |
| 3138 | + //error_reporting(0); | |
| 3139 | 3139 | $q = $dbh->query($sql,PDO::FETCH_ASSOC); |
| 3140 | 3140 | if($q){ |
| 3141 | 3141 | $resultado = $q->fetchAll( PDO::FETCH_GROUP| PDO::FETCH_UNIQUE); | ... | ... |
classesphp/mapa_controle.php
| ... | ... | @@ -100,7 +100,7 @@ imgdir - localiza&ccedil;&atilde;o, no servidor, das imagens tempor&aacute;rias |
| 100 | 100 | debug - (pode ser definido como "sim" indica se o erro_reporting deve ser definido como E_ALL |
| 101 | 101 | contadorsalva - indica quantas vezes o mapa já foi salvo. Permite que uma aplicação verifique se o mapa foi alterado ou não. |
| 102 | 102 | */ |
| 103 | -error_reporting(0); | |
| 103 | +//error_reporting(0); | |
| 104 | 104 | |
| 105 | 105 | //sleep(5); |
| 106 | 106 | |
| ... | ... | @@ -108,7 +108,6 @@ error_reporting(0); |
| 108 | 108 | //pega as variaveis passadas com get ou post |
| 109 | 109 | // |
| 110 | 110 | $tempo = microtime(1); |
| 111 | - | |
| 112 | 111 | include_once("sani_request.php"); |
| 113 | 112 | $_pg = array_merge($_GET,$_POST); |
| 114 | 113 | |
| ... | ... | @@ -133,6 +132,7 @@ if ($funcao != "listaEpsg" && $funcao != "pegaTodosTemas" && $funcao != "downloa |
| 133 | 132 | $imgurl = $_SESSION["imgurl"]; |
| 134 | 133 | $tmpurl = $_SESSION["tmpurl"]; |
| 135 | 134 | $map_file = $_SESSION["map_file"]; |
| 135 | + //error_log($map_file); | |
| 136 | 136 | $mapext = $_SESSION["mapext"]; |
| 137 | 137 | $dir_tmp = $_SESSION["dir_tmp"] ; |
| 138 | 138 | $cachedir = $_SESSION["cachedir"]; |
| ... | ... | @@ -191,7 +191,7 @@ if(isset($interfaceTemp) && $interfaceTemp != ""){ |
| 191 | 191 | $_SESSION["interface"] = $interfaceTemp; |
| 192 | 192 | $interface = $interfaceTemp; |
| 193 | 193 | } |
| 194 | -error_reporting(0); | |
| 194 | +//error_reporting(0); | |
| 195 | 195 | // |
| 196 | 196 | //teste de timeout |
| 197 | 197 | // |
| ... | ... | @@ -211,7 +211,10 @@ if(isset($logExec) && $logExec["controle"] == true){ |
| 211 | 211 | if($funcao == "criaMapa"){ |
| 212 | 212 | session_name("i3GeoPHP"); |
| 213 | 213 | unset($GLOBALS); |
| 214 | - session_destroy(); | |
| 214 | + if(session_status() == PHP_SESSION_ACTIVE){ | |
| 215 | + //error_log("--------------Apagando a session"); | |
| 216 | + session_destroy(); | |
| 217 | + } | |
| 215 | 218 | $_COOKIE = array(); |
| 216 | 219 | // |
| 217 | 220 | //primeiro é necessário carregar o ms_configura.php para pegar a variável $locaplic |
| ... | ... | @@ -240,13 +243,12 @@ if (!isset($map_file)) |
| 240 | 243 | //$cp->set_data(array("erro"=>"linkquebrado")); |
| 241 | 244 | //$cp->return_data(); |
| 242 | 245 | //cpjson(array("erro"=>"linkquebrado")); |
| 243 | - ilegal(); | |
| 244 | 246 | exit; |
| 245 | 247 | } |
| 246 | 248 | |
| 247 | 249 | include_once("classe_vermultilayer.php"); |
| 248 | 250 | include_once("classe_estatistica.php"); |
| 249 | -error_reporting(0); | |
| 251 | +//error_reporting(0); | |
| 250 | 252 | // |
| 251 | 253 | //identifica qual a url do i3geo |
| 252 | 254 | // |
| ... | ... | @@ -595,45 +597,51 @@ switch (strtoupper($funcao)) |
| 595 | 597 | <Mapa->adicionaTemaSHP> |
| 596 | 598 | */ |
| 597 | 599 | case "ADICIONATEMASHP": |
| 598 | - include_once("classe_mapa.php"); | |
| 599 | - copiaSeguranca($map_file); | |
| 600 | - $m = new Mapa($map_file); | |
| 601 | - //valida o caminho do arquivo shapefile | |
| 602 | - $nome = explode("/",$_pg["arq"]); | |
| 603 | - $nome = $nome[0]; | |
| 604 | - if(empty($nome)){ | |
| 605 | - $retorno = "erro"; | |
| 606 | - } | |
| 607 | - else{ | |
| 608 | - //remove o nome do caminho | |
| 609 | - $novo = explode("/",$_pg["arq"]); | |
| 610 | - $novo[0] = ""; | |
| 611 | - $_pg["arq"] = implode("/",$novo); | |
| 612 | - // | |
| 613 | - include(dirname(__FILE__)."/../ms_configura.php"); | |
| 614 | - $d = $navegadoresLocais[0]["drives"]; | |
| 615 | - $p = ""; | |
| 616 | - foreach($d as $n){ | |
| 617 | - if($n["nome"] == $nome){ | |
| 618 | - $p = $n["caminho"]; | |
| 619 | - } | |
| 600 | + if(!empty($navegadoresLocais)){ | |
| 601 | + //verifica se está cadastrado | |
| 602 | + $ipcliente = pegaIPcliente(); | |
| 603 | + $retorno = array(); | |
| 604 | + $ips = array(); | |
| 605 | + //pega os nomes de cada ip | |
| 606 | + include("../ms_configura.php"); | |
| 607 | + foreach ($navegadoresLocais["ips"] as $n){ | |
| 608 | + $ips[] = gethostbyname($n); | |
| 609 | + $ips[] = $n; | |
| 620 | 610 | } |
| 621 | - if($p != "" && file_exists($p)){ | |
| 622 | - | |
| 623 | - $retorno = $m->adicionaTemaSHP($p."/".$_pg["arq"]); | |
| 624 | - if ($retorno != "erro") { | |
| 625 | - $m->salva();$_SESSION["contadorsalva"]++;redesenhaMapa(); | |
| 611 | + if(in_array($ipcliente,$ips)){ | |
| 612 | + $drives = $navegadoresLocais["drives"]; | |
| 613 | + //pega o caminho | |
| 614 | + //nome | |
| 615 | + $split = explode("/",$_pg["arq"]); | |
| 616 | + if(empty($split[0]) || !in_array($split[0],array_keys($drives))){ | |
| 617 | + $retorno = array(); | |
| 626 | 618 | } |
| 627 | 619 | else{ |
| 628 | - $retorno = "erro.Nenhum dado espacializado foi encontrado."; | |
| 629 | - } | |
| 630 | 620 | |
| 631 | - } | |
| 632 | - else{ | |
| 633 | - $retorno = "erro"; | |
| 621 | + include_once("classe_mapa.php"); | |
| 622 | + copiaSeguranca($map_file); | |
| 623 | + $m = new Mapa($map_file); | |
| 624 | + $path = $split[0]; | |
| 625 | + $split[0] = ""; | |
| 626 | + $shp = implode("/",$split); | |
| 627 | + $shp = explode(".",$shp)[0].".shp"; | |
| 628 | + $path = $drives[$path] . $shp; | |
| 629 | + | |
| 630 | + $retorno = $m->adicionaTemaSHP($path); | |
| 631 | + if ($retorno != "erro") { | |
| 632 | + $m->salva(); | |
| 633 | + $_SESSION["contadorsalva"]++; | |
| 634 | + redesenhaMapa(); | |
| 635 | + } | |
| 636 | + else{ | |
| 637 | + $retorno = "erro.Nenhum dado espacializado foi encontrado."; | |
| 638 | + } | |
| 639 | + } | |
| 640 | + } else { | |
| 641 | + $retorno = array(); | |
| 634 | 642 | } |
| 635 | 643 | } |
| 636 | - break; | |
| 644 | + break; | |
| 637 | 645 | /* |
| 638 | 646 | Valor: ADICIONATEMAIMG |
| 639 | 647 | |
| ... | ... | @@ -642,17 +650,48 @@ switch (strtoupper($funcao)) |
| 642 | 650 | <Mapa->adicionaTemaIMG> |
| 643 | 651 | */ |
| 644 | 652 | case "ADICIONATEMAIMG": |
| 645 | - include_once("classe_mapa.php"); | |
| 646 | - copiaSeguranca($map_file); | |
| 647 | - $m = new Mapa($map_file); | |
| 648 | - $retorno = $m->adicionaTemaIMG($_pg["arq"]); | |
| 649 | - if ($retorno != "erro") | |
| 650 | - { | |
| 651 | - $m->salva();$_SESSION["contadorsalva"]++;redesenhaMapa(); | |
| 652 | - } | |
| 653 | - else | |
| 654 | - { | |
| 655 | - $retorno = "erro.Nenhum dado espacializado foi encontrado."; | |
| 653 | + if(!empty($navegadoresLocais)){ | |
| 654 | + //verifica se está cadastrado | |
| 655 | + $ipcliente = pegaIPcliente(); | |
| 656 | + $retorno = array(); | |
| 657 | + $ips = array(); | |
| 658 | + //pega os nomes de cada ip | |
| 659 | + include("../ms_configura.php"); | |
| 660 | + foreach ($navegadoresLocais["ips"] as $n){ | |
| 661 | + $ips[] = gethostbyname($n); | |
| 662 | + $ips[] = $n; | |
| 663 | + } | |
| 664 | + if(in_array($ipcliente,$ips)){ | |
| 665 | + $drives = $navegadoresLocais["drives"]; | |
| 666 | + //pega o caminho | |
| 667 | + //nome | |
| 668 | + $split = explode("/",$_pg["arq"]); | |
| 669 | + if(empty($split[0]) || !in_array($split[0],array_keys($drives))){ | |
| 670 | + $retorno = array(); | |
| 671 | + } | |
| 672 | + else{ | |
| 673 | + | |
| 674 | + include_once("classe_mapa.php"); | |
| 675 | + copiaSeguranca($map_file); | |
| 676 | + $m = new Mapa($map_file); | |
| 677 | + $path = $split[0]; | |
| 678 | + $split[0] = ""; | |
| 679 | + $shp = implode("/",$split); | |
| 680 | + $path = $drives[$path] . $shp; | |
| 681 | + error_log($path); | |
| 682 | + $retorno = $m->adicionaTemaIMG($path); | |
| 683 | + if ($retorno != "erro") { | |
| 684 | + $m->salva(); | |
| 685 | + $_SESSION["contadorsalva"]++; | |
| 686 | + redesenhaMapa(); | |
| 687 | + } | |
| 688 | + else{ | |
| 689 | + $retorno = "erro.Nenhum dado espacializado foi encontrado."; | |
| 690 | + } | |
| 691 | + } | |
| 692 | + } else { | |
| 693 | + $retorno = array(); | |
| 694 | + } | |
| 656 | 695 | } |
| 657 | 696 | break; |
| 658 | 697 | /* |
| ... | ... | @@ -1734,9 +1773,8 @@ switch (strtoupper($funcao)) |
| 1734 | 1773 | $editores = $_pg["editores"]; |
| 1735 | 1774 | $perfil = $_pg["perfil"]; |
| 1736 | 1775 | $idioma = $_pg["idioma"]; |
| 1737 | - | |
| 1738 | 1776 | $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); |
| 1739 | - $retorno = $m->procurartemasestrela($nivel,$fatorestrela); | |
| 1777 | + $retorno = $m->procurartemasestrela($_pg["nivel"],$_pg["fatorestrela"]); | |
| 1740 | 1778 | break; |
| 1741 | 1779 | /* |
| 1742 | 1780 | Valor: PEGAMAPAS |
| ... | ... | @@ -2092,6 +2130,7 @@ switch (strtoupper($funcao)) |
| 2092 | 2130 | } |
| 2093 | 2131 | } |
| 2094 | 2132 | } |
| 2133 | + | |
| 2095 | 2134 | $retorno = $m->listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista,$dadosDaClasse); |
| 2096 | 2135 | $retorno["legenda"] = $legenda; |
| 2097 | 2136 | break; |
| ... | ... | @@ -2427,6 +2466,19 @@ switch (strtoupper($funcao)) |
| 2427 | 2466 | } |
| 2428 | 2467 | $retorno = $r; |
| 2429 | 2468 | break; |
| 2469 | + case "CRIALEGENDAJSON": | |
| 2470 | + include_once("classe_legenda.php"); | |
| 2471 | + //para efeitos de compatibilidade com versões anteriores | |
| 2472 | + if(isset($_pg["template"])){ | |
| 2473 | + $_pg["templateLegenda"] = $_pg["template"]; | |
| 2474 | + } | |
| 2475 | + $m = new Legenda($map_file,$locaplic,$_pg["tema"]); | |
| 2476 | + $r = $m->criaLegendaJson($_pg["w"],$_pg["h"]); | |
| 2477 | + if(!$r){ | |
| 2478 | + $r = "erro. Legenda nao disponivel"; | |
| 2479 | + } | |
| 2480 | + $retorno = $r; | |
| 2481 | + break; | |
| 2430 | 2482 | /* |
| 2431 | 2483 | Valor: CRIALEGENDAIMAGEM |
| 2432 | 2484 | |
| ... | ... | @@ -2543,26 +2595,6 @@ switch (strtoupper($funcao)) |
| 2543 | 2595 | $retorno = $googleApiKey; |
| 2544 | 2596 | break; |
| 2545 | 2597 | /* |
| 2546 | - Valor: LISTADRIVES | |
| 2547 | - | |
| 2548 | - Pega a lista de drives registrados para o usuário atual. | |
| 2549 | - | |
| 2550 | - A lista de drives é definida no ms_configura e permite que o usuário navegue pelos arquivos do servidor. | |
| 2551 | - */ | |
| 2552 | - case "LISTADRIVES": | |
| 2553 | - include(dirname(__FILE__)."/../ms_configura.php"); | |
| 2554 | - //verifica se está cadastrado | |
| 2555 | - $ipcliente = pegaIPcliente(); | |
| 2556 | - $retorno = array(); | |
| 2557 | - foreach ($navegadoresLocais as $n) | |
| 2558 | - { | |
| 2559 | - if (gethostbyname($n["ip"]) == $ipcliente) | |
| 2560 | - { | |
| 2561 | - $retorno[] = $n["drives"]; | |
| 2562 | - } | |
| 2563 | - } | |
| 2564 | - break; | |
| 2565 | - /* | |
| 2566 | 2598 | Valor: LISTAINTERFACES |
| 2567 | 2599 | |
| 2568 | 2600 | Lista as interfaces de abertura de mapas | ... | ... |
classesphp/mapa_googleearth.php
| ... | ... | @@ -37,7 +37,7 @@ i3geo/classesphp/mapa_googleearth.php |
| 37 | 37 | */ |
| 38 | 38 | include("sani_request.php"); |
| 39 | 39 | //error_reporting(0); |
| 40 | -error_reporting(0); | |
| 40 | +//error_reporting(0); | |
| 41 | 41 | //para efeitos de compatibilidade |
| 42 | 42 | if (!function_exists('ms_GetVersion')){ |
| 43 | 43 | include_once ("carrega_ext.php"); |
| ... | ... | @@ -103,7 +103,7 @@ function retornaKml(){ |
| 103 | 103 | echo $kml; |
| 104 | 104 | } |
| 105 | 105 | function retornaWms($map_fileX,$postgis_mapa){ |
| 106 | - error_reporting(0); | |
| 106 | + //error_reporting(0); | |
| 107 | 107 | if(isset($_GET["bbox"])) |
| 108 | 108 | {$_GET["BBOX"] = $_GET["bbox"];} |
| 109 | 109 | if(isset($_GET["BBOX"])) | ... | ... |
classesphp/mapa_googlemaps.php
classesphp/mapa_inicia.php
| ... | ... | @@ -119,7 +119,7 @@ function iniciaMapa() |
| 119 | 119 | if(!isset($kmlurl)){ |
| 120 | 120 | $kmlurl = ""; |
| 121 | 121 | } |
| 122 | - error_reporting(0); | |
| 122 | + //error_reporting(0); | |
| 123 | 123 | if(!isset($interface)){ |
| 124 | 124 | $interface = ""; |
| 125 | 125 | } |
| ... | ... | @@ -191,7 +191,7 @@ function iniciaMapa() |
| 191 | 191 | $urli3geo = str_replace("/classesphp/mapa_controle.php","",$protocolo.$_SERVER["PHP_SELF"]); |
| 192 | 192 | //altera o tamanho do query map para ficar igual ao do mapa |
| 193 | 193 | include_once("classe_mapa.php"); |
| 194 | - error_reporting(0); | |
| 194 | + //error_reporting(0); | |
| 195 | 195 | if(!function_exists("sobeAnno")){ |
| 196 | 196 | include_once("funcoes_gerais.php"); |
| 197 | 197 | } |
| ... | ... | @@ -203,7 +203,7 @@ function iniciaMapa() |
| 203 | 203 | $m = new Mapa($map_file); |
| 204 | 204 | $m->mapa->setsize($w,$h); |
| 205 | 205 | } |
| 206 | - error_reporting(0); | |
| 206 | + //error_reporting(0); | |
| 207 | 207 | // |
| 208 | 208 | //verifica se a legenda deve ser embebida no mapa |
| 209 | 209 | // | ... | ... |
classesphp/mapa_openlayers.php
| ... | ... | @@ -64,7 +64,7 @@ include("sani_request.php"); |
| 64 | 64 | if (!function_exists('ms_GetVersion')){ |
| 65 | 65 | include_once ("carrega_ext.php"); |
| 66 | 66 | } |
| 67 | -error_reporting(0); | |
| 67 | +//error_reporting(0); | |
| 68 | 68 | inicializa(); |
| 69 | 69 | // |
| 70 | 70 | //calcula a extensao geografica com base no x,y,z |
| ... | ... | @@ -295,6 +295,10 @@ if(isset($_GET["map_size"])){ |
| 295 | 295 | |
| 296 | 296 | if(isset($_GET["mapext"])){ |
| 297 | 297 | $mapext = explode(" ",$_GET["mapext"]); |
| 298 | + //para evitar erro quando o mapa e continuo | |
| 299 | + if($mapext[0] == $mapext[2] && $mapext[1] == $mapext[3]){ | |
| 300 | + exit; | |
| 301 | + } | |
| 298 | 302 | $mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]); |
| 299 | 303 | } |
| 300 | 304 | // | ... | ... |
| ... | ... | @@ -0,0 +1,199 @@ |
| 1 | +<?php | |
| 2 | +// | |
| 3 | +//o aplicativo que abre a janela para acesso a lista de variaveis, nao necessita da variavel de sessao | |
| 4 | +// | |
| 5 | + | |
| 6 | +include ("sani_request.php"); | |
| 7 | +$_pg = array_merge ( $_GET, $_POST ); | |
| 8 | +$funcao = $_pg ["funcao"]; | |
| 9 | +$g_sid = $_pg ["g_sid"]; | |
| 10 | + | |
| 11 | +if (empty ( $g_sid ) && strtoupper($funcao) != "LISTAVARIAVEL") { | |
| 12 | + exit (); | |
| 13 | +} | |
| 14 | +if(!empty ( $g_sid )){ | |
| 15 | + session_name ( "i3GeoPHP" ); | |
| 16 | + session_id ( $g_sid ); | |
| 17 | + session_start (); | |
| 18 | + $perfil = $_SESSION ["perfil"]; | |
| 19 | + $_pg ["perfil"] = $perfil; | |
| 20 | + $map_file = $_SESSION ["map_file"]; | |
| 21 | + if (! file_exists ( $map_file )) { | |
| 22 | + exit (); | |
| 23 | + } | |
| 24 | +} | |
| 25 | +include (dirname ( __FILE__ ) . "/carrega_ext.php"); | |
| 26 | +if (! function_exists ( "sobeAnno" )) { | |
| 27 | + include (dirname ( __FILE__ ) . "/funcoes_gerais.php"); | |
| 28 | +} | |
| 29 | +if (! isset ( $map_file ) && strtoupper($funcao) != "LISTAVARIAVEL") { | |
| 30 | + ilegal (); | |
| 31 | + exit (); | |
| 32 | +} | |
| 33 | +include (dirname ( __FILE__ ) . "/../ms_configura.php"); | |
| 34 | +include (dirname ( __FILE__ ) . "/classe_metaestatinfo.php"); | |
| 35 | +$retorno = ""; | |
| 36 | + | |
| 37 | +switch (strtoupper ( $funcao )) { | |
| 38 | + case "LISTATIPOREGIAO" : | |
| 39 | + $m = new MetaestatInfo (); | |
| 40 | + $retorno = $m->listaTipoRegiao ( $_pg ["codigo_tipo_regiao"], false ); | |
| 41 | + retornaJSON ( $retorno ); | |
| 42 | + exit (); | |
| 43 | + break; | |
| 44 | + case "LISTAVARIAVEL" : | |
| 45 | + $m = new MetaestatInfo (); | |
| 46 | + if (empty ( $_pg ["filtro_esquema"] )) { | |
| 47 | + $_pg ["filtro_esquema"] = ""; | |
| 48 | + } | |
| 49 | + retornaJSON ( $m->listaVariavel ( $_pg ["codigo_variavel"], $_pg ["filtro_esquema"] ) ); | |
| 50 | + exit (); | |
| 51 | + break; | |
| 52 | + case "LISTAMEDIDAVARIAVEL" : | |
| 53 | + $m = new MetaestatInfo (); | |
| 54 | + retornaJSON ( $m->listaMedidaVariavel ( $_pg ["codigo_variavel"], $_pg ["id_medida_variavel"] ) ); | |
| 55 | + exit (); | |
| 56 | + break; | |
| 57 | + case "LISTAPARAMETRO" : | |
| 58 | + $m = new MetaestatInfo (); | |
| 59 | + retornaJSON ( $m->listaParametro ( $_pg ["id_medida_variavel"], $_pg ["id_parametro_medida"] ) ); | |
| 60 | + exit (); | |
| 61 | + break; | |
| 62 | + case "LISTAVALORESPARAMETRO" : | |
| 63 | + $m = new MetaestatInfo (); | |
| 64 | + retornaJSON ( $m->listaValoresParametro ( $_pg ["id_parametro_medida"] ) ); | |
| 65 | + exit (); | |
| 66 | + break; | |
| 67 | + case "LISTAUNIDADEMEDIDA" : | |
| 68 | + $m = new MetaestatInfo (); | |
| 69 | + retornaJSON ( $m->listaUnidadeMedida ( $_pg ["codigo_unidade_medida"] ) ); | |
| 70 | + exit (); | |
| 71 | + break; | |
| 72 | + case "LISTAFONTEINFO" : | |
| 73 | + $m = new MetaestatInfo (); | |
| 74 | + retornaJSON ( $m->listaFonteinfo ( $_pg ["id_fonteinfo"] ) ); | |
| 75 | + exit (); | |
| 76 | + break; | |
| 77 | + case "LISTAFONTEINFOMEDIDA" : | |
| 78 | + $m = new MetaestatInfo (); | |
| 79 | + retornaJSON ( $m->listaFonteinfoMedida ( $_pg ["id_medida_variavel"] ) ); | |
| 80 | + exit (); | |
| 81 | + break; | |
| 82 | + case "LISTATIPOPERIODO" : | |
| 83 | + $m = new MetaestatInfo (); | |
| 84 | + retornaJSON ( $m->listaTipoPeriodo ( $_pg ["codigo_tipo_periodo"] ) ); | |
| 85 | + exit (); | |
| 86 | + break; | |
| 87 | + case "LISTATIPOREGIAO" : | |
| 88 | + $m = new MetaestatInfo (); | |
| 89 | + retornaJSON ( $m->listaTipoRegiao ( $_pg ["codigo_tipo_regiao"] ) ); | |
| 90 | + exit (); | |
| 91 | + break; | |
| 92 | + case "LISTAHIERARQUIAREGIOES" : | |
| 93 | + $m = new MetaestatInfo (); | |
| 94 | + $regioes = $m->listaHierarquiaRegioes ( $_pg ["codigo_tipo_regiao"] ); | |
| 95 | + $valores = ""; | |
| 96 | + // se achou apenas uma regiao, pega os valores | |
| 97 | + if (count ( $regioes ) < 2 && $_pg ["codigo_tipo_regiao"] != "") { | |
| 98 | + $valores = $m->listaDadosRegiao ( $_pg ["codigo_tipo_regiao"], $_pg ["codigoregiaopai"], $_pg ["valorregiaopai"] ); | |
| 99 | + } | |
| 100 | + retornaJSON ( array ( | |
| 101 | + "regiaopai" => $_pg ["codigo_tipo_regiao"], | |
| 102 | + "regioes" => $regioes, | |
| 103 | + "valores" => $valores | |
| 104 | + ) ); | |
| 105 | + exit (); | |
| 106 | + break; | |
| 107 | + case "LISTAREGIOESMEDIDA" : | |
| 108 | + $m = new MetaestatInfo (); | |
| 109 | + retornaJSON ( $m->listaRegioesMedida ( $_pg ["id_medida_variavel"] ) ); | |
| 110 | + exit (); | |
| 111 | + break; | |
| 112 | + case "LISTAAGREGAREGIAO" : | |
| 113 | + $m = new MetaestatInfo (); | |
| 114 | + if (empty ( $_pg ["codigo_tipo_regiao"] )) { | |
| 115 | + $_pg ["codigo_tipo_regiao"] = ""; | |
| 116 | + } | |
| 117 | + retornaJSON ( $m->listaAgregaRegiao ( $_pg ["codigo_tipo_regiao"], $_pg ["id_agregaregiao"] ) ); | |
| 118 | + exit (); | |
| 119 | + case "LISTAMAPAS" : | |
| 120 | + $m = new MetaestatInfo (); | |
| 121 | + if (empty ( $_pg ["id_mapa"] )) { | |
| 122 | + $_pg ["id_mapa"] = ""; | |
| 123 | + } | |
| 124 | + retornaJSON ( $m->listaMapas ( $_pg ["id_mapa"] ) ); | |
| 125 | + exit (); | |
| 126 | + break; | |
| 127 | + case "LISTAGRUPOSMAPA" : | |
| 128 | + $m = new MetaestatInfo (); | |
| 129 | + retornaJSON ( $m->listaGruposMapa ( $_pg ["id_mapa"], $_pg ["id_mapa_grupo"] ) ); | |
| 130 | + exit (); | |
| 131 | + break; | |
| 132 | + case "LISTATEMASMAPA" : | |
| 133 | + $m = new MetaestatInfo (); | |
| 134 | + retornaJSON ( $m->listaTemasMapa ( $_pg ["id_mapa_grupo"], $_pg ["id_mapa_tema"] ) ); | |
| 135 | + exit (); | |
| 136 | + break; | |
| 137 | + // lista os templates que o usuario pode escolher para publicar mapas | |
| 138 | + // a pasta com alista e definida na variavel $metaestatTemplates localizada no ms_configura.php | |
| 139 | + case "LISTATEMPLATESMAPA" : | |
| 140 | + if (empty ( $metaestatTemplates )) { | |
| 141 | + $d = dirname ( __FILE__ ) . "/../../ferramentas/metaestat/templates"; | |
| 142 | + } else { | |
| 143 | + $d = $locaplic . $metaestatTemplates; | |
| 144 | + } | |
| 145 | + $arq = listaArquivos ( $d ); | |
| 146 | + $arq ["metaestatTemplates"] = $metaestatTemplates; | |
| 147 | + retornaJSON ( $arq ); | |
| 148 | + exit (); | |
| 149 | + break; | |
| 150 | + // lista os logos que o usuario pode escolher para publicar mapas | |
| 151 | + // a pasta com alista e definida na variavel $metaestatTemplates/logos localizada no ms_configura.php | |
| 152 | + case "LISTALOGOSMAPA" : | |
| 153 | + if (empty ( $metaestatTemplates )) { | |
| 154 | + $metaestatTemplates = dirname ( __FILE__ ) . "/../../ferramentas/metaestat/templates"; | |
| 155 | + } else { | |
| 156 | + $metaestatTemplates = $locaplic . $metaestatTemplates; | |
| 157 | + } | |
| 158 | + retornaJSON ( listaArquivos ( $metaestatTemplates . "/logos" ) ); | |
| 159 | + exit (); | |
| 160 | + break; | |
| 161 | + case "LISTACLASSIFICACAOMEDIDA" : | |
| 162 | + $m = new MetaestatInfo (); | |
| 163 | + retornaJSON ( $m->listaClassificacaoMedida ( $_pg ["id_medida_variavel"], $_pg ["id_classificacao"] ) ); | |
| 164 | + exit (); | |
| 165 | + break; | |
| 166 | + case "MAPFILEMEDIDAVARIAVEL" : | |
| 167 | + // $filtro usa aspas duplas para enviar os parametros | |
| 168 | + $_pg["filtro"] = str_replace ( '"', "'", $_pg ["filtro"] ); | |
| 169 | + $m = new MetaestatInfo (); | |
| 170 | + if (! isset ( $_pg["codigo_tipo_regiao"] )) { | |
| 171 | + $_pg["codigo_tipo_regiao"] = ""; | |
| 172 | + } | |
| 173 | + if (! isset ( $_pg["opacidade"] )) { | |
| 174 | + $_pg["opacidade"] = ""; | |
| 175 | + } | |
| 176 | + if ($_pg["cachemapfile"] === "nao") { | |
| 177 | + $_pg["cachemapfile"] = false; | |
| 178 | + } else { | |
| 179 | + $_pg["cachemapfile"] = true; | |
| 180 | + } | |
| 181 | + if ($_pg["formato"] == "json") { | |
| 182 | + retornaJSON ( $m->mapfileMedidaVariavel ( $_pg["id_medida_variavel"], $_pg["filtro"], $_GET ["todasascolunas"], $_GET ["tipolayer"], $_GET ["titulolayer"], $_pg["id_classificacao"], $_GET ["agruparpor"], $_pg["codigo_tipo_regiao"], $_GET ["opacidade"], false, $_GET ["cachemapfile"] ) ); | |
| 183 | + } | |
| 184 | + exit (); | |
| 185 | + break; | |
| 186 | +} | |
| 187 | +function retornaJSON($obj) { | |
| 188 | + global $locaplic; | |
| 189 | + include_once ($locaplic . "/pacotes/cpaint/JSON/json2.php"); | |
| 190 | + //error_reporting ( 0 ); | |
| 191 | + ob_end_clean (); | |
| 192 | + $j = new Services_JSON (); | |
| 193 | + $texto = $j->encode ( $obj ); | |
| 194 | + if (! mb_detect_encoding ( $texto, "UTF-8", true )) { | |
| 195 | + $texto = utf8_encode ( $texto ); | |
| 196 | + } | |
| 197 | + echo $texto; | |
| 198 | +} | |
| 199 | +?> | ... | ... |
classesphp/parse_cgi.php
| ... | ... | @@ -51,7 +51,7 @@ Exemplo: |
| 51 | 51 | |
| 52 | 52 | http://localhost/i3geo/classesphp/parse_cgi.php?g_sid=dgge4877dhhhgrjjey&map_size=500 500 |
| 53 | 53 | */ |
| 54 | -error_reporting(0); | |
| 54 | +//error_reporting(0); | |
| 55 | 55 | include_once (dirname(__FILE__)."/classesphp/sani_request.php"); |
| 56 | 56 | $_GET = array_merge($_GET,$_POST); |
| 57 | 57 | include_once ("carrega_ext.php"); | ... | ... |
classesphp/sani_request.php
| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | if (basename(__FILE__) == basename($_SERVER['SCRIPT_FILENAME'])){ |
| 3 | 3 | exit; |
| 4 | 4 | } |
| 5 | -error_reporting(0); | |
| 5 | +//error_reporting(0); | |
| 6 | 6 | $bl = array("exec ","exec(","password","select","_decode","passthru","shell_exec","escapeshellarg","escapeshellcmd","proc_close","proc_open","dl","popen","contents","delete","drop","update","insert","system",";"); |
| 7 | 7 | if (isset($_GET)){ |
| 8 | 8 | foreach(array_keys($_GET) as $k) { | ... | ... |
classesphp/wmswfs.php
| ... | ... | @@ -57,7 +57,7 @@ function gravaCacheWMS($servico) |
| 57 | 57 | if($dir_tmp == ""){ |
| 58 | 58 | include(dirname(__FILE__)."/../ms_configura.php"); |
| 59 | 59 | } |
| 60 | - error_reporting(0); | |
| 60 | + //error_reporting(0); | |
| 61 | 61 | try{ |
| 62 | 62 | $teste = explode("=",$servico); |
| 63 | 63 | if ( count($teste) > 1 ){ |
| ... | ... | @@ -483,7 +483,7 @@ function listaLayersWMS() |
| 483 | 483 | include_once(dirname(__FILE__)."/../admin/php/admin.php"); |
| 484 | 484 | include_once(dirname(__FILE__)."/../admin/php/webservices.php"); |
| 485 | 485 | |
| 486 | - error_reporting(0); | |
| 486 | + //error_reporting(0); | |
| 487 | 487 | if($tipo_ws != "WMSMETAESTAT" && $nivel < 2){ |
| 488 | 488 | if($wms_service_request == "erro") { |
| 489 | 489 | //registra a tentativa de acesso |
| ... | ... | @@ -591,7 +591,7 @@ function imprimeTag($r,$retorna) |
| 591 | 591 | } |
| 592 | 592 | function pegaTag($layer) |
| 593 | 593 | { |
| 594 | - error_reporting(0); | |
| 594 | + //error_reporting(0); | |
| 595 | 595 | $noslayer = $layer->childNodes; |
| 596 | 596 | $resultado = array( |
| 597 | 597 | "estiloas" => array(), | ... | ... |
classesphp/wscliente.php
| ... | ... | @@ -52,6 +52,7 @@ include_once("lews/wms_functions.php"); |
| 52 | 52 | include_once(dirname(__FILE__)."/../pacotes/cpaint/cpaint2.inc.php"); |
| 53 | 53 | include_once("carrega_ext.php"); |
| 54 | 54 | include(dirname(__FILE__)."/../ms_configura.php"); |
| 55 | + | |
| 55 | 56 | $cp = new cpaint(); |
| 56 | 57 | |
| 57 | 58 | $onlineresource = $_GET["onlineresource"]; |
| ... | ... | @@ -64,6 +65,7 @@ $rss = $_GET["rss"]; |
| 64 | 65 | //busca o getcapabilities de um wms |
| 65 | 66 | // |
| 66 | 67 | $funcao = $_GET["funcao"]; |
| 68 | + | |
| 67 | 69 | if ($funcao == "getcapabilities") |
| 68 | 70 | { |
| 69 | 71 | $cp->register('getcapabilities'); |
| ... | ... | @@ -379,9 +381,7 @@ if ($funcao == "listaRSSws") |
| 379 | 381 | { |
| 380 | 382 | $cp->register('listaRSSws'); |
| 381 | 383 | $cp->start(); |
| 382 | - if(ob_get_contents ()){ | |
| 383 | - ob_end_clean(); | |
| 384 | - } | |
| 384 | + ob_clean; | |
| 385 | 385 | $cp->return_data(); |
| 386 | 386 | exit; |
| 387 | 387 | } |
| ... | ... | @@ -493,6 +493,7 @@ Retorno: |
| 493 | 493 | function listaRSSwsARRAY() |
| 494 | 494 | { |
| 495 | 495 | global $cp,$rss,$locaplic,$tipo; |
| 496 | + | |
| 496 | 497 | if(!isset($tipo)){$tipo = "GEORSS";} |
| 497 | 498 | include_once("$locaplic/classesphp/funcoes_gerais.php"); |
| 498 | 499 | include_once("$locaplic/admin/php/xml.php"); | ... | ... |
css/black.css
| ... | ... | @@ -199,7 +199,7 @@ Botao de ligar desligar do tipo chave da arvore de camadas |
| 199 | 199 | #i3GEOcopyright { |
| 200 | 200 | position: absolute; |
| 201 | 201 | left: 10px; |
| 202 | - top: 2.8em; | |
| 202 | + top: 5px; | |
| 203 | 203 | display: block; |
| 204 | 204 | } |
| 205 | 205 | #buscaRapidaGuia { |
| ... | ... | @@ -259,11 +259,11 @@ no caso do OL3 |
| 259 | 259 | } |
| 260 | 260 | |
| 261 | 261 | .ol-zoom { |
| 262 | - top: 3.8em; | |
| 262 | + top: 2.8em; | |
| 263 | 263 | } |
| 264 | 264 | |
| 265 | 265 | .ol-i3GEOcontrols { |
| 266 | - top: 3.8em; | |
| 266 | + top: 2.8em; | |
| 267 | 267 | left: 3em; |
| 268 | 268 | width: auto; |
| 269 | 269 | } | ... | ... |
| ... | ... | @@ -0,0 +1,390 @@ |
| 1 | +/* | |
| 2 | +Para Bootstrap | |
| 3 | +*/ | |
| 4 | +a, a:focus, a:hover { | |
| 5 | + color: #008579; | |
| 6 | +} | |
| 7 | +.alert.alert-warning { | |
| 8 | + background-color: #de3601; | |
| 9 | +} | |
| 10 | +.form-group.form-group-lg label.control-label { | |
| 11 | + color: #767676; | |
| 12 | +} | |
| 13 | +.form-group.form-group-lg .checkbox label, .form-group.form-group-lg .radio label, | |
| 14 | + .form-group.form-group-lg label { | |
| 15 | + color: #767676; | |
| 16 | +} | |
| 17 | +.label, label { | |
| 18 | + color: #767676; | |
| 19 | +} | |
| 20 | + | |
| 21 | +h2 small { | |
| 22 | + color: #767676; | |
| 23 | +} | |
| 24 | +a .material-icons, a:focus .material-icons, a:hover .material-icons { | |
| 25 | + margin-top: 4px; | |
| 26 | +} | |
| 27 | + | |
| 28 | +hr { | |
| 29 | + margin: 0px; | |
| 30 | +} | |
| 31 | + | |
| 32 | +.list-group.condensed { | |
| 33 | + margin: 4px; | |
| 34 | +} | |
| 35 | + | |
| 36 | +.radio span, label.radio-inline span { | |
| 37 | + top: 4px; | |
| 38 | +} | |
| 39 | +/*Caso a camada tenha selecat*/ | |
| 40 | +.camadaSelecionada { | |
| 41 | + color: #4bd5d5 !Important; | |
| 42 | +} | |
| 43 | +/**************************/ | |
| 44 | +#i3GEOguiaMovel { | |
| 45 | + position: absolute; | |
| 46 | + display: block; | |
| 47 | + border: 0px solid white; | |
| 48 | + text-align: left; | |
| 49 | + z-index: 20000; | |
| 50 | + left: auto; | |
| 51 | + right: 2px; | |
| 52 | + top: 5px; | |
| 53 | + width: 350px; | |
| 54 | +} | |
| 55 | +#i3GEOguiaMovelMolde { | |
| 56 | + background-color: white; | |
| 57 | + right:0px; | |
| 58 | + top: -5px; | |
| 59 | + box-shadow: 0 2px 10px 0 #888888; | |
| 60 | + position: absolute; | |
| 61 | + display: none; | |
| 62 | + border: 0px solid white; | |
| 63 | + text-align: left; | |
| 64 | + z-index: 10000; | |
| 65 | +} | |
| 66 | +#i3GEOguiaMovelConteudo { | |
| 67 | + width:345px; | |
| 68 | + top: 0px; | |
| 69 | + overflow: auto; | |
| 70 | + display: none; | |
| 71 | + position: absolute; | |
| 72 | + border-color: gray; | |
| 73 | + border-width: 0px 0 0px 0px; | |
| 74 | + left: 0px; | |
| 75 | + height: 0px; | |
| 76 | + padding-left: 4px; | |
| 77 | + background-color: white; | |
| 78 | +} | |
| 79 | + | |
| 80 | +.nomeTema { | |
| 81 | + width: 265px; | |
| 82 | + vertical-align: middle; | |
| 83 | +} | |
| 84 | +/**************************/ | |
| 85 | +.i3GEOtemaComSel { | |
| 86 | + border-bottom: 1px solid cyan; | |
| 87 | +} | |
| 88 | + | |
| 89 | +.i3GEOfechaGuia { | |
| 90 | + cursor: pointer; | |
| 91 | + left: 0px; | |
| 92 | + top: 0px; | |
| 93 | + width: 95%; | |
| 94 | + min-height: 30px; | |
| 95 | + text-align: right; | |
| 96 | + font-size: 14pt; | |
| 97 | + margin-bottom: 10px; | |
| 98 | + padding: 2px; | |
| 99 | + font-family: Verdana, Arial, Helvetica, sans-serif; | |
| 100 | +} | |
| 101 | +/* | |
| 102 | +botoes da legenda | |
| 103 | +*/ | |
| 104 | +#legendaOpcoes button, #legendaOpcoes .yui-button, #legendaOpcoes .yuimenu { | |
| 105 | + width: 250px; | |
| 106 | + color: black; | |
| 107 | + border-radius : 0px; | |
| 108 | +} | |
| 109 | +#legendaOpcoes a { | |
| 110 | + color: black; | |
| 111 | +} | |
| 112 | +#legendaOpcoes .yui-button { | |
| 113 | + background-image : none; | |
| 114 | + border-radius : 0px; | |
| 115 | +} | |
| 116 | +#legendaOpcoes .first-child{ | |
| 117 | + border-radius : 0px; | |
| 118 | +} | |
| 119 | + | |
| 120 | +.i3GEOcorpoLegi { | |
| 121 | + min-height:200px; | |
| 122 | +} | |
| 123 | + | |
| 124 | +#corpoLegi { | |
| 125 | + overflow: hidden; | |
| 126 | +} | |
| 127 | + | |
| 128 | +/* | |
| 129 | +Botao de ligar desligar do tipo chave da legenda | |
| 130 | +*/ | |
| 131 | + | |
| 132 | +.i3GEOcorpoLegi .temaSwitch { | |
| 133 | + position: relative; | |
| 134 | + display: inline-block; | |
| 135 | + width: 30px; | |
| 136 | + height: 14px; | |
| 137 | +} | |
| 138 | + | |
| 139 | +.i3GEOcorpoLegi .temaSwitch input { | |
| 140 | + display:none; | |
| 141 | +} | |
| 142 | + | |
| 143 | +.i3GEOcorpoLegi .temaSlider { | |
| 144 | + position: absolute; | |
| 145 | + cursor: pointer; | |
| 146 | + top: 0; | |
| 147 | + left: 0; | |
| 148 | + right: 0; | |
| 149 | + bottom: 0; | |
| 150 | + background-color: #ccc; | |
| 151 | +} | |
| 152 | + | |
| 153 | +.i3GEOcorpoLegi .temaSlider:before { | |
| 154 | + position: absolute; | |
| 155 | + content: ""; | |
| 156 | + height: 12px; | |
| 157 | + width: 12px; | |
| 158 | + left: 1px; | |
| 159 | + bottom: 1px; | |
| 160 | + background-color: white; | |
| 161 | + -webkit-box-shadow: -1px 1px 3px -0px rgba(0, 0, 0, 0.46); | |
| 162 | + -moz-box-shadow: -1px 1px 3px -0px rgba(0, 0, 0, 0.46); | |
| 163 | + box-shadow: -1px 1px 3px -0px rgba(0, 0, 0, 0.46); | |
| 164 | +} | |
| 165 | + | |
| 166 | +.i3GEOcorpoLegi input:checked + .temaSlider { | |
| 167 | + background-color: rgb(177, 205, 205); | |
| 168 | +} | |
| 169 | + | |
| 170 | +.i3GEOcorpoLegi input:focus + .temaSlider { | |
| 171 | + box-shadow: 0 0 1px rgb(224, 235, 235); | |
| 172 | +} | |
| 173 | + | |
| 174 | +.i3GEOcorpoLegi input:checked + .temaSlider:before { | |
| 175 | + -webkit-transform: translateX(16px); | |
| 176 | + -ms-transform: translateX(16px); | |
| 177 | + transform: translateX(16px); | |
| 178 | +} | |
| 179 | + | |
| 180 | +.i3GEOcorpoLegi .temaSlider.round { | |
| 181 | + border-radius: 34px; | |
| 182 | +} | |
| 183 | + | |
| 184 | +.i3GEOcorpoLegi .temaSlider.round:before { | |
| 185 | + border-radius: 50%; | |
| 186 | +} | |
| 187 | + | |
| 188 | +.legendaTema { | |
| 189 | + font-size: 12px; | |
| 190 | + text-align: left; | |
| 191 | +} | |
| 192 | +.legendaTema label { | |
| 193 | + margin-left: 0px; | |
| 194 | +} | |
| 195 | +.i3GEOLegendaExcluiTema { | |
| 196 | + display: inline; | |
| 197 | +} | |
| 198 | + | |
| 199 | +/**/ | |
| 200 | +#i3GEOcopyright { | |
| 201 | + position: absolute; | |
| 202 | + left: 10px; | |
| 203 | + top: 5px; | |
| 204 | + display: block; | |
| 205 | +} | |
| 206 | +#buscaRapidaGuia { | |
| 207 | + margin: 5px; | |
| 208 | +} | |
| 209 | +#buscaRapidaGuia p { | |
| 210 | + font-size: 1.2em; | |
| 211 | + line-height: 1.2; | |
| 212 | + margin-top: 1em; | |
| 213 | +} | |
| 214 | + | |
| 215 | +/* | |
| 216 | +Barra de botoes de edicao vetorial do openlayers | |
| 217 | +*/ | |
| 218 | + | |
| 219 | +/* | |
| 220 | +no caso do OL3 | |
| 221 | +*/ | |
| 222 | +.ol-overlaycontainer-stopevent .olControlEditingToolbar1 { | |
| 223 | + left: auto; | |
| 224 | + position: absolute; | |
| 225 | + right: 0; | |
| 226 | + top: 10px; | |
| 227 | +} | |
| 228 | + | |
| 229 | +.ol-zoom { | |
| 230 | + top: 2.8em; | |
| 231 | +} | |
| 232 | + | |
| 233 | +.ol-i3GEOcontrols { | |
| 234 | + top: 2.8em; | |
| 235 | + left: 3em; | |
| 236 | + width: auto; | |
| 237 | +} | |
| 238 | + | |
| 239 | +.ol-touch .ol-zoomslider, .ol-zoomslider { | |
| 240 | + top: 8.2em; | |
| 241 | +} | |
| 242 | + | |
| 243 | +.ol-scale-line { | |
| 244 | + bottom: 2em; | |
| 245 | +} | |
| 246 | + | |
| 247 | +.olControlEditingToolbar1 div { | |
| 248 | + background-image: url(../mashups/openlayers.png); | |
| 249 | + background-repeat: no-repeat; | |
| 250 | + float: right; | |
| 251 | + right: 50px; | |
| 252 | + height: 29px; | |
| 253 | + margin: 2px; | |
| 254 | + width: 29px; | |
| 255 | + cursor: pointer; | |
| 256 | + top: 30px; | |
| 257 | +} | |
| 258 | + | |
| 259 | +/* | |
| 260 | +Configuracoes especificas dos elementos que ficam no rodape | |
| 261 | +*/ | |
| 262 | +#seletorIdiomas { | |
| 263 | + float: right; | |
| 264 | +} | |
| 265 | + | |
| 266 | +#escala { | |
| 267 | + width: 100px; | |
| 268 | + left: 7px; | |
| 269 | + text-align: left; | |
| 270 | + position: absolute; | |
| 271 | + bottom: 0px; | |
| 272 | + display: block; | |
| 273 | +} | |
| 274 | +#escala td { | |
| 275 | + float: left; | |
| 276 | +} | |
| 277 | +#escala span { | |
| 278 | + border: 0px solid white; | |
| 279 | +} | |
| 280 | +#escala input { | |
| 281 | + background: rgba(0, 60, 136, 0.5); | |
| 282 | + color: white; | |
| 283 | + font-family: Verdana,Arial,Helvetica,sans-serif; | |
| 284 | + font-size: 1em; | |
| 285 | + margin: 0; | |
| 286 | + border: 0px solid white; | |
| 287 | + box-shadow: none; | |
| 288 | + text-align: center; | |
| 289 | + height: 1.8em; | |
| 290 | +} | |
| 291 | +#i3GEOcompartilhar { | |
| 292 | + border: 0px solid white; | |
| 293 | + z-index: 20000; | |
| 294 | +} | |
| 295 | +#i3GEOcompartilhar td { | |
| 296 | + background: rgba(0, 60, 136, 0.5); | |
| 297 | +} | |
| 298 | +.i3GeoMascaraCoord { | |
| 299 | + width: 100%; | |
| 300 | +} | |
| 301 | +.i3GeoMascaraCoord td { | |
| 302 | + background: rgba(0, 60, 136, 0.5); | |
| 303 | + color: white; | |
| 304 | +} | |
| 305 | +.i3GeoMascaraCoord input { | |
| 306 | + background: rgba(0, 60, 136, 0.5); | |
| 307 | + color: white; | |
| 308 | + font-family: Verdana,Arial,Helvetica,sans-serif; | |
| 309 | + font-size: 1em; | |
| 310 | + margin: 0; | |
| 311 | + border: 0px solid white; | |
| 312 | + box-shadow: none; | |
| 313 | +} | |
| 314 | +.i3GeoMascaraCoord span { | |
| 315 | + border: 0px solid white; | |
| 316 | +} | |
| 317 | +.contemCaixaTipoCoord { | |
| 318 | + overflow: hidden; | |
| 319 | + width: 4em; | |
| 320 | + background-color: rgba(0, 60, 136, 0.5); | |
| 321 | +} | |
| 322 | +.i3GeoMascaraCoord select { | |
| 323 | + border: 0px solid #B4B4B4; | |
| 324 | + left: 0px; | |
| 325 | + width: 4em; | |
| 326 | + background-color: rgba(0, 60, 136, 0.5); | |
| 327 | + box-shadow: none !important; | |
| 328 | + opacity: 0.8 !important; | |
| 329 | + color: white; | |
| 330 | + height: auto; | |
| 331 | +} | |
| 332 | +.i3GeoMascaraCoord tr { | |
| 333 | + border: 0px solid white; | |
| 334 | +} | |
| 335 | +#localizarxy { | |
| 336 | + z-index : 50; | |
| 337 | + color: white; | |
| 338 | + position: absolute; | |
| 339 | + bottom: 0px; | |
| 340 | + width: 450px; | |
| 341 | + left: auto; | |
| 342 | + right: 0px; | |
| 343 | + text-align: left; | |
| 344 | + font-size: 1em; | |
| 345 | + display: inline; | |
| 346 | + height: 1.8em; | |
| 347 | +} | |
| 348 | +#localizarxy input, #localizarxy select { | |
| 349 | + font-size: 1em; | |
| 350 | + height: 1.8em; | |
| 351 | +} | |
| 352 | + | |
| 353 | + | |
| 354 | +#menuajudaMenu{ | |
| 355 | + color: white; | |
| 356 | +} | |
| 357 | +.comboTemasCabecalho .yuimenuitemlabel{ | |
| 358 | + color: black; | |
| 359 | +} | |
| 360 | +.comboTemasCabecalho .yuimenuitemlabel:visited{ | |
| 361 | + color: black; | |
| 362 | +} | |
| 363 | + | |
| 364 | +.temaArrastar { | |
| 365 | + text-align: left; | |
| 366 | +} | |
| 367 | +@media print { | |
| 368 | + -webkit-print-color-adjust:exact; | |
| 369 | +} | |
| 370 | +/* === For phones =================================== */ | |
| 371 | +@media ( max-width : 767px) { | |
| 372 | +#i3GEOguiaMovel { | |
| 373 | + width: 100%; | |
| 374 | +} | |
| 375 | +#i3GEOguiaMovelConteudo { | |
| 376 | + width:95%; | |
| 377 | +} | |
| 378 | +.nomeTema { | |
| 379 | + width: 235px; | |
| 380 | + vertical-align: middle; | |
| 381 | +} | |
| 382 | +/* === For tablets ================================== */ | |
| 383 | +@media ( min-width : 768px) and (max-width:991px) { | |
| 384 | + | |
| 385 | +} | |
| 386 | + | |
| 387 | +/* === For desktops ================================== */ | |
| 388 | +@media ( min-width : 992px) { | |
| 389 | + | |
| 390 | +} | |
| 0 | 391 | \ No newline at end of file | ... | ... |
css/geral.css
| ... | ... | @@ -652,7 +652,6 @@ A:hover { |
| 652 | 652 | img { |
| 653 | 653 | border: 0px solid #FFFFFF; |
| 654 | 654 | border-width: 0; |
| 655 | - cursor: pointer | |
| 656 | 655 | } |
| 657 | 656 | |
| 658 | 657 | table { |
| ... | ... | @@ -664,7 +663,6 @@ table { |
| 664 | 663 | } |
| 665 | 664 | |
| 666 | 665 | div { |
| 667 | - text-align: center; | |
| 668 | 666 | border: 0px solid #FFFFFF; |
| 669 | 667 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 670 | 668 | position: relative; |
| ... | ... | @@ -676,12 +674,7 @@ i { |
| 676 | 674 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 677 | 675 | } |
| 678 | 676 | |
| 679 | -P { | |
| 680 | - COLOR: #2F4632; | |
| 681 | - text-align: center; | |
| 682 | - font-size: 10px; | |
| 683 | - font-family: Verdana, Arial, Helvetica, sans-serif; | |
| 684 | -} | |
| 677 | + | |
| 685 | 678 | |
| 686 | 679 | H1 { |
| 687 | 680 | COLOR: #2F4632; |
| ... | ... | @@ -1401,40 +1394,7 @@ h1 { |
| 1401 | 1394 | background-size: 16px 144px; |
| 1402 | 1395 | } |
| 1403 | 1396 | } |
| 1404 | -#i3GEOguiaMovel { | |
| 1405 | - position: absolute; | |
| 1406 | - display: block; | |
| 1407 | - border: 0px solid white; | |
| 1408 | - text-align: left; | |
| 1409 | - z-index: 20000; | |
| 1410 | - left: auto; | |
| 1411 | - right: 2px; | |
| 1412 | - top: 50px; | |
| 1413 | - width: 350px; | |
| 1414 | -} | |
| 1415 | -#i3GEOguiaMovelMolde { | |
| 1416 | - background-color: white; | |
| 1417 | - right:0px; | |
| 1418 | - top: -50px; | |
| 1419 | - box-shadow: 0 2px 10px 0 #888888; | |
| 1420 | - position: absolute; | |
| 1421 | - display: none; | |
| 1422 | - border: 0px solid white; | |
| 1423 | - text-align: left; | |
| 1424 | - z-index: 10000; | |
| 1425 | -} | |
| 1426 | -#i3GEOguiaMovelConteudo { | |
| 1427 | - width:345px; | |
| 1428 | - top: 0px; | |
| 1429 | - overflow: auto; | |
| 1430 | - display: none; | |
| 1431 | - position: absolute; | |
| 1432 | - border-color: gray; | |
| 1433 | - border-width: 0px 0 0px 0px; | |
| 1434 | - left: 0px; | |
| 1435 | - height: 0px; | |
| 1436 | - padding-left: 4px; | |
| 1437 | -} | |
| 1397 | + | |
| 1438 | 1398 | /* esconde na impressao */ |
| 1439 | 1399 | @media print { |
| 1440 | 1400 | .noprint { |
| ... | ... | @@ -1464,10 +1424,22 @@ h1 { |
| 1464 | 1424 | #i3GEOcompartilhar { |
| 1465 | 1425 | display: none !important; |
| 1466 | 1426 | } |
| 1467 | - #i3GEOguiaMovel { | |
| 1427 | + .iconesGuiaMovel { | |
| 1468 | 1428 | display: none !important; |
| 1469 | 1429 | } |
| 1470 | 1430 | #localizarxy { |
| 1471 | 1431 | display: none !important; |
| 1472 | 1432 | } |
| 1433 | + .i3GEOfechaGuia { | |
| 1434 | + display: none !important; | |
| 1435 | + } | |
| 1436 | + input[type="radio"] { | |
| 1437 | + display: none !important; | |
| 1438 | + } | |
| 1439 | + input[type="checkbox"] { | |
| 1440 | + display: none !important; | |
| 1441 | + } | |
| 1442 | + .legenda > label + input[type="checkbox"]:disabled { | |
| 1443 | + display: none !important; | |
| 1444 | + } | |
| 1473 | 1445 | } | ... | ... |
css/i3geo6.css.php
| 1 | -<?php error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header("Content-type: text/css"); ?>input{ | |
| 1 | +<?php //error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header("Content-type: text/css"); ?>input{ | |
| 2 | 2 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 3 | 3 | } |
| 4 | 4 | input[type=text], textarea, input[type=number]{ | ... | ... |
css/i3geo7.css
| ... | ... | @@ -8,8 +8,7 @@ input[type=text], textarea, input[type=number]{ |
| 8 | 8 | -o-user-select: text; |
| 9 | 9 | user-select: text; |
| 10 | 10 | } |
| 11 | -input[type=text] { | |
| 12 | -font-size: 10px; | |
| 11 | +.bd input[type=text] { | |
| 13 | 12 | color: #2F4632; |
| 14 | 13 | background-color: rgb(250, 250, 250); |
| 15 | 14 | padding: 0; |
| ... | ... | @@ -849,7 +848,6 @@ outline : none; |
| 849 | 848 | img { |
| 850 | 849 | border: 0px solid #FFFFFF; |
| 851 | 850 | border-width: 0; |
| 852 | -cursor: pointer | |
| 853 | 851 | } |
| 854 | 852 | table { |
| 855 | 853 | text-align: center; |
| ... | ... | @@ -859,7 +857,6 @@ margin: 0px; |
| 859 | 857 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 860 | 858 | } |
| 861 | 859 | div { |
| 862 | -text-align: center; | |
| 863 | 860 | border: 0px solid #FFFFFF; |
| 864 | 861 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 865 | 862 | position: relative; |
| ... | ... | @@ -869,12 +866,6 @@ color: #660000; |
| 869 | 866 | BACKGROUND-COLOR: #ffffcc; |
| 870 | 867 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 871 | 868 | } |
| 872 | -P { | |
| 873 | -COLOR: #2F4632; | |
| 874 | -text-align: center; | |
| 875 | -font-size: 10px; | |
| 876 | -font-family: Verdana, Arial, Helvetica, sans-serif; | |
| 877 | -} | |
| 878 | 869 | H1 { |
| 879 | 870 | COLOR: #2F4632; |
| 880 | 871 | text-align: left; |
| ... | ... | @@ -1514,40 +1505,6 @@ background: transparent url("../imagens/menuarodwn8_nrm_1.gif") no-repeat scroll |
| 1514 | 1505 | background-size: 16px 144px; |
| 1515 | 1506 | } |
| 1516 | 1507 | } |
| 1517 | -#i3GEOguiaMovel { | |
| 1518 | -position: absolute; | |
| 1519 | -display: block; | |
| 1520 | -border: 0px solid white; | |
| 1521 | -text-align: left; | |
| 1522 | -z-index: 20000; | |
| 1523 | -left: auto; | |
| 1524 | -right: 2px; | |
| 1525 | -top: 50px; | |
| 1526 | -width: 350px; | |
| 1527 | -} | |
| 1528 | -#i3GEOguiaMovelMolde { | |
| 1529 | -background-color: white; | |
| 1530 | -right:0px; | |
| 1531 | -top: -50px; | |
| 1532 | -box-shadow: 0 2px 10px 0 #888888; | |
| 1533 | -position: absolute; | |
| 1534 | -display: none; | |
| 1535 | -border: 0px solid white; | |
| 1536 | -text-align: left; | |
| 1537 | -z-index: 10000; | |
| 1538 | -} | |
| 1539 | -#i3GEOguiaMovelConteudo { | |
| 1540 | -width:345px; | |
| 1541 | -top: 0px; | |
| 1542 | -overflow: auto; | |
| 1543 | -display: none; | |
| 1544 | -position: absolute; | |
| 1545 | -border-color: gray; | |
| 1546 | -border-width: 0px 0 0px 0px; | |
| 1547 | -left: 0px; | |
| 1548 | -height: 0px; | |
| 1549 | -padding-left: 4px; | |
| 1550 | -} | |
| 1551 | 1508 | /* esconde na impressao */ |
| 1552 | 1509 | @media print { |
| 1553 | 1510 | .noprint { |
| ... | ... | @@ -1577,12 +1534,24 @@ display: none !important; |
| 1577 | 1534 | #i3GEOcompartilhar { |
| 1578 | 1535 | display: none !important; |
| 1579 | 1536 | } |
| 1580 | -#i3GEOguiaMovel { | |
| 1537 | +.iconesGuiaMovel { | |
| 1581 | 1538 | display: none !important; |
| 1582 | 1539 | } |
| 1583 | 1540 | #localizarxy { |
| 1584 | 1541 | display: none !important; |
| 1585 | 1542 | } |
| 1543 | +.i3GEOfechaGuia { | |
| 1544 | +display: none !important; | |
| 1545 | +} | |
| 1546 | +input[type="radio"] { | |
| 1547 | +display: none !important; | |
| 1548 | +} | |
| 1549 | +input[type="checkbox"] { | |
| 1550 | +display: none !important; | |
| 1551 | +} | |
| 1552 | +.legenda > label + input[type="checkbox"]:disabled { | |
| 1553 | +display: none !important; | |
| 1554 | +} | |
| 1586 | 1555 | } |
| 1587 | 1556 | #abreJanelaLegenda,#localizar,#barraedicao,#abregoogleearth,#uploadgpx,#metar,#carouselTemas,#identificaBalao,#rota,#buscafotos,#area,#confluence,#scielo,#wiki,#inseregrafico,#realca,#reinicia,#google,#zoomtot,#pan,#zoomli,#zoomlo,#zoomiauto,#zoomoauto,#identifica,#lentei,#reinicia,#exten,#selecao,#inserexy,#textofid,#mede,#perfil,#cruza,#tamanho,#imprimir,#salva,#carrega,#referencia,#pegaimagens,#v3d |
| 1588 | 1557 | { | ... | ... |
css/i3geo7.css.php
| 1 | -<?php error_reporting(0);if(extension_loaded('zlib')){ob_start('ob_gzhandler');} header("Content-type: text/css"); ?>input{ | |
| 1 | +<?php header("Content-type: text/css"); ?>input{ | |
| 2 | 2 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 3 | 3 | } |
| 4 | 4 | input[type=text], textarea, input[type=number]{ |
| ... | ... | @@ -8,8 +8,7 @@ input[type=text], textarea, input[type=number]{ |
| 8 | 8 | -o-user-select: text; |
| 9 | 9 | user-select: text; |
| 10 | 10 | } |
| 11 | -input[type=text] { | |
| 12 | -font-size: 10px; | |
| 11 | +.bd input[type=text] { | |
| 13 | 12 | color: #2F4632; |
| 14 | 13 | background-color: rgb(250, 250, 250); |
| 15 | 14 | padding: 0; |
| ... | ... | @@ -849,7 +848,6 @@ outline : none; |
| 849 | 848 | img { |
| 850 | 849 | border: 0px solid #FFFFFF; |
| 851 | 850 | border-width: 0; |
| 852 | -cursor: pointer | |
| 853 | 851 | } |
| 854 | 852 | table { |
| 855 | 853 | text-align: center; |
| ... | ... | @@ -859,7 +857,6 @@ margin: 0px; |
| 859 | 857 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 860 | 858 | } |
| 861 | 859 | div { |
| 862 | -text-align: center; | |
| 863 | 860 | border: 0px solid #FFFFFF; |
| 864 | 861 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 865 | 862 | position: relative; |
| ... | ... | @@ -869,12 +866,6 @@ color: #660000; |
| 869 | 866 | BACKGROUND-COLOR: #ffffcc; |
| 870 | 867 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 871 | 868 | } |
| 872 | -P { | |
| 873 | -COLOR: #2F4632; | |
| 874 | -text-align: center; | |
| 875 | -font-size: 10px; | |
| 876 | -font-family: Verdana, Arial, Helvetica, sans-serif; | |
| 877 | -} | |
| 878 | 869 | H1 { |
| 879 | 870 | COLOR: #2F4632; |
| 880 | 871 | text-align: left; |
| ... | ... | @@ -1514,40 +1505,6 @@ background: transparent url("../imagens/menuarodwn8_nrm_1.gif") no-repeat scroll |
| 1514 | 1505 | background-size: 16px 144px; |
| 1515 | 1506 | } |
| 1516 | 1507 | } |
| 1517 | -#i3GEOguiaMovel { | |
| 1518 | -position: absolute; | |
| 1519 | -display: block; | |
| 1520 | -border: 0px solid white; | |
| 1521 | -text-align: left; | |
| 1522 | -z-index: 20000; | |
| 1523 | -left: auto; | |
| 1524 | -right: 2px; | |
| 1525 | -top: 50px; | |
| 1526 | -width: 350px; | |
| 1527 | -} | |
| 1528 | -#i3GEOguiaMovelMolde { | |
| 1529 | -background-color: white; | |
| 1530 | -right:0px; | |
| 1531 | -top: -50px; | |
| 1532 | -box-shadow: 0 2px 10px 0 #888888; | |
| 1533 | -position: absolute; | |
| 1534 | -display: none; | |
| 1535 | -border: 0px solid white; | |
| 1536 | -text-align: left; | |
| 1537 | -z-index: 10000; | |
| 1538 | -} | |
| 1539 | -#i3GEOguiaMovelConteudo { | |
| 1540 | -width:345px; | |
| 1541 | -top: 0px; | |
| 1542 | -overflow: auto; | |
| 1543 | -display: none; | |
| 1544 | -position: absolute; | |
| 1545 | -border-color: gray; | |
| 1546 | -border-width: 0px 0 0px 0px; | |
| 1547 | -left: 0px; | |
| 1548 | -height: 0px; | |
| 1549 | -padding-left: 4px; | |
| 1550 | -} | |
| 1551 | 1508 | /* esconde na impressao */ |
| 1552 | 1509 | @media print { |
| 1553 | 1510 | .noprint { |
| ... | ... | @@ -1577,12 +1534,24 @@ display: none !important; |
| 1577 | 1534 | #i3GEOcompartilhar { |
| 1578 | 1535 | display: none !important; |
| 1579 | 1536 | } |
| 1580 | -#i3GEOguiaMovel { | |
| 1537 | +.iconesGuiaMovel { | |
| 1581 | 1538 | display: none !important; |
| 1582 | 1539 | } |
| 1583 | 1540 | #localizarxy { |
| 1584 | 1541 | display: none !important; |
| 1585 | 1542 | } |
| 1543 | +.i3GEOfechaGuia { | |
| 1544 | +display: none !important; | |
| 1545 | +} | |
| 1546 | +input[type="radio"] { | |
| 1547 | +display: none !important; | |
| 1548 | +} | |
| 1549 | +input[type="checkbox"] { | |
| 1550 | +display: none !important; | |
| 1551 | +} | |
| 1552 | +.legenda > label + input[type="checkbox"]:disabled { | |
| 1553 | +display: none !important; | |
| 1554 | +} | |
| 1586 | 1555 | } |
| 1587 | 1556 | #abreJanelaLegenda,#localizar,#barraedicao,#abregoogleearth,#uploadgpx,#metar,#carouselTemas,#identificaBalao,#rota,#buscafotos,#area,#confluence,#scielo,#wiki,#inseregrafico,#realca,#reinicia,#google,#zoomtot,#pan,#zoomli,#zoomlo,#zoomiauto,#zoomoauto,#identifica,#lentei,#reinicia,#exten,#selecao,#inserexy,#textofid,#mede,#perfil,#cruza,#tamanho,#imprimir,#salva,#carrega,#referencia,#pegaimagens,#v3d |
| 1588 | 1557 | { | ... | ... |
css/i3geo_ferramentas7.css
| ... | ... | @@ -9,8 +9,7 @@ input[type=text], textarea, input[type=number]{ |
| 9 | 9 | user-select: text; |
| 10 | 10 | } |
| 11 | 11 | |
| 12 | -input[type=text] { | |
| 13 | - font-size: 10px; | |
| 12 | +.bd input[type=text] { | |
| 14 | 13 | color: #2F4632; |
| 15 | 14 | background-color: rgb(250, 250, 250); |
| 16 | 15 | padding: 0; |
| ... | ... | @@ -942,7 +941,6 @@ A:hover { |
| 942 | 941 | img { |
| 943 | 942 | border: 0px solid #FFFFFF; |
| 944 | 943 | border-width: 0; |
| 945 | - cursor: pointer | |
| 946 | 944 | } |
| 947 | 945 | |
| 948 | 946 | table { |
| ... | ... | @@ -954,7 +952,6 @@ table { |
| 954 | 952 | } |
| 955 | 953 | |
| 956 | 954 | div { |
| 957 | - text-align: center; | |
| 958 | 955 | border: 0px solid #FFFFFF; |
| 959 | 956 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 960 | 957 | position: relative; |
| ... | ... | @@ -966,12 +963,7 @@ i { |
| 966 | 963 | font-family: Verdana, Arial, Helvetica, sans-serif; |
| 967 | 964 | } |
| 968 | 965 | |
| 969 | -P { | |
| 970 | - COLOR: #2F4632; | |
| 971 | - text-align: center; | |
| 972 | - font-size: 10px; | |
| 973 | - font-family: Verdana, Arial, Helvetica, sans-serif; | |
| 974 | -} | |
| 966 | + | |
| 975 | 967 | |
| 976 | 968 | H1 { |
| 977 | 969 | COLOR: #2F4632; |
| ... | ... | @@ -1691,40 +1683,7 @@ h1 { |
| 1691 | 1683 | background-size: 16px 144px; |
| 1692 | 1684 | } |
| 1693 | 1685 | } |
| 1694 | -#i3GEOguiaMovel { | |
| 1695 | - position: absolute; | |
| 1696 | - display: block; | |
| 1697 | - border: 0px solid white; | |
| 1698 | - text-align: left; | |
| 1699 | - z-index: 20000; | |
| 1700 | - left: auto; | |
| 1701 | - right: 2px; | |
| 1702 | - top: 50px; | |
| 1703 | - width: 350px; | |
| 1704 | -} | |
| 1705 | -#i3GEOguiaMovelMolde { | |
| 1706 | - background-color: white; | |
| 1707 | - right:0px; | |
| 1708 | - top: -50px; | |
| 1709 | - box-shadow: 0 2px 10px 0 #888888; | |
| 1710 | - position: absolute; | |
| 1711 | - display: none; | |
| 1712 | - border: 0px solid white; | |
| 1713 | - text-align: left; | |
| 1714 | - z-index: 10000; | |
| 1715 | -} | |
| 1716 | -#i3GEOguiaMovelConteudo { | |
| 1717 | - width:345px; | |
| 1718 | - top: 0px; | |
| 1719 | - overflow: auto; | |
| 1720 | - display: none; | |
| 1721 | - position: absolute; | |
| 1722 | - border-color: gray; | |
| 1723 | - border-width: 0px 0 0px 0px; | |
| 1724 | - left: 0px; | |
| 1725 | - height: 0px; | |
| 1726 | - padding-left: 4px; | |
| 1727 | -} | |
| 1686 | + | |
| 1728 | 1687 | /* esconde na impressao */ |
| 1729 | 1688 | @media print { |
| 1730 | 1689 | .noprint { |
| ... | ... | @@ -1754,12 +1713,24 @@ h1 { |
| 1754 | 1713 | #i3GEOcompartilhar { |
| 1755 | 1714 | display: none !important; |
| 1756 | 1715 | } |
| 1757 | - #i3GEOguiaMovel { | |
| 1716 | + .iconesGuiaMovel { | |
| 1758 | 1717 | display: none !important; |
| 1759 | 1718 | } |
| 1760 | 1719 | #localizarxy { |
| 1761 | 1720 | display: none !important; |
| 1762 | 1721 | } |
| 1722 | + .i3GEOfechaGuia { | |
| 1723 | + display: none !important; | |
| 1724 | + } | |
| 1725 | + input[type="radio"] { | |
| 1726 | + display: none !important; | |
| 1727 | + } | |
| 1728 | + input[type="checkbox"] { | |
| 1729 | + display: none !important; | |
| 1730 | + } | |
| 1731 | + .legenda > label + input[type="checkbox"]:disabled { | |
| 1732 | + display: none !important; | |
| 1733 | + } | |
| 1763 | 1734 | } |
| 1764 | 1735 | |
| 1765 | 1736 | /* | ... | ... |
css/input.css
exemplos/index.php
ferramentas/3d/3d.php
ferramentas/animagif/exec.php
| ... | ... | @@ -203,7 +203,7 @@ for ($i=0;$i < $numlayers;$i++){ |
| 203 | 203 | if (!empty($postgis_mapa)){ |
| 204 | 204 | if ($layern->connectiontype == MS_POSTGIS){ |
| 205 | 205 | $lcon = $layern->connection; |
| 206 | - error_reporting(0); | |
| 206 | + //error_reporting(0); | |
| 207 | 207 | if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ |
| 208 | 208 | if(($lcon == " ") || ($lcon == "")){ |
| 209 | 209 | $layern->set("connection",$postgis_mapa); | ... | ... |
ferramentas/animagif/manutencao.php
ferramentas/aplicarsld/upload.php
| ... | ... | @@ -2,7 +2,7 @@ |
| 2 | 2 | include_once (dirname(__FILE__)."/../../classesphp/sani_request.php"); |
| 3 | 3 | require_once(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php"); |
| 4 | 4 | include_once (dirname(__FILE__)."/../../classesphp/carrega_ext.php"); |
| 5 | -error_reporting(0); | |
| 5 | +//error_reporting(0); | |
| 6 | 6 | $_GET = array_merge($_GET,$_POST); |
| 7 | 7 | session_name("i3GeoPHP"); |
| 8 | 8 | if (isset($_GET["g_sid"])) | ... | ... |
ferramentas/buscafotos/funcoes.php
| 1 | 1 | <?php |
| 2 | -error_reporting(0); | |
| 2 | +//error_reporting(0); | |
| 3 | 3 | include_once (dirname(__FILE__)."/../../classesphp/sani_request.php"); |
| 4 | 4 | $_GET = array_merge($_GET,$_POST); |
| 5 | 5 | require_once(dirname(__FILE__)."/../../pacotes/cpaint/cpaint2.inc.php"); |
| ... | ... | @@ -7,7 +7,7 @@ require_once(dirname(__FILE__)."/../../ms_configura.php"); |
| 7 | 7 | include("../blacklist.php"); |
| 8 | 8 | verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false); |
| 9 | 9 | require_once(dirname(__FILE__)."/../../pacotes/phpflickr/phpFlickr.php"); |
| 10 | -error_reporting(0); | |
| 10 | +//error_reporting(0); | |
| 11 | 11 | |
| 12 | 12 | |
| 13 | 13 | $funcao = $_GET["funcao"]; | ... | ... |
ferramentas/importarwmc/upload.php
| 1 | 1 | <?php |
| 2 | 2 | require_once(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php"); |
| 3 | 3 | include_once (dirname(__FILE__)."/../../classesphp/carrega_ext.php"); |
| 4 | -error_reporting(0); | |
| 4 | +//error_reporting(0); | |
| 5 | 5 | session_name("i3GeoPHP"); |
| 6 | 6 | if (isset($_POST["g_sid"])) |
| 7 | 7 | {session_id($_POST["g_sid"]);} |
| ... | ... | @@ -18,7 +18,7 @@ $map_file = $_SESSION["map_file"]; |
| 18 | 18 | <p> |
| 19 | 19 | <?php |
| 20 | 20 | include_once (dirname(__FILE__)."/../../classesphp/sani_request.php"); |
| 21 | -error_reporting(0); | |
| 21 | +//error_reporting(0); | |
| 22 | 22 | require_once (dirname(__FILE__)."/../../ms_configura.php"); |
| 23 | 23 | include(dirname(__FILE__)."/../blacklist.php"); |
| 24 | 24 | verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false); | ... | ... |