Commit 85ac8255a517e17c9f5b17a09155836e4ce2262b

Authored by Edmar Moretti
1 parent 5ba61dcf

Inclusao da ferramenta heatmap

ferramentas/heatmap/dicionario.js 0 → 100755
@@ -0,0 +1,58 @@ @@ -0,0 +1,58 @@
  1 +//+$trad(1,i3GEOF.buffer.dicionario)+
  2 +i3GEOF.buffer.dicionario = {
  3 +1: [{
  4 +pt:"O entorno, ou buffer, é um polígono que circunda um elemento geográfico em uma distância fixa.",
  5 +en:"",
  6 +es:""
  7 +}],
  8 +2: [{
  9 +pt:"Para gerar o entorno, você precisa selecionar alguns elementos de um tema. Utilize para isso a opção de seleção ou a tabela de atributos do tema desejado.",
  10 +en:"",
  11 +es:""
  12 +}],
  13 +3: [{
  14 +pt:"Tema, com seleção, que será utilizado",
  15 +en:"",
  16 +es:""
  17 +}],
  18 +4: [{
  19 +pt:"Distância do entorno em metros:",
  20 +en:"",
  21 +es:""
  22 +}],
  23 +5: [{
  24 +pt:"Considerar os elementos selecionados como se fossem um só?",
  25 +en:"",
  26 +es:""
  27 +}],
  28 +6: [{
  29 +pt:"O tema com o entorno será adicionado ao mapa atual",
  30 +en:"",
  31 +es:""
  32 +}],
  33 +7: [{
  34 +pt:"Criar entorno",
  35 +en:"",
  36 +es:""
  37 +}],
  38 +8: [{
  39 +pt:"Erro. A operação demorou muito",
  40 +en:"",
  41 +es:""
  42 +}],
  43 +9: [{
  44 +pt:"Distancia invalida",
  45 +en:"",
  46 +es:""
  47 +}],
  48 +10: [{
  49 +pt:"Ou um item da tabela de atributos que contém as distâncias:",
  50 +en:"",
  51 +es:""
  52 +}],
  53 +11: [{
  54 +pt:"Multiplicar por:",
  55 +en:"",
  56 +es:""
  57 +}]
  58 +};
0 \ No newline at end of file 59 \ No newline at end of file
ferramentas/heatmap/exec.php 0 → 100755
@@ -0,0 +1,38 @@ @@ -0,0 +1,38 @@
  1 +<?php
  2 +include_once(dirname(__FILE__)."/../inicia.php");
  3 +//
  4 +//faz a busca da fun&ccedil;&atilde;o que deve ser executada
  5 +//
  6 +$retorno = ""; //string que ser&aacute; retornada ao browser via JSON
  7 +switch (strtoupper($funcao))
  8 +{
  9 +/*
  10 +Valor: CRIABUFFER
  11 +
  12 +Gera entorno (buffer) nos elementos selecionados de um tema.
  13 +
  14 +Salva o mapa acrescentando um novo layer com o buffer.
  15 +
  16 +<Analise->criaBuffer>
  17 +*/
  18 + case "CRIABUFFER":
  19 + include_once(dirname(__FILE__)."/../../classesphp/classe_analise.php");
  20 + copiaSeguranca($map_file);
  21 + $m = new Analise($map_file,$tema,$locaplic,$ext);
  22 + $retorno = $m->criaBuffer($distancia,$locaplic,$unir,$wkt,$multiplicar,$itemdistancia);
  23 + $m->salva();
  24 + $_SESSION["contadorsalva"]++;
  25 + //limpa selecao
  26 + $qyfile = str_replace(".map",".qy",$map_file);
  27 + if (file_exists($qyfile))
  28 + {unlink ($qyfile);}
  29 + break;
  30 +}
  31 +if (!connection_aborted()){
  32 + if(isset($map_file) && isset($postgis_mapa) && $map_file != "")
  33 + restauraCon($map_file,$postgis_mapa);
  34 + cpjson($retorno);
  35 +}
  36 +else
  37 +{exit();}
  38 +?>
0 \ No newline at end of file 39 \ No newline at end of file
ferramentas/heatmap/exemplo.png 0 → 100644

6.46 KB

ferramentas/heatmap/index.js 0 → 100644
@@ -0,0 +1,283 @@ @@ -0,0 +1,283 @@
  1 +
  2 +/*jslint plusplus:false,white:false,undef: false, rhino: true, onevar: true, evil: true */
  3 +
  4 +/*
  5 +Title: Buffer
  6 +
  7 +Realiza o c&aacute;lculo de "buffer" (regi&atilde;o de entorno) dos elementos selecionados de um tema e adiciona uma nova
  8 +camada ao mapa.
  9 +Utiliza a fun&ccedil;&atilde;o buffer do Mapserver.
  10 +
  11 +Veja:
  12 +
  13 +<i3GEO.analise.dialogo.buffer>
  14 +
  15 +Arquivo:
  16 +
  17 +i3geo/ferramentas/buffer/index.js.php
  18 +
  19 +Licenca:
  20 +
  21 +GPL2
  22 +
  23 +i3Geo Interface Integrada de Ferramentas de Geoprocessamento para Internet
  24 +
  25 +Direitos Autorais Reservados (c) 2006 Minist&eacute;rio do Meio Ambiente Brasil
  26 +Desenvolvedor: Edmar Moretti edmar.moretti@gmail.com
  27 +
  28 +Este programa &eacute; software livre; voc&ecirc; pode redistribu&iacute;-lo
  29 +e/ou modific&aacute;-lo sob os termos da Licen&ccedil;a P&uacute;blica Geral
  30 +GNU conforme publicada pela Free Software Foundation;
  31 +
  32 +Este programa &eacute; distribu&iacute;do na expectativa de que seja &uacute;til,
  33 +por&eacute;m, SEM NENHUMA GARANTIA; nem mesmo a garantia impl&iacute;cita
  34 +de COMERCIABILIDADE OU ADEQUA&Ccedil;&Atilde;O A UMA FINALIDADE ESPEC&Iacute;FICA.
  35 +Consulte a Licen&ccedil;a P&uacute;blica Geral do GNU para mais detalhes.
  36 +Voc&ecirc; deve ter recebido uma c&oacute;pia da Licen&ccedil;a P&uacute;blica Geral do
  37 +GNU junto com este programa; se n&atilde;o, escreva para a
  38 +Free Software Foundation, Inc., no endere&ccedil;o
  39 +59 Temple Street, Suite 330, Boston, MA 02111-1307 USA.
  40 +*/
  41 +if(typeof(i3GEOF) === 'undefined'){
  42 + var i3GEOF = {};
  43 +}
  44 +/*
  45 +Class: i3GEOF.buffer
  46 +*/
  47 +i3GEOF.buffer = {
  48 + /*
  49 + Variavel: aguarde
  50 +
  51 + Objeto DOM com a imagem de aguarde existente no cabe&ccedil;alho da janela.
  52 + */
  53 + aguarde: "",
  54 + /*
  55 + Para efeitos de compatibilidade antes da vers&atilde;o 4.7 que n&atilde;o tinha dicion&aacute;rio
  56 + */
  57 + criaJanelaFlutuante: function(){
  58 + i3GEOF.buffer.iniciaDicionario();
  59 + },
  60 + /*
  61 + Function: iniciaDicionario
  62 +
  63 + Carrega o dicion&aacute;rio e chama a fun&ccedil;&atilde;o que inicia a ferramenta
  64 +
  65 + O Javascript &eacute; carregado com o id i3GEOF.nomedaferramenta.dicionario_script
  66 + */
  67 + iniciaDicionario: function(){
  68 + if(typeof(i3GEOF.buffer.dicionario) === 'undefined'){
  69 + i3GEO.util.scriptTag(
  70 + i3GEO.configura.locaplic+"/ferramentas/buffer/dicionario.js",
  71 + "i3GEOF.buffer.iniciaJanelaFlutuante()",
  72 + "i3GEOF.buffer.dicionario_script"
  73 + );
  74 + }
  75 + else{
  76 + i3GEOF.buffer.iniciaJanelaFlutuante();
  77 + }
  78 + },
  79 + /*
  80 + Function: inicia
  81 +
  82 + Inicia a ferramenta. &Eacute; chamado por criaJanelaFlutuante
  83 +
  84 + Parametro:
  85 +
  86 + iddiv {String} - id do div que receber&aacute; o conteudo HTML da ferramenta
  87 + */
  88 + inicia: function(iddiv){
  89 + try{
  90 + $i(iddiv).innerHTML += i3GEOF.buffer.html();
  91 + i3GEOF.buffer.t0();
  92 + }
  93 + catch(erro){i3GEO.janela.tempoMsg(erro);}
  94 + },
  95 + /*
  96 + Function: html
  97 +
  98 + Gera o c&oacute;digo html para apresenta&ccedil;&atilde;o das op&ccedil;&otilde;es da ferramenta
  99 +
  100 + Retorno:
  101 +
  102 + String com o c&oacute;digo html
  103 + */
  104 + html:function(){
  105 + var ins = '';
  106 + ins += '<div style="background-color:#F2F2F2;top:0px;left:0px;display:block;width:98%;" id="i3GEObufferresultado" >';
  107 + ins += '</div>';
  108 + ins += '<div style="top:10px;left:0px;display:block;width:98%;color:red" id="i3GEObufferfim" >';
  109 + ins += '</div>';
  110 + return ins;
  111 + },
  112 + /*
  113 + Function: iniciaJanelaFlutuante
  114 +
  115 + Cria a janela flutuante para controle da ferramenta.
  116 + */
  117 + iniciaJanelaFlutuante: function(){
  118 + var janela,divid,temp,titulo;
  119 + //cria a janela flutuante
  120 + titulo = $trad("u10")+" <a class=ajuda_usuario target=_blank href='" + i3GEO.configura.locaplic + "/ajuda_usuario.php?idcategoria=3&idajuda=24' >&nbsp;&nbsp;&nbsp;</a>";
  121 + cabecalho = function(){};
  122 + janela = i3GEO.janela.cria(
  123 + "400px",
  124 + "200px",
  125 + "",
  126 + "",
  127 + "",
  128 + titulo,
  129 + "i3GEOF.buffer",
  130 + false,
  131 + "hd",
  132 + function(){},
  133 + function(){
  134 + i3GEO.janela.minimiza("i3GEOF.buffer");
  135 + },
  136 + "",
  137 + false,
  138 + i3GEO.configura.locaplic+"/imagens/oxygen/16x16/accessories-calculator.png"
  139 + );
  140 + divid = janela[2].id;
  141 + janela[0].setFooter("<div id=i3GEOF.buffer_rodape style=background-color:#F2F2F2; ></div>");
  142 + i3GEOF.buffer.aguarde = $i("i3GEOF.buffer_imagemCabecalho").style;
  143 + i3GEOF.buffer.inicia(divid);
  144 + temp = function(){
  145 + //i3GEO.janela.tempoMsg("oi");
  146 + if(i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search("i3GEOF.buffer.t0()") > 0)
  147 + {i3GEO.eventos.ATUALIZAARVORECAMADAS.remove("i3GEOF.buffer.t0()");}
  148 + };
  149 + YAHOO.util.Event.addListener(janela[0].close, "click", temp);
  150 + if(i3GEO.eventos.ATUALIZAARVORECAMADAS.toString().search("i3GEOF.buffer.t0()") < 0)
  151 + {i3GEO.eventos.ATUALIZAARVORECAMADAS.push("i3GEOF.buffer.t0()");}
  152 + },
  153 + t0: function()
  154 + {
  155 + var ins = "<img class=i3GeoExemploImg src='"+i3GEO.configura.locaplic+"/ferramentas/buffer/exemplo.png' />" +
  156 + "<p class='paragrafo' >"+$trad(1,i3GEOF.buffer.dicionario) +
  157 + "<p class='paragrafo' >"+$trad(2,i3GEOF.buffer.dicionario);
  158 + i3GEO.util.proximoAnterior("","i3GEOF.buffer.t1()",ins,"i3GEOFgradeDePontost0","i3GEObufferresultado",true,"i3GEOF.buffer_rodape");
  159 + },
  160 + t1: function(){
  161 + var ins = "<p class='paragrafo'>"+$trad(3,i3GEOF.buffer.dicionario)+":";
  162 + ins += "<div id='i3GEObufferSelTemas' style='text-align:left;font-size:11px'></div>";
  163 + i3GEO.util.proximoAnterior("i3GEOF.buffer.t0()","i3GEOF.buffer.t2()",ins,"i3GEOF.buffer.t1","i3GEObufferresultado",true,"i3GEOF.buffer_rodape");
  164 + i3GEOF.buffer.comboTemasSel();
  165 + },
  166 + t2: function(){
  167 + var ins = "<p class='paragrafo'>"+$trad(4,i3GEOF.buffer.dicionario);
  168 + ins += "<br></p><input onclick='javascript:this.select();' class=digitar id='i3GEObufferd' type=text size=10 value='0'/>";
  169 +
  170 + ins += "<br><br><p class='paragrafo' >"+$trad(10,i3GEOF.buffer.dicionario);
  171 + ins += "<br></p><div id=i3GEObufferondeItens style='text-align:left;display:block' ></div> ";
  172 +
  173 + ins += "<br><p class='paragrafo'>"+$trad(5,i3GEOF.buffer.dicionario);
  174 + ins += "<br></p><select id=i3GEObufferunir ><option value=nao selected >"+$trad("x15")+"</option><option value=sim >"+$trad("x14")+"</option></select>";
  175 + i3GEO.util.proximoAnterior("i3GEOF.buffer.t1()","i3GEOF.buffer.t3()",ins,"i3GEOF.buffer.t2","i3GEObufferresultado",true,"i3GEOF.buffer_rodape");
  176 + i3GEOF.buffer.comboItens();
  177 + },
  178 + t3: function(){
  179 + var ins = "<p class='paragrafo'>"+$trad(6,i3GEOF.buffer.dicionario);
  180 + ins += "<br><br><input id=i3GEObufferbotao1 type='button' value='"+$trad(7,i3GEOF.buffer.dicionario)+"' />";
  181 + i3GEO.util.proximoAnterior("i3GEOF.buffer.t2()","",ins,"i3GEOF.buffer.t3","i3GEObufferresultado",true,"i3GEOF.buffer_rodape");
  182 + new YAHOO.widget.Button(
  183 + "i3GEObufferbotao1",
  184 + {onclick:{fn: i3GEOF.buffer.criaBuffer}}
  185 + );
  186 + },
  187 + /*
  188 + Function: criaBuffer
  189 +
  190 + Executa a opera&ccedil;&atilde;o de gera&ccedil;&atilde;o do buffer
  191 +
  192 + Veja:
  193 +
  194 + <CRIABUFFER>
  195 + */
  196 + criaBuffer: function(){
  197 + try{
  198 + if(i3GEOF.buffer.aguarde.visibility === "visible")
  199 + {return;}
  200 + var distancia = $i("i3GEObufferd").value,
  201 + tema = $i("i3GEObuffertemasComSel").value,
  202 + multiplicar = $i("i3GEObufferdfator").value*1,
  203 + itemdistancia = $i("i3GEObuffertemasItem").value,
  204 + p,
  205 + fim,
  206 + cp;
  207 + if (distancia*1 !== 0 || itemdistancia != ""){
  208 + i3GEOF.buffer.aguarde.visibility = "visible";
  209 + fim = function(retorno){
  210 + i3GEOF.buffer.aguarde.visibility = "hidden";
  211 + if (retorno.data === undefined )
  212 + {$i("i3GEObufferfim").innerHTML = $trad(8,i3GEOF.buffer.dicionario);}
  213 + else
  214 + {i3GEO.atualiza();}
  215 + };
  216 + p = i3GEO.configura.locaplic+"/ferramentas/buffer/exec.php?g_sid="+i3GEO.configura.sid+"&funcao=criabuffer&tema="+tema+"&unir="+$i("i3GEObufferunir").value;
  217 + if(itemdistancia != ""){
  218 + p += "&distancia=0&itemdistancia="+itemdistancia+"&multiplicar="+multiplicar;
  219 + }else{
  220 + p += "&distancia=" + distancia*1 + "&itemdistancia=&multiplicar=1";
  221 + }
  222 + cp = new cpaint();
  223 + cp.set_response_type("JSON");
  224 + cp.call(p,"criaBuffer",fim);
  225 + }
  226 + else
  227 + {i3GEO.janela.tempoMsg($trad(9,i3GEOF.buffer.dicionario));}
  228 + }
  229 + catch(e){$i("i3GEObufferfim").innerHTML = "<p class='paragrafo' >Erro. "+e;i3GEO.janela.fechaAguarde();i3GEOF.buffer.aguarde.visibility = "hidden";}
  230 + },
  231 + /*
  232 + Function: comboTemasSel
  233 +
  234 + Cria um combo com a lista de temas com elementos selecionados
  235 +
  236 + Veja:
  237 +
  238 + <i3GEO.util.comboTemas>
  239 + */
  240 + comboTemasSel: function(){
  241 + i3GEO.util.comboTemas(
  242 + "i3GEObuffertemasComSel",
  243 + function(retorno){
  244 + $i("i3GEObufferSelTemas").innerHTML = retorno.dados;
  245 + $i("i3GEObufferSelTemas").style.display = "block";
  246 + if ($i("i3GEObuffertemasComSel")){
  247 + $i("i3GEObuffertemasComSel").onchange = function(){
  248 + i3GEO.mapa.ativaTema($i("i3GEObuffertemasComSel").value);
  249 + };
  250 + }
  251 + if(i3GEO.temaAtivo !== ""){
  252 + $i("i3GEObuffertemasComSel").value = i3GEO.temaAtivo;
  253 + $i("i3GEObuffertemasComSel").onchange.call();
  254 + }
  255 + },
  256 + "i3GEObufferSelTemas",
  257 + "",
  258 + false,
  259 + "selecionados"
  260 + );
  261 + },
  262 + /*
  263 + Function: comboItens
  264 +
  265 + Cria um combo para escolha de um item do tema
  266 +
  267 + Veja:
  268 +
  269 + <i3GEO.util.comboItens>
  270 +
  271 + */
  272 + comboItens: function(){
  273 + i3GEO.util.comboItens(
  274 + "i3GEObuffertemasItem",
  275 + $i("i3GEObuffertemasComSel").value,
  276 + function(retorno){
  277 + $i("i3GEObufferondeItens").innerHTML = retorno.dados + " " + $trad(11,i3GEOF.buffer.dicionario)+" <input onclick='javascript:this.select();' class=digitar id='i3GEObufferdfator' type=text size=10 value='1'/>";
  278 + $i("i3GEObufferondeItens").style.display = "block";
  279 + },
  280 + "i3GEObufferondeItens"
  281 + );
  282 + }
  283 +};
0 \ No newline at end of file 284 \ No newline at end of file