/** * Title: markercluster * * Gera um mapa de pontos agrupados baseado em uma camada existente no mapa. * * 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 markercluster * * Veja: * * * * Arquivo: * * i3geo/ferramentas/markercluster/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. */ if (typeof (i3GEOF) === 'undefined') { var i3GEOF = {}; } i3GEOF.markercluster = { /** * Variavel: aguarde * * Objeto DOM com a imagem de aguarde existente no cabeçalho da * janela. */ aguarde : "", /** * Template no formato mustache. E preenchido na carga do javascript com o programa dependencias.php */ MUSTACHE : "", /** * Susbtitutos para o template */ mustacheHash : function() { var dicionario = i3GEO.idioma.objetoIdioma(i3GEOF.markercluster.dicionario); dicionario["locaplic"] = i3GEO.configura.locaplic; return dicionario; }, /** * Function: inicia * * Inicia a ferramenta. É chamado por criaJanelaFlutuante * * Parametro: * * iddiv {String} - id do div que receberá o conteudo HTML da * ferramenta */ inicia : function(iddiv) { if(i3GEOF.markercluster.MUSTACHE == ""){ $.get(i3GEO.configura.locaplic + "/ferramentas/markercluster/template_mst.html", function(template) { i3GEOF.markercluster.MUSTACHE = template; i3GEOF.markercluster.inicia(iddiv); }); return; } $i(iddiv).innerHTML = i3GEOF.markercluster.html(); i3GEO.util.aplicaAquarela("i3GEOF.markercluster_corpo"); i3GEOF.markercluster.t0(); }, /** * 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 = Mustache.render(i3GEOF.markercluster.MUSTACHE, i3GEOF.markercluster.mustacheHash()); return ins; }, /** * Function: iniciaJanelaFlutuante * * Cria a janela flutuante para controle da ferramenta. */ iniciaJanelaFlutuante : function() { var janela, divid, temp, titulo; if ($i("i3GEOF.markercluster")) { return; } // cria a janela flutuante titulo = "" + $trad("x104") + ""; cabecalho = function() { }; janela = i3GEO.janela.cria( "400px", "250px", "", "", "", titulo, "i3GEOF.markercluster", false, "hd", function() { }, function() { i3GEO.janela.minimiza("i3GEOF.markercluster",200); }, "", false, "", "", "", "", "122" ); divid = janela[2].id; janela[0].setFooter("
"); i3GEOF.markercluster.aguarde = $i("i3GEOF.markercluster_imagemCabecalho").style; i3GEOF.markercluster.inicia(divid); temp = function() { i3GEO.eventos.removeEventos("ATUALIZAARVORECAMADAS",["i3GEOF.markercluster.t0()"]); }; YAHOO.util.Event.addListener( janela[0].close, "click", temp); i3GEO.eventos.adicionaEventos("ATUALIZAARVORECAMADAS",["i3GEOF.markercluster.t0()"]); }, t0 : function() { i3GEO.util.proximoAnterior( "", "i3GEOF.markercluster.t1()", "", "i3GEOFgradeDePontost0", "i3GEOmarkerclusterresultado", true, "i3GEOF.markercluster_rodape"); }, t1 : function() { i3GEO.util.proximoAnterior( "i3GEOF.markercluster.t0()", "i3GEOF.markercluster.t2()", "", "i3GEOF.markercluster.t1", "i3GEOmarkerclusterresultado", true, "i3GEOF.markercluster_rodape"); i3GEOF.markercluster.comboTemasSel(); }, t2 : function() { i3GEO.util.proximoAnterior( "i3GEOF.markercluster.t1()", "i3GEOF.markercluster.t3()", "", "i3GEOF.markercluster.t2", "i3GEOmarkerclusterresultado", true, "i3GEOF.markercluster_rodape"); //i3GEOF.markercluster.comboItens(); }, t3 : function() { i3GEO.util.proximoAnterior( "i3GEOF.markercluster.t2()", "", "", "i3GEOF.markercluster.t3", "i3GEOmarkerclusterresultado", true, "i3GEOF.markercluster_rodape"); }, /** * Function: criamarkercluster * * Executa a operação de geração do markercluster * */ criamarkercluster : function() { try { if (i3GEOF.markercluster.aguarde.visibility === "visible") { return; } var p, fim, cp; i3GEOF.markercluster.aguarde.visibility = "visible"; fim = function(retorno) { i3GEOF.markercluster.aguarde.visibility = "hidden"; if (retorno.data === undefined) { $i("i3GEOmarkerclusterfim").innerHTML = $trad( 'erroTempo', i3GEOF.markercluster.dicionario); } else { i3GEO.atualiza(); } }; p = i3GEO.configura.locaplic + "/ferramentas/markercluster/exec.php?g_sid=" + i3GEO.configura.sid + "&funcao=criamarkercluster" + "&tema=" + $i("i3GEOmarkerclustertemasComSel").value + "&titulo=" + $i("i3GEOmarkerclusterTitulo").value + "&opacidade=" + $i("i3GEOmarkerclusterOpacidade").value + "&gridSize=" + $i("i3GEOmarkerclusterRaio").value + "&color=" + i3GEO.util.rgb2hex($i("i3GEOmarkerclusterColor").value) + "&strokecolor=" + i3GEO.util.rgb2hex($i("i3GEOmarkerclusterStrokecolor").value) + "&textcolor=" + $i("i3GEOmarkerclusterTextcolor").value; cp = new cpaint(); cp.set_response_type("JSON"); cp.call( p, "criamarkercluster", fim); } catch (e) { $i("i3GEOmarkerclusterfim").innerHTML = "

Erro. " + e; i3GEOF.markercluster.aguarde.visibility = "hidden"; } }, /** * Function: comboTemasSel * * Cria um combo com a lista de temas * * Veja: * * */ comboTemasSel : function() { i3GEO.util.comboTemas( "i3GEOmarkerclustertemasComSel", function(retorno) { $i("i3GEOmarkerclusterSelTemas").innerHTML = retorno.dados; $i("i3GEOmarkerclusterSelTemas").style.display = "block"; if ($i("i3GEOmarkerclustertemasComSel")) { $i("i3GEOmarkerclustertemasComSel").onchange = function() { i3GEO.mapa.ativaTema($i("i3GEOmarkerclustertemasComSel").value); }; } if (i3GEO.temaAtivo !== "") { $i("i3GEOmarkerclustertemasComSel").value = i3GEO.temaAtivo; $i("i3GEOmarkerclustertemasComSel").onchange.call(); } }, "i3GEOmarkerclusterSelTemas", "", false, "ligados", " ", false, true, "form-control comboTema" ); }, /** * Function: comboItens * * Cria um combo para escolha de um item do tema * * Veja: * * * */ comboItens : function() { i3GEO.util.comboItens( "i3GEOmarkerclustertemasItem", $i("i3GEOmarkerclustertemasComSel").value, function(retorno) { $i("i3GEOmarkerclusterondeItens").innerHTML = retorno.dados; $i("i3GEOmarkerclusterondeItens").style.display = "block"; }, "i3GEOmarkerclusterondeItens", "", "", "", "form-control comboTema" ); } };