Commit 33b219223651665c4bf2f37f59b50cb3575c9189

Authored by Edmar Moretti
1 parent 01e42cc1

Inclusão de botão, que abre a tela de configuração do plugin heatmap, no editor gráfico de mapfiles.

admin/admin.db
No preview for this file type
classesjs/classe_plugini3geo.js
@@ -42,8 +42,6 @@ i3GEO.pluginI3geo = @@ -42,8 +42,6 @@ i3GEO.pluginI3geo =
42 * 42 *
43 * Utilizado no editor de mapfiles do sistema de administracao 43 * Utilizado no editor de mapfiles do sistema de administracao
44 */ 44 */
45 - //XXX criar plugin geojson  
46 - //XXX criar plugin que aceite um JSON generico  
47 PLUGINS : [ 45 PLUGINS : [
48 { 46 {
49 "classe" : "heatmap", // namespace da classe 47 "classe" : "heatmap", // namespace da classe
@@ -224,25 +222,25 @@ i3GEO.pluginI3geo = @@ -224,25 +222,25 @@ i3GEO.pluginI3geo =
224 parametros = config.parametros; 222 parametros = config.parametros;
225 ins += 223 ins +=
226 "" + "<p>Coluna que cont&eacute;m os dados:" 224 "" + "<p>Coluna que cont&eacute;m os dados:"
227 - + "<br><input name='coluna' type='text' value='" 225 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='coluna' type='text' value='"
228 + parametros.coluna 226 + parametros.coluna
229 - + "' size='30'></p>" 227 + + "' size='30'></div></p>"
230 + "<p>Ou valor num&eacute;rico para cada ponto:" 228 + "<p>Ou valor num&eacute;rico para cada ponto:"
231 - + "<br><input name='valorPonto' type='text' value='" 229 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='valorPonto' type='text' value='"
232 + parametros.valorPonto 230 + parametros.valorPonto
233 - + "' size='30'></p>" 231 + + "' size='30'></div></p>"
234 + "<p>Raio de cada ponto em pixels:" 232 + "<p>Raio de cada ponto em pixels:"
235 - + "<br><input name='radius' type='text' value='" 233 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='radius' type='text' value='"
236 + parametros.radius 234 + parametros.radius
237 - + "' size='30'></p>" 235 + + "' size='30'></div></p>"
238 // + "<p>Valor m&aacute;ximo em cada ponto:" 236 // + "<p>Valor m&aacute;ximo em cada ponto:"
239 // + "<br><input name='max' type='text' value='" 237 // + "<br><input name='max' type='text' value='"
240 // + parametros.max 238 // + parametros.max
241 // + "' size='30'></p>" 239 // + "' size='30'></p>"
242 + "<p>Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):" 240 + "<p>Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"
243 - + "<br><input name='tipoGradiente' type='text' value='" 241 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='tipoGradiente' type='text' value='"
244 + parametros.tipoGradiente 242 + parametros.tipoGradiente
245 - + "' size='30'></p>" 243 + + "' size='30'></div></p>"
246 + "<p>Para definir os cortes no gradiente de cores utilize valores entre 0 e 1." 244 + "<p>Para definir os cortes no gradiente de cores utilize valores entre 0 e 1."
247 + " As cores s&atilde;o definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor." 245 + " As cores s&atilde;o definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor."
248 + " Veja o exemplo utilizado no tema _lmapadecalor.map</p>"; 246 + " Veja o exemplo utilizado no tema _lmapadecalor.map</p>";
@@ -432,7 +430,9 @@ i3GEO.pluginI3geo = @@ -432,7 +430,9 @@ i3GEO.pluginI3geo =
432 }; 430 };
433 431
434 i3GEO.pluginI3geo.OBJETOS[camada.name] = heatmap; 432 i3GEO.pluginI3geo.OBJETOS[camada.name] = heatmap;
  433 +
435 objMapa.addLayer(heatmap); 434 objMapa.addLayer(heatmap);
  435 +
436 heatmap.setDataSet(transformedTestData); 436 heatmap.setDataSet(transformedTestData);
437 437
438 heatmap_dados = null; 438 heatmap_dados = null;
@@ -510,13 +510,13 @@ i3GEO.pluginI3geo = @@ -510,13 +510,13 @@ i3GEO.pluginI3geo =
510 parametros = config.parametros; 510 parametros = config.parametros;
511 ins += 511 ins +=
512 "" + "<p>Dist&acirc;ncia m&aacute;xima entre ponto em pixels:" 512 "" + "<p>Dist&acirc;ncia m&aacute;xima entre ponto em pixels:"
513 - + "<br><input name='gridSize' type='text' value='" 513 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='gridSize' type='text' value='"
514 + parametros.gridSize 514 + parametros.gridSize
515 - + "' size='30'></p>" 515 + + "' size='30'></div></p>"
516 + "<p>Tipo de estilos (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):" 516 + "<p>Tipo de estilos (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"
517 - + "<br><input name='tipoEstilos' type='text' value='" 517 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='tipoEstilos' type='text' value='"
518 + parametros.tipoEstilos 518 + parametros.tipoEstilos
519 - + "' size='30'></p>" 519 + + "' size='30'></div></p>"
520 + "<p>Os s&iacute;mbolos utilizados podem ser customizados alterando-se as classes do Mapfile</p>" 520 + "<p>Os s&iacute;mbolos utilizados podem ser customizados alterando-se as classes do Mapfile</p>"
521 + "<p>Veja o exemplo utilizado no tema _lmapadecluster.map</p>"; 521 + "<p>Veja o exemplo utilizado no tema _lmapadecluster.map</p>";
522 522
@@ -737,7 +737,7 @@ i3GEO.pluginI3geo = @@ -737,7 +737,7 @@ i3GEO.pluginI3geo =
737 'Canvas', 'SVG' 737 'Canvas', 'SVG'
738 ], 738 ],
739 strategies : [ 739 strategies : [
740 - new OpenLayers.Strategy.AnimatedCluster({ 740 + new OpenLayers.Strategy.Cluster({
741 distance : parseInt(camada.plugini3geo.parametros.gridSize, 10) 741 distance : parseInt(camada.plugini3geo.parametros.gridSize, 10)
742 }) 742 })
743 ], 743 ],
@@ -788,8 +788,7 @@ i3GEO.pluginI3geo = @@ -788,8 +788,7 @@ i3GEO.pluginI3geo =
788 + "&g_sid=" 788 + "&g_sid="
789 + i3GEO.configura.sid 789 + i3GEO.configura.sid
790 + "&tipoEstilos=" 790 + "&tipoEstilos="
791 - + camada.plugini3geo.parametros.tipoEstilos  
792 - + "&nomevariavel=markercluster_dados&nomevariavelConfig=markercluster_config"; 791 + + camada.plugini3geo.parametros.tipoEstilos;
793 i3GEO.util.scriptTag(p, criaLayer, nomeScript); 792 i3GEO.util.scriptTag(p, criaLayer, nomeScript);
794 } 793 }
795 } 794 }
ferramentas/atalhosedicao/index.js
@@ -215,6 +215,67 @@ i3GEOF.atalhosedicao = @@ -215,6 +215,67 @@ i3GEOF.atalhosedicao =
215 } 215 }
216 }); 216 });
217 $i("i3GEOFatalhosedicaoLayerkml-button").style.width = "200px"; 217 $i("i3GEOFatalhosedicaoLayerkml-button").style.width = "200px";
  218 + new YAHOO.widget.Button("i3GEOFatalhosedicaoMarkercluster", {
  219 + onclick : {
  220 + fn : function() {
  221 + i3GEO.temaAtivo = i3GEOF.atalhosedicao.tema;
  222 + YAHOO.namespace("admin");
  223 + YAHOO.namespace("admin.container");
  224 + core_montaEditor("","450px","500px","","Plugin",true,false,false);
  225 + var sUrl = i3GEO.configura.locaplic + "/admin1/catalogo/mapfile/exec.php?funcao=pegaPlugin&codigoMap="+i3GEO.temaAtivo+"&codigoLayer="+i3GEO.temaAtivo+"&g_sid="+i3GEO.configura.sid;
  226 + var montaEditorPlugin = function(retorno){
  227 + var plugin = "markercluster";
  228 + var ins = "<input type=button title='"+ $trad("salva",i3GEOadmin.core.dicionario) +"' value='"+ $trad("salva",i3GEOadmin.core.dicionario) +"' id=salvarPlugin />"
  229 + + "<input type=button title='"+ $trad("remove",i3GEOadmin.core.dicionario) +"' value='"+ $trad("remove",i3GEOadmin.core.dicionario) +"' id=removerPlugin />";
  230 + //pega os campos do formulario
  231 + ins += i3GEO.pluginI3geo.formAdmin(plugin,retorno);
  232 + var ajuda = "<p>Mais informa&ccedil;&otilde;es:<br><a href='"+i3GEO.pluginI3geo.linkAjuda(plugin)+"' target=_blank >" + i3GEO.pluginI3geo.linkAjuda(plugin) + "</a></p>";
  233 + $i("editor_bd").innerHTML = ins + ajuda;
  234 +
  235 + new YAHOO.widget.Button("salvarPlugin",{ onclick: { fn: function(){
  236 + i3GEOF.atalhosedicao.salvarDadosEditorPlugin($i("editor_bd"),plugin,i3GEOF.atalhosedicao.tema,i3GEOF.atalhosedicao.tema);
  237 + } }});
  238 +
  239 + new YAHOO.widget.Button("removerPlugin",{ onclick: { fn: function(){
  240 + i3GEOF.atalhosedicao.salvarDadosEditorPlugin($i("editor_bd"),"",i3GEOF.atalhosedicao.tema,i3GEOF.atalhosedicao.tema);
  241 + } }});
  242 + };
  243 + core_pegaDados("",sUrl,montaEditorPlugin);
  244 + }
  245 + }
  246 + });
  247 + $i("i3GEOFatalhosedicaoMarkercluster-button").style.width = "200px";
  248 +
  249 + new YAHOO.widget.Button("i3GEOFatalhosedicaoHeatmap", {
  250 + onclick : {
  251 + fn : function() {
  252 + i3GEO.temaAtivo = i3GEOF.atalhosedicao.tema;
  253 + YAHOO.namespace("admin");
  254 + YAHOO.namespace("admin.container");
  255 + core_montaEditor("","450px","500px","","Plugin",true,false,false);
  256 + var sUrl = i3GEO.configura.locaplic + "/admin1/catalogo/mapfile/exec.php?funcao=pegaPlugin&codigoMap="+i3GEO.temaAtivo+"&codigoLayer="+i3GEO.temaAtivo+"&g_sid="+i3GEO.configura.sid;
  257 + var montaEditorPlugin = function(retorno){
  258 + var plugin = "heatmap";
  259 + var ins = "<input type=button title='"+ $trad("salva",i3GEOadmin.core.dicionario) +"' value='"+ $trad("salva",i3GEOadmin.core.dicionario) +"' id=salvarPlugin />"
  260 + + "<input type=button title='"+ $trad("remove",i3GEOadmin.core.dicionario) +"' value='"+ $trad("remove",i3GEOadmin.core.dicionario) +"' id=removerPlugin />";
  261 + //pega os campos do formulario
  262 + ins += i3GEO.pluginI3geo.formAdmin(plugin,retorno);
  263 + var ajuda = "<p>Mais informa&ccedil;&otilde;es:<br><a href='"+i3GEO.pluginI3geo.linkAjuda(plugin)+"' target=_blank >" + i3GEO.pluginI3geo.linkAjuda(plugin) + "</a></p>";
  264 + $i("editor_bd").innerHTML = ins + ajuda;
  265 +
  266 + new YAHOO.widget.Button("salvarPlugin",{ onclick: { fn: function(){
  267 + i3GEOF.atalhosedicao.salvarDadosEditorPlugin($i("editor_bd"),plugin,i3GEOF.atalhosedicao.tema,i3GEOF.atalhosedicao.tema);
  268 + } }});
  269 +
  270 + new YAHOO.widget.Button("removerPlugin",{ onclick: { fn: function(){
  271 + i3GEOF.atalhosedicao.salvarDadosEditorPlugin($i("editor_bd"),"",i3GEOF.atalhosedicao.tema,i3GEOF.atalhosedicao.tema);
  272 + } }});
  273 + };
  274 + core_pegaDados("",sUrl,montaEditorPlugin);
  275 + }
  276 + }
  277 + });
  278 + $i("i3GEOFatalhosedicaoHeatmap-button").style.width = "200px";
218 279
219 new YAHOO.widget.Button("i3GEOFatalhosedicaoTemaComGrafico", { 280 new YAHOO.widget.Button("i3GEOFatalhosedicaoTemaComGrafico", {
220 onclick : { 281 onclick : {
ferramentas/atalhosedicao/template_mst.html
@@ -94,4 +94,11 @@ @@ -94,4 +94,11 @@
94 <p class='paragrafo'> 94 <p class='paragrafo'>
95 <input id='i3GEOFatalhosedicaoLayerkml' type='button' value='KML layer' /> 95 <input id='i3GEOFatalhosedicaoLayerkml' type='button' value='KML layer' />
96 </p> 96 </p>
  97 + <p class='paragrafo'>
  98 + <input id='i3GEOFatalhosedicaoMarkercluster' type='button' value='Marker Cluster' />
  99 + </p>
  100 + <p class='paragrafo'>
  101 + <input id='i3GEOFatalhosedicaoHeatmap' type='button' value='Mapa de calor (heatmap)' />
  102 + </p>
  103 +
97 </div> 104 </div>
98 \ No newline at end of file 105 \ No newline at end of file
ferramentas/heatmap/googlemaps_js.php
@@ -34,8 +34,8 @@ if(isset($map_file) &amp;&amp; isset($postgis_mapa) &amp;&amp; $map_file != &quot;&quot;){ @@ -34,8 +34,8 @@ if(isset($map_file) &amp;&amp; isset($postgis_mapa) &amp;&amp; $map_file != &quot;&quot;){
34 restauraCon($map_file,$postgis_mapa); 34 restauraCon($map_file,$postgis_mapa);
35 } 35 }
36 36
37 -echo $nomevariavel.' = ['.implode(",",$resultado).'];';  
38 -echo $nomevariavelConfig.' = '.$gradiente.';'; 37 +echo 'heatmap_dados = ['.implode(",",$resultado).'];';
  38 +echo 'heatmap_config = '.$gradiente.';';
39 39
40 if($carregajs === "sim"){ 40 if($carregajs === "sim"){
41 include_once($dir."/../../pacotes/heatmap/src/heatmap.js"); 41 include_once($dir."/../../pacotes/heatmap/src/heatmap.js");
ferramentas/heatmap/openlayers_js.php
@@ -59,10 +59,10 @@ if(isset($map_file) &amp;&amp; isset($postgis_mapa) &amp;&amp; $map_file != &quot;&quot;){ @@ -59,10 +59,10 @@ if(isset($map_file) &amp;&amp; isset($postgis_mapa) &amp;&amp; $map_file != &quot;&quot;){
59 restauraCon($map_file,$postgis_mapa); 59 restauraCon($map_file,$postgis_mapa);
60 } 60 }
61 61
62 -echo $nomevariavel.' = ['.implode(",",$resultado).'];';  
63 -echo $nomevariavelConfig.' = '.$gradiente.';'; 62 +echo 'heatmap_dados = ['.implode(",",$resultado).'];';
  63 +echo 'heatmap_config = '.$gradiente.';';
64 64
65 -if($carregajs === "sim"){ 65 +if($_GET["carregajs"] === "sim"){
66 include_once($dir."/../../pacotes/heatmap/src/heatmap.js"); 66 include_once($dir."/../../pacotes/heatmap/src/heatmap.js");
67 include_once($dir."/../../pacotes/heatmap/src/heatmap-openlayers.js"); 67 include_once($dir."/../../pacotes/heatmap/src/heatmap-openlayers.js");
68 } 68 }
ferramentas/markercluster/googlemaps_js.php
@@ -30,8 +30,8 @@ $map_file = markerclusterMapfile(); @@ -30,8 +30,8 @@ $map_file = markerclusterMapfile();
30 $resultado = markerclusterDados($map_file); 30 $resultado = markerclusterDados($map_file);
31 $tipoEstilos = markerclusterEstilos($map_file,$layer,$tipoEstilos); 31 $tipoEstilos = markerclusterEstilos($map_file,$layer,$tipoEstilos);
32 32
33 -echo $nomevariavel.' = ['.implode(",",$resultado).'];';  
34 -echo $nomevariavelConfig.' = '.$tipoEstilos.';'; 33 +echo 'markercluster_dados = ['.implode(",",$resultado).'];';
  34 +echo 'markercluster_config = '.$tipoEstilos.';';
35 35
36 if($carregajs === "sim"){ 36 if($carregajs === "sim"){
37 include_once($dir."/../../pacotes/markercluster/google/markerclusterer.js"); 37 include_once($dir."/../../pacotes/markercluster/google/markerclusterer.js");
ferramentas/markercluster/openlayers_js.php
@@ -46,8 +46,8 @@ if($map_file == &quot;&quot;){ @@ -46,8 +46,8 @@ if($map_file == &quot;&quot;){
46 $resultado = markerclusterDados($map_file); 46 $resultado = markerclusterDados($map_file);
47 $tipoEstilos = markerclusterEstilos($map_file,$layer,$tipoEstilos); 47 $tipoEstilos = markerclusterEstilos($map_file,$layer,$tipoEstilos);
48 48
49 -echo $nomevariavel.' = ['.implode(",",$resultado).'];';  
50 -echo $nomevariavelConfig.' = '.$tipoEstilos.';'; 49 +echo 'markercluster_dados = ['.implode(",",$resultado).'];';
  50 +echo 'markercluster_config = '.$tipoEstilos.';';
51 51
52 if($carregajs === "sim"){ 52 if($carregajs === "sim"){
53 include_once($dir."/../../pacotes/markercluster/openlayers/AnimatedCluster.js"); 53 include_once($dir."/../../pacotes/markercluster/openlayers/AnimatedCluster.js");
js/plugini3geo.js
@@ -229,25 +229,25 @@ i3GEO.pluginI3geo = @@ -229,25 +229,25 @@ i3GEO.pluginI3geo =
229 parametros = config.parametros; 229 parametros = config.parametros;
230 ins += 230 ins +=
231 "" + "<p>Coluna que cont&eacute;m os dados:" 231 "" + "<p>Coluna que cont&eacute;m os dados:"
232 - + "<br><input name='coluna' type='text' value='" 232 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='coluna' type='text' value='"
233 + parametros.coluna 233 + parametros.coluna
234 - + "' size='30'></p>" 234 + + "' size='30'></div></p>"
235 + "<p>Ou valor num&eacute;rico para cada ponto:" 235 + "<p>Ou valor num&eacute;rico para cada ponto:"
236 - + "<br><input name='valorPonto' type='text' value='" 236 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='valorPonto' type='text' value='"
237 + parametros.valorPonto 237 + parametros.valorPonto
238 - + "' size='30'></p>" 238 + + "' size='30'></div></p>"
239 + "<p>Raio de cada ponto em pixels:" 239 + "<p>Raio de cada ponto em pixels:"
240 - + "<br><input name='radius' type='text' value='" 240 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='radius' type='text' value='"
241 + parametros.radius 241 + parametros.radius
242 - + "' size='30'></p>" 242 + + "' size='30'></div></p>"
243 // + "<p>Valor m&aacute;ximo em cada ponto:" 243 // + "<p>Valor m&aacute;ximo em cada ponto:"
244 // + "<br><input name='max' type='text' value='" 244 // + "<br><input name='max' type='text' value='"
245 // + parametros.max 245 // + parametros.max
246 // + "' size='30'></p>" 246 // + "' size='30'></p>"
247 + "<p>Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):" 247 + "<p>Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"
248 - + "<br><input name='tipoGradiente' type='text' value='" 248 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='tipoGradiente' type='text' value='"
249 + parametros.tipoGradiente 249 + parametros.tipoGradiente
250 - + "' size='30'></p>" 250 + + "' size='30'></div></p>"
251 + "<p>Para definir os cortes no gradiente de cores utilize valores entre 0 e 1." 251 + "<p>Para definir os cortes no gradiente de cores utilize valores entre 0 e 1."
252 + " As cores s&atilde;o definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor." 252 + " As cores s&atilde;o definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor."
253 + " Veja o exemplo utilizado no tema _lmapadecalor.map</p>"; 253 + " Veja o exemplo utilizado no tema _lmapadecalor.map</p>";
@@ -512,13 +512,13 @@ i3GEO.pluginI3geo = @@ -512,13 +512,13 @@ i3GEO.pluginI3geo =
512 parametros = config.parametros; 512 parametros = config.parametros;
513 ins += 513 ins +=
514 "" + "<p>Dist&acirc;ncia m&aacute;xima entre ponto em pixels:" 514 "" + "<p>Dist&acirc;ncia m&aacute;xima entre ponto em pixels:"
515 - + "<br><input name='gridSize' type='text' value='" 515 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='gridSize' type='text' value='"
516 + parametros.gridSize 516 + parametros.gridSize
517 - + "' size='30'></p>" 517 + + "' size='30'></div></p>"
518 + "<p>Tipo de estilos (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):" 518 + "<p>Tipo de estilos (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"
519 - + "<br><input name='tipoEstilos' type='text' value='" 519 + + "<br><div class='i3geoForm i3geoFormIconeEdita'><input name='tipoEstilos' type='text' value='"
520 + parametros.tipoEstilos 520 + parametros.tipoEstilos
521 - + "' size='30'></p>" 521 + + "' size='30'></div></p>"
522 + "<p>Os s&iacute;mbolos utilizados podem ser customizados alterando-se as classes do Mapfile</p>" 522 + "<p>Os s&iacute;mbolos utilizados podem ser customizados alterando-se as classes do Mapfile</p>"
523 + "<p>Veja o exemplo utilizado no tema _lmapadecluster.map</p>"; 523 + "<p>Veja o exemplo utilizado no tema _lmapadecluster.map</p>";
524 524
@@ -742,7 +742,7 @@ i3GEO.pluginI3geo = @@ -742,7 +742,7 @@ i3GEO.pluginI3geo =
742 'Canvas', 'SVG' 742 'Canvas', 'SVG'
743 ], 743 ],
744 strategies : [ 744 strategies : [
745 - new OpenLayers.Strategy.AnimatedCluster({ 745 + new OpenLayers.Strategy.Cluster({
746 distance : parseInt(camada.plugini3geo.parametros.gridSize, 10) 746 distance : parseInt(camada.plugini3geo.parametros.gridSize, 10)
747 }) 747 })
748 ], 748 ],
@@ -793,8 +793,7 @@ i3GEO.pluginI3geo = @@ -793,8 +793,7 @@ i3GEO.pluginI3geo =
793 + "&g_sid=" 793 + "&g_sid="
794 + i3GEO.configura.sid 794 + i3GEO.configura.sid
795 + "&tipoEstilos=" 795 + "&tipoEstilos="
796 - + camada.plugini3geo.parametros.tipoEstilos  
797 - + "&nomevariavel=markercluster_dados&nomevariavelConfig=markercluster_config"; 796 + + camada.plugini3geo.parametros.tipoEstilos;
798 i3GEO.util.scriptTag(p, criaLayer, nomeScript); 797 i3GEO.util.scriptTag(p, criaLayer, nomeScript);
799 } 798 }
800 } 799 }
pacotes/heatmap/src/heatmap-openlayers.js
1 -/* 1 +/*
2 * heatmap.js OpenLayers Heatmap Class 2 * heatmap.js OpenLayers Heatmap Class
3 * 3 *
4 * Copyright (c) 2011, Patrick Wied (http://www.patrick-wied.at) 4 * Copyright (c) 2011, Patrick Wied (http://www.patrick-wied.at)
5 * Dual-licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 5 * Dual-licensed under the MIT (http://www.opensource.org/licenses/mit-license.php)
6 * and the Beerware (http://en.wikipedia.org/wiki/Beerware) license. 6 * and the Beerware (http://en.wikipedia.org/wiki/Beerware) license.
7 - * 7 + *
8 * Modified on Jun,06 2011 by Antonio Santiago (http://www.acuriousanimal.com) 8 * Modified on Jun,06 2011 by Antonio Santiago (http://www.acuriousanimal.com)
9 * - Heatmaps as independent map layer. 9 * - Heatmaps as independent map layer.
10 * - Points based on OpenLayers.LonLat. 10 * - Points based on OpenLayers.LonLat.
11 * - Data initialization in constructor. 11 * - Data initialization in constructor.
12 * - Improved 'addDataPoint' to add new lonlat based points. 12 * - Improved 'addDataPoint' to add new lonlat based points.
13 - */ 13 + */
14 OpenLayers.Layer.Heatmap = OpenLayers.Class(OpenLayers.Layer, { 14 OpenLayers.Layer.Heatmap = OpenLayers.Class(OpenLayers.Layer, {
15 // the heatmap isn't a basic layer by default - you usually want to display the heatmap over another map ;) 15 // the heatmap isn't a basic layer by default - you usually want to display the heatmap over another map ;)
16 isBaseLayer: false, 16 isBaseLayer: false,
@@ -34,18 +34,18 @@ OpenLayers.Layer.Heatmap = OpenLayers.Class(OpenLayers.Layer, { @@ -34,18 +34,18 @@ OpenLayers.Layer.Heatmap = OpenLayers.Class(OpenLayers.Layer, {
34 // create the heatmap with passed heatmap-options 34 // create the heatmap with passed heatmap-options
35 this.heatmap = h337.create(hmoptions); 35 this.heatmap = h337.create(hmoptions);
36 36
37 - handler = function(){ 37 + handler = function(){
38 if(this.map && this.tmpData.max){ 38 if(this.map && this.tmpData.max){
39 - this.updateLayer(); 39 + this.updateLayer();
40 } 40 }
41 }; 41 };
42 - handler1 = function(){ 42 + handler1 = function(){
43 if(this.tmpData && this.tmpData.max){ 43 if(this.tmpData && this.tmpData.max){
44 this.toggle(); 44 this.toggle();
45 this.updateLayer(); 45 this.updateLayer();
46 } 46 }
47 }; 47 };
48 - 48 +
49 // on zoomend and moveend we have to move the canvas element and redraw the datapoints with new positions 49 // on zoomend and moveend we have to move the canvas element and redraw the datapoints with new positions
50 //map.events.register("zoomend", this, handler); 50 //map.events.register("zoomend", this, handler);
51 map.events.register("moveend", this, handler); 51 map.events.register("moveend", this, handler);
@@ -53,16 +53,16 @@ OpenLayers.Layer.Heatmap = OpenLayers.Class(OpenLayers.Layer, { @@ -53,16 +53,16 @@ OpenLayers.Layer.Heatmap = OpenLayers.Class(OpenLayers.Layer, {
53 map.events.register( 53 map.events.register(
54 "removed", 54 "removed",
55 this, 55 this,
56 - function(){ 56 + function(){
57 if(this.tmpData.max){ 57 if(this.tmpData.max){
58 - this.destroy(); 58 + this.destroy();
59 } 59 }
60 }); 60 });
61 }, 61 },
62 updateLayer: function(){ 62 updateLayer: function(){
63 var pixelOffset = this.getPixelOffset(), 63 var pixelOffset = this.getPixelOffset(),
64 el = this.heatmap.get('element'); 64 el = this.heatmap.get('element');
65 - // if the pixeloffset e.g. for x was positive move the canvas element to the left by setting left:-offset.y px 65 + // if the pixeloffset e.g. for x was positive move the canvas element to the left by setting left:-offset.y px
66 // otherwise move it the right by setting it a positive value. same for top 66 // otherwise move it the right by setting it a positive value. same for top
67 el.style.top = ((pixelOffset.y > 0)?('-'+pixelOffset.y):(Math.abs(pixelOffset.y)))+'px'; 67 el.style.top = ((pixelOffset.y > 0)?('-'+pixelOffset.y):(Math.abs(pixelOffset.y)))+'px';
68 el.style.left = ((pixelOffset.x > 0)?('-'+pixelOffset.x):(Math.abs(pixelOffset.x)))+'px'; 68 el.style.left = ((pixelOffset.x > 0)?('-'+pixelOffset.x):(Math.abs(pixelOffset.x)))+'px';
@@ -80,9 +80,9 @@ OpenLayers.Layer.Heatmap = OpenLayers.Class(OpenLayers.Layer, { @@ -80,9 +80,9 @@ OpenLayers.Layer.Heatmap = OpenLayers.Class(OpenLayers.Layer, {
80 c_lonlat = new OpenLayers.LonLat(c.lon, c.lat), 80 c_lonlat = new OpenLayers.LonLat(c.lon, c.lat),
81 c_pixel = this.mapLayer.getViewPortPxFromLonLat(c_lonlat); 81 c_pixel = this.mapLayer.getViewPortPxFromLonLat(c_lonlat);
82 82
83 - return { 83 + return {
84 x: o_pixel.x - c_pixel.x, 84 x: o_pixel.x - c_pixel.x,
85 - y: o_pixel.y - c_pixel.y 85 + y: o_pixel.y - c_pixel.y
86 }; 86 };
87 87
88 }, 88 },
@@ -90,20 +90,31 @@ OpenLayers.Layer.Heatmap = OpenLayers.Class(OpenLayers.Layer, { @@ -90,20 +90,31 @@ OpenLayers.Layer.Heatmap = OpenLayers.Class(OpenLayers.Layer, {
90 var set = {}, 90 var set = {},
91 dataset = obj.data, 91 dataset = obj.data,
92 dlen = dataset.length, 92 dlen = dataset.length,
93 - entry, lonlat, pixel; 93 + entry, lonlat, pixel, proj, tproj, vp;
94 94
95 set.max = obj.max; 95 set.max = obj.max;
96 set.data = []; 96 set.data = [];
  97 +
97 // get the pixels for all the lonlat entries 98 // get the pixels for all the lonlat entries
  99 + proj = this.map.getProjectionObject();
  100 + tproj = this.projection;
98 while(dlen--){ 101 while(dlen--){
99 - entry = dataset[dlen],  
100 - lonlat = entry.lonlat.clone().transform(this.projection, this.map.getProjectionObject()),  
101 - pixel = this.roundPixels(this.getViewPortPxFromLonLat(lonlat)); 102 + entry = dataset[dlen];
  103 + try{
  104 + lonlat = entry.lonlat.clone().transform(tproj, proj);
  105 + if(lonlat){
  106 + vp = this.getViewPortPxFromLonLat(lonlat);
102 107
103 - if(pixel){  
104 - set.data.push({x: pixel.x, y: pixel.y, count: entry.count}); 108 + pixel = this.roundPixels(vp);
  109 +
  110 + if(pixel){
  111 + set.data.push({x: pixel.x, y: pixel.y, count: entry.count});
  112 + }
  113 + }
105 } 114 }
  115 + catch(e){}
106 } 116 }
  117 +
107 this.tmpData = obj; 118 this.tmpData = obj;
108 this.heatmap.store.setDataSet(set); 119 this.heatmap.store.setDataSet(set);
109 }, 120 },