From c25d09e511c36cf3c9d10393f5502a9e4d715bb9 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Wed, 20 Aug 2014 03:26:44 +0000 Subject: [PATCH] - --- classesjs/classe_plugini3geo.js | 30 +++++++++++++++++++----------- ferramentas/heatmap/exec.php | 8 ++++---- ferramentas/heatmap/funcoes.php | 7 +++++-- ferramentas/heatmap/index.js | 586 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- temas/_lmapadecalor.map | 5 ++++- 5 files changed, 279 insertions(+), 357 deletions(-) diff --git a/classesjs/classe_plugini3geo.js b/classesjs/classe_plugini3geo.js index 4f15463..f92d625 100644 --- a/classesjs/classe_plugini3geo.js +++ b/classesjs/classe_plugini3geo.js @@ -159,7 +159,7 @@ i3GEO.pluginI3geo = formAdmin : function(config) { // {"plugin":"heatmap","parametros":{"coluna":"","radius":15,"max":10}} var parametros, ins = "", configDefault = - '{"plugin":"heatmap","parametros":{"tipoGradiente": "default","coluna":"1","radius":15,"max":10}}'; + '{"plugin":"heatmap","parametros":{"tipoGradiente": "default","valorPonto":1,"coluna":"","radius":15}}'; if (config === "") { config = configDefault; } @@ -170,18 +170,22 @@ i3GEO.pluginI3geo = parametros = config.parametros; ins += "" - + "

Coluna que contém os dados ou valor numérico para cada ponto:" + + "

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:" - + "

" + //+ "

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):" + "
setmetadata("PLUGINI3GEO",$parametros); $novolayer->set("name",$nameLayer); + if(!empty($opacidade)){ + $novolayer->set("opacity",$opacidade); + } $map->save($map_file); $retorno = $nameLayer; break; diff --git a/ferramentas/heatmap/funcoes.php b/ferramentas/heatmap/funcoes.php index 2c78e51..154cf17 100644 --- a/ferramentas/heatmap/funcoes.php +++ b/ferramentas/heatmap/funcoes.php @@ -1,6 +1,6 @@ listaRegistrosXY($coluna, "brasil", "tudo"); $n = count($registros); $resultado = array(); + if(empty($valorPonto)){ + $valorPonto = 1; + } if(empty($coluna)){ foreach($registros as $r){ - $resultado[] = '{"lat":"'.$r["y"].'","lng":"'.$r["x"].'","count":"1"}'; + $resultado[] = '{"lat":"'.$r["y"].'","lng":"'.$r["x"].'","count":"'.$valorPonto.'"}'; } } else{ diff --git a/ferramentas/heatmap/index.js b/ferramentas/heatmap/index.js index 7534cd1..f92f49e 100644 --- a/ferramentas/heatmap/index.js +++ b/ferramentas/heatmap/index.js @@ -1,184 +1,143 @@ /** * Title: heatmap - * + * * Gera um mapa de calor baseado em uma camada existente no mapa. - * - * Mapas de calor são camadas que utilizam o plugin de camadas heatmap. - * Veja em classesjs/classe_plugini3geo.js - * - * A ferramenta altera o mapfile em uso clonando o mapfile escolhido e - * adicionando os metadados necessários ao uso do heatmap - * + * + * Mapas de calor são camadas que utilizam o plugin de camadas heatmap. Veja em classesjs/classe_plugini3geo.js + * + * A ferramenta altera o mapfile em uso clonando o mapfile escolhido e adicionando os metadados necessários ao uso do heatmap + * * Veja: - * + * * - * + * * Arquivo: - * + * * i3geo/ferramentas/heatmap/index.js.php - * + * * Licenca: - * + * * 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 ADEQUAÇÃ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 ADEQUAÇÃ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 (i3GEOF) === 'undefined') { var i3GEOF = {}; } -i3GEOF.heatmap = { - /** - * Variavel: aguarde - * - * Objeto DOM com a imagem de aguarde existente no cabeçalho da - * janela. - */ - aguarde : "", - /** - * Para efeitos de compatibilidade antes da versão 4.7 que não - * tinha dicionário - */ - criaJanelaFlutuante : function() { - i3GEOF.heatmap.iniciaDicionario(); - }, - /** - * Function: iniciaDicionario - * - * Carrega o dicionário e chama a função que inicia a - * ferramenta - * - * O Javascript é carregado com o id - * i3GEOF.nomedaferramenta.dicionario_script - */ - iniciaDicionario : function() { - if (typeof (i3GEOF.heatmap.dicionario) === 'undefined') { - i3GEO.util.scriptTag( - i3GEO.configura.locaplic - + "/ferramentas/heatmap/dicionario.js", +i3GEOF.heatmap = + { + /** + * Variavel: aguarde + * + * Objeto DOM com a imagem de aguarde existente no cabeçalho da janela. + */ + aguarde : "", + /** + * Para efeitos de compatibilidade antes da versão 4.7 que não tinha dicionário + */ + criaJanelaFlutuante : function() { + i3GEOF.heatmap.iniciaDicionario(); + }, + /** + * Function: iniciaDicionario + * + * Carrega o dicionário e chama a função que inicia a ferramenta + * + * O Javascript é carregado com o id i3GEOF.nomedaferramenta.dicionario_script + */ + iniciaDicionario : function() { + if (typeof (i3GEOF.heatmap.dicionario) === 'undefined') { + i3GEO.util.scriptTag( + i3GEO.configura.locaplic + "/ferramentas/heatmap/dicionario.js", "i3GEOF.heatmap.iniciaJanelaFlutuante()", "i3GEOF.heatmap.dicionario_script"); - } else { - i3GEOF.heatmap.iniciaJanelaFlutuante(); - } - }, - /** - * Function: inicia - * - * Inicia a ferramenta. É chamado por criaJanelaFlutuante - * - * Parametro: - * - * iddiv {String} - id do div que receberá o conteudo HTML da - * ferramenta - */ - inicia : function(iddiv) { - try { - $i(iddiv).innerHTML += i3GEOF.heatmap.html(); - i3GEOF.heatmap.t0(); - } catch (erro) { - i3GEO.janela.tempoMsg(erro); - } - }, - /** - * Function: html - * - * Gera o código html para apresentação das - * opções da ferramenta - * - * Retorno: - * - * String com o código html - */ - html : function() { - var ins = ''; - ins += '

'; - ins += '
'; - ins += '
'; - ins += '
'; - return ins; - }, - /** - * Function: iniciaJanelaFlutuante - * - * Cria a janela flutuante para controle da ferramenta. - */ - iniciaJanelaFlutuante : function() { - var janela, divid, temp, titulo; - // cria a janela flutuante - titulo = $trad("x102") - + "    "; - cabecalho = function() { - }; - janela = i3GEO.janela.cria( - "400px", - "250px", - "", - "", - "", - titulo, - "i3GEOF.heatmap", - false, - "hd", - function() { - }, - function() { - i3GEO.janela.minimiza("i3GEOF.heatmap"); - }, - "", - false, - i3GEO.configura.locaplic - + "/imagens/oxygen/16x16/accessories-calculator.png"); - divid = janela[2].id; - janela[0].setFooter("
"); - i3GEOF.heatmap.aguarde = $i("i3GEOF.heatmap_imagemCabecalho").style; - i3GEOF.heatmap.inicia(divid); - temp = function() { - // i3GEO.janela.tempoMsg("oi"); - if (i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search( - "i3GEOF.heatmap.t0()") > 0) { - i3GEO.eventos.ATUALIZAARVORECAMADAS.remove("i3GEOF.heatmap.t0()"); + } else { + i3GEOF.heatmap.iniciaJanelaFlutuante(); } - }; - YAHOO.util.Event.addListener( - janela[0].close, - "click", - temp); - if (i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search( - "i3GEOF.heatmap.t0()") < 0) { - i3GEO.eventos.ATUALIZAARVORECAMADAS.push("i3GEOF.heatmap.t0()"); - } - }, - t0 : function() { - var ins = "" - + "

" - + $trad( - 1, - i3GEOF.heatmap.dicionario) - + "

" - + $trad( - 2, - i3GEOF.heatmap.dicionario); - i3GEO.util.proximoAnterior( + }, + /** + * Function: inicia + * + * Inicia a ferramenta. É chamado por criaJanelaFlutuante + * + * Parametro: + * + * iddiv {String} - id do div que receberá o conteudo HTML da ferramenta + */ + inicia : function(iddiv) { + try { + $i(iddiv).innerHTML += i3GEOF.heatmap.html(); + i3GEOF.heatmap.t0(); + } catch (erro) { + i3GEO.janela.tempoMsg(erro); + } + }, + /** + * Function: html + * + * Gera o código html para apresentação das opções da ferramenta + * + * Retorno: + * + * String com o código html + */ + html : function() { + var ins = ''; + ins += '

'; + ins += '
'; + ins += '
'; + ins += '
'; + return ins; + }, + /** + * Function: iniciaJanelaFlutuante + * + * Cria a janela flutuante para controle da ferramenta. + */ + iniciaJanelaFlutuante : function() { + var janela, divid, temp, titulo; + // cria a janela flutuante + titulo = + $trad("x102") + "    "; + cabecalho = function() { + }; + janela = i3GEO.janela.cria("400px", "250px", "", "", "", titulo, "i3GEOF.heatmap", false, "hd", function() { + }, function() { + i3GEO.janela.minimiza("i3GEOF.heatmap"); + }, "", false, i3GEO.configura.locaplic + "/imagens/oxygen/16x16/accessories-calculator.png"); + divid = janela[2].id; + janela[0].setFooter("
"); + i3GEOF.heatmap.aguarde = $i("i3GEOF.heatmap_imagemCabecalho").style; + i3GEOF.heatmap.inicia(divid); + temp = function() { + // i3GEO.janela.tempoMsg("oi"); + if (i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search("i3GEOF.heatmap.t0()") > 0) { + i3GEO.eventos.ATUALIZAARVORECAMADAS.remove("i3GEOF.heatmap.t0()"); + } + }; + YAHOO.util.Event.addListener(janela[0].close, "click", temp); + if (i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search("i3GEOF.heatmap.t0()") < 0) { + i3GEO.eventos.ATUALIZAARVORECAMADAS.push("i3GEOF.heatmap.t0()"); + } + }, + t0 : function() { + var ins = + "" + + "

" + $trad(1, i3GEOF.heatmap.dicionario) + "

" + + $trad(2, i3GEOF.heatmap.dicionario); + i3GEO.util.proximoAnterior( "", "i3GEOF.heatmap.t1()", ins, @@ -186,15 +145,11 @@ i3GEOF.heatmap = { "i3GEOheatmapresultado", true, "i3GEOF.heatmap_rodape"); - }, - t1 : function() { - var ins = "

" - + $trad( - 3, - i3GEOF.heatmap.dicionario) - + ":"; - ins += "

"; - i3GEO.util.proximoAnterior( + }, + t1 : function() { + var ins = "

" + $trad(3, i3GEOF.heatmap.dicionario) + ":"; + ins += "

"; + i3GEO.util.proximoAnterior( "i3GEOF.heatmap.t0()", "i3GEOF.heatmap.t2()", ins, @@ -202,22 +157,16 @@ i3GEOF.heatmap = { "i3GEOheatmapresultado", true, "i3GEOF.heatmap_rodape"); - i3GEOF.heatmap.comboTemasSel(); - }, - t2 : function() { - var ins = "

" - + $trad( - 4, - i3GEOF.heatmap.dicionario); - ins += "

"; + i3GEOF.heatmap.comboTemasSel(); + }, + t2 : function() { + var ins = "

" + $trad(4, i3GEOF.heatmap.dicionario); + ins += "

"; - ins += "

" - + $trad( - 10, - i3GEOF.heatmap.dicionario); - ins += "

"; + ins += "

" + $trad(10, i3GEOF.heatmap.dicionario); + ins += "

"; - i3GEO.util.proximoAnterior( + i3GEO.util.proximoAnterior( "i3GEOF.heatmap.t1()", "i3GEOF.heatmap.t3()", ins, @@ -225,34 +174,24 @@ i3GEOF.heatmap = { "i3GEOheatmapresultado", true, "i3GEOF.heatmap_rodape"); - i3GEOF.heatmap.comboItens(); - }, - t3 : function() { - var ins = "

" - + $trad( - 12, - i3GEOF.heatmap.dicionario); - ins += "

"; + i3GEOF.heatmap.comboItens(); + }, + t3 : function() { + var ins = "

" + $trad(12, i3GEOF.heatmap.dicionario); + ins += + "

"; - ins += "

" - + $trad( - 13, - i3GEOF.heatmap.dicionario); - ins += "

"; + ins += "

" + $trad(13, i3GEOF.heatmap.dicionario); + ins += "

"; - ins += "

" - + $trad( - 14, - i3GEOF.heatmap.dicionario); - ins += "

"; + ins += "

" + $trad(14, i3GEOF.heatmap.dicionario); + ins += + "

"; - ins += "

" - + $trad( - 15, - i3GEOF.heatmap.dicionario); - ins += "

"; + //ins += "

" + $trad(15, i3GEOF.heatmap.dicionario); + //ins += "

"; - i3GEO.util.proximoAnterior( + i3GEO.util.proximoAnterior( "i3GEOF.heatmap.t2()", "i3GEOF.heatmap.t4()", ins, @@ -260,19 +199,12 @@ i3GEOF.heatmap = { "i3GEOheatmapresultado", true, "i3GEOF.heatmap_rodape"); - i3GEOF.heatmap.comboItens(); - }, - t4 : function() { - var ins = "

" - + $trad( - 6, - i3GEOF.heatmap.dicionario); - ins += "

"; - i3GEO.util.proximoAnterior( + i3GEOF.heatmap.comboItens(); + }, + t4 : function() { + var ins = "

" + $trad(6, i3GEOF.heatmap.dicionario); + ins += "

"; + i3GEO.util.proximoAnterior( "i3GEOF.heatmap.t3()", "", ins, @@ -280,122 +212,98 @@ i3GEOF.heatmap = { "i3GEOheatmapresultado", true, "i3GEOF.heatmap_rodape"); - new YAHOO.widget.Button("i3GEOheatmapbotao1", { - onclick : { - fn : i3GEOF.heatmap.criaheatmap - } - }); - }, - /** - * Function: criaheatmap - * - * Executa a operação de geração do heatmap - * - */ - criaheatmap : function() { - try { - if (i3GEOF.heatmap.aguarde.visibility === "visible") { - return; - } - var p, fim, cp; + new YAHOO.widget.Button("i3GEOheatmapbotao1", { + onclick : { + fn : i3GEOF.heatmap.criaheatmap + } + }); + }, + /** + * Function: criaheatmap + * + * Executa a operação de geração do heatmap + * + */ + criaheatmap : function() { + try { + if (i3GEOF.heatmap.aguarde.visibility === "visible") { + return; + } + var p, fim, cp; - i3GEOF.heatmap.aguarde.visibility = "visible"; - fim = function(retorno) { + i3GEOF.heatmap.aguarde.visibility = "visible"; + fim = function(retorno) { + i3GEOF.heatmap.aguarde.visibility = "hidden"; + if (retorno.data === undefined) { + $i("i3GEOheatmapfim").innerHTML = $trad(8, i3GEOF.heatmap.dicionario); + } else { + i3GEO.atualiza(); + } + }; + p = + i3GEO.configura.locaplic + "/ferramentas/heatmap/exec.php?g_sid=" + i3GEO.configura.sid + "&funcao=criaheatmap" + + "&tema=" + $i("i3GEOheatmaptemasComSel").value + // + "&multiplicar=" + // + $i("i3GEOheatmapdfator").value + + "&coluna=" + $i("i3GEOheatmaptemasItem").value + "&valorPonto=" + $i("i3GEOheatmapd").value + "&titulo=" + + $i("i3GEOheatmapTitulo").value + "&opacidade=" + $i("i3GEOheatmapOpacidade").value + "&raio=" + + $i("i3GEOheatmapRaio").value;// + "&raio=" + $i("i3GEOheatmapMax").value; + + cp = new cpaint(); + cp.set_response_type("JSON"); + cp.call(p, "criaheatmap", fim); + } catch (e) { + $i("i3GEOheatmapfim").innerHTML = "

Erro. " + e; i3GEOF.heatmap.aguarde.visibility = "hidden"; - if (retorno.data === undefined) { - $i("i3GEOheatmapfim").innerHTML = $trad( - 8, - i3GEOF.heatmap.dicionario); - } else { - i3GEO.atualiza(); + } + }, + /** + * Function: comboTemasSel + * + * Cria um combo com a lista de temas + * + * Veja: + * + * + */ + comboTemasSel : function() { + i3GEO.util.comboTemas("i3GEOheatmaptemasComSel", function(retorno) { + $i("i3GEOheatmapSelTemas").innerHTML = retorno.dados; + $i("i3GEOheatmapSelTemas").style.display = "block"; + if ($i("i3GEOheatmaptemasComSel")) { + $i("i3GEOheatmaptemasComSel").onchange = function() { + i3GEO.mapa.ativaTema($i("i3GEOheatmaptemasComSel").value); + }; } - }; - p = i3GEO.configura.locaplic - + "/ferramentas/heatmap/exec.php?g_sid=" - + i3GEO.configura.sid - + "&funcao=criaheatmap" - + "&tema=" - + $i("i3GEOheatmaptemasComSel").value - + "&multiplicar=" - + $i("i3GEOheatmapdfator").value - + "&coluna=" - + $i("i3GEOheatmaptemasItem").value - + "&valorPonto=" - + $i("i3GEOheatmapd").value - + "&titulo=" - + $i("i3GEOheatmapTitulo").value - + "&opacidade=" - + $i("i3GEOheatmapOpacidade").value - + "&max=" - + $i("i3GEOheatmapRaio").value - + "&raio=" - + $i("i3GEOheatmapMax").value; - - cp = new cpaint(); - cp.set_response_type("JSON"); - cp.call( - p, - "criaheatmap", - fim); - } catch (e) { - $i("i3GEOheatmapfim").innerHTML = "

Erro. " - + e; - i3GEOF.heatmap.aguarde.visibility = "hidden"; + if (i3GEO.temaAtivo !== "") { + $i("i3GEOheatmaptemasComSel").value = i3GEO.temaAtivo; + $i("i3GEOheatmaptemasComSel").onchange.call(); + } + }, "i3GEOheatmapSelTemas", "", false, "ligados"); + }, + /** + * Function: comboItens + * + * Cria um combo para escolha de um item do tema + * + * Veja: + * + * + * + */ + comboItens : function() { + i3GEO.util + .comboItens( + "i3GEOheatmaptemasItem", + $i("i3GEOheatmaptemasComSel").value, + function(retorno) { + $i("i3GEOheatmapondeItens").innerHTML = + retorno.dados; + //+ " " + //+ $trad(11, i3GEOF.heatmap.dicionario) + //+ " "; + $i("i3GEOheatmapondeItens").style.display = "block"; + }, + "i3GEOheatmapondeItens"); } - }, - /** - * Function: comboTemasSel - * - * Cria um combo com a lista de temas - * - * Veja: - * - * - */ - comboTemasSel : function() { - i3GEO.util.comboTemas( - "i3GEOheatmaptemasComSel", - function(retorno) { - $i("i3GEOheatmapSelTemas").innerHTML = retorno.dados; - $i("i3GEOheatmapSelTemas").style.display = "block"; - if ($i("i3GEOheatmaptemasComSel")) { - $i("i3GEOheatmaptemasComSel").onchange = function() { - i3GEO.mapa.ativaTema($i("i3GEOheatmaptemasComSel").value); - }; - } - if (i3GEO.temaAtivo !== "") { - $i("i3GEOheatmaptemasComSel").value = i3GEO.temaAtivo; - $i("i3GEOheatmaptemasComSel").onchange.call(); - } - }, - "i3GEOheatmapSelTemas", - "", - false, - "ligados"); - }, - /** - * Function: comboItens - * - * Cria um combo para escolha de um item do tema - * - * Veja: - * - * - * - */ - comboItens : function() { - i3GEO.util.comboItens( - "i3GEOheatmaptemasItem", - $i("i3GEOheatmaptemasComSel").value, - function(retorno) { - $i("i3GEOheatmapondeItens").innerHTML = retorno.dados - + " " - + $trad( - 11, - i3GEOF.heatmap.dicionario) - + " "; - $i("i3GEOheatmapondeItens").style.display = "block"; - }, - "i3GEOheatmapondeItens"); - } -}; \ No newline at end of file + }; \ No newline at end of file diff --git a/temas/_lmapadecalor.map b/temas/_lmapadecalor.map index 41534fa..a59b3ba 100644 --- a/temas/_lmapadecalor.map +++ b/temas/_lmapadecalor.map @@ -8,7 +8,10 @@ MAP "TIP" "TIPO,ANOCRIA,NOMELOC" "CLASSE" "SIM" "TEMA" "Localidades (usar com mapa de calor)" - "PLUGINI3GEO" '{"plugin":"heatmap","parametros":{"tipoGradiente":"default","coluna":"","radius":15,"max":10}}' #se coluna for vazio, assume valor 1 + # + #se coluna for vazio, sera usado o valor de cada ponto + # + "PLUGINI3GEO" '{"plugin":"heatmap","parametros":{"tipoGradiente":"default","valorPonto":1,"coluna":"","radius":15,"max":10}}' END # METADATA NAME "_lmapadecalor" STATUS OFF -- libgit2 0.21.2