funcoes.php
4.33 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
<?php
function heatmapDados($map_file){
global $dir,$layer,$coluna,$valorPonto;
//pega os dados e formata como uma string no formato
// [{"lat":"-21.7079984","lng":"-47.4913629","count":"1"}]
//os dados sao devolvidos como uma variavel javascript
//obtem os registros
include_once($dir."/../../classesphp/classe_atributos.php");
$m = new Atributos($map_file,$layer);
$registros = $m->listaRegistrosXY($coluna, "brasil", "tudo");
$n = count($registros);
$resultado = array();
if(empty($valorPonto)){
$valorPonto = 1;
}
if(empty($coluna)){
foreach($registros as $r){
$resultado[] = '{"lat":"'.$r["y"].'","lng":"'.$r["x"].'","count":"'.$valorPonto.'"}';
}
}
else{
foreach($registros as $r){
$resultado[] = '{"lat":"'.$r["y"].'","lng":"'.$r["x"].'","count":"'.$r["valores"][0]["valor"].'"}';
}
}
if(isset($map_file) && isset($postgis_mapa) && $map_file != ""){
restauraCon($map_file,$postgis_mapa);
}
return $resultado;
}
function heatmapMapfile(){
global $dir,$map_file,$layer,$base,$locaplic,$dir_tmp,$postgis_mapa;
if(empty($map_file) && file_exists($dir."/../../temas/{$layer}.map")){
$versao = versao();
$versao = $versao["principal"];
if(!isset($base) || $base == "")
{
if (strtoupper(substr(PHP_OS, 0, 3) == 'WIN'))
{
$base = $locaplic."/aplicmap/geral1windowsv".$versao.".map";
}
else
{
if($base == "" && file_exists('/var/www/i3geo/aplicmap/geral1debianv'.$versao.'.map')){
$base = "/var/www/i3geo/aplicmap/geral1debianv".$versao.".map";
}
if($base == "" && file_exists('/var/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){
$base = "/var/www/html/i3geo/aplicmap/geral1fedorav".$versao.".map";
}
if($base == "" && file_exists('/opt/www/html/i3geo/aplicmap/geral1fedorav'.$versao.'.map')){
$base = "/opt/www/html/i3geo/aplicmap/geral1v".$versao.".map";
}
if($base == "")
{
$base = $locaplic."/aplicmap/geral1v".$versao.".map";
}
}
}
$map_file = $dir_tmp."/".nomeRandomico().".map";
$mapa = ms_newMapObj($base);
$tempMapa = ms_newMapObj($dir."/../../temas/{$layer}.map");
$layern = $tempMapa->getlayer(0);
ms_newLayerObj($mapa, $layern);
$mapa->save($map_file);
if(!empty($postgis_mapa)){
restauraCon($map_file,$postgis_mapa);
}
}
return $map_file;
}
function heatmapGradiente($map_file,$layer,$tipoGradiente){
if($tipoGradiente == "default"){
$gradiente = '{"gradient":{"0.1" : "rgb(0,0,255)","0.55" : "rgb(0,255,255)","0.65" : "rgb(0,255,0)","0.95" : "rgb(255,255,0)","1.0" : "rgb(255,0,0)"}}';
$mapa = ms_newMapObj($map_file);
$l = $mapa->getlayerbyname($layer);
$nc = $l->numclasses;
for ($c = 0;$c < $nc;$c++){
$classe = $l->getclass($c);
$classe->set("status",MS_DELETE);
}
$classe = ms_newClassObj($l);
$classe->set("name"," < ");
$novoestilo = ms_newStyleObj($classe);
$novoestilo->set("symbolname","ponto");
$novoestilo->set("size","12");
$cor = $novoestilo->color;
$cor->setRGB(0,0,255);
$classe = ms_newClassObj($l);
$classe->set("name"," ");
$novoestilo = ms_newStyleObj($classe);
$novoestilo->set("symbolname","ponto");
$novoestilo->set("size","12");
$cor = $novoestilo->color;
$cor->setRGB(0,255,255);
$classe = ms_newClassObj($l);
$classe->set("name"," ");
$novoestilo = ms_newStyleObj($classe);
$novoestilo->set("symbolname","ponto");
$novoestilo->set("size","12");
$cor = $novoestilo->color;
$cor->setRGB(0,255,0);
$classe = ms_newClassObj($l);
$classe->set("name"," ");
$novoestilo = ms_newStyleObj($classe);
$novoestilo->set("symbolname","ponto");
$novoestilo->set("size","12");
$cor = $novoestilo->color;
$cor->setRGB(255,255,0);
$classe = ms_newClassObj($l);
$classe->set("name"," > ");
$novoestilo = ms_newStyleObj($classe);
$novoestilo->set("symbolname","ponto");
$novoestilo->set("size","12");
$cor = $novoestilo->color;
$cor->setRGB(255,0,0);
$mapa->save($map_file);
}
else{
$gradiente = array();
$mapa = ms_newMapObj($map_file);
$l = $mapa->getlayerbyname($layer);
$nc = $l->numclasses;
for ($c = 0;$c < $nc;$c++){
$classe = $l->getclass($c);
$estilo = $classe->getstyle(0);
$nome = $classe->name;
$cor = $estilo->color;
$scor = "rgb(".$cor->red.",".$cor->green.",".$cor->blue.")";
$gradiente[$nome] = $scor;
}
//echo $map_file;exit;
$gradiente = json_encode(array("gradient"=>$gradiente));
}
return $gradiente;
}
?>