Commit b2da34b095c9ce710a896ee000de74ac5bed0447

Authored by Edmar Moretti
1 parent 3ec6ae4f

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
admin/admin.db 100644 → 100755
No preview for this file type
admin/php/admin.php
@@ -41,7 +41,7 @@ if(!file_exists($dir_tmp)){ @@ -41,7 +41,7 @@ if(!file_exists($dir_tmp)){
41 } 41 }
42 //TODO retirar daqui 42 //TODO retirar daqui
43 //include_once($locaplic."/classesphp/pega_variaveis.php"); 43 //include_once($locaplic."/classesphp/pega_variaveis.php");
44 -error_reporting(0); 44 +//error_reporting(0);
45 45
46 // 46 //
47 //carrega o phpmapscript 47 //carrega o phpmapscript
@@ -97,7 +97,7 @@ function retornaJSON($obj) @@ -97,7 +97,7 @@ function retornaJSON($obj)
97 //else 97 //else
98 //{ 98 //{
99 include_once($locaplic."/pacotes/cpaint/JSON/json2.php"); 99 include_once($locaplic."/pacotes/cpaint/JSON/json2.php");
100 - error_reporting(0); 100 + //error_reporting(0);
101 ob_end_clean(); 101 ob_end_clean();
102 $j = new Services_JSON(); 102 $j = new Services_JSON();
103 $texto = $j->encode($obj); 103 $texto = $j->encode($obj);
@@ -199,7 +199,7 @@ function pegaDados($sql,$dbh="",$close=true) @@ -199,7 +199,7 @@ function pegaDados($sql,$dbh="",$close=true)
199 if($dbh == "" || is_string($dbh)){ 199 if($dbh == "" || is_string($dbh)){
200 include(dirname(__FILE__)."/conexao.php"); 200 include(dirname(__FILE__)."/conexao.php");
201 } 201 }
202 - error_reporting(0); 202 + //error_reporting(0);
203 //$dbh deve ser definido com somente leitura, mas por prevencao: 203 //$dbh deve ser definido com somente leitura, mas por prevencao:
204 $sql = str_ireplace(array("update","delete","insert","--","drop",";"),"",$sql); 204 $sql = str_ireplace(array("update","delete","insert","--","drop",";"),"",$sql);
205 $q = $dbh->query($sql,PDO::FETCH_ASSOC); 205 $q = $dbh->query($sql,PDO::FETCH_ASSOC);
@@ -624,8 +624,10 @@ senha {string} @@ -624,8 +624,10 @@ senha {string}
624 624
625 i3geomaster {array} - variável existente no ms_configura.php com o cadastro de usuários masters 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 foreach($i3geomaster as $teste){ 631 foreach($i3geomaster as $teste){
630 if(!empty($usuario) && !empty($senha) && $teste["usuario"] == $usuario && $teste["senha"] == $senha){ 632 if(!empty($usuario) && !empty($senha) && $teste["usuario"] == $usuario && $teste["senha"] == $senha){
631 return true; 633 return true;
admin/php/arvore.php
@@ -73,7 +73,6 @@ if($idioma == "") @@ -73,7 +73,6 @@ if($idioma == "")
73 $idioma = "pt"; 73 $idioma = "pt";
74 } 74 }
75 75
76 -error_reporting(0);  
77 //faz a busca da função que deve ser executada 76 //faz a busca da função que deve ser executada
78 switch (strtoupper($funcao)) 77 switch (strtoupper($funcao))
79 { 78 {
admin/php/classe_arvore.php
@@ -73,7 +73,7 @@ class Arvore @@ -73,7 +73,7 @@ class Arvore
73 $this->locaplic = $locaplic; 73 $this->locaplic = $locaplic;
74 $this->filtro = $filtro; 74 $this->filtro = $filtro;
75 $dbh = ""; 75 $dbh = "";
76 - error_reporting(0); 76 + //error_reporting(0);
77 77
78 include($locaplic."/admin/php/conexao.php"); 78 include($locaplic."/admin/php/conexao.php");
79 79
@@ -415,6 +415,7 @@ class Arvore @@ -415,6 +415,7 @@ class Arvore
415 function procuraTemasEstrela($nivel,$fatorestrela,$perfil) 415 function procuraTemasEstrela($nivel,$fatorestrela,$perfil)
416 { 416 {
417 $menus = $this->pegaListaDeMenus($perfil); 417 $menus = $this->pegaListaDeMenus($perfil);
  418 +
418 $resultado = array(); 419 $resultado = array();
419 $subgrupo = array(); 420 $subgrupo = array();
420 $final = array(); 421 $final = array();
@@ -621,7 +622,7 @@ class Arvore @@ -621,7 +622,7 @@ class Arvore
621 622
622 {array} 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 $f = ""; 627 $f = "";
627 if($filtraOgc == "sim" || $filtraDown == "sim"){ 628 if($filtraOgc == "sim" || $filtraDown == "sim"){
@@ -1249,21 +1250,25 @@ class Arvore @@ -1249,21 +1250,25 @@ class Arvore
1249 } 1250 }
1250 } 1251 }
1251 function verificaOperacaoSessao($operacao){ 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 \ No newline at end of file 1275 \ No newline at end of file
admin/php/classe_metaestat.php
@@ -72,7 +72,7 @@ class Metaestat{ @@ -72,7 +72,7 @@ class Metaestat{
72 * Faz o include de conexao.php que por sua vez faz o include de i3geo/ms_configura.php 72 * Faz o include de conexao.php que por sua vez faz o include de i3geo/ms_configura.php
73 */ 73 */
74 function __construct(){ 74 function __construct(){
75 - error_reporting(0); 75 + //error_reporting(0);
76 include(dirname(__FILE__)."/conexao.php"); 76 include(dirname(__FILE__)."/conexao.php");
77 //vem do include 77 //vem do include
78 $this->dir_tmp = $dir_tmp; 78 $this->dir_tmp = $dir_tmp;
admin/php/conexao.php
@@ -65,7 +65,7 @@ if(!isset($logTransacoes)){ @@ -65,7 +65,7 @@ if(!isset($logTransacoes)){
65 $convUTF = true; 65 $convUTF = true;
66 if($conexaoadmin == ""){ 66 if($conexaoadmin == ""){
67 $arquivosqlite = $locaplic."/admin/admin.db"; 67 $arquivosqlite = $locaplic."/admin/admin.db";
68 - chmod($arquivosqlite,0774); 68 + //chmod($arquivosqlite,0774);
69 //echo $arquivosqlite;exit; 69 //echo $arquivosqlite;exit;
70 if(!file_exists($arquivosqlite)){ 70 if(!file_exists($arquivosqlite)){
71 echo "O arquivo admin.db não existe. Utilize i3geo/admin/criabanco.php para criar o banco de dados SQLITE."; 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,7 +59,7 @@
59 if(isset($i3geoPermiteLoginIp)){ 59 if(isset($i3geoPermiteLoginIp)){
60 checaLoginIp($i3geoPermiteLoginIp); 60 checaLoginIp($i3geoPermiteLoginIp);
61 } 61 }
62 - error_reporting(0); 62 + //error_reporting(0);
63 $tabelas = array( 63 $tabelas = array(
64 //tabelas gerais do sistema de administracao 64 //tabelas gerais do sistema de administracao
65 "CREATE TABLE ".$esquemaadmin."i3geoadmin_grupos (desc_grupo TEXT, id_grupo INTEGER PRIMARY KEY, nome_grupo TEXT, it TEXT, es TEXT, en TEXT)", 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,7 +98,7 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){
98 } 98 }
99 unlink("$locaplic/temas/teste.txt"); 99 unlink("$locaplic/temas/teste.txt");
100 } 100 }
101 -error_reporting(0); 101 +//error_reporting(0);
102 //define o parametro de output do resultado da funcao 102 //define o parametro de output do resultado da funcao
103 //algumas funcoes podem ser inseridas com include em outros programas 103 //algumas funcoes podem ser inseridas com include em outros programas
104 //nesse caso, defina output como "retorno" 104 //nesse caso, defina output como "retorno"
@@ -285,7 +285,7 @@ switch (strtoupper($funcao)) @@ -285,7 +285,7 @@ switch (strtoupper($funcao))
285 {JSON} 285 {JSON}
286 */ 286 */
287 case "LIMPARCACHEMAPFILE": 287 case "LIMPARCACHEMAPFILE":
288 - error_reporting(0); 288 + //error_reporting(0);
289 $mapfile = $locaplic."/temas/".$codigoMap.".map"; 289 $mapfile = $locaplic."/temas/".$codigoMap.".map";
290 $mapa = ms_newMapObj($mapfile); 290 $mapa = ms_newMapObj($mapfile);
291 $nomes = $mapa->getalllayernames(); 291 $nomes = $mapa->getalllayernames();
@@ -1146,7 +1146,7 @@ switch (strtoupper($funcao)) @@ -1146,7 +1146,7 @@ switch (strtoupper($funcao))
1146 function clonarMapfile() 1146 function clonarMapfile()
1147 { 1147 {
1148 global $codigomap, $locaplic; 1148 global $codigomap, $locaplic;
1149 - error_reporting(0); 1149 + //error_reporting(0);
1150 $arqtema = $locaplic."/temas/".$codigomap.".map"; 1150 $arqtema = $locaplic."/temas/".$codigomap.".map";
1151 $novotema = $locaplic."/temas/".$_GET["novomap"].".map"; 1151 $novotema = $locaplic."/temas/".$_GET["novomap"].".map";
1152 copy($arqtema,$novotema); 1152 copy($arqtema,$novotema);
@@ -1163,7 +1163,7 @@ function refazerLayer() @@ -1163,7 +1163,7 @@ function refazerLayer()
1163 1163
1164 $maporigem = $_GET["maporigem"]; 1164 $maporigem = $_GET["maporigem"];
1165 1165
1166 - error_reporting(0); 1166 + //error_reporting(0);
1167 $cache = $_GET["cache"]; 1167 $cache = $_GET["cache"];
1168 if(empty($cache)){ 1168 if(empty($cache)){
1169 $cache = ""; 1169 $cache = "";
@@ -1379,7 +1379,7 @@ function autoClassesLayer() @@ -1379,7 +1379,7 @@ function autoClassesLayer()
1379 global $codigoMap,$codigoLayer,$locaplic,$dir_tmp,$postgis_mapa; 1379 global $codigoMap,$codigoLayer,$locaplic,$dir_tmp,$postgis_mapa;
1380 $mapfile = $locaplic."/temas/".$codigoMap.".map"; 1380 $mapfile = $locaplic."/temas/".$codigoMap.".map";
1381 include_once("$locaplic/classesphp/classe_alteraclasse.php"); 1381 include_once("$locaplic/classesphp/classe_alteraclasse.php");
1382 - error_reporting(0); 1382 + //error_reporting(0);
1383 $nometemp = $dir_tmp."/".nomerandomico().".map"; 1383 $nometemp = $dir_tmp."/".nomerandomico().".map";
1384 1384
1385 $versao = versao(); 1385 $versao = versao();
@@ -2183,7 +2183,7 @@ function pegaClasseGeral() @@ -2183,7 +2183,7 @@ function pegaClasseGeral()
2183 { 2183 {
2184 global $codigoMap,$codigoLayer,$locaplic; 2184 global $codigoMap,$codigoLayer,$locaplic;
2185 2185
2186 - error_reporting(0); 2186 + //error_reporting(0);
2187 $dados = array(); 2187 $dados = array();
2188 $mapfile = $locaplic."/temas/".$codigoMap.".map"; 2188 $mapfile = $locaplic."/temas/".$codigoMap.".map";
2189 $mapa = ms_newMapObj($mapfile); 2189 $mapa = ms_newMapObj($mapfile);
admin/php/editortexto.php
@@ -102,7 +102,7 @@ body { @@ -102,7 +102,7 @@ body {
102 echo "Vc nao pode realizar essa operacao."; 102 echo "Vc nao pode realizar essa operacao.";
103 exit (); 103 exit ();
104 } 104 }
105 - error_reporting ( 0 ); 105 + //error_reporting ( 0 );
106 $mapfile = $locaplic . "/temas/" . $_GET ["mapfile"] . ".map"; 106 $mapfile = $locaplic . "/temas/" . $_GET ["mapfile"] . ".map";
107 if (! file_exists ( $mapfile )) { 107 if (! file_exists ( $mapfile )) {
108 echo "Arquivo $mapfile não existe."; 108 echo "Arquivo $mapfile não existe.";
admin/php/estat_mapa_upload.php
@@ -4,7 +4,7 @@ include_once("login.php"); @@ -4,7 +4,7 @@ include_once("login.php");
4 if(verificaOperacaoSessao("admin/metaestat/geral") == false){ 4 if(verificaOperacaoSessao("admin/metaestat/geral") == false){
5 echo "Vc nao pode realizar essa operacao.";exit; 5 echo "Vc nao pode realizar essa operacao.";exit;
6 } 6 }
7 -error_reporting(0); 7 +//error_reporting(0);
8 ?> 8 ?>
9 <html> 9 <html>
10 <head> 10 <head>
admin/php/estatisticas.php
@@ -71,7 +71,7 @@ td { @@ -71,7 +71,7 @@ td {
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")); 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 $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")); 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 $temasacessos = array(); 73 $temasacessos = array();
74 - error_reporting(0); 74 + //error_reporting(0);
75 foreach($temasvalidos as $tema){ 75 foreach($temasvalidos as $tema){
76 $ncodigostemas[$tema["codigo_tema"]]++; 76 $ncodigostemas[$tema["codigo_tema"]]++;
77 $nnomestemas[$tema["nome_tema"]]++; 77 $nnomestemas[$tema["nome_tema"]]++;
admin/php/gruposusuarios.php
@@ -58,7 +58,7 @@ cp.set_response_type(&quot;JSON&quot;) @@ -58,7 +58,7 @@ cp.set_response_type(&quot;JSON&quot;)
58 cp.call(p,"lente",ajaxabrelente) 58 cp.call(p,"lente",ajaxabrelente)
59 59
60 */ 60 */
61 -error_reporting(0); 61 +//error_reporting(0);
62 // 62 //
63 //pega as variaveis passadas com get ou post 63 //pega as variaveis passadas com get ou post
64 // 64 //
admin/php/identifica.php
@@ -55,7 +55,7 @@ $id_i = $_GET[&quot;id_i&quot;]; @@ -55,7 +55,7 @@ $id_i = $_GET[&quot;id_i&quot;];
55 $id = $_GET["id"]; 55 $id = $_GET["id"];
56 testaSafeNumerico([$id_i,$id]); 56 testaSafeNumerico([$id_i,$id]);
57 57
58 -error_reporting(0); 58 +//error_reporting(0);
59 //faz a busca da fun&ccedil;&atilde;o que deve ser executada 59 //faz a busca da fun&ccedil;&atilde;o que deve ser executada
60 switch (strtoupper($funcao)) 60 switch (strtoupper($funcao))
61 { 61 {
admin/php/login.php
@@ -58,7 +58,7 @@ cp.set_response_type(&quot;JSON&quot;) @@ -58,7 +58,7 @@ cp.set_response_type(&quot;JSON&quot;)
58 cp.call(p,"lente",ajaxabrelente) 58 cp.call(p,"lente",ajaxabrelente)
59 59
60 */ 60 */
61 -error_reporting(0); 61 +//error_reporting(0);
62 // 62 //
63 //pega as variaveis passadas com get ou post 63 //pega as variaveis passadas com get ou post
64 // 64 //
@@ -76,7 +76,7 @@ if(isset($i3geoPermiteLoginIp)){ @@ -76,7 +76,7 @@ if(isset($i3geoPermiteLoginIp)){
76 checaLoginIp($i3geoPermiteLoginIp); 76 checaLoginIp($i3geoPermiteLoginIp);
77 } 77 }
78 78
79 -error_reporting(0); 79 +//error_reporting(0);
80 session_write_close(); 80 session_write_close();
81 session_name("i3GeoLogin"); 81 session_name("i3GeoLogin");
82 //se o usuario estiver tentando fazer login 82 //se o usuario estiver tentando fazer login
@@ -315,7 +315,8 @@ function autenticaUsuario($usuario,$senha){ @@ -315,7 +315,8 @@ function autenticaUsuario($usuario,$senha){
315 //echo "select * from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and (senha = '$senhamd5' or senha = '$senha') and ativo = 1";exit; 315 //echo "select * from ".$esquemaadmin."i3geousr_usuarios where login = '$usuario' and (senha = '$senhamd5' or senha = '$senha') and ativo = 1";exit;
316 //exit; 316 //exit;
317 if(verificaMaster($usuario,$senha) == true){ 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 $op = pegadados("SELECT O.codigo FROM ".$esquemaadmin."i3geousr_operacoes AS O",$dbh,false); 320 $op = pegadados("SELECT O.codigo FROM ".$esquemaadmin."i3geousr_operacoes AS O",$dbh,false);
320 $gr = pegadados("SELECT * from ".$esquemaadmin."i3geousr_grupos ",$dbh,false); 321 $gr = pegadados("SELECT * from ".$esquemaadmin."i3geousr_grupos ",$dbh,false);
321 //var_dump($gr);exit; 322 //var_dump($gr);exit;
@@ -399,6 +400,8 @@ function autenticaUsuario($usuario,$senha){ @@ -399,6 +400,8 @@ function autenticaUsuario($usuario,$senha){
399 function logoutUsuario(){ 400 function logoutUsuario(){
400 $_COOKIE = array(); 401 $_COOKIE = array();
401 $_SESSION = array(); 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
@@ -55,7 +55,7 @@ $id_mapa = $_GET[&quot;id_mapa&quot;]; @@ -55,7 +55,7 @@ $id_mapa = $_GET[&quot;id_mapa&quot;];
55 testaSafeNumerico([$id,$id_mapa]); 55 testaSafeNumerico([$id,$id_mapa]);
56 56
57 57
58 -error_reporting(0); 58 +//error_reporting(0);
59 //faz a busca da fun&ccedil;&atilde;o que deve ser executada 59 //faz a busca da fun&ccedil;&atilde;o que deve ser executada
60 switch (strtoupper($funcao)) 60 switch (strtoupper($funcao))
61 { 61 {
admin/php/metaestat.php
@@ -39,24 +39,22 @@ Cada opera&amp;ccedil;&amp;atilde;o possu&amp;iacute; seus proprios par&amp;acirc;metros, que de @@ -39,24 +39,22 @@ Cada opera&amp;ccedil;&amp;atilde;o possu&amp;iacute; seus proprios par&amp;acirc;metros, que de
39 include_once(dirname(__FILE__)."/login.php"); 39 include_once(dirname(__FILE__)."/login.php");
40 40
41 $codigo_estat_conexao = $_GET["codigo_estat_conexao"];//pode ser string ou numerico 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 //lista de funcoes que passam pela validacao de login 59 //lista de funcoes que passam pela validacao de login
62 $funcoesEdicao = array( 60 $funcoesEdicao = array(
@@ -140,11 +138,8 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){ @@ -140,11 +138,8 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){
140 } 138 }
141 } 139 }
142 140
143 -  
144 -  
145 -  
146 include(dirname(__FILE__)."/classe_metaestat.php"); 141 include(dirname(__FILE__)."/classe_metaestat.php");
147 -error_reporting(0); 142 +//error_reporting(0);
148 //faz a busca da fun&ccedil;&atilde;o que deve ser executada 143 //faz a busca da fun&ccedil;&atilde;o que deve ser executada
149 switch (strtoupper($funcao)) 144 switch (strtoupper($funcao))
150 { 145 {
admin/php/metaestat_mapa_uploadimagem.php
@@ -8,7 +8,7 @@ include_once(&quot;login.php&quot;); @@ -8,7 +8,7 @@ include_once(&quot;login.php&quot;);
8 if(verificaOperacaoSessao("admin/metaestat/geral") == false){ 8 if(verificaOperacaoSessao("admin/metaestat/geral") == false){
9 echo "Vc nao pode realizar essa operacao.";exit; 9 echo "Vc nao pode realizar essa operacao.";exit;
10 } 10 }
11 -error_reporting(0); 11 +//error_reporting(0);
12 ?> 12 ?>
13 <html> 13 <html>
14 <head> 14 <head>
admin/php/metaestat_uploadcsv_submit.php
@@ -6,7 +6,7 @@ include_once(&quot;login.php&quot;); @@ -6,7 +6,7 @@ include_once(&quot;login.php&quot;);
6 if(verificaOperacaoSessao("admin/metaestat/editorbanco") == false){ 6 if(verificaOperacaoSessao("admin/metaestat/editorbanco") == false){
7 echo "Vc nao pode realizar essa operacao.";exit; 7 echo "Vc nao pode realizar essa operacao.";exit;
8 } 8 }
9 -error_reporting(0); 9 +//error_reporting(0);
10 if (ob_get_level() == 0) ob_start(); 10 if (ob_get_level() == 0) ob_start();
11 11
12 ?> 12 ?>
admin/php/metaestat_uploaddados_submit.php
1 <?php 1 <?php
2 $colunasarquivo = ""; 2 $colunasarquivo = "";
3 $nomearquivoserv = ""; 3 $nomearquivoserv = "";
4 -error_reporting(0); 4 +//error_reporting(0);
5 include_once(dirname(__FILE__)."/login.php"); 5 include_once(dirname(__FILE__)."/login.php");
6 if (isset($_FILES['i3GEOuploadArquivo']['name'])) 6 if (isset($_FILES['i3GEOuploadArquivo']['name']))
7 { 7 {
admin/php/metaestat_uploadshp_submit.php
@@ -7,7 +7,7 @@ set_time_limit(0); @@ -7,7 +7,7 @@ set_time_limit(0);
7 if(verificaOperacaoSessao("admin/metaestat/editorbanco") == false){ 7 if(verificaOperacaoSessao("admin/metaestat/editorbanco") == false){
8 echo "Vc nao pode realizar essa operacao.";exit; 8 echo "Vc nao pode realizar essa operacao.";exit;
9 } 9 }
10 -error_reporting(0); 10 +//error_reporting(0);
11 if (ob_get_level() == 0) ob_start(); 11 if (ob_get_level() == 0) ob_start();
12 ?> 12 ?>
13 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 13 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
admin/php/operacoes.php
@@ -58,7 +58,7 @@ cp.set_response_type(&quot;JSON&quot;) @@ -58,7 +58,7 @@ cp.set_response_type(&quot;JSON&quot;)
58 cp.call(p,"lente",ajaxabrelente) 58 cp.call(p,"lente",ajaxabrelente)
59 59
60 */ 60 */
61 -error_reporting(0); 61 +//error_reporting(0);
62 // 62 //
63 //pega as variaveis passadas com get ou post 63 //pega as variaveis passadas com get ou post
64 // 64 //
admin/php/parsemapfile.php
@@ -51,7 +51,7 @@ include_once(dirname(__FILE__).&quot;/../../classesphp/carrega_ext.php&quot;); @@ -51,7 +51,7 @@ include_once(dirname(__FILE__).&quot;/../../classesphp/carrega_ext.php&quot;);
51 $bloqueiaStringConexao = true; 51 $bloqueiaStringConexao = true;
52 // 52 //
53 $forcawms = $_GET["forcawms"]; 53 $forcawms = $_GET["forcawms"];
54 -error_reporting(0); 54 +//error_reporting(0);
55 if(!isset($forcawms)){$forcawms = "nao";} 55 if(!isset($forcawms)){$forcawms = "nao";}
56 $objcontype[0] = "MS_INLINE"; 56 $objcontype[0] = "MS_INLINE";
57 $objcontype[1] = "MS_SHAPEFILE"; 57 $objcontype[1] = "MS_SHAPEFILE";
admin/php/preview.php
@@ -21,7 +21,7 @@ $urli3geo = str_replace(&quot;/ogc.php&quot;,&quot;&quot;,$protocolo.$_SERVER[&quot;PHP_SELF&quot;]); @@ -21,7 +21,7 @@ $urli3geo = str_replace(&quot;/ogc.php&quot;,&quot;&quot;,$protocolo.$_SERVER[&quot;PHP_SELF&quot;]);
21 // 21 //
22 //cria o web service 22 //cria o web service
23 // 23 //
24 -error_reporting(0); 24 +//error_reporting(0);
25 $versao = versao(); 25 $versao = versao();
26 $versao = $versao["principal"]; 26 $versao = $versao["principal"];
27 27
admin/php/sistemas.php
@@ -57,7 +57,7 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){ @@ -57,7 +57,7 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){
57 retornaJSON("Vc nao pode realizar essa operacao.");exit; 57 retornaJSON("Vc nao pode realizar essa operacao.");exit;
58 } 58 }
59 } 59 }
60 -error_reporting(0); 60 +//error_reporting(0);
61 //faz a busca da fun&ccedil;&atilde;o que deve ser executada 61 //faz a busca da fun&ccedil;&atilde;o que deve ser executada
62 switch (strtoupper($funcao)) 62 switch (strtoupper($funcao))
63 { 63 {
admin/php/subirshapefile.php
@@ -13,7 +13,7 @@ if(isset($_GET[&quot;tipo&quot;])){ @@ -13,7 +13,7 @@ if(isset($_GET[&quot;tipo&quot;])){
13 if(empty($locaplic)){ 13 if(empty($locaplic)){
14 exit; 14 exit;
15 } 15 }
16 -error_reporting(0); 16 +//error_reporting(0);
17 ?> 17 ?>
18 <html> 18 <html>
19 <head> 19 <head>
admin/php/upgradebanco44_45.php
@@ -71,7 +71,7 @@ else{ @@ -71,7 +71,7 @@ else{
71 exit; 71 exit;
72 } 72 }
73 } 73 }
74 -error_reporting(0); 74 +//error_reporting(0);
75 $tabelas = array( 75 $tabelas = array(
76 "CREATE TABLE i3geoadmin_comentarios (comentario TEXT, data TEXT, openidnome TEXT, openidimagem TEXT, openidservico TEXT, openidusuario TEXT, openidurl TEXT, id_tema NUMERIC)", 76 "CREATE TABLE i3geoadmin_comentarios (comentario TEXT, data TEXT, openidnome TEXT, openidimagem TEXT, openidservico TEXT, openidusuario TEXT, openidurl TEXT, id_tema NUMERIC)",
77 "CREATE TABLE i3geoadmin_acessostema (codigo_tema TEXT, nacessos NUMERIC,dia NUMERIC, mes NUMERIC, ano NUMERIC)" 77 "CREATE TABLE i3geoadmin_acessostema (codigo_tema TEXT, nacessos NUMERIC,dia NUMERIC, mes NUMERIC, ano NUMERIC)"
admin/php/upgradebanco46_47.php
@@ -75,7 +75,7 @@ else{ @@ -75,7 +75,7 @@ else{
75 exit; 75 exit;
76 } 76 }
77 } 77 }
78 -error_reporting(0); 78 +//error_reporting(0);
79 //tabelas do controle de usuarios e sistema metaestat 79 //tabelas do controle de usuarios e sistema metaestat
80 $tabelas = array( 80 $tabelas = array(
81 "ALTER TABLE ".$esquemaadmin."i3geoadmin_mapas ADD mapfile TEXT", 81 "ALTER TABLE ".$esquemaadmin."i3geoadmin_mapas ADD mapfile TEXT",
admin/php/uploadgvp.php
@@ -5,7 +5,7 @@ include_once(&quot;login.php&quot;); @@ -5,7 +5,7 @@ include_once(&quot;login.php&quot;);
5 if(verificaOperacaoSessao("admin/metaestat/geral") == false){ 5 if(verificaOperacaoSessao("admin/metaestat/geral") == false){
6 echo "Vc nao pode realizar essa operacao.";exit; 6 echo "Vc nao pode realizar essa operacao.";exit;
7 } 7 }
8 -error_reporting(0); 8 +//error_reporting(0);
9 if (ob_get_level() == 0) ob_start(); 9 if (ob_get_level() == 0) ob_start();
10 ?> 10 ?>
11 <html> 11 <html>
admin/php/usuarios.php
@@ -58,7 +58,7 @@ cp.set_response_type(&quot;JSON&quot;) @@ -58,7 +58,7 @@ cp.set_response_type(&quot;JSON&quot;)
58 cp.call(p,"lente",ajaxabrelente) 58 cp.call(p,"lente",ajaxabrelente)
59 59
60 */ 60 */
61 -error_reporting(0); 61 +//error_reporting(0);
62 // 62 //
63 //pega as variaveis passadas com get ou post 63 //pega as variaveis passadas com get ou post
64 // 64 //
admin/php/webservices.php
@@ -39,7 +39,7 @@ O par&amp;acirc;metro principal &amp;eacute; &quot;funcao&quot;, que define qual opera&amp;ccedil;&amp;ati @@ -39,7 +39,7 @@ O par&amp;acirc;metro principal &amp;eacute; &quot;funcao&quot;, que define qual opera&amp;ccedil;&amp;ati
39 Cada opera&ccedil;&atilde;o possu&iacute; seus próprios par&acirc;metros, que devem ser enviados tamb&eacute;m na requisi&ccedil;&atilde;o da opera&ccedil;&atilde;o. 39 Cada opera&ccedil;&atilde;o possu&iacute; seus próprios par&acirc;metros, que devem ser enviados tamb&eacute;m na requisi&ccedil;&atilde;o da opera&ccedil;&atilde;o.
40 40
41 */ 41 */
42 -error_reporting(0); 42 +//error_reporting(0);
43 43
44 //a funcao PEGAWS pode ser executada por outros programas 44 //a funcao PEGAWS pode ser executada por outros programas
45 45
admin/php/xml.php
@@ -60,9 +60,12 @@ Retorno: @@ -60,9 +60,12 @@ Retorno:
60 60
61 String na estrutura XML 61 String na estrutura XML
62 */ 62 */
63 -function geraXmlSistemas($perfil,$locaplic,$editores) 63 +function geraXmlSistemas($perfil="",$locaplic="",$editores="")
64 { 64 {
65 global $esquemaadmin; 65 global $esquemaadmin;
  66 + if(empty($locaplic)){
  67 + return;
  68 + }
66 $editor = "nao";//verificaEditores($editores); 69 $editor = "nao";//verificaEditores($editores);
67 if (!isset($perfil)){$perfil = "";} 70 if (!isset($perfil)){$perfil = "";}
68 $perfil = str_replace(","," ",$perfil); 71 $perfil = str_replace(","," ",$perfil);
@@ -554,7 +557,7 @@ function geraXmlRSS($locaplic,$sql,$descricao,$output=&quot;xml&quot;) @@ -554,7 +557,7 @@ function geraXmlRSS($locaplic,$sql,$descricao,$output=&quot;xml&quot;)
554 function geraXmlAtlas($locaplic,$editores) 557 function geraXmlAtlas($locaplic,$editores)
555 { 558 {
556 global $esquemaadmin; 559 global $esquemaadmin;
557 - error_reporting(0); 560 + //error_reporting(0);
558 $dbh = ""; 561 $dbh = "";
559 include($locaplic."/admin/php/conexao.php"); 562 include($locaplic."/admin/php/conexao.php");
560 563
@@ -633,7 +636,7 @@ function geraXmlIdentifica($perfil,$locaplic,$editores) @@ -633,7 +636,7 @@ function geraXmlIdentifica($perfil,$locaplic,$editores)
633 if($target == ""){$target = "_self";} 636 if($target == ""){$target = "_self";}
634 $xml .= " <TARGET>".$target."</TARGET>\n"; 637 $xml .= " <TARGET>".$target."</TARGET>\n";
635 $xml .= " </FUNCAO>\n"; 638 $xml .= " </FUNCAO>\n";
636 - }error_reporting(0); 639 + }//error_reporting(0);
637 } 640 }
638 $xml .= "</SISTEMAS>\n"; 641 $xml .= "</SISTEMAS>\n";
639 $dbh = null; 642 $dbh = null;
admin/rsscomentariostemas.php
@@ -37,7 +37,7 @@ Arquivo: @@ -37,7 +37,7 @@ Arquivo:
37 i3geo/admin/rsscomentariostemas.php 37 i3geo/admin/rsscomentariostemas.php
38 */ 38 */
39 39
40 -error_reporting(0); 40 +//error_reporting(0);
41 if(!isset($locaplic)){ 41 if(!isset($locaplic)){
42 include(dirname(__FILE__)."/../ms_configura.php"); 42 include(dirname(__FILE__)."/../ms_configura.php");
43 } 43 }
admin/rssgrupos.php
@@ -32,7 +32,7 @@ Arquivo: @@ -32,7 +32,7 @@ Arquivo:
32 32
33 i3geo/admin/rssgrupos.php 33 i3geo/admin/rssgrupos.php
34 */ 34 */
35 -error_reporting(0); 35 +//error_reporting(0);
36 if(!isset($locaplic)){ 36 if(!isset($locaplic)){
37 include(dirname(__FILE__)."/../ms_configura.php"); 37 include(dirname(__FILE__)."/../ms_configura.php");
38 } 38 }
admin/rssmapas.php
@@ -32,7 +32,7 @@ Arquivo: @@ -32,7 +32,7 @@ Arquivo:
32 32
33 i3geo/admin/rssmapas.php 33 i3geo/admin/rssmapas.php
34 */ 34 */
35 -error_reporting(0); 35 +//error_reporting(0);
36 if(!isset($locaplic)){ 36 if(!isset($locaplic)){
37 include(dirname(__FILE__)."/../ms_configura.php"); 37 include(dirname(__FILE__)."/../ms_configura.php");
38 } 38 }
admin/rsssubgrupos.php
@@ -38,7 +38,7 @@ Arquivo: @@ -38,7 +38,7 @@ Arquivo:
38 38
39 i3geo/admin/rsssubgrupos.php 39 i3geo/admin/rsssubgrupos.php
40 */ 40 */
41 -error_reporting(0); 41 +//error_reporting(0);
42 if(!isset($locaplic)){ 42 if(!isset($locaplic)){
43 include(dirname(__FILE__)."/../ms_configura.php"); 43 include(dirname(__FILE__)."/../ms_configura.php");
44 } 44 }
admin/rsstemas.php
@@ -38,7 +38,7 @@ Arquivo: @@ -38,7 +38,7 @@ Arquivo:
38 38
39 i3geo/admin/rsstemas.php 39 i3geo/admin/rsstemas.php
40 */ 40 */
41 -error_reporting(0); 41 +//error_reporting(0);
42 if(!isset($locaplic)){ 42 if(!isset($locaplic)){
43 include(dirname(__FILE__)."/../ms_configura.php"); 43 include(dirname(__FILE__)."/../ms_configura.php");
44 } 44 }
admin/rsstemasdownload.php
@@ -35,7 +35,7 @@ Arquivo: @@ -35,7 +35,7 @@ Arquivo:
35 i3geo/admin/rsstemasdownload.php 35 i3geo/admin/rsstemasdownload.php
36 */ 36 */
37 37
38 -error_reporting(0); 38 +//error_reporting(0);
39 if(!isset($locaplic)){ 39 if(!isset($locaplic)){
40 include(dirname(__FILE__)."/../ms_configura.php"); 40 include(dirname(__FILE__)."/../ms_configura.php");
41 } 41 }
admin/rsstemaskml.php
@@ -35,7 +35,7 @@ Arquivo: @@ -35,7 +35,7 @@ Arquivo:
35 i3geo/admin/rsstemaskml.php 35 i3geo/admin/rsstemaskml.php
36 */ 36 */
37 37
38 -error_reporting(0); 38 +//error_reporting(0);
39 if(!isset($locaplic)){ 39 if(!isset($locaplic)){
40 include(dirname(__FILE__)."/../ms_configura.php"); 40 include(dirname(__FILE__)."/../ms_configura.php");
41 } 41 }
admin/rsstemasogc.php
@@ -34,7 +34,7 @@ Arquivo: @@ -34,7 +34,7 @@ Arquivo:
34 34
35 i3geo/admin/rsstemasogc.php 35 i3geo/admin/rsstemasogc.php
36 */ 36 */
37 -error_reporting(0); 37 +//error_reporting(0);
38 if(!isset($locaplic)){ 38 if(!isset($locaplic)){
39 include(dirname(__FILE__)."/../ms_configura.php"); 39 include(dirname(__FILE__)."/../ms_configura.php");
40 } 40 }
admin/rsstemasraiz.php
@@ -40,7 +40,7 @@ Arquivo: @@ -40,7 +40,7 @@ Arquivo:
40 40
41 i3geo/admin/rsstemasraiz.php 41 i3geo/admin/rsstemasraiz.php
42 */ 42 */
43 -error_reporting(0); 43 +//error_reporting(0);
44 if(!isset($locaplic)){ 44 if(!isset($locaplic)){
45 include(dirname(__FILE__)."/../ms_configura.php"); 45 include(dirname(__FILE__)."/../ms_configura.php");
46 } 46 }
admin/xmlatlas.php
1 <?php 1 <?php
2 /*DEPRECIADO*/ 2 /*DEPRECIADO*/
3 -error_reporting(0); 3 +//error_reporting(0);
4 if(!isset($locaplic)){ 4 if(!isset($locaplic)){
5 include(dirname(__FILE__)."/../ms_configura.php"); 5 include(dirname(__FILE__)."/../ms_configura.php");
6 } 6 }
admin/xmlgeorss.php
@@ -35,7 +35,7 @@ Arquivo: @@ -35,7 +35,7 @@ Arquivo:
35 i3geo/admin/xmlgeorss.php 35 i3geo/admin/xmlgeorss.php
36 */ 36 */
37 37
38 -error_reporting(0); 38 +//error_reporting(0);
39 if(!isset($locaplic)){ 39 if(!isset($locaplic)){
40 include(dirname(__FILE__)."/../ms_configura.php"); 40 include(dirname(__FILE__)."/../ms_configura.php");
41 } 41 }
admin/xmlidentifica.php
@@ -39,7 +39,7 @@ Arquivo: @@ -39,7 +39,7 @@ Arquivo:
39 i3geo/admin/xmlidentifica.php 39 i3geo/admin/xmlidentifica.php
40 */ 40 */
41 41
42 -error_reporting(0); 42 +//error_reporting(0);
43 if(!isset($locaplic)){ 43 if(!isset($locaplic)){
44 include(dirname(__FILE__)."/../ms_configura.php"); 44 include(dirname(__FILE__)."/../ms_configura.php");
45 } 45 }
admin/xmlkmlrss.php
@@ -34,7 +34,7 @@ Arquivo: @@ -34,7 +34,7 @@ Arquivo:
34 34
35 i3geo/admin/xmlkmlrss.php 35 i3geo/admin/xmlkmlrss.php
36 */ 36 */
37 -error_reporting(0); 37 +//error_reporting(0);
38 if(!isset($locaplic)){ 38 if(!isset($locaplic)){
39 include(dirname(__FILE__)."/../ms_configura.php"); 39 include(dirname(__FILE__)."/../ms_configura.php");
40 } 40 }
admin/xmllinksdownload.php
@@ -35,7 +35,7 @@ Arquivo: @@ -35,7 +35,7 @@ Arquivo:
35 i3geo/admin/xmllinksdownload.php 35 i3geo/admin/xmllinksdownload.php
36 */ 36 */
37 37
38 -error_reporting(0); 38 +//error_reporting(0);
39 if(!isset($locaplic)){ 39 if(!isset($locaplic)){
40 include(dirname(__FILE__)."/../ms_configura.php"); 40 include(dirname(__FILE__)."/../ms_configura.php");
41 } 41 }
admin/xmlmapas.php
@@ -35,7 +35,7 @@ Arquivo: @@ -35,7 +35,7 @@ Arquivo:
35 i3geo/admin/xmlmapas.php 35 i3geo/admin/xmlmapas.php
36 */ 36 */
37 37
38 -error_reporting(0); 38 +//error_reporting(0);
39 if(!isset($locaplic)){ 39 if(!isset($locaplic)){
40 include(dirname(__FILE__)."/../ms_configura.php"); 40 include(dirname(__FILE__)."/../ms_configura.php");
41 } 41 }
admin/xmlmenutemas.php
1 <?php 1 <?php
2 -error_reporting(0); 2 +//error_reporting(0);
3 if(!isset($locaplic)){ 3 if(!isset($locaplic)){
4 include(dirname(__FILE__)."/../ms_configura.php"); 4 include(dirname(__FILE__)."/../ms_configura.php");
5 } 5 }
admin/xmlmetaestatogc.php
@@ -34,7 +34,7 @@ Arquivo: @@ -34,7 +34,7 @@ Arquivo:
34 34
35 i3geo/admin/rssmetaestatogc.php 35 i3geo/admin/rssmetaestatogc.php
36 */ 36 */
37 -error_reporting(0); 37 +//error_reporting(0);
38 if(!isset($locaplic)){ 38 if(!isset($locaplic)){
39 include(dirname(__FILE__)."/../ms_configura.php"); 39 include(dirname(__FILE__)."/../ms_configura.php");
40 } 40 }
admin/xmlservicoswms.php
@@ -35,7 +35,7 @@ Arquivo: @@ -35,7 +35,7 @@ Arquivo:
35 i3geo/admin/xmlservicoswms.php 35 i3geo/admin/xmlservicoswms.php
36 */ 36 */
37 37
38 -error_reporting(0); 38 +//error_reporting(0);
39 if(!isset($locaplic)){ 39 if(!isset($locaplic)){
40 include(dirname(__FILE__)."/../ms_configura.php"); 40 include(dirname(__FILE__)."/../ms_configura.php");
41 } 41 }
admin/xmlservicosws.php
@@ -35,7 +35,7 @@ Arquivo: @@ -35,7 +35,7 @@ Arquivo:
35 i3geo/admin/xmlservicosws.php 35 i3geo/admin/xmlservicosws.php
36 */ 36 */
37 37
38 -error_reporting(0); 38 +//error_reporting(0);
39 if(!isset($locaplic)){ 39 if(!isset($locaplic)){
40 include(dirname(__FILE__)."/../ms_configura.php"); 40 include(dirname(__FILE__)."/../ms_configura.php");
41 } 41 }
admin/xmlsistemas.php
@@ -35,7 +35,7 @@ Arquivo: @@ -35,7 +35,7 @@ Arquivo:
35 i3geo/admin/xmlsistemas.php 35 i3geo/admin/xmlsistemas.php
36 */ 36 */
37 37
38 -error_reporting(0); 38 +//error_reporting(0);
39 if(!isset($locaplic)){ 39 if(!isset($locaplic)){
40 include(dirname(__FILE__)."/../ms_configura.php"); 40 include(dirname(__FILE__)."/../ms_configura.php");
41 } 41 }
admin1/catalogo/mapfile/preview/index.php
@@ -58,7 +58,7 @@ $urli3geo = str_replace(&quot;/ogc.php&quot;,&quot;&quot;,$protocolo.$_SERVER[&quot;PHP_SELF&quot;]); @@ -58,7 +58,7 @@ $urli3geo = str_replace(&quot;/ogc.php&quot;,&quot;&quot;,$protocolo.$_SERVER[&quot;PHP_SELF&quot;]);
58 // 58 //
59 //cria o web service 59 //cria o web service
60 // 60 //
61 -error_reporting (E_ALL); 61 +//error_reporting (E_ALL);
62 $versao = \admin\php\funcoesAdmin\versao(); 62 $versao = \admin\php\funcoesAdmin\versao();
63 $versao = $versao["principal"]; 63 $versao = $versao["principal"];
64 64
admin1/catalogo/mapfile/teste/exec.php
@@ -94,7 +94,7 @@ function testaTabela($tema) { @@ -94,7 +94,7 @@ function testaTabela($tema) {
94 94
95 $mapa = ms_newMapObj ( $base ); 95 $mapa = ms_newMapObj ( $base );
96 $nmapa = ms_newMapObj ( $tema ); 96 $nmapa = ms_newMapObj ( $tema );
97 - error_reporting ( E_ALL ); 97 + //error_reporting ( E_ALL );
98 ms_ResetErrorList (); 98 ms_ResetErrorList ();
99 99
100 $numlayers = $nmapa->numlayers; 100 $numlayers = $nmapa->numlayers;
@@ -102,7 +102,7 @@ function testaTabela($tema) { @@ -102,7 +102,7 @@ function testaTabela($tema) {
102 for($i = 0; $i < $numlayers; $i ++) { 102 for($i = 0; $i < $numlayers; $i ++) {
103 $layern = $nmapa->getlayer ( $i ); 103 $layern = $nmapa->getlayer ( $i );
104 $layern->set ( "status", MS_DEFAULT ); 104 $layern->set ( "status", MS_DEFAULT );
105 - error_reporting ( E_ALL ); 105 + //error_reporting ( E_ALL );
106 if ($layern->classitem != "" && $layern->connectiontype == 7 && $layern->numclasses > 0 && $layern->getmetadata ( "wms_sld_body" ) == "") { 106 if ($layern->classitem != "" && $layern->connectiontype == 7 && $layern->numclasses > 0 && $layern->getmetadata ( "wms_sld_body" ) == "") {
107 $tipotemp = $layern->type; 107 $tipotemp = $layern->type;
108 $tiporep = $layern->getmetadata ( "tipooriginal" ); 108 $tiporep = $layern->getmetadata ( "tipooriginal" );
@@ -179,7 +179,7 @@ function testaMapaImg($tema) { @@ -179,7 +179,7 @@ function testaMapaImg($tema) {
179 $locaplic = $_SESSION ["locaplic"]; 179 $locaplic = $_SESSION ["locaplic"];
180 $base = mapaBase ( $_SESSION ["locaplic"], $versao, $base ); 180 $base = mapaBase ( $_SESSION ["locaplic"], $versao, $base );
181 $mapa = ms_newMapObj ( $base ); 181 $mapa = ms_newMapObj ( $base );
182 - error_reporting ( E_ALL ); 182 + //error_reporting ( E_ALL );
183 ms_ResetErrorList (); 183 ms_ResetErrorList ();
184 try { 184 try {
185 ms_newMapObj ( $tema ); 185 ms_newMapObj ( $tema );
@@ -219,7 +219,7 @@ function testaMapaImg($tema) { @@ -219,7 +219,7 @@ function testaMapaImg($tema) {
219 $layern = $nmapa->getlayer ( $i ); 219 $layern = $nmapa->getlayer ( $i );
220 $layern->set ( "status", MS_DEFAULT ); 220 $layern->set ( "status", MS_DEFAULT );
221 autoClasses ( $layern, $nmapa ); 221 autoClasses ( $layern, $nmapa );
222 - error_reporting ( E_ALL ); 222 + //error_reporting ( E_ALL );
223 if ($layern->classitem != "" && $layern->connectiontype == 7 && $layern->numclasses > 0 && $layern->getmetadata ( "wms_sld_body" ) == "") { 223 if ($layern->classitem != "" && $layern->connectiontype == 7 && $layern->numclasses > 0 && $layern->getmetadata ( "wms_sld_body" ) == "") {
224 $tipotemp = $layern->type; 224 $tipotemp = $layern->type;
225 $tiporep = $layern->getmetadata ( "tipooriginal" ); 225 $tiporep = $layern->getmetadata ( "tipooriginal" );
admin1/dicionario/core.js
@@ -174,5 +174,10 @@ i3GEOadmin.core.dicionario = { @@ -174,5 +174,10 @@ i3GEOadmin.core.dicionario = {
174 pt : "Hora", 174 pt : "Hora",
175 en : "", 175 en : "",
176 es : "" 176 es : ""
  177 + } ],
  178 + 'confirma' : [ {
  179 + pt : "As altera&ccedil;&otilde;es n&atilde;o poder&atilde;o ser revertidas. Continua?",
  180 + en : "",
  181 + es : ""
177 } ] 182 } ]
178 }; 183 };
admin1/ferramentas/miniaturas/exec.php
@@ -13,7 +13,7 @@ if(empty($_GET[&quot;tipo&quot;])){ @@ -13,7 +13,7 @@ if(empty($_GET[&quot;tipo&quot;])){
13 <div class="col-md-12"> 13 <div class="col-md-12">
14 <div class="well"> 14 <div class="well">
15 <?php 15 <?php
16 - error_reporting (E_ALL); 16 + //error_reporting (E_ALL);
17 // 17 //
18 //carrega o phpmapscript 18 //carrega o phpmapscript
19 // 19 //
@@ -26,7 +26,7 @@ if(empty($_GET[&quot;tipo&quot;])){ @@ -26,7 +26,7 @@ if(empty($_GET[&quot;tipo&quot;])){
26 if (ob_get_level() == 0){ 26 if (ob_get_level() == 0){
27 ob_start(); 27 ob_start();
28 } 28 }
29 - error_reporting (E_ALL); 29 + //error_reporting (E_ALL);
30 $arqs = listaArquivos("../../../temas",true,array("map")); 30 $arqs = listaArquivos("../../../temas",true,array("map"));
31 $arqs = $arqs["arquivos"]; 31 $arqs = $arqs["arquivos"];
32 sort($arqs); 32 sort($arqs);
admin1/ferramentas/miniaturas/index.php
@@ -112,7 +112,7 @@ if(empty($_POST[&quot;tipo&quot;])){ @@ -112,7 +112,7 @@ if(empty($_POST[&quot;tipo&quot;])){
112 <div class="col-md-12"> 112 <div class="col-md-12">
113 <div class="well"> 113 <div class="well">
114 <?php 114 <?php
115 - error_reporting (E_ALL); 115 + //error_reporting (E_ALL);
116 $versao = \admin\php\funcoesAdmin\versao(); 116 $versao = \admin\php\funcoesAdmin\versao();
117 $versao = $versao["principal"]; 117 $versao = $versao["principal"];
118 118
@@ -122,7 +122,7 @@ if(empty($_POST[&quot;tipo&quot;])){ @@ -122,7 +122,7 @@ if(empty($_POST[&quot;tipo&quot;])){
122 if (ob_get_level() == 0){ 122 if (ob_get_level() == 0){
123 ob_start(); 123 ob_start();
124 } 124 }
125 - error_reporting (E_ALL); 125 + //error_reporting (E_ALL);
126 $arqs = listaArquivos("../../../temas",true,array("map")); 126 $arqs = listaArquivos("../../../temas",true,array("map"));
127 $arqs = $arqs["arquivos"]; 127 $arqs = $arqs["arquivos"];
128 sort($arqs); 128 sort($arqs);
admin1/php/checaLogin.php
1 <?php 1 <?php
2 namespace admin\php\login; 2 namespace admin\php\login;
3 -error_reporting(E_ALL ^E_NOTICE); 3 +//error_reporting(E_ALL ^E_NOTICE);
4 error_log("checaLogin OK",0); 4 error_log("checaLogin OK",0);
5 5
6 // junta get e post 6 // junta get e post
admin1/php/funcoesAdmin.php
@@ -82,7 +82,7 @@ function retornaJSON($obj) @@ -82,7 +82,7 @@ function retornaJSON($obj)
82 { 82 {
83 $locaplic = $_SESSION["locaplic"]; 83 $locaplic = $_SESSION["locaplic"];
84 include_once($locaplic."/pacotes/cpaint/JSON/json2.php"); 84 include_once($locaplic."/pacotes/cpaint/JSON/json2.php");
85 - error_reporting (E_ALL); 85 + //error_reporting (E_ALL);
86 ob_end_clean(); 86 ob_end_clean();
87 $j = new Services_JSON(); 87 $j = new Services_JSON();
88 $texto = $j->encode($obj); 88 $texto = $j->encode($obj);
@@ -185,7 +185,7 @@ function pegaDados($sql,$dbh=&quot;&quot;,$close=true) @@ -185,7 +185,7 @@ function pegaDados($sql,$dbh=&quot;&quot;,$close=true)
185 if($dbh == "" || is_string($dbh)){ 185 if($dbh == "" || is_string($dbh)){
186 include(dirname(__FILE__)."/conexao.php"); 186 include(dirname(__FILE__)."/conexao.php");
187 } 187 }
188 - error_reporting (E_ALL); 188 + //error_reporting (E_ALL);
189 //$dbh deve ser definido com somente leitura, mas por prevencao: 189 //$dbh deve ser definido com somente leitura, mas por prevencao:
190 $sql = str_ireplace(array("update","delete","insert","--","drop",";"),"",$sql); 190 $sql = str_ireplace(array("update","delete","insert","--","drop",";"),"",$sql);
191 $q = $dbh->query($sql,PDO::FETCH_ASSOC); 191 $q = $dbh->query($sql,PDO::FETCH_ASSOC);
@@ -472,7 +472,7 @@ function nomeRandomico($n=10) @@ -472,7 +472,7 @@ function nomeRandomico($n=10)
472 */ 472 */
473 function substituiCon($map_file,$postgis_mapa) 473 function substituiCon($map_file,$postgis_mapa)
474 { 474 {
475 - error_reporting (E_ALL); 475 + //error_reporting (E_ALL);
476 if (!empty($postgis_mapa) && (file_exists($map_file))) 476 if (!empty($postgis_mapa) && (file_exists($map_file)))
477 { 477 {
478 if(!@ms_newMapObj($map_file)){return false;} 478 if(!@ms_newMapObj($map_file)){return false;}
@@ -507,7 +507,7 @@ function substituiCon($map_file,$postgis_mapa) @@ -507,7 +507,7 @@ function substituiCon($map_file,$postgis_mapa)
507 return true; 507 return true;
508 } 508 }
509 function substituiConObj($objMap,$postgis_mapa){ 509 function substituiConObj($objMap,$postgis_mapa){
510 - error_reporting (E_ALL); 510 + //error_reporting (E_ALL);
511 if (!empty($postgis_mapa)){ 511 if (!empty($postgis_mapa)){
512 $numlayers = $objMap->numlayers; 512 $numlayers = $objMap->numlayers;
513 for ($i=0;$i < $numlayers;++$i){ 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,9 +423,9 @@ function salvatudojs($jsfiles,$buffer,$final,$tipo)
423 //gzip 423 //gzip
424 $abre = fopen($final, "r"); 424 $abre = fopen($final, "r");
425 if ($tipo == "js") 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 else 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 while (!feof($abre)) 429 while (!feof($abre))
430 {$buffer .= fgets($abre);} 430 {$buffer .= fgets($abre);}
431 fclose($abre); 431 fclose($abre);
classesjs/compactajs_closurecompiler.php
@@ -376,9 +376,9 @@ function salvatudojs($jsfiles,$buffer,$final,$tipo) @@ -376,9 +376,9 @@ function salvatudojs($jsfiles,$buffer,$final,$tipo)
376 //gzip 376 //gzip
377 $abre = fopen($final, "r"); 377 $abre = fopen($final, "r");
378 if ($tipo == "js") 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 else 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 while (!feof($abre)) 382 while (!feof($abre))
383 {$buffer .= fgets($abre);} 383 {$buffer .= fgets($abre);}
384 fclose($abre); 384 fclose($abre);
classesphp/atlas_controle.php
@@ -63,7 +63,7 @@ mapdir - localiza&amp;ccedil;&amp;atilde;o, no servidor, do diretorio com o mapfile temp @@ -63,7 +63,7 @@ mapdir - localiza&amp;ccedil;&amp;atilde;o, no servidor, do diretorio com o mapfile temp
63 imgdir - localiza&ccedil;&atilde;o, no servidor, das imagens tempor&aacute;rias do mapa atual. 63 imgdir - localiza&ccedil;&atilde;o, no servidor, das imagens tempor&aacute;rias do mapa atual.
64 debug - (pode ser definido como "sim" indica se o erro_reporting deve ser definido como E_ALL 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 $tempo = microtime(1); 67 $tempo = microtime(1);
68 // 68 //
69 // quando as fun&ccedil;&otilde;es abaixo forem utilizadas, &eacute; necess&aacute;rio definir $map_file para que o programa continue. 69 // quando as fun&ccedil;&otilde;es abaixo forem utilizadas, &eacute; necess&aacute;rio definir $map_file para que o programa continue.
classesphp/classe_alteraclasse.php
@@ -919,7 +919,7 @@ class Alteraclasse @@ -919,7 +919,7 @@ class Alteraclasse
919 */ 919 */
920 function alteracor($idclasse,$cor) 920 function alteracor($idclasse,$cor)
921 { 921 {
922 - error_reporting(0); 922 + //error_reporting(0);
923 if(!$this->layer){ 923 if(!$this->layer){
924 return "erro"; 924 return "erro";
925 } 925 }
@@ -948,7 +948,7 @@ class Alteraclasse @@ -948,7 +948,7 @@ class Alteraclasse
948 */ 948 */
949 function alterageometria($tipo) 949 function alterageometria($tipo)
950 { 950 {
951 - error_reporting(0); 951 + //error_reporting(0);
952 if(!$this->layer){ 952 if(!$this->layer){
953 return "erro"; 953 return "erro";
954 } 954 }
classesphp/classe_analise.php
@@ -250,7 +250,7 @@ class Analise { @@ -250,7 +250,7 @@ class Analise {
250 break; 250 break;
251 // delaunay e voronoi 251 // delaunay e voronoi
252 case "deldir" : 252 case "deldir" :
253 - // error_reporting(0); 253 + // //error_reporting(0);
254 $this->mapaDeldir ( $nomearq, $dir_tmp, $R_path, $locaplic ); 254 $this->mapaDeldir ( $nomearq, $dir_tmp, $R_path, $locaplic );
255 $this->deldirDir2shp ( $nomearq . "dirsgs", $dir_tmp, $locaplic ); 255 $this->deldirDir2shp ( $nomearq . "dirsgs", $dir_tmp, $locaplic );
256 $this->deldirDel2shp ( $nomearq . "delsgs", $dir_tmp, $locaplic ); 256 $this->deldirDel2shp ( $nomearq . "delsgs", $dir_tmp, $locaplic );
@@ -1179,7 +1179,7 @@ class Analise { @@ -1179,7 +1179,7 @@ class Analise {
1179 $lineo = $spt->line ( 0 ); 1179 $lineo = $spt->line ( 0 );
1180 $pt = $lineo->point ( 0 ); 1180 $pt = $lineo->point ( 0 );
1181 // faz a pesquisa 1181 // faz a pesquisa
1182 - // error_reporting(0); 1182 + // //error_reporting(0);
1183 foreach ( $layers as $layer ) { 1183 foreach ( $layers as $layer ) {
1184 $layer->set ( "template", "none.htm" ); 1184 $layer->set ( "template", "none.htm" );
1185 $layer->set ( "toleranceunits", MS_PIXELS ); 1185 $layer->set ( "toleranceunits", MS_PIXELS );
@@ -1270,7 +1270,7 @@ class Analise { @@ -1270,7 +1270,7 @@ class Analise {
1270 * 1270 *
1271 */ 1271 */
1272 function distanciaptpt($temaorigem, $temadestino, $temaoverlay, $locaplic, $itemorigem = "", $itemdestino = "") { 1272 function distanciaptpt($temaorigem, $temadestino, $temaoverlay, $locaplic, $itemorigem = "", $itemdestino = "") {
1273 - // error_reporting(0); 1273 + // //error_reporting(0);
1274 set_time_limit ( 180 ); 1274 set_time_limit ( 180 );
1275 // para manipular dbf 1275 // para manipular dbf
1276 if ($this->dbaseExiste == false) { 1276 if ($this->dbaseExiste == false) {
@@ -1438,7 +1438,7 @@ class Analise { @@ -1438,7 +1438,7 @@ class Analise {
1438 */ 1438 */
1439 function criaBuffer($distancia, $locaplic, $unir = "nao", $wkt = "", $multiplicar = 1, $itemdistancia = "") { 1439 function criaBuffer($distancia, $locaplic, $unir = "nao", $wkt = "", $multiplicar = 1, $itemdistancia = "") {
1440 set_time_limit ( 180 ); 1440 set_time_limit ( 180 );
1441 - error_reporting ( 0 ); 1441 + //error_reporting ( 0 );
1442 if ($this->nome != "") { 1442 if ($this->nome != "") {
1443 $items = pegaItens ( $this->layer ); 1443 $items = pegaItens ( $this->layer );
1444 } else { 1444 } else {
@@ -1580,7 +1580,7 @@ class Analise { @@ -1580,7 +1580,7 @@ class Analise {
1580 if ($this->dbaseExiste == false) { 1580 if ($this->dbaseExiste == false) {
1581 include_once dirname ( __FILE__ ) . "/../pacotes/phpxbase/api_conversion.php"; 1581 include_once dirname ( __FILE__ ) . "/../pacotes/phpxbase/api_conversion.php";
1582 } 1582 }
1583 - // error_reporting(0); 1583 + // //error_reporting(0);
1584 $nomeCentro = nomeRandomico (); 1584 $nomeCentro = nomeRandomico ();
1585 $nomeshp = $this->diretorio . "/" . $nomeCentro; 1585 $nomeshp = $this->diretorio . "/" . $nomeCentro;
1586 // pega os shapes selecionados 1586 // pega os shapes selecionados
@@ -2206,7 +2206,7 @@ class Analise { @@ -2206,7 +2206,7 @@ class Analise {
2206 * $locaplic - Localiza&ccedil;&atilde;o do I3geo 2206 * $locaplic - Localiza&ccedil;&atilde;o do I3geo
2207 */ 2207 */
2208 function nptPol($temaPt, $temaPo, $locaplic, $somaritem = "") { 2208 function nptPol($temaPt, $temaPo, $locaplic, $somaritem = "") {
2209 - // error_reporting(0); 2209 + // //error_reporting(0);
2210 set_time_limit ( 180 ); 2210 set_time_limit ( 180 );
2211 // para manipular dbf 2211 // para manipular dbf
2212 if ($this->dbaseExiste == false) { 2212 if ($this->dbaseExiste == false) {
@@ -2704,7 +2704,7 @@ class Analise { @@ -2704,7 +2704,7 @@ class Analise {
2704 * $operacao - Tipo de an&aacute;lise. 2704 * $operacao - Tipo de an&aacute;lise.
2705 */ 2705 */
2706 function calculaGeometrias($dir_tmp, $imgdir, $lista, $operacao) { 2706 function calculaGeometrias($dir_tmp, $imgdir, $lista, $operacao) {
2707 - // error_reporting(0); 2707 + // //error_reporting(0);
2708 $lista = explode ( ",", $lista ); 2708 $lista = explode ( ",", $lista );
2709 $dir = $dir_tmp . "/" . $imgdir . "/"; 2709 $dir = $dir_tmp . "/" . $imgdir . "/";
2710 foreach ( $lista as $l ) { 2710 foreach ( $lista as $l ) {
@@ -3056,7 +3056,7 @@ class Analise { @@ -3056,7 +3056,7 @@ class Analise {
3056 * ) 3056 * )
3057 * (end) 3057 * (end)
3058 */ 3058 */
3059 - // error_reporting(0); 3059 + // //error_reporting(0);
3060 function classesRasterI($minvalor, $maxvalor, $nclasses, $cores) { 3060 function classesRasterI($minvalor, $maxvalor, $nclasses, $cores) {
3061 $resultado = array (); 3061 $resultado = array ();
3062 $intervalo = intval ( 250 / $nclasses ); 3062 $intervalo = intval ( 250 / $nclasses );
classesphp/classe_atlas.php
@@ -48,7 +48,7 @@ $atlasxml - Objeto xml com o atlas. @@ -48,7 +48,7 @@ $atlasxml - Objeto xml com o atlas.
48 */ 48 */
49 function __construct($xml) 49 function __construct($xml)
50 { 50 {
51 - error_reporting(0); 51 + //error_reporting(0);
52 $this->xml = $xml; 52 $this->xml = $xml;
53 } 53 }
54 /* 54 /*
classesphp/classe_atributos.php
@@ -386,7 +386,7 @@ class Atributos @@ -386,7 +386,7 @@ class Atributos
386 */ 386 */
387 function listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista,$dadosDaClasse="nao") 387 function listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista,$dadosDaClasse="nao")
388 { 388 {
389 - error_reporting(0); 389 + //error_reporting(0);
390 if(!$this->layer){ 390 if(!$this->layer){
391 return "erro"; 391 return "erro";
392 } 392 }
@@ -585,7 +585,7 @@ class Atributos @@ -585,7 +585,7 @@ class Atributos
585 */ 585 */
586 function listaUnicoRapida($item) 586 function listaUnicoRapida($item)
587 { 587 {
588 - error_reporting(0); 588 + //error_reporting(0);
589 if(!$this->layer){ 589 if(!$this->layer){
590 return "erro"; 590 return "erro";
591 } 591 }
@@ -645,7 +645,7 @@ class Atributos @@ -645,7 +645,7 @@ class Atributos
645 */ 645 */
646 function listaRegistrosXY($items,$tipo,$tipolista) 646 function listaRegistrosXY($items,$tipo,$tipolista)
647 { 647 {
648 - error_reporting(0); 648 + //error_reporting(0);
649 if(!$this->layer){ 649 if(!$this->layer){
650 return "erro"; 650 return "erro";
651 } 651 }
classesphp/classe_legenda.php
@@ -297,6 +297,69 @@ class Legenda @@ -297,6 +297,69 @@ class Legenda
297 $l = implode("<tr>",$pedacos); 297 $l = implode("<tr>",$pedacos);
298 return (array("legenda"=>$l,"desativar"=>$desligar)); 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 &eacute; wms ou se o metadata legendaimg est&aacute; 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 function: legendaGrafica 364 function: legendaGrafica
302 365
@@ -599,7 +662,7 @@ class Legenda @@ -599,7 +662,7 @@ class Legenda
599 { 662 {
600 $versao = versao(); 663 $versao = versao();
601 $versao = $versao["principal"]; 664 $versao = $versao["principal"];
602 - error_reporting(0); 665 + //error_reporting(0);
603 if ($tipo == 3){ 666 if ($tipo == 3){
604 $tipo = 2; 667 $tipo = 2;
605 } //tipo raster 668 } //tipo raster
@@ -903,7 +966,7 @@ class Legenda @@ -903,7 +966,7 @@ class Legenda
903 */ 966 */
904 function pegaParametrosLegImg() 967 function pegaParametrosLegImg()
905 { 968 {
906 - error_reporting(0); 969 + //error_reporting(0);
907 $legenda = $this->mapa->legend; 970 $legenda = $this->mapa->legend;
908 $height = $legenda->height; 971 $height = $legenda->height;
909 $width = $legenda->width; 972 $width = $legenda->width;
classesphp/classe_menutemas.php
@@ -123,7 +123,6 @@ array @@ -123,7 +123,6 @@ array
123 $r["temas"] = $temasR; 123 $r["temas"] = $temasR;
124 $final[] = $r; 124 $final[] = $r;
125 } 125 }
126 -  
127 unset($arvore); 126 unset($arvore);
128 return ($final); 127 return ($final);
129 } 128 }
@@ -293,7 +292,7 @@ Array @@ -293,7 +292,7 @@ Array
293 */ 292 */
294 function pegaSistemas() 293 function pegaSistemas()
295 { 294 {
296 - error_reporting(0); 295 + //error_reporting(0);
297 include_once($this->locaplic."/admin/php/xml.php"); 296 include_once($this->locaplic."/admin/php/xml.php");
298 $xmlsistemas = simplexml_load_string(geraXmlSistemas(implode(" ",$this->perfil),$this->locaplic)); 297 $xmlsistemas = simplexml_load_string(geraXmlSistemas(implode(" ",$this->perfil),$this->locaplic));
299 $sistemas = array(); 298 $sistemas = array();
@@ -339,7 +338,7 @@ Array @@ -339,7 +338,7 @@ Array
339 */ 338 */
340 function pegaSistemasI() 339 function pegaSistemasI()
341 { 340 {
342 - error_reporting(0); 341 + //error_reporting(0);
343 include_once($this->locaplic."/admin/php/xml.php"); 342 include_once($this->locaplic."/admin/php/xml.php");
344 343
345 $xmlsistemas = simplexml_load_string(geraXmlIdentifica(implode(" ",$this->perfil),$this->locaplic)); 344 $xmlsistemas = simplexml_load_string(geraXmlIdentifica(implode(" ",$this->perfil),$this->locaplic));
@@ -660,21 +659,22 @@ nrss - (opcional) n&amp;uacute;mero de registros no rss que ser&amp;atilde;o considerado @@ -660,21 +659,22 @@ nrss - (opcional) n&amp;uacute;mero de registros no rss que ser&amp;atilde;o considerado
660 } 659 }
661 return ($final); 660 return ($final);
662 } 661 }
663 - function verificaPapelSessao($id_papel){ 662 + function verificaPapelSessao($id_papel=""){
664 if(!empty($_COOKIE["i3geocodigologin"])){ 663 if(!empty($_COOKIE["i3geocodigologin"])){
665 session_write_close(); 664 session_write_close();
666 session_name("i3GeoLogin"); 665 session_name("i3GeoLogin");
667 session_id($_COOKIE["i3geocodigologin"]); 666 session_id($_COOKIE["i3geocodigologin"]);
668 session_start(); 667 session_start();
669 - //var_dump($_SESSION);exit;  
670 if($_SESSION["usuario"] != $_COOKIE["i3geousuariologin"]){ 668 if($_SESSION["usuario"] != $_COOKIE["i3geousuariologin"]){
671 return false; 669 return false;
672 } 670 }
673 foreach($_SESSION["papeis"] as $p){ 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 return true; 674 return true;
676 } 675 }
677 } 676 }
  677 + return false;
678 } 678 }
679 else{//caso nao exista, retorna um erro 679 else{//caso nao exista, retorna um erro
680 return false; 680 return false;
classesphp/classe_metaestat.php
@@ -1,2017 +0,0 @@ @@ -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&iacute;odo de tempo: ".$periodo["nome"];  
1719 - $regiao = $this->listaTipoRegiao($m["codigo_tipo_regiao"]);  
1720 - $regiao = "Regi&atilde;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 -?>  
classesphp/classe_metaestatinfo.php 0 → 100755
@@ -0,0 +1,2023 @@ @@ -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&iacute;odo de tempo: ".$periodo["nome"];
  1725 + $regiao = $this->listaTipoRegiao($m["codigo_tipo_regiao"]);
  1726 + $regiao = "Regi&atilde;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&amp;ccedil;&amp;atilde;o adiciona|retira|inverte|limpa|novo @@ -594,7 +594,7 @@ $tipo - Tipo de opera&amp;ccedil;&amp;atilde;o adiciona|retira|inverte|limpa|novo
594 } 594 }
595 else 595 else
596 { 596 {
597 - error_reporting(0); 597 + //error_reporting(0);
598 $projInObj = ms_newprojectionobj("proj=longlat,ellps=WGS84,datum=WGS84,no_defs"); 598 $projInObj = ms_newprojectionobj("proj=longlat,ellps=WGS84,datum=WGS84,no_defs");
599 $projOutObj = ms_newprojectionobj("proj=poly,ellps=GRS67,lat_0=0,lon_0=".$pt->x.",x_0=5000000,y_0=10000000"); 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&amp;ccedil;&amp;atilde;o do tema. @@ -664,6 +664,10 @@ Limpa a sele&amp;ccedil;&amp;atilde;o do tema.
664 if (file_exists($file)){ 664 if (file_exists($file)){
665 unlink ($file); 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 if (file_exists($this->qyfile)){ 672 if (file_exists($this->qyfile)){
669 unlink ($this->qyfile); 673 unlink ($this->qyfile);
@@ -719,7 +723,7 @@ $shpi - Indices dos registros novos. @@ -719,7 +723,7 @@ $shpi - Indices dos registros novos.
719 $shp_atual - Indices dos elementos j&aacute; selecionados. 723 $shp_atual - Indices dos elementos j&aacute; selecionados.
720 */ 724 */
721 function selecaoAdiciona($shpi,$shp_atual){ 725 function selecaoAdiciona($shpi,$shp_atual){
722 - error_reporting(0); 726 + //error_reporting(0);
723 if(!$this->layer){ 727 if(!$this->layer){
724 return "erro"; 728 return "erro";
725 } 729 }
@@ -870,7 +874,7 @@ parameters: @@ -870,7 +874,7 @@ parameters:
870 $tipo - Tipo de opera&ccedil;&atilde;o adiciona|retira|inverte|limpa|novo 874 $tipo - Tipo de opera&ccedil;&atilde;o adiciona|retira|inverte|limpa|novo
871 875
872 $ext - coordenadas separadas por espa&ccedil;os no estilo xmin ymin xmax ymax 876 $ext - coordenadas separadas por espa&ccedil;os no estilo xmin ymin xmax ymax
873 - 877 +
874 $retornaShapes - retorna os shapes selecionados. Nesse caso, nao e gerado o arquivo em disco contendo a selecao 878 $retornaShapes - retorna os shapes selecionados. Nesse caso, nao e gerado o arquivo em disco contendo a selecao
875 */ 879 */
876 function selecaoBOX($tipo,$ext,$retornaShapes=false) { 880 function selecaoBOX($tipo,$ext,$retornaShapes=false) {
@@ -922,7 +926,7 @@ $retornaShapes - retorna os shapes selecionados. Nesse caso, nao e gerado o arqu @@ -922,7 +926,7 @@ $retornaShapes - retorna os shapes selecionados. Nesse caso, nao e gerado o arqu
922 } 926 }
923 else{ 927 else{
924 $shpi[] = $this->layer->getfeature($result->shapeindex,-1); 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,7 +990,7 @@ $geos - array com os dados
986 $distancia - distancia em metros 990 $distancia - distancia em metros
987 */ 991 */
988 function projetaDistancia($shape,$distancia){ 992 function projetaDistancia($shape,$distancia){
989 - error_reporting(0); 993 + //error_reporting(0);
990 $pt = $shape->getCentroid(); 994 $pt = $shape->getCentroid();
991 $projInObj = ms_newprojectionobj("proj=longlat,ellps=WGS84,datum=WGS84,no_defs"); 995 $projInObj = ms_newprojectionobj("proj=longlat,ellps=WGS84,datum=WGS84,no_defs");
992 $projOutObj = ms_newprojectionobj("proj=poly,ellps=GRS67,lat_0=0,lon_0=".$pt->x.",x_0=5000000,y_0=10000000"); 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,38 +392,37 @@ Parametros:
392 392
393 lista - lista com a nova ordem para os temas. A lista cont&eacute;m os nomes dos temas separados por v&iacute;rgula. 393 lista - lista com a nova ordem para os temas. A lista cont&eacute;m os nomes dos temas separados por v&iacute;rgula.
394 */ 394 */
395 - function reordenatemas($lista)  
396 - { 395 + function reordenatemas($lista){
  396 + //error_log("kkkk-------".$lista);
397 $nlayers = $this->mapa->numlayers; 397 $nlayers = $this->mapa->numlayers;
398 $lista = explode(",",$lista); 398 $lista = explode(",",$lista);
399 $lista = array_reverse($lista); 399 $lista = array_reverse($lista);
400 $novaordem = array(); 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 $la = $this->mapa->getlayer($i); 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 $g = strtoupper($la->group); 412 $g = strtoupper($la->group);
414 $n = strtoupper($la->name); 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 $this->mapa->setlayersdrawingorder($novaordem); 426 $this->mapa->setlayersdrawingorder($novaordem);
428 return "ok"; 427 return "ok";
429 } 428 }
classesphp/classe_toponimia.php
@@ -180,7 +180,7 @@ Retorno: @@ -180,7 +180,7 @@ Retorno:
180 */ 180 */
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") 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 if(!$this->layer){return "erro";} 184 if(!$this->layer){return "erro";}
185 $this->removeToponimia(); 185 $this->removeToponimia();
186 186
classesphp/funcoes_gerais.php
@@ -406,10 +406,10 @@ function listaArquivos($diretorio,$seguro=false,$permitido=array(&quot;png&quot;,&quot;PNG&quot;,&quot;jp @@ -406,10 +406,10 @@ function listaArquivos($diretorio,$seguro=false,$permitido=array(&quot;png&quot;,&quot;PNG&quot;,&quot;jp
406 { 406 {
407 if ($nd != "." && $nd != ".."){ 407 if ($nd != "." && $nd != ".."){
408 $ext = explode(".",$nd); 408 $ext = explode(".",$nd);
409 - if (count($ext)>1){ 409 + if (count($ext) == 2){
410 if($seguro == true){ 410 if($seguro == true){
411 $buscar = $ext[1]; 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 if(in_array($buscar,$permitido)){ 413 if(in_array($buscar,$permitido)){
414 $arqs[] = $nd; 414 $arqs[] = $nd;
415 $nomes[] = basename($nd); 415 $nomes[] = basename($nd);
@@ -429,7 +429,7 @@ function listaArquivos($diretorio,$seguro=false,$permitido=array(&quot;png&quot;,&quot;PNG&quot;,&quot;jp @@ -429,7 +429,7 @@ function listaArquivos($diretorio,$seguro=false,$permitido=array(&quot;png&quot;,&quot;PNG&quot;,&quot;jp
429 $exts[] = $ext[1]; 429 $exts[] = $ext[1];
430 } 430 }
431 } 431 }
432 - if (count($ext)==1){ 432 + if (count($ext)==1 && is_dir($diretorio."/".$nd)){
433 $dirs[] = $nd; 433 $dirs[] = $nd;
434 } 434 }
435 } 435 }
@@ -536,7 +536,7 @@ Retorno: @@ -536,7 +536,7 @@ Retorno:
536 */ 536 */
537 function substituiCon($map_file,$postgis_mapa) 537 function substituiCon($map_file,$postgis_mapa)
538 { 538 {
539 - error_reporting(0); 539 + //error_reporting(0);
540 if (!empty($postgis_mapa) && (file_exists($map_file))) 540 if (!empty($postgis_mapa) && (file_exists($map_file)))
541 { 541 {
542 if(!@ms_newMapObj($map_file)){return false;} 542 if(!@ms_newMapObj($map_file)){return false;}
@@ -571,7 +571,7 @@ function substituiCon($map_file,$postgis_mapa) @@ -571,7 +571,7 @@ function substituiCon($map_file,$postgis_mapa)
571 return true; 571 return true;
572 } 572 }
573 function substituiConObj($objMap,$postgis_mapa){ 573 function substituiConObj($objMap,$postgis_mapa){
574 - error_reporting(0); 574 + //error_reporting(0);
575 if (!empty($postgis_mapa)){ 575 if (!empty($postgis_mapa)){
576 $numlayers = $objMap->numlayers; 576 $numlayers = $objMap->numlayers;
577 for ($i=0;$i < $numlayers;++$i) 577 for ($i=0;$i < $numlayers;++$i)
@@ -2561,7 +2561,7 @@ $a {string} @@ -2561,7 +2561,7 @@ $a {string}
2561 function echojson($a) 2561 function echojson($a)
2562 { 2562 {
2563 //ob_clean(); 2563 //ob_clean();
2564 - error_reporting(0); 2564 + //error_reporting(0);
2565 ob_end_clean(); 2565 ob_end_clean();
2566 //if(extension_loaded('zlib')) 2566 //if(extension_loaded('zlib'))
2567 //{ob_start('ob_gzhandler');} 2567 //{ob_start('ob_gzhandler');}
@@ -2851,7 +2851,7 @@ $salva - salva o mapfile com os layers removidos ou nao @@ -2851,7 +2851,7 @@ $salva - salva o mapfile com os layers removidos ou nao
2851 Retorno: boolean indicando se o mapfile contem layers indevidos 2851 Retorno: boolean indicando se o mapfile contem layers indevidos
2852 */ 2852 */
2853 function validaAcessoTemas($map_file,$salva = true){ 2853 function validaAcessoTemas($map_file,$salva = true){
2854 - error_reporting(0); 2854 + //error_reporting(0);
2855 $indevidos = listaLayersIndevidos($map_file); 2855 $indevidos = listaLayersIndevidos($map_file);
2856 $existeIndevidos = false; 2856 $existeIndevidos = false;
2857 if(count($indevidos) > 0){ 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,7 +2884,7 @@ O retorno e um array com a chave sendo o codigo do tema e o valor um array com a
2884 function listaTemasRestritos(){ 2884 function listaTemasRestritos(){
2885 global $esquemaadmin; 2885 global $esquemaadmin;
2886 include_once(dirname(__FILE__)."/../admin/php/admin.php"); 2886 include_once(dirname(__FILE__)."/../admin/php/admin.php");
2887 - error_reporting(0); 2887 + //error_reporting(0);
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"); 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 $restritos = array(); 2889 $restritos = array();
2890 foreach ($res as $r){ 2890 foreach ($res as $r){
@@ -2903,7 +2903,7 @@ Function: listaLayersIndevidos @@ -2903,7 +2903,7 @@ Function: listaLayersIndevidos
2903 Lista os layers de um mapfile que sao restritos e que nao sao permitidos ao usuario logado 2903 Lista os layers de um mapfile que sao restritos e que nao sao permitidos ao usuario logado
2904 */ 2904 */
2905 function listaLayersIndevidos($map_file){ 2905 function listaLayersIndevidos($map_file){
2906 - error_reporting(0); 2906 + //error_reporting(0);
2907 $indevidos = array(); 2907 $indevidos = array();
2908 $restritos = listaTemasRestritos(); 2908 $restritos = listaTemasRestritos();
2909 if(count($restritos) > 0){ 2909 if(count($restritos) > 0){
@@ -2947,7 +2947,7 @@ Function: listaTemasIndevidos @@ -2947,7 +2947,7 @@ Function: listaTemasIndevidos
2947 Lista os temas que sao restritos e que nao sao permitidos ao usuario logado 2947 Lista os temas que sao restritos e que nao sao permitidos ao usuario logado
2948 */ 2948 */
2949 function listaTemasIndevidos(){ 2949 function listaTemasIndevidos(){
2950 - error_reporting(0); 2950 + //error_reporting(0);
2951 $indevidos = array(); 2951 $indevidos = array();
2952 $restritos = listaTemasRestritos(); 2952 $restritos = listaTemasRestritos();
2953 if(count($restritos) > 0){ 2953 if(count($restritos) > 0){
@@ -2969,7 +2969,7 @@ Function: listaGruposUsrLogin @@ -2969,7 +2969,7 @@ Function: listaGruposUsrLogin
2969 Lista os grupos ao qual pertence o usuario atualmente logado 2969 Lista os grupos ao qual pertence o usuario atualmente logado
2970 */ 2970 */
2971 function listaGruposUsrLogin(){ 2971 function listaGruposUsrLogin(){
2972 - error_reporting(0); 2972 + //error_reporting(0);
2973 //echo $_COOKIE["i3geocodigologin"];exit; 2973 //echo $_COOKIE["i3geocodigologin"];exit;
2974 if(empty($_COOKIE["i3geocodigologin"])){ 2974 if(empty($_COOKIE["i3geocodigologin"])){
2975 return array(); 2975 return array();
@@ -3135,7 +3135,7 @@ function pegaDadosAdminKey($sql,$subsEsquema){ @@ -3135,7 +3135,7 @@ function pegaDadosAdminKey($sql,$subsEsquema){
3135 $resultado = array(); 3135 $resultado = array();
3136 include(dirname(__FILE__)."/../admin/php/conexao.php"); 3136 include(dirname(__FILE__)."/../admin/php/conexao.php");
3137 $sql = str_replace($subsEsquema,$esquemaadmin,$sql); 3137 $sql = str_replace($subsEsquema,$esquemaadmin,$sql);
3138 - error_reporting(0); 3138 + //error_reporting(0);
3139 $q = $dbh->query($sql,PDO::FETCH_ASSOC); 3139 $q = $dbh->query($sql,PDO::FETCH_ASSOC);
3140 if($q){ 3140 if($q){
3141 $resultado = $q->fetchAll( PDO::FETCH_GROUP| PDO::FETCH_UNIQUE); 3141 $resultado = $q->fetchAll( PDO::FETCH_GROUP| PDO::FETCH_UNIQUE);
classesphp/mapa_controle.php
@@ -100,7 +100,7 @@ imgdir - localiza&amp;ccedil;&amp;atilde;o, no servidor, das imagens tempor&amp;aacute;rias @@ -100,7 +100,7 @@ imgdir - localiza&amp;ccedil;&amp;atilde;o, no servidor, das imagens tempor&amp;aacute;rias
100 debug - (pode ser definido como "sim" indica se o erro_reporting deve ser definido como E_ALL 100 debug - (pode ser definido como "sim" indica se o erro_reporting deve ser definido como E_ALL
101 contadorsalva - indica quantas vezes o mapa j&aacute; foi salvo. Permite que uma aplica&ccedil;&atilde;o verifique se o mapa foi alterado ou n&atilde;o. 101 contadorsalva - indica quantas vezes o mapa j&aacute; foi salvo. Permite que uma aplica&ccedil;&atilde;o verifique se o mapa foi alterado ou n&atilde;o.
102 */ 102 */
103 -error_reporting(0); 103 +//error_reporting(0);
104 104
105 //sleep(5); 105 //sleep(5);
106 106
@@ -108,7 +108,6 @@ error_reporting(0); @@ -108,7 +108,6 @@ error_reporting(0);
108 //pega as variaveis passadas com get ou post 108 //pega as variaveis passadas com get ou post
109 // 109 //
110 $tempo = microtime(1); 110 $tempo = microtime(1);
111 -  
112 include_once("sani_request.php"); 111 include_once("sani_request.php");
113 $_pg = array_merge($_GET,$_POST); 112 $_pg = array_merge($_GET,$_POST);
114 113
@@ -133,6 +132,7 @@ if ($funcao != &quot;listaEpsg&quot; &amp;&amp; $funcao != &quot;pegaTodosTemas&quot; &amp;&amp; $funcao != &quot;downloa @@ -133,6 +132,7 @@ if ($funcao != &quot;listaEpsg&quot; &amp;&amp; $funcao != &quot;pegaTodosTemas&quot; &amp;&amp; $funcao != &quot;downloa
133 $imgurl = $_SESSION["imgurl"]; 132 $imgurl = $_SESSION["imgurl"];
134 $tmpurl = $_SESSION["tmpurl"]; 133 $tmpurl = $_SESSION["tmpurl"];
135 $map_file = $_SESSION["map_file"]; 134 $map_file = $_SESSION["map_file"];
  135 + //error_log($map_file);
136 $mapext = $_SESSION["mapext"]; 136 $mapext = $_SESSION["mapext"];
137 $dir_tmp = $_SESSION["dir_tmp"] ; 137 $dir_tmp = $_SESSION["dir_tmp"] ;
138 $cachedir = $_SESSION["cachedir"]; 138 $cachedir = $_SESSION["cachedir"];
@@ -191,7 +191,7 @@ if(isset($interfaceTemp) &amp;&amp; $interfaceTemp != &quot;&quot;){ @@ -191,7 +191,7 @@ if(isset($interfaceTemp) &amp;&amp; $interfaceTemp != &quot;&quot;){
191 $_SESSION["interface"] = $interfaceTemp; 191 $_SESSION["interface"] = $interfaceTemp;
192 $interface = $interfaceTemp; 192 $interface = $interfaceTemp;
193 } 193 }
194 -error_reporting(0); 194 +//error_reporting(0);
195 // 195 //
196 //teste de timeout 196 //teste de timeout
197 // 197 //
@@ -211,7 +211,10 @@ if(isset($logExec) &amp;&amp; $logExec[&quot;controle&quot;] == true){ @@ -211,7 +211,10 @@ if(isset($logExec) &amp;&amp; $logExec[&quot;controle&quot;] == true){
211 if($funcao == "criaMapa"){ 211 if($funcao == "criaMapa"){
212 session_name("i3GeoPHP"); 212 session_name("i3GeoPHP");
213 unset($GLOBALS); 213 unset($GLOBALS);
214 - session_destroy(); 214 + if(session_status() == PHP_SESSION_ACTIVE){
  215 + //error_log("--------------Apagando a session");
  216 + session_destroy();
  217 + }
215 $_COOKIE = array(); 218 $_COOKIE = array();
216 // 219 //
217 //primeiro &eacute; necess&aacute;rio carregar o ms_configura.php para pegar a vari&aacute;vel $locaplic 220 //primeiro &eacute; necess&aacute;rio carregar o ms_configura.php para pegar a vari&aacute;vel $locaplic
@@ -240,13 +243,12 @@ if (!isset($map_file)) @@ -240,13 +243,12 @@ if (!isset($map_file))
240 //$cp->set_data(array("erro"=>"linkquebrado")); 243 //$cp->set_data(array("erro"=>"linkquebrado"));
241 //$cp->return_data(); 244 //$cp->return_data();
242 //cpjson(array("erro"=>"linkquebrado")); 245 //cpjson(array("erro"=>"linkquebrado"));
243 - ilegal();  
244 exit; 246 exit;
245 } 247 }
246 248
247 include_once("classe_vermultilayer.php"); 249 include_once("classe_vermultilayer.php");
248 include_once("classe_estatistica.php"); 250 include_once("classe_estatistica.php");
249 -error_reporting(0); 251 +//error_reporting(0);
250 // 252 //
251 //identifica qual a url do i3geo 253 //identifica qual a url do i3geo
252 // 254 //
@@ -595,45 +597,51 @@ switch (strtoupper($funcao)) @@ -595,45 +597,51 @@ switch (strtoupper($funcao))
595 <Mapa->adicionaTemaSHP> 597 <Mapa->adicionaTemaSHP>
596 */ 598 */
597 case "ADICIONATEMASHP": 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&aacute; 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 else{ 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 Valor: ADICIONATEMAIMG 646 Valor: ADICIONATEMAIMG
639 647
@@ -642,17 +650,48 @@ switch (strtoupper($funcao)) @@ -642,17 +650,48 @@ switch (strtoupper($funcao))
642 <Mapa->adicionaTemaIMG> 650 <Mapa->adicionaTemaIMG>
643 */ 651 */
644 case "ADICIONATEMAIMG": 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&aacute; 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 break; 696 break;
658 /* 697 /*
@@ -1734,9 +1773,8 @@ switch (strtoupper($funcao)) @@ -1734,9 +1773,8 @@ switch (strtoupper($funcao))
1734 $editores = $_pg["editores"]; 1773 $editores = $_pg["editores"];
1735 $perfil = $_pg["perfil"]; 1774 $perfil = $_pg["perfil"];
1736 $idioma = $_pg["idioma"]; 1775 $idioma = $_pg["idioma"];
1737 -  
1738 $m = new Menutemas($map_file,$perfil,$locaplic,$urli3geo,$editores,$idioma); 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 break; 1778 break;
1741 /* 1779 /*
1742 Valor: PEGAMAPAS 1780 Valor: PEGAMAPAS
@@ -2092,6 +2130,7 @@ switch (strtoupper($funcao)) @@ -2092,6 +2130,7 @@ switch (strtoupper($funcao))
2092 } 2130 }
2093 } 2131 }
2094 } 2132 }
  2133 +
2095 $retorno = $m->listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista,$dadosDaClasse); 2134 $retorno = $m->listaRegistros($itemtema,$tipo,$unico,$inicio,$fim,$tipolista,$dadosDaClasse);
2096 $retorno["legenda"] = $legenda; 2135 $retorno["legenda"] = $legenda;
2097 break; 2136 break;
@@ -2427,6 +2466,19 @@ switch (strtoupper($funcao)) @@ -2427,6 +2466,19 @@ switch (strtoupper($funcao))
2427 } 2466 }
2428 $retorno = $r; 2467 $retorno = $r;
2429 break; 2468 break;
  2469 + case "CRIALEGENDAJSON":
  2470 + include_once("classe_legenda.php");
  2471 + //para efeitos de compatibilidade com vers&otilde;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 Valor: CRIALEGENDAIMAGEM 2483 Valor: CRIALEGENDAIMAGEM
2432 2484
@@ -2543,26 +2595,6 @@ switch (strtoupper($funcao)) @@ -2543,26 +2595,6 @@ switch (strtoupper($funcao))
2543 $retorno = $googleApiKey; 2595 $retorno = $googleApiKey;
2544 break; 2596 break;
2545 /* 2597 /*
2546 - Valor: LISTADRIVES  
2547 -  
2548 - Pega a lista de drives registrados para o usu&aacute;rio atual.  
2549 -  
2550 - A lista de drives &eacute; definida no ms_configura e permite que o usu&aacute;rio navegue pelos arquivos do servidor.  
2551 - */  
2552 - case "LISTADRIVES":  
2553 - include(dirname(__FILE__)."/../ms_configura.php");  
2554 - //verifica se est&aacute; 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 Valor: LISTAINTERFACES 2598 Valor: LISTAINTERFACES
2567 2599
2568 Lista as interfaces de abertura de mapas 2600 Lista as interfaces de abertura de mapas
classesphp/mapa_googleearth.php
@@ -37,7 +37,7 @@ i3geo/classesphp/mapa_googleearth.php @@ -37,7 +37,7 @@ i3geo/classesphp/mapa_googleearth.php
37 */ 37 */
38 include("sani_request.php"); 38 include("sani_request.php");
39 //error_reporting(0); 39 //error_reporting(0);
40 -error_reporting(0); 40 +//error_reporting(0);
41 //para efeitos de compatibilidade 41 //para efeitos de compatibilidade
42 if (!function_exists('ms_GetVersion')){ 42 if (!function_exists('ms_GetVersion')){
43 include_once ("carrega_ext.php"); 43 include_once ("carrega_ext.php");
@@ -103,7 +103,7 @@ function retornaKml(){ @@ -103,7 +103,7 @@ function retornaKml(){
103 echo $kml; 103 echo $kml;
104 } 104 }
105 function retornaWms($map_fileX,$postgis_mapa){ 105 function retornaWms($map_fileX,$postgis_mapa){
106 - error_reporting(0); 106 + //error_reporting(0);
107 if(isset($_GET["bbox"])) 107 if(isset($_GET["bbox"]))
108 {$_GET["BBOX"] = $_GET["bbox"];} 108 {$_GET["BBOX"] = $_GET["bbox"];}
109 if(isset($_GET["BBOX"])) 109 if(isset($_GET["BBOX"]))
classesphp/mapa_googlemaps.php
@@ -60,7 +60,7 @@ i3geo/classesphp/mapa_googlemaps.php @@ -60,7 +60,7 @@ i3geo/classesphp/mapa_googlemaps.php
60 60
61 */ 61 */
62 //error_reporting(0); 62 //error_reporting(0);
63 -error_reporting(0); 63 +//error_reporting(0);
64 include("sani_request.php"); 64 include("sani_request.php");
65 //para efeitos de compatibilidade 65 //para efeitos de compatibilidade
66 if (!function_exists('ms_GetVersion')){ 66 if (!function_exists('ms_GetVersion')){
classesphp/mapa_inicia.php
@@ -119,7 +119,7 @@ function iniciaMapa() @@ -119,7 +119,7 @@ function iniciaMapa()
119 if(!isset($kmlurl)){ 119 if(!isset($kmlurl)){
120 $kmlurl = ""; 120 $kmlurl = "";
121 } 121 }
122 - error_reporting(0); 122 + //error_reporting(0);
123 if(!isset($interface)){ 123 if(!isset($interface)){
124 $interface = ""; 124 $interface = "";
125 } 125 }
@@ -191,7 +191,7 @@ function iniciaMapa() @@ -191,7 +191,7 @@ function iniciaMapa()
191 $urli3geo = str_replace("/classesphp/mapa_controle.php","",$protocolo.$_SERVER["PHP_SELF"]); 191 $urli3geo = str_replace("/classesphp/mapa_controle.php","",$protocolo.$_SERVER["PHP_SELF"]);
192 //altera o tamanho do query map para ficar igual ao do mapa 192 //altera o tamanho do query map para ficar igual ao do mapa
193 include_once("classe_mapa.php"); 193 include_once("classe_mapa.php");
194 - error_reporting(0); 194 + //error_reporting(0);
195 if(!function_exists("sobeAnno")){ 195 if(!function_exists("sobeAnno")){
196 include_once("funcoes_gerais.php"); 196 include_once("funcoes_gerais.php");
197 } 197 }
@@ -203,7 +203,7 @@ function iniciaMapa() @@ -203,7 +203,7 @@ function iniciaMapa()
203 $m = new Mapa($map_file); 203 $m = new Mapa($map_file);
204 $m->mapa->setsize($w,$h); 204 $m->mapa->setsize($w,$h);
205 } 205 }
206 - error_reporting(0); 206 + //error_reporting(0);
207 // 207 //
208 //verifica se a legenda deve ser embebida no mapa 208 //verifica se a legenda deve ser embebida no mapa
209 // 209 //
classesphp/mapa_openlayers.php
@@ -64,7 +64,7 @@ include(&quot;sani_request.php&quot;); @@ -64,7 +64,7 @@ include(&quot;sani_request.php&quot;);
64 if (!function_exists('ms_GetVersion')){ 64 if (!function_exists('ms_GetVersion')){
65 include_once ("carrega_ext.php"); 65 include_once ("carrega_ext.php");
66 } 66 }
67 -error_reporting(0); 67 +//error_reporting(0);
68 inicializa(); 68 inicializa();
69 // 69 //
70 //calcula a extensao geografica com base no x,y,z 70 //calcula a extensao geografica com base no x,y,z
@@ -295,6 +295,10 @@ if(isset($_GET[&quot;map_size&quot;])){ @@ -295,6 +295,10 @@ if(isset($_GET[&quot;map_size&quot;])){
295 295
296 if(isset($_GET["mapext"])){ 296 if(isset($_GET["mapext"])){
297 $mapext = explode(" ",$_GET["mapext"]); 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 $mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]); 302 $mapa->setExtent($mapext[0],$mapext[1],$mapext[2],$mapext[3]);
299 } 303 }
300 // 304 //
classesphp/metaestat_controle.php 0 → 100755
@@ -0,0 +1,199 @@ @@ -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,7 +51,7 @@ Exemplo:
51 51
52 http://localhost/i3geo/classesphp/parse_cgi.php?g_sid=dgge4877dhhhgrjjey&map_size=500 500 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 include_once (dirname(__FILE__)."/classesphp/sani_request.php"); 55 include_once (dirname(__FILE__)."/classesphp/sani_request.php");
56 $_GET = array_merge($_GET,$_POST); 56 $_GET = array_merge($_GET,$_POST);
57 include_once ("carrega_ext.php"); 57 include_once ("carrega_ext.php");
classesphp/sani_request.php
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 if (basename(__FILE__) == basename($_SERVER['SCRIPT_FILENAME'])){ 2 if (basename(__FILE__) == basename($_SERVER['SCRIPT_FILENAME'])){
3 exit; 3 exit;
4 } 4 }
5 -error_reporting(0); 5 +//error_reporting(0);
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",";"); 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 if (isset($_GET)){ 7 if (isset($_GET)){
8 foreach(array_keys($_GET) as $k) { 8 foreach(array_keys($_GET) as $k) {
classesphp/wmswfs.php
@@ -57,7 +57,7 @@ function gravaCacheWMS($servico) @@ -57,7 +57,7 @@ function gravaCacheWMS($servico)
57 if($dir_tmp == ""){ 57 if($dir_tmp == ""){
58 include(dirname(__FILE__)."/../ms_configura.php"); 58 include(dirname(__FILE__)."/../ms_configura.php");
59 } 59 }
60 - error_reporting(0); 60 + //error_reporting(0);
61 try{ 61 try{
62 $teste = explode("=",$servico); 62 $teste = explode("=",$servico);
63 if ( count($teste) > 1 ){ 63 if ( count($teste) > 1 ){
@@ -483,7 +483,7 @@ function listaLayersWMS() @@ -483,7 +483,7 @@ function listaLayersWMS()
483 include_once(dirname(__FILE__)."/../admin/php/admin.php"); 483 include_once(dirname(__FILE__)."/../admin/php/admin.php");
484 include_once(dirname(__FILE__)."/../admin/php/webservices.php"); 484 include_once(dirname(__FILE__)."/../admin/php/webservices.php");
485 485
486 - error_reporting(0); 486 + //error_reporting(0);
487 if($tipo_ws != "WMSMETAESTAT" && $nivel < 2){ 487 if($tipo_ws != "WMSMETAESTAT" && $nivel < 2){
488 if($wms_service_request == "erro") { 488 if($wms_service_request == "erro") {
489 //registra a tentativa de acesso 489 //registra a tentativa de acesso
@@ -591,7 +591,7 @@ function imprimeTag($r,$retorna) @@ -591,7 +591,7 @@ function imprimeTag($r,$retorna)
591 } 591 }
592 function pegaTag($layer) 592 function pegaTag($layer)
593 { 593 {
594 - error_reporting(0); 594 + //error_reporting(0);
595 $noslayer = $layer->childNodes; 595 $noslayer = $layer->childNodes;
596 $resultado = array( 596 $resultado = array(
597 "estiloas" => array(), 597 "estiloas" => array(),
classesphp/wscliente.php
@@ -52,6 +52,7 @@ include_once(&quot;lews/wms_functions.php&quot;); @@ -52,6 +52,7 @@ include_once(&quot;lews/wms_functions.php&quot;);
52 include_once(dirname(__FILE__)."/../pacotes/cpaint/cpaint2.inc.php"); 52 include_once(dirname(__FILE__)."/../pacotes/cpaint/cpaint2.inc.php");
53 include_once("carrega_ext.php"); 53 include_once("carrega_ext.php");
54 include(dirname(__FILE__)."/../ms_configura.php"); 54 include(dirname(__FILE__)."/../ms_configura.php");
  55 +
55 $cp = new cpaint(); 56 $cp = new cpaint();
56 57
57 $onlineresource = $_GET["onlineresource"]; 58 $onlineresource = $_GET["onlineresource"];
@@ -64,6 +65,7 @@ $rss = $_GET[&quot;rss&quot;]; @@ -64,6 +65,7 @@ $rss = $_GET[&quot;rss&quot;];
64 //busca o getcapabilities de um wms 65 //busca o getcapabilities de um wms
65 // 66 //
66 $funcao = $_GET["funcao"]; 67 $funcao = $_GET["funcao"];
  68 +
67 if ($funcao == "getcapabilities") 69 if ($funcao == "getcapabilities")
68 { 70 {
69 $cp->register('getcapabilities'); 71 $cp->register('getcapabilities');
@@ -379,9 +381,7 @@ if ($funcao == &quot;listaRSSws&quot;) @@ -379,9 +381,7 @@ if ($funcao == &quot;listaRSSws&quot;)
379 { 381 {
380 $cp->register('listaRSSws'); 382 $cp->register('listaRSSws');
381 $cp->start(); 383 $cp->start();
382 - if(ob_get_contents ()){  
383 - ob_end_clean();  
384 - } 384 + ob_clean;
385 $cp->return_data(); 385 $cp->return_data();
386 exit; 386 exit;
387 } 387 }
@@ -493,6 +493,7 @@ Retorno: @@ -493,6 +493,7 @@ Retorno:
493 function listaRSSwsARRAY() 493 function listaRSSwsARRAY()
494 { 494 {
495 global $cp,$rss,$locaplic,$tipo; 495 global $cp,$rss,$locaplic,$tipo;
  496 +
496 if(!isset($tipo)){$tipo = "GEORSS";} 497 if(!isset($tipo)){$tipo = "GEORSS";}
497 include_once("$locaplic/classesphp/funcoes_gerais.php"); 498 include_once("$locaplic/classesphp/funcoes_gerais.php");
498 include_once("$locaplic/admin/php/xml.php"); 499 include_once("$locaplic/admin/php/xml.php");
@@ -199,7 +199,7 @@ Botao de ligar desligar do tipo chave da arvore de camadas @@ -199,7 +199,7 @@ Botao de ligar desligar do tipo chave da arvore de camadas
199 #i3GEOcopyright { 199 #i3GEOcopyright {
200 position: absolute; 200 position: absolute;
201 left: 10px; 201 left: 10px;
202 - top: 2.8em; 202 + top: 5px;
203 display: block; 203 display: block;
204 } 204 }
205 #buscaRapidaGuia { 205 #buscaRapidaGuia {
@@ -259,11 +259,11 @@ no caso do OL3 @@ -259,11 +259,11 @@ no caso do OL3
259 } 259 }
260 260
261 .ol-zoom { 261 .ol-zoom {
262 - top: 3.8em; 262 + top: 2.8em;
263 } 263 }
264 264
265 .ol-i3GEOcontrols { 265 .ol-i3GEOcontrols {
266 - top: 3.8em; 266 + top: 2.8em;
267 left: 3em; 267 left: 3em;
268 width: auto; 268 width: auto;
269 } 269 }
css/default.css 0 → 100644
@@ -0,0 +1,390 @@ @@ -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 \ No newline at end of file 391 \ No newline at end of file
@@ -652,7 +652,6 @@ A:hover { @@ -652,7 +652,6 @@ A:hover {
652 img { 652 img {
653 border: 0px solid #FFFFFF; 653 border: 0px solid #FFFFFF;
654 border-width: 0; 654 border-width: 0;
655 - cursor: pointer  
656 } 655 }
657 656
658 table { 657 table {
@@ -664,7 +663,6 @@ table { @@ -664,7 +663,6 @@ table {
664 } 663 }
665 664
666 div { 665 div {
667 - text-align: center;  
668 border: 0px solid #FFFFFF; 666 border: 0px solid #FFFFFF;
669 font-family: Verdana, Arial, Helvetica, sans-serif; 667 font-family: Verdana, Arial, Helvetica, sans-serif;
670 position: relative; 668 position: relative;
@@ -676,12 +674,7 @@ i { @@ -676,12 +674,7 @@ i {
676 font-family: Verdana, Arial, Helvetica, sans-serif; 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 H1 { 679 H1 {
687 COLOR: #2F4632; 680 COLOR: #2F4632;
@@ -1401,40 +1394,7 @@ h1 { @@ -1401,40 +1394,7 @@ h1 {
1401 background-size: 16px 144px; 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 /* esconde na impressao */ 1398 /* esconde na impressao */
1439 @media print { 1399 @media print {
1440 .noprint { 1400 .noprint {
@@ -1464,10 +1424,22 @@ h1 { @@ -1464,10 +1424,22 @@ h1 {
1464 #i3GEOcompartilhar { 1424 #i3GEOcompartilhar {
1465 display: none !important; 1425 display: none !important;
1466 } 1426 }
1467 - #i3GEOguiaMovel { 1427 + .iconesGuiaMovel {
1468 display: none !important; 1428 display: none !important;
1469 } 1429 }
1470 #localizarxy { 1430 #localizarxy {
1471 display: none !important; 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 font-family: Verdana, Arial, Helvetica, sans-serif; 2 font-family: Verdana, Arial, Helvetica, sans-serif;
3 } 3 }
4 input[type=text], textarea, input[type=number]{ 4 input[type=text], textarea, input[type=number]{
css/i3geo7.css
@@ -8,8 +8,7 @@ input[type=text], textarea, input[type=number]{ @@ -8,8 +8,7 @@ input[type=text], textarea, input[type=number]{
8 -o-user-select: text; 8 -o-user-select: text;
9 user-select: text; 9 user-select: text;
10 } 10 }
11 -input[type=text] {  
12 -font-size: 10px; 11 +.bd input[type=text] {
13 color: #2F4632; 12 color: #2F4632;
14 background-color: rgb(250, 250, 250); 13 background-color: rgb(250, 250, 250);
15 padding: 0; 14 padding: 0;
@@ -849,7 +848,6 @@ outline : none; @@ -849,7 +848,6 @@ outline : none;
849 img { 848 img {
850 border: 0px solid #FFFFFF; 849 border: 0px solid #FFFFFF;
851 border-width: 0; 850 border-width: 0;
852 -cursor: pointer  
853 } 851 }
854 table { 852 table {
855 text-align: center; 853 text-align: center;
@@ -859,7 +857,6 @@ margin: 0px; @@ -859,7 +857,6 @@ margin: 0px;
859 font-family: Verdana, Arial, Helvetica, sans-serif; 857 font-family: Verdana, Arial, Helvetica, sans-serif;
860 } 858 }
861 div { 859 div {
862 -text-align: center;  
863 border: 0px solid #FFFFFF; 860 border: 0px solid #FFFFFF;
864 font-family: Verdana, Arial, Helvetica, sans-serif; 861 font-family: Verdana, Arial, Helvetica, sans-serif;
865 position: relative; 862 position: relative;
@@ -869,12 +866,6 @@ color: #660000; @@ -869,12 +866,6 @@ color: #660000;
869 BACKGROUND-COLOR: #ffffcc; 866 BACKGROUND-COLOR: #ffffcc;
870 font-family: Verdana, Arial, Helvetica, sans-serif; 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 H1 { 869 H1 {
879 COLOR: #2F4632; 870 COLOR: #2F4632;
880 text-align: left; 871 text-align: left;
@@ -1514,40 +1505,6 @@ background: transparent url(&quot;../imagens/menuarodwn8_nrm_1.gif&quot;) no-repeat scroll @@ -1514,40 +1505,6 @@ background: transparent url(&quot;../imagens/menuarodwn8_nrm_1.gif&quot;) no-repeat scroll
1514 background-size: 16px 144px; 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 /* esconde na impressao */ 1508 /* esconde na impressao */
1552 @media print { 1509 @media print {
1553 .noprint { 1510 .noprint {
@@ -1577,12 +1534,24 @@ display: none !important; @@ -1577,12 +1534,24 @@ display: none !important;
1577 #i3GEOcompartilhar { 1534 #i3GEOcompartilhar {
1578 display: none !important; 1535 display: none !important;
1579 } 1536 }
1580 -#i3GEOguiaMovel { 1537 +.iconesGuiaMovel {
1581 display: none !important; 1538 display: none !important;
1582 } 1539 }
1583 #localizarxy { 1540 #localizarxy {
1584 display: none !important; 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 #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 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 font-family: Verdana, Arial, Helvetica, sans-serif; 2 font-family: Verdana, Arial, Helvetica, sans-serif;
3 } 3 }
4 input[type=text], textarea, input[type=number]{ 4 input[type=text], textarea, input[type=number]{
@@ -8,8 +8,7 @@ input[type=text], textarea, input[type=number]{ @@ -8,8 +8,7 @@ input[type=text], textarea, input[type=number]{
8 -o-user-select: text; 8 -o-user-select: text;
9 user-select: text; 9 user-select: text;
10 } 10 }
11 -input[type=text] {  
12 -font-size: 10px; 11 +.bd input[type=text] {
13 color: #2F4632; 12 color: #2F4632;
14 background-color: rgb(250, 250, 250); 13 background-color: rgb(250, 250, 250);
15 padding: 0; 14 padding: 0;
@@ -849,7 +848,6 @@ outline : none; @@ -849,7 +848,6 @@ outline : none;
849 img { 848 img {
850 border: 0px solid #FFFFFF; 849 border: 0px solid #FFFFFF;
851 border-width: 0; 850 border-width: 0;
852 -cursor: pointer  
853 } 851 }
854 table { 852 table {
855 text-align: center; 853 text-align: center;
@@ -859,7 +857,6 @@ margin: 0px; @@ -859,7 +857,6 @@ margin: 0px;
859 font-family: Verdana, Arial, Helvetica, sans-serif; 857 font-family: Verdana, Arial, Helvetica, sans-serif;
860 } 858 }
861 div { 859 div {
862 -text-align: center;  
863 border: 0px solid #FFFFFF; 860 border: 0px solid #FFFFFF;
864 font-family: Verdana, Arial, Helvetica, sans-serif; 861 font-family: Verdana, Arial, Helvetica, sans-serif;
865 position: relative; 862 position: relative;
@@ -869,12 +866,6 @@ color: #660000; @@ -869,12 +866,6 @@ color: #660000;
869 BACKGROUND-COLOR: #ffffcc; 866 BACKGROUND-COLOR: #ffffcc;
870 font-family: Verdana, Arial, Helvetica, sans-serif; 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 H1 { 869 H1 {
879 COLOR: #2F4632; 870 COLOR: #2F4632;
880 text-align: left; 871 text-align: left;
@@ -1514,40 +1505,6 @@ background: transparent url(&quot;../imagens/menuarodwn8_nrm_1.gif&quot;) no-repeat scroll @@ -1514,40 +1505,6 @@ background: transparent url(&quot;../imagens/menuarodwn8_nrm_1.gif&quot;) no-repeat scroll
1514 background-size: 16px 144px; 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 /* esconde na impressao */ 1508 /* esconde na impressao */
1552 @media print { 1509 @media print {
1553 .noprint { 1510 .noprint {
@@ -1577,12 +1534,24 @@ display: none !important; @@ -1577,12 +1534,24 @@ display: none !important;
1577 #i3GEOcompartilhar { 1534 #i3GEOcompartilhar {
1578 display: none !important; 1535 display: none !important;
1579 } 1536 }
1580 -#i3GEOguiaMovel { 1537 +.iconesGuiaMovel {
1581 display: none !important; 1538 display: none !important;
1582 } 1539 }
1583 #localizarxy { 1540 #localizarxy {
1584 display: none !important; 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 #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 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,8 +9,7 @@ input[type=text], textarea, input[type=number]{
9 user-select: text; 9 user-select: text;
10 } 10 }
11 11
12 -input[type=text] {  
13 - font-size: 10px; 12 +.bd input[type=text] {
14 color: #2F4632; 13 color: #2F4632;
15 background-color: rgb(250, 250, 250); 14 background-color: rgb(250, 250, 250);
16 padding: 0; 15 padding: 0;
@@ -942,7 +941,6 @@ A:hover { @@ -942,7 +941,6 @@ A:hover {
942 img { 941 img {
943 border: 0px solid #FFFFFF; 942 border: 0px solid #FFFFFF;
944 border-width: 0; 943 border-width: 0;
945 - cursor: pointer  
946 } 944 }
947 945
948 table { 946 table {
@@ -954,7 +952,6 @@ table { @@ -954,7 +952,6 @@ table {
954 } 952 }
955 953
956 div { 954 div {
957 - text-align: center;  
958 border: 0px solid #FFFFFF; 955 border: 0px solid #FFFFFF;
959 font-family: Verdana, Arial, Helvetica, sans-serif; 956 font-family: Verdana, Arial, Helvetica, sans-serif;
960 position: relative; 957 position: relative;
@@ -966,12 +963,7 @@ i { @@ -966,12 +963,7 @@ i {
966 font-family: Verdana, Arial, Helvetica, sans-serif; 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 H1 { 968 H1 {
977 COLOR: #2F4632; 969 COLOR: #2F4632;
@@ -1691,40 +1683,7 @@ h1 { @@ -1691,40 +1683,7 @@ h1 {
1691 background-size: 16px 144px; 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 /* esconde na impressao */ 1687 /* esconde na impressao */
1729 @media print { 1688 @media print {
1730 .noprint { 1689 .noprint {
@@ -1754,12 +1713,24 @@ h1 { @@ -1754,12 +1713,24 @@ h1 {
1754 #i3GEOcompartilhar { 1713 #i3GEOcompartilhar {
1755 display: none !important; 1714 display: none !important;
1756 } 1715 }
1757 - #i3GEOguiaMovel { 1716 + .iconesGuiaMovel {
1758 display: none !important; 1717 display: none !important;
1759 } 1718 }
1760 #localizarxy { 1719 #localizarxy {
1761 display: none !important; 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 /*
@@ -9,8 +9,7 @@ input[type=text], textarea, input[type=number]{ @@ -9,8 +9,7 @@ input[type=text], textarea, input[type=number]{
9 user-select: text; 9 user-select: text;
10 } 10 }
11 11
12 -input[type=text] {  
13 - font-size: 10px; 12 +.bd input[type=text] {
14 color: #2F4632; 13 color: #2F4632;
15 background-color: rgb(250, 250, 250); 14 background-color: rgb(250, 250, 250);
16 padding: 0; 15 padding: 0;
exemplos/index.php
1 <?php 1 <?php
2 define ( "ONDEI3GEO", ".." ); 2 define ( "ONDEI3GEO", ".." );
3 include (dirname ( __FILE__ ) . "/../ms_configura.php"); 3 include (dirname ( __FILE__ ) . "/../ms_configura.php");
4 -error_reporting ( 0 ); 4 +//error_reporting ( 0 );
5 include "../init/head.php"; 5 include "../init/head.php";
6 ?> 6 ?>
7 <style> 7 <style>
ferramentas/3d/3d.php
@@ -3,7 +3,7 @@ @@ -3,7 +3,7 @@
3 return; 3 return;
4 require_once("../../classesphp/pega_variaveis.php"); 4 require_once("../../classesphp/pega_variaveis.php");
5 require_once("../../classesphp/carrega_ext.php"); 5 require_once("../../classesphp/carrega_ext.php");
6 -error_reporting(0); 6 +//error_reporting(0);
7 set_time_limit(120); 7 set_time_limit(120);
8 if (isset($g_sid)) 8 if (isset($g_sid))
9 {session_id($g_sid);} 9 {session_id($g_sid);}
ferramentas/animagif/exec.php
@@ -203,7 +203,7 @@ for ($i=0;$i &lt; $numlayers;$i++){ @@ -203,7 +203,7 @@ for ($i=0;$i &lt; $numlayers;$i++){
203 if (!empty($postgis_mapa)){ 203 if (!empty($postgis_mapa)){
204 if ($layern->connectiontype == MS_POSTGIS){ 204 if ($layern->connectiontype == MS_POSTGIS){
205 $lcon = $layern->connection; 205 $lcon = $layern->connection;
206 - error_reporting(0); 206 + //error_reporting(0);
207 if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){ 207 if (($lcon == " ") || ($lcon == "") || (in_array($lcon,array_keys($postgis_mapa)))){
208 if(($lcon == " ") || ($lcon == "")){ 208 if(($lcon == " ") || ($lcon == "")){
209 $layern->set("connection",$postgis_mapa); 209 $layern->set("connection",$postgis_mapa);
ferramentas/animagif/manutencao.php
@@ -12,7 +12,7 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){ @@ -12,7 +12,7 @@ if(in_array(strtoupper($funcao),$funcoesEdicao)){
12 } 12 }
13 } 13 }
14 $tema = $_POST["tema"]; 14 $tema = $_POST["tema"];
15 -error_reporting(0); 15 +//error_reporting(0);
16 // 16 //
17 //faz a busca da fun&ccedil;&atilde;o que deve ser executada 17 //faz a busca da fun&ccedil;&atilde;o que deve ser executada
18 // 18 //
ferramentas/aplicarsld/upload.php
@@ -2,7 +2,7 @@ @@ -2,7 +2,7 @@
2 include_once (dirname(__FILE__)."/../../classesphp/sani_request.php"); 2 include_once (dirname(__FILE__)."/../../classesphp/sani_request.php");
3 require_once(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php"); 3 require_once(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php");
4 include_once (dirname(__FILE__)."/../../classesphp/carrega_ext.php"); 4 include_once (dirname(__FILE__)."/../../classesphp/carrega_ext.php");
5 -error_reporting(0); 5 +//error_reporting(0);
6 $_GET = array_merge($_GET,$_POST); 6 $_GET = array_merge($_GET,$_POST);
7 session_name("i3GeoPHP"); 7 session_name("i3GeoPHP");
8 if (isset($_GET["g_sid"])) 8 if (isset($_GET["g_sid"]))
ferramentas/buscafotos/funcoes.php
1 <?php 1 <?php
2 -error_reporting(0); 2 +//error_reporting(0);
3 include_once (dirname(__FILE__)."/../../classesphp/sani_request.php"); 3 include_once (dirname(__FILE__)."/../../classesphp/sani_request.php");
4 $_GET = array_merge($_GET,$_POST); 4 $_GET = array_merge($_GET,$_POST);
5 require_once(dirname(__FILE__)."/../../pacotes/cpaint/cpaint2.inc.php"); 5 require_once(dirname(__FILE__)."/../../pacotes/cpaint/cpaint2.inc.php");
@@ -7,7 +7,7 @@ require_once(dirname(__FILE__).&quot;/../../ms_configura.php&quot;); @@ -7,7 +7,7 @@ require_once(dirname(__FILE__).&quot;/../../ms_configura.php&quot;);
7 include("../blacklist.php"); 7 include("../blacklist.php");
8 verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false); 8 verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false);
9 require_once(dirname(__FILE__)."/../../pacotes/phpflickr/phpFlickr.php"); 9 require_once(dirname(__FILE__)."/../../pacotes/phpflickr/phpFlickr.php");
10 -error_reporting(0); 10 +//error_reporting(0);
11 11
12 12
13 $funcao = $_GET["funcao"]; 13 $funcao = $_GET["funcao"];
ferramentas/importarwmc/upload.php
1 <?php 1 <?php
2 require_once(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php"); 2 require_once(dirname(__FILE__)."/../../classesphp/funcoes_gerais.php");
3 include_once (dirname(__FILE__)."/../../classesphp/carrega_ext.php"); 3 include_once (dirname(__FILE__)."/../../classesphp/carrega_ext.php");
4 -error_reporting(0); 4 +//error_reporting(0);
5 session_name("i3GeoPHP"); 5 session_name("i3GeoPHP");
6 if (isset($_POST["g_sid"])) 6 if (isset($_POST["g_sid"]))
7 {session_id($_POST["g_sid"]);} 7 {session_id($_POST["g_sid"]);}
@@ -18,7 +18,7 @@ $map_file = $_SESSION[&quot;map_file&quot;]; @@ -18,7 +18,7 @@ $map_file = $_SESSION[&quot;map_file&quot;];
18 <p> 18 <p>
19 <?php 19 <?php
20 include_once (dirname(__FILE__)."/../../classesphp/sani_request.php"); 20 include_once (dirname(__FILE__)."/../../classesphp/sani_request.php");
21 -error_reporting(0); 21 +//error_reporting(0);
22 require_once (dirname(__FILE__)."/../../ms_configura.php"); 22 require_once (dirname(__FILE__)."/../../ms_configura.php");
23 include(dirname(__FILE__)."/../blacklist.php"); 23 include(dirname(__FILE__)."/../blacklist.php");
24 verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false); 24 verificaBlFerramentas(basename(dirname(__FILE__)),$i3geoBlFerramentas,false);