Commit 902f7abd28625a2b737c97104c07dbad67109783
1 parent
5e50a90d
Exists in
master
and in
6 other branches
Alteração na função que retorna a lista de indicadores para o catálogo do mapa d…
…a saúde, para melhorar a performance
Showing
4 changed files
with
102 additions
and
7 deletions
Show diff stats
classesphp/classe_metaestatinfo.php
| ... | ... | @@ -1889,16 +1889,25 @@ class MetaestatInfo{ |
| 1889 | 1889 | else{ |
| 1890 | 1890 | $vs = $this->listaVariavel(); |
| 1891 | 1891 | } |
| 1892 | + | |
| 1893 | + $lista = $this->listaMedidaVariavel(); | |
| 1894 | + $lista = array_group_by($lista, "codigo_variavel"); | |
| 1895 | + | |
| 1892 | 1896 | foreach($vs as $v){ |
| 1893 | 1897 | $nivel1["id"] = $v["codigo_variavel"]; |
| 1894 | 1898 | $nivel1["titulo"] = $v["nome"]; |
| 1895 | 1899 | $nivel1["descricao"] = $v["descricao"]; |
| 1896 | - $ms = $this->listaMedidaVariavel($v["codigo_variavel"]); | |
| 1900 | + //$ms = $this->listaMedidaVariavel($v["codigo_variavel"]); | |
| 1901 | + | |
| 1902 | + $ms = $lista[$v["codigo_variavel"]]; | |
| 1903 | + | |
| 1897 | 1904 | $nivel1["filhos"] = array(); |
| 1898 | 1905 | foreach($ms as $m){ |
| 1899 | 1906 | $nivel2["id"] = $m["id_medida_variavel"]; |
| 1900 | 1907 | $nivel2["titulo"] = $m["nomemedida"]; |
| 1901 | - $unidade = $this->listaUnidadeMedida($m["codigo_unidade_medida"]); | |
| 1908 | + //$unidade = $this->listaUnidadeMedida($m["codigo_unidade_medida"]); | |
| 1909 | + | |
| 1910 | + $unidade = $lista[$m["codigo_unidade_medida"]]; | |
| 1902 | 1911 | $unidade = "Unidade de medida: ".$unidade["nome"]; |
| 1903 | 1912 | $periodo = $this->listaTipoPeriodo($m["codigo_tipo_periodo"]); |
| 1904 | 1913 | $periodo = "Período de tempo: ".$periodo["nome"]; | ... | ... |
classesphp/classe_temas.php
| ... | ... | @@ -959,18 +959,22 @@ $wkt - boolean indicando se $xy e um WKT |
| 959 | 959 | } |
| 960 | 960 | |
| 961 | 961 | $pinlayer->addfeature($shp); |
| 962 | - if($nomeTema != ""){ | |
| 963 | - $pinlayer->setmetadata("tema",$nomeTema); | |
| 964 | - } | |
| 962 | + | |
| 965 | 963 | //verifica a projecao |
| 966 | 964 | $c = $shp->getCentroid(); |
| 967 | - $c = $c->x; | |
| 968 | - if($c > -181 && $c < 181){ | |
| 965 | + if($c->x > -181 && $c->x < 181){ | |
| 969 | 966 | $pinlayer->setprojection(pegaProjecaoDefault("proj4")); |
| 967 | + $extensao = ($c->x - 0.01)." ".($c->y - 0.01)." ".($c->x + 0.01)." ".($c->y + 0.01); | |
| 970 | 968 | } |
| 971 | 969 | else{ |
| 972 | 970 | $pinlayer->setprojection($this->mapa->getProjection()); |
| 971 | + $extensao = ($c->x - 50000)." ".($c->y - 50000)." ".($c->x + 50000)." ".($c->y + 50000); | |
| 973 | 972 | } |
| 973 | + $pinlayer->setmetadata("extensao",$extensao); | |
| 974 | + if($nomeTema != ""){ | |
| 975 | + $pinlayer->setmetadata("tema",$nomeTema); | |
| 976 | + } | |
| 977 | + | |
| 974 | 978 | return("ok"); |
| 975 | 979 | } |
| 976 | 980 | /* | ... | ... |
classesphp/funcoes_gerais.php
| ... | ... | @@ -3556,4 +3556,70 @@ function pegaDadosAdmin($sql,$dbh=""){ |
| 3556 | 3556 | throw new Exception("pegaDadosAdmin"); |
| 3557 | 3557 | } |
| 3558 | 3558 | } |
| 3559 | +/** | |
| 3560 | + * Groups an array by a given key. | |
| 3561 | + * | |
| 3562 | + * Groups an array into arrays by a given key, or set of keys, shared between all array members. | |
| 3563 | + * | |
| 3564 | + * Based on {@author Jake Zatecky}'s {@link https://github.com/jakezatecky/array_group_by array_group_by()} function. | |
| 3565 | + * This variant allows $key to be closures. | |
| 3566 | + * | |
| 3567 | + * @param array $array The array to have grouping performed on. | |
| 3568 | + * @param mixed $key,... The key to group or split by. Can be a _string_, | |
| 3569 | + * an _integer_, a _float_, or a _callable_. | |
| 3570 | + * | |
| 3571 | + * If the key is a callback, it must return | |
| 3572 | + * a valid key from the array. | |
| 3573 | + * | |
| 3574 | + * If the key is _NULL_, the iterated element is skipped. | |
| 3575 | + * | |
| 3576 | + * ``` | |
| 3577 | + * string|int callback ( mixed $item ) | |
| 3578 | + * ``` | |
| 3579 | + * | |
| 3580 | + * @return array|null Returns a multidimensional array or `null` if `$key` is invalid. | |
| 3581 | + */ | |
| 3582 | +function array_group_by(array $array, $key) | |
| 3583 | +{ | |
| 3584 | + if (!is_string($key) && !is_int($key) && !is_float($key) && !is_callable($key) ) { | |
| 3585 | + //trigger_error('array_group_by(): The key should be a string, an integer, or a callback', E_USER_ERROR); | |
| 3586 | + return null; | |
| 3587 | + } | |
| 3588 | + | |
| 3589 | + $func = (!is_string($key) && is_callable($key) ? $key : null); | |
| 3590 | + $_key = $key; | |
| 3591 | + | |
| 3592 | + // Load the new array, splitting by the target key | |
| 3593 | + $grouped = []; | |
| 3594 | + foreach ($array as $value) { | |
| 3595 | + $key = null; | |
| 3596 | + | |
| 3597 | + if (is_callable($func)) { | |
| 3598 | + $key = call_user_func($func, $value); | |
| 3599 | + } elseif (is_object($value) && isset($value->{$_key})) { | |
| 3600 | + $key = $value->{$_key}; | |
| 3601 | + } elseif (isset($value[$_key])) { | |
| 3602 | + $key = $value[$_key]; | |
| 3603 | + } | |
| 3604 | + | |
| 3605 | + if ($key === null) { | |
| 3606 | + continue; | |
| 3607 | + } | |
| 3608 | + | |
| 3609 | + $grouped[$key][] = $value; | |
| 3610 | + } | |
| 3611 | + | |
| 3612 | + // Recursively build a nested grouping if more parameters are supplied | |
| 3613 | + // Each grouped array value is grouped according to the next sequential key | |
| 3614 | + if (func_num_args() > 2) { | |
| 3615 | + $args = func_get_args(); | |
| 3616 | + | |
| 3617 | + foreach ($grouped as $key => $value) { | |
| 3618 | + $params = array_merge([ $value ], array_slice($args, 2, func_num_args())); | |
| 3619 | + $grouped[$key] = call_user_func_array('array_group_by', $params); | |
| 3620 | + } | |
| 3621 | + } | |
| 3622 | + | |
| 3623 | + return $grouped; | |
| 3624 | +} | |
| 3559 | 3625 | ?> | ... | ... |
classesphp/metaestat_controle.php
| ... | ... | @@ -38,6 +38,22 @@ switch (strtoupper($funcao)) { |
| 38 | 38 | $layers = explode(",", $_pg["layers"]); |
| 39 | 39 | $map = ms_newMapObj($map_file); |
| 40 | 40 | break; |
| 41 | + case "LISTACOMPLETA": | |
| 42 | + $arq = $dir_tmp."/listaDeVariaveis.json"; | |
| 43 | + if (file_exists($arq)){ | |
| 44 | + $dados = unserialize(file_get_contents($arq)); | |
| 45 | + retornaJSON($dados); | |
| 46 | + exit; | |
| 47 | + } | |
| 48 | + $m = new MetaestatInfo(); | |
| 49 | + $dados = $m->relatorioCompleto(); | |
| 50 | + if(empty($_pg["cache"]) || $_pg["cache"] == "false" || $_pg["cache"] == false){ | |
| 51 | + if (!file_exists($arq)){ | |
| 52 | + gravaDados([serialize($dados)], $arq); | |
| 53 | + } | |
| 54 | + } | |
| 55 | + retornaJSON($dados); | |
| 56 | + break; | |
| 41 | 57 | case "RELATORIOCOMPLETO": |
| 42 | 58 | $m = new MetaestatInfo(); |
| 43 | 59 | if (empty($_pg["codigo_variavel"])) { | ... | ... |