Commit 57342379783dc613d987be8f4fafffec5ee9d72a
1 parent
323c1158
Exists in
master
and in
7 other branches
--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 | +?> |