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