Commit 945ac361187597dde26f2f40c62a4b7a3abe2d1a

Authored by Edmar Moretti
1 parent 85ac8255

Inclusao da ferramenta heatmap

classesjs/classe_analise.js
... ... @@ -37,9 +37,6 @@ if(typeof(i3GEO) === 'undefined'){
37 37 var i3GEO = {};
38 38 }
39 39 i3GEO.analise = {
40   - //armazena os pontos coletados nas funcoes de medicao de area e distancia
41   - //@TODO remover apos concluir a refatoracao do codigo
42   - pontosdistobj: {},
43 40 /*
44 41 Classe: i3GEO.analise.dialogo
45 42  
... ... @@ -53,6 +50,14 @@ i3GEO.analise = {
53 50 */
54 51 dialogo:{
55 52 /*
  53 + Function: heatmap
  54 +
  55 + Abre a janela de dialogo da ferramenta mapa de calor
  56 + */
  57 + heatmap: function(){
  58 + i3GEO.util.dialogoFerramenta("i3GEO.analise.dialogo.heatmap()","heatmap","heatmap");
  59 + },
  60 + /*
56 61 Function: saiku
57 62  
58 63 Abre a janela de dialogo da ferramenta SAIKU
... ... @@ -665,7 +670,7 @@ i3GEO.analise = {
665 670 x2 = evt.latLng.lng();
666 671 y2 = evt.latLng.lat();
667 672 //raio = google.maps.geometry.spherical.computeDistanceBetween(evt.latLng,new google.maps.LatLng(y1,x1))
668   - trecho = i3GEO.calculo.distancia(x1,y1,x2,y2);
  673 + trecho = i3GEO.calculo.distancia(x1,y1,x2,y2);
669 674 direcao = i3GEO.calculo.direcao(x1,y1,x2,y2);
670 675 direcao = i3GEO.calculo.dd2dms(direcao,direcao);
671 676 direcao = direcao[0];
... ...
classesjs/classe_configura.js
... ... @@ -204,7 +204,8 @@ i3GEO.configura = {
204 204 { id:"omenudataAnalise16",text: $trad("u11"), url: "javascript:i3GEO.analise.dialogo.centroide()" },
205 205 { id:"omenudataAnalise17",text: $trad("t37b"), url: "javascript:i3GEO.analise.dialogo.graficoInterativo1()" },
206 206 { id:"omenudataAnalise18",text: $trad("d30"), url: "javascript:i3GEO.analise.dialogo.linhaDoTempo()" },
207   - { id:"omenudataAnalise20",text: "SAIKU - OLAP", url: "javascript:i3GEO.analise.dialogo.saiku()" }
  207 + { id:"omenudataAnalise20",text: "SAIKU - OLAP", url: "javascript:i3GEO.analise.dialogo.saiku()" },
  208 + { id:"omenudataAnalise21",text: $trad("x102"), url: "javascript:i3GEO.analise.dialogo.heatmap()" }
208 209 ],
209 210 "janelas": [
210 211 { id:"omenudataJanelas1",text: $trad("u15"), url: "javascript:i3GEO.barraDeBotoes.reativa(0);i3GEO.barraDeBotoes.reativa(1)" },
... ...
classesjs/classe_plugini3geo.js
1 1 /**
2 2 * Title: pluginI3geo
3   - *
  3 + *
4 4 * i3GEO.pluginI3geo
5   - *
  5 + *
6 6 * Implementam os plugins do i3Geo que adicionam camadas especiais ao mapa,
7 7 * normalmente dados vetoriais.
8   - *
  8 + *
9 9 * Arquivo:
10   - *
  10 + *
11 11 * i3geo/classesjs/classe_plugini3geo.js
12   - *
  12 + *
13 13 * Licença:
14   - *
  14 + *
15 15 * GPL2
16   - *
  16 + *
17 17 * i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
18   - *
  18 + *
19 19 * Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente
20 20 * Brasil Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
21   - *
  21 + *
22 22 * Este programa é software livre; você pode redistribuí-lo
23 23 * e/ou modificá-lo sob os termos da Licença Pública Geral
24 24 * GNU conforme publicada pela Free Software Foundation;
25   - *
  25 + *
26 26 * Este programa é distribuído na expectativa de que seja
27 27 * útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia
28 28 * implícita de COMERCIABILIDADE OU ADEQUACÃO A UMA FINALIDADE
... ... @@ -39,13 +39,13 @@ i3GEO.pluginI3geo = {
39 39 OBJETOS : {},
40 40 /**
41 41 * Inicia a execucao de um plugin
42   - *
  42 + *
43 43 * Camada e um objeto gerado pelo i3Geo quando uma camada e adicionada ao
44 44 * mapa O objeto i3GEO.arvoreDeCamadas.CAMADAS guarda todas as camadas
45 45 * adicionadas ao mapa Ao adicionar uma camada pelo catalogo, o i3Geo
46 46 * verifica se a camada possui plugin e direciona para ca Os plugins sao
47 47 * definidos como metadados em cada mapfile de cada tema
48   - *
  48 + *
49 49 * Veja em i3geo/classesphp/classe_mapa.php funcao parametrostemas
50 50 */
51 51 inicia : function(camada) {
... ... @@ -63,7 +63,7 @@ i3GEO.pluginI3geo = {
63 63 },
64 64 ligaCamada : function(nomecamada) {
65 65 if (typeof (console) !== 'undefined')
66   - console.info("i3GEO.pluginI3geo.ligaCamada('"+nomecamada+"')");
  66 + console.info("i3GEO.pluginI3geo.ligaCamada('" + nomecamada + "')");
67 67  
68 68 if (i3GEO.pluginI3geo.OBJETOS[nomecamada] && i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada) {
69 69 i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada();
... ... @@ -73,7 +73,7 @@ i3GEO.pluginI3geo = {
73 73 },
74 74 desligaCamada : function(nomecamada) {
75 75 if (typeof (console) !== 'undefined')
76   - console.info("i3GEO.pluginI3geo.desligaCamada('"+nomecamada+"')");
  76 + console.info("i3GEO.pluginI3geo.desligaCamada('" + nomecamada + "')");
77 77  
78 78 if (i3GEO.pluginI3geo.OBJETOS[nomecamada] && i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada) {
79 79 i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada();
... ... @@ -83,7 +83,7 @@ i3GEO.pluginI3geo = {
83 83 },
84 84 removeCamada : function(nomecamada) {
85 85 if (typeof (console) !== 'undefined')
86   - console.info("i3GEO.pluginI3geo.removeCamada('"+nomecamada+"')");
  86 + console.info("i3GEO.pluginI3geo.removeCamada('" + nomecamada + "')");
87 87  
88 88 if (i3GEO.pluginI3geo.OBJETOS[nomecamada] && i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada) {
89 89 i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada();
... ... @@ -94,7 +94,7 @@ i3GEO.pluginI3geo = {
94 94 },
95 95 atualizaCamada : function(nomecamada) {
96 96 if (typeof (console) !== 'undefined')
97   - console.info("i3GEO.pluginI3geo.atualizaCamada('"+nomecamada+"')");
  97 + console.info("i3GEO.pluginI3geo.atualizaCamada('" + nomecamada + "')");
98 98  
99 99 if (i3GEO.pluginI3geo.OBJETOS[nomecamada] && i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada) {
100 100 i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada();
... ... @@ -110,7 +110,7 @@ i3GEO.pluginI3geo = {
110 110 },
111 111 /**
112 112 * Aplica as propriedades em um objeto do tipo tema
113   - *
  113 + *
114 114 * tema e fornecido por i3GEO.arvoreDeCamadas o ajuste das propriedades e
115 115 * necessario para que as propriedades aparecam de forma correta na arvore
116 116 * de camadas
... ... @@ -123,34 +123,34 @@ i3GEO.pluginI3geo = {
123 123 },
124 124 /**
125 125 * Function: heatmap
126   - *
  126 + *
127 127 * Mapa de calor
128   - *
  128 + *
129 129 * Gera um layer do tipo mapa de calor e adiciona ao mapa
130   - *
  130 + *
131 131 * As dependências em javascript sao carregadas via script tag por
132 132 * meio de ferramentas/heatmap/openlayers_js.php
133   - *
  133 + *
134 134 * Esse programa também obtém os dados necessários ao
135 135 * plugin
136   - *
  136 + *
137 137 * O layer existente no mapfile deve conter um metadata chamado PLUGINI3GEO
138   - *
  138 + *
139 139 * Esse matadado deve conter uma string que será transformada em um
140 140 * objeto javascript para uso no plugin
141   - *
  141 + *
142 142 * Exemplo:
143   - *
144   - * "PLUGINI3GEO" '{"plugin":"heatmap","parametros":{"coluna":"teste"}}'
145   - *
  143 + *
  144 + * "PLUGINI3GEO" '{"plugin":"heatmap","parametros":{"coluna":"teste","max":"10","radius":"15"}}'
  145 + *
146 146 * Coluna é a que contém os dados numéricos que definem
147 147 * a quantidade de uma medida em cada ponto e é usada para gerar a
148 148 * representação. Se for vazia, considera-se o valor como 1
149   - *
  149 + *
150 150 * As cores das classes existentes no LAYER serão utilizadas para
151 151 * calcular as cores do mapa de calor. Se não existirem classes,
152 152 * será usado o default.
153   - *
  153 + *
154 154 */
155 155 heatmap : {
156 156 googlemaps : {
... ... @@ -174,10 +174,11 @@ i3GEO.pluginI3geo = {
174 174 var p = i3GEO.configura.locaplic + "/ferramentas/heatmap/googlemaps_js.php", carregaJs = "nao", criaLayer;
175 175 criaLayer = function() {
176 176 var heatmap, pontos;
  177 +
177 178 heatmap = new HeatmapOverlay(i3GeoMap, camada.name, {
178   - "radius" : 15,
  179 + "radius" : camada.plugini3geo.parametros.radius,
179 180 "visible" : true,
180   - "opacity" : 60,
  181 + "opacity": camada.transparency,
181 182 "gradient" : {
182 183 "0.45" : "rgb(0,0,255)",
183 184 "0.55" : "rgb(0,255,255)",
... ... @@ -193,7 +194,7 @@ i3GEO.pluginI3geo = {
193 194 });
194 195 // i3GeoMap.overlayMapTypes.insertAt(0, heatmap);
195 196 pontos = {
196   - max : 10,
  197 + max : camada.plugini3geo.parametros.max,
197 198 data : heatmap_dados
198 199 };
199 200 i3GEO.janela.fechaAguarde("aguardePlugin");
... ... @@ -259,7 +260,7 @@ i3GEO.pluginI3geo = {
259 260 var p = i3GEO.configura.locaplic + "/ferramentas/heatmap/openlayers_js.php", carregaJs = "nao", criaLayer;
260 261 criaLayer = function() {
261 262 var heatmap, transformedTestData = {
262   - max : 10,
  263 + max : camada.plugini3geo.parametros.max,
263 264 data : []
264 265 }, data = heatmap_dados, datalen = heatmap_dados.length, nudata = [];
265 266 // in order to use the OpenLayers Heatmap Layer we have
... ... @@ -277,8 +278,9 @@ i3GEO.pluginI3geo = {
277 278 transformedTestData.data = nudata;
278 279 // create our heatmap layer
279 280 heatmap = new OpenLayers.Layer.Heatmap(camada.name, i3geoOL, i3geoOL.baseLayer, {
280   - visible : true,
281   - radius : 10,
  281 + "visible" : true,
  282 + "opacity": camada.transparency,
  283 + "radius" : camada.plugini3geo.parametros.radius,
282 284 "gradient" : {
283 285 "0.45" : "rgb(0,0,255)",
284 286 "0.55" : "rgb(0,255,255)",
... ... @@ -293,7 +295,6 @@ i3GEO.pluginI3geo = {
293 295 }
294 296 }, {
295 297 isBaseLayer : false,
296   - opacity : 0.3,
297 298 projection : new OpenLayers.Projection("EPSG:4326")
298 299 });
299 300 heatmap.ligaCamada = function() {
... ...
classesjs/dicionario.js
... ... @@ -536,7 +536,7 @@ en:"drag to change the order",
536 536 es:"Arrastre para cambiar el orden",
537 537 it:""
538 538 }],
539   -
  539 +
540 540 "t9":[
541 541 {
542 542 pt:"A escala do tema é compatível com a escala do mapa",
... ... @@ -2249,6 +2249,12 @@ pt:"Cópia",
2249 2249 en:"",
2250 2250 es:"",
2251 2251 it:""
  2252 +}],
  2253 +"x102": [
  2254 +{
  2255 +pt: "Mapa de calor",
  2256 +en:"Heatmap",
  2257 +es:""
2252 2258 }]
2253 2259 };
2254 2260 //YAHOO.log("carregou dicionario", "Classes i3geo");
... ...
ferramentas/heatmap/.project 0 → 100644
... ... @@ -0,0 +1,17 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<projectDescription>
  3 + <name>ferramentas heatmap</name>
  4 + <comment></comment>
  5 + <projects>
  6 + </projects>
  7 + <buildSpec>
  8 + <buildCommand>
  9 + <name>org.eclipse.wst.jsdt.core.javascriptValidator</name>
  10 + <arguments>
  11 + </arguments>
  12 + </buildCommand>
  13 + </buildSpec>
  14 + <natures>
  15 + <nature>org.eclipse.wst.jsdt.core.jsNature</nature>
  16 + </natures>
  17 +</projectDescription>
... ...
ferramentas/heatmap/.settings/.jsdtscope 0 → 100644
... ... @@ -0,0 +1,4 @@
  1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<classpath>
  3 + <classpathentry kind="output" path=""/>
  4 +</classpath>
... ...
ferramentas/heatmap/.settings/org.eclipse.wst.jsdt.ui.superType.container 0 → 100644
... ... @@ -0,0 +1 @@
  1 +org.eclipse.wst.jsdt.launching.JRE_CONTAINER
0 2 \ No newline at end of file
... ...
ferramentas/heatmap/.settings/org.eclipse.wst.jsdt.ui.superType.name 0 → 100644
... ... @@ -0,0 +1 @@
  1 +Global
0 2 \ No newline at end of file
... ...
temas/_lmapadecalor.map
... ... @@ -8,12 +8,13 @@ MAP
8 8 "TIP" "TIPO,ANOCRIA,NOMELOC"
9 9 "CLASSE" "SIM"
10 10 "TEMA" "Localidades (usar com mapa de calor)"
11   - "PLUGINI3GEO" '{"plugin":"heatmap","parametros":{"coluna":""}}' #se coluna for vazio, assume valor 1
  11 + "PLUGINI3GEO" '{"plugin":"heatmap","parametros":{"coluna":"","radius":15,"max":10}}' #se coluna for vazio, assume valor 1
12 12 END # METADATA
13 13 NAME "_lmapadecalor"
14 14 STATUS OFF
15 15 TEMPLATE "none.htm"
16 16 TILEITEM "location"
  17 + OPACITY 100
17 18 TYPE POINT
18 19 UNITS METERS
19 20 CLASS
... ...