From 9f5812d73be465f68e4a7b234347e07d373377ba Mon Sep 17 00:00:00 2001
From: Edmar Moretti
Date: Wed, 20 Aug 2014 13:13:27 +0000
Subject: [PATCH] Conclusão da implementação do mapa de cluster
---
admin/admin.db | Bin 263168 -> 0 bytes
classesjs/classe_plugini3geo.js | 1317 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
classesjs/compactados/classe_plugini3geo_compacto.js | 2 +-
classesjs/i3geo_tudo_compacto6.js | 2 +-
classesjs/i3geo_tudo_compacto6.js.php | 2 +-
5 files changed, 704 insertions(+), 619 deletions(-)
diff --git a/admin/admin.db b/admin/admin.db
index 6edcd1d..0884095 100644
Binary files a/admin/admin.db and b/admin/admin.db differ
diff --git a/classesjs/classe_plugini3geo.js b/classesjs/classe_plugini3geo.js
index f92d625..47aa5cf 100644
--- a/classesjs/classe_plugini3geo.js
+++ b/classesjs/classe_plugini3geo.js
@@ -1,674 +1,759 @@
/**
* Title: PluginI3Geo
- *
+ *
* i3GEO.pluginI3geo
- *
- * Implementa os plugins do i3Geo que adicionam camadas especiais ao mapa, normalmente dados vetoriais processados no navegador Web.
- *
+ *
+ * Implementa os plugins do i3Geo que adicionam camadas especiais ao mapa,
+ * normalmente dados vetoriais processados no navegador Web.
+ *
* Arquivo:
- *
+ *
* i3geo/classesjs/classe_plugini3geo.js
- *
+ *
* Licença:
- *
+ *
* GPL2
- *
+ *
* i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
- *
- * Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente Brasil Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
- *
- * Este programa é software livre; você pode redistribuí-lo e/ou modificá-lo sob os termos da Licença
- * Pública Geral GNU conforme publicada pela Free Software Foundation;
- *
- * Este programa é distribuído na expectativa de que seja útil, porém, SEM NENHUMA GARANTIA; nem mesmo a
- * garantia implícita de COMERCIABILIDADE OU ADEQUACÃO A UMA FINALIDADE ESPECÍFICA. Consulte a Licença
- * Pública Geral do GNU para mais detalhes. Você deve ter recebido uma cópia da Licença Pública Geral do
- * GNU junto com este programa; se não, escreva para a Free Software Foundation, Inc., no endereço 59 Temple Street, Suite
- * 330, Boston, MA 02111-1307 USA.
+ *
+ * Direitos Autorais Reservados (c) 2006 Ministério do Meio Ambiente
+ * Brasil Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
+ *
+ * Este programa é software livre; você pode redistribuí-lo
+ * e/ou modificá-lo sob os termos da Licença Pública Geral
+ * GNU conforme publicada pela Free Software Foundation;
+ *
+ * Este programa é distribuído na expectativa de que seja
+ * útil, porém, SEM NENHUMA GARANTIA; nem mesmo a garantia
+ * implícita de COMERCIABILIDADE OU ADEQUACÃO A UMA FINALIDADE
+ * ESPECÍFICA. Consulte a Licença Pública Geral do GNU para
+ * mais detalhes. Você deve ter recebido uma cópia da
+ * Licença Pública Geral do GNU junto com este programa; se
+ * não, escreva para a Free Software Foundation, Inc., no endereço
+ * 59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
*/
if (typeof (i3GEO) === 'undefined') {
var i3GEO = {};
}
-i3GEO.pluginI3geo =
- {
- OBJETOS : {},
- /**
- * Lista de plugins
- *
- * Utilizado no editor de mapfiles do sistema de administracao
- */
- PLUGINS : [
+i3GEO.pluginI3geo = {
+ OBJETOS : {},
+ /**
+ * Lista de plugins
+ *
+ * Utilizado no editor de mapfiles do sistema de administracao
+ */
+ PLUGINS : [
{
"classe" : "heatmap",
"nome" : "Mapa de calor",
"editor" : true
- },
- {
+ }, {
"classe" : "markercluster",
"nome" : "Agrupamento de pontos (cluster)",
"editor" : true
}
- ],
- /**
- * Inicia a execucao de um plugin
- *
- * Camada e um objeto gerado pelo i3Geo quando uma camada e adicionada ao mapa O objeto i3GEO.arvoreDeCamadas.CAMADAS guarda todas
- * as camadas adicionadas ao mapa Ao adicionar uma camada pelo catalogo, o i3Geo verifica se a camada possui plugin e direciona para
- * ca Os plugins sao definidos como metadados em cada mapfile de cada tema
- *
- * Veja em i3geo/classesphp/classe_mapa.php funcao parametrostemas
- */
- inicia : function(camada) {
- if (i3GEO.janela) {
- i3GEO.janela.AGUARDEMODAL = true;
- i3GEO.janela.abreAguarde("aguardePlugin", "Plugin...");
- i3GEO.janela.AGUARDEMODAL = false;
- }
- // chama a funcao conforme o tipo de plugin e a interface atual
- // para cada plugin deve haver um objeto com as funcoes especificas
- // para
- // cada interface
- i3GEO.pluginI3geo[camada.plugini3geo.plugin][i3GEO.Interface.ATUAL].inicia(camada);
- },
- /**
- * Retorna o HTML com o formulario para editar os parametros do plugin
- */
- formAdmin : function(plugin, configString) {
- return i3GEO.pluginI3geo[plugin].formAdmin(configString);
- },
- linkAjuda : function(plugin) {
- return i3GEO.pluginI3geo[plugin].linkAjuda();
- },
- ligaCamada : function(nomecamada) {
- if (i3GEO.pluginI3geo.OBJETOS[nomecamada] && i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada) {
- i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada();
- return true;
- }
- return false;
- },
- desligaCamada : function(nomecamada) {
- if (i3GEO.pluginI3geo.OBJETOS[nomecamada] && i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada) {
- i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada();
- return true;
- }
- return false;
- },
- removeCamada : function(nomecamada) {
- if (i3GEO.pluginI3geo.OBJETOS[nomecamada] && i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada) {
- i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada();
- delete (i3GEO.pluginI3geo.OBJETOS[nomecamada]);
- return true;
- }
- return false;
- },
- atualizaCamada : function(nomecamada) {
- if (i3GEO.pluginI3geo.OBJETOS[nomecamada] && i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada) {
- i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada();
- return true;
- }
- return false;
+ ],
+ /**
+ * Inicia a execucao de um plugin
+ *
+ * Camada e um objeto gerado pelo i3Geo quando uma camada e adicionada ao
+ * mapa O objeto i3GEO.arvoreDeCamadas.CAMADAS guarda todas as camadas
+ * adicionadas ao mapa Ao adicionar uma camada pelo catalogo, o i3Geo
+ * verifica se a camada possui plugin e direciona para ca Os plugins sao
+ * definidos como metadados em cada mapfile de cada tema
+ *
+ * Veja em i3geo/classesphp/classe_mapa.php funcao parametrostemas
+ */
+ inicia : function(camada) {
+ if (i3GEO.janela) {
+ i3GEO.janela.AGUARDEMODAL = true;
+ i3GEO.janela.abreAguarde(
+ "aguardePlugin",
+ "Plugin...");
+ i3GEO.janela.AGUARDEMODAL = false;
+ }
+ // chama a funcao conforme o tipo de plugin e a interface atual
+ // para cada plugin deve haver um objeto com as funcoes especificas
+ // para
+ // cada interface
+ i3GEO.pluginI3geo[camada.plugini3geo.plugin][i3GEO.Interface.ATUAL].inicia(camada);
+ },
+ /**
+ * Retorna o HTML com o formulario para editar os parametros do plugin
+ */
+ formAdmin : function(plugin, configString) {
+ return i3GEO.pluginI3geo[plugin].formAdmin(configString);
+ },
+ linkAjuda : function(plugin) {
+ return i3GEO.pluginI3geo[plugin].linkAjuda();
+ },
+ ligaCamada : function(nomecamada) {
+ if (i3GEO.pluginI3geo.OBJETOS[nomecamada]
+ && i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada) {
+ i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada();
+ return true;
+ }
+ return false;
+ },
+ desligaCamada : function(nomecamada) {
+ if (i3GEO.pluginI3geo.OBJETOS[nomecamada]
+ && i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada) {
+ i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada();
+ return true;
+ }
+ return false;
+ },
+ removeCamada : function(nomecamada) {
+ if (i3GEO.pluginI3geo.OBJETOS[nomecamada]
+ && i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada) {
+ i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada();
+ delete (i3GEO.pluginI3geo.OBJETOS[nomecamada]);
+ return true;
+ }
+ return false;
+ },
+ atualizaCamada : function(nomecamada) {
+ if (i3GEO.pluginI3geo.OBJETOS[nomecamada]
+ && i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada) {
+ i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada();
+ return true;
+ }
+ return false;
+ },
+ existeObjeto : function(nomecamada) {
+ if (i3GEO.pluginI3geo.OBJETOS[nomecamada]
+ && i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada) {
+ return true;
+ }
+ return false;
+ },
+ /**
+ * Aplica as propriedades em um objeto do tipo tema
+ *
+ * tema e fornecido por i3GEO.arvoreDeCamadas o ajuste das propriedades e
+ * necessario para que as propriedades aparecam de forma correta na arvore
+ * de camadas
+ */
+ aplicaPropriedades : function(camada) {
+ if (camada.plugini3geo
+ && camada.plugini3geo != "") {
+ camada = i3GEO.pluginI3geo[camada.plugini3geo.plugin][i3GEO.Interface.ATUAL].aplicaPropriedades(camada);
+ }
+ return camada;
+ },
+ /**
+ * Function: heatmap
+ *
+ * Mapa de calor
+ *
+ * Gera um layer do tipo mapa de calor e adiciona ao mapa
+ *
+ * As dependências em javascript sao carregadas via script tag por
+ * meio de ferramentas/heatmap
+ *
+ * Esse programa também obtém os dados necessários ao
+ * plugin
+ *
+ * O layer existente no mapfile deve conter um metadata chamado PLUGINI3GEO
+ *
+ * Esse matadado deve conter uma string que será transformada em um
+ * objeto javascript para uso no plugin
+ *
+ * Exemplo:
+ *
+ * "PLUGINI3GEO" '{"plugin":"heatmap","parametros":{"tipoGradiente":
+ * "default","coluna":"teste","max":"10","radius":"15"}}'
+ *
+ * Coluna é a que contém os dados numéricos que definem
+ * a quantidade de uma medida em cada ponto e é usada para gerar a
+ * representação. Se for vazia, considera-se o valor como 1
+ *
+ * As cores das classes existentes no LAYER serão utilizadas para
+ * calcular as cores do mapa de calor. Se tipoGradiente for igual a
+ * "default" será utilizado o gradiente padrão.
+ *
+ */
+ heatmap : {
+ linkAjuda : function() {
+ return i3GEO.configura.locaplic
+ + "/ajuda_usuario.php?idcategoria=3&idajuda=121";
},
- existeObjeto : function(nomecamada) {
- if (i3GEO.pluginI3geo.OBJETOS[nomecamada] && i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada) {
- return true;
+ formAdmin : function(config) {
+ // {"plugin":"heatmap","parametros":{"coluna":"","radius":15,"max":10}}
+ var parametros, ins = "", configDefault = '{"plugin":"heatmap","parametros":{"tipoGradiente": "default","valorPonto":1,"coluna":"","radius":15}}';
+ if (config === "") {
+ config = configDefault;
}
- return false;
- },
- /**
- * Aplica as propriedades em um objeto do tipo tema
- *
- * tema e fornecido por i3GEO.arvoreDeCamadas o ajuste das propriedades e necessario para que as propriedades aparecam de forma
- * correta na arvore de camadas
- */
- aplicaPropriedades : function(camada) {
- if (camada.plugini3geo && camada.plugini3geo != "") {
- camada = i3GEO.pluginI3geo[camada.plugini3geo.plugin][i3GEO.Interface.ATUAL].aplicaPropriedades(camada);
+ config = YAHOO.lang.JSON.parse(config);
+ if (config.plugin != "heatmap") {
+ config = YAHOO.lang.JSON.parse(configDefault);
}
- return camada;
+ parametros = config.parametros;
+ ins += ""
+ + "
Coluna que contém os dados:"
+ + "
"
+ + "
Ou valor numérico para cada ponto:"
+ + "
"
+ + "
Raio de cada ponto em pixels:"
+ + "
"
+ // + "
Valor máximo em cada ponto:"
+ // + "
"
+ + "
Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"
+ + "
"
+ + "
Para definir os cortes no gradiente de cores utilize valores entre 0 e 1."
+ + " As cores são definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor."
+ + " Veja o exemplo utilizado no tema _lmapadecalor.map
";
+ return ins;
},
- /**
- * Function: heatmap
- *
- * Mapa de calor
- *
- * Gera um layer do tipo mapa de calor e adiciona ao mapa
- *
- * As dependências em javascript sao carregadas via script tag por meio de ferramentas/heatmap
- *
- * Esse programa também obtém os dados necessários ao plugin
- *
- * O layer existente no mapfile deve conter um metadata chamado PLUGINI3GEO
- *
- * Esse matadado deve conter uma string que será transformada em um objeto javascript para uso no plugin
- *
- * Exemplo:
- *
- * "PLUGINI3GEO" '{"plugin":"heatmap","parametros":{"tipoGradiente": "default","coluna":"teste","max":"10","radius":"15"}}'
- *
- * Coluna é a que contém os dados numéricos que definem a quantidade de uma medida em cada ponto e é
- * usada para gerar a representação. Se for vazia, considera-se o valor como 1
- *
- * As cores das classes existentes no LAYER serão utilizadas para calcular as cores do mapa de calor. Se tipoGradiente for
- * igual a "default" será utilizado o gradiente padrão.
- *
- */
- heatmap : {
- linkAjuda : function() {
- return i3GEO.configura.locaplic + "/ajuda_usuario.php?idcategoria=3&idajuda=121";
- },
- formAdmin : function(config) {
- // {"plugin":"heatmap","parametros":{"coluna":"","radius":15,"max":10}}
- var parametros, ins = "", configDefault =
- '{"plugin":"heatmap","parametros":{"tipoGradiente": "default","valorPonto":1,"coluna":"","radius":15}}';
- if (config === "") {
- config = configDefault;
- }
- config = YAHOO.lang.JSON.parse(config);
- if (config.plugin != "heatmap") {
- config = YAHOO.lang.JSON.parse(configDefault);
- }
- parametros = config.parametros;
- ins +=
- ""
- + "
Coluna que contém os dados:"
- + "
"
- + "
Ou valor numérico para cada ponto:"
- + "
"
- + "
Raio de cada ponto em pixels:"
- + "
"
- //+ "
Valor máximo em cada ponto:"
- //+ "
"
- + "
Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"
- + "
"
- + "
Para definir os cortes no gradiente de cores utilize valores entre 0 e 1."
- + " As cores são definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor."
- + " Veja o exemplo utilizado no tema _lmapadecalor.map
";
- return ins;
+ googlemaps : {
+ aplicaPropriedades : function(camada) {
+ camada.sel = "nao";
+ camada.download = "nao";
+ camada.AGUARDALEGENDA = false;
+ camada.temporizador = "";
+ camada.copia = false;
+ camada.procurar = false;
+ camada.toponimia = false;
+ camada.etiquetas = false;
+ camada.tabela = false;
+ camada.grafico = false;
+ camada.destacar = false;
+ camada.wms = false;
+ camada.classe = "NAO";
+ return camada;
},
- googlemaps : {
- aplicaPropriedades : function(camada) {
- camada.sel = "nao";
- camada.download = "nao";
- camada.AGUARDALEGENDA = false;
- camada.temporizador = "";
- camada.copia = false;
- camada.procurar = false;
- camada.toponimia = false;
- camada.etiquetas = false;
- camada.tabela = false;
- camada.grafico = false;
- camada.destacar = false;
- camada.wms = false;
- camada.classe = "NAO";
- return camada;
- },
- inicia : function(camada) {
- var nomeScript = "heatmap_script", p = i3GEO.configura.locaplic + "/ferramentas/heatmap/googlemaps_js.php", carregaJs =
- "nao", criaLayer;
- criaLayer = function() {
- var heatmap, pontos;
+ inicia : function(camada) {
+ var nomeScript = "heatmap_script", p = i3GEO.configura.locaplic
+ + "/ferramentas/heatmap/googlemaps_js.php", carregaJs = "nao", criaLayer;
+ criaLayer = function() {
+ var heatmap, pontos;
- heatmap = new HeatmapOverlay(i3GeoMap, camada.name, {
- "radius" : camada.plugini3geo.parametros.radius,
- "visible" : true,
- "opacity" : camada.transparency,
- "gradient" : heatmap_config.gradient,
- "legend" : {
- "title" : camada.tema,
- "position" : "bl",
- "offset" : [
- 5,
- 50
- ]
- }
- });
- // i3GeoMap.overlayMapTypes.insertAt(0, heatmap);
- pontos = {
- max : camada.plugini3geo.parametros.max,
- data : heatmap_dados
- };
- i3GEO.janela.fechaAguarde("aguardePlugin");
- heatmap.setDataSet(pontos);
- heatmap.ligaCamada = function() {
- this.liga();
- };
- heatmap.desLigaCamada = function() {
- this.desliga();
- };
- heatmap.removeCamada = function() {
- this.destroy();
- };
- heatmap.atualizaCamada = function() {
- this.draw();
- };
- i3GEO.pluginI3geo.OBJETOS[camada.name] = heatmap;
- heatmap_dados = null;
+ heatmap = new HeatmapOverlay(i3GeoMap, camada.name, {
+ "radius" : camada.plugini3geo.parametros.radius,
+ "visible" : true,
+ "opacity" : camada.transparency,
+ "gradient" : heatmap_config.gradient,
+ "legend" : {
+ "title" : camada.tema,
+ "position" : "bl",
+ "offset" : [
+ 5, 50
+ ]
+ }
+ });
+ // i3GeoMap.overlayMapTypes.insertAt(0, heatmap);
+ pontos = {
+ max : camada.plugini3geo.parametros.max,
+ data : heatmap_dados
};
- // se o script nao existir carrega o codigo e os dados
- // caso contrario, carrega apenas os dados no script
- if (!$i(nomeScript)) {
- carregaJs = "sim";
- } else {
- nomeScript = "";
- }
- p +=
- "?carregajs=" + carregaJs + "&layer=" + camada.name + "&coluna=" + camada.plugini3geo.parametros.coluna
- + "&tipoGradiente=" + camada.plugini3geo.parametros.tipoGradiente + "&g_sid=" + i3GEO.configura.sid
- + "&nomevariavel=heatmap_dados&nomevariavelConfig=heatmap_config";
- i3GEO.util.scriptTag(p, criaLayer, nomeScript);
+ i3GEO.janela.fechaAguarde("aguardePlugin");
+ heatmap.setDataSet(pontos);
+ heatmap.ligaCamada = function() {
+ this.liga();
+ };
+ heatmap.desLigaCamada = function() {
+ this.desliga();
+ };
+ heatmap.removeCamada = function() {
+ this.destroy();
+ };
+ heatmap.atualizaCamada = function() {
+ this.draw();
+ };
+ i3GEO.pluginI3geo.OBJETOS[camada.name] = heatmap;
+ heatmap_dados = null;
+ };
+ // se o script nao existir carrega o codigo e os dados
+ // caso contrario, carrega apenas os dados no script
+ if (!$i(nomeScript)) {
+ carregaJs = "sim";
+ } else {
+ nomeScript = "";
}
+ p += "?carregajs="
+ + carregaJs
+ + "&layer="
+ + camada.name
+ + "&coluna="
+ + camada.plugini3geo.parametros.coluna
+ + "&tipoGradiente="
+ + camada.plugini3geo.parametros.tipoGradiente
+ + "&g_sid="
+ + i3GEO.configura.sid
+ + "&nomevariavel=heatmap_dados&nomevariavelConfig=heatmap_config";
+ i3GEO.util.scriptTag(
+ p,
+ criaLayer,
+ nomeScript);
+ }
+ },
+ //
+ // O script que adiciona a camada
+ // define os eventos visibilitychanged, moveend e removed
+ // A camada e adicionada como um objeto layer, permitindo que as funcoes
+ // do i3Geo operem normalmente, sem muitas modificacoes
+ //
+ openlayers : {
+ aplicaPropriedades : function(camada) {
+ camada.sel = "nao";
+ camada.download = "nao";
+ camada.AGUARDALEGENDA = false;
+ camada.temporizador = "";
+ camada.copia = false;
+ camada.procurar = false;
+ camada.toponimia = false;
+ camada.etiquetas = false;
+ camada.tabela = false;
+ camada.grafico = false;
+ camada.destacar = false;
+ camada.wms = false;
+ camada.classe = "NAO";
+ return camada;
},
- //
- // O script que adiciona a camada
- // define os eventos visibilitychanged, moveend e removed
- // A camada e adicionada como um objeto layer, permitindo que as funcoes
- // do i3Geo operem normalmente, sem muitas modificacoes
- //
- openlayers : {
- aplicaPropriedades : function(camada) {
- camada.sel = "nao";
- camada.download = "nao";
- camada.AGUARDALEGENDA = false;
- camada.temporizador = "";
- camada.copia = false;
- camada.procurar = false;
- camada.toponimia = false;
- camada.etiquetas = false;
- camada.tabela = false;
- camada.grafico = false;
- camada.destacar = false;
- camada.wms = false;
- camada.classe = "NAO";
- return camada;
- },
- inicia : function(camada, objMapa) {
- var nomeScript = "heatmap_script", p = i3GEO.configura.locaplic + "/ferramentas/heatmap/openlayers_js.php", carregaJs =
- "nao", criaLayer;
- criaLayer = function() {
- var temp, heatmap, transformedTestData = {
- max : 1,
- data : []
- }, data = heatmap_dados, datalen = heatmap_dados.length, nudata = [], max = 0;
+ inicia : function(camada, objMapa) {
+ var nomeScript = "heatmap_script", p = i3GEO.configura.locaplic
+ + "/ferramentas/heatmap/openlayers_js.php", carregaJs = "nao", criaLayer;
+ criaLayer = function() {
+ var temp, heatmap, transformedTestData = {
+ max : 1,
+ data : []
+ }, data = heatmap_dados, datalen = heatmap_dados.length, nudata = [], max = 0;
- // para uso com o mashup
- if (!objMapa) {
- objMapa = i3geoOL;
- }
- // in order to use the OpenLayers Heatmap Layer we have
- // to
- // transform our data into
- // { max: , data: [{lonlat: ,
- // count:
- // },...]}
- while (datalen--) {
- temp = heatmap_dados[datalen].count;
- nudata.push({
- lonlat : new OpenLayers.LonLat(data[datalen].lng, heatmap_dados[datalen].lat),
- count : temp
- });
- max = Math.max(max, temp);
- }
- transformedTestData.max = max;
- transformedTestData.data = nudata;
- // create our heatmap layer
- heatmap = new OpenLayers.Layer.Heatmap(camada.name, objMapa, objMapa.baseLayer, {
- "visible" : true,
- "opacity" : camada.transparency,
- "radius" : camada.plugini3geo.parametros.radius,
- "gradient" : heatmap_config.gradient,
- "legend" : {
- "title" : camada.tema,
- "position" : "bl",
- "offset" : [
- 5,
- 50
- ]
- }
- }, {
- isBaseLayer : false,
- projection : new OpenLayers.Projection("EPSG:4326"),
- displayInLayerSwitcher : true
+ // para uso com o mashup
+ if (!objMapa) {
+ objMapa = i3geoOL;
+ }
+ // in order to use the OpenLayers Heatmap Layer we have
+ // to
+ // transform our data into
+ // { max: , data: [{lonlat: ,
+ // count:
+ // },...]}
+ while (datalen--) {
+ temp = heatmap_dados[datalen].count;
+ nudata.push({
+ lonlat : new OpenLayers.LonLat(data[datalen].lng, heatmap_dados[datalen].lat),
+ count : temp
});
- heatmap.ligaCamada = function() {
- this.toggle();
- this.updateLayer();
- };
- heatmap.desLigaCamada = function() {
- this.toggle();
- this.updateLayer();
- };
- heatmap.removeCamada = function() {
- this.destroy();
- };
- heatmap.atualizaCamada = function() {
- this.updateLayer();
- };
-
- i3GEO.pluginI3geo.OBJETOS[camada.name] = heatmap;
- objMapa.addLayer(heatmap);
- heatmap.setDataSet(transformedTestData);
- heatmap_dados = null;
- if (i3GEO.janela) {
- i3GEO.janela.fechaAguarde("aguardePlugin");
+ max = Math.max(
+ max,
+ temp);
+ }
+ transformedTestData.max = max;
+ transformedTestData.data = nudata;
+ // create our heatmap layer
+ heatmap = new OpenLayers.Layer.Heatmap(camada.name, objMapa, objMapa.baseLayer, {
+ "visible" : true,
+ "opacity" : camada.transparency,
+ "radius" : camada.plugini3geo.parametros.radius,
+ "gradient" : heatmap_config.gradient,
+ "legend" : {
+ "title" : camada.tema,
+ "position" : "bl",
+ "offset" : [
+ 5, 50
+ ]
}
+ }, {
+ isBaseLayer : false,
+ projection : new OpenLayers.Projection("EPSG:4326"),
+ displayInLayerSwitcher : true
+ });
+ heatmap.ligaCamada = function() {
+ this.toggle();
+ this.updateLayer();
};
- // se o script nao existir carrega o codigo e os dados
- // caso contrario, carrega apenas os dados no script
- if (!$i(nomeScript)) {
- carregaJs = "sim";
- } else {
- nomeScript = "";
- }
- if (!i3GEO.configura || !i3GEO.configura.sid) {
- i3GEO.configura.sid = "";
+ heatmap.desLigaCamada = function() {
+ this.toggle();
+ this.updateLayer();
+ };
+ heatmap.removeCamada = function() {
+ this.destroy();
+ };
+ heatmap.atualizaCamada = function() {
+ this.updateLayer();
+ };
+
+ i3GEO.pluginI3geo.OBJETOS[camada.name] = heatmap;
+ objMapa.addLayer(heatmap);
+ heatmap.setDataSet(transformedTestData);
+ heatmap_dados = null;
+ if (i3GEO.janela) {
+ i3GEO.janela.fechaAguarde("aguardePlugin");
}
- p +=
- "?carregajs=" + carregaJs + "&layer=" + camada.name + "&coluna=" + camada.plugini3geo.parametros.coluna
- + "&tipoGradiente=" + camada.plugini3geo.parametros.tipoGradiente + "&g_sid=" + i3GEO.configura.sid
- + "&nomevariavel=heatmap_dados&nomevariavelConfig=heatmap_config";
- i3GEO.util.scriptTag(p, criaLayer, nomeScript);
+ };
+ // se o script nao existir carrega o codigo e os dados
+ // caso contrario, carrega apenas os dados no script
+ if (!$i(nomeScript)) {
+ carregaJs = "sim";
+ } else {
+ nomeScript = "";
}
- },
- googleearth : {
- inicia : function() {
- alert("Plugin nao disponivel");
+ if (!i3GEO.configura
+ || !i3GEO.configura.sid) {
+ i3GEO.configura.sid = "";
}
+ p += "?carregajs="
+ + carregaJs
+ + "&layer="
+ + camada.name
+ + "&coluna="
+ + camada.plugini3geo.parametros.coluna
+ + "&tipoGradiente="
+ + camada.plugini3geo.parametros.tipoGradiente
+ + "&g_sid="
+ + i3GEO.configura.sid
+ + "&nomevariavel=heatmap_dados&nomevariavelConfig=heatmap_config";
+ i3GEO.util.scriptTag(
+ p,
+ criaLayer,
+ nomeScript);
}
},
- /**
- * Function: markercluster
- *
- * Markercluster
- *
- * Gera um layer que agrupa pontos conforme a distância entre eles e insere um contador adiciona ao mapa
- *
- * As dependências em javascript sao carregadas via script tag por meio de ferramentas/markercluster
- *
- * Esse programa também obtém os dados necessários ao plugin
- *
- * O layer existente no mapfile deve conter um metadata chamado PLUGINI3GEO
- *
- * Esse matadado deve conter uma string que será transformada em um objeto javascript para uso no plugin
- *
- * Exemplo:
- *
- * "PLUGINI3GEO" '{"plugin":"markercluster","parametros":{"coluna":"teste","gridSize":"50"}}'
- *
- * Coluna é a que contém os dados numéricos que definem a quantidade de uma medida em cada ponto e é
- * usada para gerar a representação. Se for vazia, considera-se o valor como 1
- *
- */
- markercluster : {
- linkAjuda : function() {
- return i3GEO.configura.locaplic + "/ajuda_usuario.php?idcategoria=3&idajuda=121";
- },
- formAdmin : function(config) {
- var parametros, ins = "", configDefault =
- '{"plugin":"markercluster","parametros":{"tipoEstilos": "default","gridSize":50}}';
- if (config === "") {
- config = configDefault;
- }
- config = YAHOO.lang.JSON.parse(config);
- if (config.plugin != "markercluster") {
- config = YAHOO.lang.JSON.parse(configDefault);
- }
- parametros = config.parametros;
- ins +=
- ""
- + "
Distância máxima entre ponto em pixels:"
- + "
"
- + "
Tipo de estilos (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"
- + "
"
- + "
Os símbolos utilizados podem ser customizados alterando-se as classes do Mapfile
"
- + "
Veja o exemplo utilizado no tema _lmapadecluster.map
";
+ googleearth : {
+ inicia : function() {
+ alert("Plugin nao disponivel");
+ }
+ }
+ },
+ /**
+ * Function: markercluster
+ *
+ * Markercluster
+ *
+ * Gera um layer que agrupa pontos conforme a distância entre eles e
+ * insere um contador adiciona ao mapa
+ *
+ * As dependências em javascript sao carregadas via script tag por
+ * meio de ferramentas/markercluster
+ *
+ * Esse programa também obtém os dados necessários ao
+ * plugin
+ *
+ * O layer existente no mapfile deve conter um metadata chamado PLUGINI3GEO
+ *
+ * Esse matadado deve conter uma string que será transformada em um
+ * objeto javascript para uso no plugin
+ *
+ * Exemplo:
+ *
+ * "PLUGINI3GEO"
+ * '{"plugin":"markercluster","parametros":{"coluna":"teste","gridSize":"50"}}'
+ *
+ * Coluna é a que contém os dados numéricos que definem
+ * a quantidade de uma medida em cada ponto e é usada para gerar a
+ * representação. Se for vazia, considera-se o valor como 1
+ *
+ */
+ markercluster : {
+ linkAjuda : function() {
+ return i3GEO.configura.locaplic
+ + "/ajuda_usuario.php?idcategoria=3&idajuda=121";
+ },
+ formAdmin : function(config) {
+ var parametros, ins = "", configDefault = '{"plugin":"markercluster","parametros":{"tipoEstilos": "default","gridSize":50}}';
+ if (config === "") {
+ config = configDefault;
+ }
+ config = YAHOO.lang.JSON.parse(config);
+ if (config.plugin != "markercluster") {
+ config = YAHOO.lang.JSON.parse(configDefault);
+ }
+ parametros = config.parametros;
+ ins += ""
+ + "
Distância máxima entre ponto em pixels:"
+ + "
"
+ + "
Tipo de estilos (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"
+ + "
"
+ + "
Os símbolos utilizados podem ser customizados alterando-se as classes do Mapfile
"
+ + "
Veja o exemplo utilizado no tema _lmapadecluster.map
Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"+"
"+"
Para definir os cortes no gradiente de cores utilize valores entre 0 e 1."+" As cores são definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor."+" Veja o exemplo utilizado no tema _lmapadecalor.map
Tipo de estilos (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"+"
"+"
Os símbolos utilizados podem ser customizados alterando-se as classes do Mapfile
"+"
Veja o exemplo utilizado no tema _lmapadecluster.map
";return ins},googlemaps:{aplicaPropriedades:function(camada){camada.sel="nao";camada.download="nao";camada.AGUARDALEGENDA=false;camada.temporizador="";camada.copia=false;camada.procurar=false;camada.toponimia=false;camada.etiquetas=false;camada.tabela=false;camada.grafico=false;camada.destacar=false;camada.wms=false;camada.classe="NAO";return camada},inicia:function(camada){var nomeScript="markercluster_script",p=i3GEO.configura.locaplic+"/ferramentas/markercluster/googlemaps_js.php",carregaJs="nao",criaLayer;criaLayer=function(){var markercluster,marcas,latLng,marker,n,i;n=markercluster_dados.length;marcas=[];for(i=0;iColuna que contém os dados:"+"
"+"
Ou valor numérico para cada ponto:"+"
"+"
Raio de cada ponto em pixels:"+"
"+"
Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"+"
"+"
Para definir os cortes no gradiente de cores utilize valores entre 0 e 1."+" As cores são definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor."+" Veja o exemplo utilizado no tema _lmapadecalor.map
";i3GEO.janela.mensagemSimples(texto,$trad("x79"))},exportaShp:function(){var c=i3GEO.util.pegaCookie("marcadoresDoI3Geo"),temp=function(retorno){i3GEO.temaAtivo=retorno.data;i3GEO.atualiza()};if(c){i3GEO.php.marcadores2shp(temp)}},importa:function(){var temp=function(){var cookies=i3GEO.util.pegaCookie("marcadoresDoI3Geo"),novos="";if($i("i3GEOjanelaprompt")){novos=$i("i3GEOjanelaprompt").value}if(cookies){cookies+=":"}else{cookies=""}novos=cookies+novos;i3GEO.util.insereCookie("marcadoresDoI3Geo",novos,365);i3GEO.marcador.redesenha()};i3GEO.janela.prompt($trad("x83"),temp,"")},remove:function(nomeMarcador){var cookie=i3GEO.util.pegaCookie("marcadoresDoI3Geo"),valores=cookie.split(":"),n=valores.length,i,temp,novos=[];for(i=0;i"+temp[0]+"",url:"javascript:i3GEO.marcador.recuperaZoom('"+temp[0]+"')"})}}}return itens}};
-if(typeof(i3GEO)==='undefined'){var i3GEO={}}i3GEO.pluginI3geo={OBJETOS:{},PLUGINS:[{"classe":"heatmap","nome":"Mapa de calor","editor":true},{"classe":"markercluster","nome":"Agrupamento de pontos (cluster)","editor":true}],inicia:function(camada){if(i3GEO.janela){i3GEO.janela.AGUARDEMODAL=true;i3GEO.janela.abreAguarde("aguardePlugin","Plugin...");i3GEO.janela.AGUARDEMODAL=false}i3GEO.pluginI3geo[camada.plugini3geo.plugin][i3GEO.Interface.ATUAL].inicia(camada)},formAdmin:function(plugin,configString){return i3GEO.pluginI3geo[plugin].formAdmin(configString)},linkAjuda:function(plugin){return i3GEO.pluginI3geo[plugin].linkAjuda()},ligaCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada();return true}return false},desligaCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada();return true}return false},removeCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada();delete(i3GEO.pluginI3geo.OBJETOS[nomecamada]);return true}return false},atualizaCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada();return true}return false},existeObjeto:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada){return true}return false},aplicaPropriedades:function(camada){if(camada.plugini3geo&&camada.plugini3geo!=""){camada=i3GEO.pluginI3geo[camada.plugini3geo.plugin][i3GEO.Interface.ATUAL].aplicaPropriedades(camada)}return camada},heatmap:{linkAjuda:function(){return i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=121"},formAdmin:function(config){var parametros,ins="",configDefault='{"plugin":"heatmap","parametros":{"tipoGradiente": "default","valorPonto":1,"coluna":"","radius":15}}';if(config===""){config=configDefault}config=YAHOO.lang.JSON.parse(config);if(config.plugin!="heatmap"){config=YAHOO.lang.JSON.parse(configDefault)}parametros=config.parametros;ins+=""+"
Coluna que contém os dados:"+"
"+"
Ou valor numérico para cada ponto:"+"
"+"
Raio de cada ponto em pixels:"+"
"+"
Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"+"
"+"
Para definir os cortes no gradiente de cores utilize valores entre 0 e 1."+" As cores são definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor."+" Veja o exemplo utilizado no tema _lmapadecalor.map
Tipo de estilos (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"+"
"+"
Os símbolos utilizados podem ser customizados alterando-se as classes do Mapfile
"+"
Veja o exemplo utilizado no tema _lmapadecluster.map
";return ins},googlemaps:{aplicaPropriedades:function(camada){camada.sel="nao";camada.download="nao";camada.AGUARDALEGENDA=false;camada.temporizador="";camada.copia=false;camada.procurar=false;camada.toponimia=false;camada.etiquetas=false;camada.tabela=false;camada.grafico=false;camada.destacar=false;camada.wms=false;camada.classe="NAO";return camada},inicia:function(camada){var nomeScript="markercluster_script",p=i3GEO.configura.locaplic+"/ferramentas/markercluster/googlemaps_js.php",carregaJs="nao",criaLayer;criaLayer=function(){var markercluster,marcas,latLng,marker,n,i;n=markercluster_dados.length;marcas=[];for(i=0;iColuna que contém os dados:"+" "+"
Ou valor numérico para cada ponto:"+"
"+"
Raio de cada ponto em pixels:"+"
"+"
Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"+"
"+"
Para definir os cortes no gradiente de cores utilize valores entre 0 e 1."+" As cores são definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor."+" Veja o exemplo utilizado no tema _lmapadecalor.map
";i3GEO.janela.mensagemSimples(texto,$trad("x79"))},exportaShp:function(){var c=i3GEO.util.pegaCookie("marcadoresDoI3Geo"),temp=function(retorno){i3GEO.temaAtivo=retorno.data;i3GEO.atualiza()};if(c){i3GEO.php.marcadores2shp(temp)}},importa:function(){var temp=function(){var cookies=i3GEO.util.pegaCookie("marcadoresDoI3Geo"),novos="";if($i("i3GEOjanelaprompt")){novos=$i("i3GEOjanelaprompt").value}if(cookies){cookies+=":"}else{cookies=""}novos=cookies+novos;i3GEO.util.insereCookie("marcadoresDoI3Geo",novos,365);i3GEO.marcador.redesenha()};i3GEO.janela.prompt($trad("x83"),temp,"")},remove:function(nomeMarcador){var cookie=i3GEO.util.pegaCookie("marcadoresDoI3Geo"),valores=cookie.split(":"),n=valores.length,i,temp,novos=[];for(i=0;i"+temp[0]+"",url:"javascript:i3GEO.marcador.recuperaZoom('"+temp[0]+"')"})}}}return itens}};
-if(typeof(i3GEO)==='undefined'){var i3GEO={}}i3GEO.pluginI3geo={OBJETOS:{},PLUGINS:[{"classe":"heatmap","nome":"Mapa de calor","editor":true},{"classe":"markercluster","nome":"Agrupamento de pontos (cluster)","editor":true}],inicia:function(camada){if(i3GEO.janela){i3GEO.janela.AGUARDEMODAL=true;i3GEO.janela.abreAguarde("aguardePlugin","Plugin...");i3GEO.janela.AGUARDEMODAL=false}i3GEO.pluginI3geo[camada.plugini3geo.plugin][i3GEO.Interface.ATUAL].inicia(camada)},formAdmin:function(plugin,configString){return i3GEO.pluginI3geo[plugin].formAdmin(configString)},linkAjuda:function(plugin){return i3GEO.pluginI3geo[plugin].linkAjuda()},ligaCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].ligaCamada();return true}return false},desligaCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].desLigaCamada();return true}return false},removeCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].removeCamada();delete(i3GEO.pluginI3geo.OBJETOS[nomecamada]);return true}return false},atualizaCamada:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada){i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada();return true}return false},existeObjeto:function(nomecamada){if(i3GEO.pluginI3geo.OBJETOS[nomecamada]&&i3GEO.pluginI3geo.OBJETOS[nomecamada].atualizaCamada){return true}return false},aplicaPropriedades:function(camada){if(camada.plugini3geo&&camada.plugini3geo!=""){camada=i3GEO.pluginI3geo[camada.plugini3geo.plugin][i3GEO.Interface.ATUAL].aplicaPropriedades(camada)}return camada},heatmap:{linkAjuda:function(){return i3GEO.configura.locaplic+"/ajuda_usuario.php?idcategoria=3&idajuda=121"},formAdmin:function(config){var parametros,ins="",configDefault='{"plugin":"heatmap","parametros":{"tipoGradiente": "default","valorPonto":1,"coluna":"","radius":15}}';if(config===""){config=configDefault}config=YAHOO.lang.JSON.parse(config);if(config.plugin!="heatmap"){config=YAHOO.lang.JSON.parse(configDefault)}parametros=config.parametros;ins+=""+"
Coluna que contém os dados:"+"
"+"
Ou valor numérico para cada ponto:"+"
"+"
Raio de cada ponto em pixels:"+"
"+"
Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"+"
"+"
Para definir os cortes no gradiente de cores utilize valores entre 0 e 1."+" As cores são definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor."+" Veja o exemplo utilizado no tema _lmapadecalor.map
Tipo de estilos (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"+"
"+"
Os símbolos utilizados podem ser customizados alterando-se as classes do Mapfile
"+"
Veja o exemplo utilizado no tema _lmapadecluster.map
";return ins},googlemaps:{aplicaPropriedades:function(camada){camada.sel="nao";camada.download="nao";camada.AGUARDALEGENDA=false;camada.temporizador="";camada.copia=false;camada.procurar=false;camada.toponimia=false;camada.etiquetas=false;camada.tabela=false;camada.grafico=false;camada.destacar=false;camada.wms=false;camada.classe="NAO";return camada},inicia:function(camada){var nomeScript="markercluster_script",p=i3GEO.configura.locaplic+"/ferramentas/markercluster/googlemaps_js.php",carregaJs="nao",criaLayer;criaLayer=function(){var markercluster,marcas,latLng,marker,n,i;n=markercluster_dados.length;marcas=[];for(i=0;iColuna que contém os dados:"+" "+"
Ou valor numérico para cada ponto:"+"
"+"
Raio de cada ponto em pixels:"+"
"+"
Tipo de gradiente (deixe vazio para utilizar as classes definidas no Layer ou escreva 'default' para usar o normal):"+"
"+"
Para definir os cortes no gradiente de cores utilize valores entre 0 e 1."+" As cores são definidas nas classes do LAYER, sendo que o nome define o valor superior do gradiente e COLOR define a cor."+" Veja o exemplo utilizado no tema _lmapadecalor.map