From a3eb84d5f4706f408ee6b39d7fd7b503d8975c18 Mon Sep 17 00:00:00 2001 From: Edmar Moretti Date: Tue, 26 May 2015 21:59:33 +0000 Subject: [PATCH] Layers do tipo notile no OL3 --- .project | 15 +++------------ admin/admin.db | Bin 278528 -> 0 bytes ferramentas/opcoes_fundo/index.js | 9 +++++++-- interface/openlayersdebug.htm | 3 ++- js/arvoredecamadas.js | 8 ++++---- js/dicionario.js | 10 +++++++++- js/interface.js | 684 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- temas/_lbiomashp.map | 4 ++-- 8 files changed, 361 insertions(+), 372 deletions(-) diff --git a/.project b/.project index 8c23cd0..bf57714 100644 --- a/.project +++ b/.project @@ -27,7 +27,7 @@ - 1432242885010 + 1432670586259 30 @@ -36,7 +36,7 @@ - 1432242885012 + 1432670586259 30 @@ -45,7 +45,7 @@ - 1432242885019 + 1432670586261 30 @@ -53,14 +53,5 @@ 1.0-name-matches-false-false-*compacto* - - 1432242885538 - - 30 - - org.eclipse.ui.ide.multiFilter - 1.0-name-matches-false-false-.* - - diff --git a/admin/admin.db b/admin/admin.db index e666e72..12d8aaa 100644 Binary files a/admin/admin.db and b/admin/admin.db differ diff --git a/ferramentas/opcoes_fundo/index.js b/ferramentas/opcoes_fundo/index.js index 5cdd6f3..1960a99 100644 --- a/ferramentas/opcoes_fundo/index.js +++ b/ferramentas/opcoes_fundo/index.js @@ -129,11 +129,16 @@ i3GEOF.opcoesFundo = { //var layer = i3geoOL.getLayersByName("Nenhum")[0]; //layer.mergeNewParams({"DESLIGACACHE":"sim"}); //layer.mergeNewParams({r:Math.random()}); - if($i(i3geoOL.id+"_events")) - {$i(i3geoOL.id+"_events").style.backgroundColor = "rgb("+$i("i3GEOopcoesFundocor").value+")";} + if($i(i3geoOL.id+"_events")){ + $i(i3geoOL.id+"_events").style.backgroundColor = "rgb("+$i("i3GEOopcoesFundocor").value+")"; + } if ($i(i3geoOL.id + "_OpenLayers_ViewPort")) { $i(i3geoOL.id + "_OpenLayers_ViewPort").style.backgroundColor = "rgb("+$i("i3GEOopcoesFundocor").value+")"; } + //para OL3 + if($i("openlayers")){ + $i("openlayers").style.backgroundColor = "rgb(" + $i("i3GEOopcoesFundocor").value + ")"; + } } i3GEO.atualiza(); }, diff --git a/interface/openlayersdebug.htm b/interface/openlayersdebug.htm index 4c3f745..e7a38b2 100644 --- a/interface/openlayersdebug.htm +++ b/interface/openlayersdebug.htm @@ -140,8 +140,9 @@ i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.permiteLogin = true; i3GEO.Interface.openlayers.TILES = true; + i3GEO.Interface.openlayers.googleLike = false; - i3GEO.configura.guardaExtensao = false; + i3GEO.configura.guardaExtensao = true; i3GEO.gadgets.PARAMETROS.mostraMenuSuspenso.finaliza = 'if($i("omenudataInterface1")){i3GEOoMenuBar.getMenuItem("omenudataInterface1").cfg.setProperty("text", " ");}'; diff --git a/js/arvoredecamadas.js b/js/arvoredecamadas.js index c97428e..17f7433 100644 --- a/js/arvoredecamadas.js +++ b/js/arvoredecamadas.js @@ -1026,13 +1026,13 @@ i3GEO.arvoreDeCamadas = ); for (i = 0; i < n; i++) { temp = - "
" + "
" + "" - + "
"; + temp += " value='" + c[i].get("name") + "' id='CK" + c[i].get("name") + "'/>" + + "
"; new YAHOO.widget.HTMLNode( { html : temp, diff --git a/js/dicionario.js b/js/dicionario.js index 63e5aa2..651e210 100644 --- a/js/dicionario.js +++ b/js/dicionario.js @@ -1,5 +1,6 @@ //utilize $trad("p1") para retornar o texto -g_traducao = { +g_traducao = + { // texto da janela de mensagens "p1" : [ { @@ -2672,5 +2673,12 @@ g_traducao = { en : "", es : "" } + ], + "nenhum" : [ + { + pt : "Nenhum", + en : "", + es : "" + } ] }; \ No newline at end of file diff --git a/js/interface.js b/js/interface.js index d2b3afd..2c020d1 100755 --- a/js/interface.js +++ b/js/interface.js @@ -29,16 +29,16 @@ /** * 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 @@ -48,166 +48,165 @@ if (typeof (i3GEO) === 'undefined') { var i3GEO = {}; } -// TODO integrar Cesium http://cesiumjs.org/2013/04/12/Cesium-up-and-running/ i3GEO.Interface = { /** * Propriedade: TABLET - * + * * Quando true, são aplicadas configurações especiais para uso em tablets. - * + * * Altera o posicionamento da barra de botões e comportamento das guias. Veja o exemplo interface/openlayers_t.htm. - * + * * Tipo: - * + * * {boolean} - * + * * Default: - * + * * false */ TABLET : false, /** * Propriedade: ALTTABLET - * + * * Nome do arquivo HTML com a interface alternativa utilizada quando o i3Geo detecta o uso de um dispositivo móvel - * + * * A detecção é aplicada automaticamente quando essa variável for definida - * + * * Para não aplicar a detecção, use i3GEO.Interface.ALTTABLET = "" - * + * * Tipo: - * + * * {string} */ ALTTABLET : "", /** * Formato de geração da imagem. - * + * * Os formatos devem estar definidos no mapfile geral1windows.map e geral1.map. A definição dessa variável * não afeta a interface padrão, que utiliza a definição que estiver ativa nos mapfiles de * inicialização. - * + * * Tipo: - * + * * {MAPSERVER OUTPUTFORMAT} - * + * * Default: - * + * * AGG_Q */ OUTPUTFORMAT : "AGG_Q", /** * Propriedade: BARRABOTOESTOP - * + * * Distancia da barra de botões em relação ao topo do mapa. - * + * * Tipo: - * + * * {number} - * + * * Default: - * + * * 12 */ BARRABOTOESTOP : 12, /** * Propriedade: BARRABOTOESLEFT - * + * * Distancia da barra de botões em relação ao lado esquerdo do mapa. - * + * * Tipo: - * + * * {number} - * + * * Default: - * + * * 3 */ BARRABOTOESLEFT : 3, /** * Propriedade: BARRADEZOOMRIGHT - * + * * Distancia da barra de botões em relação ao lado direito do mapa. - * + * * Utilizado para ajustar a barra de zoom - * + * * Tipo: - * + * * {number} - * + * * Default - * + * * 50 */ BARRADEZOOMRIGHT : 0, /** * Propriedade: BARRADEZOOMTOP - * + * * Distancia da barra de zoom em relação ao topo do mapa. - * + * * Tipo: - * + * * {number} - * + * * Default: - * + * * 20 */ BARRADEZOOMTOP : 20, /** * Propriedade: BARRADEZOOMLEFT - * + * * Distancia da barra de zoom em relação ao lado esquerdo do mapa. - * + * * Tipo: - * + * * {number} - * + * * Default: - * + * * 10 */ BARRADEZOOMLEFT : 10, /** * Propriedade: ATUAL - * + * * Interface utilizada na criação e controle do mapa. - * + * * Veja como usar nos arquivos de apresentação do mapa existentes no diretório i3geo/interface - * + * * O i3Geo, além da interface própria, permite o uso de outras APIs para a construção do mapa, como * Google Maps ou Openlayers. Essa propriedade define qual interface será usada. Não confundir com o nome do HTML que * é utilizado para mostrar o mapa. - * + * * Para definir a interface, utilize - * + * * i3GEO.Interface.ATUAL = "" - * + * * Tipo: - * + * * {string} - * + * * Valores: - * + * * openlayers|googlemaps|googleearth - * + * * Default: - * + * * openlayers */ ATUAL : "openlayers", /** * Propriedade: IDCORPO - * + * * ID do elemento HTML que receberá o corpo do mapa - * + * * Tipo: - * + * * {string} - * + * * Default: - * + * * corpoMapa */ IDCORPO : "openlayers", @@ -217,19 +216,19 @@ i3GEO.Interface = ATIVAMENUCONTEXTO : false, /** * Variavel: IDMAPA - * + * * ID do elemento HTML criado para conter o mapa - * + * * Esse elemento normalmente é criado dentro de IDCORPO dependendo da interface */ IDMAPA : "", /** * Indica o status atual do mapa. - * + * * É utilizado para verificar o status do mapa e bloquear ou não determinadas funções. - * + * * Por exemplo, na interface OpenLayers, identifica se as camadas estão sendo atualizadas - * + * * STATUS = { atualizando: new Array(), //guarda os códigos dos layers que estão sendo redesenhados trocando: false * //indica se o mapa está na fase de troca de interface } */ @@ -287,8 +286,11 @@ i3GEO.Interface = i3GEO.Interface.atual2ol.initemp(); } } catch (e) { - i3GEO.util.scriptTag(i3GEO.configura.locaplic + "/pacotes/openlayers/OpenLayers2131.js.php", - "i3GEO.Interface.atual2ol.initemp()", "", false); + i3GEO.util.scriptTag( + i3GEO.configura.locaplic + "/pacotes/openlayers/OpenLayers2131.js.php", + "i3GEO.Interface.atual2ol.initemp()", + "", + false); } }, initemp : function() { @@ -311,18 +313,19 @@ i3GEO.Interface = /** * Function : aposAdicNovaCamada * - * Executa funcoes apos uma nova camada ter sido adicionada ao mapa, mas antes do layer ter sido efetivamente adicionado ao objeto com o mapa - * + * Executa funcoes apos uma nova camada ter sido adicionada ao mapa, mas antes do layer ter sido efetivamente adicionado ao objeto + * com o mapa + * * Parametros: * * {obj} - objeto camada ver i3GEO.arvoreDeCamadas.CAMADAS */ - aposAdicNovaCamada : function (camada) { + aposAdicNovaCamada : function(camada) { i3GEO.tema.ativaFerramentas(camada); }, /** * Function: redesenha - * + * * Aplica o método redesenha da interface atual. Em alguns casos, a função de redesenho aplica os mesmos * processos da função de atualizar o mapa. Isso ocorre pq em alguns casos as funções são * otimizadas para cada situação @@ -332,13 +335,13 @@ i3GEO.Interface = }, /** * Function: aplicaOpacidade - * + * * Aplica um fator de opacidade a todos os layers do mapa - * + * * Parametro: - * + * * {numerico} - 0 a 1 - * + * * {string} - (opcional) se for vazio aplica ao mapa todo */ aplicaOpacidade : function(opacidade, layer) { @@ -346,7 +349,7 @@ i3GEO.Interface = }, /** * Function: atualizaMapa - * + * * Aplica o método atualizaMapa da interface atual. Em alguns casos, a função de redesenho aplica os mesmos * processos da função de atualizar o mapa. Isso ocorre pq em alguns casos as funções são * otimizadas para cada situação @@ -362,14 +365,14 @@ i3GEO.Interface = }, /** * Function: atualizaTema - * + * * Aplica o método atualizaTema da interface atual - * + * * Parametros: - * + * * {Objeto} -parametros obtidos da função PHP de redesenho do mapa. Quando igual a "", é feita apenas a * atualização da camada, sem que a árvore de camadas seja atualizada. - * + * * {string} - código do tema */ atualizaTema : function(retorno, tema) { @@ -377,11 +380,11 @@ i3GEO.Interface = }, /** * Function: ligaDesliga - * + * * Liga/desliga um tema - * + * * Parametros: - * + * * {object} - objeto do tipo checkbox que foi acionado na arvore de camadas ou objeto que contenha as propriedades value e checked, * sendo value o código do layer */ @@ -397,7 +400,7 @@ i3GEO.Interface = }, /** * Function: adicionaKml - * + * * Aplica o método de adição de kml ao mapa conforme a interface atual */ adicionaKml : function() { @@ -413,13 +416,13 @@ i3GEO.Interface = }, /** * Cria ou altera os elementos HTML necessários para a interface - * + * * Essa função é executada na inicialização do i3geo - * + * * Parametros: - * + * * {Integer} - largura do corpo do mapa em pixels - * + * * {Integer} - altura do corpo do mapa em pixels */ cria : function(w, h) { @@ -463,13 +466,13 @@ i3GEO.Interface = }, /** * Function: alteraLayers - * + * * Altera todos os layers do mapa modificando um determinado parametro - * + * * Parametros: - * + * * {string} - nome do parâmetro - * + * * {string} - valor a ser atribuído */ alteraParametroLayers : function(parametro, valor) { @@ -491,26 +494,26 @@ i3GEO.Interface = }, /** * Section: i3GEO.Interface.OpenLayers - * + * * Interface com motor de navegação baseado na API OpenLayers - * + * * Namespace: - * + * * i3GEO.Interface.openlayers - * + * * Utilizado quando - * + * * i3GEO.Interface.ATUAL = "openlayers" - * + * * Cria o objeto i3geoOL que pode receber os métodos da API do OpenLayers */ openlayers : { // TODO incluir na ferramenta de propriedades /** * Propriedade: parametrosMap - * + * * Permite incluir parametros da API do OpenLayers nao previstos no i3Geo - * + * * Parametros do objeto map do OpenLayers */ parametrosMap : { @@ -523,9 +526,9 @@ i3GEO.Interface = // TODO incluir na ferramenta de propriedades /** * Propriedade: parametrosView - * + * * Permite incluir parametros da API do OpenLayers nao previstos no i3Geo - * + * * Parametros do objeto View do OpenLayers */ parametrosView : { @@ -533,15 +536,15 @@ i3GEO.Interface = }, /** * Propriedade: interacoes - * + * * Interacoes default utilizadas no mapa. - * + * * http://openlayers.org/en/v3.4.0/apidoc/ol.interaction.Interaction.html?unstable=true - * + * * Parametros do objeto Map.options.interactions do OpenLayers - * + * * Tipo: - * + * * {array} */ interacoes : [ @@ -558,47 +561,47 @@ i3GEO.Interface = ], /** * Propriedade: FUNDOTEMA - * + * * Estilo "background" do nome do tema na árvore de camadas enquanto o mesmo está sendo carregado. - * + * * Permite destacar o nome do tema que está em processo de carregamento - * + * * Tipo: - * + * * {string} - * + * * Default: - * + * * yellow */ FUNDOTEMA : "yellow", /** * Propriedade: TILES - * + * * Indica se será utilizado o modo de navegação em tiles em todas as camadas do mapa - * + * * Ao bloquear o modo tile, o cache de imagens não poderá ser realizado - * + * * Tipo: - * + * * {boolean} - * + * * Default: - * + * * true */ TILES : true, /** * Propriedade: GADGETS - * + * * Lista dos controles específicos da API do OpenLayers que serão inseridos ou não no mapa - * + * * Tipo: - * + * * {object} - * + * * Default: - * + * * {ZoomSlider:true,Zoom: false,LayerSwitcher:true,ScaleLine:true,OverviewMap:false} */ GADGETS : { @@ -609,15 +612,15 @@ i3GEO.Interface = }, /** * Propriedade: SCALELINE - * + * * Propriedades da API do OL3 para o controle de barra de escala - * + * * http://openlayers.org/en/v3.4.0/apidoc/ol.control.ScaleLine.html - * + * * Tipo: - * + * * {object} - * + * * Default: {} */ SCALELINE : { @@ -625,15 +628,15 @@ i3GEO.Interface = }, /** * Propriedade: ZOOM - * + * * Propriedades da API do OL3 para o controle de zoom - * + * * http://openlayers.org/en/v3.4.0/apidoc/ol.control.Zoom.html - * + * * Tipo: - * + * * {object} - * + * * Default: {} */ ZOOM : { @@ -641,15 +644,15 @@ i3GEO.Interface = }, /** * Propriedade: ZOOMSLIDER - * + * * Propriedades da API do OL3 para o controle de zoomBar - * + * * http://openlayers.org/en/v3.4.0/apidoc/ol.control.ZoomSlider.html - * + * * Tipo: - * + * * {object} - * + * * Default: {} */ ZOOMSLIDER : { @@ -657,15 +660,15 @@ i3GEO.Interface = }, /** * Propriedade: MINEXTENT - * + * * Menor extensão geográfica que pode ser mostrada no mapa - * + * * Tipo: - * + * * {array} - * + * * Default: - * + * * [-0.0003, -0.0003, 0.0003, 0.0003] */ MINEXTENT : [ @@ -673,15 +676,15 @@ i3GEO.Interface = ], /** * Propriedade: MAXEXTENT - * + * * Maior extensão geográfica que pode ser mostrada no mapa - * + * * Tipo: - * + * * {array} - * + * * Default: - * + * * [-180, -90, 180, 90] */ MAXEXTENT : [ @@ -689,32 +692,32 @@ i3GEO.Interface = ], /** * Propriedades: LAYERSADICIONAIS - * + * * Objetos do tipo LAYER que serão adicionados após a crioação de todos os layers default. - * + * * Tipo: - * + * * {array} - * + * */ LAYERSADICIONAIS : [], /** * Propriedade: LAYERFUNDO - * + * * Nome do layer do tipo baselayer que sera ativado */ LAYERFUNDO : "", /** * Propriedade: googleLike - * + * * Indica se a projeção cartográfica do mapa atual é a mesma utilizada pela API do Google Maps - * + * * Tipo: - * + * * {boolean} - * + * * Default: - * + * * false */ googleLike : false, @@ -764,7 +767,7 @@ i3GEO.Interface = }, /** * Redesenha o mapa atual - * + * * são criados apenas os layers que ainda não existirem no mapa mas que existem na arvore de camadas */ redesenha : function() { @@ -776,7 +779,7 @@ i3GEO.Interface = }, /** * Cria o mapa do lado do cliente (navegador) Define o que for necessario para a criacao de - * + * * i3geoOL = new OpenLayers.Map() */ cria : function(w, h) { @@ -1259,7 +1262,6 @@ i3GEO.Interface = matrixIds[z] = z; } // define a cor do fundo do mapa - // FIXME mudar a ferramenta que define o fundo $i("openlayers").style.backgroundColor = "rgb(" + i3GEO.parametros.cordefundo + ")"; // adiciona as camadas definidas em LAYERSADICIONAIS @@ -1273,9 +1275,13 @@ i3GEO.Interface = visible : false, singleTile : !(i3GEO.Interface.openlayers.TILES), tilePixelRatio : 1, - preload : Infinity + preload : Infinity, + projection : 'EPSG:4326' // pode ser 0 }; + if (i3GEO.Interface.openlayers.googleLike === true) { + opcoes.projection = 'EPSG:3857'; + } for (i = nlayers - 1; i >= 0; i--) { layer = ""; camada = i3GEO.arvoreDeCamadas.CAMADAS[i]; @@ -1317,12 +1323,14 @@ i3GEO.Interface = && camada.usasld.toLowerCase() != "sim") { urllayer = camada.wmsurl + "&r=" + Math.random(); if (camada.wmstile == 1) { + // TODO testar isso layer = new OpenLayers.Layer.TMS(camada.name, camada.wmsurl, { isBaseLayer : false, layername : camada.wmsname, type : 'png' }); } else { + // TODO testar isso layer = new OpenLayers.Layer.WMS(camada.name, urllayer, { LAYERS : camada.name, format : camada.wmsformat, @@ -1353,55 +1361,50 @@ i3GEO.Interface = if (camada.tiles === "sim" || camada.cache === "sim" || (camada.cortepixels && camada.cortepixels > 0)) { opcoes.singleTile = false; } - // FIXME testar isso if (opcoes.singleTile === true) { - if (i3GEO.Interface.openlayers.googleLike === true) { - opcoes.projection = "EPSG:3857"; - } - // erro aqui - corrigir - /* - * layer = new OpenLayers.Layer.WMS(camada.name, urllayer, { LAYERS : camada.name, format : - * camada.wmsformat, transparent : true }, opcoes); - */ - + source = new ol.source.ImageWMS({ + url : urllayer, + params : { + 'LAYERS' : camada.name, + 'VERSION' : '1.1.0' + }, + projection : opcoes.projection + }); } else { - // FIXME testar isso - if (i3GEO.Interface.openlayers.googleLike === true) { - layer = new OpenLayers.Layer.OSM(camada.name, urllayer + "&Z=${z}&X=${x}&Y=${y}", { - isBaseLayer : false - }); - } else { - source = new ol.source.WMTS({ - url : urllayer, - matrixSet : 'EPSG:4326', - format : 'image/png', - projection : ol.proj.get('EPSG:4326'), - tileGrid : new ol.tilegrid.WMTS({ - origin : ol.extent.getTopLeft(projectionExtent), - resolutions : resolutions, - matrixIds : matrixIds - }), - wrapX : true - }); - source.set("name", camada.name); - opcoes.source = source; - opcoes.title = camada.tema; - opcoes.name = camada.name; - opcoes.isBaseLayer = false; - opcoes.visible = true; - if (i3GEO.arvoreDeCamadas.BARRAPROGRESSO === true) { - source.on('tileloadstart', function(event) { - i3GEO.Interface.openlayers.loadStartLayer(source.get("name")); - }); - source.on('tileloadend', function(event) { - i3GEO.Interface.openlayers.loadStopLayer(source.get("name")); - }); - source.on('tileloaderror', function(event) { - i3GEO.Interface.openlayers.loadStopLayer(source.get("name")); - }); - } - layer = new ol.layer.Tile(opcoes); - } + source = new ol.source.WMTS({ + url : urllayer, + matrixSet : opcoes.projection, + format : 'image/png', + projection : opcoes.projection, + tileGrid : new ol.tilegrid.WMTS({ + origin : ol.extent.getTopLeft(projectionExtent), + resolutions : resolutions, + matrixIds : matrixIds + }), + wrapX : true + }); + } + source.set("name", camada.name); + opcoes.source = source; + opcoes.title = camada.tema; + opcoes.name = camada.name; + opcoes.isBaseLayer = false; + opcoes.visible = true; + if (i3GEO.arvoreDeCamadas.BARRAPROGRESSO === true) { + source.on('tileloadstart', function(event) { + i3GEO.Interface.openlayers.loadStartLayer(source.get("name")); + }); + source.on('tileloadend', function(event) { + i3GEO.Interface.openlayers.loadStopLayer(source.get("name")); + }); + source.on('tileloaderror', function(event) { + i3GEO.Interface.openlayers.loadStopLayer(source.get("name")); + }); + } + if (opcoes.singleTile === true) { + layer = new ol.layer.Image(opcoes); + } else { + layer = new ol.layer.Tile(opcoes); } } } catch (e) { @@ -1436,7 +1439,6 @@ i3GEO.Interface = $i(i3GEO.Interface.IDMAPA).appendChild(temp); } } - // FIXME testar isso if (i3GEO.Interface.openlayers.LAYERFUNDO != "") { i3GEO.Interface.openlayers.ativaFundo(i3GEO.Interface.openlayers.LAYERFUNDO); } @@ -1543,8 +1545,6 @@ i3GEO.Interface = layers.push(layer); } } - // TODO precisa subir os layers graficos? - // i3GEO.Interface.openlayers.sobeLayersGraficos(); }, /** * Liga ou desliga um layer @@ -1586,47 +1586,31 @@ i3GEO.Interface = * Define um dos layers existentes no mapa como baselayer */ ativaFundo : function(nome) { - var t, temp = i3geoOL.getLayersBy("name", nome), layers, layersn, i, status; - if (temp.length > 0) { - i3geoOL.setBaseLayer(temp[0]); - if (i3GEO.Interface.openlayers.OLpanzoombar) { - i3GEO.Interface.openlayers.OLpanzoombar.div.style.top = i3GEO.Interface.BARRADEZOOMTOP + "px"; - i3GEO.Interface.openlayers.OLpanzoombar.div.style.left = i3GEO.Interface.BARRADEZOOMLEFT + "px"; - i3GEO.Interface.openlayers.OLpanzoombar.div.style.right = i3GEO.Interface.BARRADEZOOMRIGHT + "px"; - } - if (i3GEO.Interface.BARRADEZOOMLEFT === 0 && i3GEO.Interface.openlayers.OLpanzoombar) { - i3GEO.Interface.openlayers.OLpanzoombar.div.style.left = null; - } - if (i3GEO.Interface.BARRADEZOOMRIGHT === 0 && i3GEO.Interface.openlayers.OLpanzoombar) { - i3GEO.Interface.openlayers.OLpanzoombar.div.style.right = null; + var baseLayers, n, i, t, ck = true; + if ($i("CK" + nome)) { + ck = $i("CK" + nome).checked; + } + + baseLayers = i3geoOL.getLayersBase(); + n = baseLayers.length; + i3GEO.Interface.openlayers.LAYERFUNDO = ""; + // desmarca os checkbox e desliga todos + for (i = 0; i < n; i++) { + baseLayers[i].setVisible(false); + t = $i("CK" + baseLayers[i].get("name")); + if (t) { + t.checked = false; } - i3GEO.Interface.openlayers.LAYERFUNDO = nome; - } else { - i3GEO.Interface.openlayers.LAYERFUNDO = ""; } - // - // verifica se existe um checkbox com o id do tema - // se existir, altera o status do checkbox - // e processa a lista de layers de fundo - // - t = $i("CK" + temp[0].id); - if (t) { - status = true; - if (t.checked === false) { - status = false; - } - // desativa todos - // aqui sao considerados apenas os layers em layersadicionais, pois esses que foram inseridos na arvore - layers = i3GEO.Interface.openlayers.LAYERSADICIONAIS; - layersn = layers.length; - for (i = 0; i < layersn; i++) { - if (layers[i].name != nome) { - layers[i].setVisibility(false); - $i("CK" + layers[i].id).checked = false; + // liga/desliga o fundo desejado + for (i = 0; i < n; i++) { + if (baseLayers[i].get("name") === nome) { + baseLayers[i].setVisible(!ck); + if (!ck === true) { + $i("CK" + nome).checked = true; + i3GEO.Interface.openlayers.LAYERFUNDO = nome; } } - temp[0].setVisibility(!status); - t.checked = !status; } }, /** @@ -1822,32 +1806,32 @@ i3GEO.Interface = }, /** * Section: i3GEO.Interface.Googlemaps - * + * * Interface com motor de navegação baseado na API Google Maps - * + * * Namespace: - * + * * i3GEO.Interface.googlemaps - * + * * Utilizado quando - * + * * i3GEO.Interface.ATUAL = "googlemaps" - * + * * Cria o objeto i3GeoMap que pode receber os métodos da API. Cria também o objeto i3GeoMapOverlay do tipo Overlay, * utilizado para cálculos ou para receber elementos gráficos. */ googlemaps : { /** * Propriedade: ESTILOS - * + * * Estilos que podem ser utilizados com o mapa - * + * * Para novos estilos, acrescente seu codigo nesse objeto - * + * * Fonte http://maps-api-tt.appspot.com/apilite/styled/styled.html - * + * * Tipo: - * + * * {objeto} */ ESTILOS : { @@ -2045,29 +2029,29 @@ i3GEO.Interface = }, /** * Propriedade: ESTILOPADRAO - * + * * Nome do estilo definido em ESTILOS que sera usado como padrao para o mapa. Se for "" sera usado o estilo normal do Google - * + * * Estilos pre-definidos Red, Countries, Night, Blue, Greyscale, No roads, Mixed, Chilled - * + * * Tipo: - * + * * {string} */ ESTILOPADRAO : "", /** * Propriedade: MAPOPTIONS - * + * * Objeto contendo opções que serão utilizadas no construtor do mapa conforme a API do GoogleMaps - * + * * Exemplo de uso - * + * * i3GEO.Interface.googlemaps.MAPOPTIONS = {maxZoom:5}; - * + * * https://developers.google.com/maps/documentation/javascript/reference#MapOptions - * + * * Tipo: - * + * * {MapOptions} */ MAPOPTIONS : { @@ -2078,43 +2062,43 @@ i3GEO.Interface = }, /** * Propriedade: OPACIDADE - * + * * Valor da opacidade das camadas i3geo do mapa - * + * * Varia de 0 a 1 - * + * * Tipo: - * + * * {Numeric} - * + * * Default: 0.8 */ OPACIDADE : 0.8, /** * Propriedade: TIPOMAPA - * + * * Tipo de mapa que será usado como default, conforme constantes definidas na API do Google Maps. - * + * * Tipo: - * + * * {string} - * + * * Valores: - * + * * satellite|roadmap|hybrid|terrain - * + * * Default: - * + * * terrain */ TIPOMAPA : "terrain", /** * Variable: ZOOMSCALE - * + * * Array com a lista de escalas em cada nivel de zoom utilizado pelo Google - * + * * Tipo: - * + * * {array} */ ZOOMSCALE : [ @@ -2141,17 +2125,17 @@ i3GEO.Interface = ], /** * Parametros adicionais que são inseridos na URL que define cada layer - * + * * Tipo: - * + * * {string} */ PARAMETROSLAYER : "&TIPOIMAGEM=" + i3GEO.configura.tipoimagem, /** * String acrescentada a url de cada tile para garantir a remoção do cache local - * + * * Tipo: - * + * * {string} */ posfixo : 0, @@ -2476,8 +2460,8 @@ i3GEO.Interface = * i3GEO.parametros.w + "&layer=" + nomeLayer + i3GEO.Interface.googlemaps.PARAMETROSLAYER + '&r=' + Math.random(); return * url+'&nd='+i3GEO.Interface.googlemaps.posfixo; }, tileSize: new google.maps.Size(i3GEO.parametros.w, i3GEO.parametros.h), * isPng: true, name: nomeLayer, projection : i3GeoMap.getProjection(), b : i3GeoMap.getBounds() }); - * - * + * + * * google.maps.event.addListener(i3GEOTileO, 'tilesloaded', function() { var l = * i3GEO.Interface.googlemaps.retornaObjetoLayer(nomeLayer); var currentBounds = i3GeoMap.getBounds(); if * (currentBounds.equals(l.b)) { return; } l.b = currentBounds; }); @@ -2764,22 +2748,22 @@ i3GEO.Interface = }, /** * Function: adicionaKml - * + * * Insere no mapa uma camada KML com base na API do Google Maps - * + * * As camadas adicionadas são acrescentadas na árvore de camadas - * + * * A lista de nomes dos objetos geoXml criados é mantida em i3GEO.mapas.GEOXML - * + * * Parametros: - * + * * {Boolean} - define se o mapa será deslocado para encaixar o KML - * + * * {String} - URL do arquivo KML. Se não for definido, a URL será obtida do INPUT com id = i3geo_urlkml (veja * i3GEO.gadgets.mostraInserirKml) - * + * * {string} - titulo que aparecerá na árvore. Se não for definido, será calculado aleatoriamente. - * + * * {boolean} - indica se a camada estará ativa ou não. Se não for definido, será considerado como * true */ @@ -2827,19 +2811,19 @@ i3GEO.Interface = }, /** * Acrescenta na árvore de camadas um novo tema no nó que mostra os arquivos KML inseridos no mapa - * + * * Os temas são incluídos em um nó chamado "Google Maps". - * + * * Para obter esse nó utilize var node = i3GEO.arvoreDeCamadas.ARVORE.getNodeByProperty("idkml","raiz"); - * + * * Parametros: - * + * * url {string} - url do arquivo KML - * + * * nomeOverlay {string} - título do tema - * + * * ativo {boolean} - indica o estado do checkbox - * + * * id {string} - nome do objeto GGeoXml */ adicionaNoArvoreGoogle : function(url, nomeOverlay, ativo, id) { @@ -2921,11 +2905,11 @@ i3GEO.Interface = }, /** * Ativa ou desativa uma camada do nó de layers KML - * + * * Parametro: - * + * * obj {object} - objeto do tipo checkbox que foi ativado/desativado - * + * * url {string} - url do KML */ ativaDesativaCamadaKml : function(obj, url) { @@ -2945,51 +2929,51 @@ i3GEO.Interface = }, /** * Section: i3GEO.Interface.GoogleEarth - * + * * Interface com motor de navegação baseado na API Google Earth - * + * * Namespace: - * + * * i3GEO.Interface.googleearth - * + * * Utilizado quando - * + * * i3GEO.Interface.ATUAL = "googleearth" - * + * * Cria o objeto i3GeoMap que pode receber os métodos da API. */ googleearth : { /** * Variable: PARAMETROSLAYER - * + * * Parametros adicionais que são inseridos na URL que define cada layer - * + * * Tipo: - * + * * {string} */ PARAMETROSLAYER : "&TIPOIMAGEM=" + i3GEO.configura.tipoimagem, /** * String acrescentada a url de cada tile para garantir a remoção do cache local - * + * * Tipo: - * + * * {string} */ posfixo : "", /** * Propriedade: GADGETS - * + * * Lista dos controles específicos da API do Google Earth que serão inseridos ou não no mapa - * + * * Tipo: - * + * * {object} - * + * * Default: - * + * * (start code) - * + * * i3GEO.Interface.googleearth.GADGETS = { setMouseNavigationEnabled : true, setStatusBarVisibility : true, * setOverviewMapVisibility : true, setScaleLegendVisibility : true, setAtmosphereVisibility : true, setGridVisibility : false, * getSun : false, LAYER_BORDERS : true, LAYER_BUILDINGS : false, LAYER_ROADS : false, LAYER_TERRAIN : true } (end) @@ -3419,22 +3403,22 @@ i3GEO.Interface = }, /** * Function: adicionaKml - * + * * Insere no mapa uma camada KML com base na API do Google Earth - * + * * As camadas adicionadas são crescentadas na árvore de camadas - * + * * A lista de nomes dos objetos geoXml criados é mantida em i3GEO.mapas.GEOXML - * + * * Parametros: - * + * * {Boolean} - define se o mapa será deslocado para encaixar o KML - * + * * {String} - URL do arquivo KML. Se não for definido, a URL será obtida do INPUT com id = i3geo_urlkml (veja * i3GEO.gadgets.mostraInserirKml) - * + * * {string} - titulo que aparecerá na árvore. Se não for definido, será calculado aleatoriamente. - * + * * {boolean} - indica se a camada estará ativa ou não. Se não for definido, será considerado como * true */ @@ -3490,21 +3474,21 @@ i3GEO.Interface = i3GEO.php.listaRSSwsARRAY(monta, "KML"); }, /** - * + * * Acrescenta na árvore de camadas um novo tema no nó que mostra os arquivos KML inseridos no mapa - * + * * Os temas são incluídos em um nó chamado "Google Earth". - * + * * Para obter esse nó utilize var node = i3GEO.arvoreDeCamadas.ARVORE.getNodeByProperty("idkml","raiz"); - * + * * Parametros: - * + * * url {string} - url do arquivo KML - * + * * nomeOverlay {string} - título do tema - * + * * ativo {boolean} - indica o estado do checkbox - * + * * id {string} - nome do objeto GGeoXml */ adicionaNoArvoreGoogle : function(url, nomeOverlay, ativo, id) { @@ -3597,11 +3581,11 @@ i3GEO.Interface = } }, /** - * + * * Ativa ou desativa uma camada do nó de layers KML - * + * * Parametro: - * + * * obj {object} - objeto do tipo checkbox que foi ativado/desativado */ ativaDesativaCamadaKml : function(obj) { diff --git a/temas/_lbiomashp.map b/temas/_lbiomashp.map index 668ac60..d9be594 100644 --- a/temas/_lbiomashp.map +++ b/temas/_lbiomashp.map @@ -6,12 +6,12 @@ MAP DATA "/var/www/i3geo/aplicmap/dados/biomas.shp" METADATA "TIP" "CD_LEGENDA" - "CACHE" "SIM" + "CACHE" "NAO" "CLASSE" "SIM" "permitekmz" "SIM" "ITENSDESC" "Bioma Teste de acentuação" "ESCALA" "1000000" - "TILES" "SIM" + "TILES" "NAO" "permitedownload" "SIM" "download" "SIM" "itembuscarapida" "CD_LEGENDA" -- libgit2 0.21.2