Commit 57342379783dc613d987be8f4fafffec5ee9d72a

Authored by Edmar Moretti
1 parent 323c1158

--no commit message

Showing 1 changed file with 82 additions and 5 deletions   Show diff stats
ferramentas/metaestat/analise.php
@@ -38,16 +38,26 @@ O parâmetro principal é "funcao", que define qual operaç&ati @@ -38,16 +38,26 @@ O parâmetro principal é "funcao", que define qual operaç&ati
38 Cada operação possuí seus próprios parâmetros, que devem ser enviados também na requisição da operação. 38 Cada operação possuí seus próprios parâmetros, que devem ser enviados também na requisição da operação.
39 */ 39 */
40 error_reporting(0); 40 error_reporting(0);
  41 +/**
  42 + * admin.php faz o include de classesphp/pega_variaveis.php
  43 + * esse programa obtem os parametros passado pela URL e os transforma e variaveis do PHP
  44 + */
41 include(dirname(__FILE__)."/../../admin/php/admin.php"); 45 include(dirname(__FILE__)."/../../admin/php/admin.php");
42 include(dirname(__FILE__)."/../../admin/php/classe_metaestat.php"); 46 include(dirname(__FILE__)."/../../admin/php/classe_metaestat.php");
43 session_name("i3GeoPHP"); 47 session_name("i3GeoPHP");
44 session_id($g_sid); 48 session_id($g_sid);
45 -session_start(); 49 +session_start();
  50 +/**
  51 + * transforma o array da sessao em variaveis
  52 + */
46 foreach(array_keys($_SESSION) as $k) 53 foreach(array_keys($_SESSION) as $k)
47 { 54 {
48 if(!is_array($_SESSION[$k])) 55 if(!is_array($_SESSION[$k]))
49 eval("\$".$k."='".$_SESSION[$k]."';"); 56 eval("\$".$k."='".$_SESSION[$k]."';");
50 -} 57 +}
  58 +/**
  59 + * verifica se esse programa esta sendo executado dentro de um mapa do i3geo
  60 + */
51 if(isset($fingerprint)){ 61 if(isset($fingerprint)){
52 $f = explode(",",$fingerprint); 62 $f = explode(",",$fingerprint);
53 if($f[0] != md5('I3GEOSEC' . $_SERVER['HTTP_USER_AGENT'] . session_id())){ 63 if($f[0] != md5('I3GEOSEC' . $_SERVER['HTTP_USER_AGENT'] . session_id())){
@@ -56,6 +66,15 @@ if(isset($fingerprint)){ @@ -56,6 +66,15 @@ if(isset($fingerprint)){
56 } 66 }
57 } 67 }
58 $retorno = ""; 68 $retorno = "";
  69 +/**
  70 + * A variavel $funcao define a rotina que sera executada
  71 + * Cada rotina recebe parametros especificos
  72 + * A documentacao de cada rotina encontra-se no programa PHP que e executado
  73 + * $map_file e obtido da variavel session e corresponde ao mapa que esta sendo usado
  74 + *
  75 + * Quando um layer original do sistema METAESTAT e alterado, isso e indicado pelo metadata METAESTAT_DERIVADO
  76 + * que passa a ser marcado com "sim"
  77 + */
59 switch (strtoupper($funcao)){ 78 switch (strtoupper($funcao)){
60 case "APLICAFILTROREGIAO": 79 case "APLICAFILTROREGIAO":
61 $retorno = analise_aplicafiltroregiao($map_file,$codigo_tipo_regiao,$codigo_regiao); 80 $retorno = analise_aplicafiltroregiao($map_file,$codigo_tipo_regiao,$codigo_regiao);
@@ -120,6 +139,16 @@ if (!connection_aborted()){ @@ -120,6 +139,16 @@ if (!connection_aborted()){
120 } 139 }
121 else 140 else
122 {exit();} 141 {exit();}
  142 +/**
  143 + * Adiciona ao mapa atual um novo layer para a representacao de uma regiao
  144 + * Se o layer ja existir, sera removido e criado outro
  145 + *
  146 + * @param arquivo mapfile do mapa atual
  147 + * @param codigo da regiao no cadastro
  148 + * @param cor do contorno
  149 + * @param largura do contorno
  150 + * @param sim|nao inclui ou nao um layer com a toponimia
  151 + */
123 function adicionaLimiteRegiao($map_file,$codigo_tipo_regiao,$outlinecolor,$width,$nomes){ 152 function adicionaLimiteRegiao($map_file,$codigo_tipo_regiao,$outlinecolor,$width,$nomes){
124 global $locaplic,$dir_tmp; 153 global $locaplic,$dir_tmp;
125 $m = new Metaestat(); 154 $m = new Metaestat();
@@ -145,6 +174,14 @@ function adicionaLimiteRegiao($map_file,$codigo_tipo_regiao,$outlinecolor,$width @@ -145,6 +174,14 @@ function adicionaLimiteRegiao($map_file,$codigo_tipo_regiao,$outlinecolor,$width
145 $mapa->save($map_file); 174 $mapa->save($map_file);
146 return "ok"; 175 return "ok";
147 } 176 }
  177 +/**
  178 + * Gera uma imagem com a representacao das ocorrencias na forma de mapa de calor
  179 + * A imagem e gerada usando o software R
  180 + * A coluna que sera usada para calcular o mapa de calor e obtida do cadastro de variaveis. Por isso, o layer deve
  181 + * ser original do METAESTAT
  182 + * @param arquivo mapfile do mapa atual
  183 + * @param nome do layer fonte dos dados
  184 + */
148 function mapaDeCalor($map_file,$tema){ 185 function mapaDeCalor($map_file,$tema){
149 global $locaplic,$dir_tmp,$R_path,$ext; 186 global $locaplic,$dir_tmp,$R_path,$ext;
150 $nome = basename($map_file).$tema."calor"; 187 $nome = basename($map_file).$tema."calor";
@@ -154,6 +191,8 @@ function mapaDeCalor($map_file,$tema){ @@ -154,6 +191,8 @@ function mapaDeCalor($map_file,$tema){
154 return ""; 191 return "";
155 } 192 }
156 $layer = $mapa->getlayerbyname($tema); 193 $layer = $mapa->getlayerbyname($tema);
  194 + //verifica se o layer e original ou se foi alterado
  195 + //se foi alterado, nao e possivel obter a coluna para calcular o mapa de calor
157 if($layer->getmetadata("METAESTAT_DERIVADO") == "sim"){ 196 if($layer->getmetadata("METAESTAT_DERIVADO") == "sim"){
158 return ""; 197 return "";
159 } 198 }
@@ -167,6 +206,13 @@ function mapaDeCalor($map_file,$tema){ @@ -167,6 +206,13 @@ function mapaDeCalor($map_file,$tema){
167 $m->salva(); 206 $m->salva();
168 return $retorno; 207 return $retorno;
169 } 208 }
  209 +/**
  210 + * Altera as caracteristicas de representacao de um layer
  211 + *
  212 + * @param mapfile do mapa atual
  213 + * @param nome do layer que sera processado
  214 + * @param tipo de processamento pponto|hachurea|opacidade
  215 + */
170 function classes2preenchimento($map_file,$tema,$tipo){ 216 function classes2preenchimento($map_file,$tema,$tipo){
171 $nome = basename($map_file).$tema.$tipo; 217 $nome = basename($map_file).$tema.$tipo;
172 $mapa = ms_newMapObj($map_file); 218 $mapa = ms_newMapObj($map_file);
@@ -188,12 +234,14 @@ function classes2preenchimento($map_file,$tema,$tipo){ @@ -188,12 +234,14 @@ function classes2preenchimento($map_file,$tema,$tipo){
188 } 234 }
189 $numclasses = $layer->numclasses; 235 $numclasses = $layer->numclasses;
190 if($tipo == "ponto" || $tipo == "hachurea"){ 236 if($tipo == "ponto" || $tipo == "hachurea"){
  237 + //as classes serao preenchidas com pontos
191 if($tipo == "ponto"){ 238 if($tipo == "ponto"){
192 $layer->setmetadata("tema",$layer->getmetadata("tema")." - pontos"); 239 $layer->setmetadata("tema",$layer->getmetadata("tema")." - pontos");
193 $s = "ponto"; 240 $s = "ponto";
194 $si = 10; 241 $si = 10;
195 $w = 4; 242 $w = 4;
196 } 243 }
  244 + //as classes serao preenchidas com hachureas
197 if($tipo == "hachurea"){ 245 if($tipo == "hachurea"){
198 $layer->setmetadata("tema",$layer->getmetadata("tema")." - hachurea"); 246 $layer->setmetadata("tema",$layer->getmetadata("tema")." - hachurea");
199 $s = "p3"; 247 $s = "p3";
@@ -210,6 +258,7 @@ function classes2preenchimento($map_file,$tema,$tipo){ @@ -210,6 +258,7 @@ function classes2preenchimento($map_file,$tema,$tipo){
210 } 258 }
211 } 259 }
212 } 260 }
  261 + //cada classe recebera um valor de opacidade
213 if($tipo == "opacidade"){ 262 if($tipo == "opacidade"){
214 $layer->setmetadata("tema",$layer->getmetadata("tema")." - opac"); 263 $layer->setmetadata("tema",$layer->getmetadata("tema")." - opac");
215 if ($numclasses > 0){ 264 if ($numclasses > 0){
@@ -223,10 +272,17 @@ function classes2preenchimento($map_file,$tema,$tipo){ @@ -223,10 +272,17 @@ function classes2preenchimento($map_file,$tema,$tipo){
223 } 272 }
224 } 273 }
225 } 274 }
  275 + //marca o novo layer como derivado do original
226 $layer->setmetadata("METAESTAT_DERIVADO","sim"); 276 $layer->setmetadata("METAESTAT_DERIVADO","sim");
227 $mapa->save($map_file); 277 $mapa->save($map_file);
228 return $nome; 278 return $nome;
229 } 279 }
  280 +/**
  281 + * Altera a representacao de um layer mostrando circulos cujo tamanho corresponde a um valor
  282 + * @param nome do arquivo mapfile em uso
  283 + * @param nome do layer que sera processado
  284 + * @param variatamanho|variacor|continuo tipo de processo
  285 + */
230 function classes2circulos($map_file,$tema,$tipo){ 286 function classes2circulos($map_file,$tema,$tipo){
231 $nome = basename($map_file).$tema.$tipo; 287 $nome = basename($map_file).$tema.$tipo;
232 $mapa = ms_newMapObj($map_file); 288 $mapa = ms_newMapObj($map_file);
@@ -325,6 +381,12 @@ function classes2circulos($map_file,$tema,$tipo){ @@ -325,6 +381,12 @@ function classes2circulos($map_file,$tema,$tipo){
325 $mapa->save($map_file); 381 $mapa->save($map_file);
326 return $nome; 382 return $nome;
327 } 383 }
  384 +/**
  385 + * Altera o estilo do outline ativando-o com cor branca
  386 + * Se a cor ja estiver definida, o contorno e desativado
  387 + * @param arquivo mapfile do mapa atual
  388 + * @param nome do tema que sera processado
  389 + */
328 function alteraContorno($map_file,$tema){ 390 function alteraContorno($map_file,$tema){
329 $mapa = ms_newMapObj($map_file); 391 $mapa = ms_newMapObj($map_file);
330 $layer = $mapa->getlayerbyname($tema); 392 $layer = $mapa->getlayerbyname($tema);
@@ -345,6 +407,12 @@ function alteraContorno($map_file,$tema){ @@ -345,6 +407,12 @@ function alteraContorno($map_file,$tema){
345 } 407 }
346 return "ok"; 408 return "ok";
347 } 409 }
  410 +/**
  411 + * Obtem dados descritivos sobre a medida da variavel usada para compor o layer
  412 + * @param nome do mapfile atual
  413 + * @param nome do tema que sera processado
  414 + * @return array com coluna que contem os nomes das regioe, coluna que contem os dados
  415 + */
348 function pegaDadosTME($map_file,$tema){ 416 function pegaDadosTME($map_file,$tema){
349 $retorno = array("itemNomeRegioes"=>"","itemDados"=>""); 417 $retorno = array("itemNomeRegioes"=>"","itemDados"=>"");
350 $mapa = ms_newMapObj($map_file); 418 $mapa = ms_newMapObj($map_file);
@@ -360,6 +428,12 @@ function pegaDadosTME($map_file,$tema){ @@ -360,6 +428,12 @@ function pegaDadosTME($map_file,$tema){
360 } 428 }
361 return $retorno; 429 return $retorno;
362 } 430 }
  431 +/**
  432 + * Lista filtros aplicados ao mapa atual
  433 + * @param nome do mapfile atual
  434 + * @param opcional. Codigo da regiao cujos filhos serao considerados na busca
  435 + * @return array
  436 + */
363 function listaFiltroTempoRaiz($map_file,$nivel){ 437 function listaFiltroTempoRaiz($map_file,$nivel){
364 $mapa = ms_newMapObj($map_file); 438 $mapa = ms_newMapObj($map_file);
365 $layers = analise_listaLayersMetaestat($mapa); 439 $layers = analise_listaLayersMetaestat($mapa);
@@ -381,8 +455,11 @@ function listaFiltroTempoRaiz($map_file,$nivel){ @@ -381,8 +455,11 @@ function listaFiltroTempoRaiz($map_file,$nivel){
381 } 455 }
382 return $filtros; 456 return $filtros;
383 } 457 }
384 -  
385 -//lista as camadas que possuem filtro temporais 458 +/**
  459 + * Lista os layers do mapa atual que contem filtros de tempo
  460 + * @param nome do mapfile atual
  461 + * @return Array
  462 + */
386 function analise_listaCamadasFiltroTempo($map_file){ 463 function analise_listaCamadasFiltroTempo($map_file){
387 $mapa = ms_newMapObj($map_file); 464 $mapa = ms_newMapObj($map_file);
388 $layers = analise_listaLayersMetaestat($mapa); 465 $layers = analise_listaLayersMetaestat($mapa);
@@ -520,4 +597,4 @@ function analise_listaLayersRegiao($layers,$codigo_tipo_regiao){ @@ -520,4 +597,4 @@ function analise_listaLayersRegiao($layers,$codigo_tipo_regiao){
520 } 597 }
521 return $final; 598 return $final;
522 } 599 }
523 -?>  
524 \ No newline at end of file 600 \ No newline at end of file
  601 +?>